diff options
66 files changed, 13675 insertions, 6820 deletions
diff --git a/.drone.yml b/.drone.yml index 48882fe0d8e..bd775ad91b6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -594,6 +594,13 @@ pipeline: when: matrix: TESTS-ACCEPTANCE: login + acceptance-users: + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 + commands: + - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-users --selenium-server selenium:4444 allow-git-repository-modifications features/users.feature + when: + matrix: + TESTS-ACCEPTANCE: users nodb-codecov: image: nextcloudci/php7.0:php7.0-19 commands: @@ -761,6 +768,8 @@ matrix: TESTS-ACCEPTANCE: header - TESTS: acceptance TESTS-ACCEPTANCE: login + - TESTS: acceptance + TESTS-ACCEPTANCE: users - TESTS: jsunit - TESTS: syntax-php7.0 - TESTS: syntax-php7.1 diff --git a/core/css/inputs.scss b/core/css/inputs.scss index 7509575f9e5..665deca2285 100644 --- a/core/css/inputs.scss +++ b/core/css/inputs.scss @@ -67,6 +67,13 @@ div[contenteditable=true], cursor: default; opacity: 0.5; } + &:required { + box-shadow: none; + } + &:invalid { + box-shadow: none !important; + border-color: $color-error; + } /* Primary action button, use sparingly */ &.primary { background-color: $color-primary-element; @@ -216,7 +223,8 @@ input { margin-left: -8px !important; border-left-color: transparent !important; border-radius: 0 $border-radius $border-radius 0 !important; - background-clip: padding-box; /* Avoid background under border */ + background-clip: padding-box; + /* Avoid background under border */ background-color: $color-main-background !important; opacity: 1; width: 34px; @@ -227,6 +235,7 @@ input { background-image: url('../img/actions/confirm-fade.svg?v=2') !important; } } + /* only show confirm borders if input is not focused */ &:not(:active):not(:hover):not(:focus){ + .icon-confirm { @@ -244,14 +253,19 @@ input { &:active, &:hover, &:focus { + &:invalid { + + .icon-confirm { + border-color: $color-error; + } + } + .icon-confirm { border-color: $color-primary-element !important; border-left-color: transparent !important; - z-index: 2; /* above previous input */ + /* above previous input */ + z-index: 2; } } } - } @@ -606,6 +620,206 @@ input { } } + +/* Vue multiselect */ +.multiselect.multiselect-vue { + margin: 1px 2px; + padding: 0 !important; + display: inline-block; + /* min-width: 160px; */ + /* width: 160px; */ + position: relative; + background-color: $color-main-background; + &.multiselect--active { + /* Opened: force display the input */ + input.multiselect__input { + opacity: 1 !important; + cursor: text !important; + } + } + &.multiselect--disabled, + &.multiselect--disabled .multiselect__single { + background-color: nc-darken($color-main-background, 8%) !important; + } + .multiselect__tags { + /* space between tags and limit tag */ + $space-between: 5px; + + display: flex; + flex-wrap: nowrap; + overflow: hidden; + border: 1px solid nc-darken($color-main-background, 14%); + cursor: pointer; + position: relative; + border-radius: 3px; + height: 34px; + /* tag wrapper */ + .multiselect__tags-wrap { + align-items: center; + display: inline-flex; + overflow: hidden; + max-width: 100%; + position: relative; + padding: 3px $space-between; + flex-grow: 1; + /* no tags or simple select? Show input directly + input is used to display single value */ + &:empty ~ input.multiselect__input { + opacity: 1 !important; + /* hide default empty text, show input instead */ + + span:not(.multiselect__single) { + display: none; + } + } + /* selected tag */ + .multiselect__tag { + flex: 1 0 0; + line-height: 20px; + padding: 1px 5px; + background-image: none; + color: nc-lighten($color-main-text, 33%); + border: 1px solid nc-darken($color-main-background, 14%); + display: inline-flex; + align-items: center; + border-radius: 3px; + /* require to override the default width + and force the tag to shring properly */ + min-width: 0; + max-width: 50%; + max-width: fit-content; + max-width: -moz-fit-content; + /* css hack, detect if more than two tags + if so, flex-basis is set to half */ + &:only-child { + flex: 0 1 auto; + } + &:not(:last-child) { + margin-right: $space-between; + } + /* ellipsis the groups to be sure + we display at least two of them */ + > span { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } + } + } + /* Single select default value */ + .multiselect__single { + padding: 8px 10px; + flex: 0 0 100%; + z-index: 1; /* above input */ + background-color: $color-main-background; + cursor: pointer; + } + /* displayed text if tag limit reached */ + .multiselect__strong, + .multiselect__limit { + flex: 0 0 auto; + line-height: 20px; + color: nc-lighten($color-main-text, 33%); + display: inline-flex; + align-items: center; + opacity: .7; + margin-right: $space-between; + /* above the input */ + z-index: 5; + } + /* default multiselect input for search and placeholder */ + input.multiselect__input { + width: 100% !important; + position: absolute !important; + margin: 0; + opacity: 0; + /* let's leave it on top of tags but hide it */ + height: 100%; + border: none; + /* override hide to force show the placeholder */ + display: block !important; + /* only when not active */ + cursor: pointer; + } + } + /* results wrapper */ + .multiselect__content-wrapper { + position: absolute; + width: 100%; + margin-top: -1px; + border: 1px solid nc-darken($color-main-background, 14%); + background: $color-main-background; + z-index: 50; + max-height: 250px; + overflow-y: auto; + .multiselect__content { + width: 100%; + padding: 5px 0; + } + li { + padding: 5px; + position: relative; + display: flex; + align-items: center; + background-color: transparent; + &, + span { + cursor: pointer; + } + > span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + height: 20px; + margin: 0; + 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: transparent !important; + color: nc-lighten($color-main-text, 33%); + width: 100%; + /* selected checkmark icon */ + &:not(.multiselect__option--disabled)::before { + content: ' '; + background-image: url('../img/actions/checkmark.svg?v=1'); + background-repeat: no-repeat; + background-position: center; + min-width: 16px; + min-height: 16px; + display: block; + opacity: 0.5; + margin-right: 5px; + visibility: hidden; + } + &.multiselect__option--disabled { + background-color: nc-darken($color-main-background, 8%); + } + /* add the prop tag-placeholder="create" to add the + + * icon on top of an unknown-and-ready-to-be-created entry + */ + &[data-select='create'] { + &::before { + background-image: url('../img/actions/add.svg?v=1'); + visibility: visible; + } + } + &.multiselect__option--highlight { + color: $color-main-text; + } + &.multiselect__option--selected { + &::before { + visibility: visible; + } + } + } + } + } +} + /* Progressbar */ progress { display: block; diff --git a/core/css/multiselect.scss b/core/css/multiselect.scss index da6cbde3722..6c8bd118060 100644 --- a/core/css/multiselect.scss +++ b/core/css/multiselect.scss @@ -75,8 +75,9 @@ ul.multiselectoptions { } } -div.multiselect, -select.multiselect { +/* TODO drop old legacy multiselect! */ +div.multiselect:not(.multiselect-vue), +select.multiselect:not(.multiselect-vue) { display: inline-block; max-width: 200px; min-width: 150px !important; diff --git a/core/css/tooltip.scss b/core/css/tooltip.scss index a974e05e1a6..fe9a96cf314 100644 --- a/core/css/tooltip.scss +++ b/core/css/tooltip.scss @@ -11,119 +11,128 @@ */ .tooltip { - position: absolute; - display: block; - font-family: 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif; - font-style: normal; - font-weight: 400; - letter-spacing: normal; - line-break: auto; - line-height: 1.6; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - z-index: 100000; - filter: drop-shadow(0 1px 10px $color-box-shadow); - &.in { - opacity: 1; - } - - &.top { - margin-top: -3px; - padding: 10px 0; - } - &.bottom { - margin-top: 3px; - padding: 10px 0; - } - - &.right { - margin-left: 3px; - padding: 0 10px; - .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -10px; - border-width: 10px 10px 10px 0; - border-right-color: $color-main-background; - } - } - &.left { - margin-left: -3px; - padding: 0 5px; - .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -10px; - border-width: 10px 0 10px 10px; - border-left-color: $color-main-background; - } - } - - /* TOP */ - &.top .tooltip-arrow, - &.top-left .tooltip-arrow, - &.top-right .tooltip-arrow { - bottom: 0; - border-width: 10px 10px 0; - border-top-color: $color-main-background; - } - &.top .tooltip-arrow { - left: 50%; - margin-left: -10px; - } - &.top-left .tooltip-arrow { - right: 10px; - margin-bottom: -10px; - } - &.top-right .tooltip-arrow { - left: 10px; - margin-bottom: -10px; - } - - /* BOTTOM */ - &.bottom .tooltip-arrow, - &.bottom-left .tooltip-arrow, - &.bottom-right .tooltip-arrow { - top: 0; - border-width: 0 10px 10px; - border-bottom-color: $color-main-background; - } - &.bottom .tooltip-arrow { - left: 50%; - margin-left: -10px; - } - &.bottom-left .tooltip-arrow { - right: 10px; - margin-top: -10px; - } - &.bottom-right .tooltip-arrow { - left: 10px; - margin-top: -10px; - } + position: absolute; + display: block; + font-family: 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif; + font-style: normal; + font-weight: 400; + letter-spacing: normal; + line-break: auto; + line-height: 1.6; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + font-size: 12px; + opacity: 0; + z-index: 100000; + /* default to top */ + margin-top: -3px; + padding: 10px 0; + filter: drop-shadow(0 1px 10px $color-box-shadow); + &.in, + &.tooltip[aria-hidden='false'] { + visibility: visible; + opacity: 1; + transition: opacity .15s; + } + &.top .tooltip-arrow, + &[x-placement^='top'] { + left: 50%; + margin-left: -10px; + } + &.bottom, + &[x-placement^='bottom'] { + margin-top: 3px; + padding: 10px 0; + } + &.right, + &[x-placement^='right'] { + margin-left: 3px; + padding: 0 10px; + .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -10px; + border-width: 10px 10px 10px 0; + border-right-color: $color-main-background; + } + } + &.left, + &[x-placement^='left'] { + margin-left: -3px; + padding: 0 5px; + .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -10px; + border-width: 10px 0 10px 10px; + border-left-color: $color-main-background; + } + } + /* TOP */ + &.top, + &.top-left, + &[x-placement^='top'], + &.top-right { + .tooltip-arrow { + bottom: 0; + border-width: 10px 10px 0; + border-top-color: $color-main-background; + } + } + &.top-left .tooltip-arrow { + right: 10px; + margin-bottom: -10px; + } + &.top-right .tooltip-arrow { + left: 10px; + margin-bottom: -10px; + } + /* BOTTOM */ + &.bottom, + &[x-placement^='bottom'], + &.bottom-left, + &.bottom-right { + .tooltip-arrow { + top: 0; + border-width: 0 10px 10px; + border-bottom-color: $color-main-background; + } + } + &[x-placement^='bottom'] .tooltip-arrow, + &.bottom .tooltip-arrow { + left: 50%; + margin-left: -10px; + } + &.bottom-left .tooltip-arrow { + right: 10px; + margin-top: -10px; + } + &.bottom-right .tooltip-arrow { + left: 10px; + margin-top: -10px; + } } .tooltip-inner { - max-width: 350px; - padding: 5px 8px; - background-color: $color-main-background; - color: $color-main-text; - text-align: center; - border-radius: $border-radius; + max-width: 350px; + padding: 5px 8px; + background-color: $color-main-background; + color: $color-main-text; + text-align: center; + border-radius: $border-radius; } .tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +}
\ No newline at end of file diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index ebf5197d4dd..c6475f8c889 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -913,7 +913,6 @@ return array( 'OC\\Settings\\Controller\\ChangePasswordController' => $baseDir . '/settings/Controller/ChangePasswordController.php', 'OC\\Settings\\Controller\\CheckSetupController' => $baseDir . '/settings/Controller/CheckSetupController.php', 'OC\\Settings\\Controller\\CommonSettingsTrait' => $baseDir . '/settings/Controller/CommonSettingsTrait.php', - 'OC\\Settings\\Controller\\GroupsController' => $baseDir . '/settings/Controller/GroupsController.php', 'OC\\Settings\\Controller\\LogSettingsController' => $baseDir . '/settings/Controller/LogSettingsController.php', 'OC\\Settings\\Controller\\MailSettingsController' => $baseDir . '/settings/Controller/MailSettingsController.php', 'OC\\Settings\\Controller\\PersonalSettingsController' => $baseDir . '/settings/Controller/PersonalSettingsController.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 9a1dfebf52b..f334733a2c9 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -943,7 +943,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Settings\\Controller\\ChangePasswordController' => __DIR__ . '/../../..' . '/settings/Controller/ChangePasswordController.php', 'OC\\Settings\\Controller\\CheckSetupController' => __DIR__ . '/../../..' . '/settings/Controller/CheckSetupController.php', 'OC\\Settings\\Controller\\CommonSettingsTrait' => __DIR__ . '/../../..' . '/settings/Controller/CommonSettingsTrait.php', - 'OC\\Settings\\Controller\\GroupsController' => __DIR__ . '/../../..' . '/settings/Controller/GroupsController.php', 'OC\\Settings\\Controller\\LogSettingsController' => __DIR__ . '/../../..' . '/settings/Controller/LogSettingsController.php', 'OC\\Settings\\Controller\\MailSettingsController' => __DIR__ . '/../../..' . '/settings/Controller/MailSettingsController.php', 'OC\\Settings\\Controller\\PersonalSettingsController' => __DIR__ . '/../../..' . '/settings/Controller/PersonalSettingsController.php', diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index a7ffb401b7b..759340a63c3 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -59,6 +59,11 @@ class Factory implements IFactory { */ protected $pluralFunctions = []; + const COMMON_LANGUAGE_CODES = [ + 'en', 'es', 'fr', 'de', 'de_DE', 'ja', 'ar', 'ru', 'nl', 'it', + 'pt_BR', 'pt_PT', 'da', 'fi_FI', 'nb_NO', 'sv', 'tr', 'zh_CN', 'ko' + ]; + /** @var IConfig */ protected $config; @@ -137,9 +142,9 @@ class Factory implements IFactory { * * @link https://github.com/owncloud/core/issues/21955 */ - if($this->config->getSystemValue('installed', false)) { + if ($this->config->getSystemValue('installed', false)) { $userId = !is_null($this->userSession->getUser()) ? $this->userSession->getUser()->getUID() : null; - if(!is_null($userId)) { + if (!is_null($userId)) { $userLang = $this->config->getUserValue($userId, 'core', 'lang', null); } else { $userLang = null; @@ -310,7 +315,7 @@ class Factory implements IFactory { */ private function isSubDirectory($sub, $parent) { // Check whether $sub contains no ".." - if(strpos($sub, '..') !== false) { + if (strpos($sub, '..') !== false) { return false; } @@ -441,4 +446,74 @@ class Factory implements IFactory { return $function; } } + + /** + * returns the common language and other languages in an + * associative array + * + * @return array + */ + public function getLanguages() { + $forceLanguage = $this->config->getSystemValue('force_language', false); + if ($forceLanguage !== false) { + return []; + } + + $languageCodes = $this->findAvailableLanguages(); + + $commonLanguages = []; + $languages = []; + + foreach($languageCodes as $lang) { + $l = $this->get('lib', $lang); + // TRANSLATORS this is the language name for the language switcher in the personal settings and should be the localized version + $potentialName = (string) $l->t('__language_name__'); + if ($l->getLanguageCode() === $lang && $potentialName[0] !== '_') {//first check if the language name is in the translation file + $ln = array( + 'code' => $lang, + 'name' => $potentialName + ); + } else if ($lang === 'en') { + $ln = array( + 'code' => $lang, + 'name' => 'English (US)' + ); + } else {//fallback to language code + $ln = array( + 'code' => $lang, + 'name' => $lang + ); + } + + // put appropriate languages into appropriate arrays, to print them sorted + // common languages -> divider -> other languages + if (in_array($lang, self::COMMON_LANGUAGE_CODES)) { + $commonLanguages[array_search($lang, self::COMMON_LANGUAGE_CODES)] = $ln; + } else { + $languages[] = $ln; + } + } + + ksort($commonLanguages); + + // sort now by displayed language not the iso-code + usort( $languages, function ($a, $b) { + if ($a['code'] === $a['name'] && $b['code'] !== $b['name']) { + // If a doesn't have a name, but b does, list b before a + return 1; + } + if ($a['code'] !== $a['name'] && $b['code'] === $b['name']) { + // If a does have a name, but b doesn't, list a before b + return -1; + } + // Otherwise compare the names + return strcmp($a['name'], $b['name']); + }); + + return [ + // reset indexes + 'commonlanguages' => array_values($commonLanguages), + 'languages' => $languages + ]; + } } diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php index 279c899c5fa..af6613759b3 100644 --- a/lib/private/NavigationManager.php +++ b/lib/private/NavigationManager.php @@ -247,7 +247,7 @@ class NavigationManager implements INavigationManager { 'type' => 'settings', 'id' => 'core_users', 'order' => 4, - 'href' => $this->urlGenerator->linkToRoute('settings_users'), + 'href' => $this->urlGenerator->linkToRoute('settings.Users.usersList'), 'name' => $l->t('Users'), 'icon' => $this->urlGenerator->imagePath('settings', 'users.svg'), ]); diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 813d06195b5..305e3fb0a4d 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -39,6 +39,7 @@ use OCP\L10N\IFactory; use OCP\Settings\ISettings; class PersonalInfo implements ISettings { + /** @var IConfig */ private $config; /** @var IUserManager */ @@ -51,12 +52,6 @@ class PersonalInfo implements ISettings { private $appManager; /** @var IFactory */ private $l10nFactory; - - const COMMON_LANGUAGE_CODES = [ - 'en', 'es', 'fr', 'de', 'de_DE', 'ja', 'ar', 'ru', 'nl', 'it', - 'pt_BR', 'pt_PT', 'da', 'fi_FI', 'nb_NO', 'sv', 'tr', 'zh_CN', 'ko' - ]; - /** @var IL10N */ private $l; @@ -198,64 +193,29 @@ class PersonalInfo implements ISettings { $uid = $user->getUID(); - $userLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage()); - $languageCodes = $this->l10nFactory->findAvailableLanguages(); - - $commonLanguages = []; - $languages = []; + $userConfLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage()); + $languages = $this->l10nFactory->getLanguages(); - foreach($languageCodes as $lang) { - $l = \OC::$server->getL10N('lib', $lang); - // TRANSLATORS this is the language name for the language switcher in the personal settings and should be the localized version - $potentialName = (string) $l->t('__language_name__'); - if($l->getLanguageCode() === $lang && $potentialName[0] !== '_') {//first check if the language name is in the translation file - $ln = array('code' => $lang, 'name' => $potentialName); - } elseif ($lang === 'en') { - $ln = ['code' => $lang, 'name' => 'English (US)']; - }else{//fallback to language code - $ln=array('code'=>$lang, 'name'=>$lang); - } - - // put appropriate languages into appropriate arrays, to print them sorted - // used language -> common languages -> divider -> other languages - if ($lang === $userLang) { - $userLang = $ln; - } elseif (in_array($lang, self::COMMON_LANGUAGE_CODES)) { - $commonLanguages[array_search($lang, self::COMMON_LANGUAGE_CODES)]=$ln; - } else { - $languages[]=$ln; - } + // associate the user language with the proper array + $userLangIndex = array_search($userConfLang, array_column($languages['commonlanguages'], 'code')); + $userLang = $languages['commonlanguages'][$userLangIndex]; + // search in the other languages + if ($userLangIndex === false) { + $userLangIndex = array_search($userConfLang, array_column($languages['languages'], 'code')); + $userLang = $languages['languages'][$userLangIndex]; } - // if user language is not available but set somehow: show the actual code as name if (!is_array($userLang)) { $userLang = [ - 'code' => $userLang, - 'name' => $userLang, + 'code' => $userConfLang, + 'name' => $userConfLang, ]; } - ksort($commonLanguages); - - // sort now by displayed language not the iso-code - usort( $languages, function ($a, $b) { - if ($a['code'] === $a['name'] && $b['code'] !== $b['name']) { - // If a doesn't have a name, but b does, list b before a - return 1; - } - if ($a['code'] !== $a['name'] && $b['code'] === $b['name']) { - // If a does have a name, but b doesn't, list a before b - return -1; - } - // Otherwise compare the names - return strcmp($a['name'], $b['name']); - }); - - return [ - 'activelanguage' => $userLang, - 'commonlanguages' => $commonLanguages, - 'languages' => $languages - ]; + return array_merge( + array('activelanguage' => $userLang), + $languages + ); } /** diff --git a/settings/.babelrc b/settings/.babelrc new file mode 100644 index 00000000000..bcea13f8a2d --- /dev/null +++ b/settings/.babelrc @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "env", + { + "targets": { + "browsers": ["last 2 versions", "ie >= 11"] + }, + "modules": false, + "blacklist": ["useStrict"], + "useBuiltIns": true + } + ] + ] +} diff --git a/settings/.editorconfig b/settings/.editorconfig new file mode 100644 index 00000000000..442058331bb --- /dev/null +++ b/settings/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +indent_style = tab +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[{package.json,.travis.yml,webpack.config.js}] +indent_style = space +indent_size = 2
\ No newline at end of file diff --git a/settings/.gitignore b/settings/.gitignore new file mode 100644 index 00000000000..a0446a54854 --- /dev/null +++ b/settings/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log +yarn-error.log + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln diff --git a/settings/Controller/GroupsController.php b/settings/Controller/GroupsController.php deleted file mode 100644 index 19b7c53f8b9..00000000000 --- a/settings/Controller/GroupsController.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OC\Settings\Controller; - -use OC\AppFramework\Http; -use OC\Group\MetaData; -use OCP\AppFramework\Controller; -use OCP\AppFramework\Http\DataResponse; -use OCP\IGroup; -use OCP\IGroupManager; -use OCP\IL10N; -use OCP\IRequest; -use OCP\IUserSession; - -/** - * @package OC\Settings\Controller - */ -class GroupsController extends Controller { - /** @var IGroupManager */ - private $groupManager; - /** @var IL10N */ - private $l10n; - /** @var IUserSession */ - private $userSession; - /** @var bool */ - private $isAdmin; - - /** - * @param string $appName - * @param IRequest $request - * @param IGroupManager $groupManager - * @param IUserSession $userSession - * @param bool $isAdmin - * @param IL10N $l10n - */ - public function __construct($appName, - IRequest $request, - IGroupManager $groupManager, - IUserSession $userSession, - $isAdmin, - IL10N $l10n) { - parent::__construct($appName, $request); - $this->groupManager = $groupManager; - $this->userSession = $userSession; - $this->isAdmin = $isAdmin; - $this->l10n = $l10n; - } - - /** - * @NoAdminRequired - * - * @param string $pattern - * @param bool $filterGroups - * @param int $sortGroups - * @return DataResponse - */ - public function index($pattern = '', $filterGroups = false, $sortGroups = MetaData::SORT_USERCOUNT) { - $groupPattern = $filterGroups ? $pattern : ''; - - $groupsInfo = new MetaData( - $this->userSession->getUser()->getUID(), - $this->isAdmin, - $this->groupManager, - $this->userSession - ); - $groupsInfo->setSorting($sortGroups); - list($adminGroups, $groups) = $groupsInfo->get($groupPattern, $pattern); - - return new DataResponse( - array( - 'data' => array('adminGroups' => $adminGroups, 'groups' => $groups) - ) - ); - } - - /** - * @PasswordConfirmationRequired - * @param string $id - * @return DataResponse - */ - public function create($id) { - if($this->groupManager->groupExists($id)) { - return new DataResponse( - array( - 'message' => (string)$this->l10n->t('Group already exists.') - ), - Http::STATUS_CONFLICT - ); - } - $group = $this->groupManager->createGroup($id); - if($group instanceof IGroup) { - return new DataResponse(['groupname' => $group->getDisplayName()], Http::STATUS_CREATED); - } - - return new DataResponse( - array( - 'status' => 'error', - 'data' => array( - 'message' => (string)$this->l10n->t('Unable to add group.') - ) - ), - Http::STATUS_FORBIDDEN - ); - } - - /** - * @PasswordConfirmationRequired - * @param string $id - * @return DataResponse - */ - public function destroy($id) { - $group = $this->groupManager->get($id); - if ($group) { - if ($group->delete()) { - return new DataResponse( - array( - 'status' => 'success', - 'data' => ['groupname' => $group->getDisplayName()] - ), - Http::STATUS_NO_CONTENT - ); - } - } - return new DataResponse( - array( - 'status' => 'error', - 'data' => array( - 'message' => (string)$this->l10n->t('Unable to delete group.') - ), - ), - Http::STATUS_FORBIDDEN - ); - } - -} diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php index 3f2e63f1bba..dfc04a3397f 100644 --- a/settings/Controller/UsersController.php +++ b/settings/Controller/UsersController.php @@ -42,76 +42,57 @@ namespace OC\Settings\Controller; use OC\Accounts\AccountManager; use OC\AppFramework\Http; use OC\ForbiddenException; -use OC\HintException; -use OC\Settings\Mailer\NewUserMailHelper; use OC\Security\IdentityProof\Manager; use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\TemplateResponse; use OCP\BackgroundJob\IJobList; -use OCP\Files\Config\IUserMountCache; -use OCP\Encryption\IEncryptionModule; use OCP\Encryption\IManager; use OCP\IConfig; use OCP\IGroupManager; use OCP\IL10N; -use OCP\ILogger; use OCP\IRequest; use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; +use OCP\L10N\IFactory; use OCP\Mail\IMailer; -use OCP\IAvatarManager; -use OCP\Security\ISecureRandom; -use OCP\Util; use OC\Settings\BackgroundJobs\VerifyUserData; /** * @package OC\Settings\Controller */ class UsersController extends Controller { - /** @var IL10N */ - private $l10n; - /** @var IUserSession */ - private $userSession; - /** @var bool */ - private $isAdmin; /** @var IUserManager */ private $userManager; /** @var IGroupManager */ private $groupManager; + /** @var IUserSession */ + private $userSession; /** @var IConfig */ private $config; - /** @var ILogger */ - private $log; + /** @var bool */ + private $isAdmin; + /** @var IL10N */ + private $l10n; /** @var IMailer */ private $mailer; - /** @var bool contains the state of the encryption app */ - private $isEncryptionAppEnabled; - /** @var bool contains the state of the admin recovery setting */ - private $isRestoreEnabled = false; + /** @var IFactory */ + private $l10nFactory; /** @var IAppManager */ private $appManager; - /** @var IAvatarManager */ - private $avatarManager; /** @var AccountManager */ private $accountManager; - /** @var ISecureRandom */ - private $secureRandom; - /** @var NewUserMailHelper */ - private $newUserMailHelper; /** @var Manager */ private $keyManager; /** @var IJobList */ private $jobList; - - /** @var IUserMountCache */ - private $userMountCache; - /** @var IManager */ private $encryptionManager; + public function __construct(string $appName, IRequest $request, IUserManager $userManager, @@ -120,17 +101,12 @@ class UsersController extends Controller { IConfig $config, bool $isAdmin, IL10N $l10n, - ILogger $log, IMailer $mailer, - IURLGenerator $urlGenerator, + IFactory $l10nFactory, IAppManager $appManager, - IAvatarManager $avatarManager, AccountManager $accountManager, - ISecureRandom $secureRandom, - NewUserMailHelper $newUserMailHelper, Manager $keyManager, IJobList $jobList, - IUserMountCache $userMountCache, IManager $encryptionManager) { parent::__construct($appName, $request); $this->userManager = $userManager; @@ -139,555 +115,144 @@ class UsersController extends Controller { $this->config = $config; $this->isAdmin = $isAdmin; $this->l10n = $l10n; - $this->log = $log; $this->mailer = $mailer; + $this->l10nFactory = $l10nFactory; $this->appManager = $appManager; - $this->avatarManager = $avatarManager; $this->accountManager = $accountManager; - $this->secureRandom = $secureRandom; - $this->newUserMailHelper = $newUserMailHelper; $this->keyManager = $keyManager; $this->jobList = $jobList; - $this->userMountCache = $userMountCache; $this->encryptionManager = $encryptionManager; - - // check for encryption state - TODO see formatUserForIndex - $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption'); - if ($this->isEncryptionAppEnabled) { - // putting this directly in empty is possible in PHP 5.5+ - $result = $config->getAppValue('encryption', 'recoveryAdminEnabled', '0'); - $this->isRestoreEnabled = !empty($result); - } } - /** - * @param IUser $user - * @param array|null $userGroups - * @return array - */ - private function formatUserForIndex(IUser $user, array $userGroups = null): array { - - // TODO: eliminate this encryption specific code below and somehow - // hook in additional user info from other apps - - // recovery isn't possible if admin or user has it disabled and encryption - // is enabled - so we eliminate the else paths in the conditional tree - // below - $restorePossible = false; - - if ($this->isEncryptionAppEnabled) { - if ($this->isRestoreEnabled) { - // check for the users recovery setting - $recoveryMode = $this->config->getUserValue($user->getUID(), 'encryption', 'recoveryEnabled', '0'); - // method call inside empty is possible with PHP 5.5+ - $recoveryModeEnabled = !empty($recoveryMode); - if ($recoveryModeEnabled) { - // user also has recovery mode enabled - $restorePossible = true; - } - } else { - $modules = $this->encryptionManager->getEncryptionModules(); - $restorePossible = true; - foreach ($modules as $id => $module) { - /* @var IEncryptionModule $instance */ - $instance = call_user_func($module['callback']); - if ($instance->needDetailedAccessList()) { - $restorePossible = false; - break; - } - } - } - } else { - // recovery is possible if encryption is disabled (plain files are - // available) - $restorePossible = true; - } - - $subAdminGroups = $this->groupManager->getSubAdmin()->getSubAdminsGroupsName($user); - - $displayName = $user->getEMailAddress(); - if (is_null($displayName)) { - $displayName = ''; - } - - $avatarAvailable = false; - try { - $avatarAvailable = $this->avatarManager->getAvatar($user->getUID())->exists(); - } catch (\Exception $e) { - //No avatar yet - } - - return [ - 'name' => $user->getUID(), - 'displayname' => $user->getDisplayName(), - 'groups' => empty($userGroups) ? $this->groupManager->getUserGroupNames($user) : $userGroups, - 'subadmin' => $subAdminGroups, - 'quota' => $user->getQuota(), - 'quota_bytes' => Util::computerFileSize($user->getQuota()), - 'storageLocation' => $user->getHome(), - 'lastLogin' => $user->getLastLogin() * 1000, - 'backend' => $user->getBackendClassName(), - 'email' => $displayName, - 'isRestoreDisabled' => !$restorePossible, - 'isAvatarAvailable' => $avatarAvailable, - 'isEnabled' => $user->isEnabled(), - ]; - } /** - * @param array $userIDs Array with schema [$uid => $displayName] - * @return IUser[] + * @NoCSRFRequired + * @NoAdminRequired + * + * Display users list template + * + * @return TemplateResponse */ - private function getUsersForUID(array $userIDs): array { - $users = []; - foreach ($userIDs as $uid => $displayName) { - $users[$uid] = $this->userManager->get($uid); - } - return $users; + public function usersListByGroup() { + return $this->usersList(); } /** + * @NoCSRFRequired * @NoAdminRequired - * - * @param int $offset - * @param int $limit - * @param string $gid GID to filter for - * @param string $pattern Pattern to search for in the username - * @param string $backend Backend to filter for (class-name) - * @return DataResponse - * - * TODO: Tidy up and write unit tests - code is mainly static method calls + * + * Display users list template + * + * @return TemplateResponse */ - public function index(int $offset = 0, int $limit = 10, string $gid = '', string $pattern = '', string $backend = ''): DataResponse { - // Remove backends - if (!empty($backend)) { - $activeBackends = $this->userManager->getBackends(); - $this->userManager->clearBackends(); - foreach ($activeBackends as $singleActiveBackend) { - if ($backend === get_class($singleActiveBackend)) { - $this->userManager->registerBackend($singleActiveBackend); - break; + public function usersList() { + $user = $this->userSession->getUser(); + $uid = $user->getUID(); + + \OC::$server->getNavigationManager()->setActiveEntry('core_users'); + + /* SORT OPTION: SORT_USERCOUNT or SORT_GROUPNAME */ + $sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT; + if ($this->config->getSystemValue('sort_groups_by_name', false)) { + $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME; + } else { + $isLDAPUsed = false; + if ($this->appManager->isEnabledForUser('user_ldap')) { + $isLDAPUsed = + $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_LDAP') + || $this->groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy'); + if ($isLDAPUsed) { + // LDAP user count can be slow, so we sort by group name here + $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME; } } } - - $userObjects = []; - $users = []; + + /* ENCRYPTION CONFIG */ + $isEncryptionEnabled = $this->encryptionManager->isEnabled(); + $useMasterKey = $this->config->getAppValue('encryption', 'useMasterKey', true); + // If masterKey enabled, then you can change password. This is to avoid data loss! + $canChangePassword = ($isEncryptionEnabled && $useMasterKey) || $useMasterKey; + + + /* GROUPS */ + $groupsInfo = new \OC\Group\MetaData( + $uid, + $this->isAdmin, + $this->groupManager, + $this->userSession + ); + + $groupsInfo->setSorting($sortGroupsBy); + list($adminGroup, $groups) = $groupsInfo->get(); + if ($this->isAdmin) { - if ($gid !== '' && $gid !== '_disabledUsers' && $gid !== '_everyone') { - $batch = $this->getUsersForUID($this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset)); - } else { - $batch = $this->userManager->search($pattern, $limit, $offset); + $subAdmins = $this->groupManager->getSubAdmin()->getAllSubAdmins(); + // New class returns IUser[] so convert back + $result = []; + foreach ($subAdmins as $subAdmin) { + $result[] = [ + 'gid' => $subAdmin['group']->getGID(), + 'uid' => $subAdmin['user']->getUID(), + ]; } - - foreach ($batch as $user) { - if (($gid !== '_disabledUsers' && $user->isEnabled()) || - ($gid === '_disabledUsers' && !$user->isEnabled()) - ) { - $userObjects[] = $user; - $users[] = $this->formatUserForIndex($user); - } - } - + $subAdmins = $result; } else { - $subAdminOfGroups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($this->userSession->getUser()); - // New class returns IGroup[] so convert back - $gids = []; - foreach ($subAdminOfGroups as $group) { - $gids[] = $group->getGID(); - } - $subAdminOfGroups = $gids; - - // Set the $gid parameter to an empty value if the subadmin has no rights to access a specific group - if ($gid !== '' && $gid !== '_disabledUsers' && !in_array($gid, $subAdminOfGroups)) { - $gid = ''; - } - - // Batch all groups the user is subadmin of when a group is specified - $batch = []; - if ($gid !== '' && $gid !== '_disabledUsers' && $gid !== '_everyone') { - $batch = $this->groupManager->displayNamesInGroup($gid, $pattern, $limit, $offset); - } else { - foreach ($subAdminOfGroups as $group) { - $groupUsers = $this->groupManager->displayNamesInGroup($group, $pattern, $limit, $offset); - - foreach ($groupUsers as $uid => $displayName) { - $batch[$uid] = $displayName; - } - } - } - $batch = $this->getUsersForUID($batch); - - foreach ($batch as $user) { - // Only add the groups, this user is a subadmin of - $userGroups = array_values(array_intersect( - $this->groupManager->getUserGroupIds($user), - $subAdminOfGroups - )); - if (($gid !== '_disabledUsers' && $user->isEnabled()) || - ($gid === '_disabledUsers' && !$user->isEnabled()) - ) { - $userObjects[] = $user; - $users[] = $this->formatUserForIndex($user, $userGroups); + /* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */ + $gids = array(); + foreach($groups as $group) { + if (isset($group['id'])) { + $gids[] = $group['id']; } } - } - - $usedSpace = $this->userMountCache->getUsedSpaceForUsers($userObjects); - - foreach ($users as &$userData) { - $userData['size'] = isset($usedSpace[$userData['name']]) ? $usedSpace[$userData['name']] : 0; - } - - return new DataResponse($users); - } - - /** - * @NoAdminRequired - * @PasswordConfirmationRequired - * - * @param string $username - * @param string $password - * @param array $groups - * @param string $email - * @return DataResponse - */ - public function create(string $username, string $password, array $groups = [], $email = ''): DataResponse { - if ($email !== '' && !$this->mailer->validateMailAddress($email)) { - return new DataResponse( - [ - 'message' => $this->l10n->t('Invalid mail address') - ], - Http::STATUS_UNPROCESSABLE_ENTITY - ); - } - - $currentUser = $this->userSession->getUser(); - - if (!$this->isAdmin) { - if (!empty($groups)) { - foreach ($groups as $key => $group) { - $groupObject = $this->groupManager->get($group); - if ($groupObject === null) { - unset($groups[$key]); - continue; - } - - if (!$this->groupManager->getSubAdmin()->isSubAdminOfGroup($currentUser, $groupObject)) { - unset($groups[$key]); - } - } - } - - if (empty($groups)) { - return new DataResponse( - [ - 'message' => $this->l10n->t('No valid group selected'), - ], - Http::STATUS_FORBIDDEN - ); - } - } - - if ($this->userManager->userExists($username)) { - return new DataResponse( - [ - 'message' => $this->l10n->t('A user with that name already exists.') - ], - Http::STATUS_CONFLICT - ); - } - - $generatePasswordResetToken = false; - if ($password === '') { - if ($email === '') { - return new DataResponse( - [ - 'message' => $this->l10n->t('To send a password link to the user an email address is required.') - ], - Http::STATUS_UNPROCESSABLE_ENTITY - ); - } - - $password = $this->secureRandom->generate(30); - // Make sure we pass the password_policy - $password .= $this->secureRandom->generate(2, '$!.,;:-~+*[]{}()'); - $generatePasswordResetToken = true; - } - - try { - $user = $this->userManager->createUser($username, $password); - } catch (\Exception $exception) { - $message = $exception->getMessage(); - if ($exception instanceof HintException && $exception->getHint()) { - $message = $exception->getHint(); - } - if (!$message) { - $message = $this->l10n->t('Unable to create user.'); - } - return new DataResponse( - [ - 'message' => (string)$message, - ], - Http::STATUS_FORBIDDEN - ); - } - - if ($user instanceof IUser) { - if ($groups !== null) { - foreach ($groups as $groupName) { - $group = $this->groupManager->get($groupName); - - if (empty($group)) { - $group = $this->groupManager->createGroup($groupName); - } - $group->addUser($user); - } - } - /** - * Send new user mail only if a mail is set - */ - if ($email !== '') { - $user->setEMailAddress($email); - try { - $emailTemplate = $this->newUserMailHelper->generateTemplate($user, $generatePasswordResetToken); - $this->newUserMailHelper->sendMail($user, $emailTemplate); - } catch (\Exception $e) { - $this->log->logException($e, [ - 'message' => "Can't send new user mail to $email", - 'level' => ILogger::ERROR, - 'app' => 'settings', - ]); - } - } - // fetch users groups - $userGroups = $this->groupManager->getUserGroupNames($user); - - return new DataResponse( - $this->formatUserForIndex($user, $userGroups), - Http::STATUS_CREATED - ); - } - - return new DataResponse( - [ - 'message' => $this->l10n->t('Unable to create user.') - ], - Http::STATUS_FORBIDDEN - ); - - } - - /** - * @NoAdminRequired - * @PasswordConfirmationRequired - * - * @param string $id - * @return DataResponse - */ - public function destroy(string $id): DataResponse { - $userId = $this->userSession->getUser()->getUID(); - $user = $this->userManager->get($id); - - if ($userId === $id) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Unable to delete user.') - ] - ], - Http::STATUS_FORBIDDEN - ); - } - - if (!$this->isAdmin && !$this->groupManager->getSubAdmin()->isUserAccessible($this->userSession->getUser(), $user)) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Authentication error') - ] - ], - Http::STATUS_FORBIDDEN - ); - } - - if ($user && $user->delete()) { - return new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => $id - ] - ], - Http::STATUS_NO_CONTENT - ); - } - - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Unable to delete user.') - ] - ], - Http::STATUS_FORBIDDEN - ); - } - - /** - * @NoAdminRequired - * - * @param string $id - * @param int $enabled - * @return DataResponse - */ - public function setEnabled(string $id, int $enabled): DataResponse { - $enabled = (bool)$enabled; - if ($enabled) { - $errorMsgGeneral = $this->l10n->t('Error while enabling user.'); - } else { - $errorMsgGeneral = $this->l10n->t('Error while disabling user.'); - } - - $userId = $this->userSession->getUser()->getUID(); - $user = $this->userManager->get($id); - - if ($userId === $id) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $errorMsgGeneral - ] - ], Http::STATUS_FORBIDDEN - ); - } - - if ($user) { - if (!$this->isAdmin && !$this->groupManager->getSubAdmin()->isUserAccessible($this->userSession->getUser(), $user)) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Authentication error') - ] - ], - Http::STATUS_FORBIDDEN - ); - } - - $user->setEnabled($enabled); - return new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => $id, - 'enabled' => $enabled - ] - ] - ); - } else { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $errorMsgGeneral - ] - ], - Http::STATUS_FORBIDDEN - ); - } - - } - - /** - * Set the mail address of a user - * - * @NoAdminRequired - * @NoSubadminRequired - * @PasswordConfirmationRequired - * - * @param string $account - * @param bool $onlyVerificationCode only return verification code without updating the data - * @return DataResponse - */ - public function getVerificationCode(string $account, bool $onlyVerificationCode): DataResponse { - - $user = $this->userSession->getUser(); - - if ($user === null) { - return new DataResponse([], Http::STATUS_BAD_REQUEST); - } - - $accountData = $this->accountManager->getUser($user); - $cloudId = $user->getCloudId(); - $message = 'Use my Federated Cloud ID to share with me: ' . $cloudId; - $signature = $this->signMessage($user, $message); - - $code = $message . ' ' . $signature; - $codeMd5 = $message . ' ' . md5($signature); - - switch ($account) { - case 'verify-twitter': - $accountData[AccountManager::PROPERTY_TWITTER]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; - $msg = $this->l10n->t('In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):'); - $code = $codeMd5; - $type = AccountManager::PROPERTY_TWITTER; - $data = $accountData[AccountManager::PROPERTY_TWITTER]['value']; - $accountData[AccountManager::PROPERTY_TWITTER]['signature'] = $signature; - break; - case 'verify-website': - $accountData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; - $msg = $this->l10n->t('In order to verify your Website, store the following content in your web-root at \'.well-known/CloudIdVerificationCode.txt\' (please make sure that the complete text is in one line):'); - $type = AccountManager::PROPERTY_WEBSITE; - $data = $accountData[AccountManager::PROPERTY_WEBSITE]['value']; - $accountData[AccountManager::PROPERTY_WEBSITE]['signature'] = $signature; - break; - default: - return new DataResponse([], Http::STATUS_BAD_REQUEST); - } - - if ($onlyVerificationCode === false) { - $this->accountManager->updateUser($user, $accountData); - - $this->jobList->add(VerifyUserData::class, - [ - 'verificationCode' => $code, - 'data' => $data, - 'type' => $type, - 'uid' => $user->getUID(), - 'try' => 0, - 'lastRun' => $this->getCurrentTime() - ] - ); - } - - return new DataResponse(['msg' => $msg, 'code' => $code]); - } - - /** - * get current timestamp - * - * @return int - */ - protected function getCurrentTime(): int { - return time(); - } - - /** - * sign message with users private key - * - * @param IUser $user - * @param string $message - * - * @return string base64 encoded signature - */ - protected function signMessage(IUser $user, string $message): string { - $privateKey = $this->keyManager->getKey($user)->getPrivate(); - openssl_sign(json_encode($message), $signature, $privateKey, OPENSSL_ALGO_SHA512); - return base64_encode($signature); + $subAdmins = false; + } + + $disabledUsers = $isLDAPUsed ? 0 : $this->userManager->countDisabledUsers(); + $disabledUsersGroup = [ + 'id' => 'disabled', + 'name' => 'Disabled users', + 'usercount' => $disabledUsers + ]; + $allGroups = array_merge_recursive($adminGroup, $groups); + + /* QUOTAS PRESETS */ + $quotaPreset = $this->config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB'); + $quotaPreset = explode(',', $quotaPreset); + foreach ($quotaPreset as &$preset) { + $preset = trim($preset); + } + $quotaPreset = array_diff($quotaPreset, array('default', 'none')); + $defaultQuota = $this->config->getAppValue('files', 'default_quota', 'none'); + + \OC::$server->getEventDispatcher()->dispatch('OC\Settings\Users::loadAdditionalScripts'); + + /* TOTAL USERS COUNT */ + $userCount = array_reduce($this->userManager->countUsers(), function($v, $w) { + return $v + (int)$w; + }, 0); + + /* LANGUAGES */ + $languages = $this->l10nFactory->getLanguages(); + + /* FINAL DATA */ + $serverData = array(); + // groups + $serverData['groups'] = array_merge_recursive($adminGroup, [$disabledUsersGroup], $groups); + $serverData['subadmingroups'] = $groups; + // Various data + $serverData['isAdmin'] = $this->isAdmin; + $serverData['subadmins'] = $subAdmins; + $serverData['sortGroups'] = $sortGroupsBy; + $serverData['quotaPreset'] = $quotaPreset; + $serverData['userCount'] = $userCount-$disabledUsers; + $serverData['languages'] = $languages; + $serverData['defaultLanguage'] = $this->config->getSystemValue('default_language', 'en'); + // Settings + $serverData['defaultQuota'] = $defaultQuota; + $serverData['canChangePassword'] = $canChangePassword; + + return new TemplateResponse('settings', 'settings', ['serverData' => $serverData]); } /** @@ -724,7 +289,6 @@ class UsersController extends Controller { $twitter, $twitterScope ) { - if (!empty($email) && !$this->mailer->validateMailAddress($email)) { return new DataResponse( [ @@ -736,17 +300,13 @@ class UsersController extends Controller { Http::STATUS_UNPROCESSABLE_ENTITY ); } - $user = $this->userSession->getUser(); - $data = $this->accountManager->getUser($user); - $data[AccountManager::PROPERTY_AVATAR] = ['scope' => $avatarScope]; if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { $data[AccountManager::PROPERTY_DISPLAYNAME] = ['value' => $displayname, 'scope' => $displaynameScope]; $data[AccountManager::PROPERTY_EMAIL] = ['value' => $email, 'scope' => $emailScope]; } - if ($this->appManager->isEnabledForUser('federatedfilesharing')) { $federatedFileSharing = new \OCA\FederatedFileSharing\AppInfo\Application(); $shareProvider = $federatedFileSharing->getFederatedShareProvider(); @@ -757,7 +317,6 @@ class UsersController extends Controller { $data[AccountManager::PROPERTY_TWITTER] = ['value' => $twitter, 'scope' => $twitterScope]; } } - try { $this->saveUserSettings($user, $data); return new DataResponse( @@ -787,10 +346,7 @@ class UsersController extends Controller { ], ]); } - } - - /** * update account manager with new user data * @@ -799,7 +355,6 @@ class UsersController extends Controller { * @throws ForbiddenException */ protected function saveUserSettings(IUser $user, array $data) { - // keep the user back-end up-to-date with the latest display name and email // address $oldDisplayName = $user->getDisplayName(); @@ -812,7 +367,6 @@ class UsersController extends Controller { throw new ForbiddenException($this->l10n->t('Unable to change full name')); } } - $oldEmailAddress = $user->getEMailAddress(); $oldEmailAddress = is_null($oldEmailAddress) ? '' : $oldEmailAddress; if (isset($data[AccountManager::PROPERTY_EMAIL]['value']) @@ -825,194 +379,94 @@ class UsersController extends Controller { } $user->setEMailAddress($data[AccountManager::PROPERTY_EMAIL]['value']); } - $this->accountManager->updateUser($user, $data); } /** - * Count all unique users visible for the current admin/subadmin. - * - * @NoAdminRequired - * - * @return DataResponse - */ - public function stats(): DataResponse { - $userCount = 0; - if ($this->isAdmin) { - $countByBackend = $this->userManager->countUsers(); - - if (!empty($countByBackend)) { - foreach ($countByBackend as $count) { - $userCount += $count; - } - } - } else { - $groups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($this->userSession->getUser()); - - $uniqueUsers = []; - foreach ($groups as $group) { - foreach ($group->getUsers() as $uid => $displayName) { - $uniqueUsers[$uid] = true; - } - } - - $userCount = count($uniqueUsers); - } - - return new DataResponse( - [ - 'totalUsers' => $userCount - ] - ); - } - - - /** - * Set the displayName of a user + * Set the mail address of a user * * @NoAdminRequired * @NoSubadminRequired * @PasswordConfirmationRequired - * @todo merge into saveUserSettings * - * @param string $username - * @param string $displayName + * @param string $account + * @param bool $onlyVerificationCode only return verification code without updating the data * @return DataResponse */ - public function setDisplayName(string $username, string $displayName) { - $currentUser = $this->userSession->getUser(); - $user = $this->userManager->get($username); + public function getVerificationCode(string $account, bool $onlyVerificationCode): DataResponse { - if ($user === null || - !$user->canChangeDisplayName() || - ( - !$this->groupManager->isAdmin($currentUser->getUID()) && - !$this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $user) && - $currentUser->getUID() !== $username + $user = $this->userSession->getUser(); - ) - ) { - return new DataResponse([ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Authentication error'), - ], - ]); + if ($user === null) { + return new DataResponse([], Http::STATUS_BAD_REQUEST); } - $userData = $this->accountManager->getUser($user); - $userData[AccountManager::PROPERTY_DISPLAYNAME]['value'] = $displayName; - + $accountData = $this->accountManager->getUser($user); + $cloudId = $user->getCloudId(); + $message = 'Use my Federated Cloud ID to share with me: ' . $cloudId; + $signature = $this->signMessage($user, $message); - try { - $this->saveUserSettings($user, $userData); - return new DataResponse([ - 'status' => 'success', - 'data' => [ - 'message' => $this->l10n->t('Your full name has been changed.'), - 'username' => $username, - 'displayName' => $displayName, - ], - ]); - } catch (ForbiddenException $e) { - return new DataResponse([ - 'status' => 'error', - 'data' => [ - 'message' => $e->getMessage(), - 'displayName' => $user->getDisplayName(), - ], - ]); - } - } + $code = $message . ' ' . $signature; + $codeMd5 = $message . ' ' . md5($signature); - /** - * Set the mail address of a user - * - * @NoAdminRequired - * @NoSubadminRequired - * @PasswordConfirmationRequired - * - * @param string $id - * @param string $mailAddress - * @return DataResponse - */ - public function setEMailAddress(string $id, string $mailAddress) { - $user = $this->userManager->get($id); - if (!$this->isAdmin - && !$this->groupManager->getSubAdmin()->isUserAccessible($this->userSession->getUser(), $user) - ) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Forbidden') - ] - ], - Http::STATUS_FORBIDDEN - ); + switch ($account) { + case 'verify-twitter': + $accountData[AccountManager::PROPERTY_TWITTER]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; + $msg = $this->l10n->t('In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):'); + $code = $codeMd5; + $type = AccountManager::PROPERTY_TWITTER; + $data = $accountData[AccountManager::PROPERTY_TWITTER]['value']; + $accountData[AccountManager::PROPERTY_TWITTER]['signature'] = $signature; + break; + case 'verify-website': + $accountData[AccountManager::PROPERTY_WEBSITE]['verified'] = AccountManager::VERIFICATION_IN_PROGRESS; + $msg = $this->l10n->t('In order to verify your Website, store the following content in your web-root at \'.well-known/CloudIdVerificationCode.txt\' (please make sure that the complete text is in one line):'); + $type = AccountManager::PROPERTY_WEBSITE; + $data = $accountData[AccountManager::PROPERTY_WEBSITE]['value']; + $accountData[AccountManager::PROPERTY_WEBSITE]['signature'] = $signature; + break; + default: + return new DataResponse([], Http::STATUS_BAD_REQUEST); } - if ($mailAddress !== '' && !$this->mailer->validateMailAddress($mailAddress)) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Invalid mail address') - ] - ], - Http::STATUS_UNPROCESSABLE_ENTITY - ); - } + if ($onlyVerificationCode === false) { + $this->accountManager->updateUser($user, $accountData); - if (!$user) { - return new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Invalid user') - ] - ], - Http::STATUS_UNPROCESSABLE_ENTITY - ); - } - // this is the only permission a backend provides and is also used - // for the permission of setting a email address - if (!$user->canChangeDisplayName()) { - return new DataResponse( + $this->jobList->add(VerifyUserData::class, [ - 'status' => 'error', - 'data' => [ - 'message' => $this->l10n->t('Unable to change mail address') - ] - ], - Http::STATUS_FORBIDDEN + 'verificationCode' => $code, + 'data' => $data, + 'type' => $type, + 'uid' => $user->getUID(), + 'try' => 0, + 'lastRun' => $this->getCurrentTime() + ] ); } - $userData = $this->accountManager->getUser($user); - $userData[AccountManager::PROPERTY_EMAIL]['value'] = $mailAddress; + return new DataResponse(['msg' => $msg, 'code' => $code]); + } - try { - $this->saveUserSettings($user, $userData); - return new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => $id, - 'mailAddress' => $mailAddress, - 'message' => $this->l10n->t('Email saved') - ] - ], - Http::STATUS_OK - ); - } catch (ForbiddenException $e) { - return new DataResponse([ - 'status' => 'error', - 'data' => [ - 'message' => $e->getMessage() - ], - ]); - } + /** + * get current timestamp + * + * @return int + */ + protected function getCurrentTime(): int { + return time(); } + /** + * sign message with users private key + * + * @param IUser $user + * @param string $message + * + * @return string base64 encoded signature + */ + protected function signMessage(IUser $user, string $message): string { + $privateKey = $this->keyManager->getKey($user)->getPrivate(); + openssl_sign(json_encode($message), $signature, $privateKey, OPENSSL_ALGO_SHA512); + return base64_encode($signature); + } } diff --git a/settings/Makefile b/settings/Makefile new file mode 100644 index 00000000000..98e1f89b384 --- /dev/null +++ b/settings/Makefile @@ -0,0 +1,26 @@ +all: dev-setup build-js-production + +dev-setup: clean clean-dev npm-init + +npm-init: + npm install + +npm-update: + npm update + +build-js: + npm run dev + +build-js-production: + npm run build + +watch-js: + npm run watch + +clean: + rm -f js/main.js + rm -f js/main.js.map + +clean-dev: + rm -rf node_modules + diff --git a/settings/README.md b/settings/README.md new file mode 100644 index 00000000000..6774ec1886c --- /dev/null +++ b/settings/README.md @@ -0,0 +1,19 @@ +# Settings section + +> Nextcloud settings with Vue + +## Build Setup + +``` bash +# install dependencies +make dev-setup + +# build for development +make build-js + +# build for development and watch edits +make watch-js + +# build for production with minification +make build-js-production +```
\ No newline at end of file diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php deleted file mode 100644 index b1155ee0f97..00000000000 --- a/settings/ajax/setquota.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> - * @author Björn Schießle <bjoern@schiessle.org> - * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Felix Moeller <mail@felixmoeller.de> - * @author Georg Ehrke <oc.list@georgehrke.com> - * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -OC_JSON::checkSubAdminUser(); -\OC_JSON::callCheck(); - -$lastConfirm = (int) \OC::$server->getSession()->get('last-password-confirm'); -if ($lastConfirm < (time() - 30 * 60 + 15)) { // allow 15 seconds delay - $l = \OC::$server->getL10N('core'); - OC_JSON::error(array( 'data' => array( 'message' => $l->t('Password confirmation is required')))); - exit(); -} - -$username = isset($_POST["username"]) ? (string)$_POST["username"] : ''; - -$isUserAccessible = false; -$currentUserObject = \OC::$server->getUserSession()->getUser(); -$targetUserObject = \OC::$server->getUserManager()->get($username); -if($targetUserObject !== null && $currentUserObject !== null) { - $isUserAccessible = \OC::$server->getGroupManager()->getSubAdmin()->isUserAccessible($currentUserObject, $targetUserObject); -} - -if(($username === '' && !OC_User::isAdminUser(OC_User::getUser())) - || (!OC_User::isAdminUser(OC_User::getUser()) - && !$isUserAccessible)) { - $l = \OC::$server->getL10N('core'); - OC_JSON::error(array( 'data' => array( 'message' => $l->t('Authentication error') ))); - exit(); -} - -//make sure the quota is in the expected format -$quota= (string)$_POST["quota"]; -if($quota !== 'none' and $quota !== 'default') { - $quota= OC_Helper::computerFileSize($quota); - $quota=OC_Helper::humanFileSize($quota); -} - -// Return Success story -if($username) { - $targetUserObject->setQuota($quota); -}else{//set the default quota when no username is specified - if($quota === 'default') {//'default' as default quota makes no sense - $quota='none'; - } - \OC::$server->getConfig()->setAppValue('files', 'default_quota', $quota); -} -OC_JSON::success(array("data" => array( "username" => $username , 'quota' => $quota))); - diff --git a/settings/ajax/togglesubadmins.php b/settings/ajax/togglesubadmins.php deleted file mode 100644 index c115568bca7..00000000000 --- a/settings/ajax/togglesubadmins.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Bart Visscher <bartv@thisnet.nl> - * @author Georg Ehrke <oc.list@georgehrke.com> - * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ -OC_JSON::checkAdminUser(); -\OC_JSON::callCheck(); - -$lastConfirm = (int) \OC::$server->getSession()->get('last-password-confirm'); -if ($lastConfirm < (time() - 30 * 60 + 15)) { // allow 15 seconds delay - $l = \OC::$server->getL10N('core'); - OC_JSON::error(array( 'data' => array( 'message' => $l->t('Password confirmation is required')))); - exit(); -} - -$username = (string)$_POST['username']; -$group = (string)$_POST['group']; - -$subAdminManager = \OC::$server->getGroupManager()->getSubAdmin(); -$targetUserObject = \OC::$server->getUserManager()->get($username); -$targetGroupObject = \OC::$server->getGroupManager()->get($group); - -$isSubAdminOfGroup = false; -if($targetUserObject !== null && $targetGroupObject !== null) { - $isSubAdminOfGroup = $subAdminManager->isSubAdminOfGroup($targetUserObject, $targetGroupObject); -} - -// Toggle group -if($isSubAdminOfGroup) { - $subAdminManager->deleteSubAdmin($targetUserObject, $targetGroupObject); -} else { - $subAdminManager->createSubAdmin($targetUserObject, $targetGroupObject); -} - -OC_JSON::success(); diff --git a/settings/css/settings.scss b/settings/css/settings.scss index 97767ce2f22..6e95d4bdc27 100644 --- a/settings/css/settings.scss +++ b/settings/css/settings.scss @@ -675,101 +675,6 @@ span.usersLastLoginTooltip { } } -tr:hover > td { - &.password > span, &.displayName > span, &.mailAddress > span { - margin: 0; - cursor: pointer; - } - &.password > img, &.displayName > img, &.mailAddress > img { - visibility: visible; - cursor: pointer; - } -} - -td.userActions { - .toggleUserActions { - width: 44px; - height: 44px; - position: relative; - .action { - display: block; - padding: 14px; - opacity: 0.5; - .icon-more { - display: inline-block; - } - &:hover, - &:focus { - opacity: 1; - } - } - } -} - -div.recoveryPassword { - left: 50em; - display: block; - position: absolute; - top: -1px; -} - -input#recoveryPassword { - width: 15em; -} - -#controls select.quota { - margin: 3px; - margin-right: 10px; - height: 37px; -} - -#userlist td.quota { - position: relative; - width: 10em; - progress.quota-user-progress { - position: absolute; - width: calc(10em + 0px); - margin-top: -7px; - z-index: 0; - margin-left: 1px; - height: 3px; - } -} - -select { - &.quota-user { - width: 10em; - height: 34px; - z-index: 50; - position: relative; - } - + progress.quota-user-progress { - position: absolute; - width: calc(10em + 0px); - margin-top: -7px; - z-index: 0; - margin-left: 1px; - height: 3px; - } -} - -input.userFilter { - width: 200px; -} - -#newusergroups + input[type='submit'] { - position: relative; - top: -1px; -} - -#headerGroups, #headerSubAdmins, #headerQuota { - padding-left: 18px; -} - -#headerAvatar { - width: 32px; -} - /* used to highlight a user row in red */ #userlist tr.row-warning { @@ -1350,3 +1255,178 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { margin-top: 22px; } } + + +/* USERS LIST -------------------------------------------------------------- */ +#body-settings { + #app-navigation { + /* Hack to override the javascript orderBy */ + #usergrouplist > li { + order: 4; + &#everyone { + order:1; + } + &#admin { + order:2; + } + &#disabled { + order:3; + } + } + } + $grid-row-height: 46px; + #app-content.user-list-grid { + display: grid; + grid-auto-columns: 1fr; + grid-auto-rows: $grid-row-height; + grid-column-gap: 20px; + .row { + // TODO replace with css4 subgrid when available + display: grid; + grid-row-start: span 1; + grid-gap: 3px; + align-items: center; + /* let's define the column until storage path, + what follows will be manually defined */ + grid-template-columns: 44px; + grid-auto-columns: min-content; + border-top: $color-border 1px solid; + &.disabled { + opacity: .5; + } + .name, + .displayName, + .password { + width: 150px; + } + .mailAddress, + .groups, + .subadmins { + width: 200px; + } + .quota { + width: 150px; + } + .languages { + width: 200px; + } + .storageLocation { + width: 250px; + } + .userBackend, + .lastLogin, + .userActions { + width: 100px; + } + &#grid-header, + &#new-user { + position: sticky; + align-self: normal; + background-color: $color-main-background; + z-index: 55; /* above multiselect */ + top: 0; + &.sticky { + box-shadow: 0 -2px 10px 1px $color-box-shadow; + } + /* fake input for groups validation */ + input#newgroups { + position: absolute; + opacity: 0; + width: 80% !important; + margin: 0 10%; + z-index: 0; + } + } + // separate prop to set initial value to top:0 + &#new-user { + top: $grid-row-height; + } + &#grid-header { + color: nc-lighten($color-main-text, 60%); + z-index: 60; /* above new-user */ + } + &:hover { + input:not([type='submit']):not(:focus):not(:active) { + border-color: nc-darken($color-main-background, 14%) !important; + } + } + > div, + > form { + grid-row: 1; + display: inline-flex; + align-items: center; + color: nc-lighten($color-main-text, 33%); + position: relative; + > input:not(:focus):not(:active) { + border-color: transparent; + cursor: pointer; + } + > input:focus, >input:active { + + .icon-confirm { + display: block !important; + } + } + &:not(.userActions) > input:not([type='submit']) { + width: 100%; + min-width: 0; + } + &.quota { + .multiselect--active + progress { + display: none; + } + progress { + position: absolute; + width: calc(100% - 4px); /* minus left and right */ + left: 2px; + bottom: 2px; + height: 3px; + z-index: 5; /* above multiselect */ + } + } + .icon-confirm { + width: 32px; + height: 32px; + flex: 0 0 32px; + cursor: pointer; + &:not(:active) { + display: none; + } + } + &.avatar { + height: 32px; + width: 32px; + margin: 6px; + img { + display: block; + } + } + .toggleUserActions { + position: relative; + .icon-more { + width: 44px; + height: 44px; + opacity: .5; + cursor: pointer; + :hover { + opacity: .7; + } + } + } + /* Fill the grid cell */ + .multiselect.multiselect-vue { + width: 100%; + } + } + } + .infinite-loading-container { + display: flex; + align-items: center; + justify-content: center; + grid-row-start: span 4; + } + .users-list-end { + opacity: .5; + user-select: none; + } + } +} diff --git a/settings/js/main.js b/settings/js/main.js new file mode 100644 index 00000000000..a9797974ee3 --- /dev/null +++ b/settings/js/main.js @@ -0,0 +1,56 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=109)}([function(t,e,n){var r=n(2),i=n(37),o=n(12),s=n(20),a=n(18),u=function(t,e,n){var c,l,f,p,d=t&u.F,h=t&u.G,v=t&u.S,m=t&u.P,g=t&u.B,y=h?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,b=h?i:i[e]||(i[e]={}),_=b.prototype||(b.prototype={});for(c in h&&(n=e),n)f=((l=!d&&y&&void 0!==y[c])?y:n)[c],p=g&&l?a(f,r):m&&"function"==typeof f?a(Function.call,f):f,y&&s(y,c,f,t&u.U),b[c]!=f&&o(b,c,p),m&&_[c]!=f&&(_[c]=f)};r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},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 r=n(1);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(68)("wks"),i=n(25),o=n(2).Symbol,s="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=s&&o[t]||(s?o:i)("Symbol."+t))}).store=r},function(t,e,n){"use strict";(function(t,n){ +/*! + * Vue.js v2.5.16 + * (c) 2014-2018 Evan You + * Released under the MIT License. + */ +var r=Object.freeze({});function i(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function s(t){return!0===t}function a(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function u(t){return null!==t&&"object"==typeof t}var c=Object.prototype.toString;function l(t){return"[object Object]"===c.call(t)}function f(t){return"[object RegExp]"===c.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}var m=v("slot,component",!0),g=v("key,ref,slot,slot-scope,is");function y(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(t,e){return b.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var x=/-(\w)/g,O=w(function(t){return t.replace(x,function(t,e){return e?e.toUpperCase():""})}),S=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,k=w(function(t){return t.replace(C,"-$1").toLowerCase()});var E=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function A(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function $(t,e){for(var n in e)t[n]=e[n];return t}function L(t){for(var e={},n=0;n<t.length;n++)t[n]&&$(e,t[n]);return e}function T(t,e,n){}var P=function(t,e,n){return!1},j=function(t){return t};function N(t,e){if(t===e)return!0;var n=u(t),r=u(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var i=Array.isArray(t),o=Array.isArray(e);if(i&&o)return t.length===e.length&&t.every(function(t,n){return N(t,e[n])});if(i||o)return!1;var s=Object.keys(t),a=Object.keys(e);return s.length===a.length&&s.every(function(n){return N(t[n],e[n])})}catch(t){return!1}}function M(t,e){for(var n=0;n<t.length;n++)if(N(t[n],e))return n;return-1}function U(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var I="data-server-rendered",F=["component","directive","filter"],R=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],D={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:P,isReservedAttr:P,isUnknownElement:P,getTagNamespace:T,parsePlatformTagName:j,mustUseProp:P,_lifecycleHooks:R};function B(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var G=/[^\w.$]/;var V,H="__proto__"in{},q="undefined"!=typeof window,z="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,W=z&&WXEnvironment.platform.toLowerCase(),K=q&&window.navigator.userAgent.toLowerCase(),Y=K&&/msie|trident/.test(K),Q=K&&K.indexOf("msie 9.0")>0,J=K&&K.indexOf("edge/")>0,X=(K&&K.indexOf("android"),K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===W),Z=(K&&/chrome\/\d+/.test(K),{}.watch),tt=!1;if(q)try{var et={};Object.defineProperty(et,"passive",{get:function(){tt=!0}}),window.addEventListener("test-passive",null,et)}catch(t){}var nt=function(){return void 0===V&&(V=!q&&!z&&void 0!==t&&"server"===t.process.env.VUE_ENV),V},rt=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var ot,st="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);ot="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var at=T,ut=0,ct=function(){this.id=ut++,this.subs=[]};ct.prototype.addSub=function(t){this.subs.push(t)},ct.prototype.removeSub=function(t){y(this.subs,t)},ct.prototype.depend=function(){ct.target&&ct.target.addDep(this)},ct.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e<n;e++)t[e].update()},ct.target=null;var lt=[];function ft(t){ct.target&<.push(ct.target),ct.target=t}function pt(){ct.target=lt.pop()}var dt=function(t,e,n,r,i,o,s,a){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=s,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=a,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ht={child:{configurable:!0}};ht.child.get=function(){return this.componentInstance},Object.defineProperties(dt.prototype,ht);var vt=function(t){void 0===t&&(t="");var e=new dt;return e.text=t,e.isComment=!0,e};function mt(t){return new dt(void 0,void 0,void 0,String(t))}function gt(t){var e=new dt(t.tag,t.data,t.children,t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.isCloned=!0,e}var yt=Array.prototype,bt=Object.create(yt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=yt[t];B(bt,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=e.apply(this,n),s=this.__ob__;switch(t){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&s.observeArray(i),s.dep.notify(),o})});var _t=Object.getOwnPropertyNames(bt),wt=!0;function xt(t){wt=t}var Ot=function(t){(this.value=t,this.dep=new ct,this.vmCount=0,B(t,"__ob__",this),Array.isArray(t))?((H?St:Ct)(t,bt,_t),this.observeArray(t)):this.walk(t)};function St(t,e,n){t.__proto__=e}function Ct(t,e,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];B(t,o,e[o])}}function kt(t,e){var n;if(u(t)&&!(t instanceof dt))return _(t,"__ob__")&&t.__ob__ instanceof Ot?n=t.__ob__:wt&&!nt()&&(Array.isArray(t)||l(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Ot(t)),e&&n&&n.vmCount++,n}function Et(t,e,n,r,i){var o=new ct,s=Object.getOwnPropertyDescriptor(t,e);if(!s||!1!==s.configurable){var a=s&&s.get;a||2!==arguments.length||(n=t[e]);var u=s&&s.set,c=!i&&kt(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=a?a.call(t):n;return ct.target&&(o.depend(),c&&(c.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,i=e.length;r<i;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=a?a.call(t):n;e===r||e!=e&&r!=r||(u?u.call(t,e):n=e,c=!i&&kt(e),o.notify())}})}}function At(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(Et(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function $t(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||_(t,e)&&(delete t[e],n&&n.dep.notify())}}Ot.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Et(t,e[n])},Ot.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)kt(t[e])};var Lt=D.optionMergeStrategies;function Tt(t,e){if(!e)return t;for(var n,r,i,o=Object.keys(e),s=0;s<o.length;s++)r=t[n=o[s]],i=e[n],_(t,n)?l(r)&&l(i)&&Tt(r,i):At(t,n,i);return t}function Pt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,i="function"==typeof t?t.call(n,n):t;return r?Tt(r,i):i}:e?t?function(){return Tt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function jt(t,e){return e?t?t.concat(e):Array.isArray(e)?e:[e]:t}function Nt(t,e,n,r){var i=Object.create(t||null);return e?$(i,e):i}Lt.data=function(t,e,n){return n?Pt(t,e,n):e&&"function"!=typeof e?t:Pt(t,e)},R.forEach(function(t){Lt[t]=jt}),F.forEach(function(t){Lt[t+"s"]=Nt}),Lt.watch=function(t,e,n,r){if(t===Z&&(t=void 0),e===Z&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var i={};for(var o in $(i,t),e){var s=i[o],a=e[o];s&&!Array.isArray(s)&&(s=[s]),i[o]=s?s.concat(a):Array.isArray(a)?a:[a]}return i},Lt.props=Lt.methods=Lt.inject=Lt.computed=function(t,e,n,r){if(!t)return e;var i=Object.create(null);return $(i,t),e&&$(i,e),i},Lt.provide=Pt;var Mt=function(t,e){return void 0===e?t:e};function Ut(t,e,n){"function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[O(i)]={type:null});else if(l(n))for(var s in n)i=n[s],o[O(s)]=l(i)?i:{type:i};t.props=o}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(l(n))for(var o in n){var s=n[o];r[o]=l(s)?$({from:o},s):{from:s}}}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e);var r=e.extends;if(r&&(t=Ut(t,r,n)),e.mixins)for(var i=0,o=e.mixins.length;i<o;i++)t=Ut(t,e.mixins[i],n);var s,a={};for(s in t)u(s);for(s in e)_(t,s)||u(s);function u(r){var i=Lt[r]||Mt;a[r]=i(t[r],e[r],n,r)}return a}function It(t,e,n,r){if("string"==typeof n){var i=t[e];if(_(i,n))return i[n];var o=O(n);if(_(i,o))return i[o];var s=S(o);return _(i,s)?i[s]:i[n]||i[o]||i[s]}}function Ft(t,e,n,r){var i=e[t],o=!_(n,t),s=n[t],a=Bt(Boolean,i.type);if(a>-1)if(o&&!_(i,"default"))s=!1;else if(""===s||s===k(t)){var u=Bt(String,i.type);(u<0||a<u)&&(s=!0)}if(void 0===s){s=function(t,e,n){if(!_(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Rt(e.type)?r.call(t):r}(r,i,t);var c=wt;xt(!0),kt(s),xt(c)}return s}function Rt(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Dt(t,e){return Rt(t)===Rt(e)}function Bt(t,e){if(!Array.isArray(e))return Dt(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Dt(e[n],t))return n;return-1}function Gt(t,e,n){if(e)for(var r=e;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,t,e,n))return}catch(t){Vt(t,r,"errorCaptured hook")}}Vt(t,e,n)}function Vt(t,e,n){if(D.errorHandler)try{return D.errorHandler.call(null,t,e,n)}catch(t){Ht(t,null,"config.errorHandler")}Ht(t,e,n)}function Ht(t,e,n){if(!q&&!z||"undefined"==typeof console)throw t;console.error(t)}var qt,zt,Wt=[],Kt=!1;function Yt(){Kt=!1;var t=Wt.slice(0);Wt.length=0;for(var e=0;e<t.length;e++)t[e]()}var Qt=!1;if(void 0!==n&&it(n))zt=function(){n(Yt)};else if("undefined"==typeof MessageChannel||!it(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())zt=function(){setTimeout(Yt,0)};else{var Jt=new MessageChannel,Xt=Jt.port2;Jt.port1.onmessage=Yt,zt=function(){Xt.postMessage(1)}}if("undefined"!=typeof Promise&&it(Promise)){var Zt=Promise.resolve();qt=function(){Zt.then(Yt),X&&setTimeout(T)}}else qt=zt;function te(t,e){var n;if(Wt.push(function(){if(t)try{t.call(e)}catch(t){Gt(t,e,"nextTick")}else n&&n(e)}),Kt||(Kt=!0,Qt?zt():qt()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}var ee=new ot;function ne(t){!function t(e,n){var r,i;var o=Array.isArray(e);if(!o&&!u(e)||Object.isFrozen(e)||e instanceof dt)return;if(e.__ob__){var s=e.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(o)for(r=e.length;r--;)t(e[r],n);else for(i=Object.keys(e),r=i.length;r--;)t(e[i[r]],n)}(t,ee),ee.clear()}var re,ie=w(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function oe(t){function e(){var t=arguments,n=e.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var r=n.slice(),i=0;i<r.length;i++)r[i].apply(null,t)}return e.fns=t,e}function se(t,e,n,r,o){var s,a,u,c;for(s in t)a=t[s],u=e[s],c=ie(s),i(a)||(i(u)?(i(a.fns)&&(a=t[s]=oe(a)),n(c.name,a,c.once,c.capture,c.passive,c.params)):a!==u&&(u.fns=a,t[s]=u));for(s in e)i(t[s])&&r((c=ie(s)).name,e[s],c.capture)}function ae(t,e,n){var r;t instanceof dt&&(t=t.data.hook||(t.data.hook={}));var a=t[e];function u(){n.apply(this,arguments),y(r.fns,u)}i(a)?r=oe([u]):o(a.fns)&&s(a.merged)?(r=a).fns.push(u):r=oe([a,u]),r.merged=!0,t[e]=r}function ue(t,e,n,r,i){if(o(e)){if(_(e,n))return t[n]=e[n],i||delete e[n],!0;if(_(e,r))return t[n]=e[r],i||delete e[r],!0}return!1}function ce(t){return a(t)?[mt(t)]:Array.isArray(t)?function t(e,n){var r=[];var u,c,l,f;for(u=0;u<e.length;u++)i(c=e[u])||"boolean"==typeof c||(l=r.length-1,f=r[l],Array.isArray(c)?c.length>0&&(le((c=t(c,(n||"")+"_"+u))[0])&&le(f)&&(r[l]=mt(f.text+c[0].text),c.shift()),r.push.apply(r,c)):a(c)?le(f)?r[l]=mt(f.text+c):""!==c&&r.push(mt(c)):le(c)&&le(f)?r[l]=mt(f.text+c.text):(s(e._isVList)&&o(c.tag)&&i(c.key)&&o(n)&&(c.key="__vlist"+n+"_"+u+"__"),r.push(c)));return r}(t):void 0}function le(t){return o(t)&&o(t.text)&&!1===t.isComment}function fe(t,e){return(t.__esModule||st&&"Module"===t[Symbol.toStringTag])&&(t=t.default),u(t)?e.extend(t):t}function pe(t){return t.isComment&&t.asyncFactory}function de(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(o(n)&&(o(n.componentOptions)||pe(n)))return n}}function he(t,e,n){n?re.$once(t,e):re.$on(t,e)}function ve(t,e){re.$off(t,e)}function me(t,e,n){re=t,se(e,n||{},he,ve),re=void 0}function ge(t,e){var n={};if(!t)return n;for(var r=0,i=t.length;r<i;r++){var o=t[r],s=o.data;if(s&&s.attrs&&s.attrs.slot&&delete s.attrs.slot,o.context!==e&&o.fnContext!==e||!s||null==s.slot)(n.default||(n.default=[])).push(o);else{var a=s.slot,u=n[a]||(n[a]=[]);"template"===o.tag?u.push.apply(u,o.children||[]):u.push(o)}}for(var c in n)n[c].every(ye)&&delete n[c];return n}function ye(t){return t.isComment&&!t.asyncFactory||" "===t.text}function be(t,e){e=e||{};for(var n=0;n<t.length;n++)Array.isArray(t[n])?be(t[n],e):e[t[n].key]=t[n].fn;return e}var _e=null;function we(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function xe(t,e){if(e){if(t._directInactive=!1,we(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)xe(t.$children[n]);Oe(t,"activated")}}function Oe(t,e){ft();var n=t.$options[e];if(n)for(var r=0,i=n.length;r<i;r++)try{n[r].call(t)}catch(n){Gt(n,t,e+" hook")}t._hasHookEvent&&t.$emit("hook:"+e),pt()}var Se=[],Ce=[],ke={},Ee=!1,Ae=!1,$e=0;function Le(){var t,e;for(Ae=!0,Se.sort(function(t,e){return t.id-e.id}),$e=0;$e<Se.length;$e++)e=(t=Se[$e]).id,ke[e]=null,t.run();var n=Ce.slice(),r=Se.slice();$e=Se.length=Ce.length=0,ke={},Ee=Ae=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,xe(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&Oe(r,"updated")}}(r),rt&&D.devtools&&rt.emit("flush")}var Te=0,Pe=function(t,e,n,r,i){this.vm=t,i&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Te,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ot,this.newDepIds=new ot,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!G.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};Pe.prototype.get=function(){var t;ft(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;Gt(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&ne(t),pt(),this.cleanupDeps()}return t},Pe.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},Pe.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Pe.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==ke[e]){if(ke[e]=!0,Ae){for(var n=Se.length-1;n>$e&&Se[n].id>t.id;)n--;Se.splice(n+1,0,t)}else Se.push(t);Ee||(Ee=!0,te(Le))}}(this)},Pe.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Gt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},Pe.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Pe.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},Pe.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var je={enumerable:!0,configurable:!0,get:T,set:T};function Ne(t,e,n){je.get=function(){return this[e][n]},je.set=function(t){this[e][n]=t},Object.defineProperty(t,n,je)}function Me(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[];t.$parent&&xt(!1);var o=function(o){i.push(o);var s=Ft(o,e,n,t);Et(r,o,s),o in t||Ne(t,"_props",o)};for(var s in e)o(s);xt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?T:E(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){ft();try{return t.call(e,e)}catch(t){return Gt(t,e,"data()"),{}}finally{pt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&_(r,o)||(void 0,36!==(s=(o+"").charCodeAt(0))&&95!==s&&Ne(t,"_data",o))}var s;kt(e,!0)}(t):kt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=nt();for(var i in e){var o=e[i],s="function"==typeof o?o:o.get;0,r||(n[i]=new Pe(t,s||T,T,Ue)),i in t||Ie(t,i,o)}}(t,e.computed),e.watch&&e.watch!==Z&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Re(t,n,r[i]);else Re(t,n,r)}}(t,e.watch)}var Ue={lazy:!0};function Ie(t,e,n){var r=!nt();"function"==typeof n?(je.get=r?Fe(e):n,je.set=T):(je.get=n.get?r&&!1!==n.cache?Fe(e):n.get:T,je.set=n.set?n.set:T),Object.defineProperty(t,e,je)}function Fe(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ct.target&&e.depend(),e.value}}function Re(t,e,n,r){return l(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function De(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),i=0;i<r.length;i++){for(var o=r[i],s=t[o].from,a=e;a;){if(a._provided&&_(a._provided,s)){n[o]=a._provided[s];break}a=a.$parent}if(!a)if("default"in t[o]){var u=t[o].default;n[o]="function"==typeof u?u.call(e):u}else 0}return n}}function Be(t,e){var n,r,i,s,a;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,i=t.length;r<i;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(u(t))for(s=Object.keys(t),n=new Array(s.length),r=0,i=s.length;r<i;r++)a=s[r],n[r]=e(t[a],a,r);return o(n)&&(n._isVList=!0),n}function Ge(t,e,n,r){var i,o=this.$scopedSlots[t];if(o)n=n||{},r&&(n=$($({},r),n)),i=o(n)||e;else{var s=this.$slots[t];s&&(s._rendered=!0),i=s||e}var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function Ve(t){return It(this.$options,"filters",t)||j}function He(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function qe(t,e,n,r,i){var o=D.keyCodes[e]||n;return i&&r&&!D.keyCodes[e]?He(i,r):o?He(o,t):r?k(r)!==e:void 0}function ze(t,e,n,r,i){if(n)if(u(n)){var o;Array.isArray(n)&&(n=L(n));var s=function(s){if("class"===s||"style"===s||g(s))o=t;else{var a=t.attrs&&t.attrs.type;o=r||D.mustUseProp(e,a,s)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}s in o||(o[s]=n[s],i&&((t.on||(t.on={}))["update:"+s]=function(t){n[s]=t}))};for(var a in n)s(a)}else;return t}function We(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(Ye(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function Ke(t,e,n){return Ye(t,"__once__"+e+(n?"_"+n:""),!0),t}function Ye(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Qe(t[r],e+"_"+r,n);else Qe(t,e,n)}function Qe(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Je(t,e){if(e)if(l(e)){var n=t.on=t.on?$({},t.on):{};for(var r in e){var i=n[r],o=e[r];n[r]=i?[].concat(i,o):o}}else;return t}function Xe(t){t._o=Ke,t._n=h,t._s=d,t._l=Be,t._t=Ge,t._q=N,t._i=M,t._m=We,t._f=Ve,t._k=qe,t._b=ze,t._v=mt,t._e=vt,t._u=be,t._g=Je}function Ze(t,e,n,i,o){var a,u=o.options;_(i,"_uid")?(a=Object.create(i))._original=i:(a=i,i=i._original);var c=s(u._compiled),l=!c;this.data=t,this.props=e,this.children=n,this.parent=i,this.listeners=t.on||r,this.injections=De(u.inject,i),this.slots=function(){return ge(n,i)},c&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=t.scopedSlots||r),u._scopeId?this._c=function(t,e,n,r){var o=un(a,t,e,n,r,l);return o&&!Array.isArray(o)&&(o.fnScopeId=u._scopeId,o.fnContext=i),o}:this._c=function(t,e,n,r){return un(a,t,e,n,r,l)}}function tn(t,e,n,r){var i=gt(t);return i.fnContext=n,i.fnOptions=r,e.slot&&((i.data||(i.data={})).slot=e.slot),i}function en(t,e){for(var n in e)t[O(n)]=e[n]}Xe(Ze.prototype);var nn={init:function(t,e,n,r){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var i=t;nn.prepatch(i,i)}else{(t.componentInstance=function(t,e,n,r){var i={_isComponent:!0,parent:e,_parentVnode:t,_parentElm:n||null,_refElm:r||null},s=t.data.inlineTemplate;o(s)&&(i.render=s.render,i.staticRenderFns=s.staticRenderFns);return new t.componentOptions.Ctor(i)}(t,_e,n,r)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,i,o){var s=!!(o||t.$options._renderChildren||i.data.scopedSlots||t.$scopedSlots!==r);if(t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i),t.$options._renderChildren=o,t.$attrs=i.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){xt(!1);for(var a=t._props,u=t.$options._propKeys||[],c=0;c<u.length;c++){var l=u[c],f=t.$options.props;a[l]=Ft(l,f,e,t)}xt(!0),t.$options.propsData=e}n=n||r;var p=t.$options._parentListeners;t.$options._parentListeners=n,me(t,n,p),s&&(t.$slots=ge(o,i.context),t.$forceUpdate())}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,Oe(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,Ce.push(e)):xe(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(!(n&&(e._directInactive=!0,we(e))||e._inactive)){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);Oe(e,"deactivated")}}(e,!0):e.$destroy())}},rn=Object.keys(nn);function on(t,e,n,a,c){if(!i(t)){var l=n.$options._base;if(u(t)&&(t=l.extend(t)),"function"==typeof t){var f;if(i(t.cid)&&void 0===(t=function(t,e,n){if(s(t.error)&&o(t.errorComp))return t.errorComp;if(o(t.resolved))return t.resolved;if(s(t.loading)&&o(t.loadingComp))return t.loadingComp;if(!o(t.contexts)){var r=t.contexts=[n],a=!0,c=function(){for(var t=0,e=r.length;t<e;t++)r[t].$forceUpdate()},l=U(function(n){t.resolved=fe(n,e),a||c()}),f=U(function(e){o(t.errorComp)&&(t.error=!0,c())}),p=t(l,f);return u(p)&&("function"==typeof p.then?i(t.resolved)&&p.then(l,f):o(p.component)&&"function"==typeof p.component.then&&(p.component.then(l,f),o(p.error)&&(t.errorComp=fe(p.error,e)),o(p.loading)&&(t.loadingComp=fe(p.loading,e),0===p.delay?t.loading=!0:setTimeout(function(){i(t.resolved)&&i(t.error)&&(t.loading=!0,c())},p.delay||200)),o(p.timeout)&&setTimeout(function(){i(t.resolved)&&f(null)},p.timeout))),a=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(n)}(f=t,l,n)))return function(t,e,n,r,i){var o=vt();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}(f,e,n,a,c);e=e||{},ln(t),o(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.props||(e.props={}))[n]=e.model.value;var i=e.on||(e.on={});o(i[r])?i[r]=[e.model.callback].concat(i[r]):i[r]=e.model.callback}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!i(r)){var s={},a=t.attrs,u=t.props;if(o(a)||o(u))for(var c in r){var l=k(c);ue(s,u,c,l,!0)||ue(s,a,c,l,!1)}return s}}(e,t);if(s(t.options.functional))return function(t,e,n,i,s){var a=t.options,u={},c=a.props;if(o(c))for(var l in c)u[l]=Ft(l,c,e||r);else o(n.attrs)&&en(u,n.attrs),o(n.props)&&en(u,n.props);var f=new Ze(n,u,s,i,t),p=a.render.call(null,f._c,f);if(p instanceof dt)return tn(p,n,f.parent,a);if(Array.isArray(p)){for(var d=ce(p)||[],h=new Array(d.length),v=0;v<d.length;v++)h[v]=tn(d[v],n,f.parent,a);return h}}(t,p,e,n,a);var d=e.on;if(e.on=e.nativeOn,s(t.options.abstract)){var h=e.slot;e={},h&&(e.slot=h)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<rn.length;n++){var r=rn[n];e[r]=nn[r]}}(e);var v=t.options.name||c;return new dt("vue-component-"+t.cid+(v?"-"+v:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:d,tag:c,children:a},f)}}}var sn=1,an=2;function un(t,e,n,r,c,l){return(Array.isArray(n)||a(n))&&(c=r,r=n,n=void 0),s(l)&&(c=an),function(t,e,n,r,a){if(o(n)&&o(n.__ob__))return vt();o(n)&&o(n.is)&&(e=n.is);if(!e)return vt();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);a===an?r=ce(r):a===sn&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var c,l;if("string"==typeof e){var f;l=t.$vnode&&t.$vnode.ns||D.getTagNamespace(e),c=D.isReservedTag(e)?new dt(D.parsePlatformTagName(e),n,r,void 0,void 0,t):o(f=It(t.$options,"components",e))?on(f,n,t,r,e):new dt(e,n,r,void 0,void 0,t)}else c=on(e,n,t,r);return Array.isArray(c)?c:o(c)?(o(l)&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(o(e.children))for(var a=0,u=e.children.length;a<u;a++){var c=e.children[a];o(c.tag)&&(i(c.ns)||s(r)&&"svg"!==c.tag)&&t(c,n,r)}}(c,l),o(n)&&function(t){u(t.style)&&ne(t.style);u(t.class)&&ne(t.class)}(n),c):vt()}(t,e,n,r,c)}var cn=0;function ln(t){var e=t.options;if(t.super){var n=ln(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.extendOptions,i=t.sealedOptions;for(var o in n)n[o]!==i[o]&&(e||(e={}),e[o]=fn(n[o],r[o],i[o]));return e}(t);r&&$(t.extendOptions,r),(e=t.options=Ut(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function fn(t,e,n){if(Array.isArray(t)){var r=[];n=Array.isArray(n)?n:[n],e=Array.isArray(e)?e:[e];for(var i=0;i<t.length;i++)(e.indexOf(t[i])>=0||n.indexOf(t[i])<0)&&r.push(t[i]);return r}return t}function pn(t){this._init(t)}function dn(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name;var s=function(t){this._init(t)};return(s.prototype=Object.create(n.prototype)).constructor=s,s.cid=e++,s.options=Ut(n.options,t),s.super=n,s.options.props&&function(t){var e=t.options.props;for(var n in e)Ne(t.prototype,"_props",n)}(s),s.options.computed&&function(t){var e=t.options.computed;for(var n in e)Ie(t.prototype,n,e[n])}(s),s.extend=n.extend,s.mixin=n.mixin,s.use=n.use,F.forEach(function(t){s[t]=n[t]}),o&&(s.options.components[o]=s),s.superOptions=n.options,s.extendOptions=t,s.sealedOptions=$({},s.options),i[r]=s,s}}function hn(t){return t&&(t.Ctor.options.name||t.tag)}function vn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function mn(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var s=n[o];if(s){var a=hn(s.componentOptions);a&&!e(a)&&gn(n,o,r,i)}}}function gn(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=cn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r,n._parentElm=e._parentElm,n._refElm=e._refElm;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Ut(ln(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&me(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,i=n&&n.context;t.$slots=ge(e._renderChildren,i),t.$scopedSlots=r,t._c=function(e,n,r,i){return un(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return un(t,e,n,r,i,!0)};var o=n&&n.data;Et(t,"$attrs",o&&o.attrs||r,null,!0),Et(t,"$listeners",e._parentListeners||r,null,!0)}(e),Oe(e,"beforeCreate"),function(t){var e=De(t.$options.inject,t);e&&(xt(!1),Object.keys(e).forEach(function(n){Et(t,n,e[n])}),xt(!0))}(e),Me(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),Oe(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(pn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=At,t.prototype.$delete=$t,t.prototype.$watch=function(t,e,n){if(l(e))return Re(this,t,e,n);(n=n||{}).user=!0;var r=new Pe(this,t,e,n);return n.immediate&&e.call(this,r.value),function(){r.teardown()}}}(pn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){if(Array.isArray(t))for(var r=0,i=t.length;r<i;r++)this.$on(t[r],n);else(this._events[t]||(this._events[t]=[])).push(n),e.test(t)&&(this._hasHookEvent=!0);return this},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,i=t.length;r<i;r++)this.$off(t[r],e);return n}var o=n._events[t];if(!o)return n;if(!e)return n._events[t]=null,n;if(e)for(var s,a=o.length;a--;)if((s=o[a])===e||s.fn===e){o.splice(a,1);break}return n},t.prototype.$emit=function(t){var e=this._events[t];if(e){e=e.length>1?A(e):e;for(var n=A(arguments,1),r=0,i=e.length;r<i;r++)try{e[r].apply(this,n)}catch(e){Gt(e,this,'event handler for "'+t+'"')}}return this}}(pn),function(t){t.prototype._update=function(t,e){var n=this;n._isMounted&&Oe(n,"beforeUpdate");var r=n.$el,i=n._vnode,o=_e;_e=n,n._vnode=t,i?n.$el=n.__patch__(i,t):(n.$el=n.__patch__(n.$el,t,e,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),_e=o,r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Oe(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||y(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Oe(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(pn),function(t){Xe(t.prototype),t.prototype.$nextTick=function(t){return te(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,i=n.render,o=n._parentVnode;o&&(e.$scopedSlots=o.data.scopedSlots||r),e.$vnode=o;try{t=i.call(e._renderProxy,e.$createElement)}catch(n){Gt(n,e,"render"),t=e._vnode}return t instanceof dt||(t=vt()),t.parent=o,t}}(pn);var yn=[String,RegExp,Array],bn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:yn,exclude:yn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)gn(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",function(e){mn(t,function(t){return vn(e,t)})}),this.$watch("exclude",function(e){mn(t,function(t){return!vn(e,t)})})},render:function(){var t=this.$slots.default,e=de(t),n=e&&e.componentOptions;if(n){var r=hn(n),i=this.include,o=this.exclude;if(i&&(!r||!vn(i,r))||o&&r&&vn(o,r))return e;var s=this.cache,a=this.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;s[u]?(e.componentInstance=s[u].componentInstance,y(a,u),a.push(u)):(s[u]=e,a.push(u),this.max&&a.length>parseInt(this.max)&&gn(s,a[0],a,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return D}};Object.defineProperty(t,"config",e),t.util={warn:at,extend:$,mergeOptions:Ut,defineReactive:Et},t.set=At,t.delete=$t,t.nextTick=te,t.options=Object.create(null),F.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,$(t.options.components,bn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=A(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Ut(this.options,t),this}}(t),dn(t),function(t){F.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(pn),Object.defineProperty(pn.prototype,"$isServer",{get:nt}),Object.defineProperty(pn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(pn,"FunctionalRenderContext",{value:Ze}),pn.version="2.5.16";var _n=v("style,class"),wn=v("input,textarea,option,select,progress"),xn=function(t,e,n){return"value"===n&&wn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},On=v("contenteditable,draggable,spellcheck"),Sn=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Cn="http://www.w3.org/1999/xlink",kn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},En=function(t){return kn(t)?t.slice(6,t.length):""},An=function(t){return null==t||!1===t};function $n(t){for(var e=t.data,n=t,r=t;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Ln(r.data,e));for(;o(n=n.parent);)n&&n.data&&(e=Ln(e,n.data));return function(t,e){if(o(t)||o(e))return Tn(t,Pn(e));return""}(e.staticClass,e.class)}function Ln(t,e){return{staticClass:Tn(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Tn(t,e){return t?e?t+" "+e:t:e||""}function Pn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,i=t.length;r<i;r++)o(e=Pn(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):u(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var jn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Nn=v("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Mn=v("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Un=function(t){return Nn(t)||Mn(t)};function In(t){return Mn(t)?"svg":"math"===t?"math":void 0}var Fn=Object.create(null);var Rn=v("text,number,password,search,email,tel,url");function Dn(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}var Bn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(jn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),Gn={create:function(t,e){Vn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Vn(t,!0),Vn(e))},destroy:function(t){Vn(t,!0)}};function Vn(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,s=r.$refs;e?Array.isArray(s[n])?y(s[n],i):s[n]===i&&(s[n]=void 0):t.data.refInFor?Array.isArray(s[n])?s[n].indexOf(i)<0&&s[n].push(i):s[n]=[i]:s[n]=i}}var Hn=new dt("",{},[]),qn=["create","activate","update","remove","destroy"];function zn(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||Rn(r)&&Rn(i)}(t,e)||s(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&i(e.asyncFactory.error))}function Wn(t,e,n){var r,i,s={};for(r=e;r<=n;++r)o(i=t[r].key)&&(s[i]=r);return s}var Kn={create:Yn,update:Yn,destroy:function(t){Yn(t,Hn)}};function Yn(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,i,o=t===Hn,s=e===Hn,a=Jn(t.data.directives,t.context),u=Jn(e.data.directives,e.context),c=[],l=[];for(n in u)r=a[n],i=u[n],r?(i.oldValue=r.value,Zn(i,"update",e,t),i.def&&i.def.componentUpdated&&l.push(i)):(Zn(i,"bind",e,t),i.def&&i.def.inserted&&c.push(i));if(c.length){var f=function(){for(var n=0;n<c.length;n++)Zn(c[n],"inserted",e,t)};o?ae(e,"insert",f):f()}l.length&&ae(e,"postpatch",function(){for(var n=0;n<l.length;n++)Zn(l[n],"componentUpdated",e,t)});if(!o)for(n in a)u[n]||Zn(a[n],"unbind",t,t,s)}(t,e)}var Qn=Object.create(null);function Jn(t,e){var n,r,i=Object.create(null);if(!t)return i;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=Qn),i[Xn(r)]=r,r.def=It(e.$options,"directives",r.name);return i}function Xn(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function Zn(t,e,n,r,i){var o=t.def&&t.def[e];if(o)try{o(n.elm,t,n,r,i)}catch(r){Gt(r,n.context,"directive "+t.name+" "+e+" hook")}}var tr=[Gn,Kn];function er(t,e){var n=e.componentOptions;if(!(o(n)&&!1===n.Ctor.options.inheritAttrs||i(t.data.attrs)&&i(e.data.attrs))){var r,s,a=e.elm,u=t.data.attrs||{},c=e.data.attrs||{};for(r in o(c.__ob__)&&(c=e.data.attrs=$({},c)),c)s=c[r],u[r]!==s&&nr(a,r,s);for(r in(Y||J)&&c.value!==u.value&&nr(a,"value",c.value),u)i(c[r])&&(kn(r)?a.removeAttributeNS(Cn,En(r)):On(r)||a.removeAttribute(r))}}function nr(t,e,n){t.tagName.indexOf("-")>-1?rr(t,e,n):Sn(e)?An(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):On(e)?t.setAttribute(e,An(n)||"false"===n?"false":"true"):kn(e)?An(n)?t.removeAttributeNS(Cn,En(e)):t.setAttributeNS(Cn,e,n):rr(t,e,n)}function rr(t,e,n){if(An(n))t.removeAttribute(e);else{if(Y&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var ir={create:er,update:er};function or(t,e){var n=e.elm,r=e.data,s=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(s)||i(s.staticClass)&&i(s.class)))){var a=$n(e),u=n._transitionClasses;o(u)&&(a=Tn(a,Pn(u))),a!==n._prevClass&&(n.setAttribute("class",a),n._prevClass=a)}}var sr,ar,ur,cr,lr,fr,pr={create:or,update:or},dr=/[\w).+\-_$\]]/;function hr(t){var e,n,r,i,o,s=!1,a=!1,u=!1,c=!1,l=0,f=0,p=0,d=0;for(r=0;r<t.length;r++)if(n=e,e=t.charCodeAt(r),s)39===e&&92!==n&&(s=!1);else if(a)34===e&&92!==n&&(a=!1);else if(u)96===e&&92!==n&&(u=!1);else if(c)47===e&&92!==n&&(c=!1);else if(124!==e||124===t.charCodeAt(r+1)||124===t.charCodeAt(r-1)||l||f||p){switch(e){case 34:a=!0;break;case 39:s=!0;break;case 96:u=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===e){for(var h=r-1,v=void 0;h>=0&&" "===(v=t.charAt(h));h--);v&&dr.test(v)||(c=!0)}}else void 0===i?(d=r+1,i=t.slice(0,r).trim()):m();function m(){(o||(o=[])).push(t.slice(d,r).trim()),d=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=vr(i,o[r]);return i}function vr(t,e){var n=e.indexOf("(");if(n<0)return'_f("'+e+'")('+t+")";var r=e.slice(0,n),i=e.slice(n+1);return'_f("'+r+'")('+t+(")"!==i?","+i:i)}function mr(t){console.error("[Vue compiler]: "+t)}function gr(t,e){return t?t.map(function(t){return t[e]}).filter(function(t){return t}):[]}function yr(t,e,n){(t.props||(t.props=[])).push({name:e,value:n}),t.plain=!1}function br(t,e,n){(t.attrs||(t.attrs=[])).push({name:e,value:n}),t.plain=!1}function _r(t,e,n){t.attrsMap[e]=n,t.attrsList.push({name:e,value:n})}function wr(t,e,n,r,i,o){(t.directives||(t.directives=[])).push({name:e,rawName:n,value:r,arg:i,modifiers:o}),t.plain=!1}function xr(t,e,n,i,o,s){var a;(i=i||r).capture&&(delete i.capture,e="!"+e),i.once&&(delete i.once,e="~"+e),i.passive&&(delete i.passive,e="&"+e),"click"===e&&(i.right?(e="contextmenu",delete i.right):i.middle&&(e="mouseup")),i.native?(delete i.native,a=t.nativeEvents||(t.nativeEvents={})):a=t.events||(t.events={});var u={value:n.trim()};i!==r&&(u.modifiers=i);var c=a[e];Array.isArray(c)?o?c.unshift(u):c.push(u):a[e]=c?o?[u,c]:[c,u]:u,t.plain=!1}function Or(t,e,n){var r=Sr(t,":"+e)||Sr(t,"v-bind:"+e);if(null!=r)return hr(r);if(!1!==n){var i=Sr(t,e);if(null!=i)return JSON.stringify(i)}}function Sr(t,e,n){var r;if(null!=(r=t.attrsMap[e]))for(var i=t.attrsList,o=0,s=i.length;o<s;o++)if(i[o].name===e){i.splice(o,1);break}return n&&delete t.attrsMap[e],r}function Cr(t,e,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var s=kr(e,o);t.model={value:"("+e+")",expression:'"'+e+'"',callback:"function ($$v) {"+s+"}"}}function kr(t,e){var n=function(t){if(t=t.trim(),sr=t.length,t.indexOf("[")<0||t.lastIndexOf("]")<sr-1)return(cr=t.lastIndexOf("."))>-1?{exp:t.slice(0,cr),key:'"'+t.slice(cr+1)+'"'}:{exp:t,key:null};ar=t,cr=lr=fr=0;for(;!Ar();)$r(ur=Er())?Tr(ur):91===ur&&Lr(ur);return{exp:t.slice(0,lr),key:t.slice(lr+1,fr)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Er(){return ar.charCodeAt(++cr)}function Ar(){return cr>=sr}function $r(t){return 34===t||39===t}function Lr(t){var e=1;for(lr=cr;!Ar();)if($r(t=Er()))Tr(t);else if(91===t&&e++,93===t&&e--,0===e){fr=cr;break}}function Tr(t){for(var e=t;!Ar()&&(t=Er())!==e;);}var Pr,jr="__r",Nr="__c";function Mr(t,e,n,r,i){var o;e=(o=e)._withTask||(o._withTask=function(){Qt=!0;var t=o.apply(null,arguments);return Qt=!1,t}),n&&(e=function(t,e,n){var r=Pr;return function i(){null!==t.apply(null,arguments)&&Ur(e,i,n,r)}}(e,t,r)),Pr.addEventListener(t,e,tt?{capture:r,passive:i}:r)}function Ur(t,e,n,r){(r||Pr).removeEventListener(t,e._withTask||e,n)}function Ir(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Pr=e.elm,function(t){if(o(t[jr])){var e=Y?"change":"input";t[e]=[].concat(t[jr],t[e]||[]),delete t[jr]}o(t[Nr])&&(t.change=[].concat(t[Nr],t.change||[]),delete t[Nr])}(n),se(n,r,Mr,Ur,e.context),Pr=void 0}}var Fr={create:Ir,update:Ir};function Rr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,s=e.elm,a=t.data.domProps||{},u=e.data.domProps||{};for(n in o(u.__ob__)&&(u=e.data.domProps=$({},u)),a)i(u[n])&&(s[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===a[n])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===n){s._value=r;var c=i(r)?"":String(r);Dr(s,c)&&(s.value=c)}else s[n]=r}}}function Dr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.lazy)return!1;if(r.number)return h(n)!==h(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Br={create:Rr,update:Rr},Gr=w(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Vr(t){var e=Hr(t.style);return t.staticStyle?$(t.staticStyle,e):e}function Hr(t){return Array.isArray(t)?L(t):"string"==typeof t?Gr(t):t}var qr,zr=/^--/,Wr=/\s*!important$/,Kr=function(t,e,n){if(zr.test(e))t.style.setProperty(e,n);else if(Wr.test(n))t.style.setProperty(e,n.replace(Wr,""),"important");else{var r=Qr(e);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)t.style[r]=n[i];else t.style[r]=n}},Yr=["Webkit","Moz","ms"],Qr=w(function(t){if(qr=qr||document.createElement("div").style,"filter"!==(t=O(t))&&t in qr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Yr.length;n++){var r=Yr[n]+e;if(r in qr)return r}});function Jr(t,e){var n=e.data,r=t.data;if(!(i(n.staticStyle)&&i(n.style)&&i(r.staticStyle)&&i(r.style))){var s,a,u=e.elm,c=r.staticStyle,l=r.normalizedStyle||r.style||{},f=c||l,p=Hr(e.data.style)||{};e.data.normalizedStyle=o(p.__ob__)?$({},p):p;var d=function(t,e){var n,r={};if(e)for(var i=t;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=Vr(i.data))&&$(r,n);(n=Vr(t.data))&&$(r,n);for(var o=t;o=o.parent;)o.data&&(n=Vr(o.data))&&$(r,n);return r}(e,!0);for(a in f)i(d[a])&&Kr(u,a,"");for(a in d)(s=d[a])!==f[a]&&Kr(u,a,null==s?"":s)}}var Xr={create:Jr,update:Jr};function Zr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ti(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function ei(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&$(e,ni(t.name||"v")),$(e,t),e}return"string"==typeof t?ni(t):void 0}}var ni=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),ri=q&&!Q,ii="transition",oi="animation",si="transition",ai="transitionend",ui="animation",ci="animationend";ri&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(si="WebkitTransition",ai="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ui="WebkitAnimation",ci="webkitAnimationEnd"));var li=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function fi(t){li(function(){li(t)})}function pi(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Zr(t,e))}function di(t,e){t._transitionClasses&&y(t._transitionClasses,e),ti(t,e)}function hi(t,e,n){var r=mi(t,e),i=r.type,o=r.timeout,s=r.propCount;if(!i)return n();var a=i===ii?ai:ci,u=0,c=function(){t.removeEventListener(a,l),n()},l=function(e){e.target===t&&++u>=s&&c()};setTimeout(function(){u<s&&c()},o+1),t.addEventListener(a,l)}var vi=/\b(transform|all)(,|$)/;function mi(t,e){var n,r=window.getComputedStyle(t),i=r[si+"Delay"].split(", "),o=r[si+"Duration"].split(", "),s=gi(i,o),a=r[ui+"Delay"].split(", "),u=r[ui+"Duration"].split(", "),c=gi(a,u),l=0,f=0;return e===ii?s>0&&(n=ii,l=s,f=o.length):e===oi?c>0&&(n=oi,l=c,f=u.length):f=(n=(l=Math.max(s,c))>0?s>c?ii:oi:null)?n===ii?o.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===ii&&vi.test(r[si+"Property"])}}function gi(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return yi(e)+yi(t[n])}))}function yi(t){return 1e3*Number(t.slice(0,-1))}function bi(t,e){var n=t.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=ei(t.data.transition);if(!i(r)&&!o(n._enterCb)&&1===n.nodeType){for(var s=r.css,a=r.type,c=r.enterClass,l=r.enterToClass,f=r.enterActiveClass,p=r.appearClass,d=r.appearToClass,v=r.appearActiveClass,m=r.beforeEnter,g=r.enter,y=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,x=r.afterAppear,O=r.appearCancelled,S=r.duration,C=_e,k=_e.$vnode;k&&k.parent;)C=(k=k.parent).context;var E=!C._isMounted||!t.isRootInsert;if(!E||w||""===w){var A=E&&p?p:c,$=E&&v?v:f,L=E&&d?d:l,T=E&&_||m,P=E&&"function"==typeof w?w:g,j=E&&x||y,N=E&&O||b,M=h(u(S)?S.enter:S);0;var I=!1!==s&&!Q,F=xi(P),R=n._enterCb=U(function(){I&&(di(n,L),di(n,$)),R.cancelled?(I&&di(n,A),N&&N(n)):j&&j(n),n._enterCb=null});t.data.show||ae(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),P&&P(n,R)}),T&&T(n),I&&(pi(n,A),pi(n,$),fi(function(){di(n,A),R.cancelled||(pi(n,L),F||(wi(M)?setTimeout(R,M):hi(n,a,R)))})),t.data.show&&(e&&e(),P&&P(n,R)),I||F||R()}}}function _i(t,e){var n=t.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=ei(t.data.transition);if(i(r)||1!==n.nodeType)return e();if(!o(n._leaveCb)){var s=r.css,a=r.type,c=r.leaveClass,l=r.leaveToClass,f=r.leaveActiveClass,p=r.beforeLeave,d=r.leave,v=r.afterLeave,m=r.leaveCancelled,g=r.delayLeave,y=r.duration,b=!1!==s&&!Q,_=xi(d),w=h(u(y)?y.leave:y);0;var x=n._leaveCb=U(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(di(n,l),di(n,f)),x.cancelled?(b&&di(n,c),m&&m(n)):(e(),v&&v(n)),n._leaveCb=null});g?g(O):O()}function O(){x.cancelled||(t.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(pi(n,c),pi(n,f),fi(function(){di(n,c),x.cancelled||(pi(n,l),_||(wi(w)?setTimeout(x,w):hi(n,a,x)))})),d&&d(n,x),b||_||x())}}function wi(t){return"number"==typeof t&&!isNaN(t)}function xi(t){if(i(t))return!1;var e=t.fns;return o(e)?xi(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Oi(t,e){!0!==e.data.show&&bi(e)}var Si=function(t){var e,n,r={},u=t.modules,c=t.nodeOps;for(e=0;e<qn.length;++e)for(r[qn[e]]=[],n=0;n<u.length;++n)o(u[n][qn[e]])&&r[qn[e]].push(u[n][qn[e]]);function l(t){var e=c.parentNode(t);o(e)&&c.removeChild(e,t)}function f(t,e,n,i,a,u,l){if(o(t.elm)&&o(u)&&(t=u[l]=gt(t)),t.isRootInsert=!a,!function(t,e,n,i){var a=t.data;if(o(a)){var u=o(t.componentInstance)&&a.keepAlive;if(o(a=a.hook)&&o(a=a.init)&&a(t,!1,n,i),o(t.componentInstance))return p(t,e),s(u)&&function(t,e,n,i){for(var s,a=t;a.componentInstance;)if(a=a.componentInstance._vnode,o(s=a.data)&&o(s=s.transition)){for(s=0;s<r.activate.length;++s)r.activate[s](Hn,a);e.push(a);break}d(n,t.elm,i)}(t,e,n,i),!0}}(t,e,n,i)){var f=t.data,v=t.children,m=t.tag;o(m)?(t.elm=t.ns?c.createElementNS(t.ns,m):c.createElement(m,t),y(t),h(t,v,e),o(f)&&g(t,e),d(n,t.elm,i)):s(t.isComment)?(t.elm=c.createComment(t.text),d(n,t.elm,i)):(t.elm=c.createTextNode(t.text),d(n,t.elm,i))}}function p(t,e){o(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,m(t)?(g(t,e),y(t)):(Vn(t),e.push(t))}function d(t,e,n){o(t)&&(o(n)?n.parentNode===t&&c.insertBefore(t,e,n):c.appendChild(t,e))}function h(t,e,n){if(Array.isArray(e))for(var r=0;r<e.length;++r)f(e[r],n,t.elm,null,!0,e,r);else a(t.text)&&c.appendChild(t.elm,c.createTextNode(String(t.text)))}function m(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return o(t.tag)}function g(t,n){for(var i=0;i<r.create.length;++i)r.create[i](Hn,t);o(e=t.data.hook)&&(o(e.create)&&e.create(Hn,t),o(e.insert)&&n.push(t))}function y(t){var e;if(o(e=t.fnScopeId))c.setStyleScope(t.elm,e);else for(var n=t;n;)o(e=n.context)&&o(e=e.$options._scopeId)&&c.setStyleScope(t.elm,e),n=n.parent;o(e=_e)&&e!==t.context&&e!==t.fnContext&&o(e=e.$options._scopeId)&&c.setStyleScope(t.elm,e)}function b(t,e,n,r,i,o){for(;r<=i;++r)f(n[r],o,t,e,!1,n,r)}function _(t){var e,n,i=t.data;if(o(i))for(o(e=i.hook)&&o(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(o(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function w(t,e,n,r){for(;n<=r;++n){var i=e[n];o(i)&&(o(i.tag)?(x(i),_(i)):l(i.elm))}}function x(t,e){if(o(e)||o(t.data)){var n,i=r.remove.length+1;for(o(e)?e.listeners+=i:e=function(t,e){function n(){0==--n.listeners&&l(t)}return n.listeners=e,n}(t.elm,i),o(n=t.componentInstance)&&o(n=n._vnode)&&o(n.data)&&x(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);o(n=t.data.hook)&&o(n=n.remove)?n(t,e):e()}else l(t.elm)}function O(t,e,n,r){for(var i=n;i<r;i++){var s=e[i];if(o(s)&&zn(t,s))return i}}function S(t,e,n,a){if(t!==e){var u=e.elm=t.elm;if(s(t.isAsyncPlaceholder))o(e.asyncFactory.resolved)?E(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(s(e.isStatic)&&s(t.isStatic)&&e.key===t.key&&(s(e.isCloned)||s(e.isOnce)))e.componentInstance=t.componentInstance;else{var l,p=e.data;o(p)&&o(l=p.hook)&&o(l=l.prepatch)&&l(t,e);var d=t.children,h=e.children;if(o(p)&&m(e)){for(l=0;l<r.update.length;++l)r.update[l](t,e);o(l=p.hook)&&o(l=l.update)&&l(t,e)}i(e.text)?o(d)&&o(h)?d!==h&&function(t,e,n,r,s){for(var a,u,l,p=0,d=0,h=e.length-1,v=e[0],m=e[h],g=n.length-1,y=n[0],_=n[g],x=!s;p<=h&&d<=g;)i(v)?v=e[++p]:i(m)?m=e[--h]:zn(v,y)?(S(v,y,r),v=e[++p],y=n[++d]):zn(m,_)?(S(m,_,r),m=e[--h],_=n[--g]):zn(v,_)?(S(v,_,r),x&&c.insertBefore(t,v.elm,c.nextSibling(m.elm)),v=e[++p],_=n[--g]):zn(m,y)?(S(m,y,r),x&&c.insertBefore(t,m.elm,v.elm),m=e[--h],y=n[++d]):(i(a)&&(a=Wn(e,p,h)),i(u=o(y.key)?a[y.key]:O(y,e,p,h))?f(y,r,t,v.elm,!1,n,d):zn(l=e[u],y)?(S(l,y,r),e[u]=void 0,x&&c.insertBefore(t,l.elm,v.elm)):f(y,r,t,v.elm,!1,n,d),y=n[++d]);p>h?b(t,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&w(0,e,p,h)}(u,d,h,n,a):o(h)?(o(t.text)&&c.setTextContent(u,""),b(u,null,h,0,h.length-1,n)):o(d)?w(0,d,0,d.length-1):o(t.text)&&c.setTextContent(u,""):t.text!==e.text&&c.setTextContent(u,e.text),o(p)&&o(l=p.hook)&&o(l=l.postpatch)&&l(t,e)}}}function C(t,e,n){if(s(n)&&o(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var k=v("attrs,class,staticClass,staticStyle,key");function E(t,e,n,r){var i,a=e.tag,u=e.data,c=e.children;if(r=r||u&&u.pre,e.elm=t,s(e.isComment)&&o(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(o(u)&&(o(i=u.hook)&&o(i=i.init)&&i(e,!0),o(i=e.componentInstance)))return p(e,n),!0;if(o(a)){if(o(c))if(t.hasChildNodes())if(o(i=u)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==t.innerHTML)return!1}else{for(var l=!0,f=t.firstChild,d=0;d<c.length;d++){if(!f||!E(f,c[d],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(e,c,n);if(o(u)){var v=!1;for(var m in u)if(!k(m)){v=!0,g(e,n);break}!v&&u.class&&ne(u.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,a,u,l){if(!i(e)){var p,d=!1,h=[];if(i(t))d=!0,f(e,h,u,l);else{var v=o(t.nodeType);if(!v&&zn(t,e))S(t,e,h,a);else{if(v){if(1===t.nodeType&&t.hasAttribute(I)&&(t.removeAttribute(I),n=!0),s(n)&&E(t,e,h))return C(e,h,!0),t;p=t,t=new dt(c.tagName(p).toLowerCase(),{},[],void 0,p)}var g=t.elm,y=c.parentNode(g);if(f(e,h,g._leaveCb?null:y,c.nextSibling(g)),o(e.parent))for(var b=e.parent,x=m(e);b;){for(var O=0;O<r.destroy.length;++O)r.destroy[O](b);if(b.elm=e.elm,x){for(var k=0;k<r.create.length;++k)r.create[k](Hn,b);var A=b.data.hook.insert;if(A.merged)for(var $=1;$<A.fns.length;$++)A.fns[$]()}else Vn(b);b=b.parent}o(y)?w(0,[t],0,0):o(t.tag)&&_(t)}}return C(e,h,d),e.elm}o(t)&&_(t)}}({nodeOps:Bn,modules:[ir,pr,Fr,Br,Xr,q?{create:Oi,activate:Oi,remove:function(t,e){!0!==t.data.show?_i(t,e):e()}}:{}].concat(tr)});Q&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&Pi(t,"input")});var Ci={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?ae(n,"postpatch",function(){Ci.componentUpdated(t,e,n)}):ki(t,e,n.context),t._vOptions=[].map.call(t.options,$i)):("textarea"===n.tag||Rn(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",Li),t.addEventListener("compositionend",Ti),t.addEventListener("change",Ti),Q&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){ki(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,$i);if(i.some(function(t,e){return!N(t,r[e])}))(t.multiple?e.value.some(function(t){return Ai(t,i)}):e.value!==e.oldValue&&Ai(e.value,i))&&Pi(t,"change")}}};function ki(t,e,n){Ei(t,e,n),(Y||J)&&setTimeout(function(){Ei(t,e,n)},0)}function Ei(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,s,a=0,u=t.options.length;a<u;a++)if(s=t.options[a],i)o=M(r,$i(s))>-1,s.selected!==o&&(s.selected=o);else if(N($i(s),r))return void(t.selectedIndex!==a&&(t.selectedIndex=a));i||(t.selectedIndex=-1)}}function Ai(t,e){return e.every(function(e){return!N(e,t)})}function $i(t){return"_value"in t?t._value:t.value}function Li(t){t.target.composing=!0}function Ti(t){t.target.composing&&(t.target.composing=!1,Pi(t.target,"input"))}function Pi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ji(t){return!t.componentInstance||t.data&&t.data.transition?t:ji(t.componentInstance._vnode)}var Ni={model:Ci,show:{bind:function(t,e,n){var r=e.value,i=(n=ji(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,bi(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=ji(n)).data&&n.data.transition?(n.data.show=!0,r?bi(n,function(){t.style.display=t.__vOriginalDisplay}):_i(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Mi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ui(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ui(de(e.children)):t}function Ii(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[O(o)]=i[o];return e}function Fi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ri={name:"transition",props:Mi,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(function(t){return t.tag||pe(t)})).length){0;var r=this.mode;0;var i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Ui(i);if(!o)return i;if(this._leaving)return Fi(t,i);var s="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?s+"comment":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var u=(o.data||(o.data={})).transition=Ii(this),c=this._vnode,l=Ui(c);if(o.data.directives&&o.data.directives.some(function(t){return"show"===t.name})&&(o.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,l)&&!pe(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=$({},u);if("out-in"===r)return this._leaving=!0,ae(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Fi(t,i);if("in-out"===r){if(pe(o))return c;var p,d=function(){p()};ae(u,"afterEnter",d),ae(u,"enterCancelled",d),ae(f,"delayLeave",function(t){p=t})}}return i}}},Di=$({tag:String,moveClass:String},Mi);function Bi(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Gi(t){t.data.newPos=t.elm.getBoundingClientRect()}function Vi(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Di.mode;var Hi={Transition:Ri,TransitionGroup:{props:Di,render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],s=Ii(this),a=0;a<i.length;a++){var u=i[a];if(u.tag)if(null!=u.key&&0!==String(u.key).indexOf("__vlist"))o.push(u),n[u.key]=u,(u.data||(u.data={})).transition=s;else;}if(r){for(var c=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=s,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?c.push(p):l.push(p)}this.kept=t(e,null,c),this.removed=l}return t(e,null,o)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(Bi),t.forEach(Gi),t.forEach(Vi),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;pi(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(ai,n._moveCb=function t(r){r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(ai,t),n._moveCb=null,di(n,e))})}}))},methods:{hasMove:function(t,e){if(!ri)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){ti(n,t)}),Zr(n,e),n.style.display="none",this.$el.appendChild(n);var r=mi(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};pn.config.mustUseProp=xn,pn.config.isReservedTag=Un,pn.config.isReservedAttr=_n,pn.config.getTagNamespace=In,pn.config.isUnknownElement=function(t){if(!q)return!0;if(Un(t))return!1;if(t=t.toLowerCase(),null!=Fn[t])return Fn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Fn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Fn[t]=/HTMLUnknownElement/.test(e.toString())},$(pn.options.directives,Ni),$(pn.options.components,Hi),pn.prototype.__patch__=q?Si:T,pn.prototype.$mount=function(t,e){return function(t,e,n){return t.$el=e,t.$options.render||(t.$options.render=vt),Oe(t,"beforeMount"),new Pe(t,function(){t._update(t._render(),n)},T,null,!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Oe(t,"mounted")),t}(this,t=t&&q?Dn(t):void 0,e)},q&&setTimeout(function(){D.devtools&&rt&&rt.emit("init",pn)},0);var qi=/\{\{((?:.|\n)+?)\}\}/g,zi=/[-.*+?^${}()|[\]\/\\]/g,Wi=w(function(t){var e=t[0].replace(zi,"\\$&"),n=t[1].replace(zi,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")});var Ki={staticKeys:["staticClass"],transformNode:function(t,e){e.warn;var n=Sr(t,"class");n&&(t.staticClass=JSON.stringify(n));var r=Or(t,"class",!1);r&&(t.classBinding=r)},genData:function(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}};var Yi,Qi={staticKeys:["staticStyle"],transformNode:function(t,e){e.warn;var n=Sr(t,"style");n&&(t.staticStyle=JSON.stringify(Gr(n)));var r=Or(t,"style",!1);r&&(t.styleBinding=r)},genData:function(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}},Ji=function(t){return(Yi=Yi||document.createElement("div")).innerHTML=t,Yi.textContent},Xi=v("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),Zi=v("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),to=v("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),eo=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,no="[a-zA-Z_][\\w\\-\\.]*",ro="((?:"+no+"\\:)?"+no+")",io=new RegExp("^<"+ro),oo=/^\s*(\/?)>/,so=new RegExp("^<\\/"+ro+"[^>]*>"),ao=/^<!DOCTYPE [^>]+>/i,uo=/^<!\--/,co=/^<!\[/,lo=!1;"x".replace(/x(.)?/g,function(t,e){lo=""===e});var fo=v("script,style,textarea",!0),po={},ho={"<":"<",">":">",""":'"',"&":"&"," ":"\n","	":"\t"},vo=/&(?:lt|gt|quot|amp);/g,mo=/&(?:lt|gt|quot|amp|#10|#9);/g,go=v("pre,textarea",!0),yo=function(t,e){return t&&go(t)&&"\n"===e[0]};function bo(t,e){var n=e?mo:vo;return t.replace(n,function(t){return ho[t]})}var _o,wo,xo,Oo,So,Co,ko,Eo,Ao=/^@|^v-on:/,$o=/^v-|^@|^:/,Lo=/([^]*?)\s+(?:in|of)\s+([^]*)/,To=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Po=/^\(|\)$/g,jo=/:(.*)$/,No=/^:|^v-bind:/,Mo=/\.[^.]+/g,Uo=w(Ji);function Io(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:function(t){for(var e={},n=0,r=t.length;n<r;n++)e[t[n].name]=t[n].value;return e}(e),parent:n,children:[]}}function Fo(t,e){_o=e.warn||mr,Co=e.isPreTag||P,ko=e.mustUseProp||P,Eo=e.getTagNamespace||P,xo=gr(e.modules,"transformNode"),Oo=gr(e.modules,"preTransformNode"),So=gr(e.modules,"postTransformNode"),wo=e.delimiters;var n,r,i=[],o=!1!==e.preserveWhitespace,s=!1,a=!1;function u(t){t.pre&&(s=!1),Co(t.tag)&&(a=!1);for(var n=0;n<So.length;n++)So[n](t,e)}return function(t,e){for(var n,r,i=[],o=e.expectHTML,s=e.isUnaryTag||P,a=e.canBeLeftOpenTag||P,u=0;t;){if(n=t,r&&fo(r)){var c=0,l=r.toLowerCase(),f=po[l]||(po[l]=new RegExp("([\\s\\S]*?)(</"+l+"[^>]*>)","i")),p=t.replace(f,function(t,n,r){return c=r.length,fo(l)||"noscript"===l||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),yo(l,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});u+=t.length-p.length,t=p,k(l,u-c,u)}else{var d=t.indexOf("<");if(0===d){if(uo.test(t)){var h=t.indexOf("--\x3e");if(h>=0){e.shouldKeepComment&&e.comment(t.substring(4,h)),O(h+3);continue}}if(co.test(t)){var v=t.indexOf("]>");if(v>=0){O(v+2);continue}}var m=t.match(ao);if(m){O(m[0].length);continue}var g=t.match(so);if(g){var y=u;O(g[0].length),k(g[1],y,u);continue}var b=S();if(b){C(b),yo(r,t)&&O(1);continue}}var _=void 0,w=void 0,x=void 0;if(d>=0){for(w=t.slice(d);!(so.test(w)||io.test(w)||uo.test(w)||co.test(w)||(x=w.indexOf("<",1))<0);)d+=x,w=t.slice(d);_=t.substring(0,d),O(d)}d<0&&(_=t,t=""),e.chars&&_&&e.chars(_)}if(t===n){e.chars&&e.chars(t);break}}function O(e){u+=e,t=t.substring(e)}function S(){var e=t.match(io);if(e){var n,r,i={tagName:e[1],attrs:[],start:u};for(O(e[0].length);!(n=t.match(oo))&&(r=t.match(eo));)O(r[0].length),i.attrs.push(r);if(n)return i.unarySlash=n[1],O(n[0].length),i.end=u,i}}function C(t){var n=t.tagName,u=t.unarySlash;o&&("p"===r&&to(n)&&k(r),a(n)&&r===n&&k(n));for(var c=s(n)||!!u,l=t.attrs.length,f=new Array(l),p=0;p<l;p++){var d=t.attrs[p];lo&&-1===d[0].indexOf('""')&&(""===d[3]&&delete d[3],""===d[4]&&delete d[4],""===d[5]&&delete d[5]);var h=d[3]||d[4]||d[5]||"",v="a"===n&&"href"===d[1]?e.shouldDecodeNewlinesForHref:e.shouldDecodeNewlines;f[p]={name:d[1],value:bo(h,v)}}c||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f}),r=n),e.start&&e.start(n,f,c,t.start,t.end)}function k(t,n,o){var s,a;if(null==n&&(n=u),null==o&&(o=u),t&&(a=t.toLowerCase()),t)for(s=i.length-1;s>=0&&i[s].lowerCasedTag!==a;s--);else s=0;if(s>=0){for(var c=i.length-1;c>=s;c--)e.end&&e.end(i[c].tag,n,o);i.length=s,r=s&&i[s-1].tag}else"br"===a?e.start&&e.start(t,[],!0,n,o):"p"===a&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}k()}(t,{warn:_o,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,start:function(t,o,c){var l=r&&r.ns||Eo(t);Y&&"svg"===l&&(o=function(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];Vo.test(r.name)||(r.name=r.name.replace(Ho,""),e.push(r))}return e}(o));var f,p=Io(t,o,r);l&&(p.ns=l),"style"!==(f=p).tag&&("script"!==f.tag||f.attrsMap.type&&"text/javascript"!==f.attrsMap.type)||nt()||(p.forbidden=!0);for(var d=0;d<Oo.length;d++)p=Oo[d](p,e)||p;function h(t){0}if(s||(!function(t){null!=Sr(t,"v-pre")&&(t.pre=!0)}(p),p.pre&&(s=!0)),Co(p.tag)&&(a=!0),s?function(t){var e=t.attrsList.length;if(e)for(var n=t.attrs=new Array(e),r=0;r<e;r++)n[r]={name:t.attrsList[r].name,value:JSON.stringify(t.attrsList[r].value)};else t.pre||(t.plain=!0)}(p):p.processed||(Do(p),function(t){var e=Sr(t,"v-if");if(e)t.if=e,Bo(t,{exp:e,block:t});else{null!=Sr(t,"v-else")&&(t.else=!0);var n=Sr(t,"v-else-if");n&&(t.elseif=n)}}(p),function(t){null!=Sr(t,"v-once")&&(t.once=!0)}(p),Ro(p,e)),n?i.length||n.if&&(p.elseif||p.else)&&(h(),Bo(n,{exp:p.elseif,block:p})):(n=p,h()),r&&!p.forbidden)if(p.elseif||p.else)!function(t,e){var n=function(t){var e=t.length;for(;e--;){if(1===t[e].type)return t[e];t.pop()}}(e.children);n&&n.if&&Bo(n,{exp:t.elseif,block:t})}(p,r);else if(p.slotScope){r.plain=!1;var v=p.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[v]=p}else r.children.push(p),p.parent=r;c?u(p):(r=p,i.push(p))},end:function(){var t=i[i.length-1],e=t.children[t.children.length-1];e&&3===e.type&&" "===e.text&&!a&&t.children.pop(),i.length-=1,r=i[i.length-1],u(t)},chars:function(t){if(r&&(!Y||"textarea"!==r.tag||r.attrsMap.placeholder!==t)){var e,n,i=r.children;if(t=a||t.trim()?"script"===(e=r).tag||"style"===e.tag?t:Uo(t):o&&i.length?" ":"")!s&&" "!==t&&(n=function(t,e){var n=e?Wi(e):qi;if(n.test(t)){for(var r,i,o,s=[],a=[],u=n.lastIndex=0;r=n.exec(t);){(i=r.index)>u&&(a.push(o=t.slice(u,i)),s.push(JSON.stringify(o)));var c=hr(r[1].trim());s.push("_s("+c+")"),a.push({"@binding":c}),u=i+r[0].length}return u<t.length&&(a.push(o=t.slice(u)),s.push(JSON.stringify(o))),{expression:s.join("+"),tokens:a}}}(t,wo))?i.push({type:2,expression:n.expression,tokens:n.tokens,text:t}):" "===t&&i.length&&" "===i[i.length-1].text||i.push({type:3,text:t})}},comment:function(t){r.children.push({type:3,text:t,isComment:!0})}}),n}function Ro(t,e){var n,r;(r=Or(n=t,"key"))&&(n.key=r),t.plain=!t.key&&!t.attrsList.length,function(t){var e=Or(t,"ref");e&&(t.ref=e,t.refInFor=function(t){var e=t;for(;e;){if(void 0!==e.for)return!0;e=e.parent}return!1}(t))}(t),function(t){if("slot"===t.tag)t.slotName=Or(t,"name");else{var e;"template"===t.tag?(e=Sr(t,"scope"),t.slotScope=e||Sr(t,"slot-scope")):(e=Sr(t,"slot-scope"))&&(t.slotScope=e);var n=Or(t,"slot");n&&(t.slotTarget='""'===n?'"default"':n,"template"===t.tag||t.slotScope||br(t,"slot",n))}}(t),function(t){var e;(e=Or(t,"is"))&&(t.component=e);null!=Sr(t,"inline-template")&&(t.inlineTemplate=!0)}(t);for(var i=0;i<xo.length;i++)t=xo[i](t,e)||t;!function(t){var e,n,r,i,o,s,a,u=t.attrsList;for(e=0,n=u.length;e<n;e++){if(r=i=u[e].name,o=u[e].value,$o.test(r))if(t.hasBindings=!0,(s=Go(r))&&(r=r.replace(Mo,"")),No.test(r))r=r.replace(No,""),o=hr(o),a=!1,s&&(s.prop&&(a=!0,"innerHtml"===(r=O(r))&&(r="innerHTML")),s.camel&&(r=O(r)),s.sync&&xr(t,"update:"+O(r),kr(o,"$event"))),a||!t.component&&ko(t.tag,t.attrsMap.type,r)?yr(t,r,o):br(t,r,o);else if(Ao.test(r))r=r.replace(Ao,""),xr(t,r,o,s,!1);else{var c=(r=r.replace($o,"")).match(jo),l=c&&c[1];l&&(r=r.slice(0,-(l.length+1))),wr(t,r,i,o,l,s)}else br(t,r,JSON.stringify(o)),!t.component&&"muted"===r&&ko(t.tag,t.attrsMap.type,r)&&yr(t,r,"true")}}(t)}function Do(t){var e;if(e=Sr(t,"v-for")){var n=function(t){var e=t.match(Lo);if(!e)return;var n={};n.for=e[2].trim();var r=e[1].trim().replace(Po,""),i=r.match(To);i?(n.alias=r.replace(To,""),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(e);n&&$(t,n)}}function Bo(t,e){t.ifConditions||(t.ifConditions=[]),t.ifConditions.push(e)}function Go(t){var e=t.match(Mo);if(e){var n={};return e.forEach(function(t){n[t.slice(1)]=!0}),n}}var Vo=/^xmlns:NS\d+/,Ho=/^NS\d+:/;function qo(t){return Io(t.tag,t.attrsList.slice(),t.parent)}var zo=[Ki,Qi,{preTransformNode:function(t,e){if("input"===t.tag){var n,r=t.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Or(t,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Sr(t,"v-if",!0),o=i?"&&("+i+")":"",s=null!=Sr(t,"v-else",!0),a=Sr(t,"v-else-if",!0),u=qo(t);Do(u),_r(u,"type","checkbox"),Ro(u,e),u.processed=!0,u.if="("+n+")==='checkbox'"+o,Bo(u,{exp:u.if,block:u});var c=qo(t);Sr(c,"v-for",!0),_r(c,"type","radio"),Ro(c,e),Bo(u,{exp:"("+n+")==='radio'"+o,block:c});var l=qo(t);return Sr(l,"v-for",!0),_r(l,":type",n),Ro(l,e),Bo(u,{exp:i,block:l}),s?u.else=!0:a&&(u.elseif=a),u}}}}];var Wo,Ko,Yo={expectHTML:!0,modules:zo,directives:{model:function(t,e,n){n;var r=e.value,i=e.modifiers,o=t.tag,s=t.attrsMap.type;if(t.component)return Cr(t,r,i),!1;if("select"===o)!function(t,e,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";r=r+" "+kr(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),xr(t,"change",r,null,!0)}(t,r,i);else if("input"===o&&"checkbox"===s)!function(t,e,n){var r=n&&n.number,i=Or(t,"value")||"null",o=Or(t,"true-value")||"true",s=Or(t,"false-value")||"false";yr(t,"checked","Array.isArray("+e+")?_i("+e+","+i+")>-1"+("true"===o?":("+e+")":":_q("+e+","+o+")")),xr(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+s+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+kr(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+kr(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+kr(e,"$$c")+"}",null,!0)}(t,r,i);else if("input"===o&&"radio"===s)!function(t,e,n){var r=n&&n.number,i=Or(t,"value")||"null";yr(t,"checked","_q("+e+","+(i=r?"_n("+i+")":i)+")"),xr(t,"change",kr(e,i),null,!0)}(t,r,i);else if("input"===o||"textarea"===o)!function(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,s=i.number,a=i.trim,u=!o&&"range"!==r,c=o?"change":"range"===r?jr:"input",l="$event.target.value";a&&(l="$event.target.value.trim()"),s&&(l="_n("+l+")");var f=kr(e,l);u&&(f="if($event.target.composing)return;"+f),yr(t,"value","("+e+")"),xr(t,c,f,null,!0),(a||s)&&xr(t,"blur","$forceUpdate()")}(t,r,i);else if(!D.isReservedTag(o))return Cr(t,r,i),!1;return!0},text:function(t,e){e.value&&yr(t,"textContent","_s("+e.value+")")},html:function(t,e){e.value&&yr(t,"innerHTML","_s("+e.value+")")}},isPreTag:function(t){return"pre"===t},isUnaryTag:Xi,mustUseProp:xn,canBeLeftOpenTag:Zi,isReservedTag:Un,getTagNamespace:In,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}(zo)},Qo=w(function(t){return v("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(t?","+t:""))});function Jo(t,e){t&&(Wo=Qo(e.staticKeys||""),Ko=e.isReservedTag||P,function t(e){e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||m(t.tag)||!Ko(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(Wo)))}(e);if(1===e.type){if(!Ko(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,r=e.children.length;n<r;n++){var i=e.children[n];t(i),i.static||(e.static=!1)}if(e.ifConditions)for(var o=1,s=e.ifConditions.length;o<s;o++){var a=e.ifConditions[o].block;t(a),a.static||(e.static=!1)}}}(t),function t(e,n){if(1===e.type){if((e.static||e.once)&&(e.staticInFor=n),e.static&&e.children.length&&(1!==e.children.length||3!==e.children[0].type))return void(e.staticRoot=!0);if(e.staticRoot=!1,e.children)for(var r=0,i=e.children.length;r<i;r++)t(e.children[r],n||!!e.for);if(e.ifConditions)for(var o=1,s=e.ifConditions.length;o<s;o++)t(e.ifConditions[o].block,n)}}(t,!1))}var Xo=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,Zo=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ts={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},es={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},ns=function(t){return"if("+t+")return null;"},rs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:ns("$event.target !== $event.currentTarget"),ctrl:ns("!$event.ctrlKey"),shift:ns("!$event.shiftKey"),alt:ns("!$event.altKey"),meta:ns("!$event.metaKey"),left:ns("'button' in $event && $event.button !== 0"),middle:ns("'button' in $event && $event.button !== 1"),right:ns("'button' in $event && $event.button !== 2")};function is(t,e,n){var r=e?"nativeOn:{":"on:{";for(var i in t)r+='"'+i+'":'+os(i,t[i])+",";return r.slice(0,-1)+"}"}function os(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return os(t,e)}).join(",")+"]";var n=Zo.test(e.value),r=Xo.test(e.value);if(e.modifiers){var i="",o="",s=[];for(var a in e.modifiers)if(rs[a])o+=rs[a],ts[a]&&s.push(a);else if("exact"===a){var u=e.modifiers;o+=ns(["ctrl","shift","alt","meta"].filter(function(t){return!u[t]}).map(function(t){return"$event."+t+"Key"}).join("||"))}else s.push(a);return s.length&&(i+=function(t){return"if(!('button' in $event)&&"+t.map(ss).join("&&")+")return null;"}(s)),o&&(i+=o),"function($event){"+i+(n?"return "+e.value+"($event)":r?"return ("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function ss(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=ts[t],r=es[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var as={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:T},us=function(t){this.options=t,this.warn=t.warn||mr,this.transforms=gr(t.modules,"transformCode"),this.dataGenFns=gr(t.modules,"genData"),this.directives=$($({},as),t.directives);var e=t.isReservedTag||P;this.maybeComponent=function(t){return!e(t.tag)},this.onceId=0,this.staticRenderFns=[]};function cs(t,e){var n=new us(e);return{render:"with(this){return "+(t?ls(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function ls(t,e){if(t.staticRoot&&!t.staticProcessed)return fs(t,e);if(t.once&&!t.onceProcessed)return ps(t,e);if(t.for&&!t.forProcessed)return function(t,e,n,r){var i=t.for,o=t.alias,s=t.iterator1?","+t.iterator1:"",a=t.iterator2?","+t.iterator2:"";0;return t.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+s+a+"){return "+(n||ls)(t,e)+"})"}(t,e);if(t.if&&!t.ifProcessed)return ds(t,e);if("template"!==t.tag||t.slotTarget){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',r=ms(t,e),i="_t("+n+(r?","+r:""),o=t.attrs&&"{"+t.attrs.map(function(t){return O(t.name)+":"+t.value}).join(",")+"}",s=t.attrsMap["v-bind"];!o&&!s||r||(i+=",null");o&&(i+=","+o);s&&(i+=(o?"":",null")+","+s);return i+")"}(t,e);var n;if(t.component)n=function(t,e,n){var r=e.inlineTemplate?null:ms(e,n,!0);return"_c("+t+","+hs(e,n)+(r?","+r:"")+")"}(t.component,t,e);else{var r=t.plain?void 0:hs(t,e),i=t.inlineTemplate?null:ms(t,e,!0);n="_c('"+t.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<e.transforms.length;o++)n=e.transforms[o](t,n);return n}return ms(t,e)||"void 0"}function fs(t,e){return t.staticProcessed=!0,e.staticRenderFns.push("with(this){return "+ls(t,e)+"}"),"_m("+(e.staticRenderFns.length-1)+(t.staticInFor?",true":"")+")"}function ps(t,e){if(t.onceProcessed=!0,t.if&&!t.ifProcessed)return ds(t,e);if(t.staticInFor){for(var n="",r=t.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+ls(t,e)+","+e.onceId+++","+n+")":ls(t,e)}return fs(t,e)}function ds(t,e,n,r){return t.ifProcessed=!0,function t(e,n,r,i){if(!e.length)return i||"_e()";var o=e.shift();return o.exp?"("+o.exp+")?"+s(o.block)+":"+t(e,n,r,i):""+s(o.block);function s(t){return r?r(t,n):t.once?ps(t,n):ls(t,n)}}(t.ifConditions.slice(),e,n,r)}function hs(t,e){var n="{",r=function(t,e){var n=t.directives;if(!n)return;var r,i,o,s,a="directives:[",u=!1;for(r=0,i=n.length;r<i;r++){o=n[r],s=!0;var c=e.directives[o.name];c&&(s=!!c(t,o,e.warn)),s&&(u=!0,a+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?',arg:"'+o.arg+'"':"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(u)return a.slice(0,-1)+"]"}(t,e);r&&(n+=r+","),t.key&&(n+="key:"+t.key+","),t.ref&&(n+="ref:"+t.ref+","),t.refInFor&&(n+="refInFor:true,"),t.pre&&(n+="pre:true,"),t.component&&(n+='tag:"'+t.tag+'",');for(var i=0;i<e.dataGenFns.length;i++)n+=e.dataGenFns[i](t);if(t.attrs&&(n+="attrs:{"+bs(t.attrs)+"},"),t.props&&(n+="domProps:{"+bs(t.props)+"},"),t.events&&(n+=is(t.events,!1,e.warn)+","),t.nativeEvents&&(n+=is(t.nativeEvents,!0,e.warn)+","),t.slotTarget&&!t.slotScope&&(n+="slot:"+t.slotTarget+","),t.scopedSlots&&(n+=function(t,e){return"scopedSlots:_u(["+Object.keys(t).map(function(n){return vs(n,t[n],e)}).join(",")+"])"}(t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var o=function(t,e){var n=t.children[0];0;if(1===n.type){var r=cs(n,e.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(t){return"function(){"+t+"}"}).join(",")+"]}"}}(t,e);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function vs(t,e,n){return e.for&&!e.forProcessed?function(t,e,n){var r=e.for,i=e.alias,o=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,"_l(("+r+"),function("+i+o+s+"){return "+vs(t,e,n)+"})"}(t,e,n):"{key:"+t+",fn:"+("function("+String(e.slotScope)+"){return "+("template"===e.tag?e.if?e.if+"?"+(ms(e,n)||"undefined")+":undefined":ms(e,n)||"undefined":ls(e,n))+"}")+"}"}function ms(t,e,n,r,i){var o=t.children;if(o.length){var s=o[0];if(1===o.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag)return(r||ls)(s,e);var a=n?function(t,e){for(var n=0,r=0;r<t.length;r++){var i=t[r];if(1===i.type){if(gs(i)||i.ifConditions&&i.ifConditions.some(function(t){return gs(t.block)})){n=2;break}(e(i)||i.ifConditions&&i.ifConditions.some(function(t){return e(t.block)}))&&(n=1)}}return n}(o,e.maybeComponent):0,u=i||ys;return"["+o.map(function(t){return u(t,e)}).join(",")+"]"+(a?","+a:"")}}function gs(t){return void 0!==t.for||"template"===t.tag||"slot"===t.tag}function ys(t,e){return 1===t.type?ls(t,e):3===t.type&&t.isComment?(r=t,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=t).type?n.expression:_s(JSON.stringify(n.text)))+")";var n,r}function bs(t){for(var e="",n=0;n<t.length;n++){var r=t[n];e+='"'+r.name+'":'+_s(r.value)+","}return e.slice(0,-1)}function _s(t){return t.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)");function ws(t,e){try{return new Function(t)}catch(n){return e.push({err:n,code:t}),T}}var xs,Os,Ss=(xs=function(t,e){var n=Fo(t.trim(),e);!1!==e.optimize&&Jo(n,e);var r=cs(n,e);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(t){function e(e,n){var r=Object.create(t),i=[],o=[];if(r.warn=function(t,e){(e?o:i).push(t)},n)for(var s in n.modules&&(r.modules=(t.modules||[]).concat(n.modules)),n.directives&&(r.directives=$(Object.create(t.directives||null),n.directives)),n)"modules"!==s&&"directives"!==s&&(r[s]=n[s]);var a=xs(e,r);return a.errors=i,a.tips=o,a}return{compile:e,compileToFunctions:function(t){var e=Object.create(null);return function(n,r,i){(r=$({},r)).warn,delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(e[o])return e[o];var s=t(n,r),a={},u=[];return a.render=ws(s.render,u),a.staticRenderFns=s.staticRenderFns.map(function(t){return ws(t,u)}),e[o]=a}}(e)}})(Yo).compileToFunctions;function Cs(t){return(Os=Os||document.createElement("div")).innerHTML=t?'<a href="\n"/>':'<div a="\n"/>',Os.innerHTML.indexOf(" ")>0}var ks=!!q&&Cs(!1),Es=!!q&&Cs(!0),As=w(function(t){var e=Dn(t);return e&&e.innerHTML}),$s=pn.prototype.$mount;pn.prototype.$mount=function(t,e){if((t=t&&Dn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=As(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){0;var i=Ss(r,{shouldDecodeNewlines:ks,shouldDecodeNewlinesForHref:Es,delimiters:n.delimiters,comments:n.comments},this),o=i.render,s=i.staticRenderFns;n.render=o,n.staticRenderFns=s}}return $s.call(this,t,e)},pn.compile=Ss,e.a=pn}).call(this,n(51),n(239).setImmediate)},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(3),i=n(100),o=n(44),s=Object.defineProperty;e.f=n(9)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)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,n){var r=n(23),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){t.exports=!n(6)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";var r=n(105),i=n(236),o=Object.prototype.toString;function s(t){return"[object Array]"===o.call(t)}function a(t){return null!==t&&"object"==typeof t}function u(t){return"[object Function]"===o.call(t)}function c(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),s(t))for(var n=0,r=t.length;n<r;n++)e.call(null,t[n],n,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.call(null,t[i],i,t)}t.exports={isArray:s,isArrayBuffer:function(t){return"[object ArrayBuffer]"===o.call(t)},isBuffer:i,isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:a,isUndefined:function(t){return void 0===t},isDate:function(t){return"[object Date]"===o.call(t)},isFile:function(t){return"[object File]"===o.call(t)},isBlob:function(t){return"[object Blob]"===o.call(t)},isFunction:u,isStream:function(t){return a(t)&&u(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:c,merge:function t(){var e={};function n(n,r){"object"==typeof e[r]&&"object"==typeof n?e[r]=t(e[r],n):e[r]=n}for(var r=0,i=arguments.length;r<i;r++)c(arguments[r],n);return e},extend:function(t,e,n){return c(e,function(e,i){t[i]=n&&"function"==typeof e?r(e,n):e}),t},trim:function(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(7),i=n(26);t.exports=n(9)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(0),i=n(37),o=n(6);t.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},function(t,e,n){var r=n(71),i=n(22);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(40),i=n(26),o=n(14),s=n(44),a=n(11),u=n(100),c=Object.getOwnPropertyDescriptor;e.f=n(9)?c:function(t,e){if(t=o(t),e=s(e,!0),u)try{return c(t,e)}catch(t){}if(a(t,e))return i(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";if(n(9)){var r=n(36),i=n(2),o=n(6),s=n(0),a=n(72),u=n(99),c=n(18),l=n(34),f=n(26),p=n(12),d=n(35),h=n(23),v=n(8),m=n(98),g=n(32),y=n(44),b=n(11),_=n(64),w=n(1),x=n(17),O=n(63),S=n(42),C=n(29),k=n(43).f,E=n(62),A=n(25),$=n(4),L=n(41),T=n(70),P=n(65),j=n(61),N=n(30),M=n(49),U=n(50),I=n(66),F=n(92),R=n(7),D=n(15),B=R.f,G=D.f,V=i.RangeError,H=i.TypeError,q=i.Uint8Array,z=Array.prototype,W=u.ArrayBuffer,K=u.DataView,Y=L(0),Q=L(2),J=L(3),X=L(4),Z=L(5),tt=L(6),et=T(!0),nt=T(!1),rt=j.values,it=j.keys,ot=j.entries,st=z.lastIndexOf,at=z.reduce,ut=z.reduceRight,ct=z.join,lt=z.sort,ft=z.slice,pt=z.toString,dt=z.toLocaleString,ht=$("iterator"),vt=$("toStringTag"),mt=A("typed_constructor"),gt=A("def_constructor"),yt=a.CONSTR,bt=a.TYPED,_t=a.VIEW,wt=L(1,function(t,e){return kt(P(t,t[gt]),e)}),xt=o(function(){return 1===new q(new Uint16Array([1]).buffer)[0]}),Ot=!!q&&!!q.prototype.set&&o(function(){new q(1).set({})}),St=function(t,e){var n=h(t);if(n<0||n%e)throw V("Wrong offset!");return n},Ct=function(t){if(w(t)&&bt in t)return t;throw H(t+" is not a typed array!")},kt=function(t,e){if(!(w(t)&&mt in t))throw H("It is not a typed array constructor!");return new t(e)},Et=function(t,e){return At(P(t,t[gt]),e)},At=function(t,e){for(var n=0,r=e.length,i=kt(t,r);r>n;)i[n]=e[n++];return i},$t=function(t,e,n){B(t,e,{get:function(){return this._d[n]}})},Lt=function(t){var e,n,r,i,o,s,a=x(t),u=arguments.length,l=u>1?arguments[1]:void 0,f=void 0!==l,p=E(a);if(void 0!=p&&!O(p)){for(s=p.call(a),r=[],e=0;!(o=s.next()).done;e++)r.push(o.value);a=r}for(f&&u>2&&(l=c(l,arguments[2],2)),e=0,n=v(a.length),i=kt(this,n);n>e;e++)i[e]=f?l(a[e],e):a[e];return i},Tt=function(){for(var t=0,e=arguments.length,n=kt(this,e);e>t;)n[t]=arguments[t++];return n},Pt=!!q&&o(function(){dt.call(new q(1))}),jt=function(){return dt.apply(Pt?ft.call(Ct(this)):Ct(this),arguments)},Nt={copyWithin:function(t,e){return F.call(Ct(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return X(Ct(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return I.apply(Ct(this),arguments)},filter:function(t){return Et(this,Q(Ct(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return Z(Ct(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return tt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){Y(Ct(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return nt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return et(Ct(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ct.apply(Ct(this),arguments)},lastIndexOf:function(t){return st.apply(Ct(this),arguments)},map:function(t){return wt(Ct(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return at.apply(Ct(this),arguments)},reduceRight:function(t){return ut.apply(Ct(this),arguments)},reverse:function(){for(var t,e=Ct(this).length,n=Math.floor(e/2),r=0;r<n;)t=this[r],this[r++]=this[--e],this[e]=t;return this},some:function(t){return J(Ct(this),t,arguments.length>1?arguments[1]:void 0)},sort:function(t){return lt.call(Ct(this),t)},subarray:function(t,e){var n=Ct(this),r=n.length,i=g(t,r);return new(P(n,n[gt]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,v((void 0===e?r:g(e,r))-i))}},Mt=function(t,e){return Et(this,ft.call(Ct(this),t,e))},Ut=function(t){Ct(this);var e=St(arguments[1],1),n=this.length,r=x(t),i=v(r.length),o=0;if(i+e>n)throw V("Wrong length!");for(;o<i;)this[e+o]=r[o++]},It={entries:function(){return ot.call(Ct(this))},keys:function(){return it.call(Ct(this))},values:function(){return rt.call(Ct(this))}},Ft=function(t,e){return w(t)&&t[bt]&&"symbol"!=typeof e&&e in t&&String(+e)==String(e)},Rt=function(t,e){return Ft(t,e=y(e,!0))?f(2,t[e]):G(t,e)},Dt=function(t,e,n){return!(Ft(t,e=y(e,!0))&&w(n)&&b(n,"value"))||b(n,"get")||b(n,"set")||n.configurable||b(n,"writable")&&!n.writable||b(n,"enumerable")&&!n.enumerable?B(t,e,n):(t[e]=n.value,t)};yt||(D.f=Rt,R.f=Dt),s(s.S+s.F*!yt,"Object",{getOwnPropertyDescriptor:Rt,defineProperty:Dt}),o(function(){pt.call({})})&&(pt=dt=function(){return ct.call(this)});var Bt=d({},Nt);d(Bt,It),p(Bt,ht,It.values),d(Bt,{slice:Mt,set:Ut,constructor:function(){},toString:pt,toLocaleString:jt}),$t(Bt,"buffer","b"),$t(Bt,"byteOffset","o"),$t(Bt,"byteLength","l"),$t(Bt,"length","e"),B(Bt,vt,{get:function(){return this[bt]}}),t.exports=function(t,e,n,u){var c=t+((u=!!u)?"Clamped":"")+"Array",f="get"+t,d="set"+t,h=i[c],g=h||{},y=h&&C(h),b=!h||!a.ABV,x={},O=h&&h.prototype,E=function(t,n){B(t,n,{get:function(){return function(t,n){var r=t._d;return r.v[f](n*e+r.o,xt)}(this,n)},set:function(t){return function(t,n,r){var i=t._d;u&&(r=(r=Math.round(r))<0?0:r>255?255:255&r),i.v[d](n*e+i.o,r,xt)}(this,n,t)},enumerable:!0})};b?(h=n(function(t,n,r,i){l(t,h,c,"_d");var o,s,a,u,f=0,d=0;if(w(n)){if(!(n instanceof W||"ArrayBuffer"==(u=_(n))||"SharedArrayBuffer"==u))return bt in n?At(h,n):Lt.call(h,n);o=n,d=St(r,e);var g=n.byteLength;if(void 0===i){if(g%e)throw V("Wrong length!");if((s=g-d)<0)throw V("Wrong length!")}else if((s=v(i)*e)+d>g)throw V("Wrong length!");a=s/e}else a=m(n),o=new W(s=a*e);for(p(t,"_d",{b:o,o:d,l:s,e:a,v:new K(o)});f<a;)E(t,f++)}),O=h.prototype=S(Bt),p(O,"constructor",h)):o(function(){h(1)})&&o(function(){new h(-1)})&&M(function(t){new h,new h(null),new h(1.5),new h(t)},!0)||(h=n(function(t,n,r,i){var o;return l(t,h,c),w(n)?n instanceof W||"ArrayBuffer"==(o=_(n))||"SharedArrayBuffer"==o?void 0!==i?new g(n,St(r,e),i):void 0!==r?new g(n,St(r,e)):new g(n):bt in n?At(h,n):Lt.call(h,n):new g(m(n))}),Y(y!==Function.prototype?k(g).concat(k(y)):k(g),function(t){t in h||p(h,t,g[t])}),h.prototype=O,r||(O.constructor=h));var A=O[ht],$=!!A&&("values"==A.name||void 0==A.name),L=It.values;p(h,mt,!0),p(O,bt,c),p(O,_t,!0),p(O,gt,h),(u?new h(1)[vt]==c:vt in O)||B(O,vt,{get:function(){return c}}),x[c]=h,s(s.G+s.W+s.F*(h!=g),x),s(s.S,c,{BYTES_PER_ELEMENT:e}),s(s.S+s.F*o(function(){g.of.call(h,1)}),c,{from:Lt,of:Tt}),"BYTES_PER_ELEMENT"in O||p(O,"BYTES_PER_ELEMENT",e),s(s.P,c,Nt),U(c),s(s.P+s.F*Ot,c,{set:Ut}),s(s.P+s.F*!$,c,It),r||O.toString==pt||(O.toString=pt),s(s.P+s.F*o(function(){new h(1).slice()}),c,{slice:Mt}),s(s.P+s.F*(o(function(){return[1,2].toLocaleString()!=new h([1,2]).toLocaleString()})||!o(function(){O.toLocaleString.call([1,2])})),c,{toLocaleString:jt}),N[c]=$?A:L,r||$||p(O,ht,L)}}else t.exports=function(){}},function(t,e,n){var r=n(22);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(24);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(25)("meta"),i=n(1),o=n(11),s=n(7).f,a=0,u=Object.isExtensible||function(){return!0},c=!n(6)(function(){return u(Object.preventExtensions({}))}),l=function(t){s(t,r,{value:{i:"O"+ ++a,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return c&&f.NEED&&u(t)&&!o(t,r)&&l(t),t}}},function(t,e,n){var r=n(2),i=n(12),o=n(11),s=n(25)("src"),a=Function.toString,u=(""+a).split("toString");n(37).inspectSource=function(t){return a.call(t)},(t.exports=function(t,e,n,a){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,s)||i(n,s,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:a?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||a.call(this)})},function(t,e,n){var r=n(97),i=n(67);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},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 r=n(1);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},function(t,e,n){var r=n(4)("unscopables"),i=Array.prototype;void 0==i[r]&&n(12)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e,n){var r=n(11),i=n(17),o=n(69)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e){t.exports={}},function(t,e,n){var r=n(7).f,i=n(11),o=n(4)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(23),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(20);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},function(t,e){t.exports=!1},function(t,e){var n=t.exports={version:"2.5.5"};"number"==typeof __e&&(__e=n)},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},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=66)}([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){t.exports=!n(12)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(10),i=n(43),o=n(31),s=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)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,n){var r=n(77),i=n(21);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(9),i=n(52),o=n(18),s=n(55),a=n(53),u=function(t,e,n){var c,l,f,p,d=t&u.F,h=t&u.G,v=t&u.S,m=t&u.P,g=t&u.B,y=h?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,b=h?i:i[e]||(i[e]={}),_=b.prototype||(b.prototype={});for(c in h&&(n=e),n)l=!d&&y&&void 0!==y[c],f=(l?y:n)[c],p=g&&l?a(f,r):m&&"function"==typeof f?a(Function.call,f):f,y&&s(y,c,f,t&u.U),b[c]!=f&&o(b,c,p),m&&_[c]!=f&&(_[c]=f)};r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e,n){var r=n(3),i=n(15);t.exports=n(1)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(29)("wks"),i=n(16),o=n(0).Symbol,s="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=s&&o[t]||(s?o:i)("Symbol."+t))}).store=r},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},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 r=n(13);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(48),i=n(22);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},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){var r=n(109),i=n(110);t.exports=n(35)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(8);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(0),i=n(11),o=n(74),s=n(6),a=function(t,e,n){var u,c,l,f=t&a.F,p=t&a.G,d=t&a.S,h=t&a.P,v=t&a.B,m=t&a.W,g=p?i:i[e]||(i[e]={}),y=g.prototype,b=p?r:d?r[e]:(r[e]||{}).prototype;for(u in p&&(n=e),n)(c=!f&&b&&void 0!==b[u])&&u in g||(l=c?b[u]:n[u],g[u]=p&&"function"!=typeof b[u]?n[u]:v&&c?o(l,r):m&&b[u]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):h&&"function"==typeof l?o(Function.call,l):l,h&&((g.virtual||(g.virtual={}))[u]=l,t&a.R&&y&&!y[u]&&s(y,u,l)))};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){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(3).f,i=n(2),o=n(7)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(29)("keys"),i=n(16);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(0),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(13);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(0),i=n(11),o=n(25),s=n(33),a=n(3).f;t.exports=function(t){var e=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e,n){var r=n(53),i=n(36),o=n(57),s=n(37),a=n(104);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,d=e||a;return function(e,a,h){for(var v,m,g=o(e),y=i(g),b=r(a,h,3),_=s(y.length),w=0,x=n?d(e,_):u?d(e,0):void 0;_>w;w++)if((p||w in y)&&(v=y[w],m=b(v,w,g),t))if(n)x[w]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:x.push(v)}else if(l)return!1;return f?-1:c||l?l:x}}},function(t,e,n){t.exports=!n(8)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(51);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(56),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(111)("wks"),i=n(58),o=n(9).Symbol,s="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=s&&o[t]||(s?o:i)("Symbol."+t))}).store=r},function(t,e,n){"use strict";function r(t){return!(0===t||(!Array.isArray(t)||0!==t.length)&&t)}function i(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e,n,r){return t.filter(function(t){return function(t,e){return void 0===t&&(t="undefined"),null===t&&(t="null"),!1===t&&(t="false"),-1!==t.toString().toLowerCase().indexOf(e.trim())}(r(t,n),e)})}function s(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,r){return r[t]&&r[t].length?(n.push({$groupLabel:r[e],$isLabel:!0}),n.concat(r[t])):n},[])}}var u=n(65),c=n.n(u),l=n(59),f=(n.n(l),n(122)),p=(n.n(f),n(64)),d=n.n(p),h=n(120),v=(n.n(h),n(121)),m=(n.n(v),n(117)),g=(n.n(m),n(123)),y=(n.n(g),n(118)),b=(n.n(y),n(119)),_=(n.n(b),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:"",isOpen:!1,prefferedOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return r(t)?"":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){this.multiple||this.clearOnSelect||console.warn("[Vue-Multiselect warn]: ClearOnSelect and Multiple props can’t be both set to false."),!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||"",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):o(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(i(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&("bottom"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("input",this.multiple?[]:null))},search:function(){this.$emit("search-change",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return _(function(t,e,n,r,i){return function(s){return s.map(function(s){var a;if(!s[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var u=o(s[n],t,e,i);return u.length?(a={},d()(a,r,s[r]),d()(a,n,u),a):[]})}}(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return _(a(this.groupValues,this.groupLabel),s)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},getOptionLabel:function(t){if(r(t))return"";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return r(e)?"":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)this.selectGroup(t);else 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 r=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit("input",r,this.id)}else{var o=n[this.groupValues].filter(i(this.isSelected));this.$emit("select",o,this.id),this.$emit("input",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(t){return t[this.groupValues].every(this.isSelected)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var n="object"===c()(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,n).concat(this.internalValue.slice(n+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.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.prefferedOpenDirection="below",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.prefferedOpenDirection="above",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){"use strict";var r=n(59);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--disabled"];var r=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return[this.groupSelect?"multiselect__option--group":"multiselect__option--disabled",{"multiselect__option--highlight":t===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(r)}]},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.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(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){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(13),i=n(0).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){t.exports=!n(1)&&!n(12)(function(){return 7!=Object.defineProperty(n(42)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";var r=n(25),i=n(23),o=n(49),s=n(6),a=n(2),u=n(24),c=n(79),l=n(27),f=n(86),p=n(7)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,v,m,g,y){c(n,e,v);var b,_,w,x=function(t){if(!d&&t in k)return k[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},O=e+" Iterator",S="values"==m,C=!1,k=t.prototype,E=k[p]||k["@@iterator"]||m&&k[m],A=E||x(m),$=m?S?x("entries"):A:void 0,L="Array"==e&&k.entries||E;if(L&&(w=f(L.call(new t)))!==Object.prototype&&(l(w,O,!0),r||a(w,p)||s(w,p,h)),S&&E&&"values"!==E.name&&(C=!0,A=function(){return E.call(this)}),r&&!y||!d&&!C&&k[p]||s(k,p,A),u[e]=A,u[O]=h,m)if(b={values:S?A:x("values"),keys:g?A:x("keys"),entries:$},y)for(_ in b)_ in k||o(k,_,b[_]);else i(i.P+i.F*(d||C),e,b);return b}},function(t,e,n){var r=n(10),i=n(83),o=n(22),s=n(28)("IE_PROTO"),a=function(){},u=function(){var t,e=n(42)("iframe"),r=o.length;for(e.style.display="none",n(76).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=r(t),n=new a,a.prototype=null,n[s]=t):n=u(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(48),i=n(22).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(2),i=n(4),o=n(73)(!1),s=n(28)("IE_PROTO");t.exports=function(t,e){var n,a=i(t),u=0,c=[];for(n in a)n!=s&&r(a,n)&&c.push(n);for(;e.length>u;)r(a,n=e[u++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){t.exports=n(6)},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return 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.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(50);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(51);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(9),i=n(18),o=n(107),s=n(58)("src"),a=Function.toString,u=(""+a).split("toString");n(52).inspectSource=function(t){return a.call(t)},(t.exports=function(t,e,n,a){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,s)||i(n,s,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:a?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||a.call(this)})},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(17);t.exports=function(t){return Object(r(t))}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){"use strict";var r=n(5),i=n(34)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(99)("find")},function(t,e,n){"use strict";var r=n(67),i=n(126),o=n(125),s=function(t){n(124)},a=o(r.a,i.a,!1,s,null,null);e.a=a.exports},function(t,e,n){t.exports=n(68)},function(t,e,n){t.exports=n(69)},function(t,e,n){t.exports=n(70)},function(t,e,n){var r=n(61);t.exports=function(t,e,n){return e in t?r(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){function r(t){return(r="function"==typeof s&&"symbol"==typeof o?function(t){return typeof t}:function(t){return t&&"function"==typeof s&&t.constructor===s&&t!==s.prototype?"symbol":typeof t})(t)}function i(e){return"function"==typeof s&&"symbol"===r(o)?t.exports=i=function(t){return r(t)}:t.exports=i=function(t){return t&&"function"==typeof s&&t.constructor===s&&t!==s.prototype?"symbol":r(t)},i(e)}var o=n(63),s=n(62);t.exports=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(60),i=n(39),o=n(40);n.d(e,"Multiselect",function(){return r.a}),n.d(e,"multiselectMixin",function(){return i.a}),n.d(e,"pointerMixin",function(){return o.a}),e.default=r.a},function(t,e,n){"use strict";var r=n(39),i=n(40);e.a={name:"vue-multiselect",mixins:[r.a,i.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:""},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return 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.multiple&&this.value&&this.value.length)return this.isOpen?{width:"auto"}:{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.prefferedOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){n(92);var r=n(11).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(95),n(93),n(96),n(97),t.exports=n(11).Symbol},function(t,e,n){n(94),n(98),t.exports=n(33).f("iterator")},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(){}},function(t,e,n){var r=n(4),i=n(89),o=n(88);t.exports=function(t){return function(e,n,s){var a,u=r(e),c=i(u.length),l=o(s,c);if(t&&n!=n){for(;c>l;)if((a=u[l++])!=a)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(71);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(14),i=n(47),o=n(26);t.exports=function(t){var e=r(t),n=i.f;if(n)for(var s,a=n(t),u=o.f,c=0;a.length>c;)u.call(t,s=a[c++])&&e.push(s);return e}},function(t,e,n){t.exports=n(0).document&&document.documentElement},function(t,e,n){var r=n(41);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(41);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(45),i=n(15),o=n(27),s={};n(6)(s,n(7)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(s,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(14),i=n(4);t.exports=function(t,e){for(var n,o=i(t),s=r(o),a=s.length,u=0;a>u;)if(o[n=s[u++]]===e)return n}},function(t,e,n){var r=n(16)("meta"),i=n(13),o=n(2),s=n(3).f,a=0,u=Object.isExtensible||function(){return!0},c=!n(12)(function(){return u(Object.preventExtensions({}))}),l=function(t){s(t,r,{value:{i:"O"+ ++a,w:{}}})},f=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,r)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[r].i},getWeak:function(t,e){if(!o(t,r)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[r].w},onFreeze:function(t){return c&&f.NEED&&u(t)&&!o(t,r)&&l(t),t}}},function(t,e,n){var r=n(3),i=n(10),o=n(14);t.exports=n(1)?Object.defineProperties:function(t,e){i(t);for(var n,s=o(e),a=s.length,u=0;a>u;)r.f(t,n=s[u++],e[n]);return t}},function(t,e,n){var r=n(26),i=n(15),o=n(4),s=n(31),a=n(2),u=n(43),c=Object.getOwnPropertyDescriptor;e.f=n(1)?c:function(t,e){if(t=o(t),e=s(e,!0),u)try{return c(t,e)}catch(t){}if(a(t,e))return i(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(4),i=n(46).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return s.slice()}}(t):i(r(t))}},function(t,e,n){var r=n(2),i=n(90),o=n(28)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var r=n(30),i=n(21);t.exports=function(t){return function(e,n){var o,s,a=String(i(e)),u=r(n),c=a.length;return u<0||u>=c?t?"":void 0:(o=a.charCodeAt(u))<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?t?a.charAt(u):o:t?a.slice(u,u+2):s-56320+(o-55296<<10)+65536}}},function(t,e,n){var r=n(30),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(30),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(21);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(72),i=n(80),o=n(24),s=n(4);t.exports=n(44)(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,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(23);r(r.S+r.F*!n(1),"Object",{defineProperty:n(3).f})},function(t,e){},function(t,e,n){"use strict";var r=n(87)(!0);n(44)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(0),i=n(2),o=n(1),s=n(23),a=n(49),u=n(82).KEY,c=n(12),l=n(29),f=n(27),p=n(16),d=n(7),h=n(33),v=n(32),m=n(81),g=n(75),y=n(78),b=n(10),_=n(4),w=n(31),x=n(15),O=n(45),S=n(85),C=n(84),k=n(3),E=n(14),A=C.f,$=k.f,L=S.f,T=r.Symbol,P=r.JSON,j=P&&P.stringify,N=d("_hidden"),M=d("toPrimitive"),U={}.propertyIsEnumerable,I=l("symbol-registry"),F=l("symbols"),R=l("op-symbols"),D=Object.prototype,B="function"==typeof T,G=r.QObject,V=!G||!G.prototype||!G.prototype.findChild,H=o&&c(function(){return 7!=O($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(D,e);r&&delete D[e],$(t,e,n),r&&t!==D&&$(D,e,r)}:$,q=function(t){var e=F[t]=O(T.prototype);return e._k=t,e},z=B&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},W=function(t,e,n){return t===D&&W(R,e,n),b(t),e=w(e,!0),b(n),i(F,e)?(n.enumerable?(i(t,N)&&t[N][e]&&(t[N][e]=!1),n=O(n,{enumerable:x(0,!1)})):(i(t,N)||$(t,N,x(1,{})),t[N][e]=!0),H(t,e,n)):$(t,e,n)},K=function(t,e){b(t);for(var n,r=g(e=_(e)),i=0,o=r.length;o>i;)W(t,n=r[i++],e[n]);return t},Y=function(t){var e=U.call(this,t=w(t,!0));return!(this===D&&i(F,t)&&!i(R,t))&&(!(e||!i(this,t)||!i(F,t)||i(this,N)&&this[N][t])||e)},Q=function(t,e){if(t=_(t),e=w(e,!0),t!==D||!i(F,e)||i(R,e)){var n=A(t,e);return!n||!i(F,e)||i(t,N)&&t[N][e]||(n.enumerable=!0),n}},J=function(t){for(var e,n=L(_(t)),r=[],o=0;n.length>o;)i(F,e=n[o++])||e==N||e==u||r.push(e);return r},X=function(t){for(var e,n=t===D,r=L(n?R:_(t)),o=[],s=0;r.length>s;)!i(F,e=r[s++])||n&&!i(D,e)||o.push(F[e]);return o};B||(a((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===D&&e.call(R,n),i(this,N)&&i(this[N],t)&&(this[N][t]=!1),H(this,t,x(1,n))};return o&&V&&H(D,t,{configurable:!0,set:e}),q(t)}).prototype,"toString",function(){return this._k}),C.f=Q,k.f=W,n(46).f=S.f=J,n(26).f=Y,n(47).f=X,o&&!n(25)&&a(D,"propertyIsEnumerable",Y,!0),h.f=function(t){return q(d(t))}),s(s.G+s.W+s.F*!B,{Symbol:T});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)d(Z[tt++]);for(var Z=E(d.store),tt=0;Z.length>tt;)v(Z[tt++]);s(s.S+s.F*!B,"Symbol",{for:function(t){return i(I,t+="")?I[t]:I[t]=T(t)},keyFor:function(t){if(z(t))return m(I,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){V=!0},useSimple:function(){V=!1}}),s(s.S+s.F*!B,"Object",{create:function(t,e){return void 0===e?O(t):K(O(t),e)},defineProperty:W,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:J,getOwnPropertySymbols:X}),P&&s(s.S+s.F*(!B||c(function(){var t=T();return"[null]"!=j([t])||"{}"!=j({a:t})||"{}"!=j(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!z(t)){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);return"function"==typeof(e=r[1])&&(n=e),!n&&y(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!z(e))return e}),r[1]=e,j.apply(P,r)}}}),T.prototype[M]||n(6)(T.prototype,M,T.prototype.valueOf),f(T,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(t,e,n){n(32)("asyncIterator")},function(t,e,n){n(32)("observable")},function(t,e,n){n(91);for(var r=n(0),i=n(6),o=n(24),s=n(7)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var c=a[u],l=r[c],f=l&&l.prototype;f&&!f[s]&&i(f,s,c),o[c]=o.Array}},function(t,e,n){var r=n(38)("unscopables"),i=Array.prototype;void 0==i[r]&&n(18)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e,n){var r=n(19);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(115),i=n(37),o=n(114);t.exports=function(t){return function(e,n,s){var a,u=r(e),c=i(u.length),l=o(s,c);if(t&&n!=n){for(;c>l;)if((a=u[l++])!=a)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(50),i=n(57),o=n(36),s=n(37);t.exports=function(t,e,n,a,u){r(e);var c=i(t),l=o(c),f=s(c.length),p=u?f-1:0,d=u?-1:1;if(n<2)for(;;){if(p in l){a=l[p],p+=d;break}if(p+=d,u?p<0:f<=p)throw TypeError("Reduce of empty array with no initial value")}for(;u?p>=0:f>p;p+=d)p in l&&(a=e(a,l[p],p,c));return a}},function(t,e,n){var r=n(19),i=n(54),o=n(38)("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var r=n(103);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(19),i=n(9).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){"use strict";var r=n(18),i=n(55),o=n(8),s=n(17),a=n(38);t.exports=function(t,e,n){var u=a(t),c=n(s,u,""[t]),l=c[0],f=c[1];o(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,l),r(RegExp.prototype,u,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(35)&&!n(8)(function(){return 7!=Object.defineProperty(n(105)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(100),i=n(108),o=n(116),s=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)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,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(9),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(5),i=n(17),o=n(8),s=n(113),a="["+s+"]",u=RegExp("^"+a+a+"*"),c=RegExp(a+a+"*$"),l=function(t,e,n){var i={},a=o(function(){return!!s[t]()||"
"!="
"[t]()}),u=i[t]=a?e(f):s[t];n&&(i[n]=u),r(r.P+r.F*a,"String",i)},f=l.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};t.exports=l},function(t,e){t.exports="\t\n\v\f\r \u2028\u2029\ufeff"},function(t,e,n){var r=n(56),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(36),i=n(17);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(19);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){"use strict";var r=n(5),i=n(34)(2);r(r.P+r.F*!n(20)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),i=n(101)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(s||!n(20)(o)),"Array",{indexOf:function(t){return s?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,e,n){var r=n(5);r(r.S,"Array",{isArray:n(54)})},function(t,e,n){"use strict";var r=n(5),i=n(34)(1);r(r.P+r.F*!n(20)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(5),i=n(102);r(r.P+r.F*!n(20)([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){n(106)("search",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){"use strict";n(112)("trim",function(t){return function(){return t(this,3)}})},function(t,e){},function(t,e){t.exports=function(t,e,n,r,i,o){var s,a=t=t||{},u=typeof t.default;"object"!==u&&"function"!==u||(s=t,a=t.default);var c,l="function"==typeof a?a.options:a;if(e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):r&&(c=r),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:a,options:l}}},function(t,e,n){"use strict";var r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"multiselect",class:{"multiselect--active":t.isOpen,"multiselect--disabled":t.disabled,"multiselect--above":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return"button"in e||!t._k(e.keyCode,"down",40,e.key,"ArrowDown")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return"button"in e||!t._k(e.keyCode,"up",38,e.key,"ArrowUp")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null},function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")||!t._k(e.keyCode,"tab",9,e.key,"Tab")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}],keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()}}},[t._t("caret",[n("div",{staticClass:"multiselect__select",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(" "),t._t("clear",null,{search:t.search}),t._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[t._l(t.visibleValues,function(e){return[t._t("tag",[n("span",{staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keydown:function(n){if(!("button"in n)&&t._k(n.keyCode,"enter",13,n.key,"Enter"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(" "),t.internalValue&&t.internalValue.length>t.limit?[t._t("limit",[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e(),t._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[t._t("loading",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"multiselect__spinner"})])],2),t._v(" "),n("input",{directives:[{name:"show",rawName:"v-show",value:t.isOpen&&t.searchable,expression:"isOpen && searchable"}],ref:"search",staticClass:"multiselect__input",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:"text",autocomplete:"off",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()},keydown:[function(e){if(!("button"in e)&&t._k(e.keyCode,"down",40,e.key,"ArrowDown"))return null;e.preventDefault(),t.pointerForward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"up",38,e.key,"ArrowUp"))return null;e.preventDefault(),t.pointerBackward()},function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},function(e){if(!("button"in e)&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete"]))return null;e.stopPropagation(),t.removeLastElement()}]}}),t._v(" "),t.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("singleLabel",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(" "),t.isPlaceholderVisible?n("span",{on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("placeholder",[n("span",{staticClass:"multiselect__single"},[t._v("\n "+t._s(t.placeholder)+"\n ")])])],2):t._e()],2),t._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:t.optimizedHeight+"px"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:t.contentStyle},[t._t("beforeList"),t._v(" "),t.multiple&&t.max===t.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[t._t("maxElements",[t._v("Maximum of "+t._s(t.max)+" options selected. First remove a selected option to select another.")])],2)]):t._e(),t._v(" "),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,r){return n("li",{key:r,staticClass:"multiselect__element"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n("span",{staticClass:"multiselect__option",class:t.optionHighlight(r,e),attrs:{"data-select":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,"data-selected":t.selectedLabelText,"data-deselect":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(r)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(" "),e&&(e.$isLabel||e.$isDisabled)?n("span",{staticClass:"multiselect__option",class:t.groupHighlight(r,e),attrs:{"data-select":t.groupSelect&&t.selectGroupLabelText,"data-deselect":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(r)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:"showNoResults && (filteredOptions.length === 0 && search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noResult",[t._v("No elements found. Consider changing the search query.")])],2)]),t._v(" "),t._t("afterList")],2)])])],2)},staticRenderFns:[]};e.a=r}])},function(t,e,n){t.exports=n(237)},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(18),i=n(71),o=n(17),s=n(8),a=n(216);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,d=e||a;return function(e,a,h){for(var v,m,g=o(e),y=i(g),b=r(a,h,3),_=s(y.length),w=0,x=n?d(e,_):u?d(e,0):void 0;_>w;w++)if((p||w in y)&&(m=b(v=y[w],w,g),t))if(n)x[w]=m;else if(m)switch(t){case 3:return!0;case 5:return v;case 6:return w;case 2:x.push(v)}else if(l)return!1;return f?-1:c||l?l:x}}},function(t,e,n){var r=n(3),i=n(217),o=n(67),s=n(69)("IE_PROTO"),a=function(){},u=function(){var t,e=n(73)("iframe"),r=o.length;for(e.style.display="none",n(96).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=r(t),n=new a,a.prototype=null,n[s]=t):n=u(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(97),i=n(67).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e,n){var r=n(1);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){"use strict";var r=n(12),i=n(20),o=n(6),s=n(22),a=n(4);t.exports=function(t,e,n){var u=a(t),c=n(s,u,""[t]),l=c[0],f=c[1];o(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,l),r(RegExp.prototype,u,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){"use strict";var r=n(2),i=n(0),o=n(20),s=n(35),a=n(19),u=n(48),c=n(34),l=n(1),f=n(6),p=n(49),d=n(31),h=n(204);t.exports=function(t,e,n,v,m,g){var y=r[t],b=y,_=m?"set":"add",w=b&&b.prototype,x={},O=function(t){var e=w[t];o(w,t,"delete"==t?function(t){return!(g&&!l(t))&&e.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!l(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof b&&(g||w.forEach&&!f(function(){(new b).entries().next()}))){var S=new b,C=S[_](g?{}:-0,1)!=S,k=f(function(){S.has(1)}),E=p(function(t){new b(t)}),A=!g&&f(function(){for(var t=new b,e=5;e--;)t[_](e,e);return!t.has(-0)});E||((b=e(function(e,n){c(e,b,t);var r=h(new y,e,b);return void 0!=n&&u(n,m,r[_],r),r})).prototype=w,w.constructor=b),(k||A)&&(O("delete"),O("has"),m&&O("get")),(A||C)&&O(_),g&&w.clear&&delete w.clear}else b=v.getConstructor(e,t,m,_),s(b.prototype,n),a.NEED=!0;return d(b,t),x[t]=b,i(i.G+i.W+i.F*(b!=y),x),g||v.setStrong(b,t,m),b}},function(t,e,n){var r=n(18),i=n(90),o=n(63),s=n(3),a=n(8),u=n(62),c={},l={};(e=t.exports=function(t,e,n,f,p){var d,h,v,m,g=p?function(){return t}:u(t),y=r(n,f,e?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(o(g)){for(d=a(t.length);d>b;b++)if((m=e?y(s(h=t[b])[0],h[1]):y(t[b]))===c||m===l)return m}else for(v=g.call(t);!(h=v.next()).done;)if((m=i(v,y,h.value,e))===c||m===l)return m}).BREAK=c,e.RETURN=l},function(t,e,n){var r=n(4)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],s=o[r]();s.next=function(){return{done:n=!0}},o[r]=function(){return s},t(o)}catch(t){}return n}},function(t,e,n){"use strict";var r=n(2),i=n(7),o=n(9),s=n(4)("species");t.exports=function(t){var e=r[t];o&&e&&!e[s]&&i.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){function n(t){return"function"==typeof t.value||(console.warn("[Vue-click-outside:] provided expression",t.expression,"is not a function."),!1)}function r(t){return void 0!==t.componentInstance&&t.componentInstance.$isServer}t.exports={bind:function(t,e,i){function o(e){if(i.context){var n=e.path||e.composedPath&&e.composedPath();n&&n.length>0&&n.unshift(e.target),t.contains(e.target)||function(t,e){if(!t||!e)return!1;for(var n=0,r=e.length;n<r;n++)try{if(t.contains(e[n]))return!0;if(e[n].contains(t))return!1}catch(t){return!1}return!1}(i.context.popupItem,n)||t.__vueClickOutside__.callback(e)}}n(e)&&(t.__vueClickOutside__={handler:o,callback:e.value},!r(i)&&document.addEventListener("click",o))},update:function(t,e){n(e)&&(t.__vueClickOutside__.callback=e.value)},unbind:function(t,e,n){!r(n)&&document.removeEventListener("click",t.__vueClickOutside__.handler),delete t.__vueClickOutside__}}},function(t,e,n){var r=n(2).navigator;t.exports=r&&r.userAgent||""},function(t,e){var n=Math.expm1;t.exports=!n||n(10)>22025.465794806718||n(10)<22025.465794806718||-2e-17!=n(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:n},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){"use strict";var r=n(7),i=n(26);t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},function(t,e,n){var r=n(4)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},function(t,e,n){var r=n(81),i=n(22);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},function(t,e,n){var r,i,o,s=n(18),a=n(87),u=n(96),c=n(73),l=n(2),f=l.process,p=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,v=l.Dispatch,m=0,g={},y=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},b=function(t){y.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return g[++m]=function(){a("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete g[t]},"process"==n(33)(f)?r=function(t){f.nextTick(s(y,t,1))}:v&&v.now?r=function(t){v.now(s(y,t,1))}:h?(o=(i=new h).port2,i.port1.onmessage=b,r=s(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(t){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(s(y,t,1),0)}),t.exports={set:p,clear:d}},function(t,e,n){var r=n(1),i=n(3),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(18)(Function.call,n(15).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){"use strict";var r=n(28),i=n(94),o=n(30),s=n(14);t.exports=n(93)(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,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(64),i=n(4)("iterator"),o=n(30);t.exports=n(37).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){var r=n(30),i=n(4)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,e,n){var r=n(33),i=n(4)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(s=r(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,n){var r=n(3),i=n(24),o=n(4)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||void 0==(n=r(s)[o])?e:i(n)}},function(t,e,n){"use strict";var r=n(17),i=n(32),o=n(8);t.exports=function(t){for(var e=r(this),n=o(e.length),s=arguments.length,a=i(s>1?arguments[1]:void 0,n),u=s>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);c>a;)e[a++]=t;return e}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(2),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(68)("keys"),i=n(25);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){var r=n(14),i=n(8),o=n(32);t.exports=function(t){return function(e,n,s){var a,u=r(e),c=i(u.length),l=o(s,c);if(t&&n!=n){for(;c>l;)if((a=u[l++])!=a)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(33);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){for(var r,i=n(2),o=n(12),s=n(25),a=s("typed_array"),u=s("view"),c=!(!i.ArrayBuffer||!i.DataView),l=c,f=0,p="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f<9;)(r=i[p[f++]])?(o(r.prototype,a,!0),o(r.prototype,u,!0)):l=!1;t.exports={ABV:c,CONSTR:l,TYPED:a,VIEW:u}},function(t,e,n){var r=n(1),i=n(2).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){"use strict";(function(e){var r=n(10),i=n(234),o={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a,u={adapter:("undefined"!=typeof XMLHttpRequest?a=n(104):void 0!==e&&(a=n(104)),a),transformRequest:[function(t,e){return i(e,"Content-Type"),r.isFormData(t)||r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t)?t:r.isArrayBufferView(t)?t.buffer:r.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):r.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(t){u.headers[t]={}}),r.forEach(["post","put","patch"],function(t){u.headers[t]=r.merge(o)}),t.exports=u}).call(this,n(75))},function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,c=[],l=!1,f=-1;function p(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var t=a(p);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f<e;)u&&u[f].run();f=-1,e=c.length}u=null,l=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function h(t,e){this.fun=t,this.array=e}function v(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new h(t,e)),1!==c.length||l||a(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=v,i.addListener=v,i.once=v,i.off=v,i.removeListener=v,i.removeAllListeners=v,i.emit=v,i.prependListener=v,i.prependOnceListener=v,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){(function(e){ +/** + * vue-local-storage v0.6.0 + * (c) 2017 Alexander Avakov + * @license MIT + */ +t.exports=function(){"use strict";var t=function(){this._properties={},this._namespace="",this._isSupported=!0},n={namespace:{}};n.namespace.get=function(){return this._namespace},n.namespace.set=function(t){this._namespace=t?t+".":""},t.prototype._getLsKey=function(t){return""+this._namespace+t},t.prototype._lsSet=function(t,e,n){var r=this._getLsKey(t),i=n&&[Array,Object].includes(n)?JSON.stringify(e):e;window.localStorage.setItem(r,i)},t.prototype._lsGet=function(t){var e=this._getLsKey(t);return window.localStorage[e]},t.prototype.get=function(t,e,n){if(void 0===e&&(e=null),void 0===n&&(n=String),!this._isSupported)return null;if(this._lsGet(t)){var r=n;for(var i in this._properties)if(i===t){r=this._properties[i].type;break}return this._process(r,this._lsGet(t))}return null!==e?e:null},t.prototype.set=function(t,e){if(!this._isSupported)return null;for(var n in this._properties){var r=this._properties[n].type;if(n===t)return this._lsSet(t,e,r),e}return this._lsSet(t,e),e},t.prototype.remove=function(t){return this._isSupported?window.localStorage.removeItem(t):null},t.prototype.addProperty=function(t,e,n){void 0===n&&(n=void 0),e=e||String,this._properties[t]={type:e},this._lsGet(t)||null===n||this._lsSet(t,n,e)},t.prototype._process=function(t,e){switch(t){case Boolean:return"true"===e;case Number:return parseFloat(e);case Array:try{var n=JSON.parse(e);return Array.isArray(n)?n:[]}catch(t){return[]}case Object:try{return JSON.parse(e)}catch(t){return{}}default:return e}},Object.defineProperties(t.prototype,n);var r=new t;return{install:function(t,n){if(void 0===n&&(n={}),void 0===e||!(e.server||e.SERVER_BUILD||e.env&&"server"===e.env.VUE_ENV)){var i=!0;try{var o="__vue-localstorage-test__";window.localStorage.setItem(o,o),window.localStorage.removeItem(o)}catch(t){i=!1,r._isSupported=!1,console.error("Local storage is not supported")}var s=n.name||"localStorage",a=n.bind;n.namespace&&(r.namespace=n.namespace),t.mixin({beforeCreate:function(){var e=this;i&&this.$options[s]&&Object.keys(this.$options[s]).forEach(function(n){var i=e.$options[s][n],o=[i.type,i.default],u=o[0],c=o[1];r.addProperty(n,u,c);var l=Object.getOwnPropertyDescriptor(r,n);if(l)t.config.silent||console.log(n+": is already defined and will be reused");else{var f={get:function(){return t.localStorage.get(n,c)},set:function(e){return t.localStorage.set(n,e)},configurable:!0};Object.defineProperty(r,n,f),t.util.defineReactive(r,n,c)}(a||i.bind)&&!1!==i.bind&&(e.$options.computed=e.$options.computed||{},e.$options.computed[n]||(e.$options.computed[n]={get:function(){return t.localStorage[n]},set:function(e){t.localStorage[n]=e}}))})}}),t[s]=r,t.prototype["$"+s]=r}}}}()}).call(this,n(75))},function(t,e,n){var r=n(8),i=n(82),o=n(22);t.exports=function(t,e,n,s){var a=String(o(t)),u=a.length,c=void 0===n?" ":String(n),l=r(e);if(l<=u||""==c)return a;var f=l-u,p=i.call(c,Math.ceil(f/c.length));return p.length>f&&(p=p.slice(0,f)),s?p+a:a+p}},function(t,e,n){var r=n(21),i=n(14),o=n(40).f;t.exports=function(t){return function(e){for(var n,s=i(e),a=r(s),u=a.length,c=0,l=[];u>c;)o.call(s,n=a[c++])&&l.push(t?[n,s[n]]:s[n]);return l}}},function(t,e){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},function(t,e,n){var r=n(1),i=Math.floor;t.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},function(t,e,n){var r=n(1),i=n(33),o=n(4)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},function(t,e,n){"use strict";var r=n(23),i=n(22);t.exports=function(t){var e=String(i(this)),n="",o=r(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},function(t,e,n){var r=n(14),i=n(43).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(t){return s.slice()}}(t):i(r(t))}},function(t,e,n){e.f=n(4)},function(t,e,n){"use strict";var r=n(24);t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},function(t,e,n){var r=n(43),i=n(46),o=n(3),s=n(2).Reflect;t.exports=s&&s.ownKeys||function(t){var e=r.f(o(t)),n=i.f;return n?e.concat(n(t)):e}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(35),i=n(19).getWeak,o=n(3),s=n(1),a=n(34),u=n(48),c=n(41),l=n(11),f=n(27),p=c(5),d=c(6),h=0,v=function(t){return t._l||(t._l=new m)},m=function(){this.a=[]},g=function(t,e){return p(t.a,function(t){return t[0]===e})};m.prototype={get:function(t){var e=g(this,t);if(e)return e[1]},has:function(t){return!!g(this,t)},set:function(t,e){var n=g(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=d(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,o){var c=t(function(t,r){a(t,c,e,"_i"),t._t=e,t._i=h++,t._l=void 0,void 0!=r&&u(r,n,t[o],t)});return r(c.prototype,{delete:function(t){if(!s(t))return!1;var n=i(t);return!0===n?v(f(this,e)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function(t){if(!s(t))return!1;var n=i(t);return!0===n?v(f(this,e)).has(t):n&&l(n,this._i)}}),c},def:function(t,e,n){var r=i(o(e),!0);return!0===r?v(t).set(e,n):r[t._i]=n,t},ufstore:v}},function(t,e,n){"use strict";var r=n(21),i=n(46),o=n(40),s=n(17),a=n(71),u=Object.assign;t.exports=!u||n(6)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=u({},t)[n]||Object.keys(u({},e)).join("")!=r})?function(t,e){for(var n=s(t),u=arguments.length,c=1,l=i.f,f=o.f;u>c;)for(var p,d=a(arguments[c++]),h=l?r(d).concat(l(d)):r(d),v=h.length,m=0;v>m;)f.call(d,p=h[m++])&&(n[p]=d[p]);return n}:u},function(t,e,n){var r=n(3);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},function(t,e,n){"use strict";var r=n(7).f,i=n(42),o=n(35),s=n(18),a=n(34),u=n(48),c=n(93),l=n(94),f=n(50),p=n(9),d=n(19).fastKey,h=n(27),v=p?"_s":"size",m=function(t,e){var n,r=d(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};t.exports={getConstructor:function(t,e,n,c){var l=t(function(t,r){a(t,l,e,"_i"),t._t=e,t._i=i(null),t._f=void 0,t._l=void 0,t[v]=0,void 0!=r&&u(r,n,t[c],t)});return o(l.prototype,{clear:function(){for(var t=h(this,e),n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[v]=0},delete:function(t){var n=h(this,e),r=m(n,t);if(r){var i=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[v]--}return!!r},forEach:function(t){h(this,e);for(var n,r=s(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!m(h(this,e),t)}}),p&&r(l.prototype,"size",{get:function(){return h(this,e)[v]}}),l},def:function(t,e,n){var r,i,o=m(t,e);return o?o.v=n:(t._l=o={i:i=d(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=o),r&&(r.n=o),t[v]++,"F"!==i&&(t._i[i]=o)),t},getEntry:m,setStrong:function(t,e,n){c(t,e,function(t,n){this._t=h(t,e),this._k=n,this._l=void 0},function(){for(var t=this._k,e=this._l;e&&e.r;)e=e.p;return this._t&&(this._l=e=e?e.n:this._t._f)?l(0,"keys"==t?e.k:"values"==t?e.v:[e.k,e.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),f(e)}}},function(t,e,n){"use strict";var r=n(17),i=n(32),o=n(8);t.exports=[].copyWithin||function(t,e){var n=r(this),s=o(n.length),a=i(t,s),u=i(e,s),c=arguments.length>2?arguments[2]:void 0,l=Math.min((void 0===c?s:i(c,s))-u,s-a),f=1;for(u<a&&a<u+l&&(f=-1,u+=l-1,a+=l-1);l-- >0;)u in n?n[a]=n[u]:delete n[a],a+=f,u+=f;return n}},function(t,e,n){"use strict";var r=n(36),i=n(0),o=n(20),s=n(12),a=n(30),u=n(214),c=n(31),l=n(29),f=n(4)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,m,g){u(n,e,h);var y,b,_,w=function(t){if(!p&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",O="values"==v,S=!1,C=t.prototype,k=C[f]||C["@@iterator"]||v&&C[v],E=k||w(v),A=v?O?w("entries"):E:void 0,$="Array"==e&&C.entries||k;if($&&(_=l($.call(new t)))!==Object.prototype&&_.next&&(c(_,x,!0),r||"function"==typeof _[f]||s(_,f,d)),O&&k&&"values"!==k.name&&(S=!0,E=function(){return k.call(this)}),r&&!g||!p&&!S&&C[f]||s(C,f,E),a[e]=E,a[x]=d,v)if(y={values:O?E:w("values"),keys:m?E:w("keys"),entries:A},g)for(b in y)b in C||o(C,b,y[b]);else i(i.P+i.F*(p||S),e,y);return y}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(33);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(2).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(11),i=n(14),o=n(70)(!1),s=n(69)("IE_PROTO");t.exports=function(t,e){var n,a=i(t),u=0,c=[];for(n in a)n!=s&&r(a,n)&&c.push(n);for(;e.length>u;)r(a,n=e[u++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){var r=n(23),i=n(8);t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=i(e);if(e!==n)throw RangeError("Wrong length!");return n}},function(t,e,n){"use strict";var r=n(2),i=n(9),o=n(36),s=n(72),a=n(12),u=n(35),c=n(6),l=n(34),f=n(23),p=n(8),d=n(98),h=n(43).f,v=n(7).f,m=n(66),g=n(31),y="prototype",b="Wrong index!",_=r.ArrayBuffer,w=r.DataView,x=r.Math,O=r.RangeError,S=r.Infinity,C=_,k=x.abs,E=x.pow,A=x.floor,$=x.log,L=x.LN2,T=i?"_b":"buffer",P=i?"_l":"byteLength",j=i?"_o":"byteOffset";function N(t,e,n){var r,i,o,s=new Array(n),a=8*n-e-1,u=(1<<a)-1,c=u>>1,l=23===e?E(2,-24)-E(2,-77):0,f=0,p=t<0||0===t&&1/t<0?1:0;for((t=k(t))!=t||t===S?(i=t!=t?1:0,r=u):(r=A($(t)/L),t*(o=E(2,-r))<1&&(r--,o*=2),(t+=r+c>=1?l/o:l*E(2,1-c))*o>=2&&(r++,o/=2),r+c>=u?(i=0,r=u):r+c>=1?(i=(t*o-1)*E(2,e),r+=c):(i=t*E(2,c-1)*E(2,e),r=0));e>=8;s[f++]=255&i,i/=256,e-=8);for(r=r<<e|i,a+=e;a>0;s[f++]=255&r,r/=256,a-=8);return s[--f]|=128*p,s}function M(t,e,n){var r,i=8*n-e-1,o=(1<<i)-1,s=o>>1,a=i-7,u=n-1,c=t[u--],l=127&c;for(c>>=7;a>0;l=256*l+t[u],u--,a-=8);for(r=l&(1<<-a)-1,l>>=-a,a+=e;a>0;r=256*r+t[u],u--,a-=8);if(0===l)l=1-s;else{if(l===o)return r?NaN:c?-S:S;r+=E(2,e),l-=s}return(c?-1:1)*r*E(2,l-e)}function U(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]}function I(t){return[255&t]}function F(t){return[255&t,t>>8&255]}function R(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function D(t){return N(t,52,8)}function B(t){return N(t,23,4)}function G(t,e,n){v(t[y],e,{get:function(){return this[n]}})}function V(t,e,n,r){var i=d(+n);if(i+e>t[P])throw O(b);var o=t[T]._b,s=i+t[j],a=o.slice(s,s+e);return r?a:a.reverse()}function H(t,e,n,r,i,o){var s=d(+n);if(s+e>t[P])throw O(b);for(var a=t[T]._b,u=s+t[j],c=r(+i),l=0;l<e;l++)a[u+l]=c[o?l:e-l-1]}if(s.ABV){if(!c(function(){_(1)})||!c(function(){new _(-1)})||c(function(){return new _,new _(1.5),new _(NaN),"ArrayBuffer"!=_.name})){for(var q,z=(_=function(t){return l(this,_),new C(d(t))})[y]=C[y],W=h(C),K=0;W.length>K;)(q=W[K++])in _||a(_,q,C[q]);o||(z.constructor=_)}var Y=new w(new _(2)),Q=w[y].setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||u(w[y],{setInt8:function(t,e){Q.call(this,t,e<<24>>24)},setUint8:function(t,e){Q.call(this,t,e<<24>>24)}},!0)}else _=function(t){l(this,_,"ArrayBuffer");var e=d(t);this._b=m.call(new Array(e),0),this[P]=e},w=function(t,e,n){l(this,w,"DataView"),l(t,_,"DataView");var r=t[P],i=f(e);if(i<0||i>r)throw O("Wrong offset!");if(i+(n=void 0===n?r-i:p(n))>r)throw O("Wrong length!");this[T]=t,this[j]=i,this[P]=n},i&&(G(_,"byteLength","_l"),G(w,"buffer","_b"),G(w,"byteLength","_l"),G(w,"byteOffset","_o")),u(w[y],{getInt8:function(t){return V(this,1,t)[0]<<24>>24},getUint8:function(t){return V(this,1,t)[0]},getInt16:function(t){var e=V(this,2,t,arguments[1]);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=V(this,2,t,arguments[1]);return e[1]<<8|e[0]},getInt32:function(t){return U(V(this,4,t,arguments[1]))},getUint32:function(t){return U(V(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return M(V(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return M(V(this,8,t,arguments[1]),52,8)},setInt8:function(t,e){H(this,1,t,I,e)},setUint8:function(t,e){H(this,1,t,I,e)},setInt16:function(t,e){H(this,2,t,F,e,arguments[2])},setUint16:function(t,e){H(this,2,t,F,e,arguments[2])},setInt32:function(t,e){H(this,4,t,R,e,arguments[2])},setUint32:function(t,e){H(this,4,t,R,e,arguments[2])},setFloat32:function(t,e){H(this,4,t,B,e,arguments[2])},setFloat64:function(t,e){H(this,8,t,D,e,arguments[2])}});g(_,"ArrayBuffer"),g(w,"DataView"),a(w[y],s.VIEW,!0),e.ArrayBuffer=_,e.DataView=w},function(t,e,n){t.exports=!n(9)&&!n(6)(function(){return 7!=Object.defineProperty(n(73)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";function r(t){this.message=t}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},function(t,e,n){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},function(t,e,n){"use strict";var r=n(232);t.exports=function(t,e,n,i,o){var s=new Error(t);return r(s,e,n,i,o)}},function(t,e,n){"use strict";var r=n(10),i=n(233),o=n(231),s=n(230),a=n(229),u=n(103),c="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(228);t.exports=function(t){return new Promise(function(e,l){var f=t.data,p=t.headers;r.isFormData(f)&&delete p["Content-Type"];var d=new XMLHttpRequest,h="onreadystatechange",v=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||a(t.url)||(d=new window.XDomainRequest,h="onload",v=!0,d.onprogress=function(){},d.ontimeout=function(){}),t.auth){var m=t.auth.username||"",g=t.auth.password||"";p.Authorization="Basic "+c(m+":"+g)}if(d.open(t.method.toUpperCase(),o(t.url,t.params,t.paramsSerializer),!0),d.timeout=t.timeout,d[h]=function(){if(d&&(4===d.readyState||v)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in d?s(d.getAllResponseHeaders()):null,r={data:t.responseType&&"text"!==t.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:n,config:t,request:d};i(e,l,r),d=null}},d.onerror=function(){l(u("Network Error",t,null,d)),d=null},d.ontimeout=function(){l(u("timeout of "+t.timeout+"ms exceeded",t,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var y=n(227),b=(t.withCredentials||a(t.url))&&t.xsrfCookieName?y.read(t.xsrfCookieName):void 0;b&&(p[t.xsrfHeaderName]=b)}if("setRequestHeader"in d&&r.forEach(p,function(t,e){void 0===f&&"content-type"===e.toLowerCase()?delete p[e]:d.setRequestHeader(e,t)}),t.withCredentials&&(d.withCredentials=!0),t.responseType)try{d.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&d.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(t){d&&(d.abort(),l(t),d=null)}),void 0===f&&(f=null),d.send(f)})}},function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return t.apply(e,n)}}},function(t,e,n){"undefined"!=typeof self&&self,t.exports=function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},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=3)}([function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=function(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var r=n(e,t);return e[2]?"@media "+e[2]+"{"+r+"}":r}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<t.length;i++){var s=t[i];"number"==typeof s[0]&&r[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),e.push(s))}},e}},function(t,e,n){function r(t){for(var e=0;e<t.length;e++){var n=t[e],r=c[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(o(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var s=[],i=0;i<n.parts.length;i++)s.push(o(n.parts[i]));c[n.id]={id:n.id,refs:1,parts:s}}}}function i(){var t=document.createElement("style");return t.type="text/css",l.appendChild(t),t}function o(t){var e,n,r=document.querySelector('style[data-vue-ssr-id~="'+t.id+'"]');if(r){if(d)return h;r.parentNode.removeChild(r)}if(v){var o=p++;r=f||(f=i()),e=s.bind(null,r,o,!1),n=s.bind(null,r,o,!0)}else r=i(),e=function(t,e){var n=e.css,r=e.media,i=e.sourceMap;if(r&&t.setAttribute("media",r),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}function s(t,e,n,r){var i=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=m(e,i);else{var o=document.createTextNode(i),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(o,s[e]):t.appendChild(o)}}var a="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!a)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u=n(7),c={},l=a&&(document.head||document.getElementsByTagName("head")[0]),f=null,p=0,d=!1,h=function(){},v="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n){d=n;var i=u(t,e);return r(i),function(e){for(var n=[],o=0;o<i.length;o++){var s=i[o],a=c[s.id];a.refs--,n.push(a)}e?r(i=u(t,e)):i=[];for(var o=0;o<n.length;o++){var a=n[o];if(0===a.refs){for(var l=0;l<a.parts.length;l++)a.parts[l]();delete c[a.id]}}}};var m=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t,e,n,r,i,o){var s,a=t=t||{},u=typeof t.default;"object"!==u&&"function"!==u||(s=t,a=t.default);var c,l="function"==typeof a?a.options:a;if(e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):r&&(c=r),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:a,options:l}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(4);e.default=r.a,"undefined"!=typeof window&&window.Vue&&window.Vue.component("infinite-loading",r.a)},function(t,e,n){"use strict";var r=n(8),i=n(14),o=n(2),s=function(t){n(5)},a=o(r.a,i.a,!1,s,"data-v-fb2c869e",null);e.a=a.exports},function(t,e,n){var r=n(6);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals),n(1)("2249d7a7",r,!0)},function(t,e,n){(t.exports=n(0)(void 0)).push([t.i,".infinite-loading-container[data-v-fb2c869e]{clear:both;text-align:center}.infinite-loading-container[data-v-fb2c869e] [class^=loading-]{display:inline-block;margin:15px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.infinite-status-prompt[data-v-fb2c869e]{color:#666;font-size:14px;text-align:center;padding:10px 0}",""])},function(t,e){t.exports=function(t,e){for(var n=[],r={},i=0;i<e.length;i++){var o=e[i],s=o[0],a=o[1],u=o[2],c=o[3],l={id:t+":"+i,css:a,media:u,sourceMap:c};r[s]?r[s].parts.push(l):n.push(r[s]={id:s,parts:[l]})}return n}},function(t,e,n){"use strict";var r=n(9),i={STATE_CHANGER:["[Vue-infinite-loading warn]: emit `loaded` and `complete` event through component instance of `$refs` may cause error, so it will be deprecated soon, please use the `$state` argument instead (`$state` just the special `$event` variable):","\ntemplate:",'<infinite-loading @infinite="infiniteHandler"></infinite-loading>',"\nscript:\n...\ninfiniteHandler($state) {\n ajax('https://www.example.com/api/news')\n .then((res) => {\n if (res.data.length) {\n $state.loaded();\n } else {\n $state.complete();\n }\n });\n}\n...","","more details: https://github.com/PeachScript/vue-infinite-loading/issues/57#issuecomment-324370549"].join("\n"),INFINITE_EVENT:"[Vue-infinite-loading warn]: `:on-infinite` property will be deprecated soon, please use `@infinite` event instead."},o={INFINITE_LOOP:["[Vue-infinite-loading error]: executed the callback function more than 10 times for a short time, it looks like searched a wrong scroll wrapper that doest not has fixed height or maximum height, please check it. If you want to force to set a element as scroll wrapper ranther than automatic searching, you can do this:",'\n\x3c!-- add a special attribute for the real scroll wrapper --\x3e\n<div infinite-wrapper>\n ...\n \x3c!-- set force-use-infinite-wrapper to true --\x3e\n <infinite-loading force-use-infinite-wrapper="true"></infinite-loading>\n</div>\n ',"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169"].join("\n")};e.a={name:"InfiniteLoading",data:function(){return{scrollParent:null,scrollHandler:null,isLoading:!1,isComplete:!1,isFirstLoad:!0,debounceTimer:null,debounceDuration:50,infiniteLoopChecked:!1,infiniteLoopTimer:null,continuousCallTimes:0}},components:{Spinner:r.a},computed:{isNoResults:{cache:!1,get:function(){var t=this.$slots["no-results"],e=t&&t[0].elm&&""===t[0].elm.textContent;return!this.isLoading&&this.isComplete&&this.isFirstLoad&&!e}},isNoMore:{cache:!1,get:function(){var t=this.$slots["no-more"],e=t&&t[0].elm&&""===t[0].elm.textContent;return!this.isLoading&&this.isComplete&&!this.isFirstLoad&&!e}}},props:{distance:{type:Number,default:100},onInfinite:Function,spinner:String,direction:{type:String,default:"bottom"},forceUseInfiniteWrapper:null},mounted:function(){var t=this;this.scrollParent=this.getScrollParent(),this.scrollHandler=function(t){this.isLoading||(clearTimeout(this.debounceTimer),t&&t.constructor===Event?this.debounceTimer=setTimeout(this.attemptLoad,this.debounceDuration):this.attemptLoad())}.bind(this),setTimeout(this.scrollHandler,1),this.scrollParent.addEventListener("scroll",this.scrollHandler),this.$on("$InfiniteLoading:loaded",function(e){t.isFirstLoad=!1,t.isLoading&&t.$nextTick(t.attemptLoad.bind(null,!0)),e&&e.target===t||console.warn(i.STATE_CHANGER)}),this.$on("$InfiniteLoading:complete",function(e){t.isLoading=!1,t.isComplete=!0,t.$nextTick(function(){t.$forceUpdate()}),t.scrollParent.removeEventListener("scroll",t.scrollHandler),e&&e.target===t||console.warn(i.STATE_CHANGER)}),this.$on("$InfiniteLoading:reset",function(){t.isLoading=!1,t.isComplete=!1,t.isFirstLoad=!0,t.scrollParent.addEventListener("scroll",t.scrollHandler),setTimeout(t.scrollHandler,1)}),this.onInfinite&&console.warn(i.INFINITE_EVENT),this.stateChanger={loaded:function(){t.$emit("$InfiniteLoading:loaded",{target:t})},complete:function(){t.$emit("$InfiniteLoading:complete",{target:t})},reset:function(){t.$emit("$InfiniteLoading:reset",{target:t})}},this.$watch("forceUseInfiniteWrapper",function(){t.scrollParent=t.getScrollParent()})},deactivated:function(){this.isLoading=!1,this.scrollParent.removeEventListener("scroll",this.scrollHandler)},activated:function(){this.scrollParent.addEventListener("scroll",this.scrollHandler)},methods:{attemptLoad:function(t){var e=this,n=this.getCurrentDistance();!this.isComplete&&n<=this.distance&&this.$el.offsetWidth+this.$el.offsetHeight>0?(this.isLoading=!0,"function"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit("infinite",this.stateChanger),!t||this.forceUseInfiniteWrapper||this.infiniteLoopChecked||(this.continuousCallTimes+=1,clearTimeout(this.infiniteLoopTimer),this.infiniteLoopTimer=setTimeout(function(){e.infiniteLoopChecked=!0},1e3),this.continuousCallTimes>10&&(console.error(o.INFINITE_LOOP),this.infiniteLoopChecked=!0))):this.isLoading=!1},getCurrentDistance:function(){return"top"===this.direction?isNaN(this.scrollParent.scrollTop)?this.scrollParent.pageYOffset:this.scrollParent.scrollTop:this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom)},getScrollParent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el,e=void 0;return"BODY"===t.tagName?e=window:!this.forceUseInfiniteWrapper&&["scroll","auto"].indexOf(getComputedStyle(t).overflowY)>-1?e=t:(t.hasAttribute("infinite-wrapper")||t.hasAttribute("data-infinite-wrapper"))&&(e=t),e||this.getScrollParent(t.parentNode)}},destroyed:function(){this.isComplete||this.scrollParent.removeEventListener("scroll",this.scrollHandler)}}},function(t,e,n){"use strict";var r=n(12),i=n(13),o=n(2),s=function(t){n(10)},a=o(r.a,i.a,!1,s,"data-v-6e1fd88f",null);e.a=a.exports},function(t,e,n){var r=n(11);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals),n(1)("29881045",r,!0)},function(t,e,n){(t.exports=n(0)(void 0)).push([t.i,'.loading-wave-dots[data-v-6e1fd88f]{position:relative}.loading-wave-dots[data-v-6e1fd88f] .wave-item{position:absolute;top:50%;left:50%;display:inline-block;margin-top:-4px;width:8px;height:8px;border-radius:50%;-webkit-animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite;animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite}.loading-wave-dots[data-v-6e1fd88f] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-6e1fd88f{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}@keyframes loading-wave-dots-data-v-6e1fd88f{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}.loading-circles[data-v-6e1fd88f] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-6e1fd88f linear .75s infinite;animation:loading-circles-data-v-6e1fd88f linear .75s infinite}.loading-circles[data-v-6e1fd88f] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-6e1fd88f] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-6e1fd88f] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite;animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite}.loading-bubbles[data-v-6e1fd88f] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-6e1fd88f{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}@keyframes loading-bubbles-data-v-6e1fd88f{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}.loading-default[data-v-6e1fd88f]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite;animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite}.loading-default[data-v-6e1fd88f]:before{content:"";position:absolute;display:block;top:0;left:50%;margin-top:-3px;margin-left:-3px;width:6px;height:6px;background-color:#999;border-radius:50%}.loading-spiral[data-v-6e1fd88f]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-6e1fd88f linear .85s infinite;animation:loading-rotating-data-v-6e1fd88f linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-6e1fd88f],.loading-circles[data-v-6e1fd88f]{position:relative}.loading-bubbles[data-v-6e1fd88f] .bubble-item,.loading-circles[data-v-6e1fd88f] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child,.loading-circles[data-v-6e1fd88f] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',""])},function(t,e,n){"use strict";var r={BUBBLES:{render:function(t){return t("span",{attrs:{class:"loading-bubbles"}},Array.apply(Array,Array(8)).map(function(){return t("span",{attrs:{class:"bubble-item"}})}))}},CIRCLES:{render:function(t){return t("span",{attrs:{class:"loading-circles"}},Array.apply(Array,Array(8)).map(function(){return t("span",{attrs:{class:"circle-item"}})}))}},DEFAULT:{render:function(t){return t("i",{attrs:{class:"loading-default"}})}},SPIRAL:{render:function(t){return t("i",{attrs:{class:"loading-spiral"}})}},WAVEDOTS:{render:function(t){return t("span",{attrs:{class:"loading-wave-dots"}},Array.apply(Array,Array(5)).map(function(){return t("span",{attrs:{class:"wave-item"}})}))}}};e.a={name:"spinner",computed:{spinnerView:function(){return r[(this.spinner||"").toUpperCase()]||r.DEFAULT}},props:{spinner:String}}},function(t,e,n){"use strict";var r={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(t.spinnerView,{tag:"component"})},staticRenderFns:[]};e.a=r},function(t,e,n){"use strict";var r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"infinite-loading-container"},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isLoading,expression:"isLoading"}]},[t._t("spinner",[n("spinner",{attrs:{spinner:t.spinner}})])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isNoResults,expression:"isNoResults"}],staticClass:"infinite-status-prompt"},[t._t("no-results",[t._v("No results :(")])],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.isNoMore,expression:"isNoMore"}],staticClass:"infinite-status-prompt"},[t._t("no-more",[t._v("No more data :)")])],2)])},staticRenderFns:[]};e.a=r}])},function(t,e,n){"use strict";(function(t){for( +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.14.3 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var n="undefined"!=typeof window&&"undefined"!=typeof document,r=["Edge","Trident","Firefox"],i=0,o=0;o<r.length;o+=1)if(n&&navigator.userAgent.indexOf(r[o])>=0){i=1;break}var s=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},i))}};function a(t){return t&&"[object Function]"==={}.toString.call(t)}function u(t,e){if(1!==t.nodeType)return[];var n=getComputedStyle(t,null);return e?n[e]:n}function c(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function l(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=u(t),n=e.overflow,r=e.overflowX,i=e.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?t:l(c(t))}var f=n&&!(!window.MSInputMethodContext||!document.documentMode),p=n&&/MSIE 10/.test(navigator.userAgent);function d(t){return 11===t?f:10===t?p:f||p}function h(t){if(!t)return document.documentElement;for(var e=d(10)?document.body:null,n=t.offsetParent;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===u(n,"position")?h(n):n:t?t.ownerDocument.documentElement:document.documentElement}function v(t){return null!==t.parentNode?v(t.parentNode):t}function m(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?t:e,i=n?e:t,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var s,a,u=o.commonAncestorContainer;if(t!==u&&e!==u||r.contains(i))return"BODY"===(a=(s=u).nodeName)||"HTML"!==a&&h(s.firstElementChild)!==s?h(u):u;var c=v(t);return c.host?m(c.host,e):m(t,v(e).host)}function g(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var r=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||r)[e]}return t[e]}function y(t,e){var n="x"===e?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+r+"Width"],10)}function b(t,e,n,r){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],d(10)?n["offset"+t]+r["margin"+("Height"===t?"Top":"Left")]+r["margin"+("Height"===t?"Bottom":"Right")]:0)}function _(){var t=document.body,e=document.documentElement,n=d(10)&&getComputedStyle(e);return{height:b("Height",t,e,n),width:b("Width",t,e,n)}}var w=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},x=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),O=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};function C(t){return S({},t,{right:t.left+t.width,bottom:t.top+t.height})}function k(t){var e={};try{if(d(10)){e=t.getBoundingClientRect();var n=g(t,"top"),r=g(t,"left");e.top+=n,e.left+=r,e.bottom+=n,e.right+=r}else e=t.getBoundingClientRect()}catch(t){}var i={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},o="HTML"===t.nodeName?_():{},s=o.width||t.clientWidth||i.right-i.left,a=o.height||t.clientHeight||i.bottom-i.top,c=t.offsetWidth-s,l=t.offsetHeight-a;if(c||l){var f=u(t);c-=y(f,"x"),l-=y(f,"y"),i.width-=c,i.height-=l}return C(i)}function E(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=d(10),i="HTML"===e.nodeName,o=k(t),s=k(e),a=l(t),c=u(e),f=parseFloat(c.borderTopWidth,10),p=parseFloat(c.borderLeftWidth,10);n&&"HTML"===e.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var h=C({top:o.top-s.top-f,left:o.left-s.left-p,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var v=parseFloat(c.marginTop,10),m=parseFloat(c.marginLeft,10);h.top-=f-v,h.bottom-=f-v,h.left-=p-m,h.right-=p-m,h.marginTop=v,h.marginLeft=m}return(r&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=g(e,"top"),i=g(e,"left"),o=n?-1:1;return t.top+=r*o,t.bottom+=r*o,t.left+=i*o,t.right+=i*o,t}(h,e)),h}function A(t){if(!t||!t.parentElement||d())return document.documentElement;for(var e=t.parentElement;e&&"none"===u(e,"transform");)e=e.parentElement;return e||document.documentElement}function $(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=i?A(t):m(t,e);if("viewport"===r)o=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,r=E(t,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:g(n),a=e?0:g(n,"left");return C({top:s-r.top+r.marginTop,left:a-r.left+r.marginLeft,width:i,height:o})}(s,i);else{var a=void 0;"scrollParent"===r?"BODY"===(a=l(c(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===r?t.ownerDocument.documentElement:r;var f=E(a,s,i);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===u(e,"position")||t(c(e)))}(s))o=f;else{var p=_(),d=p.height,h=p.width;o.top+=f.top-f.marginTop,o.bottom=d+f.top,o.left+=f.left-f.marginLeft,o.right=h+f.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function L(t,e,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=$(n,r,o,i),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},u=Object.keys(a).map(function(t){return S({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=u.filter(function(t){var e=t.width,r=t.height;return e>=n.clientWidth&&r>=n.clientHeight}),l=c.length>0?c[0].key:u[0].key,f=t.split("-")[1];return l+(f?"-"+f:"")}function T(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return E(n,r?A(e):m(e,n),r)}function P(t){var e=getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),r=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+r,height:t.offsetHeight+n}}function j(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function N(t,e,n){n=n.split("-")[0];var r=P(t),i={width:r.width,height:r.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",u=o?"height":"width",c=o?"width":"height";return i[s]=e[s]+e[u]/2-r[u]/2,i[a]=n===a?e[a]-r[c]:e[j(a)],i}function M(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function U(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var r=M(t,function(t){return t[e]===n});return t.indexOf(r)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&a(n)&&(e.offsets.popper=C(e.offsets.popper),e.offsets.reference=C(e.offsets.reference),e=n(e,t))}),e}function I(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function F(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),r=0;r<e.length;r++){var i=e[r],o=i?""+i+n:t;if(void 0!==document.body.style[o])return o}return null}function R(t){var e=t.ownerDocument;return e?e.defaultView:window}function D(t,e,n,r){n.updateBound=r,R(t).addEventListener("resize",n.updateBound,{passive:!0});var i=l(t);return function t(e,n,r,i){var o="BODY"===e.nodeName,s=o?e.ownerDocument.defaultView:e;s.addEventListener(n,r,{passive:!0}),o||t(l(s.parentNode),n,r,i),i.push(s)}(i,"scroll",n.updateBound,n.scrollParents),n.scrollElement=i,n.eventsEnabled=!0,n}function B(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,R(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function G(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function V(t,e){Object.keys(e).forEach(function(n){var r="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&G(e[n])&&(r="px"),t.style[n]=e[n]+r})}function H(t,e,n){var r=M(t,function(t){return t.name===e}),i=!!r&&t.some(function(t){return t.name===n&&t.enabled&&t.order<r.order});if(!i){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return i}var q=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],z=q.slice(3);function W(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=z.indexOf(t),r=z.slice(n+1).concat(z.slice(0,n));return e?r.reverse():r}var K={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Y(t,e,n,r){var i=[0,0],o=-1!==["right","left"].indexOf(r),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(M(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var u=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(u)[0]]),[s[a].split(u)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,r){var i=(1===r?!o:o)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,r){var i=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+i[1],s=i[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=r}return C(a)[e]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(t,i,e,n)})})).forEach(function(t,e){t.forEach(function(n,r){G(n)&&(i[e]+=n*("-"===t[r-1]?-1:1))})}),i}var Q={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],r=e.split("-")[1];if(r){var i=t.offsets,o=i.reference,s=i.popper,a=-1!==["bottom","top"].indexOf(n),u=a?"left":"top",c=a?"width":"height",l={start:O({},u,o[u]),end:O({},u,o[u]+o[c]-s[c])};t.offsets.popper=S({},s,l[r])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,r=t.placement,i=t.offsets,o=i.popper,s=i.reference,a=r.split("-")[0],u=void 0;return u=G(+n)?[+n,0]:Y(n,o,s,a),"left"===a?(o.top+=u[0],o.left-=u[1]):"right"===a?(o.top+=u[0],o.left+=u[1]):"top"===a?(o.left+=u[0],o.top-=u[1]):"bottom"===a&&(o.left+=u[0],o.top+=u[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||h(t.instance.popper);t.instance.reference===n&&(n=h(n));var r=F("transform"),i=t.instance.popper.style,o=i.top,s=i.left,a=i[r];i.top="",i.left="",i[r]="";var u=$(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);i.top=o,i.left=s,i[r]=a,e.boundaries=u;var c=e.priority,l=t.offsets.popper,f={primary:function(t){var n=l[t];return l[t]<u[t]&&!e.escapeWithReference&&(n=Math.max(l[t],u[t])),O({},t,n)},secondary:function(t){var n="right"===t?"left":"top",r=l[n];return l[t]>u[t]&&!e.escapeWithReference&&(r=Math.min(l[n],u[t]-("right"===t?l.width:l.height))),O({},n,r)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";l=S({},l,f[e](t))}),t.offsets.popper=l,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,r=e.reference,i=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(i),a=s?"right":"bottom",u=s?"left":"top",c=s?"width":"height";return n[a]<o(r[u])&&(t.offsets.popper[u]=o(r[u])-n[c]),n[u]>o(r[a])&&(t.offsets.popper[u]=o(r[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!H(t.instance.modifiers,"arrow","keepTogether"))return t;var r=e.element;if("string"==typeof r){if(!(r=t.instance.popper.querySelector(r)))return t}else if(!t.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,c=-1!==["left","right"].indexOf(i),l=c?"height":"width",f=c?"Top":"Left",p=f.toLowerCase(),d=c?"left":"top",h=c?"bottom":"right",v=P(r)[l];a[h]-v<s[p]&&(t.offsets.popper[p]-=s[p]-(a[h]-v)),a[p]+v>s[h]&&(t.offsets.popper[p]+=a[p]+v-s[h]),t.offsets.popper=C(t.offsets.popper);var m=a[p]+a[l]/2-v/2,g=u(t.instance.popper),y=parseFloat(g["margin"+f],10),b=parseFloat(g["border"+f+"Width"],10),_=m-t.offsets.popper[p]-y-b;return _=Math.max(Math.min(s[l]-v,_),0),t.arrowElement=r,t.offsets.arrow=(O(n={},p,Math.round(_)),O(n,d,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(I(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=$(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),r=t.placement.split("-")[0],i=j(r),o=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case K.FLIP:s=[r,i];break;case K.CLOCKWISE:s=W(r);break;case K.COUNTERCLOCKWISE:s=W(r,!0);break;default:s=e.behavior}return s.forEach(function(a,u){if(r!==a||s.length===u+1)return t;r=t.placement.split("-")[0],i=j(r);var c=t.offsets.popper,l=t.offsets.reference,f=Math.floor,p="left"===r&&f(c.right)>f(l.left)||"right"===r&&f(c.left)<f(l.right)||"top"===r&&f(c.bottom)>f(l.top)||"bottom"===r&&f(c.top)<f(l.bottom),d=f(c.left)<f(n.left),h=f(c.right)>f(n.right),v=f(c.top)<f(n.top),m=f(c.bottom)>f(n.bottom),g="left"===r&&d||"right"===r&&h||"top"===r&&v||"bottom"===r&&m,y=-1!==["top","bottom"].indexOf(r),b=!!e.flipVariations&&(y&&"start"===o&&d||y&&"end"===o&&h||!y&&"start"===o&&v||!y&&"end"===o&&m);(p||g||b)&&(t.flipped=!0,(p||g)&&(r=s[u+1]),b&&(o=function(t){return"end"===t?"start":"start"===t?"end":t}(o)),t.placement=r+(o?"-"+o:""),t.offsets.popper=S({},t.offsets.popper,N(t.instance.popper,t.offsets.reference,t.placement)),t=U(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],r=t.offsets,i=r.popper,o=r.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return i[s?"left":"top"]=o[n]-(a?i[s?"width":"height"]:0),t.placement=j(e),t.offsets.popper=C(i),t}},hide:{order:800,enabled:!0,fn:function(t){if(!H(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=M(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,r=e.y,i=t.offsets.popper,o=M(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,a=k(h(t.instance.popper)),u={position:i.position},c={left:Math.floor(i.left),top:Math.round(i.top),bottom:Math.round(i.bottom),right:Math.floor(i.right)},l="bottom"===n?"top":"bottom",f="right"===r?"left":"right",p=F("transform"),d=void 0,v=void 0;if(v="bottom"===l?-a.height+c.bottom:c.top,d="right"===f?-a.width+c.right:c.left,s&&p)u[p]="translate3d("+d+"px, "+v+"px, 0)",u[l]=0,u[f]=0,u.willChange="transform";else{var m="bottom"===l?-1:1,g="right"===f?-1:1;u[l]=v*m,u[f]=d*g,u.willChange=l+", "+f}var y={"x-placement":t.placement};return t.attributes=S({},y,t.attributes),t.styles=S({},u,t.styles),t.arrowStyles=S({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return V(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&V(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,r,i){var o=T(i,e,t,n.positionFixed),s=L(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),V(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},J=function(){function t(e,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};w(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=s(this.update.bind(this)),this.options=S({},t.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(S({},t.Defaults.modifiers,i.modifiers)).forEach(function(e){r.options.modifiers[e]=S({},t.Defaults.modifiers[e]||{},i.modifiers?i.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return S({name:t},r.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&a(t.onLoad)&&t.onLoad(r.reference,r.popper,r.options,t,r.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return x(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=T(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=L(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=N(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=U(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,I(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[F("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=D(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return B.call(this)}}]),t}();J.Utils=("undefined"!=typeof window?window:t).PopperUtils,J.placements=q,J.Defaults=Q;var X=function(){};function Z(t){return"string"==typeof t&&(t=t.split(" ")),t}function tt(t,e){var n=Z(e),r=void 0;r=t.className instanceof X?Z(t.className.baseVal):Z(t.className),n.forEach(function(t){-1===r.indexOf(t)&&r.push(t)}),t instanceof SVGElement?t.setAttribute("class",r.join(" ")):t.className=r.join(" ")}function et(t,e){var n=Z(e),r=void 0;r=t.className instanceof X?Z(t.className.baseVal):Z(t.className),n.forEach(function(t){var e=r.indexOf(t);-1!==e&&r.splice(e,1)}),t instanceof SVGElement?t.setAttribute("class",r.join(" ")):t.className=r.join(" ")}"undefined"!=typeof window&&(X=window.SVGAnimatedString);var nt=!1;if("undefined"!=typeof window){nt=!1;try{var rt=Object.defineProperty({},"passive",{get:function(){nt=!0}});window.addEventListener("test",null,rt)}catch(t){}}var it="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ot=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},st=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),at=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},ut={container:!1,delay:0,html:!1,placement:"top",title:"",template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",offset:0},ct=[],lt=function(){function t(e,n){ot(this,t),ft.call(this),n=at({},ut,n),e.jquery&&(e=e[0]),this.reference=e,this.options=n,this._isOpen=!1,this._init()}return st(t,[{key:"setClasses",value:function(t){this._classes=t}},{key:"setContent",value:function(t){this.options.title=t,this._tooltipNode&&this._setContent(t,this.options)}},{key:"setOptions",value:function(t){var e=!1,n=t&&t.classes||_t.options.defaultClass;this._classes!==n&&(this.setClasses(n),e=!0),t=vt(t);var r=!1,i=!1;for(var o in this.options.offset===t.offset&&this.options.placement===t.placement||(r=!0),(this.options.template!==t.template||this.options.trigger!==t.trigger||this.options.container!==t.container||e)&&(i=!0),t)this.options[o]=t[o];if(this._tooltipNode)if(i){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else r&&this.popperInstance.update()}},{key:"_init",value:function(){var t="string"==typeof this.options.trigger?this.options.trigger.split(" ").filter(function(t){return-1!==["click","hover","focus"].indexOf(t)}):[];this._isDisposed=!1,this._enableDocumentTouch=-1===t.indexOf("manual"),this._setEventListeners(this.reference,t,this.options)}},{key:"_create",value:function(t,e){var n=window.document.createElement("div");n.innerHTML=e.trim();var r=n.childNodes[0];return r.id="tooltip_"+Math.random().toString(36).substr(2,10),r.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(r.addEventListener("mouseenter",this.hide),r.addEventListener("click",this.hide)),r}},{key:"_setContent",value:function(t,e){var n=this;this.asyncContent=!1,this._applyContent(t,e).then(function(){n.popperInstance.update()})}},{key:"_applyContent",value:function(t,e){var n=this;return new Promise(function(r,i){var o=e.html,s=n._tooltipNode,a=s.querySelector(n.options.innerSelector);if(1===t.nodeType){if(o){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(t)}}else{if("function"==typeof t){var u=t();return void(u&&"function"==typeof u.then?(n.asyncContent=!0,e.loadingClass&&tt(s,e.loadingClass),e.loadingContent&&n._applyContent(e.loadingContent,e),u.then(function(t){return e.loadingClass&&et(s,e.loadingClass),n._applyContent(t,e)}).then(r).catch(i)):n._applyContent(u,e).then(r).catch(i))}o?a.innerHTML=t:a.innerText=t}r()})}},{key:"_show",value:function(t,e){if(e&&"string"==typeof e.container&&!document.querySelector(e.container))return;clearTimeout(this._disposeTimer),delete(e=Object.assign({},e)).offset;var n=!0;this._tooltipNode&&(tt(this._tooltipNode,this._classes),n=!1);var r=this._ensureShown(t,e);return n&&this._tooltipNode&&tt(this._tooltipNode,this._classes),tt(t,["v-tooltip-open"]),r}},{key:"_ensureShown",value:function(t,e){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,ct.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(e.title,e),this;var r=t.getAttribute("title")||e.title;if(!r)return this;var i=this._create(t,e.template);this._tooltipNode=i,this._setContent(r,e),t.setAttribute("aria-describedby",i.id);var o=this._findContainer(e.container,t);this._append(i,o);var s=at({},e.popperOptions,{placement:e.placement});return s.modifiers=at({},s.modifiers,{arrow:{element:this.options.arrowSelector}}),e.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:e.boundariesElement}),this.popperInstance=new J(t,i,s),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var t=ct.indexOf(this);-1!==t&&ct.splice(t,1)}},{key:"_hide",value:function(){var t=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var e=_t.options.disposeTimeout;return null!==e&&(this._disposeTimer=setTimeout(function(){t._tooltipNode&&(t._tooltipNode.removeEventListener("mouseenter",t.hide),t._tooltipNode.removeEventListener("click",t.hide),t._tooltipNode.parentNode.removeChild(t._tooltipNode),t._tooltipNode=null)},e)),et(this.reference,["v-tooltip-open"]),this}},{key:"_dispose",value:function(){var t=this;return this._isDisposed=!0,this._events.forEach(function(e){var n=e.func,r=e.event;t.reference.removeEventListener(r,n)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||(this._tooltipNode.parentNode.removeChild(this._tooltipNode),this._tooltipNode=null)):this._noLongerOpen(),this}},{key:"_findContainer",value:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t}},{key:"_append",value:function(t,e){e.appendChild(t)}},{key:"_setEventListeners",value:function(t,e,n){var r=this,i=[],o=[];e.forEach(function(t){switch(t){case"hover":i.push("mouseenter"),o.push("mouseleave"),r.options.hideOnTargetClick&&o.push("click");break;case"focus":i.push("focus"),o.push("blur"),r.options.hideOnTargetClick&&o.push("click");break;case"click":i.push("click"),o.push("click")}}),i.forEach(function(e){var i=function(e){!0!==r._isOpen&&(e.usedByTooltip=!0,r._scheduleShow(t,n.delay,n,e))};r._events.push({event:e,func:i}),t.addEventListener(e,i)}),o.forEach(function(e){var i=function(e){!0!==e.usedByTooltip&&r._scheduleHide(t,n.delay,n,e)};r._events.push({event:e,func:i}),t.addEventListener(e,i)})}},{key:"_onDocumentTouch",value:function(t){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,t)}},{key:"_scheduleShow",value:function(t,e,n){var r=this,i=e&&e.show||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return r._show(t,n)},i)}},{key:"_scheduleHide",value:function(t,e,n,r){var i=this,o=e&&e.hide||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&document.body.contains(i._tooltipNode)){if("mouseleave"===r.type)if(i._setTooltipNodeEvent(r,t,e,n))return;i._hide(t,n)}},o)}}]),t}(),ft=function(){var t=this;this.show=function(){t._show(t.reference,t.options)},this.hide=function(){t._hide()},this.dispose=function(){t._dispose()},this.toggle=function(){return t._isOpen?t.hide():t.show()},this._events=[],this._setTooltipNodeEvent=function(e,n,r,i){var o=e.relatedreference||e.toElement||e.relatedTarget;return!!t._tooltipNode.contains(o)&&(t._tooltipNode.addEventListener(e.type,function r(o){var s=o.relatedreference||o.toElement||o.relatedTarget;t._tooltipNode.removeEventListener(e.type,r),n.contains(s)||t._scheduleHide(n,i.delay,i,o)}),!0)}};"undefined"!=typeof document&&document.addEventListener("touchstart",function(t){for(var e=0;e<ct.length;e++)ct[e]._onDocumentTouch(t)},!nt||{passive:!0,capture:!0});var pt={enabled:!0},dt=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"],ht={defaultPlacement:"top",defaultClass:"vue-tooltip-theme",defaultTargetClass:"has-tooltip",defaultHtml:!0,defaultTemplate:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function vt(t){var e={placement:void 0!==t.placement?t.placement:_t.options.defaultPlacement,delay:void 0!==t.delay?t.delay:_t.options.defaultDelay,html:void 0!==t.html?t.html:_t.options.defaultHtml,template:void 0!==t.template?t.template:_t.options.defaultTemplate,arrowSelector:void 0!==t.arrowSelector?t.arrowSelector:_t.options.defaultArrowSelector,innerSelector:void 0!==t.innerSelector?t.innerSelector:_t.options.defaultInnerSelector,trigger:void 0!==t.trigger?t.trigger:_t.options.defaultTrigger,offset:void 0!==t.offset?t.offset:_t.options.defaultOffset,container:void 0!==t.container?t.container:_t.options.defaultContainer,boundariesElement:void 0!==t.boundariesElement?t.boundariesElement:_t.options.defaultBoundariesElement,autoHide:void 0!==t.autoHide?t.autoHide:_t.options.autoHide,hideOnTargetClick:void 0!==t.hideOnTargetClick?t.hideOnTargetClick:_t.options.defaultHideOnTargetClick,loadingClass:void 0!==t.loadingClass?t.loadingClass:_t.options.defaultLoadingClass,loadingContent:void 0!==t.loadingContent?t.loadingContent:_t.options.defaultLoadingContent,popperOptions:at({},void 0!==t.popperOptions?t.popperOptions:_t.options.defaultPopperOptions)};if(e.offset){var n=it(e.offset),r=e.offset;("number"===n||"string"===n&&-1===r.indexOf(","))&&(r="0, "+r),e.popperOptions.modifiers||(e.popperOptions.modifiers={}),e.popperOptions.modifiers.offset={offset:r}}return e}function mt(t,e){for(var n=t.placement,r=0;r<dt.length;r++){var i=dt[r];e[i]&&(n=i)}return n}function gt(t){var e=void 0===t?"undefined":it(t);return"string"===e?t:!(!t||"object"!==e)&&t.content}function yt(t){t._tooltip&&(t._tooltip.dispose(),delete t._tooltip,delete t._tooltipOldShow),t._tooltipTargetClasses&&(et(t,t._tooltipTargetClasses),delete t._tooltipTargetClasses)}function bt(t,e){var n=e.value,r=(e.oldValue,e.modifiers),i=gt(n);if(i&&pt.enabled){var o=void 0;t._tooltip?((o=t._tooltip).setContent(i),o.setOptions(at({},n,{placement:mt(n,r)}))):o=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=gt(e),i=void 0!==e.classes?e.classes:_t.options.defaultClass,o=at({title:r},vt(at({},e,{placement:mt(e,n)}))),s=t._tooltip=new lt(t,o);s.setClasses(i),s._vueEl=t;var a=void 0!==e.targetClasses?e.targetClasses:_t.options.defaultTargetClass;return t._tooltipTargetClasses=a,tt(t,a),s}(t,n,r),void 0!==n.show&&n.show!==t._tooltipOldShow&&(t._tooltipOldShow=n.show,n.show?o.show():o.hide())}else yt(t)}var _t={options:ht,bind:bt,update:bt,unbind:function(t){yt(t)}};function wt(t){t.addEventListener("click",Ot),t.addEventListener("touchstart",St,!!nt&&{passive:!0})}function xt(t){t.removeEventListener("click",Ot),t.removeEventListener("touchstart",St),t.removeEventListener("touchend",Ct),t.removeEventListener("touchcancel",kt)}function Ot(t){var e=t.currentTarget;t.closePopover=!e.$_vclosepopover_touch,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}function St(t){if(1===t.changedTouches.length){var e=t.currentTarget;e.$_vclosepopover_touch=!0;var n=t.changedTouches[0];e.$_vclosepopover_touchPoint=n,e.addEventListener("touchend",Ct),e.addEventListener("touchcancel",kt)}}function Ct(t){var e=t.currentTarget;if(e.$_vclosepopover_touch=!1,1===t.changedTouches.length){var n=t.changedTouches[0],r=e.$_vclosepopover_touchPoint;t.closePopover=Math.abs(n.screenY-r.screenY)<20&&Math.abs(n.screenX-r.screenX)<20,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}}function kt(t){t.currentTarget.$_vclosepopover_touch=!1}var Et={bind:function(t,e){var n=e.value,r=e.modifiers;t.$_closePopoverModifiers=r,(void 0===n||n)&&wt(t)},update:function(t,e){var n=e.value,r=e.oldValue,i=e.modifiers;t.$_closePopoverModifiers=i,n!==r&&(void 0===n||n?wt(t):xt(t))},unbind:function(t){xt(t)}};var At=void 0;function $t(){$t.init||($t.init=!0,At=-1!==function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var n=t.indexOf("rv:");return parseInt(t.substring(n+3,t.indexOf(".",n)),10)}var r=t.indexOf("Edge/");return r>0?parseInt(t.substring(r+5,t.indexOf(".",r)),10):-1}())}var Lt={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{notify:function(){this.$emit("notify")},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.notify),this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||this.notify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!At&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.notify),delete this._resizeObject.onload)}},mounted:function(){var t=this;$t(),this.$nextTick(function(){t._w=t.$el.offsetWidth,t._h=t.$el.offsetHeight});var e=document.createElement("object");this._resizeObject=e,e.setAttribute("style","display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;"),e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",At&&this.$el.appendChild(e),e.data="about:blank",At||this.$el.appendChild(e)},beforeDestroy:function(){this.removeResizeHandlers()}};var Tt={version:"0.4.4",install:function(t){t.component("resize-observer",Lt)}},Pt=null;function jt(t){var e=_t.options.popover[t];return void 0===e?_t.options[t]:e}"undefined"!=typeof window?Pt=window.Vue:void 0!==t&&(Pt=t.Vue),Pt&&Pt.use(Tt);var Nt=!1;"undefined"!=typeof window&&"undefined"!=typeof navigator&&(Nt=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);var Mt=[],Ut=function(){};"undefined"!=typeof window&&(Ut=window.Element);var It={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"v-popover",class:t.cssClass},[n("span",{ref:"trigger",staticClass:"trigger",staticStyle:{display:"inline-block"},attrs:{"aria-describedby":t.popoverId,tabindex:-1!==t.trigger.indexOf("focus")?0:-1}},[t._t("default")],2),t._v(" "),n("div",{ref:"popover",class:[t.popoverBaseClass,t.popoverClass,t.cssClass],style:{visibility:t.isOpen?"visible":"hidden"},attrs:{id:t.popoverId,"aria-hidden":t.isOpen?"false":"true"}},[n("div",{class:t.popoverWrapperClass},[n("div",{ref:"inner",class:t.popoverInnerClass,staticStyle:{position:"relative"}},[n("div",[t._t("popover")],2),t._v(" "),t.handleResize?n("ResizeObserver",{on:{notify:t.$_handleResize}}):t._e()],1),t._v(" "),n("div",{ref:"arrow",class:t.popoverArrowClass})])])])},staticRenderFns:[],name:"VPopover",components:{ResizeObserver:Lt},props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placement:{type:String,default:function(){return jt("defaultPlacement")}},delay:{type:[String,Number,Object],default:function(){return jt("defaultDelay")}},offset:{type:[String,Number],default:function(){return jt("defaultOffset")}},trigger:{type:String,default:function(){return jt("defaultTrigger")}},container:{type:[String,Object,Ut],default:function(){return jt("defaultContainer")}},boundariesElement:{type:Ut,default:function(){return jt("defaultBoundariesElement")}},popperOptions:{type:Object,default:function(){return jt("defaultPopperOptions")}},popoverClass:{type:[String,Array],default:function(){return jt("defaultClass")}},popoverBaseClass:{type:[String,Array],default:function(){return _t.options.popover.defaultBaseClass}},popoverInnerClass:{type:[String,Array],default:function(){return _t.options.popover.defaultInnerClass}},popoverWrapperClass:{type:[String,Array],default:function(){return _t.options.popover.defaultWrapperClass}},popoverArrowClass:{type:[String,Array],default:function(){return _t.options.popover.defaultArrowClass}},autoHide:{type:Boolean,default:function(){return _t.options.popover.defaultAutoHide}},handleResize:{type:Boolean,default:function(){return _t.options.popover.defaultHandleResize}},openGroup:{type:String,default:null}},data:function(){return{isOpen:!1,id:Math.random().toString(36).substr(2,10)}},computed:{cssClass:function(){return{open:this.isOpen}},popoverId:function(){return"popover_"+this.id}},watch:{open:function(t){t?this.show():this.hide()},disabled:function(t,e){t!==e&&(t?this.hide():this.open&&this.show())},container:function(t){if(this.isOpen&&this.popperInstance){var e=this.$refs.popover,n=this.$refs.trigger,r=this.$_findContainer(this.container,n);if(!r)return void console.warn("No container for popover",this);r.appendChild(e),this.popperInstance.scheduleUpdate()}},trigger:function(t){this.$_removeEventListeners(),this.$_addEventListeners()},placement:function(t){var e=this;this.$_updatePopper(function(){e.popperInstance.options.placement=t})},offset:"$_restartPopper",boundariesElement:"$_restartPopper",popperOptions:{handler:"$_restartPopper",deep:!0}},created:function(){this.$_isDisposed=!1,this.$_mounted=!1,this.$_events=[],this.$_preventOpen=!1},mounted:function(){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t),this.$_init(),this.open&&this.show()},beforeDestroy:function(){this.dispose()},methods:{show:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.event,r=(e.skipDelay,e.force);!(void 0!==r&&r)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){t.$_beingShowed=!1})},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.event;t.skipDelay;this.$_scheduleHide(e),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var t=this,e=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var r=this.$_findContainer(this.container,e);if(!r)return void console.warn("No container for popover",this);r.appendChild(n),this.$_mounted=!0}if(!this.popperInstance){var i=at({},this.popperOptions,{placement:this.placement});if(i.modifiers=at({},i.modifiers,{arrow:{element:this.$refs.arrow}}),this.offset){var o=this.$_getOffset();i.modifiers.offset={offset:o}}this.boundariesElement&&(i.modifiers.preventOverflow={boundariesElement:this.boundariesElement}),this.popperInstance=new J(e,n,i),requestAnimationFrame(function(){!t.$_isDisposed&&t.popperInstance?(t.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){t.$_isDisposed?t.dispose():t.isOpen=!0})):t.dispose()})}var s=this.openGroup;if(s)for(var a=void 0,u=0;u<Mt.length;u++)(a=Mt[u]).openGroup!==s&&(a.hide(),a.$emit("close-group"));Mt.push(this),this.$emit("apply-show")}},$_hide:function(){var t=this;if(this.isOpen){var e=Mt.indexOf(this);-1!==e&&Mt.splice(e,1),this.isOpen=!1,this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this.$_disposeTimer);var n=_t.options.popover.disposeTimeout||_t.options.disposeTimeout;null!==n&&(this.$_disposeTimer=setTimeout(function(){var e=t.$refs.popover;e&&(e.parentNode&&e.parentNode.removeChild(e),t.$_mounted=!1)},n)),this.$emit("apply-hide")}},$_findContainer:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t},$_getOffset:function(){var t=it(this.offset),e=this.offset;return("number"===t||"string"===t&&-1===e.indexOf(","))&&(e="0, "+e),e},$_addEventListeners:function(){var t=this,e=this.$refs.trigger,n=[],r=[];("string"==typeof this.trigger?this.trigger.split(" ").filter(function(t){return-1!==["click","hover","focus"].indexOf(t)}):[]).forEach(function(t){switch(t){case"hover":n.push("mouseenter"),r.push("mouseleave");break;case"focus":n.push("focus"),r.push("blur");break;case"click":n.push("click"),r.push("click")}}),n.forEach(function(n){var r=function(e){t.isOpen||(e.usedByTooltip=!0,!t.$_preventOpen&&t.show({event:e}))};t.$_events.push({event:n,func:r}),e.addEventListener(n,r)}),r.forEach(function(n){var r=function(e){e.usedByTooltip||t.hide({event:e})};t.$_events.push({event:n,func:r}),e.addEventListener(n,r)})},$_scheduleShow:function(){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),t)this.$_show();else{var e=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),e)}},$_scheduleHide:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var r=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(t.isOpen){if(e&&"mouseleave"===e.type)if(t.$_setTooltipNodeEvent(e))return;t.$_hide()}},r)}},$_setTooltipNodeEvent:function(t){var e=this,n=this.$refs.trigger,r=this.$refs.popover,i=t.relatedreference||t.toElement||t.relatedTarget;return!!r.contains(i)&&(r.addEventListener(t.type,function i(o){var s=o.relatedreference||o.toElement||o.relatedTarget;r.removeEventListener(t.type,i),n.contains(s)||e.hide({event:o})}),!0)},$_removeEventListeners:function(){var t=this.$refs.trigger;this.$_events.forEach(function(e){var n=e.func,r=e.event;t.removeEventListener(r,n)}),this.$_events=[]},$_updatePopper:function(t){this.popperInstance&&(t(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var t=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),t&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout(function(){e.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function Ft(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];requestAnimationFrame(function(){for(var n=void 0,r=0;r<Mt.length;r++)if((n=Mt[r]).$refs.popover){var i=n.$refs.popover.contains(t.target);(t.closeAllPopover||t.closePopover&&i||n.autoHide&&!i)&&n.$_handleGlobalClose(t,e)}})}"undefined"!=typeof document&&"undefined"!=typeof window&&(Nt?document.addEventListener("touchend",function(t){Ft(t,!0)},!nt||{passive:!0,capture:!0}):window.addEventListener("click",function(t){Ft(t)},!0));var Rt="undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{};var Dt,Bt=(function(t,e){var n=200,r="__lodash_hash_undefined__",i=800,o=16,s=9007199254740991,a="[object Arguments]",u="[object AsyncFunction]",c="[object Function]",l="[object GeneratorFunction]",f="[object Null]",p="[object Object]",d="[object Proxy]",h="[object Undefined]",v=/^\[object .+?Constructor\]$/,m=/^(?:0|[1-9]\d*)$/,g={};g["[object Float32Array]"]=g["[object Float64Array]"]=g["[object Int8Array]"]=g["[object Int16Array]"]=g["[object Int32Array]"]=g["[object Uint8Array]"]=g["[object Uint8ClampedArray]"]=g["[object Uint16Array]"]=g["[object Uint32Array]"]=!0,g[a]=g["[object Array]"]=g["[object ArrayBuffer]"]=g["[object Boolean]"]=g["[object DataView]"]=g["[object Date]"]=g["[object Error]"]=g[c]=g["[object Map]"]=g["[object Number]"]=g[p]=g["[object RegExp]"]=g["[object Set]"]=g["[object String]"]=g["[object WeakMap]"]=!1;var y="object"==typeof Rt&&Rt&&Rt.Object===Object&&Rt,b="object"==typeof self&&self&&self.Object===Object&&self,_=y||b||Function("return this")(),w=e&&!e.nodeType&&e,x=w&&t&&!t.nodeType&&t,O=x&&x.exports===w,S=O&&y.process,C=function(){try{return S&&S.binding&&S.binding("util")}catch(t){}}(),k=C&&C.isTypedArray;function E(t,e){return"__proto__"==e?void 0:t[e]}var A,$,L,T=Array.prototype,P=Function.prototype,j=Object.prototype,N=_["__core-js_shared__"],M=P.toString,U=j.hasOwnProperty,I=(A=/[^.]+$/.exec(N&&N.keys&&N.keys.IE_PROTO||""))?"Symbol(src)_1."+A:"",F=j.toString,R=M.call(Object),D=RegExp("^"+M.call(U).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),B=O?_.Buffer:void 0,G=_.Symbol,V=_.Uint8Array,H=B?B.allocUnsafe:void 0,q=($=Object.getPrototypeOf,L=Object,function(t){return $(L(t))}),z=Object.create,W=j.propertyIsEnumerable,K=T.splice,Y=G?G.toStringTag:void 0,Q=function(){try{var t=wt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),J=B?B.isBuffer:void 0,X=Math.max,Z=Date.now,tt=wt(_,"Map"),et=wt(Object,"create"),nt=function(){function t(){}return function(e){if(!Pt(e))return{};if(z)return z(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function rt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function it(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function ot(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function st(t){var e=this.__data__=new it(t);this.size=e.size}function at(t,e){var n=Et(t),r=!n&&kt(t),i=!n&&!r&&$t(t),o=!n&&!r&&!i&&Nt(t),s=n||r||i||o,a=s?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],u=a.length;for(var c in t)!e&&!U.call(t,c)||s&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||xt(c,u))||a.push(c);return a}function ut(t,e,n){(void 0===n||Ct(t[e],n))&&(void 0!==n||e in t)||ft(t,e,n)}function ct(t,e,n){var r=t[e];U.call(t,e)&&Ct(r,n)&&(void 0!==n||e in t)||ft(t,e,n)}function lt(t,e){for(var n=t.length;n--;)if(Ct(t[n][0],e))return n;return-1}function ft(t,e,n){"__proto__"==e&&Q?Q(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}rt.prototype.clear=function(){this.__data__=et?et(null):{},this.size=0},rt.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},rt.prototype.get=function(t){var e=this.__data__;if(et){var n=e[t];return n===r?void 0:n}return U.call(e,t)?e[t]:void 0},rt.prototype.has=function(t){var e=this.__data__;return et?void 0!==e[t]:U.call(e,t)},rt.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=et&&void 0===e?r:e,this},it.prototype.clear=function(){this.__data__=[],this.size=0},it.prototype.delete=function(t){var e=this.__data__,n=lt(e,t);return!(n<0||(n==e.length-1?e.pop():K.call(e,n,1),--this.size,0))},it.prototype.get=function(t){var e=this.__data__,n=lt(e,t);return n<0?void 0:e[n][1]},it.prototype.has=function(t){return lt(this.__data__,t)>-1},it.prototype.set=function(t,e){var n=this.__data__,r=lt(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},ot.prototype.clear=function(){this.size=0,this.__data__={hash:new rt,map:new(tt||it),string:new rt}},ot.prototype.delete=function(t){var e=_t(this,t).delete(t);return this.size-=e?1:0,e},ot.prototype.get=function(t){return _t(this,t).get(t)},ot.prototype.has=function(t){return _t(this,t).has(t)},ot.prototype.set=function(t,e){var n=_t(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},st.prototype.clear=function(){this.__data__=new it,this.size=0},st.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},st.prototype.get=function(t){return this.__data__.get(t)},st.prototype.has=function(t){return this.__data__.has(t)},st.prototype.set=function(t,e){var r=this.__data__;if(r instanceof it){var i=r.__data__;if(!tt||i.length<n-1)return i.push([t,e]),this.size=++r.size,this;r=this.__data__=new ot(i)}return r.set(t,e),this.size=r.size,this};var pt,dt=function(t,e,n){for(var r=-1,i=Object(t),o=n(t),s=o.length;s--;){var a=o[pt?s:++r];if(!1===e(i[a],a,i))break}return t};function ht(t){return null==t?void 0===t?h:f:Y&&Y in Object(t)?function(t){var e=U.call(t,Y),n=t[Y];try{t[Y]=void 0;var r=!0}catch(t){}var i=F.call(t);r&&(e?t[Y]=n:delete t[Y]);return i}(t):function(t){return F.call(t)}(t)}function vt(t){return jt(t)&&ht(t)==a}function mt(t){return!(!Pt(t)||I&&I in t)&&(Lt(t)?D:v).test(function(t){if(null!=t){try{return M.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}function gt(t){if(!Pt(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=Ot(t),n=[];for(var r in t)("constructor"!=r||!e&&U.call(t,r))&&n.push(r);return n}function yt(t,e,n,r,i){t!==e&&dt(e,function(o,s){if(Pt(o))i||(i=new st),function(t,e,n,r,i,o,s){var a=E(t,n),u=E(e,n),c=s.get(u);if(c)return void ut(t,n,c);var l=o?o(a,u,n+"",t,e,s):void 0,f=void 0===l;if(f){var d=Et(u),h=!d&&$t(u),v=!d&&!h&&Nt(u);l=u,d||h||v?Et(a)?l=a:jt(_=a)&&At(_)?l=function(t,e){var n=-1,r=t.length;e||(e=Array(r));for(;++n<r;)e[n]=t[n];return e}(a):h?(f=!1,l=function(t,e){if(e)return t.slice();var n=t.length,r=H?H(n):new t.constructor(n);return t.copy(r),r}(u,!0)):v?(f=!1,m=u,g=!0?(y=m.buffer,b=new y.constructor(y.byteLength),new V(b).set(new V(y)),b):m.buffer,l=new m.constructor(g,m.byteOffset,m.length)):l=[]:function(t){if(!jt(t)||ht(t)!=p)return!1;var e=q(t);if(null===e)return!0;var n=U.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&M.call(n)==R}(u)||kt(u)?(l=a,kt(a)?l=function(t){return function(t,e,n,r){var i=!n;n||(n={});var o=-1,s=e.length;for(;++o<s;){var a=e[o],u=r?r(n[a],t[a],a,n,t):void 0;void 0===u&&(u=t[a]),i?ft(n,a,u):ct(n,a,u)}return n}(t,Mt(t))}(a):(!Pt(a)||r&&Lt(a))&&(l=function(t){return"function"!=typeof t.constructor||Ot(t)?{}:nt(q(t))}(u))):f=!1}var m,g,y,b;var _;f&&(s.set(u,l),i(l,u,r,o,s),s.delete(u));ut(t,n,l)}(t,e,s,n,yt,r,i);else{var a=r?r(E(t,s),o,s+"",t,e,i):void 0;void 0===a&&(a=o),ut(t,s,a)}},Mt)}function bt(t,e){return St(function(t,e,n){return e=X(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,o=X(r.length-e,0),s=Array(o);++i<o;)s[i]=r[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=r[i];return a[e]=n(s),function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}(t,this,a)}}(t,e,Ft),t+"")}function _t(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function wt(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return mt(n)?n:void 0}function xt(t,e){var n=typeof t;return!!(e=null==e?s:e)&&("number"==n||"symbol"!=n&&m.test(t))&&t>-1&&t%1==0&&t<e}function Ot(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||j)}var St=function(t){var e=0,n=0;return function(){var r=Z(),s=o-(r-n);if(n=r,s>0){if(++e>=i)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Q?function(t,e){return Q(t,"toString",{configurable:!0,enumerable:!1,value:(n=e,function(){return n}),writable:!0});var n}:Ft);function Ct(t,e){return t===e||t!=t&&e!=e}var kt=vt(function(){return arguments}())?vt:function(t){return jt(t)&&U.call(t,"callee")&&!W.call(t,"callee")},Et=Array.isArray;function At(t){return null!=t&&Tt(t.length)&&!Lt(t)}var $t=J||function(){return!1};function Lt(t){if(!Pt(t))return!1;var e=ht(t);return e==c||e==l||e==u||e==d}function Tt(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=s}function Pt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function jt(t){return null!=t&&"object"==typeof t}var Nt=k?function(t){return function(e){return t(e)}}(k):function(t){return jt(t)&&Tt(t.length)&&!!g[ht(t)]};function Mt(t){return At(t)?at(t,!0):gt(t)}var Ut,It=(Ut=function(t,e,n){yt(t,e,n)},bt(function(t,e){var n=-1,r=e.length,i=r>1?e[r-1]:void 0,o=r>2?e[2]:void 0;for(i=Ut.length>3&&"function"==typeof i?(r--,i):void 0,o&&function(t,e,n){if(!Pt(n))return!1;var r=typeof e;return!!("number"==r?At(n)&&xt(e,n.length):"string"==r&&e in n)&&Ct(n[e],t)}(e[0],e[1],o)&&(i=r<3?void 0:i,r=1),t=Object(t);++n<r;){var s=e[n];s&&Ut(t,s,n,i)}return t}));function Ft(t){return t}t.exports=It}(Dt={exports:{}},Dt.exports),Dt.exports);var Gt={install:function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t.installed){t.installed=!0;var r={};Bt(r,ht,n),Gt.options=r,_t.options=r,e.directive("tooltip",_t),e.directive("close-popover",Et),e.component("v-popover",It)}},get enabled(){return pt.enabled},set enabled(t){pt.enabled=t}},Vt=null;"undefined"!=typeof window?Vt=window.Vue:void 0!==t&&(Vt=t.Vue),Vt&&Vt.use(Gt),e.a=Gt}).call(this,n(51))},function(t,e){function n(t,e){var r={name:t.name,path:t.path,hash:t.hash,query:t.query,params:t.params,fullPath:t.fullPath,meta:t.meta};return e&&(r.from=n(e)),Object.freeze(r)}e.sync=function(t,e,r){var i=(r||{}).moduleName||"route";t.registerModule(i,{namespaced:!0,state:n(e.currentRoute),mutations:{ROUTE_CHANGED:function(e,r){t.state[i]=n(r.to,r.from)}}});var o,s=!1,a=t.watch(function(t){return t[i]},function(t){var n=t.fullPath;n!==o&&(null!=o&&(s=!0,e.push(t)),o=n)},{sync:!0}),u=e.afterEach(function(e,n){s?s=!1:(o=e.fullPath,t.commit(i+"/ROUTE_CHANGED",{to:e,from:n}))});return function(){null!=u&&u(),null!=a&&a(),t.unregisterModule(i)}}},function(e,n,r){"use strict";r.r(n);var i=r(5),o=r(108),s={name:"App",beforeMount:function(){null!==document.getElementById("serverData")&&this.$store.commit("setServerData",JSON.parse(document.getElementById("serverData").dataset.server))}},a=function(){var t=this.$createElement;return(this._self._c||t)("router-view")};function u(t,e,n,r,i,o,s,a){var u=typeof(t=t||{}).default;"object"!==u&&"function"!==u||(t=t.default);var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),o&&(l._scopeId=o),s?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):i&&(c=a?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(l.functional){l._injectStyles=c;var f=l.render;l.render=function(t,e){return c.call(e),f(t,e)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,c):[c]}return{exports:t,options:l}}a._withStripped=!0;var c=u(s,a,[],!1,null,null,null);c.options.__file="src/App.vue";var l=c.exports; +/** + * vue-router v3.0.1 + * (c) 2017 Evan You + * @license MIT + */function f(t,e){0}function p(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}var d={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,i=e.parent,o=e.data;o.routerView=!0;for(var s=i.$createElement,a=n.name,u=i.$route,c=i._routerViewCache||(i._routerViewCache={}),l=0,f=!1;i&&i._routerRoot!==i;)i.$vnode&&i.$vnode.data.routerView&&l++,i._inactive&&(f=!0),i=i.$parent;if(o.routerViewDepth=l,f)return s(c[a],o,r);var p=u.matched[l];if(!p)return c[a]=null,s();var d=c[a]=p.components[a];o.registerRouteInstance=function(t,e){var n=p.instances[a];(e&&n!==t||!e&&n===t)&&(p.instances[a]=e)},(o.hook||(o.hook={})).prepatch=function(t,e){p.instances[a]=e.componentInstance};var h=o.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(u,p.props&&p.props[a]);if(h){h=o.props=function(t,e){for(var n in e)t[n]=e[n];return t}({},h);var v=o.attrs=o.attrs||{};for(var m in h)d.props&&m in d.props||(v[m]=h[m],delete h[m])}return s(d,o,r)}};var h=/[!'()*]/g,v=function(t){return"%"+t.charCodeAt(0).toString(16)},m=/%2C/g,g=function(t){return encodeURIComponent(t).replace(h,v).replace(m,",")},y=decodeURIComponent;function b(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=y(n.shift()),i=n.length>0?y(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function _(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return g(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(g(e)):r.push(g(e)+"="+g(t)))}),r.join("&")}return g(e)+"="+g(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var w=/\/?$/;function x(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=O(o)}catch(t){}var s={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:C(e,i),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(s.redirectedFrom=C(n,i)),Object.freeze(s)}function O(t){if(Array.isArray(t))return t.map(O);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=O(t[n]);return e}return t}var S=x(null,{path:"/"});function C(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;return void 0===i&&(i=""),(n||"/")+(e||_)(r)+i}function k(t,e){return e===S?t===e:!!e&&(t.path&&e.path?t.path.replace(w,"")===e.path.replace(w,"")&&t.hash===e.hash&&E(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&E(t.query,e.query)&&E(t.params,e.params)))}function E(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],i=e[n];return"object"==typeof r&&"object"==typeof i?E(r,i):String(r)===String(i)})}var A,$=[String,Object],L=[String,Array],T={name:"router-link",props:{to:{type:$,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:L,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,i=n.resolve(this.to,r,this.append),o=i.location,s=i.route,a=i.href,u={},c=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=o.path?x(null,o,null,n):s;u[h]=k(r,v),u[d]=this.exact?u[h]:function(t,e){return 0===t.path.replace(w,"/").indexOf(e.path.replace(w,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){P(t)&&(e.replace?n.replace(o):n.push(o))},g={click:P};Array.isArray(this.event)?this.event.forEach(function(t){g[t]=m}):g[this.event]=m;var y={class:u};if("a"===this.tag)y.on=g,y.attrs={href:a};else{var b=function t(e){if(e)for(var n,r=0;r<e.length;r++){if("a"===(n=e[r]).tag)return n;if(n.children&&(n=t(n.children)))return n}}(this.$slots.default);if(b){b.isStatic=!1;var _=A.util.extend;(b.data=_({},b.data)).on=g,(b.data.attrs=_({},b.data.attrs)).href=a}else y.on=g}return t(this.tag,y,this.$slots.default)}};function P(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function j(t){if(!j.installed||A!==t){j.installed=!0,A=t;var e=function(t){return void 0!==t},n=function(t,n){var r=t.$options._parentVnode;e(r)&&e(r=r.data)&&e(r=r.registerRouteInstance)&&r(t,n)};t.mixin({beforeCreate:function(){e(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("router-view",d),t.component("router-link",T);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}}var N="undefined"!=typeof window;function M(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var i=e.split("/");n&&i[i.length-1]||i.pop();for(var o=t.replace(/^\//,"").split("/"),s=0;s<o.length;s++){var a=o[s];".."===a?i.pop():"."!==a&&i.push(a)}return""!==i[0]&&i.unshift(""),i.join("/")}function U(t){return t.replace(/\/\//g,"/")}var I=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},F=X,R=H,D=function(t,e){return z(H(t,e))},B=z,G=J,V=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function H(t,e){for(var n,r=[],i=0,o=0,s="",a=e&&e.delimiter||"/";null!=(n=V.exec(t));){var u=n[0],c=n[1],l=n.index;if(s+=t.slice(o,l),o=l+u.length,c)s+=c[1];else{var f=t[o],p=n[2],d=n[3],h=n[4],v=n[5],m=n[6],g=n[7];s&&(r.push(s),s="");var y=null!=p&&null!=f&&f!==p,b="+"===m||"*"===m,_="?"===m||"*"===m,w=n[2]||a,x=h||v;r.push({name:d||i++,prefix:p||"",delimiter:w,optional:_,repeat:b,partial:y,asterisk:!!g,pattern:x?K(x):g?".*":"[^"+W(w)+"]+?"})}}return o<t.length&&(s+=t.substr(o)),s&&r.push(s),r}function q(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function z(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var i="",o=n||{},s=(r||{}).pretty?q:encodeURIComponent,a=0;a<t.length;a++){var u=t[a];if("string"!=typeof u){var c,l=o[u.name];if(null==l){if(u.optional){u.partial&&(i+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(I(l)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<l.length;f++){if(c=s(l[f]),!e[a].test(c))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(c)+"`");i+=(0===f?u.prefix:u.delimiter)+c}}else{if(c=u.asterisk?encodeURI(l).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):s(l),!e[a].test(c))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+c+'"');i+=u.prefix+c}}else i+=u}return i}}function W(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function K(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function Y(t,e){return t.keys=e,t}function Q(t){return t.sensitive?"":"i"}function J(t,e,n){I(e)||(n=e||n,e=[]);for(var r=(n=n||{}).strict,i=!1!==n.end,o="",s=0;s<t.length;s++){var a=t[s];if("string"==typeof a)o+=W(a);else{var u=W(a.prefix),c="(?:"+a.pattern+")";e.push(a),a.repeat&&(c+="(?:"+u+c+")*"),o+=c=a.optional?a.partial?u+"("+c+")?":"(?:"+u+"("+c+"))?":u+"("+c+")"}}var l=W(n.delimiter||"/"),f=o.slice(-l.length)===l;return r||(o=(f?o.slice(0,-l.length):o)+"(?:"+l+"(?=$))?"),o+=i?"$":r&&f?"":"(?="+l+"|$)",Y(new RegExp("^"+o,Q(n)),e)}function X(t,e,n){return I(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return Y(t,e)}(t,e):I(t)?function(t,e,n){for(var r=[],i=0;i<t.length;i++)r.push(X(t[i],e,n).source);return Y(new RegExp("(?:"+r.join("|")+")",Q(n)),e)}(t,e,n):function(t,e,n){return J(H(t,n),e,n)}(t,e,n)}F.parse=R,F.compile=D,F.tokensToFunction=B,F.tokensToRegExp=G;var Z=Object.create(null);function tt(t,e,n){try{return(Z[t]||(Z[t]=F.compile(t)))(e||{},{pretty:!0})}catch(t){return""}}function et(t,e,n,r){var i=e||[],o=n||Object.create(null),s=r||Object.create(null);t.forEach(function(t){!function t(e,n,r,i,o,s){var a=i.path;var u=i.name;0;var c=i.pathToRegexpOptions||{};var l=function(t,e,n){n||(t=t.replace(/\/$/,""));if("/"===t[0])return t;if(null==e)return t;return U(e.path+"/"+t)}(a,o,c.strict);"boolean"==typeof i.caseSensitive&&(c.sensitive=i.caseSensitive);var f={path:l,regex:function(t,e){var n=F(t,[],e);0;return n}(l,c),components:i.components||{default:i.component},instances:{},name:u,parent:o,matchAs:s,redirect:i.redirect,beforeEnter:i.beforeEnter,meta:i.meta||{},props:null==i.props?{}:i.components?i.props:{default:i.props}};i.children&&i.children.forEach(function(i){var o=s?U(s+"/"+i.path):void 0;t(e,n,r,i,f,o)});if(void 0!==i.alias){var p=Array.isArray(i.alias)?i.alias:[i.alias];p.forEach(function(s){var a={path:s,children:i.children};t(e,n,r,a,o,f.path||"/")})}n[f.path]||(e.push(f.path),n[f.path]=f);u&&(r[u]||(r[u]=f))}(i,o,s,t)});for(var a=0,u=i.length;a<u;a++)"*"===i[a]&&(i.push(i.splice(a,1)[0]),u--,a--);return{pathList:i,pathMap:o,nameMap:s}}function nt(t,e,n,r){var i="string"==typeof t?{path:t}:t;if(i.name||i._normalized)return i;if(!i.path&&i.params&&e){(i=rt({},i))._normalized=!0;var o=rt(rt({},e.params),i.params);if(e.name)i.name=e.name,i.params=o;else if(e.matched.length){var s=e.matched[e.matched.length-1].path;i.path=tt(s,o,e.path)}else 0;return i}var a=function(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}(i.path||""),u=e&&e.path||"/",c=a.path?M(a.path,u,n||i.append):u,l=function(t,e,n){void 0===e&&(e={});var r,i=n||b;try{r=i(t||"")}catch(t){r={}}for(var o in e)r[o]=e[o];return r}(a.query,i.query,r&&r.options.parseQuery),f=i.hash||a.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:c,query:l,hash:f}}function rt(t,e){for(var n in e)t[n]=e[n];return t}function it(t,e){var n=et(t),r=n.pathList,i=n.pathMap,o=n.nameMap;function s(t,n,s){var a=nt(t,n,!1,e),c=a.name;if(c){var l=o[c];if(!l)return u(null,a);var f=l.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof a.params&&(a.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in a.params)&&f.indexOf(p)>-1&&(a.params[p]=n.params[p]);if(l)return a.path=tt(l.path,a.params),u(l,a,s)}else if(a.path){a.params={};for(var d=0;d<r.length;d++){var h=r[d],v=i[h];if(ot(v.regex,a.path,a.params))return u(v,a,s)}}return u(null,a)}function a(t,n){var r=t.redirect,i="function"==typeof r?r(x(t,n,null,e)):r;if("string"==typeof i&&(i={path:i}),!i||"object"!=typeof i)return u(null,n);var a=i,c=a.name,l=a.path,f=n.query,p=n.hash,d=n.params;if(f=a.hasOwnProperty("query")?a.query:f,p=a.hasOwnProperty("hash")?a.hash:p,d=a.hasOwnProperty("params")?a.params:d,c){o[c];return s({_normalized:!0,name:c,query:f,hash:p,params:d},void 0,n)}if(l){var h=function(t,e){return M(t,e.parent?e.parent.path:"/",!0)}(l,t);return s({_normalized:!0,path:tt(h,d),query:f,hash:p},void 0,n)}return u(null,n)}function u(t,n,r){return t&&t.redirect?a(t,r||n):t&&t.matchAs?function(t,e,n){var r=s({_normalized:!0,path:tt(n,e.params)});if(r){var i=r.matched,o=i[i.length-1];return e.params=r.params,u(o,e)}return u(null,e)}(0,n,t.matchAs):x(t,n,r,e)}return{match:s,addRoutes:function(t){et(t,r,i,o)}}}function ot(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var i=1,o=r.length;i<o;++i){var s=t.keys[i-1],a="string"==typeof r[i]?decodeURIComponent(r[i]):r[i];s&&(n[s.name]=a)}return!0}var st=Object.create(null);function at(){window.history.replaceState({key:bt()},""),window.addEventListener("popstate",function(t){var e;ct(),t.state&&t.state.key&&(e=t.state.key,gt=e)})}function ut(t,e,n,r){if(t.app){var i=t.options.scrollBehavior;i&&t.app.$nextTick(function(){var t=function(){var t=bt();if(t)return st[t]}(),o=i(e,n,r?t:null);o&&("function"==typeof o.then?o.then(function(e){dt(e,t)}).catch(function(t){0}):dt(o,t))})}}function ct(){var t=bt();t&&(st[t]={x:window.pageXOffset,y:window.pageYOffset})}function lt(t){return pt(t.x)||pt(t.y)}function ft(t){return{x:pt(t.x)?t.x:window.pageXOffset,y:pt(t.y)?t.y:window.pageYOffset}}function pt(t){return"number"==typeof t}function dt(t,e){var n,r="object"==typeof t;if(r&&"string"==typeof t.selector){var i=document.querySelector(t.selector);if(i){var o=t.offset&&"object"==typeof t.offset?t.offset:{};e=function(t,e){var n=document.documentElement.getBoundingClientRect(),r=t.getBoundingClientRect();return{x:r.left-n.left-e.x,y:r.top-n.top-e.y}}(i,o={x:pt((n=o).x)?n.x:0,y:pt(n.y)?n.y:0})}else lt(t)&&(e=ft(t))}else r&<(t)&&(e=ft(t));e&&window.scrollTo(e.x,e.y)}var ht,vt=N&&((-1===(ht=window.navigator.userAgent).indexOf("Android 2.")&&-1===ht.indexOf("Android 4.0")||-1===ht.indexOf("Mobile Safari")||-1!==ht.indexOf("Chrome")||-1!==ht.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history),mt=N&&window.performance&&window.performance.now?window.performance:Date,gt=yt();function yt(){return mt.now().toFixed(3)}function bt(){return gt}function _t(t,e){ct();var n=window.history;try{e?n.replaceState({key:gt},"",t):(gt=yt(),n.pushState({key:gt},"",t))}catch(n){window.location[e?"replace":"assign"](t)}}function wt(t){_t(t,!0)}function xt(t,e,n){var r=function(i){i>=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}function Ot(t){return function(e,n,r){var i=!1,o=0,s=null;St(t,function(t,e,n,a){if("function"==typeof t&&void 0===t.cid){i=!0,o++;var u,c=Et(function(e){var i;((i=e).__esModule||kt&&"Module"===i[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:A.extend(e),n.components[a]=e,--o<=0&&r()}),l=Et(function(t){var e="Failed to resolve async component "+a+": "+t;s||(s=p(t)?t:new Error(e),r(s))});try{u=t(c,l)}catch(t){l(t)}if(u)if("function"==typeof u.then)u.then(c,l);else{var f=u.component;f&&"function"==typeof f.then&&f.then(c,l)}}}),i||r()}}function St(t,e){return Ct(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function Ct(t){return Array.prototype.concat.apply([],t)}var kt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Et(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var At=function(t,e){this.router=t,this.base=function(t){if(!t)if(N){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=S,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function $t(t,e,n,r){var i=St(t,function(t,r,i,o){var s=function(t,e){"function"!=typeof t&&(t=A.extend(t));return t.options[e]}(t,e);if(s)return Array.isArray(s)?s.map(function(t){return n(t,r,i,o)}):n(s,r,i,o)});return Ct(r?i.reverse():i)}function Lt(t,e){if(e)return function(){return t.apply(e,arguments)}}At.prototype.listen=function(t){this.cb=t},At.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},At.prototype.onError=function(t){this.errorCbs.push(t)},At.prototype.transitionTo=function(t,e,n){var r=this,i=this.router.match(t,this.current);this.confirmTransition(i,function(){r.updateRoute(i),e&&e(i),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(i)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},At.prototype.confirmTransition=function(t,e,n){var r=this,i=this.current,o=function(t){p(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):(f(),console.error(t))),n&&n(t)};if(k(t,i)&&t.matched.length===i.matched.length)return this.ensureURL(),o();var s=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}(this.current.matched,t.matched),a=s.updated,u=s.deactivated,c=s.activated,l=[].concat(function(t){return $t(t,"beforeRouteLeave",Lt,!0)}(u),this.router.beforeHooks,function(t){return $t(t,"beforeRouteUpdate",Lt)}(a),c.map(function(t){return t.beforeEnter}),Ot(c));this.pending=t;var d=function(e,n){if(r.pending!==t)return o();try{e(t,i,function(t){!1===t||p(t)?(r.ensureURL(!0),o(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(o(),"object"==typeof t&&t.replace?r.replace(t):r.push(t)):n(t)})}catch(t){o(t)}};xt(l,d,function(){var n=[];xt(function(t,e,n){return $t(t,"beforeRouteEnter",function(t,r,i,o){return function(t,e,n,r,i){return function(o,s,a){return t(o,s,function(t){a(t),"function"==typeof t&&r.push(function(){!function t(e,n,r,i){n[r]?e(n[r]):i()&&setTimeout(function(){t(e,n,r,i)},16)}(t,e.instances,n,i)})})}}(t,i,o,e,n)})}(c,n,function(){return r.current===t}).concat(r.router.resolveHooks),d,function(){if(r.pending!==t)return o();r.pending=null,e(t),r.router.app&&r.router.app.$nextTick(function(){n.forEach(function(t){t()})})})})},At.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var Tt=function(t){function e(e,n){var r=this;t.call(this,e,n);var i=e.options.scrollBehavior;i&&at();var o=Pt(this.base);window.addEventListener("popstate",function(t){var n=r.current,s=Pt(r.base);r.current===S&&s===o||r.transitionTo(s,function(t){i&&ut(e,t,n,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){_t(U(r.base+t.fullPath)),ut(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){wt(U(r.base+t.fullPath)),ut(r.router,t,i,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(Pt(this.base)!==this.current.fullPath){var e=U(this.base+this.current.fullPath);t?_t(e):wt(e)}},e.prototype.getCurrentLocation=function(){return Pt(this.base)},e}(At);function Pt(t){var e=window.location.pathname;return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var jt=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Pt(t);if(!/^\/#/.test(e))return window.location.replace(U(t+"/#"+e)),!0}(this.base)||Nt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,n=vt&&e;n&&at(),window.addEventListener(vt?"popstate":"hashchange",function(){var e=t.current;Nt()&&t.transitionTo(Mt(),function(r){n&&ut(t.router,r,e,!0),vt||Ft(r.fullPath)})})},e.prototype.push=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){It(t.fullPath),ut(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,i=this.current;this.transitionTo(t,function(t){Ft(t.fullPath),ut(r.router,t,i,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Mt()!==e&&(t?It(e):Ft(e))},e.prototype.getCurrentLocation=function(){return Mt()},e}(At);function Nt(){var t=Mt();return"/"===t.charAt(0)||(Ft("/"+t),!1)}function Mt(){var t=window.location.href,e=t.indexOf("#");return-1===e?"":t.slice(e+1)}function Ut(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function It(t){vt?_t(Ut(t)):window.location.hash=t}function Ft(t){vt?wt(Ut(t)):window.location.replace(Ut(t))}var Rt=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(At),Dt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=it(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!vt&&!1!==t.fallback,this.fallback&&(e="hash"),N||(e="abstract"),this.mode=e,e){case"history":this.history=new Tt(this,t.base);break;case"hash":this.history=new jt(this,t.base,this.fallback);break;case"abstract":this.history=new Rt(this,t.base);break;default:0}},Bt={currentRoute:{configurable:!0}};function Gt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Dt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Bt.currentRoute.get=function(){return this.history&&this.history.current},Dt.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof Tt)n.transitionTo(n.getCurrentLocation());else if(n instanceof jt){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Dt.prototype.beforeEach=function(t){return Gt(this.beforeHooks,t)},Dt.prototype.beforeResolve=function(t){return Gt(this.resolveHooks,t)},Dt.prototype.afterEach=function(t){return Gt(this.afterHooks,t)},Dt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Dt.prototype.onError=function(t){this.history.onError(t)},Dt.prototype.push=function(t,e,n){this.history.push(t,e,n)},Dt.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},Dt.prototype.go=function(t){this.history.go(t)},Dt.prototype.back=function(){this.go(-1)},Dt.prototype.forward=function(){this.go(1)},Dt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Dt.prototype.resolve=function(t,e,n){var r=nt(t,e||this.history.current,n,this),i=this.match(r,e),o=i.redirectedFrom||i.fullPath;return{location:r,route:i,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?U(t+"/"+r):r}(this.history.base,o,this.mode),normalizedTo:r,resolved:i}},Dt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==S&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Dt.prototype,Bt),Dt.install=j,Dt.version="3.0.1",N&&window.Vue&&window.Vue.use(Dt);var Vt=Dt,Ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",[t.item.href?n("a",{attrs:{href:t.item.href?t.item.href:"#"},on:{click:t.item.action}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text?n("span",[t._v(t._s(t.item.text))]):t.item.longtext?n("p",[t._v(t._s(t.item.longtext))]):t._e()]):t.item.action?n("button",{on:{click:t.item.action}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text?n("span",[t._v(t._s(t.item.text))]):t.item.longtext?n("p",[t._v(t._s(t.item.longtext))]):t._e()]):n("span",[n("span",{class:t.item.icon}),t._v(" "),t.item.text?n("span",[t._v(t._s(t.item.text))]):t.item.longtext?n("p",[t._v(t._s(t.item.longtext))]):t._e()])])};Ht._withStripped=!0;var qt=u({props:["item"]},Ht,[],!1,null,null,null);qt.options.__file="src/components/popoverMenu/popoverItem.vue";var zt={name:"popoverMenu",props:["menu"],components:{popoverItem:qt.exports}},Wt=function(){var t=this.$createElement,e=this._self._c||t;return e("ul",this._l(this.menu,function(t,n){return e("popover-item",{key:n,attrs:{item:t}})}))};Wt._withStripped=!0;var Kt=u(zt,Wt,[],!1,null,null,null);Kt.options.__file="src/components/popoverMenu.vue";var Yt=Kt.exports,Qt=r(52),Jt=r.n(Qt),Xt={name:"navigationItem",props:["item"],components:{popoverMenu:Yt},directives:{ClickOutside:Jt.a},data:function(){return{openedMenu:!1}},methods:{showMenu:function(){this.openedMenu=!0},hideMenu:function(){this.openedMenu=!1},toggleCollapse:function(){i.a.set(this.item,"opened",!this.item.opened||!this.item.opened)},cancelEdit:function(){Array.isArray(this.item.classes)&&(this.item.classes=this.item.classes.filter(function(t){return"editing"!==t}))}},mounted:function(){this.popupItem=this.$el}},Zt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",{class:[{"icon-loading-small":t.item.loading,open:t.item.opened,collapsible:t.item.collapsible&&t.item.children&&t.item.children.length>0},t.item.classes],attrs:{id:t.item.id}},[t.item.bullet?n("div",{staticClass:"app-navigation-entry-bullet",style:{backgroundColor:t.item.bullet}}):t._e(),t._v(" "),t.item.href?n("a",{class:t.item.icon,attrs:{href:t.item.href?t.item.href:"#"},on:{click:t.toggleCollapse}},[t.item.iconUrl?n("img",{attrs:{alt:t.item.text,src:t.item.iconUrl}}):t._e(),t._v("\n\t\t"+t._s(t.item.text)+"\n\t")]):t.item.router?n("router-link",{class:t.item.icon,attrs:{to:t.item.router}},[t.item.iconUrl?n("img",{attrs:{alt:t.item.text,src:t.item.iconUrl}}):t._e(),t._v("\n\t\t"+t._s(t.item.text)+"\n\t")]):t._e(),t._v(" "),t.item.utils?n("div",{staticClass:"app-navigation-entry-utils"},[n("ul",[Number.isInteger(t.item.utils.counter)?n("li",{staticClass:"app-navigation-entry-utils-counter"},[t._v(t._s(t.item.utils.counter))]):t._e(),t._v(" "),t.item.utils.actions&&1===t.item.utils.actions.length&&Number.isInteger(t.item.utils.counter)?n("li",{staticClass:"app-navigation-entry-utils-menu-button"},[n("button",{class:t.item.utils.actions[0].icon,attrs:{title:t.item.utils.actions[0].text},on:{click:t.item.utils.actions[0].action}})]):t.item.utils.actions&&2===t.item.utils.actions.length&&!Number.isInteger(t.item.utils.counter)?t._l(t.item.utils.actions,function(t){return n("li",{key:t.action,staticClass:"app-navigation-entry-utils-menu-button"},[n("button",{class:t.icon,attrs:{title:t.text},on:{click:t.action}})])}):t.item.utils.actions&&t.item.utils.actions.length>1&&(Number.isInteger(t.item.utils.counter)||t.item.utils.actions.length>2)?n("li",{staticClass:"app-navigation-entry-utils-menu-button"},[n("button",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.hideMenu,expression:"hideMenu"}],on:{click:t.showMenu}})]):t._e()],2)]):t._e(),t._v(" "),t.item.utils&&t.item.utils.actions&&t.item.utils.actions.length>1&&(Number.isInteger(t.item.utils.counter)||t.item.utils.actions.length>2)?n("div",{staticClass:"app-navigation-entry-menu",class:{open:t.openedMenu}},[n("popover-menu",{attrs:{menu:t.item.utils.actions}})],1):t._e(),t._v(" "),t.item.undo?n("div",{staticClass:"app-navigation-entry-deleted"},[n("div",{staticClass:"app-navigation-entry-deleted-description"},[t._v(t._s(t.item.undo.text))]),t._v(" "),n("button",{staticClass:"app-navigation-entry-deleted-button icon-history",attrs:{title:t.t("settings","Undo")}})]):t._e(),t._v(" "),t.item.edit?n("div",{staticClass:"app-navigation-entry-edit"},[n("form",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.text,expression:"item.text"}],attrs:{type:"text"},domProps:{value:t.item.text},on:{input:function(e){e.target.composing||t.$set(t.item,"text",e.target.value)}}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}}),t._v(" "),n("input",{staticClass:"icon-close",attrs:{type:"submit",value:""},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.cancelEdit(e)}}})])]):t._e(),t._v(" "),t.item.children?n("ul",t._l(t.item.children,function(t,e){return n("navigation-item",{key:e,attrs:{item:t}})})):t._e()],1)};Zt._withStripped=!0;var te=u(Xt,Zt,[],!1,null,null,null);te.options.__file="src/components/appNavigation/navigationItem.vue";var ee={name:"appNavigation",props:["menu"],components:{navigationItem:te.exports}},ne=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:{"icon-loading":t.menu.loading},attrs:{id:"app-navigation"}},[t.menu.new?n("div",{staticClass:"app-navigation-new"},[n("button",{class:t.menu.new.icon,attrs:{type:"button",id:t.menu.new.id},on:{click:t.menu.new.action}},[t._v(t._s(t.menu.new.text))])]):t._e(),t._v(" "),n("ul",{attrs:{id:t.menu.id}},t._l(t.menu.items,function(t,e){return n("navigation-item",{key:e,attrs:{item:t}})})),t._v(" "),n("div",{attrs:{id:"app-settings"}},[n("div",{attrs:{id:"app-settings-header"}},[n("button",{staticClass:"settings-button",attrs:{"data-apps-slide-toggle":"#app-settings-content"}},[t._v(t._s(t.t("settings","Settings")))])]),t._v(" "),n("div",{attrs:{id:"app-settings-content"}},[t._t("settings-content")],2)])])};ne._withStripped=!0;var re=u(ee,ne,[],!1,null,null,null);re.options.__file="src/components/appNavigation.vue";var ie=re.exports,oe=r(38),se=r.n(oe),ae=r(107),ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};i.a.use(ae.a);var ce={name:"userRow",props:["user","settings","groups","subAdminsGroups","quotaOptions","showConfig","languages"],components:{popoverMenu:Yt,Multiselect:se.a},directives:{ClickOutside:Jt.a},mounted:function(){},data:function(){return{rand:parseInt(1e3*Math.random()),openedMenu:!1,loading:{all:!1,displayName:!1,password:!1,mailAddress:!1,groups:!1,subadmins:!1,quota:!1,delete:!1,disable:!1,languages:!1}}},computed:{userActions:function(){return[{icon:"icon-delete",text:t("settings","Delete user"),action:this.deleteUser},{icon:this.user.enabled?"icon-close":"icon-add",text:this.user.enabled?t("settings","Disable user"):t("settings","Enable user"),action:this.enableDisableUser}]},userGroups:function(){var t=this,e=this.groups.filter(function(e){return t.user.groups.includes(e.id)});return e},userSubAdminsGroups:function(){var t=this,e=this.subAdminsGroups.filter(function(e){return t.user.subadmin.includes(e.id)});return e},usedQuota:function(){var t=this.user.quota.quota;t>0?t=Math.min(100,Math.round(this.user.quota.used/t*100)):t=95*(1-1/(this.user.quota.used/(10*Math.pow(2,30))+1));return isNaN(t)?0:t},userQuota:function(){if(this.user.quota.quota>0){var t=OC.Util.humanFileSize(this.user.quota.quota),e=this.quotaOptions.find(function(e){return e.id===t});return e||{id:t,label:t}}return 0===this.user.quota.quota||"default"===this.user.quota.quota?this.quotaOptions[0]:this.quotaOptions[1]},minPasswordLength:function(){return this.$store.getters.getPasswordPolicyMinLength},userLanguage:function(){var t=this,e=this.languages[0].languages.concat(this.languages[1].languages).find(function(e){return e.code===t.user.language});return"object"!==(void 0===e?"undefined":ue(e))&&""!==this.user.language?{code:this.user.language,name:this.user.language}:""!==this.user.language&&e}},methods:{toggleMenu:function(){this.openedMenu=!this.openedMenu},hideMenu:function(){this.openedMenu=!1},generateAvatar:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:32;return OC.generateUrl("/avatar/{user}/{size}?v={version}",{user:t,size:e,version:oc_userconfig.avatar.version})},formatGroupsTitle:function(t){return t.map(function(t){return t.name}).slice(2).join(", ")},deleteUser:function(){var t=this;this.loading.delete=!0,this.loading.all=!0;var e=this.user.id;return this.$store.dispatch("deleteUser",{userid:e}).then(function(){t.loading.delete=!1,t.loading.all=!1})},enableDisableUser:function(){var t=this;this.loading.delete=!0,this.loading.all=!0;var e=this.user.id,n=!this.user.enabled;return this.$store.dispatch("enableDisableUser",{userid:e,enabled:n}).then(function(){t.loading.delete=!1,t.loading.all=!1})},updateDisplayName:function(){var t=this,e=this.$refs.displayName.value;this.loading.displayName=!0,this.$store.dispatch("setUserData",{userid:this.user.id,key:"displayname",value:e}).then(function(){t.loading.displayName=!1,t.$refs.displayName.value=e})},updatePassword:function(){var t=this,e=this.$refs.password.value;this.loading.password=!0,this.$store.dispatch("setUserData",{userid:this.user.id,key:"password",value:e}).then(function(){t.loading.password=!1,t.$refs.password.value=""})},updateEmail:function(){var t=this,e=this.$refs.mailAddress.value;this.loading.mailAddress=!0,this.$store.dispatch("setUserData",{userid:this.user.id,key:"email",value:e}).then(function(){t.loading.mailAddress=!1,t.$refs.mailAddress.value=e})},createGroup:function(t){var e=this;return this.loading={groups:!0,subadmins:!0},this.$store.dispatch("addGroup",t).then(function(){e.loading={groups:!1,subadmins:!1};var n=e.user.id;e.$store.dispatch("addUserGroup",{userid:n,gid:t})}),this.$store.getters.getGroups[this.groups.length]},addUserGroup:function(t){var e=this;this.loading.groups=!0;var n=this.user.id,r=t.id;return this.$store.dispatch("addUserGroup",{userid:n,gid:r}).then(function(){return e.loading.groups=!1})},removeUserGroup:function(t){var e=this;this.loading.groups=!0;var n=this.user.id,r=t.id;return this.$store.dispatch("removeUserGroup",{userid:n,gid:r}).then(function(){e.loading.groups=!1,e.$route.params.selectedGroup===r&&e.$store.commit("deleteUser",n)})},addUserSubAdmin:function(t){var e=this;this.loading.subadmins=!0;var n=this.user.id,r=t.id;return this.$store.dispatch("addUserSubAdmin",{userid:n,gid:r}).then(function(){return e.loading.subadmins=!1})},removeUserSubAdmin:function(t){var e=this;this.loading.subadmins=!0;var n=this.user.id,r=t.id;return this.$store.dispatch("removeUserSubAdmin",{userid:n,gid:r}).then(function(){return e.loading.subadmins=!1})},setUserQuota:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"none";return this.loading.quota=!0,e=e.id?e.id:e,this.$store.dispatch("setUserData",{userid:this.user.id,key:"quota",value:e}).then(function(){return t.loading.quota=!1}),e},validateQuota:function(t){var e=OC.Util.computerFileSize(t);return 0===e?this.setUserQuota("none"):null!==e&&this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(t)))},setUserLanguage:function(t){var e=this;return this.loading.languages=!0,this.$store.dispatch("setUserData",{userid:this.user.id,key:"language",value:t.code}).then(function(){return e.loading.languages=!1}),t}}},le=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"row",class:{disabled:t.loading.delete||t.loading.disable}},[n("div",{staticClass:"avatar",class:{"icon-loading-small":t.loading.delete||t.loading.disable}},[t.loading.delete||t.loading.disable?t._e():n("img",{attrs:{alt:"",width:"32",height:"32",src:t.generateAvatar(t.user.id,32),srcset:t.generateAvatar(t.user.id,64)+" 2x, "+t.generateAvatar(t.user.id,128)+" 4x"}})]),t._v(" "),n("div",{staticClass:"name"},[t._v(t._s(t.user.id))]),t._v(" "),n("form",{staticClass:"displayName",class:{"icon-loading-small":t.loading.displayName},on:{submit:function(e){return e.preventDefault(),t.updateDisplayName(e)}}},[n("input",{ref:"displayName",attrs:{id:"displayName"+t.user.id+t.rand,type:"text",disabled:t.loading.displayName||t.loading.all,autocomplete:"new-password",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},domProps:{value:t.user.displayname}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t._v(" "),t.settings.canChangePassword?n("form",{staticClass:"password",class:{"icon-loading-small":t.loading.password},on:{submit:function(e){return e.preventDefault(),t.updatePassword(e)}}},[n("input",{ref:"password",attrs:{id:"password"+t.user.id+t.rand,type:"password",required:"",disabled:t.loading.password||t.loading.all,minlength:t.minPasswordLength,value:"",placeholder:t.t("settings","New password"),autocomplete:"new-password",autocorrect:"off",autocapitalize:"off",spellcheck:"false"}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]):n("div"),t._v(" "),n("form",{staticClass:"mailAddress",class:{"icon-loading-small":t.loading.mailAddress},on:{submit:function(e){return e.preventDefault(),t.updateEmail(e)}}},[n("input",{ref:"mailAddress",attrs:{id:"mailAddress"+t.user.id+t.rand,type:"email",disabled:t.loading.mailAddress||t.loading.all,autocomplete:"new-password",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},domProps:{value:t.user.email}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t._v(" "),n("div",{staticClass:"groups",class:{"icon-loading-small":t.loading.groups}},[n("multiselect",{staticClass:"multiselect-vue",attrs:{value:t.userGroups,options:t.groups,disabled:t.loading.groups||t.loading.all,"tag-placeholder":"create",placeholder:t.t("settings","Add user in group"),label:"name","track-by":"id",limit:2,multiple:!0,taggable:t.settings.isAdmin,closeOnSelect:!1},on:{tag:t.createGroup,select:t.addUserGroup,remove:t.removeUserGroup}},[n("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:t.formatGroupsTitle(t.userGroups),expression:"formatGroupsTitle(userGroups)",modifiers:{auto:!0}}],staticClass:"multiselect__limit",attrs:{slot:"limit"},slot:"limit"},[t._v("+"+t._s(t.userGroups.length-2))]),t._v(" "),n("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])])],1),t._v(" "),t.subAdminsGroups.length>0&&t.settings.isAdmin?n("div",{staticClass:"subadmins",class:{"icon-loading-small":t.loading.subadmins}},[n("multiselect",{staticClass:"multiselect-vue",attrs:{value:t.userSubAdminsGroups,options:t.subAdminsGroups,disabled:t.loading.subadmins||t.loading.all,placeholder:t.t("settings","Set user as admin for"),label:"name","track-by":"id",limit:2,multiple:!0,closeOnSelect:!1},on:{select:t.addUserSubAdmin,remove:t.removeUserSubAdmin}},[n("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:t.formatGroupsTitle(t.userSubAdminsGroups),expression:"formatGroupsTitle(userSubAdminsGroups)",modifiers:{auto:!0}}],staticClass:"multiselect__limit",attrs:{slot:"limit"},slot:"limit"},[t._v("+"+t._s(t.userSubAdminsGroups.length-2))]),t._v(" "),n("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])])],1):t._e(),t._v(" "),n("div",{staticClass:"quota",class:{"icon-loading-small":t.loading.quota}},[n("multiselect",{staticClass:"multiselect-vue",attrs:{value:t.userQuota,options:t.quotaOptions,disabled:t.loading.quota||t.loading.all,"tag-placeholder":"create",placeholder:t.t("settings","Select user quota"),label:"label","track-by":"id",allowEmpty:!1,taggable:!0},on:{tag:t.validateQuota,input:t.setUserQuota}}),t._v(" "),n("progress",{staticClass:"quota-user-progress",class:{warn:t.usedQuota>80},attrs:{max:"100"},domProps:{value:t.usedQuota}})],1),t._v(" "),t.showConfig.showLanguages?n("div",{staticClass:"languages",class:{"icon-loading-small":t.loading.languages}},[n("multiselect",{staticClass:"multiselect-vue",attrs:{value:t.userLanguage,options:t.languages,disabled:t.loading.languages||t.loading.all,placeholder:t.t("settings","No language set"),label:"name","track-by":"code",allowEmpty:!1,"group-values":"languages","group-label":"label"},on:{input:t.setUserLanguage}})],1):t._e(),t._v(" "),t.showConfig.showStoragePath?n("div",{staticClass:"storageLocation"},[t._v(t._s(t.user.storageLocation))]):t._e(),t._v(" "),t.showConfig.showUserBackend?n("div",{staticClass:"userBackend"},[t._v(t._s(t.user.backend))]):t._e(),t._v(" "),t.showConfig.showLastLogin?n("div",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:t.user.lastLogin>0?t.OC.Util.formatDate(t.user.lastLogin):"",expression:"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''",modifiers:{auto:!0}}],staticClass:"lastLogin"},[t._v("\n\t\t"+t._s(t.user.lastLogin>0?t.OC.Util.relativeModifiedDate(t.user.lastLogin):t.t("settings","Never"))+"\n\t")]):t._e(),t._v(" "),n("div",{staticClass:"userActions"},[t.OC.currentUser===t.user.id||"admin"===t.user.id||t.loading.all?t._e():n("div",{staticClass:"toggleUserActions"},[n("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.hideMenu,expression:"hideMenu"}],staticClass:"icon-more",on:{click:t.toggleMenu}}),t._v(" "),n("div",{staticClass:"popovermenu",class:{open:t.openedMenu}},[n("popover-menu",{attrs:{menu:t.userActions}})],1)])])])};le._withStripped=!0;var fe=u(ce,le,[],!1,null,null,null);fe.options.__file="src/components/userList/userRow.vue";var pe=fe.exports,de=r(106),he=r.n(de),ve={name:"userList",props:["users","showConfig","selectedGroup"],components:{userRow:pe,Multiselect:se.a,InfiniteLoading:he.a},data:function(){var e={id:"none",label:t("settings","Unlimited")},n={id:"default",label:t("settings","Default quota")};return{unlimitedQuota:e,defaultQuota:n,loading:!1,scrolled:!1,newUser:{id:"",displayName:"",password:"",mailAddress:"",groups:[],subAdminsGroups:[],quota:n,language:{code:"en",name:t("settings","Default language")}}}},mounted:function(){this.settings.canChangePassword||OC.Notification.showTemporary(t("settings","Password change is disabled because the master key is disabled")),i.a.set(this.newUser.language,"code",this.settings.defaultLanguage),this.setNewUserDefaultGroup(this.$route.params.selectedGroup)},computed:{settings:function(){return this.$store.getters.getServerData},filteredUsers:function(){if("disabled"===this.selectedGroup){var t=this.users.filter(function(t){return!0!==t.enabled});return 0===t.length&&this.$refs.infiniteLoading&&this.$refs.infiniteLoading.isComplete&&(this.$router.push({name:"users"}),this.$refs.infiniteLoading.$emit("$InfiniteLoading:reset")),t}return this.users.filter(function(t){return!0===t.enabled})},groups:function(){return this.$store.getters.getGroups.filter(function(t){return"disabled"!==t.id}).sort(function(t,e){return t.name.localeCompare(e.name)})},subAdminsGroups:function(){return this.$store.getters.getServerData.subadmingroups},quotaOptions:function(){var t=this.settings.quotaPreset.reduce(function(t,e){return t.concat({id:e,label:e})},[]);return t.unshift(this.unlimitedQuota),t.unshift(this.defaultQuota),t},minPasswordLength:function(){return this.$store.getters.getPasswordPolicyMinLength},usersOffset:function(){return this.$store.getters.getUsersOffset},usersLimit:function(){return this.$store.getters.getUsersLimit},languages:function(){return Array({label:t("settings","Common languages"),languages:this.settings.languages.commonlanguages},{label:t("settings","All languages"),languages:this.settings.languages.languages})}},watch:{selectedGroup:function(t,e){this.$store.commit("resetUsers"),this.$refs.infiniteLoading.$emit("$InfiniteLoading:reset"),this.setNewUserDefaultGroup(t)}},methods:{onScroll:function(t){this.scrolled=t.target.scrollTop>0},validateQuota:function(t){var e=OC.Util.computerFileSize(t);return null!==e&&e>0?(t=OC.Util.humanFileSize(OC.Util.computerFileSize(t)),this.newUser.quota={id:t,label:t}):this.newUser.quota=this.quotaOptions[0]},infiniteHandler:function(t){this.$store.dispatch("getUsers",{offset:this.usersOffset,limit:this.usersLimit,group:"disabled"!==this.selectedGroup?this.selectedGroup:""}).then(function(e){e?t.loaded():t.complete()})},resetForm:function(){Object.assign(this.newUser,this.$options.data.call(this).newUser),this.loading=!1},createUser:function(){var t=this;this.loading=!0,this.$store.dispatch("addUser",{userid:this.newUser.id,password:this.newUser.password,email:this.newUser.mailAddress,groups:this.newUser.groups.map(function(t){return t.id}),subadmin:this.newUser.subAdminsGroups.map(function(t){return t.id}),quota:this.newUser.quota.id,language:this.newUser.language.code}).then(function(){return t.resetForm()}).catch(function(){return t.loading=!1})},setNewUserDefaultGroup:function(t){if(t&&t.length>0){var e=this.groups.find(function(e){return e.id===t});if(e)return void(this.newUser.groups=[e])}this.newUser.groups=[]}}},me=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"user-list-grid",attrs:{id:"app-content"},on:{"&scroll":function(e){return t.onScroll(e)}}},[n("div",{staticClass:"row",class:{sticky:t.scrolled&&!t.showConfig.showNewUserForm},attrs:{id:"grid-header"}},[n("div",{staticClass:"avatar",attrs:{id:"headerAvatar"}}),t._v(" "),n("div",{staticClass:"name",attrs:{id:"headerName"}},[t._v(t._s(t.t("settings","Username")))]),t._v(" "),n("div",{staticClass:"displayName",attrs:{id:"headerDisplayName"}},[t._v(t._s(t.t("settings","Full name")))]),t._v(" "),n("div",{staticClass:"password",attrs:{id:"headerPassword"}},[t._v(t._s(t.t("settings","Password")))]),t._v(" "),n("div",{staticClass:"mailAddress",attrs:{id:"headerAddress"}},[t._v(t._s(t.t("settings","Email")))]),t._v(" "),n("div",{staticClass:"groups",attrs:{id:"headerGroups"}},[t._v(t._s(t.t("settings","Groups")))]),t._v(" "),t.subAdminsGroups.length>0&&t.settings.isAdmin?n("div",{staticClass:"subadmins",attrs:{id:"headerSubAdmins"}},[t._v(t._s(t.t("settings","Group admin for")))]):t._e(),t._v(" "),n("div",{staticClass:"quota",attrs:{id:"headerQuota"}},[t._v(t._s(t.t("settings","Quota")))]),t._v(" "),t.showConfig.showLanguages?n("div",{staticClass:"languages",attrs:{id:"headerLanguages"}},[t._v(t._s(t.t("settings","Languages")))]):t._e(),t._v(" "),t.showConfig.showStoragePath?n("div",{staticClass:"headerStorageLocation storageLocation"},[t._v(t._s(t.t("settings","Storage location")))]):t._e(),t._v(" "),t.showConfig.showUserBackend?n("div",{staticClass:"headerUserBackend userBackend"},[t._v(t._s(t.t("settings","User backend")))]):t._e(),t._v(" "),t.showConfig.showLastLogin?n("div",{staticClass:"headerLastLogin lastLogin"},[t._v(t._s(t.t("settings","Last login")))]):t._e(),t._v(" "),n("div",{staticClass:"userActions"})]),t._v(" "),n("form",{directives:[{name:"show",rawName:"v-show",value:t.showConfig.showNewUserForm,expression:"showConfig.showNewUserForm"}],staticClass:"row",class:{sticky:t.scrolled&&t.showConfig.showNewUserForm},attrs:{id:"new-user",disabled:t.loading},on:{submit:function(e){return e.preventDefault(),t.createUser(e)}}},[n("div",{class:t.loading?"icon-loading-small":"icon-add"}),t._v(" "),n("div",{staticClass:"name"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.newUser.id,expression:"newUser.id"}],attrs:{id:"newusername",type:"text",required:"",placeholder:t.t("settings","User name"),name:"username",autocomplete:"off",autocapitalize:"none",autocorrect:"off",pattern:"[a-zA-Z0-9 _\\.@\\-']+"},domProps:{value:t.newUser.id},on:{input:function(e){e.target.composing||t.$set(t.newUser,"id",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"displayName"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.newUser.displayName,expression:"newUser.displayName"}],attrs:{id:"newdisplayname",type:"text",placeholder:t.t("settings","Display name"),name:"displayname",autocomplete:"off",autocapitalize:"none",autocorrect:"off"},domProps:{value:t.newUser.displayName},on:{input:function(e){e.target.composing||t.$set(t.newUser,"displayName",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"password"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.newUser.password,expression:"newUser.password"}],attrs:{id:"newuserpassword",type:"password",required:""===t.newUser.mailAddress,placeholder:t.t("settings","Password"),name:"password",autocomplete:"new-password",autocapitalize:"none",autocorrect:"off",minlength:t.minPasswordLength},domProps:{value:t.newUser.password},on:{input:function(e){e.target.composing||t.$set(t.newUser,"password",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"mailAddress"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.newUser.mailAddress,expression:"newUser.mailAddress"}],attrs:{id:"newemail",type:"email",required:""===t.newUser.password,placeholder:t.t("settings","Mail address"),name:"email",autocomplete:"off",autocapitalize:"none",autocorrect:"off"},domProps:{value:t.newUser.mailAddress},on:{input:function(e){e.target.composing||t.$set(t.newUser,"mailAddress",e.target.value)}}})]),t._v(" "),n("div",{staticClass:"groups"},[t.settings.isAdmin?t._e():n("input",{attrs:{type:"text",tabindex:"-1",id:"newgroups",required:!t.settings.isAdmin},domProps:{value:t.newUser.groups}}),t._v(" "),n("multiselect",{staticClass:"multiselect-vue",attrs:{options:t.groups,placeholder:t.t("settings","Add user in group"),label:"name","track-by":"id",multiple:!0,"close-on-select":!1,allowEmpty:t.settings.isAdmin},model:{value:t.newUser.groups,callback:function(e){t.$set(t.newUser,"groups",e)},expression:"newUser.groups"}},[n("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])])],1),t._v(" "),t.subAdminsGroups.length>0&&t.settings.isAdmin?n("div",{staticClass:"subadmins"},[n("multiselect",{staticClass:"multiselect-vue",attrs:{options:t.subAdminsGroups,placeholder:t.t("settings","Set user as admin for"),label:"name","track-by":"id",multiple:!0,"close-on-select":!1},model:{value:t.newUser.subAdminsGroups,callback:function(e){t.$set(t.newUser,"subAdminsGroups",e)},expression:"newUser.subAdminsGroups"}},[n("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("settings","No results")))])])],1):t._e(),t._v(" "),n("div",{staticClass:"quota"},[n("multiselect",{staticClass:"multiselect-vue",attrs:{options:t.quotaOptions,placeholder:t.t("settings","Select user quota"),label:"label","track-by":"id",allowEmpty:!1,taggable:!0},on:{tag:t.validateQuota},model:{value:t.newUser.quota,callback:function(e){t.$set(t.newUser,"quota",e)},expression:"newUser.quota"}})],1),t._v(" "),t.showConfig.showLanguages?n("div",{staticClass:"languages"},[n("multiselect",{staticClass:"multiselect-vue",attrs:{options:t.languages,placeholder:t.t("settings","Default language"),label:"name","track-by":"code",allowEmpty:!1,"group-values":"languages","group-label":"label"},model:{value:t.newUser.language,callback:function(e){t.$set(t.newUser,"language",e)},expression:"newUser.language"}})],1):t._e(),t._v(" "),t.showConfig.showStoragePath?n("div",{staticClass:"storageLocation"}):t._e(),t._v(" "),t.showConfig.showUserBackend?n("div",{staticClass:"userBackend"}):t._e(),t._v(" "),t.showConfig.showLastLogin?n("div",{staticClass:"lastLogin"}):t._e(),t._v(" "),n("div",{staticClass:"userActions"},[n("input",{staticClass:"button primary icon-checkmark-white has-tooltip",attrs:{type:"submit",id:"newsubmit",value:"",title:t.t("settings","Add a new user")}}),t._v(" "),n("input",{staticClass:"button icon-close has-tooltip",attrs:{type:"reset",id:"newreset",value:"",title:t.t("settings","Cancel and reset the form")},on:{click:t.resetForm}})])]),t._v(" "),t._l(t.filteredUsers,function(e,r){return n("user-row",{key:r,attrs:{user:e,settings:t.settings,showConfig:t.showConfig,groups:t.groups,subAdminsGroups:t.subAdminsGroups,quotaOptions:t.quotaOptions,languages:t.languages}})}),t._v(" "),n("infinite-loading",{ref:"infiniteLoading",on:{infinite:t.infiniteHandler}},[n("div",{attrs:{slot:"spinner"},slot:"spinner"},[n("div",{staticClass:"users-icon-loading icon-loading"})]),t._v(" "),n("div",{attrs:{slot:"no-more"},slot:"no-more"},[n("div",{staticClass:"users-list-end"},[t._v("— "+t._s(t.t("settings","no more results"))+" —")])]),t._v(" "),n("div",{attrs:{slot:"no-results"},slot:"no-results"},[n("div",{attrs:{id:"emptycontent"}},[n("div",{staticClass:"icon-contacts-dark"}),t._v(" "),n("h2",[t._v(t._s(t.t("settings","No users in here")))])])])])],2)};me._withStripped=!0;var ge=u(ve,me,[],!1,null,null,null);ge.options.__file="src/components/userList.vue";var ye=ge.exports,be=r(76),_e=r.n(be),we=r(39),xe=r.n(we),Oe={headers:{requesttoken:document.getElementsByTagName("head")[0].getAttribute("data-requesttoken")}},Se=function(t){return t.replace(/\/$/,"")},Ce=function(){return new Promise(function(e,n){var r=void 0,i=setTimeout(function(){clearTimeout(r),document.getElementsByClassName("oc-dialog-close").length>0&&document.getElementsByClassName("oc-dialog-close")[0].click(),OC.Notification.showTemporary(t("settings","You did not enter the password in time")),n("Password request cancelled")},7e3);OC.PasswordConfirmation.requirePasswordConfirmation(),function t(){OC.PasswordConfirmation.requiresPasswordConfirmation()?r=setTimeout(t,500):(clearTimeout(r),clearTimeout(i),e())}()})},ke=function(t){return xe.a.get(Se(t),Oe).then(function(t){return Promise.resolve(t)}).catch(function(t){return Promise.reject(t)})},Ee=function(t,e){return xe.a.post(Se(t),e,Oe).then(function(t){return Promise.resolve(t)}).catch(function(t){return Promise.reject(t)})},Ae=function(t,e){return xe.a.put(Se(t),e,Oe).then(function(t){return Promise.resolve(t)}).catch(function(t){return Promise.reject(t)})},$e=function(t,e){return xe.a.delete(Se(t),{data:e,headers:Oe.headers}).then(function(t){return Promise.resolve(t)}).catch(function(t){return Promise.reject(t)})},Le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};i.a.use(_e.a),i.a.use(_e.a);var Te={name:"Users",props:["selectedGroup"],components:{appNavigation:ie,userList:ye,Multiselect:se.a},beforeMount:function(){this.$store.commit("initGroups",{groups:this.$store.getters.getServerData.groups,orderBy:this.$store.getters.getServerData.sortGroups,userCount:this.$store.getters.getServerData.userCount}),this.$store.dispatch("getPasswordPolicyMinLength")},data:function(){return{unlimitedQuota:{id:"default",label:t("settings","Unlimited")},selectedQuota:!1,showConfig:{showStoragePath:!1,showUserBackend:!1,showLastLogin:!1,showNewUserForm:!1,showLanguages:!1}}},methods:{toggleNewUserMenu:function(){this.showConfig.showNewUserForm=!this.showConfig.showNewUserForm,this.showConfig.showNewUserForm&&i.a.nextTick(function(){window.newusername.focus()})},getLocalstorage:function(t){var e=this.$localStorage.get(t);return this.showConfig[t]=null!==e?"true"===e:this.showConfig[t],this.showConfig[t]},setLocalStorage:function(t,e){return this.showConfig[t]=e,this.$localStorage.set(t,e),e},removeGroup:function(e){var n=this;OC.dialogs.confirm(t("settings","You are about to remove the group {group}. The users will NOT be deleted.",{group:e}),t("settings","Please confirm the group removal "),function(t){t&&n.$store.dispatch("removeGroup",e)})},setDefaultQuota:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"none";this.$store.dispatch("setAppConfig",{app:"files",key:"default_quota",value:e.id?e.id:e}).then(function(){"object"!==(void 0===e?"undefined":Le(e))&&(e={id:e,label:e}),t.defaultQuota=e})},validateQuota:function(t){var e=OC.Util.computerFileSize(t);return 0===e?this.setDefaultQuota("none"):null!==e&&this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(t)))}},computed:{users:function(){return this.$store.getters.getUsers},loading:function(){return 0===Object.keys(this.users).length},usersOffset:function(){return this.$store.getters.getUsersOffset},usersLimit:function(){return this.$store.getters.getUsersLimit},showLanguages:{get:function(){return this.getLocalstorage("showLanguages")},set:function(t){this.setLocalStorage("showLanguages",t)}},showLastLogin:{get:function(){return this.getLocalstorage("showLastLogin")},set:function(t){this.setLocalStorage("showLastLogin",t)}},showUserBackend:{get:function(){return this.getLocalstorage("showUserBackend")},set:function(t){this.setLocalStorage("showUserBackend",t)}},showStoragePath:{get:function(){return this.getLocalstorage("showStoragePath")},set:function(t){this.setLocalStorage("showStoragePath",t)}},userCount:function(){return this.$store.getters.getUserCount},settings:function(){return this.$store.getters.getServerData},quotaOptions:function(){var t=this.settings.quotaPreset.reduce(function(t,e){return t.concat({id:e,label:e})},[]);return t.unshift(this.unlimitedQuota),t},defaultQuota:{get:function(){return!1!==this.selectedQuota?this.selectedQuota:OC.Util.computerFileSize(this.settings.defaultQuota)>0?{id:this.settings.defaultQuota,label:this.settings.defaultQuota}:this.unlimitedQuota},set:function(t){this.selectedQuota=t}},menu:function(){var e=this,n=this.$store.getters.getGroups,r=(n=(n=Array.isArray(n)?n:[]).map(function(n){var r={};if(r.id=n.id.replace(" ","_"),r.classes=[],r.router={name:"group",params:{selectedGroup:n.id}},r.text=n.name,r.utils={counter:n.usercount},"admin"!==r.id&&"disabled"!==r.id&&e.settings.isAdmin){var i=e;r.utils.actions=[{icon:"icon-delete",text:t("settings","Remove group"),action:function(){i.removeGroup(n.id)}}]}return r})).find(function(t){return"admin"==t.id}),i=n.findIndex(function(t){return"disabled"==t.id}),o=n[i];r&&r.text&&(r.text=t("settings","Admins")),o&&o.text&&(o.text=t("settings","Disabled users"),0===o.utils.counter&&n.splice(i,1)),n.unshift({id:"everyone",classes:[],router:{name:"users"},text:t("settings","Everyone"),utils:{counter:this.userCount}});var s=n.findIndex(function(t){return t.id===e.selectedGroup});return s>=0?n[s].classes.push("active"):n[0].classes.push("active"),{id:"usergrouplist",new:{id:"new-user-button",text:t("settings","New user"),icon:"icon-add",action:this.toggleNewUserMenu},items:n}}}},Pe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("app-navigation",{attrs:{menu:t.menu}},[n("template",{slot:"settings-content"},[n("div",[n("p",[t._v(t._s(t.t("settings","Default quota :")))]),t._v(" "),n("multiselect",{staticClass:"multiselect-vue",attrs:{value:t.defaultQuota,options:t.quotaOptions,"tag-placeholder":"create",placeholder:t.t("settings","Select default quota"),label:"label","track-by":"id",allowEmpty:!1,taggable:!0},on:{tag:t.validateQuota,input:t.setDefaultQuota}})],1),t._v(" "),n("div",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.showLanguages,expression:"showLanguages"}],staticClass:"checkbox",attrs:{type:"checkbox",id:"showLanguages"},domProps:{checked:Array.isArray(t.showLanguages)?t._i(t.showLanguages,null)>-1:t.showLanguages},on:{change:function(e){var n=t.showLanguages,r=e.target,i=!!r.checked;if(Array.isArray(n)){var o=t._i(n,null);r.checked?o<0&&(t.showLanguages=n.concat([null])):o>-1&&(t.showLanguages=n.slice(0,o).concat(n.slice(o+1)))}else t.showLanguages=i}}}),t._v(" "),n("label",{attrs:{for:"showLanguages"}},[t._v(t._s(t.t("settings","Show Languages")))])]),t._v(" "),n("div",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.showLastLogin,expression:"showLastLogin"}],staticClass:"checkbox",attrs:{type:"checkbox",id:"showLastLogin"},domProps:{checked:Array.isArray(t.showLastLogin)?t._i(t.showLastLogin,null)>-1:t.showLastLogin},on:{change:function(e){var n=t.showLastLogin,r=e.target,i=!!r.checked;if(Array.isArray(n)){var o=t._i(n,null);r.checked?o<0&&(t.showLastLogin=n.concat([null])):o>-1&&(t.showLastLogin=n.slice(0,o).concat(n.slice(o+1)))}else t.showLastLogin=i}}}),t._v(" "),n("label",{attrs:{for:"showLastLogin"}},[t._v(t._s(t.t("settings","Show last login")))])]),t._v(" "),n("div",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.showUserBackend,expression:"showUserBackend"}],staticClass:"checkbox",attrs:{type:"checkbox",id:"showUserBackend"},domProps:{checked:Array.isArray(t.showUserBackend)?t._i(t.showUserBackend,null)>-1:t.showUserBackend},on:{change:function(e){var n=t.showUserBackend,r=e.target,i=!!r.checked;if(Array.isArray(n)){var o=t._i(n,null);r.checked?o<0&&(t.showUserBackend=n.concat([null])):o>-1&&(t.showUserBackend=n.slice(0,o).concat(n.slice(o+1)))}else t.showUserBackend=i}}}),t._v(" "),n("label",{attrs:{for:"showUserBackend"}},[t._v(t._s(t.t("settings","Show user backend")))])]),t._v(" "),n("div",[n("input",{directives:[{name:"model",rawName:"v-model",value:t.showStoragePath,expression:"showStoragePath"}],staticClass:"checkbox",attrs:{type:"checkbox",id:"showStoragePath"},domProps:{checked:Array.isArray(t.showStoragePath)?t._i(t.showStoragePath,null)>-1:t.showStoragePath},on:{change:function(e){var n=t.showStoragePath,r=e.target,i=!!r.checked;if(Array.isArray(n)){var o=t._i(n,null);r.checked?o<0&&(t.showStoragePath=n.concat([null])):o>-1&&(t.showStoragePath=n.slice(0,o).concat(n.slice(o+1)))}else t.showStoragePath=i}}}),t._v(" "),n("label",{attrs:{for:"showStoragePath"}},[t._v(t._s(t.t("settings","Show storage path")))])])])],2),t._v(" "),n("user-list",{attrs:{users:t.users,showConfig:t.showConfig,selectedGroup:t.selectedGroup}})],1)};Pe._withStripped=!0;var je=u(Te,Pe,[],!1,null,null,null);je.options.__file="src/views/Users.vue";var Ne=je.exports;i.a.use(Vt);var Me=new Vt({mode:"history",base:OC.generateUrl(""),routes:[{path:"/:index(index.php/)?settings/users",component:Ne,props:!0,name:"users",children:[{path:":selectedGroup",name:"group",component:Ne}]}]}),Ue=function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}},Ie="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__; +/** + * vuex v3.0.1 + * (c) 2017 Evan You + * @license MIT + */function Fe(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}var Re=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},De={namespaced:{configurable:!0}};De.namespaced.get=function(){return!!this._rawModule.namespaced},Re.prototype.addChild=function(t,e){this._children[t]=e},Re.prototype.removeChild=function(t){delete this._children[t]},Re.prototype.getChild=function(t){return this._children[t]},Re.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},Re.prototype.forEachChild=function(t){Fe(this._children,t)},Re.prototype.forEachGetter=function(t){this._rawModule.getters&&Fe(this._rawModule.getters,t)},Re.prototype.forEachAction=function(t){this._rawModule.actions&&Fe(this._rawModule.actions,t)},Re.prototype.forEachMutation=function(t){this._rawModule.mutations&&Fe(this._rawModule.mutations,t)},Object.defineProperties(Re.prototype,De);var Be=function(t){this.register([],t,!1)};Be.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},Be.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")},"")},Be.prototype.update=function(t){!function t(e,n,r){0;n.update(r);if(r.modules)for(var i in r.modules){if(!n.getChild(i))return void 0;t(e.concat(i),n.getChild(i),r.modules[i])}}([],this.root,t)},Be.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var i=new Re(e,n);0===t.length?this.root=i:this.get(t.slice(0,-1)).addChild(t[t.length-1],i);e.modules&&Fe(e.modules,function(e,i){r.register(t.concat(i),e,n)})},Be.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var Ge;var Ve=function(t){var e=this;void 0===t&&(t={}),!Ge&&"undefined"!=typeof window&&window.Vue&&Je(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var r=t.strict;void 0===r&&(r=!1);var i=t.state;void 0===i&&(i={}),"function"==typeof i&&(i=i()||{}),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new Be(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new Ge;var o=this,s=this.dispatch,a=this.commit;this.dispatch=function(t,e){return s.call(o,t,e)},this.commit=function(t,e,n){return a.call(o,t,e,n)},this.strict=r,Ke(this,i,[],this._modules.root),We(this,i),n.forEach(function(t){return t(e)}),Ge.config.devtools&&function(t){Ie&&(t._devtoolHook=Ie,Ie.emit("vuex:init",t),Ie.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){Ie.emit("vuex:mutation",t,e)}))}(this)},He={state:{configurable:!0}};function qe(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function ze(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;Ke(t,n,[],t._modules.root,!0),We(t,n,e)}function We(t,e,n){var r=t._vm;t.getters={};var i={};Fe(t._wrappedGetters,function(e,n){i[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var o=Ge.config.silent;Ge.config.silent=!0,t._vm=new Ge({data:{$$state:e},computed:i}),Ge.config.silent=o,t.strict&&function(t){t._vm.$watch(function(){return this._data.$$state},function(){0},{deep:!0,sync:!0})}(t),r&&(n&&t._withCommit(function(){r._data.$$state=null}),Ge.nextTick(function(){return r.$destroy()}))}function Ke(t,e,n,r,i){var o=!n.length,s=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[s]=r),!o&&!i){var a=Ye(e,n.slice(0,-1)),u=n[n.length-1];t._withCommit(function(){Ge.set(a,u,r.state)})}var c=r.context=function(t,e,n){var r=""===e,i={dispatch:r?t.dispatch:function(n,r,i){var o=Qe(n,r,i),s=o.payload,a=o.options,u=o.type;return a&&a.root||(u=e+u),t.dispatch(u,s)},commit:r?t.commit:function(n,r,i){var o=Qe(n,r,i),s=o.payload,a=o.options,u=o.type;a&&a.root||(u=e+u),t.commit(u,s,a)}};return Object.defineProperties(i,{getters:{get:r?function(){return t.getters}:function(){return function(t,e){var n={},r=e.length;return Object.keys(t.getters).forEach(function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}}),n}(t,e)}},state:{get:function(){return Ye(t.state,n)}}}),i}(t,s,n);r.forEachMutation(function(e,n){!function(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,r.state,e)})}(t,s+n,e,c)}),r.forEachAction(function(e,n){var r=e.root?n:s+n,i=e.handler||e;!function(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push(function(e,i){var o,s=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e,i);return(o=s)&&"function"==typeof o.then||(s=Promise.resolve(s)),t._devtoolHook?s.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):s})}(t,r,i,c)}),r.forEachGetter(function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return void 0;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,s+n,e,c)}),r.forEachChild(function(r,o){Ke(t,e,n.concat(o),r,i)})}function Ye(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function Qe(t,e,n){var r;return null!==(r=t)&&"object"==typeof r&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function Je(t){Ge&&t===Ge||Ue(Ge=t)}He.state.get=function(){return this._vm._data.$$state},He.state.set=function(t){0},Ve.prototype.commit=function(t,e,n){var r=this,i=Qe(t,e,n),o=i.type,s=i.payload,a=(i.options,{type:o,payload:s}),u=this._mutations[o];u&&(this._withCommit(function(){u.forEach(function(t){t(s)})}),this._subscribers.forEach(function(t){return t(a,r.state)}))},Ve.prototype.dispatch=function(t,e){var n=this,r=Qe(t,e),i=r.type,o=r.payload,s={type:i,payload:o},a=this._actions[i];if(a)return this._actionSubscribers.forEach(function(t){return t(s,n.state)}),a.length>1?Promise.all(a.map(function(t){return t(o)})):a[0](o)},Ve.prototype.subscribe=function(t){return qe(t,this._subscribers)},Ve.prototype.subscribeAction=function(t){return qe(t,this._actionSubscribers)},Ve.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},Ve.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},Ve.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),Ke(this,this.state,t,this._modules.get(t),n.preserveState),We(this,this.state)},Ve.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=Ye(e.state,t.slice(0,-1));Ge.delete(n,t[t.length-1])}),ze(this)},Ve.prototype.hotUpdate=function(t){this._modules.update(t),ze(this,!0)},Ve.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(Ve.prototype,He);var Xe=rn(function(t,e){var n={};return nn(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=on(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof i?i.call(this,e,n):e[i]},n[r].vuex=!0}),n}),Ze=rn(function(t,e){var n={};return nn(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var o=on(this.$store,"mapMutations",t);if(!o)return;r=o.context.commit}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n}),tn=rn(function(t,e){var n={};return nn(e).forEach(function(e){var r=e.key,i=e.val;i=t+i,n[r]=function(){if(!t||on(this.$store,"mapGetters",t))return this.$store.getters[i]},n[r].vuex=!0}),n}),en=rn(function(t,e){var n={};return nn(e).forEach(function(e){var r=e.key,i=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var o=on(this.$store,"mapActions",t);if(!o)return;r=o.context.dispatch}return"function"==typeof i?i.apply(this,[r].concat(e)):r.apply(this.$store,[i].concat(e))}}),n});function nn(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function rn(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function on(t,e,n){return t._modulesNamespaceMap[n]}var sn={Store:Ve,install:Je,version:"3.0.1",mapState:Xe,mapMutations:Ze,mapGetters:tn,mapActions:en,createNamespacedHelpers:function(t){return{mapState:Xe.bind(null,t),mapGetters:tn.bind(null,t),mapMutations:Ze.bind(null,t),mapActions:en.bind(null,t)}}},an=function(t,e){return 1===e?t.sort(function(t,e){return t.usercount<e.usercount}):t.sort(function(t,e){return t.name.localeCompare(e.name)})},un={state:{users:[],groups:[],orderBy:1,minPasswordLength:0,usersOffset:0,usersLimit:25,userCount:0},mutations:{appendUsers:function(t,e){var n=t.users.concat(Object.keys(e).map(function(t){return e[t]}));t.usersOffset+=t.usersLimit,t.users=n},setPasswordPolicyMinLength:function(t,e){t.minPasswordLength=""!==e?e:0},initGroups:function(t,e){var n=e.groups,r=e.orderBy,i=e.userCount;t.groups=n,t.orderBy=r,t.userCount=i,t.groups=an(t.groups,t.orderBy)},addGroup:function(t,e){try{t.groups.push({id:e,name:e,usercount:0}),t.groups=an(t.groups,t.orderBy)}catch(t){console.log("Can't create group",t)}},removeGroup:function(t,e){var n=t.groups.findIndex(function(t){return t.id==e});n>=0&&t.groups.splice(n,1)},addUserGroup:function(t,e){var n=e.userid,r=e.gid,i=t.groups.find(function(t){return t.id==r});i&&i.usercount++,t.users.find(function(t){return t.id==n}).groups.push(r),t.groups=an(t.groups,t.orderBy)},removeUserGroup:function(t,e){var n=e.userid,r=e.gid,i=t.groups.find(function(t){return t.id==r});i&&i.usercount--;var o=t.users.find(function(t){return t.id==n}).groups;o.splice(o.indexOf(r),1),t.groups=an(t.groups,t.orderBy)},addUserSubAdmin:function(t,e){var n=e.userid,r=e.gid;t.users.find(function(t){return t.id==n}).subadmin.push(r)},removeUserSubAdmin:function(t,e){var n=e.userid,r=e.gid,i=t.users.find(function(t){return t.id==n}).subadmin;i.splice(i.indexOf(r),1)},deleteUser:function(t,e){var n=t.users.findIndex(function(t){return t.id==e});t.users.splice(n,1)},addUserData:function(t,e){t.users.push(e.data.ocs.data)},enableDisableUser:function(t,e){var n=e.userid,r=e.enabled;t.users.find(function(t){return t.id==n}).enabled=r,t.groups.find(function(t){return"disabled"==t.id}).usercount+=r?-1:1,t.userCount+=r?1:-1,console.log(r)},setUserData:function(t,e){var n=e.userid,r=e.key,i=e.value;if("quota"===r){var o=OC.Util.computerFileSize(i);t.users.find(function(t){return t.id==n})[r][r]=o||i}else t.users.find(function(t){return t.id==n})[r]=i},resetUsers:function(t){t.users=[],t.usersOffset=0}},getters:{getUsers:function(t){return t.users},getGroups:function(t){return t.groups},getPasswordPolicyMinLength:function(t){return t.minPasswordLength},getUsersOffset:function(t){return t.usersOffset},getUsersLimit:function(t){return t.usersLimit},getUserCount:function(t){return t.userCount}},actions:{getUsers:function(t,e){var n=e.offset,r=e.limit,i=e.search,o=e.group;return i="string"==typeof i?i:"",""!==(o="string"==typeof o?o:"")?ke(OC.linkToOCS("cloud/groups/"+o+"/users/details?offset="+n+"&limit="+r+"&search="+i,2)).then(function(e){return Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)}).catch(function(e){return t.commit("API_FAILURE",e)}):ke(OC.linkToOCS("cloud/users/details?offset="+n+"&limit="+r+"&search="+i,2)).then(function(e){return Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)}).catch(function(e){return t.commit("API_FAILURE",e)})},getUsersFromList:function(t,e){var n=e.offset,r=e.limit,i=e.search;return i="string"==typeof i?i:"",ke(OC.linkToOCS("cloud/users/details?offset="+n+"&limit="+r+"&search="+i,2)).then(function(e){return Object.keys(e.data.ocs.data.users).length>0&&(t.commit("appendUsers",e.data.ocs.data.users),!0)}).catch(function(e){return t.commit("API_FAILURE",e)})},getUsersFromGroup:function(t,e){var n=e.groupid,r=e.offset,i=e.limit;return ke(OC.linkToOCS("cloud/users/"+n+"/details?offset="+r+"&limit="+i,2)).then(function(e){return t.commit("getUsersFromList",e.data.ocs.data.users)}).catch(function(e){return t.commit("API_FAILURE",e)})},getPasswordPolicyMinLength:function(t){return!(!oc_capabilities.password_policy||!oc_capabilities.password_policy.minLength)&&(t.commit("setPasswordPolicyMinLength",oc_capabilities.password_policy.minLength),oc_capabilities.password_policy.minLength)},addGroup:function(t,e){return Ce().then(function(n){return Ee(OC.linkToOCS("cloud/groups",2),{groupid:e}).then(function(n){return t.commit("addGroup",e)}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:userid,error:e})})},removeGroup:function(t,e){return Ce().then(function(n){return $e(OC.linkToOCS("cloud/groups/"+e,2)).then(function(n){return t.commit("removeGroup",e)}).catch(function(t){throw t})}).catch(function(n){return t.commit("API_FAILURE",{gid:e,error:n})})},addUserGroup:function(t,e){var n=e.userid,r=e.gid;return Ce().then(function(e){return Ee(OC.linkToOCS("cloud/users/"+n+"/groups",2),{groupid:r}).then(function(e){return t.commit("addUserGroup",{userid:n,gid:r})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},removeUserGroup:function(t,e){var n=e.userid,r=e.gid;return Ce().then(function(e){return $e(OC.linkToOCS("cloud/users/"+n+"/groups",2),{groupid:r}).then(function(e){return t.commit("removeUserGroup",{userid:n,gid:r})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},addUserSubAdmin:function(t,e){var n=e.userid,r=e.gid;return Ce().then(function(e){return Ee(OC.linkToOCS("cloud/users/"+n+"/subadmins",2),{groupid:r}).then(function(e){return t.commit("addUserSubAdmin",{userid:n,gid:r})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},removeUserSubAdmin:function(t,e){var n=e.userid,r=e.gid;return Ce().then(function(e){return $e(OC.linkToOCS("cloud/users/"+n+"/subadmins",2),{groupid:r}).then(function(e){return t.commit("removeUserSubAdmin",{userid:n,gid:r})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},deleteUser:function(t,e){var n=e.userid;return Ce().then(function(e){return $e(OC.linkToOCS("cloud/users/"+n,2)).then(function(e){return t.commit("deleteUser",n)}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},addUser:function(t,e){var n=t.commit,r=t.dispatch,i=e.userid,o=e.password,s=e.email,a=e.groups,u=e.subadmin,c=e.quota,l=e.language;return Ce().then(function(t){return Ee(OC.linkToOCS("cloud/users",2),{userid:i,password:o,email:s,groups:a,subadmin:u,quota:c,language:l}).then(function(t){return r("addUserData",i)}).catch(function(t){throw t})}).catch(function(t){return n("API_FAILURE",{userid:i,error:t})})},addUserData:function(t,e){return Ce().then(function(n){return ke(OC.linkToOCS("cloud/users/"+e,2)).then(function(e){return t.commit("addUserData",e)}).catch(function(t){throw t})}).catch(function(n){return t.commit("API_FAILURE",{userid:e,error:n})})},enableDisableUser:function(t,e){var n=e.userid,r=e.enabled,i=void 0===r||r,o=i?"enable":"disable";return Ce().then(function(e){return Ae(OC.linkToOCS("cloud/users/"+n+"/"+o,2)).then(function(e){return t.commit("enableDisableUser",{userid:n,enabled:i})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})})},setUserData:function(t,e){var n=e.userid,r=e.key,i=e.value,o=["email","displayname"];return-1!==["email","language","quota","displayname","password"].indexOf(r)&&"string"==typeof i&&(-1===o.indexOf(r)&&i.length>0||-1!==o.indexOf(r))?Ce().then(function(e){return Ae(OC.linkToOCS("cloud/users/"+n,2),{key:r,value:i}).then(function(e){return t.commit("setUserData",{userid:n,key:r,value:i})}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{userid:n,error:e})}):Promise.reject(new Error("Invalid request data"))}}},cn={state:{serverData:{}},mutations:{setServerData:function(t,e){t.serverData=e}},getters:{getServerData:function(t){return t.serverData}},actions:{}},ln={state:{},mutations:{},getters:{},actions:{setAppConfig:function(t,e){var n=e.app,r=e.key,i=e.value;return Ce().then(function(t){return Ee(OC.linkToOCS("apps/provisioning_api/api/v1/config/apps/"+n+"/"+r,2),{value:i}).catch(function(t){throw t})}).catch(function(e){return t.commit("API_FAILURE",{app:n,key:r,value:i,error:e})})}}};i.a.use(sn);var fn={API_FAILURE:function(e,n){var r=n.error.response.data.ocs.meta.message;throw OC.Notification.showHtml(t("settings","An error occured during the request. Unable to proceed.")+"<br>"+r,{timeout:7}),console.log(e,n),new Error(n)}},pn=new sn.Store({modules:{users:un,settings:cn,oc:ln},strict:!1,mutations:fn});r.d(n,"app",function(){return dn}),r.d(n,"router",function(){return Me}),r.d(n,"store",function(){return pn}),r(219),r(218),r(213),r(212),r(211),r(210),r(209),r(208),r(207),r(206),r(205),r(203),r(202),r(201),r(200),r(199),r(197),r(196),r(195),r(194),r(193),r(192),r(191),r(190),r(189),r(188),r(187),r(186),r(182),r(179),r(178),r(177),r(176),r(175),r(174),r(173),r(172),r(171),r(170),r(169),r(168),r(166),r(165),r(164),r(163),r(162),r(160),r(159),r(158),r(157),r(156),r(154),r(153),r(152),r(151),r(150),r(149),r(148),r(147),r(146),r(145),r(61),r(144),r(143),r(142),r(141),r(140),r(139),r(138),r(137),r(136),r(135),r(134),r(133),r(132),r(131),r(130),r(128),r(127),r(126),r(125),r(124),r(123),r(122),r(121),r(120),r(119),r(118),r(117),r(116),r(115),r(114),r(113),r(112),r(111),r(110),Object(o.sync)(pn,Me),i.a.prototype.t=t,i.a.prototype.OC=OC,i.a.prototype.oc_userconfig=oc_userconfig;var dn=new i.a({router:Me,store:pn,render:function(t){return t(l)}}).$mount("#content")},function(t,e){!function(e){"use strict";var n,r=Object.prototype,i=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},s=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag",c="object"==typeof t,l=e.regeneratorRuntime;if(l)c&&(t.exports=l);else{(l=e.regeneratorRuntime=c?t.exports:{}).wrap=_;var f="suspendedStart",p="suspendedYield",d="executing",h="completed",v={},m={};m[s]=function(){return this};var g=Object.getPrototypeOf,y=g&&g(g(T([])));y&&y!==r&&i.call(y,s)&&(m=y);var b=S.prototype=x.prototype=Object.create(m);O.prototype=b.constructor=S,S.constructor=O,S[u]=O.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===O||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,S):(t.__proto__=S,u in t||(t[u]="GeneratorFunction")),t.prototype=Object.create(b),t},l.awrap=function(t){return{__await:t}},C(k.prototype),k.prototype[a]=function(){return this},l.AsyncIterator=k,l.async=function(t,e,n,r){var i=new k(_(t,e,n,r));return l.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},C(b),b[u]="Generator",b[s]=function(){return this},b.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},l.values=T,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach($),!t)for(var e in this)"t"===e.charAt(0)&&i.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,i){return a.type="throw",a.arg=t,e.next=r,i&&(e.method="next",e.arg=n),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var u=i.call(s,"catchLoc"),c=i.call(s,"finallyLoc");if(u&&c){if(this.prev<s.catchLoc)return r(s.catchLoc,!0);if(this.prev<s.finallyLoc)return r(s.finallyLoc)}else if(u){if(this.prev<s.catchLoc)return r(s.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return r(s.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var s=o?o.completion:{};return s.type=t,s.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(s)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),$(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;$(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function _(t,e,n,r){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),s=new L(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===h){if("throw"===i)throw o;return P()}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var a=E(s,n);if(a){if(a===v)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var u=w(t,e,n);if("normal"===u.type){if(r=n.done?h:p,u.arg===v)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(t,n,s),o}function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function x(){}function O(){}function S(){}function C(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function k(t){var e;this._invoke=function(n,r){function o(){return new Promise(function(e,o){!function e(n,r,o,s){var a=w(t[n],t,r);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&i.call(c,"__await")?Promise.resolve(c.__await).then(function(t){e("next",t,o,s)},function(t){e("throw",t,o,s)}):Promise.resolve(c).then(function(t){u.value=t,o(u)},s)}s(a.arg)}(n,r,e,o)})}return e=e?e.then(o,o):o()}}function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,E(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var i=w(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,v;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function $(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function T(t){if(t){var e=t[s];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r<t.length;)if(i.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return o.next=o}}return{next:P}}function P(){return{value:n,done:!0}}}(function(){return this}()||Function("return this")())},function(t,e,n){for(var r=n(61),i=n(21),o=n(20),s=n(2),a=n(12),u=n(30),c=n(4),l=c("iterator"),f=c("toStringTag"),p=u.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=i(d),v=0;v<h.length;v++){var m,g=h[v],y=d[g],b=s[g],_=b&&b.prototype;if(_&&(_[l]||a(_,l,p),_[f]||a(_,f,g),u[g]=p,y))for(m in r)_[m]||o(_,m,r[m],!0)}},function(t,e,n){var r=n(0),i=n(59);r(r.G+r.B,{setImmediate:i.set,clearImmediate:i.clear})},function(t,e,n){var r=n(2),i=n(0),o=n(53),s=[].slice,a=/MSIE .\./.test(o),u=function(t){return function(e,n){var r=arguments.length>2,i=!!r&&s.call(arguments,2);return t(r?function(){("function"==typeof e?e:Function(e)).apply(this,i)}:e,n)}};i(i.G+i.B+i.F*a,{setTimeout:u(r.setTimeout),setInterval:u(r.setInterval)})},function(t,e,n){"use strict";var r=n(0),i=n(77),o=n(53);r(r.P+r.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},function(t,e,n){"use strict";var r=n(0),i=n(77),o=n(53);r(r.P+r.F*/Version\/10\.\d+(\.\d+)? Safari\//.test(o),"String",{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},function(t,e,n){var r=n(0),i=n(86),o=n(14),s=n(15),a=n(56);r(r.S,"Object",{getOwnPropertyDescriptors:function(t){for(var e,n,r=o(t),u=s.f,c=i(r),l={},f=0;c.length>f;)void 0!==(n=u(r,e=c[f++]))&&a(l,e,n);return l}})},function(t,e,n){var r=n(0),i=n(78)(!0);r(r.S,"Object",{entries:function(t){return i(t)}})},function(t,e,n){var r=n(0),i=n(78)(!1);r(r.S,"Object",{values:function(t){return i(t)}})},function(t,e,n){"use strict";var r=n(0),i=n(70)(!0);r(r.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(28)("includes")},function(t,e,n){var r=n(0);r(r.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},function(t,e,n){var r=n(0),i=n(54),o=Math.exp;r(r.S,"Math",{tanh:function(t){var e=i(t=+t),n=i(-t);return e==1/0?1:n==1/0?-1:(e-n)/(o(t)+o(-t))}})},function(t,e,n){var r=n(0),i=n(54),o=Math.exp;r(r.S+r.F*n(6)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},function(t,e,n){var r=n(0);r(r.S,"Math",{sign:n(55)})},function(t,e,n){var r=n(0);r(r.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},function(t,e,n){var r=n(0);r(r.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},function(t,e,n){var r=n(0);r(r.S,"Math",{log1p:n(79)})},function(t,e,n){var r=n(0),i=Math.imul;r(r.S+r.F*n(6)(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(t,e){var n=+t,r=+e,i=65535&n,o=65535&r;return 0|i*o+((65535&n>>>16)*o+i*(65535&r>>>16)<<16>>>0)}})},function(t,e,n){var r=n(0),i=Math.abs;r(r.S,"Math",{hypot:function(t,e){for(var n,r,o=0,s=0,a=arguments.length,u=0;s<a;)u<(n=i(arguments[s++]))?(o=o*(r=u/n)*r+1,u=n):o+=n>0?(r=n/u)*r:n;return u===1/0?1/0:u*Math.sqrt(o)}})},function(t,e,n){var r=n(55),i=Math.pow,o=i(2,-52),s=i(2,-23),a=i(2,127)*(2-s),u=i(2,-126);t.exports=Math.fround||function(t){var e,n,i=Math.abs(t),c=r(t);return i<u?c*(i/u/s+1/o-1/o)*u*s:(n=(e=(1+s/o)*i)-(e-i))>a||n!=n?c*(1/0):c*n}},function(t,e,n){var r=n(0);r(r.S,"Math",{fround:n(129)})},function(t,e,n){var r=n(0),i=n(54);r(r.S+r.F*(i!=Math.expm1),"Math",{expm1:i})},function(t,e,n){var r=n(0),i=Math.exp;r(r.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},function(t,e,n){var r=n(0);r(r.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},function(t,e,n){var r=n(0),i=n(55);r(r.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},function(t,e,n){var r=n(0),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},function(t,e,n){var r=n(0),i=Math.asinh;r(r.S+r.F*!(i&&1/i(0)>0),"Math",{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):Math.log(e+Math.sqrt(e*e+1)):e}})},function(t,e,n){var r=n(0),i=n(79),o=Math.sqrt,s=Math.acosh;r(r.S+r.F*!(s&&710==Math.floor(s(Number.MAX_VALUE))&&s(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},function(t,e,n){var r=n(0);r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(t,e,n){var r=n(0);r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},function(t,e,n){var r=n(0);r(r.S,"Number",{EPSILON:Math.pow(2,-52)})},function(t,e,n){var r=n(0);r(r.S,"Number",{isNaN:function(t){return t!=t}})},function(t,e,n){var r=n(0),i=n(80),o=Math.abs;r(r.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},function(t,e,n){var r=n(0);r(r.S,"Number",{isInteger:n(80)})},function(t,e,n){var r=n(0),i=n(2).isFinite;r(r.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},function(t,e,n){var r=n(0);r(r.P,"Array",{fill:n(66)}),n(28)("fill")},function(t,e,n){"use strict";var r=n(0),i=n(41)(6),o="findIndex",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r(r.P+r.F*s,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(28)(o)},function(t,e,n){"use strict";var r=n(0),i=n(41)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(28)("find")},function(t,e,n){var r=n(0);r(r.P,"Array",{copyWithin:n(92)}),n(28)("copyWithin")},function(t,e,n){"use strict";var r=n(0),i=n(56);r(r.S+r.F*n(6)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)i(n,t,arguments[t++]);return n.length=e,n}})},function(t,e,n){"use strict";var r=n(18),i=n(0),o=n(17),s=n(90),a=n(63),u=n(8),c=n(56),l=n(62);i(i.S+i.F*!n(49)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=o(t),d="function"==typeof this?this:Array,h=arguments.length,v=h>1?arguments[1]:void 0,m=void 0!==v,g=0,y=l(p);if(m&&(v=r(v,h>2?arguments[2]:void 0,2)),void 0==y||d==Array&&a(y))for(n=new d(e=u(p.length));e>g;g++)c(n,g,m?v(p[g],g):p[g]);else for(f=y.call(p),n=new d;!(i=f.next()).done;g++)c(n,g,m?s(f,v,[i.value,g],!0):i.value);return n.length=g,n}})},function(t,e,n){n(45)("search",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){n(45)("split",2,function(t,e,r){"use strict";var i=n(81),o=r,s=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var a=void 0===/()??/.exec("")[1];r=function(t,e){var n=String(this);if(void 0===t&&0===e)return[];if(!i(t))return o.call(n,t,e);var r,u,c,l,f,p=[],d=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),h=0,v=void 0===e?4294967295:e>>>0,m=new RegExp(t.source,d+"g");for(a||(r=new RegExp("^"+m.source+"$(?!\\s)",d));(u=m.exec(n))&&!((c=u.index+u[0].length)>h&&(p.push(n.slice(h,u.index)),!a&&u.length>1&&u[0].replace(r,function(){for(f=1;f<arguments.length-2;f++)void 0===arguments[f]&&(u[f]=void 0)}),u.length>1&&u.index<n.length&&s.apply(p,u.slice(1)),l=u[0].length,h=c,p.length>=v));)m.lastIndex===u.index&&m.lastIndex++;return h===n.length?!l&&m.test("")||p.push(""):p.push(n.slice(h)),p.length>v?p.slice(0,v):p}}else"0".split(void 0,0).length&&(r=function(t,e){return void 0===t&&0===e?[]:o.call(this,t,e)});return[function(n,i){var o=t(this),s=void 0==n?void 0:n[e];return void 0!==s?s.call(n,o,i):r.call(String(o),n,i)},r]})},function(t,e,n){n(45)("replace",2,function(t,e,n){return[function(r,i){"use strict";var o=t(this),s=void 0==r?void 0:r[e];return void 0!==s?s.call(r,o,i):n.call(String(o),r,i)},n]})},function(t,e,n){n(45)("match",1,function(t,e,n){return[function(n){"use strict";var r=t(this),i=void 0==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},n]})},function(t,e,n){"use strict";var r=n(3);t.exports=function(){var t=r(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){n(9)&&"g"!=/./g.flags&&n(7).f(RegExp.prototype,"flags",{configurable:!0,get:n(155)})},function(t,e,n){"use strict";var r=n(0),i=n(58);r(r.P+r.F*n(57)("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(0),i=n(8),o=n(58),s="".endsWith;r(r.P+r.F*n(57)("endsWith"),"String",{endsWith:function(t){var e=o(this,t,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=i(e.length),a=void 0===n?r:Math.min(i(n),r),u=String(t);return s?s.call(e,u,a):e.slice(a-u.length,a)===u}})},function(t,e,n){"use strict";var r=n(0),i=n(8),o=n(58),s="".startsWith;r(r.P+r.F*n(57)("startsWith"),"String",{startsWith:function(t){var e=o(this,t,"startsWith"),n=i(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return s?s.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){var r=n(0);r(r.P,"String",{repeat:n(82)})},function(t,e,n){var r=n(23),i=n(22);t.exports=function(t){return function(e,n){var o,s,a=String(i(e)),u=r(n),c=a.length;return u<0||u>=c?t?"":void 0:(o=a.charCodeAt(u))<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?t?a.charAt(u):o:t?a.slice(u,u+2):s-56320+(o-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(0),i=n(161)(!1);r(r.P,"String",{codePointAt:function(t){return i(this,t)}})},function(t,e,n){var r=n(0),i=n(32),o=String.fromCharCode,s=String.fromCodePoint;r(r.S+r.F*(!!s&&1!=s.length),"String",{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,s=0;r>s;){if(e=+arguments[s++],i(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?o(e):o(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){var r=n(0),i=n(14),o=n(8);r(r.S,"String",{raw:function(t){for(var e=i(t.raw),n=o(e.length),r=arguments.length,s=[],a=0;n>a;)s.push(String(e[a++])),a<r&&s.push(String(arguments[a]));return s.join("")}})},function(t,e,n){var r=n(7).f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||n(9)&&r(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},function(t,e,n){var r=n(0);r(r.S,"Object",{setPrototypeOf:n(60).set})},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){var r=n(0);r(r.S,"Object",{is:n(167)})},function(t,e,n){var r=n(0);r(r.S+r.F,"Object",{assign:n(89)})},function(t,e,n){n(13)("getOwnPropertyNames",function(){return n(83).f})},function(t,e,n){var r=n(17),i=n(21);n(13)("keys",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(17),i=n(29);n(13)("getPrototypeOf",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(14),i=n(15).f;n(13)("getOwnPropertyDescriptor",function(){return function(t,e){return i(r(t),e)}})},function(t,e,n){var r=n(1);n(13)("isExtensible",function(t){return function(e){return!!r(e)&&(!t||t(e))}})},function(t,e,n){var r=n(1);n(13)("isSealed",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(1);n(13)("isFrozen",function(t){return function(e){return!r(e)||!!t&&t(e)}})},function(t,e,n){var r=n(1),i=n(19).onFreeze;n(13)("preventExtensions",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(1),i=n(19).onFreeze;n(13)("seal",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(1),i=n(19).onFreeze;n(13)("freeze",function(t){return function(e){return t&&r(e)?t(i(e)):e}})},function(t,e,n){var r=n(21),i=n(46),o=n(40);t.exports=function(t){var e=r(t),n=i.f;if(n)for(var s,a=n(t),u=o.f,c=0;a.length>c;)u.call(t,s=a[c++])&&e.push(s);return e}},function(t,e,n){var r=n(2),i=n(37),o=n(36),s=n(84),a=n(7).f;t.exports=function(t){var e=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e,n){"use strict";var r=n(2),i=n(11),o=n(9),s=n(0),a=n(20),u=n(19).KEY,c=n(6),l=n(68),f=n(31),p=n(25),d=n(4),h=n(84),v=n(181),m=n(180),g=n(95),y=n(3),b=n(1),_=n(14),w=n(44),x=n(26),O=n(42),S=n(83),C=n(15),k=n(7),E=n(21),A=C.f,$=k.f,L=S.f,T=r.Symbol,P=r.JSON,j=P&&P.stringify,N=d("_hidden"),M=d("toPrimitive"),U={}.propertyIsEnumerable,I=l("symbol-registry"),F=l("symbols"),R=l("op-symbols"),D=Object.prototype,B="function"==typeof T,G=r.QObject,V=!G||!G.prototype||!G.prototype.findChild,H=o&&c(function(){return 7!=O($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(D,e);r&&delete D[e],$(t,e,n),r&&t!==D&&$(D,e,r)}:$,q=function(t){var e=F[t]=O(T.prototype);return e._k=t,e},z=B&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},W=function(t,e,n){return t===D&&W(R,e,n),y(t),e=w(e,!0),y(n),i(F,e)?(n.enumerable?(i(t,N)&&t[N][e]&&(t[N][e]=!1),n=O(n,{enumerable:x(0,!1)})):(i(t,N)||$(t,N,x(1,{})),t[N][e]=!0),H(t,e,n)):$(t,e,n)},K=function(t,e){y(t);for(var n,r=m(e=_(e)),i=0,o=r.length;o>i;)W(t,n=r[i++],e[n]);return t},Y=function(t){var e=U.call(this,t=w(t,!0));return!(this===D&&i(F,t)&&!i(R,t))&&(!(e||!i(this,t)||!i(F,t)||i(this,N)&&this[N][t])||e)},Q=function(t,e){if(t=_(t),e=w(e,!0),t!==D||!i(F,e)||i(R,e)){var n=A(t,e);return!n||!i(F,e)||i(t,N)&&t[N][e]||(n.enumerable=!0),n}},J=function(t){for(var e,n=L(_(t)),r=[],o=0;n.length>o;)i(F,e=n[o++])||e==N||e==u||r.push(e);return r},X=function(t){for(var e,n=t===D,r=L(n?R:_(t)),o=[],s=0;r.length>s;)!i(F,e=r[s++])||n&&!i(D,e)||o.push(F[e]);return o};B||(a((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===D&&e.call(R,n),i(this,N)&&i(this[N],t)&&(this[N][t]=!1),H(this,t,x(1,n))};return o&&V&&H(D,t,{configurable:!0,set:e}),q(t)}).prototype,"toString",function(){return this._k}),C.f=Q,k.f=W,n(43).f=S.f=J,n(40).f=Y,n(46).f=X,o&&!n(36)&&a(D,"propertyIsEnumerable",Y,!0),h.f=function(t){return q(d(t))}),s(s.G+s.W+s.F*!B,{Symbol:T});for(var Z="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Z.length>tt;)d(Z[tt++]);for(var et=E(d.store),nt=0;et.length>nt;)v(et[nt++]);s(s.S+s.F*!B,"Symbol",{for:function(t){return i(I,t+="")?I[t]:I[t]=T(t)},keyFor:function(t){if(!z(t))throw TypeError(t+" is not a symbol!");for(var e in I)if(I[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),s(s.S+s.F*!B,"Object",{create:function(t,e){return void 0===e?O(t):K(O(t),e)},defineProperty:W,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:J,getOwnPropertySymbols:X}),P&&s(s.S+s.F*(!B||c(function(){var t=T();return"[null]"!=j([t])||"{}"!=j({a:t})||"{}"!=j(Object(t))})),"JSON",{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(b(e)||void 0!==t)&&!z(t))return g(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!z(e))return e}),r[1]=e,j.apply(P,r)}}),T.prototype[M]||n(12)(T.prototype,M,T.prototype.valueOf),f(T,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(t,e,n){var r=n(3),i=n(1),o=n(85);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(2),i=n(59).set,o=r.MutationObserver||r.WebKitMutationObserver,s=r.process,a=r.Promise,u="process"==n(33)(s);t.exports=function(){var t,e,n,c=function(){var r,i;for(u&&(r=s.domain)&&r.exit();t;){i=t.fn,t=t.next;try{i()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(u)n=function(){s.nextTick(c)};else if(!o||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var l=a.resolve();n=function(){l.then(c)}}else n=function(){i.call(r,c)};else{var f=!0,p=document.createTextNode("");new o(c).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(r){var i={fn:r,next:void 0};e&&(e.next=i),t||(t=i,n()),e=i}}},function(t,e,n){"use strict";var r,i,o,s,a=n(36),u=n(2),c=n(18),l=n(64),f=n(0),p=n(1),d=n(24),h=n(34),v=n(48),m=n(65),g=n(59).set,y=n(185)(),b=n(85),_=n(184),w=n(183),x=u.TypeError,O=u.process,S=u.Promise,C="process"==l(O),k=function(){},E=i=b.f,A=!!function(){try{var t=S.resolve(1),e=(t.constructor={})[n(4)("species")]=function(t){t(k,k)};return(C||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof e}catch(t){}}(),$=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},L=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,i=1==t._s,o=0,s=function(e){var n,o,s,a=i?e.ok:e.fail,u=e.resolve,c=e.reject,l=e.domain;try{a?(i||(2==t._h&&j(t),t._h=1),!0===a?n=r:(l&&l.enter(),n=a(r),l&&(l.exit(),s=!0)),n===e.promise?c(x("Promise-chain cycle")):(o=$(n))?o.call(n,u,c):u(n)):c(r)}catch(t){l&&!s&&l.exit(),c(t)}};n.length>o;)s(n[o++]);t._c=[],t._n=!1,e&&!t._h&&T(t)})}},T=function(t){g.call(u,function(){var e,n,r,i=t._v,o=P(t);if(o&&(e=_(function(){C?O.emit("unhandledRejection",i,t):(n=u.onunhandledrejection)?n({promise:t,reason:i}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",i)}),t._h=C||P(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},P=function(t){return 1!==t._h&&0===(t._a||t._c).length},j=function(t){g.call(u,function(){var e;C?O.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})})},N=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),L(e,!0))},M=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw x("Promise can't be resolved itself");(e=$(t))?y(function(){var r={_w:n,_d:!1};try{e.call(t,c(M,r,1),c(N,r,1))}catch(t){N.call(r,t)}}):(n._v=t,n._s=1,L(n,!1))}catch(t){N.call({_w:n,_d:!1},t)}}};A||(S=function(t){h(this,S,"Promise","_h"),d(t),r.call(this);try{t(c(M,this,1),c(N,this,1))}catch(t){N.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(35)(S.prototype,{then:function(t,e){var n=E(m(this,S));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=C?O.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&L(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new r;this.promise=t,this.resolve=c(M,t,1),this.reject=c(N,t,1)},b.f=E=function(t){return t===S||t===s?new o(t):i(t)}),f(f.G+f.W+f.F*!A,{Promise:S}),n(31)(S,"Promise"),n(50)("Promise"),s=n(37).Promise,f(f.S+f.F*!A,"Promise",{reject:function(t){var e=E(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(a||!A),"Promise",{resolve:function(t){return w(a&&this===s?S:this,t)}}),f(f.S+f.F*!(A&&n(49)(function(t){S.all(t).catch(k)})),"Promise",{all:function(t){var e=this,n=E(e),r=n.resolve,i=n.reject,o=_(function(){var n=[],o=0,s=1;v(t,!1,function(t){var a=o++,u=!1;n.push(void 0),s++,e.resolve(t).then(function(t){u||(u=!0,n[a]=t,--s||r(n))},i)}),--s||r(n)});return o.e&&i(o.v),n.promise},race:function(t){var e=this,n=E(e),r=n.reject,i=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return i.e&&r(i.v),n.promise}})},function(t,e,n){var r=n(0),i=n(60);i&&r(r.S,"Reflect",{setPrototypeOf:function(t,e){i.check(t,e);try{return i.set(t,e),!0}catch(t){return!1}}})},function(t,e,n){var r=n(7),i=n(15),o=n(29),s=n(11),a=n(0),u=n(26),c=n(3),l=n(1);a(a.S,"Reflect",{set:function t(e,n,a){var f,p,d=arguments.length<4?e:arguments[3],h=i.f(c(e),n);if(!h){if(l(p=o(e)))return t(p,n,a,d);h=u(0)}if(s(h,"value")){if(!1===h.writable||!l(d))return!1;if(f=i.f(d,n)){if(f.get||f.set||!1===f.writable)return!1;f.value=a,r.f(d,n,f)}else r.f(d,n,u(0,a));return!0}return void 0!==h.set&&(h.set.call(d,a),!0)}})},function(t,e,n){var r=n(0),i=n(3),o=Object.preventExtensions;r(r.S,"Reflect",{preventExtensions:function(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},function(t,e,n){var r=n(0);r(r.S,"Reflect",{ownKeys:n(86)})},function(t,e,n){var r=n(0),i=n(3),o=Object.isExtensible;r(r.S,"Reflect",{isExtensible:function(t){return i(t),!o||o(t)}})},function(t,e,n){var r=n(0);r(r.S,"Reflect",{has:function(t,e){return e in t}})},function(t,e,n){var r=n(0),i=n(29),o=n(3);r(r.S,"Reflect",{getPrototypeOf:function(t){return i(o(t))}})},function(t,e,n){var r=n(15),i=n(0),o=n(3);i(i.S,"Reflect",{getOwnPropertyDescriptor:function(t,e){return r.f(o(t),e)}})},function(t,e,n){var r=n(15),i=n(29),o=n(11),s=n(0),a=n(1),u=n(3);s(s.S,"Reflect",{get:function t(e,n){var s,c,l=arguments.length<3?e:arguments[2];return u(e)===l?e[n]:(s=r.f(e,n))?o(s,"value")?s.value:void 0!==s.get?s.get.call(l):void 0:a(c=i(e))?t(c,n,l):void 0}})},function(t,e,n){var r=n(0),i=n(15).f,o=n(3);r(r.S,"Reflect",{deleteProperty:function(t,e){var n=i(o(t),e);return!(n&&!n.configurable)&&delete t[e]}})},function(t,e,n){var r=n(7),i=n(0),o=n(3),s=n(44);i(i.S+i.F*n(6)(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,e,n){o(t),e=s(e,!0),o(n);try{return r.f(t,e,n),!0}catch(t){return!1}}})},function(t,e,n){"use strict";var r=n(24),i=n(1),o=n(87),s=[].slice,a={};t.exports=Function.bind||function(t){var e=r(this),n=s.call(arguments,1),u=function(){var r=n.concat(s.call(arguments));return this instanceof u?function(t,e,n){if(!(e in a)){for(var r=[],i=0;i<e;i++)r[i]="a["+i+"]";a[e]=Function("F,a","return new F("+r.join(",")+")")}return a[e](t,n)}(e,r.length,r):o(e,r,t)};return i(e.prototype)&&(u.prototype=e.prototype),u}},function(t,e,n){var r=n(0),i=n(42),o=n(24),s=n(3),a=n(1),u=n(6),c=n(198),l=(n(2).Reflect||{}).construct,f=u(function(){function t(){}return!(l(function(){},[],t)instanceof t)}),p=!u(function(){l(function(){})});r(r.S+r.F*(f||p),"Reflect",{construct:function(t,e){o(t),s(e);var n=arguments.length<3?t:o(arguments[2]);if(p&&!f)return l(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(c.apply(t,r))}var u=n.prototype,d=i(a(u)?u:Object.prototype),h=Function.apply.call(t,d,e);return a(h)?h:d}})},function(t,e,n){var r=n(0),i=n(24),o=n(3),s=(n(2).Reflect||{}).apply,a=Function.apply;r(r.S+r.F*!n(6)(function(){s(function(){})}),"Reflect",{apply:function(t,e,n){var r=i(t),u=o(n);return s?s(r,e,u):a.call(r,e,u)}})},function(t,e,n){"use strict";var r=n(88),i=n(27);n(47)("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"WeakSet"),t,!0)}},r,!1,!0)},function(t,e,n){"use strict";var r,i=n(41)(0),o=n(20),s=n(19),a=n(89),u=n(88),c=n(1),l=n(6),f=n(27),p=s.getWeak,d=Object.isExtensible,h=u.ufstore,v={},m=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(t){if(c(t)){var e=p(t);return!0===e?h(f(this,"WeakMap")).get(t):e?e[this._i]:void 0}},set:function(t,e){return u.def(f(this,"WeakMap"),t,e)}},y=t.exports=n(47)("WeakMap",m,g,u,!0,!0);l(function(){return 7!=(new y).set((Object.freeze||Object)(v),7).get(v)})&&(a((r=u.getConstructor(m,"WeakMap")).prototype,g),s.NEED=!0,i(["delete","has","get","set"],function(t){var e=y.prototype,n=e[t];o(e,t,function(e,i){if(c(e)&&!d(e)){this._f||(this._f=new r);var o=this._f[t](e,i);return"set"==t?this:o}return n.call(this,e,i)})}))},function(t,e,n){"use strict";var r=n(91),i=n(27);t.exports=n(47)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return r.def(i(this,"Set"),t=0===t?0:t,t)}},r)},function(t,e,n){var r=n(1),i=n(60).set;t.exports=function(t,e,n){var o,s=e.constructor;return s!==n&&"function"==typeof s&&(o=s.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},function(t,e,n){"use strict";var r=n(91),i=n(27);t.exports=n(47)("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var e=r.getEntry(i(this,"Map"),t);return e&&e.v},set:function(t,e){return r.def(i(this,"Map"),0===t?0:t,e)}},r,!0)},function(t,e,n){n(16)("Float64",8,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Float32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Uint32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Int32",4,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Uint16",2,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Int16",2,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){n(16)("Uint8",1,function(t){return function(e,n,r){return t(this,e,n,r)}},!0)},function(t,e,n){n(16)("Uint8",1,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){"use strict";var r=n(42),i=n(26),o=n(31),s={};n(12)(s,n(4)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(s,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(1),i=n(95),o=n(4)("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var r=n(215);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(7),i=n(3),o=n(21);t.exports=n(9)?Object.defineProperties:function(t,e){i(t);for(var n,s=o(e),a=s.length,u=0;a>u;)r.f(t,n=s[u++],e[n]);return t}},function(t,e,n){n(16)("Int8",1,function(t){return function(e,n,r){return t(this,e,n,r)}})},function(t,e,n){"use strict";var r=n(0),i=n(72),o=n(99),s=n(3),a=n(32),u=n(8),c=n(1),l=n(2).ArrayBuffer,f=n(65),p=o.ArrayBuffer,d=o.DataView,h=i.ABV&&l.isView,v=p.prototype.slice,m=i.VIEW;r(r.G+r.W+r.F*(l!==p),{ArrayBuffer:p}),r(r.S+r.F*!i.CONSTR,"ArrayBuffer",{isView:function(t){return h&&h(t)||c(t)&&m in t}}),r(r.P+r.U+r.F*n(6)(function(){return!new p(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(t,e){if(void 0!==v&&void 0===e)return v.call(s(this),t);for(var n=s(this).byteLength,r=a(t,n),i=a(void 0===e?n:e,n),o=new(f(this,p))(u(i-r)),c=new d(this),l=new d(o),h=0;r<i;)l.setUint8(h++,c.getUint8(r++));return o}}),n(50)("ArrayBuffer")},function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,n){"use strict";var r=n(101);function i(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(t){e=t});var n=this;t(function(t){n.reason||(n.reason=new r(t),e(n.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var t;return{token:new i(function(e){t=e}),cancel:t}},t.exports=i},function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,n){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,n){"use strict";var r=n(10);t.exports=function(t,e,n){return r.forEach(n,function(n){t=n(t,e)}),t}},function(t,e,n){"use strict";var r=n(10),i=n(224),o=n(102),s=n(74),a=n(223),u=n(222);function c(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return c(t),t.baseURL&&!a(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=i(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||s.adapter)(t).then(function(e){return c(t),e.data=i(e.data,e.headers,t.transformResponse),e},function(e){return o(e)||(c(t),e&&e.response&&(e.response.data=i(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},function(t,e,n){"use strict";var r=n(10);function i(){this.handlers=[]}i.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.forEach=function(t){r.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=i},function(t,e,n){"use strict";var r=n(10);t.exports=r.isStandardBrowserEnv()?{write:function(t,e,n,i,o,s){var a=[];a.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(i)&&a.push("path="+i),r.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function i(){this.message="String contains an invalid character"}i.prototype=new Error,i.prototype.code=5,i.prototype.name="InvalidCharacterError",t.exports=function(t){for(var e,n,o=String(t),s="",a=0,u=r;o.charAt(0|a)||(u="=",a%1);s+=u.charAt(63&e>>8-a%1*8)){if((n=o.charCodeAt(a+=.75))>255)throw new i;e=e<<8|n}return s}},function(t,e,n){"use strict";var r=n(10);t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(e){var n=r.isString(e)?i(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},function(t,e,n){"use strict";var r=n(10),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,o,s={};return t?(r.forEach(t.split("\n"),function(t){if(o=t.indexOf(":"),e=r.trim(t.substr(0,o)).toLowerCase(),n=r.trim(t.substr(o+1)),e){if(s[e]&&i.indexOf(e)>=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([n]):s[e]?s[e]+", "+n:n}}),s):s}},function(t,e,n){"use strict";var r=n(10);function i(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var o;if(n)o=n(e);else if(r.isURLSearchParams(e))o=e.toString();else{var s=[];r.forEach(e,function(t,e){null!==t&&void 0!==t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),s.push(i(e)+"="+i(t))}))}),o=s.join("&")}return o&&(t+=(-1===t.indexOf("?")?"?":"&")+o),t}},function(t,e,n){"use strict";t.exports=function(t,e,n,r,i){return t.config=e,n&&(t.code=n),t.request=r,t.response=i,t}},function(t,e,n){"use strict";var r=n(103);t.exports=function(t,e,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(r("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}},function(t,e,n){"use strict";var r=n(10);t.exports=function(t,e){r.forEach(t,function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])})}},function(t,e,n){"use strict";var r=n(74),i=n(10),o=n(226),s=n(225);function a(t){this.defaults=t,this.interceptors={request:new o,response:new o}}a.prototype.request=function(t){"string"==typeof t&&(t=i.merge({url:arguments[0]},arguments[1])),(t=i.merge(r,{method:"get"},this.defaults,t)).method=t.method.toLowerCase();var e=[s,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach(function(t){e.unshift(t.fulfilled,t.rejected)}),this.interceptors.response.forEach(function(t){e.push(t.fulfilled,t.rejected)});e.length;)n=n.then(e.shift(),e.shift());return n},i.forEach(["delete","get","head","options"],function(t){a.prototype[t]=function(e,n){return this.request(i.merge(n||{},{method:t,url:e}))}}),i.forEach(["post","put","patch"],function(t){a.prototype[t]=function(e,n,r){return this.request(i.merge(r||{},{method:t,url:e,data:n}))}}),t.exports=a},function(t,e){function n(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */ +t.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},function(t,e,n){"use strict";var r=n(10),i=n(105),o=n(235),s=n(74);function a(t){var e=new o(t),n=i(o.prototype.request,e);return r.extend(n,o.prototype,e),r.extend(n,e),n}var u=a(s);u.Axios=o,u.create=function(t){return a(r.merge(s,t))},u.Cancel=n(101),u.CancelToken=n(221),u.isCancel=n(102),u.all=function(t){return Promise.all(t)},u.spread=n(220),t.exports=u,t.exports.default=u},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,o,s,a,u=1,c={},l=!1,f=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick(function(){h(t)})}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){h(t.data)},r=function(t){o.port2.postMessage(t)}):f&&"onreadystatechange"in f.createElement("script")?(i=f.documentElement,r=function(t){var e=f.createElement("script");e.onreadystatechange=function(){h(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(h,0,t)}:(s="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&h(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),r=function(e){t.postMessage(s+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var i={callback:t,args:e};return c[u]=i,r(u),u++},p.clearImmediate=d}function d(t){delete c[t]}function h(t){if(l)setTimeout(h,0,t);else{var e=c[t];if(e){l=!0;try{!function(t){var e=t.callback,r=t.args;switch(r.length){case 0:e();break;case 1:e(r[0]);break;case 2:e(r[0],r[1]);break;case 3:e(r[0],r[1],r[2]);break;default:e.apply(n,r)}}(e)}finally{d(t),l=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(51),n(75))},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(238),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(51))}]); +//# sourceMappingURL=main.js.map
\ No newline at end of file diff --git a/settings/js/main.js.map b/settings/js/main.js.map new file mode 100644 index 00000000000..9fb0b2c8bc0 --- /dev/null +++ b/settings/js/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_typed-array.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/vue-multiselect/dist/vue-multiselect.min.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/vue-click-outside/index.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_math-expm1.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_typed.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/vue-localstorage/dist/vue-local-storage.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_math-log1p.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/core-js/modules/_typed-buffer.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js","webpack:///./node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///./node_modules/vuex-router-sync/index.js","webpack:///src/App.vue","webpack:///./src/App.vue?07ab","webpack:///./node_modules/vue-loader/lib/runtime/component-normalizer.js","webpack:///./src/App.vue","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./src/components/popoverMenu/popoverItem.vue?ea2d","webpack:///./src/components/popoverMenu/popoverItem.vue","webpack:///src/components/popoverMenu/popoverItem.vue","webpack:///src/components/popoverMenu.vue","webpack:///./src/components/popoverMenu.vue?6b57","webpack:///./src/components/popoverMenu.vue","webpack:///src/components/appNavigation/navigationItem.vue","webpack:///./src/components/appNavigation/navigationItem.vue?fffc","webpack:///./src/components/appNavigation/navigationItem.vue","webpack:///src/components/appNavigation.vue","webpack:///./src/components/appNavigation.vue?dfe4","webpack:///./src/components/appNavigation.vue","webpack:///src/components/userList/userRow.vue","webpack:///./src/components/userList/userRow.vue?32b4","webpack:///./src/components/userList/userRow.vue","webpack:///src/components/userList.vue","webpack:///./src/components/userList.vue?95f4","webpack:///./src/components/userList.vue","webpack:///./src/store/api.js","webpack:///src/views/Users.vue","webpack:///./src/views/Users.vue?9b2b","webpack:///./src/views/Users.vue","webpack:///./src/router.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./src/store/users.js","webpack:///./src/store/settings.js","webpack:///./src/store/oc.js","webpack:///./src/store/index.js","webpack:///./src/main.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/modules/es7.string.pad-end.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/es6.math.trunc.js","webpack:///./node_modules/core-js/modules/es6.math.tanh.js","webpack:///./node_modules/core-js/modules/es6.math.sinh.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/core-js/modules/es6.math.log1p.js","webpack:///./node_modules/core-js/modules/es6.math.imul.js","webpack:///./node_modules/core-js/modules/es6.math.hypot.js","webpack:///./node_modules/core-js/modules/_math-fround.js","webpack:///./node_modules/core-js/modules/es6.math.fround.js","webpack:///./node_modules/core-js/modules/es6.math.expm1.js","webpack:///./node_modules/core-js/modules/es6.math.cosh.js","webpack:///./node_modules/core-js/modules/es6.math.clz32.js","webpack:///./node_modules/core-js/modules/es6.math.cbrt.js","webpack:///./node_modules/core-js/modules/es6.math.atanh.js","webpack:///./node_modules/core-js/modules/es6.math.asinh.js","webpack:///./node_modules/core-js/modules/es6.math.acosh.js","webpack:///./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.epsilon.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./node_modules/core-js/modules/es6.number.is-finite.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.of.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/es6.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es6.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es6.string.raw.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.object.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es6.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.object.seal.js","webpack:///./node_modules/core-js/modules/es6.object.freeze.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.set.js","webpack:///./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.reflect.has.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.define-property.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.reflect.apply.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.typed.float64-array.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/es6.typed.int8-array.js","webpack:///./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/btoa.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/timers-browserify/main.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","core","hide","redefine","ctx","$export","type","source","key","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","target","expProto","undefined","Function","U","W","R","it","window","Math","self","__g","isObject","TypeError","store","uid","Symbol","USE_SYMBOL","setImmediate","emptyObject","freeze","isUndef","v","isDef","isTrue","isPrimitive","obj","_toString","toString","isPlainObject","isRegExp","isValidArrayIndex","val","parseFloat","String","floor","isFinite","JSON","stringify","toNumber","isNaN","makeMap","str","expectsLowerCase","map","create","list","split","length","toLowerCase","isBuiltInTag","isReservedAttribute","remove","arr","item","index","indexOf","splice","hasOwn","cached","fn","cache","camelizeRE","camelize","replace","_","toUpperCase","capitalize","charAt","slice","hyphenateRE","hyphenate","bind","boundFn","a","arguments","apply","_length","toArray","start","ret","Array","extend","to","_from","toObject","res","noop","b","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArray","isArrayB","every","e","keysA","keys","keysB","looseIndexOf","once","called","this","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","def","writable","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","test","isIE9","isEdge","isIOS","nativeWatch","watch","supportsPassive","opts","addEventListener","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","set","has","add","clear","warn","Dep","id","subs","addSub","sub","push","removeSub","depend","addDep","notify","update","targetStack","pushTarget","_target","popTarget","pop","VNode","tag","data","children","text","elm","context","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","forEach","method","original","args","len","inserted","result","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive","customSetter","shallow","getOwnPropertyDescriptor","setter","childOb","dependArray","newVal","max","del","items","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","concat","mergeAssets","hook","key$1","props","methods","inject","computed","provide","defaultStrat","mergeOptions","options","normalizeProps","normalized","normalizeInject","dirs","directives","normalizeDirectives","extendsFrom","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","default","$options","_props","getType","getPropDefaultValue","prevShouldObserve","match","isSameType","expectedTypes","handleError","err","info","cur","$parent","hooks","errorCaptured","globalHandleError","logError","console","error","microTimerFunc","macroTimerFunc","callbacks","pending","flushCallbacks","copies","useMacroTask","MessageChannel","setTimeout","channel","port","port2","port1","onmessage","postMessage","Promise","resolve","then","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","capture","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","old","event","params","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","lastIndex","last","isTextNode","shift","_isVList","ensureCtor","comp","base","toStringTag","getFirstComponentChild","$once","$on","remove$1","$off","updateComponentListeners","listeners","oldListeners","resolveSlots","slots","attrs","slot","name$1","isWhitespace","resolveScopedSlots","activeInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook","handlers","j","_hasHookEvent","$emit","queue","activatedChildren","waiting","flushing","flushSchedulerQueue","watcher","sort","run","activatedQueue","updatedQueue","callActivatedHooks","_watcher","_isMounted","callUpdatedHooks","emit","uid$1","Watcher","expOrFn","isRenderWatcher","_watchers","deep","user","lazy","sync","active","dirty","deps","newDeps","depIds","newDepIds","expression","path","segments","parsePath","cleanupDeps","tmp","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","proxy","sourceKey","initState","propsOptions","_propKeys","loop","initProps","initMethods","_data","getData","charCodeAt","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","handler","createWatcher","initWatch","shouldCache","createComputedGetter","$watch","resolveInject","filter","provideKey","_provided","provideDefault","renderList","render","renderSlot","fallback","bindObject","nodes","scopedSlotFn","$scopedSlots","slotNodes","$slots","_rendered","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","$event","renderStatic","isInFor","_staticTrees","tree","markStatic","staticRenderFns","_renderProxy","markOnce","markStaticNode","bindObjectListeners","existing","ours","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","injections","scopedSlots","_scopeId","_c","createElement","cloneAndMarkFunctionalResult","clone","mergeProps","componentVNodeHooks","init","hydrating","parentElm","refElm","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","_parentElm","_refElm","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","parentVnode","renderChildren","hasChildren","_renderChildren","$vnode","_vnode","$attrs","$listeners","propKeys","_parentListeners","$forceUpdate","updateChildComponent","insert","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","_base","cid","factory","errorComp","resolved","loading","loadingComp","contexts","forceRender","reject","reason","component","delay","timeout","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","callback","transformModel","extractPropsFromVNodeData","functional","renderContext","vnodes","createFunctionalComponent","nativeOn","abstract","installComponentHooks","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","applyNS","force","style","class","registerDeepBindings","_createElement","uid$3","super","superOptions","modifiedOptions","modified","latest","extended","extendOptions","sealed","sealedOptions","dedupe","resolveModifiedOptions","components","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","constructor","Comp","initProps$1","initComputed$1","mixin","use","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","_self","$root","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","initProvide","el","initMixin","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","cbs","i$1","eventsMixin","_update","prevEl","$el","prevVnode","prevActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","ref","renderMixin","patternTypes","RegExp","builtInComponents","KeepAlive","include","exclude","Number","created","destroyed","mounted","this$1","parseInt","configDef","util","delete","plugin","installedPlugins","_installedPlugins","unshift","install","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","ssrContext","version","acceptValue","attr","isEnumeratedAttr","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","parentNode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","query","selected","document","querySelector","nodeOps","tagName","multiple","setAttribute","createElementNS","namespace","createTextNode","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","scopeId","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","join","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","removeAttribute","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","chr","index$1","expressionPos","expressionEndPos","klass","validDivisionCharRE","parseFilters","prev","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","trim","pushFilter","wrapFilter","baseWarn","msg","pluckModuleFunction","addProp","plain","addAttr","addRawAttr","attrsMap","attrsList","addDirective","arg","addHandler","important","events","right","middle","native","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","genComponentModel","number","valueExpression","assignment","genAssignmentCode","lastIndexOf","eof","isStringStart","next","parseString","parseBracket","parseModel","inBracket","stringQuote","target$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","add$1","_withTask","onceHandler","remove$2","createOnceHandler","updateDOMListeners","change","normalizeEvents","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","end","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","pre","hasChildNodes","innerHTML","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","parentElm$1","patchable","i$2","createPatchFunction","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","createEvent","initEvent","dispatchEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","pos","dx","left","dy","top","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","prevChildren","rawChildren","transitionData","kept","removed","c$1","beforeUpdate","updated","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","cloneNode","HTMLUnknownElement","HTMLElement","mountComponent","defaultTagRE","regexEscapeRE","buildRegex","delimiters","open","close","klass$1","staticKeys","transformNode","classBinding","genData","decoder","style$1","styleBinding","he","html","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","attribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","IS_REGEX_CAPTURING_BROKEN","g","isPlainTextElement","reCache","decodingMap","<",">",""","&"," ","	","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","re","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","argRE","bindRE","modifierRE","decodeHTMLCached","createASTElement","makeAttrsMap","parse","template","isPreTag","root","currentParent","stack","preserveWhitespace","inPre","closeElement","element","lastTag","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","endTagLength","stackedTag","reStackedTag","rest$1","all","chars","parseEndTag","textEnd","commentEnd","shouldKeepComment","substring","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","parseStartTag","handleStartTag","rest","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","parseHTML","comments","ieNSBug","ieNSPrefix","guardIESVGBug","forbidden","checkRootConstraints","processPre","processRawAttrs","processed","processFor","if","addIfCondition","block","else","elseif","processIf","processOnce","processElement","findPrevElement","processIfConditions","slotScope","slotTarget","lastNode","tagRE","tokenValue","tokens","rawTokens","exec","@binding","parseText","for","checkInFor","processRef","slotName","processSlot","processComponent","isProp","hasBindings","parseModifiers","camel","argMatch","processAttrs","inMatch","alias","iteratorMatch","iterator1","iterator2","parseFor","condition","ifConditions","cloneASTElement","modules$1","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","_warn","code","genSelect","valueBinding","trueValueBinding","falseValueBinding","genCheckboxModel","genRadioModel","needCompositionGuard","genDefaultModel","reduce","genStaticKeys","genStaticKeysCached","optimize","markStatic$1","static","isDirectChildOfTemplateFor","l$1","markStaticRoots","staticInFor","staticRoot","fnExpRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","stop","prevent","ctrl","alt","meta","genHandlers","genHandler","isMethodPath","isFunctionExpression","genModifierCode","keyModifier","genFilterCode","genKeyFilter","keyVal","keyCode","keyName","baseDirectives","wrapListeners","wrapData","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","state","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","altGen","altHelper","genFor","ifProcessed","genIf","genChildren","bind$$1","genSlot","componentName","genData$2","genComponent","altEmpty","genIfConditions","conditions","genTernaryExp","needRuntime","hasRuntime","gen","genDirectives","genProps","genScopedSlot","inlineRenderFns","genInlineTemplate","genForScopedSlot","checkSkip","altGenElement","altGenNode","el$1","needsNormalization","getNormalizationType","genNode","transformSpecialNewlines","createFunction","errors","baseCompile","div","compileToFunctions","compile","finalOptions","tips","tip","compiled","fnGenErrors","createCompileToFunctionFn","getShouldDecode","href","idToTemplate","mount","documentElement","outerHTML","container","getOuterHTML","__webpack_exports__","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","toInteger","min","isBuffer","isFunction","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","merge","assignValue","thisArg","createDesc","fails","KEY","IObject","defined","pIE","toIObject","gOPD","LIBRARY","$typed","$buffer","anInstance","propertyDesc","redefineAll","toLength","toIndex","toAbsoluteIndex","classof","isArrayIter","getPrototypeOf","gOPN","getIterFn","wks","createArrayMethod","createArrayIncludes","speciesConstructor","ArrayIterators","Iterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","RangeError","Uint8Array","ArrayProto","$ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayIndexOf","arrayValues","values","arrayEntries","entries","arrayLastIndexOf","arrayReduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","ITERATOR","TAG","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","FORCED_SET","toOffset","BYTES","offset","validate","C","speciesFromList","fromList","addGetter","internal","_d","$from","step","iterator","aLen","mapfn","mapping","iterFn","done","$of","TO_LOCALE_BUG","$toLocaleString","proto","copyWithin","callbackfn","fill","find","predicate","findIndex","searchElement","includes","separator","reverse","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","wrapper","CLAMPED","NAME","GETTER","SETTER","TypedArray","Base","TAC","FORCED","ABV","TypedArrayPrototype","addElement","that","round","$offset","$length","byteLength","$len","iter","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","aFunction","META","setDesc","FREEZE","preventExtensions","setMeta","w","NEED","fastKey","getWeak","onFreeze","SRC","$toString","TPL","inspectSource","safe","$keys","enumBugKeys","ceil","px","random","bitmap","TYPE","UNSCOPABLES","IE_PROTO","ObjectProto","stat","Constructor","forbiddenField","__e","t","u","y","virtual","propertyIsEnumerable","valueOf","x","$isLabel","$groupLabel","search","isOpen","prefferedOpenDirection","optimizedHeight","maxHeight","internalSearch","required","trackBy","label","searchable","clearOnSelect","hideSelected","allowEmpty","resetAfter","closeOnSelect","customLabel","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","internalValue","select","filteredOptions","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getOptionLabel","updateSearch","selectGroup","disabled","$isDisabled","pointerDirty","deactivate","removeElement","wholeGroupSelected","removeLastElement","adjustPosition","pointer","focus","blur","toggle","innerHeight","bottom","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","multiselect__option--highlight","multiselect__option--selected","groupHighlight","multiselect__option--group-selected","addPointerElement","pointerReset","pointerForward","scrollTop","pointerBackward","pointerSet","L","k","E","V","contentWindow","write","getOwnPropertySymbols","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limit","limitText","showNoResults","tabindex","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","width","position","padding","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","Arguments","T","A","$","D","M","N","H","QObject","I","findChild","K","z","J","X","Y","Q","Z","tt","et","keyFor","useSetter","useSimple","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","multiselect--active","multiselect--disabled","multiselect--above","keydown","currentTarget","preventDefault","stopPropagation","keyup","mousedown","aria-hidden","autocomplete","input","data-select","data-selected","data-deselect","click","mouseenter","asc","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","dPs","Empty","createDict","iframeDocument","iframe","lt","Properties","hiddenKeys","SYMBOL","strfn","rxfn","string","forOf","setToStringTag","inheritIfRequired","common","IS_WEAK","ADDER","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","iterable","getConstructor","setStrong","BREAK","RETURN","SAFE_CLOSING","riter","skipClosing","DESCRIPTORS","SPECIES","eval","isServer","vNode","$isServer","elements","composedPath","contains","popupItem","isPopup","__vueClickOutside__","$expm1","expm1","sign","$defineProperty","MATCH","searchString","defer","invoke","cel","process","setTask","clearTask","clearImmediate","Dispatch","counter","listener","now","importScripts","check","setPrototypeOf","buggy","addToUnscopables","iterated","kind","getIteratorMethod","cof","ARG","tryGet","callee","endPos","shared","IS_INCLUDES","fromIndex","Typed","TypedArrayConstructors","utils","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","adapter","defaults","XMLHttpRequest","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","Accept","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","array","title","browser","argv","versions","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","VueLocalStorage","_properties","_namespace","_isSupported","_getLsKey","lsKey","_lsSet","rawValue","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","removeItem","addProperty","vueLocalStorage","server","SERVER_BUILD","isSupported","existingProp","log","repeat","maxLength","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","getKeys","isEnum","isEntries","log1p","count","Infinity","windowNames","getWindowNames","promise","$$resolve","$$reject","gOPS","getSymbols","un","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","entry","ufstore","$assign","assign","$iterDefine","SIZE","getEntry","inc","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","names","PROTOTYPE","WRONG_INDEX","BaseBuffer","abs","pow","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Cancel","message","__CANCEL__","enhanceError","request","response","settle","buildURL","parseHeaders","isURLSameOrigin","createError","btoa","requestData","requestHeaders","loadEvent","xDomain","XDomainRequest","url","onprogress","ontimeout","auth","username","password","Authorization","paramsSerializer","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onerror","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","cancel","abort","send","unescape","encodeURIComponent","sources","sourceRoot","parts","media","sourceMap","styleSheet","DEBUG","head","getElementsByTagName","locals","STATE_CHANGER","INFINITE_EVENT","INFINITE_LOOP","scrollParent","scrollHandler","isLoading","isComplete","isFirstLoad","debounceTimer","debounceDuration","infiniteLoopChecked","infiniteLoopTimer","continuousCallTimes","Spinner","isNoResults","isNoMore","distance","onInfinite","spinner","direction","forceUseInfiniteWrapper","getScrollParent","Event","attemptLoad","stateChanger","loaded","complete","reset","deactivated","activated","getCurrentDistance","offsetWidth","pageYOffset","overflowY","BUBBLES","CIRCLES","SPIRAL","WAVEDOTS","spinnerView","isBrowser","longerTimeoutBrowsers","timeoutDuration","debounce","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","nodeName","host","ownerDocument","_getStyleComputedProp","overflow","overflowX","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","scrollingElement","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","height","classCallCheck","createClass","descriptor","protoProps","staticProps","_extends","getClientRect","offsets","rect","scrollLeft","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","reference","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","_ref","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","marginRight","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","enabled","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","getWindow","defaultView","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","_this","isDestroyed","isCreated","jquery","enableEventListeners","Utils","PopperUtils","SVGAnimatedString","convertToArray","addClasses","classes","newClasses","className","baseVal","newClass","SVGElement","removeClasses","_typeof","classCallCheck$1","createClass$1","_extends$1","DEFAULT_OPTIONS","openTooltips","Tooltip","_initialiseProps","_isOpen","_classes","content","_tooltipNode","_setContent","classesUpdated","defaultClass","setClasses","getOptions","needPopperUpdate","needRestart","dispose","popperInstance","_isDisposed","_enableDocumentTouch","_setEventListeners","tooltipGenerator","tooltipNode","substr","autoHide","asyncContent","_applyContent","_this2","allowHtml","rootNode","titleNode","innerSelector","loadingClass","loadingContent","asyncResult","catch","innerText","_disposeTimer","updateClasses","_ensureShown","_this3","_create","_findContainer","_append","popperOptions","arrowSelector","_this4","_noLongerOpen","disposeTime","disposeTimeout","_this5","func","_hide","_this6","directEvents","oppositeEvents","hideOnTargetClick","evt","usedByTooltip","_scheduleShow","_scheduleHide","_this7","computedDelay","_scheduleTimer","_show","_this8","_setTooltipNodeEvent","_this9","_dispose","relatedreference","toElement","relatedTarget","evt2","relatedreference2","_onDocumentTouch","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","vclosepopover","isIE$1","initCompat","ua","msie","rv","edge","getInternetExplorerVersion","ResizeObserver","_h","addResizeHandlers","_resizeObject","contentDocument","_w","removeResizeHandlers","onload","beforeDestroy","plugin$2","GlobalVue$1","getDefault","MSStream","openPopovers","Element","Popover","_vm","cssClass","aria-describedby","popoverId","popoverBaseClass","popoverClass","visibility","popoverWrapperClass","popoverInnerClass","handleResize","$_handleResize","popoverArrowClass","openGroup","oldVal","popoverNode","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","_ref$force","skipDelay","$_scheduleShow","$_beingShowed","$_scheduleHide","$_show","$_disposeTimer","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref3","$_restartPopper","$_handleGlobalClose","handleGlobalClose","commonjsGlobal","lodash_merge","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","MAX_SAFE_INTEGER","argsTag","asyncTag","funcTag","genTag","nullTag","objectTag","proxyTag","undefinedTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","safeGet","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","symToStringTag","getNative","nativeIsBuffer","nativeMax","nativeNow","Date","Map","nativeCreate","baseCreate","Hash","ListCache","MapCache","Stack","__data__","size","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","objValue","assocIndexOf","getMapData","pairs","fromRight","baseFor","keysFunc","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","stacked","newValue","isCommon","isTyped","isArrayLike","copyArray","isDeep","copy","cloneBuffer","typedArray","arrayBuffer","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","lastCalled","stamp","remaining","shortOut","other","isLength","baseUnary","assigner","guard","isIterateeCall","installed","GlobalVue","cloneRoute","fullPath","router","moduleName","registerModule","namespaced","currentRoute","mutations","ROUTE_CHANGED","currentPath","isTimeTraveling","storeUnwatch","route","afterEachUnHook","afterEach","commit","unregisterModule","App","beforeMount","getElementById","$store","dataset","App_render","normalizeComponent","scriptExports","functionalTemplate","injectStyles","moduleIdentifier","shadowMode","shadowRoot","originalRender","_withStripped","Component","__file","src_App","isError","View","routerView","$route","_routerViewCache","depth","inactive","_routerRoot","routerViewDepth","registerRouteInstance","instances","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","encode","decode","decodeURIComponent","parseQuery","param","stringifyQuery","val2","trailingSlashRE","createRoute","record","location","redirectedFrom","stringifyQuery$$1","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","_Vue","toTypes","eventTypes","Link","exact","append","exactActiveClass","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","queryIncludes","isIncludedRoute","guardEvent","findAnchor","metaKey","ctrlKey","shiftKey","defaultPrevented","button","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","resolvePath","relative","firstChar","segment","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","group","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","token","attachKeys","flags","sensitive","strict","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","regexpCompileCache","fillParams","routeMsg","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","aliases","aliasRoute","normalizeLocation","_normalized","vue_router_esm_assign","rawPath","parsedPath","hashIndex","queryIndex","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","createMatcher","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoutes","positionStore","setupScroll","replaceState","getStateKey","saveScrollPosition","_key","handleScroll","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","pageXOffset","isValidPosition","normalizePosition","selector","docRect","elRect","getElementPosition","scrollTo","supportsPushState","Time","genKey","toFixed","pushState","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","flatten","History","baseEl","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","guards","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","postEnterCbs","isValid","poll","bindEnterGuard","extractEnterGuards","resolveHooks","afterHooks","HTML5History","History$$1","expectScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","pathname","HashHistory","checkFallback","ensureSlash","setupListeners","supportsScroll","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","setupHashListener","beforeEach","beforeResolve","back","forward","getMatchedComponents","createHref","normalizedTo","vue_router_esm","popoverItem_render","action","icon","longtext","popoverItem_Component","popoverMenu","popoverItem","popoverMenu_render","menu","popoverMenu_Component","components_popoverMenu","navigationItem","ClickOutside","vue_click_outside_default","openedMenu","showMenu","hideMenu","toggleCollapse","vue_esm","opened","cancelEdit","navigationItem_render","icon-loading-small","collapsible","bullet","backgroundColor","iconUrl","isInteger","actions","undo","edit","navigationItem_Component","appNavigation","appNavigation_render","icon-loading","new","data-apps-slide-toggle","appNavigation_Component","components_appNavigation","v_tooltip_esm","userRow","Multiselect","vue_multiselect_min_default","rand","displayName","mailAddress","subadmins","quota","disable","languages","userActions","deleteUser","enableDisableUser","userGroups","userSubAdminsGroups","subAdminsGroups","subadmin","usedQuota","used","userQuota","humanQuota","OC","Util","humanFileSize","quotaOptions","minPasswordLength","getters","getPasswordPolicyMinLength","userLanguage","userLang","lang","language","toggleMenu","generateAvatar","generateUrl","oc_userconfig","avatar","formatGroupsTitle","userid","dispatch","updateDisplayName","updatePassword","updateEmail","createGroup","gid","getGroups","addUserGroup","_this10","removeUserGroup","_this11","selectedGroup","addUserSubAdmin","_this12","removeUserSubAdmin","_this13","setUserQuota","_this14","validateQuota","validQuota","computerFileSize","setUserLanguage","_this15","userRow_render","srcset","submit","autocorrect","autocapitalize","spellcheck","displayname","settings","canChangePassword","minlength","email","tag-placeholder","track-by","isAdmin","auto","showConfig","showLanguages","group-values","group-label","showStoragePath","storageLocation","showUserBackend","showLastLogin","lastLogin","formatDate","relativeModifiedDate","currentUser","userRow_Component","userList_userRow","userList","InfiniteLoading","vue_infinite_loading_default","unlimitedQuota","defaultQuota","scrolled","newUser","Notification","showTemporary","defaultLanguage","setNewUserDefaultGroup","getServerData","filteredUsers","disabledUsers","users","infiniteLoading","localeCompare","subadmingroups","quotaPreset","acc","usersOffset","getUsersOffset","usersLimit","getUsersLimit","commonlanguages","onScroll","infiniteHandler","$state","resetForm","createUser","currentGroup","userList_render","&scroll","sticky","showNewUserForm","close-on-select","$$v","infinite","userList_Component","components_userList","tokenHeaders","requesttoken","sanitize","api","passwordTimeout","promiseTimeout","getElementsByClassName","PasswordConfirmation","requirePasswordConfirmation","waitForpassword","requiresPasswordConfirmation","axios_default","post","put","vue_local_storage_default","Users","orderBy","sortGroups","userCount","selectedQuota","toggleNewUserMenu","newusername","getLocalstorage","localConfig","$localStorage","setLocalStorage","removeGroup","groupid","dialogs","confirm","success","setDefaultQuota","Users_typeof","getUsers","getUserCount","adminGroup","usercount","disabledGroupIndex","disabledGroup","activeGroup","Users_render","checked","$$a","$$el","$$c","$$i","Users_Component","views_Users","applyMixin","vuexInit","devtoolHook","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors$1","addChild","getChild","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","getNamespace","targetModule","newModule","rawChildModule","unregister","Store","vuex_esm_install","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","payload","installModule","resetStoreVM","_devtoolHook","targetState","subscribe","mutation","devtoolPlugin","vuex_esm_prototypeAccessors","genericSubscribe","resetStore","hot","oldVm","$$state","enableStrictMode","_withCommit","rootState","isRoot","parentState","getNestedState","local","noNamespace","_type","_payload","_options","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","rootGetters","registerAction","rawGetter","registerGetter","subscribeAction","preserveState","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","helper","vuex_esm","createNamespacedHelpers","orderGroups","appendUsers","usersObj","setPasswordPolicyMinLength","initGroups","addGroup","groupIndex","groupSearch","_ref4","_ref5","userIndex","addUserData","ocs","_ref6","setUserData","_ref7","humanValue","resetUsers","_ref8","linkToOCS","getUsersFromList","_ref9","getUsersFromGroup","_ref10","oc_capabilities","password_policy","minLength","_ref11","_ref12","_ref13","_ref14","_ref15","addUser","_ref16","_ref17","_ref18","_ref18$enabled","userStatus","_ref19","allowedEmpty","serverData","setServerData","oc","setAppConfig","store_mutations","API_FAILURE","showHtml","vuex_router_sync","main_app","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","regeneratorRuntime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","Context","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootRecord","completion","rval","dispatchException","exception","handle","loc","caught","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","afterLoc","finish","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","unwrapped","return","pushTryEntry","locs","iteratorMethod","TO_STRING_TAG","ArrayValues","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","collections","explicit","Collection","$task","MSIE","time","boundArgs","setInterval","$pad","padEnd","padStart","createProperty","getOwnPropertyDescriptors","getDesc","$values","$includes","trunc","tanh","sinh","log2","log10","LOG10E","$imul","imul","xn","yn","xl","yl","hypot","value1","value2","sum","larg","sqrt","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","cosh","clz32","LOG2E","cbrt","$atanh","atanh","$asinh","asinh","$acosh","acosh","MAX_VALUE","MIN_SAFE_INTEGER","isSafeInteger","_isFinite","$find","forced","SEARCH","$search","regexp","SPLIT","$split","_split","$push","NPCG","separator2","lastLength","output","ignoreCase","multiline","unicode","lastLastIndex","splitLimit","separatorCopy","REPLACE","$replace","searchValue","replaceValue","$match","$endsWith","endsWith","endPosition","$startsWith","startsWith","TO_STRING","$at","codePointAt","fromCharCode","$fromCodePoint","fromCodePoint","callSite","tpl","FProto","nameRE","$getPrototypeOf","$getOwnPropertyDescriptor","$isExtensible","$isSealed","$isFrozen","$preventExtensions","$seal","$freeze","symbols","wksExt","$fails","wksDefine","enumKeys","gOPNExt","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","replacer","$replacer","newPromiseCapability","promiseCapability","macrotask","MutationObserver","WebKitMutationObserver","isNode","flush","domain","exit","standalone","characterData","task","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","$Promise","empty","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","ok","reaction","exited","fail","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","onunhandledrejection","_a","onrejectionhandled","$reject","$resolve","executor","onFulfilled","onRejected","capability","$index","alreadyCalled","race","setProto","propertyKey","existingDescriptor","receiver","ownDesc","deleteProperty","factories","partArgs","construct","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","rApply","fApply","thisArgument","argumentsList","weak","InternalMap","each","$WeakMap","strong","$isView","first","final","viewS","viewT","CancelToken","resolvePromise","throwIfRequested","baseURL","relativeURL","transformData","isCancel","isAbsoluteURL","combineURLs","throwIfCancellationRequested","InterceptorManager","fulfilled","rejected","eject","expires","secure","cookie","toGMTString","charCode","idx","originURL","urlParsingNode","resolveURL","protocol","hostname","requestURL","parsed","ignoreDuplicateOf","line","serializedParams","toISOString","dispatchRequest","Axios","instanceConfig","interceptors","interceptor","readFloatLE","isSlowBuffer","_isBuffer","createInstance","defaultConfig","axios","promises","spread","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","onreadystatechange","attachEvent","scope","Timeout","clearFn","_id","_clearFn","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 109);\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n if (once) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes) {\n if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {\n warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n }\n slotNodes._rendered = true;\n }\n nodes = slotNodes || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () { return resolveSlots(children, parent); };\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = data.scopedSlots || emptyObject;\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/* */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n // Weex specific: invoke recycle-list optimized @render function for\n // extracting cell-slot template.\n // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n /* istanbul ignore if */\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var options = {\n _isComponent: true,\n parent: parent,\n _parentVnode: vnode,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n hooks[key] = componentVNodeHooks[key];\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n // reset _rendered flag on slots for duplicate slot check\n if (process.env.NODE_ENV !== 'production') {\n for (var key in vm.$slots) {\n // $flow-disable-line\n vm.$slots[key]._rendered = false;\n }\n }\n\n if (_parentVnode) {\n vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache, key, this$1.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n}\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n}\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.5.16';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n}\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove () {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n]\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n}\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n}\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\n }\n}\n\n/* */\n\nfunction baseWarn (msg) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\nfunction addAttr (el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value) {\n el.attrsMap[name] = value;\n el.attrsList.push({ name: name, value: value });\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n modifiers\n) {\n (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n el.plain = false;\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn\n) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV !== 'production' && warn &&\n modifiers.prevent && modifiers.passive\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.'\n );\n }\n\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = '~' + name; // mark the event as once\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = '&' + name; // mark the event as passive\n }\n\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (name === 'click') {\n if (modifiers.right) {\n name = 'contextmenu';\n delete modifiers.right;\n } else if (modifiers.middle) {\n name = 'mouseup';\n }\n }\n\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n\n var newHandler = {\n value: value.trim()\n };\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n\n el.plain = false;\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n el,\n name,\n removeFromMap\n) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: (\"\\\"\" + value + \"\\\"\"),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var res = parseModel(value);\n if (res.key === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\n\n\nfunction parseModel (val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index$1 = val.lastIndexOf('.');\n if (index$1 > -1) {\n return {\n exp: val.slice(0, index$1),\n key: '\"' + val.slice(index$1 + 1) + '\"'\n }\n } else {\n return {\n exp: val,\n key: null\n }\n }\n }\n\n str = val;\n index$1 = expressionPos = expressionEndPos = 0;\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (process.env.NODE_ENV !== 'production') {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\"\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (process.env.NODE_ENV !== 'production') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.'\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, 'change',\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\n \"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n if (process.env.NODE_ENV !== 'production') {\n var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value$1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\n binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\n 'because the latter already expands to a value binding internally'\n );\n }\n }\n\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n handler = withMacroTask(handler);\n if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n event,\n handler._withTask || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n}\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.lazy) {\n // inputs with lazy should only be updated when not in focus\n return false\n }\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n}\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def) {\n if (!def) {\n return\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res\n } else if (typeof def === 'string') {\n return autoCssTransition(def)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {}\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n]\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n}\n\nvar platformDirectives = {\n model: directive,\n show: show\n}\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n}\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n}\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n}\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n isChrome\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push(tokenValue = text.slice(lastIndex, index));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push(tokenValue = text.slice(lastIndex));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n }\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (process.env.NODE_ENV !== 'production' && staticClass) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n}\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n}\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n}\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being pased as HTML comment when inlined in page\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n',\n '	': '\\t'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd));\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(lastTag, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n advance(textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n html = '';\n }\n\n if (options.chars && text) {\n options.chars(text);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') { delete args[3]; }\n if (args[4] === '') { delete args[4]; }\n if (args[5] === '') { delete args[5]; }\n }\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (process.env.NODE_ENV !== 'production' &&\n (i > pos || !tagName) &&\n options.warn\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /([^]*?)\\s+(?:in|of)\\s+([^]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n\n\nfunction createASTElement (\n tag,\n attrs,\n parent\n) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: parent,\n children: []\n }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg) {\n if (!warned) {\n warned = true;\n warn$2(msg);\n }\n }\n\n function closeElement (element) {\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n start: function start (tag, attrs, unary) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n process.env.NODE_ENV !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.'\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n // element-scope stuff\n processElement(element, options);\n }\n\n function checkRootConstraints (el) {\n if (process.env.NODE_ENV !== 'production') {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.'\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.'\n );\n }\n }\n }\n\n // tree management\n if (!root) {\n root = element;\n checkRootConstraints(root);\n } else if (!stack.length) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n checkRootConstraints(element);\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\"\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else if (element.slotScope) { // scoped slot\n currentParent.plain = false;\n var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n closeElement(element);\n }\n },\n\n end: function end () {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n closeElement(element);\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (process.env.NODE_ENV !== 'production') {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.'\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && children.length ? ' ' : '';\n if (text) {\n var res;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n children.push({\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n });\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n children.push({\n type: 3,\n text: text\n });\n }\n }\n },\n comment: function comment (text) {\n currentParent.children.push({\n type: 3,\n text: text,\n isComment: true\n });\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processElement (element, options) {\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !element.attrsList.length;\n\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {\n warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n (\"Invalid v-for expression: \" + exp)\n );\n }\n }\n}\n\n\n\nfunction parseFor (exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) { return }\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '');\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n } else {\n res.alias = alias;\n }\n return res\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\"\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\nfunction processSlot (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (process.env.NODE_ENV !== 'production' && el.key) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\"\n );\n }\n } else {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && slotScope) {\n warn$2(\n \"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\",\n true\n );\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {\n warn$2(\n \"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\",\n true\n );\n }\n el.slotScope = slotScope;\n }\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget);\n }\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, isProp;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isProp = false;\n if (modifiers) {\n if (modifiers.prop) {\n isProp = true;\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n genAssignmentCode(value, \"$event\")\n );\n }\n }\n if (isProp || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers, false, warn$2);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, rawName, value, arg, modifiers);\n if (process.env.NODE_ENV !== 'production' && name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(value, delimiters);\n if (res) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n );\n }\n }\n addAttr(el, name, JSON.stringify(value));\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true');\n }\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n process.env.NODE_ENV !== 'production' &&\n map[attrs[i].name] && !isIE && !isEdge\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\"\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\n/**\n * Expand input[v-model] with dyanmic type bindings into v-if-else chains\n * Turn this:\n * <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n * <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n * <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n * <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n\nfunction preTransformNode (el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return\n }\n\n var typeBinding;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\" + (map['v-bind']) + \").type\";\n }\n\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n\n if (hasElse) {\n branch0.else = true;\n } else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n\n return branch0\n }\n }\n}\n\nfunction cloneASTElement (el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$2 = {\n preTransformNode: preTransformNode\n}\n\nvar modules$1 = [\n klass$1,\n style$1,\n model$2\n]\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n}\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nvar keyNames = {\n esc: 'Escape',\n tab: 'Tab',\n enter: 'Enter',\n space: ' ',\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n 'delete': ['Backspace', 'Delete']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative,\n warn\n) {\n var res = isNative ? 'nativeOn:{' : 'on:{';\n for (var name in events) {\n res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, events[name])) + \",\";\n }\n return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n name,\n handler\n) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value\n }\n /* istanbul ignore if */\n return (\"function($event){\" + (handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else if (key === 'exact') {\n var modifiers = (handler.modifiers);\n genModifierCode += genGuard(\n ['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers[keyModifier]; })\n .map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\n .join('||')\n );\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? (\"return \" + (handler.value) + \"($event)\")\n : isFunctionExpression\n ? (\"return (\" + (handler.value) + \")($event)\")\n : handler.value;\n /* istanbul ignore if */\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\n \"_k($event.keyCode,\" +\n (JSON.stringify(key)) + \",\" +\n (JSON.stringify(keyCode)) + \",\" +\n \"$event.key,\" +\n \"\" + (JSON.stringify(keyName)) +\n \")\"\n )\n}\n\n/* */\n\nfunction on (el, dir) {\n if (process.env.NODE_ENV !== 'production' && dir.modifiers) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n}\n\n/* */\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data = el.plain ? undefined : genData$2(el, state);\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n process.env.NODE_ENV !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \"\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (process.env.NODE_ENV !== 'production' &&\n state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false, state.warn)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (process.env.NODE_ENV !== 'production' && (\n el.children.length !== 1 || ast.type !== 1\n )) {\n state.warn('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n slots,\n state\n) {\n return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n return genScopedSlot(key, slots[key], state)\n }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n key,\n el,\n state\n) {\n if (el.for && !el.forProcessed) {\n return genForScopedSlot(key, el, state)\n }\n var fn = \"function(\" + (String(el.slotScope)) + \"){\" +\n \"return \" + (el.tag === 'template'\n ? el.if\n ? ((el.if) + \"?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state)) + \"}\";\n return (\"{key:\" + key + \",fn:\" + fn + \"}\")\n}\n\nfunction genForScopedSlot (\n key,\n el,\n state\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n el.forProcessed = true; // avoid recursion\n return \"_l((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + (genScopedSlot(key, el, state)) +\n '})'\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n return (altGenElement || genElement)(el$1, state)\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n /* istanbul ignore if */\n {\n res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n }\n }\n return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors\n}\n\nfunction checkNode (node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n}\n\nfunction checkEvent (exp, text, errors) {\n var stipped = exp.replace(stripStringRE, '');\n var keywordMatch = stipped.match(unaryOperatorsRE);\n if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n errors.push(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n }\n checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (\n ident,\n type,\n text,\n errors\n) {\n if (typeof ident === 'string') {\n try {\n new Function((\"var \" + ident + \"=_\"));\n } catch (e) {\n errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n }\n }\n}\n\nfunction checkExpression (exp, text, errors) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\"\\n Raw expression: \" + (text.trim())\n );\n } else {\n errors.push(\n \"invalid expression: \" + (e.message) + \" in\\n\\n\" +\n \" \" + exp + \"\\n\\n\" +\n \" Raw expression: \" + (text.trim()) + \"\\n\"\n );\n }\n }\n}\n\n/* */\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = extend({}, options);\n var warn$$1 = options.warn || warn;\n delete options.warn;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn$$1(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (process.env.NODE_ENV !== 'production') {\n if (compiled.errors && compiled.errors.length) {\n warn$$1(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n if (compiled.tips && compiled.tips.length) {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn$$1(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n finalOptions.warn = function (msg, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives || null),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n var compiled = baseCompile(template, finalOptions);\n if (process.env.NODE_ENV !== 'production') {\n errors.push.apply(errors, detectErrors(compiled.ast));\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nvar div;\nfunction getShouldDecode (href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf(' ') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !template) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile end');\n measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue.compile = compileToFunctions;\n\nexport default Vue;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","module.exports = {};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = false;\n","var core = module.exports = { version: '2.5.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\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=66)}([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){t.exports=!n(12)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(10),r=n(43),o=n(31),s=Object.defineProperty;e.f=n(1)?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,n){var i=n(77),r=n(21);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(9),r=n(52),o=n(18),s=n(55),u=n(53),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,y=t&a.P,g=t&a.B,b=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,m=d?r:r[e]||(r[e]={}),_=m.prototype||(m.prototype={});d&&(n=e);for(l in n)c=!h&&b&&void 0!==b[l],f=(c?b:n)[l],p=g&&c?u(f,i):y&&\"function\"==typeof f?u(Function.call,f):f,b&&s(b,l,f,t&a.U),m[l]!=f&&o(m,l,p),y&&_[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){var i=n(3),r=n(15);t.exports=n(1)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(29)(\"wks\"),r=n(16),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){t.exports=function(t){try{return!!t()}catch(t){return!0}}},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(13);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(48),r=n(22);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},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){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){var i=n(109),r=n(110);t.exports=n(35)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(8);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var i=n(0),r=n(11),o=n(74),s=n(6),u=function(t,e,n){var a,l,c,f=t&u.F,p=t&u.G,h=t&u.S,d=t&u.P,v=t&u.B,y=t&u.W,g=p?r:r[e]||(r[e]={}),b=g.prototype,m=p?i:h?i[e]:(i[e]||{}).prototype;p&&(n=e);for(a in n)(l=!f&&m&&void 0!==m[a])&&a in g||(c=l?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:v&&l?o(c,i):y&&m[a]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(c):d&&\"function\"==typeof c?o(Function.call,c):c,d&&((g.virtual||(g.virtual={}))[a]=c,t&u.R&&b&&!b[a]&&s(b,a,c)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(3).f,r=n(2),o=n(7)(\"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(29)(\"keys\"),r=n(16);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(0),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(13);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,n){var i=n(0),r=n(11),o=n(25),s=n(33),u=n(3).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:s.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e,n){var i=n(53),r=n(36),o=n(57),s=n(37),u=n(104);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,y,g=o(e),b=r(g),m=i(u,d,3),_=s(b.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in b)&&(v=b[x],y=m(v,x,g),t))if(n)w[x]=y;else if(y)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){t.exports=!n(8)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(51);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(56),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(111)(\"wks\"),r=n(58),o=n(9).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){\"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,n,i,r){return function(o){return o.map(function(o){var u;if(!o[n])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var a=s(o[n],t,e,r);return a.length?(u={},v()(u,i,o[i]),v()(u,n,a),u):[]})}}var c=n(65),f=n.n(c),p=n(59),h=(n.n(p),n(122)),d=(n.n(h),n(64)),v=n.n(d),y=n(120),g=(n.n(y),n(121)),b=(n.n(g),n(117)),m=(n.n(b),n(123)),_=(n.n(m),n(118)),x=(n.n(_),n(119)),w=(n.n(x),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:\"\",isOpen:!1,prefferedOpenDirection:\"below\",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:\"Select option\"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return i(t)?\"\":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:\"Press enter to create a tag\"},tagPosition:{type:String,default:\"top\"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){this.multiple||this.clearOnSelect||console.warn(\"[Vue-Multiselect warn]: ClearOnSelect and Multiple props can’t be both set to false.\"),!this.multiple&&this.max&&console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||\"\",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(r(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&(\"bottom\"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?\"\":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?\"\":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search=\"\",this.$emit(\"input\",this.multiple?[]:null))},search:function(){this.$emit(\"search-change\",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return w(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return w(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},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 o=n[this.groupValues].filter(r(this.isSelected));this.$emit(\"select\",o,this.id),this.$emit(\"input\",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(t){return t[this.groupValues].every(this.isSelected)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var n=\"object\"===f()(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit(\"remove\",t,this.id),this.multiple){var i=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit(\"input\",i,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.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.prefferedOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.prefferedOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var i=n(59);n.n(i);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--disabled\"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return[this.groupSelect?\"multiselect__option--group\":\"multiselect__option--disabled\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(i)}]},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.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(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){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var i=n(13),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){t.exports=!n(1)&&!n(12)(function(){return 7!=Object.defineProperty(n(42)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){\"use strict\";var i=n(25),r=n(23),o=n(49),s=n(6),u=n(2),a=n(24),l=n(79),c=n(27),f=n(86),p=n(7)(\"iterator\"),h=!([].keys&&\"next\"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,y,g,b){l(n,e,v);var m,_,x,w=function(t){if(!h&&t in P)return P[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+\" Iterator\",O=\"values\"==y,L=!1,P=t.prototype,k=P[p]||P[\"@@iterator\"]||y&&P[y],E=k||w(y),j=y?O?w(\"entries\"):E:void 0,V=\"Array\"==e?P.entries||k:k;if(V&&(x=f(V.call(new t)))!==Object.prototype&&(c(x,S,!0),i||u(x,p)||s(x,p,d)),O&&k&&\"values\"!==k.name&&(L=!0,E=function(){return k.call(this)}),i&&!b||!h&&!L&&P[p]||s(P,p,E),a[e]=E,a[S]=d,y)if(m={values:O?E:w(\"values\"),keys:g?E:w(\"keys\"),entries:j},b)for(_ in m)_ in P||o(P,_,m[_]);else r(r.P+r.F*(h||L),e,m);return m}},function(t,e,n){var i=n(10),r=n(83),o=n(22),s=n(28)(\"IE_PROTO\"),u=function(){},a=function(){var t,e=n(42)(\"iframe\"),i=o.length;for(e.style.display=\"none\",n(76).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),a=t.F;i--;)delete a.prototype[o[i]];return a()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=i(t),n=new u,u.prototype=null,n[s]=t):n=a(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(48),r=n(22).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var i=n(2),r=n(4),o=n(73)(!1),s=n(28)(\"IE_PROTO\");t.exports=function(t,e){var n,u=r(t),a=0,l=[];for(n in u)n!=s&&i(u,n)&&l.push(n);for(;e.length>a;)i(u,n=e[a++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){t.exports=n(6)},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return 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.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var i=n(50);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,n){var i=n(51);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){var i=n(9),r=n(18),o=n(107),s=n(58)(\"src\"),u=Function.toString,a=(\"\"+u).split(\"toString\");n(52).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){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(17);t.exports=function(t){return Object(i(t))}},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(5),r=n(34)(5),o=!0;\"find\"in[]&&Array(1).find(function(){o=!1}),i(i.P+i.F*o,\"Array\",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(99)(\"find\")},function(t,e,n){\"use strict\";function i(t){n(124)}var r=n(67),o=n(126),s=n(125),u=i,a=s(r.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){t.exports=n(68)},function(t,e,n){t.exports=n(69)},function(t,e,n){t.exports=n(70)},function(t,e,n){function i(t,e,n){return e in t?r(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=n(61);t.exports=i},function(t,e,n){function i(t){return(i=\"function\"==typeof s&&\"symbol\"==typeof o?function(t){return typeof t}:function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":typeof t})(t)}function r(e){return\"function\"==typeof s&&\"symbol\"===i(o)?t.exports=r=function(t){return i(t)}:t.exports=r=function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":i(t)},r(e)}var o=n(63),s=n(62);t.exports=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(60),r=n(39),o=n(40);n.d(e,\"Multiselect\",function(){return i.a}),n.d(e,\"multiselectMixin\",function(){return r.a}),n.d(e,\"pointerMixin\",function(){return o.a}),e.default=i.a},function(t,e,n){\"use strict\";var i=n(39),r=n(40);e.a={name:\"vue-multiselect\",mixins:[i.a,r.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:\"\"},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return 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.multiple&&this.value&&this.value.length)return this.isOpen?{width:\"auto\"}:{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.prefferedOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){n(92);var i=n(11).Object;t.exports=function(t,e,n){return i.defineProperty(t,e,n)}},function(t,e,n){n(95),n(93),n(96),n(97),t.exports=n(11).Symbol},function(t,e,n){n(94),n(98),t.exports=n(33).f(\"iterator\")},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(){}},function(t,e,n){var i=n(4),r=n(89),o=n(88);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(71);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,n){var i=n(14),r=n(47),o=n(26);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,u=n(t),a=o.f,l=0;u.length>l;)a.call(t,s=u[l++])&&e.push(s);return e}},function(t,e,n){t.exports=n(0).document&&document.documentElement},function(t,e,n){var i=n(41);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(41);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){\"use strict\";var i=n(45),r=n(15),o=n(27),s={};n(6)(s,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(14),r=n(4);t.exports=function(t,e){for(var n,o=r(t),s=i(o),u=s.length,a=0;u>a;)if(o[n=s[a++]]===e)return n}},function(t,e,n){var i=n(16)(\"meta\"),r=n(13),o=n(2),s=n(3).f,u=0,a=Object.isExtensible||function(){return!0},l=!n(12)(function(){return a(Object.preventExtensions({}))}),c=function(t){s(t,i,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!r(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!o(t,i)){if(!a(t))return\"F\";if(!e)return\"E\";c(t)}return t[i].i},p=function(t,e){if(!o(t,i)){if(!a(t))return!0;if(!e)return!1;c(t)}return t[i].w},h=function(t){return l&&d.NEED&&a(t)&&!o(t,i)&&c(t),t},d=t.exports={KEY:i,NEED:!1,fastKey:f,getWeak:p,onFreeze:h}},function(t,e,n){var i=n(3),r=n(10),o=n(14);t.exports=n(1)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),u=s.length,a=0;u>a;)i.f(t,n=s[a++],e[n]);return t}},function(t,e,n){var i=n(26),r=n(15),o=n(4),s=n(31),u=n(2),a=n(43),l=Object.getOwnPropertyDescriptor;e.f=n(1)?l:function(t,e){if(t=o(t),e=s(e,!0),a)try{return l(t,e)}catch(t){}if(u(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(4),r=n(46).f,o={}.toString,s=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&\"[object Window]\"==o.call(t)?u(t):r(i(t))}},function(t,e,n){var i=n(2),r=n(90),o=n(28)(\"IE_PROTO\"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(30),r=n(21);t.exports=function(t){return function(e,n){var o,s,u=String(r(e)),a=i(n),l=u.length;return a<0||a>=l?t?\"\":void 0:(o=u.charCodeAt(a),o<55296||o>56319||a+1===l||(s=u.charCodeAt(a+1))<56320||s>57343?t?u.charAt(a):o:t?u.slice(a,a+2):s-56320+(o-55296<<10)+65536)}}},function(t,e,n){var i=n(30),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(30),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(21);t.exports=function(t){return Object(i(t))}},function(t,e,n){\"use strict\";var i=n(72),r=n(80),o=n(24),s=n(4);t.exports=n(44)(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){var i=n(23);i(i.S+i.F*!n(1),\"Object\",{defineProperty:n(3).f})},function(t,e){},function(t,e,n){\"use strict\";var i=n(87)(!0);n(44)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var i=n(0),r=n(2),o=n(1),s=n(23),u=n(49),a=n(82).KEY,l=n(12),c=n(29),f=n(27),p=n(16),h=n(7),d=n(33),v=n(32),y=n(81),g=n(75),b=n(78),m=n(10),_=n(4),x=n(31),w=n(15),S=n(45),O=n(85),L=n(84),P=n(3),k=n(14),E=L.f,j=P.f,V=O.f,C=i.Symbol,T=i.JSON,A=T&&T.stringify,$=h(\"_hidden\"),D=h(\"toPrimitive\"),F={}.propertyIsEnumerable,M=c(\"symbol-registry\"),B=c(\"symbols\"),N=c(\"op-symbols\"),R=Object.prototype,H=\"function\"==typeof C,G=i.QObject,I=!G||!G.prototype||!G.prototype.findChild,K=o&&l(function(){return 7!=S(j({},\"a\",{get:function(){return j(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var i=E(R,e);i&&delete R[e],j(t,e,n),i&&t!==R&&j(R,e,i)}:j,z=function(t){var e=B[t]=S(C.prototype);return e._k=t,e},U=H&&\"symbol\"==typeof C.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof C},W=function(t,e,n){return t===R&&W(N,e,n),m(t),e=x(e,!0),m(n),r(B,e)?(n.enumerable?(r(t,$)&&t[$][e]&&(t[$][e]=!1),n=S(n,{enumerable:w(0,!1)})):(r(t,$)||j(t,$,w(1,{})),t[$][e]=!0),K(t,e,n)):j(t,e,n)},J=function(t,e){m(t);for(var n,i=g(e=_(e)),r=0,o=i.length;o>r;)W(t,n=i[r++],e[n]);return t},q=function(t,e){return void 0===e?S(t):J(S(t),e)},X=function(t){var e=F.call(this,t=x(t,!0));return!(this===R&&r(B,t)&&!r(N,t))&&(!(e||!r(this,t)||!r(B,t)||r(this,$)&&this[$][t])||e)},Y=function(t,e){if(t=_(t),e=x(e,!0),t!==R||!r(B,e)||r(N,e)){var n=E(t,e);return!n||!r(B,e)||r(t,$)&&t[$][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=V(_(t)),i=[],o=0;n.length>o;)r(B,e=n[o++])||e==$||e==a||i.push(e);return i},Z=function(t){for(var e,n=t===R,i=V(n?N:_(t)),o=[],s=0;i.length>s;)!r(B,e=i[s++])||n&&!r(R,e)||o.push(B[e]);return o};H||(C=function(){if(this instanceof C)throw TypeError(\"Symbol is not a constructor!\");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(N,n),r(this,$)&&r(this[$],t)&&(this[$][t]=!1),K(this,t,w(1,n))};return o&&I&&K(R,t,{configurable:!0,set:e}),z(t)},u(C.prototype,\"toString\",function(){return this._k}),L.f=Y,P.f=W,n(46).f=O.f=Q,n(26).f=X,n(47).f=Z,o&&!n(25)&&u(R,\"propertyIsEnumerable\",X,!0),d.f=function(t){return z(h(t))}),s(s.G+s.W+s.F*!H,{Symbol:C});for(var tt=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),et=0;tt.length>et;)h(tt[et++]);for(var tt=k(h.store),et=0;tt.length>et;)v(tt[et++]);s(s.S+s.F*!H,\"Symbol\",{for:function(t){return r(M,t+=\"\")?M[t]:M[t]=C(t)},keyFor:function(t){if(U(t))return y(M,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){I=!0},useSimple:function(){I=!1}}),s(s.S+s.F*!H,\"Object\",{create:q,defineProperty:W,defineProperties:J,getOwnPropertyDescriptor:Y,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),T&&s(s.S+s.F*(!H||l(function(){var t=C();return\"[null]\"!=A([t])||\"{}\"!=A({a:t})||\"{}\"!=A(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!U(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!U(e))return e}),i[1]=e,A.apply(T,i)}}}),C.prototype[D]||n(6)(C.prototype,D,C.prototype.valueOf),f(C,\"Symbol\"),f(Math,\"Math\",!0),f(i.JSON,\"JSON\",!0)},function(t,e,n){n(32)(\"asyncIterator\")},function(t,e,n){n(32)(\"observable\")},function(t,e,n){n(91);for(var i=n(0),r=n(6),o=n(24),s=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],a=0;a<5;a++){var l=u[a],c=i[l],f=c&&c.prototype;f&&!f[s]&&r(f,s,l),o[l]=o.Array}},function(t,e,n){var i=n(38)(\"unscopables\"),r=Array.prototype;void 0==r[i]&&n(18)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(19);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var i=n(115),r=n(37),o=n(114);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(50),r=n(57),o=n(36),s=n(37);t.exports=function(t,e,n,u,a){i(e);var l=r(t),c=o(l),f=s(l.length),p=a?f-1:0,h=a?-1:1;if(n<2)for(;;){if(p in c){u=c[p],p+=h;break}if(p+=h,a?p<0:f<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;a?p>=0:f>p;p+=h)p in c&&(u=e(u,c[p],p,l));return u}},function(t,e,n){var i=n(19),r=n(54),o=n(38)(\"species\");t.exports=function(t){var e;return r(t)&&(e=t.constructor,\"function\"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var i=n(103);t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){var i=n(19),r=n(9).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){\"use strict\";var i=n(18),r=n(55),o=n(8),s=n(17),u=n(38);t.exports=function(t,e,n){var a=u(t),l=n(s,a,\"\"[t]),c=l[0],f=l[1];o(function(){var e={};return e[a]=function(){return 7},7!=\"\"[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,a,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(35)&&!n(8)(function(){return 7!=Object.defineProperty(n(105)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(100),r=n(108),o=n(116),s=Object.defineProperty;e.f=n(35)?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,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(9),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e,n){var i=n(5),r=n(17),o=n(8),s=n(113),u=\"[\"+s+\"]\",a=\"
\",l=RegExp(\"^\"+u+u+\"*\"),c=RegExp(u+u+\"*$\"),f=function(t,e,n){var r={},u=o(function(){return!!s[t]()||a[t]()!=a}),l=r[t]=u?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*u,\"String\",r)},p=f.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,\"\")),2&e&&(t=t.replace(c,\"\")),t};t.exports=f},function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\u2028\\u2029\\ufeff\"},function(t,e,n){var i=n(56),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(36),r=n(17);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(19);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,n){\"use strict\";var i=n(5),r=n(34)(2);i(i.P+i.F*!n(20)([].filter,!0),\"Array\",{filter:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(101)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;i(i.P+i.F*(s||!n(20)(o)),\"Array\",{indexOf:function(t){return s?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){var i=n(5);i(i.S,\"Array\",{isArray:n(54)})},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(1);i(i.P+i.F*!n(20)([].map,!0),\"Array\",{map:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(102);i(i.P+i.F*!n(20)([].reduce,!0),\"Array\",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){n(106)(\"search\",1,function(t,e,n){return[function(n){\"use strict\";var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){\"use strict\";n(112)(\"trim\",function(t){return function(){return t(this,3)}})},function(t,e){},function(t,e){t.exports=function(t,e,n,i,r,o){var s,u=t=t||{},a=typeof t.default;\"object\"!==a&&\"function\"!==a||(s=t,u=t.default);var l=\"function\"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):i&&(c=i),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"multiselect\",class:{\"multiselect--active\":t.isOpen,\"multiselect--disabled\":t.disabled,\"multiselect--above\":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return\"button\"in e||!t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||!t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}],keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()}}},[t._t(\"caret\",[n(\"div\",{staticClass:\"multiselect__select\",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(\" \"),t._t(\"clear\",null,{search:t.search}),t._v(\" \"),n(\"div\",{ref:\"tags\",staticClass:\"multiselect__tags\"},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.visibleValues.length>0,expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[t._l(t.visibleValues,function(e){return[t._t(\"tag\",[n(\"span\",{staticClass:\"multiselect__tag\"},[n(\"span\",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(\" \"),n(\"i\",{staticClass:\"multiselect__tag-icon\",attrs:{\"aria-hidden\":\"true\",tabindex:\"1\"},on:{keydown:function(n){if(!(\"button\"in n)&&t._k(n.keyCode,\"enter\",13,n.key,\"Enter\"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(\" \"),t.internalValue&&t.internalValue.length>t.limit?[t._t(\"limit\",[n(\"strong\",{staticClass:\"multiselect__strong\",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e(),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect__loading\"}},[t._t(\"loading\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.loading,expression:\"loading\"}],staticClass:\"multiselect__spinner\"})])],2),t._v(\" \"),n(\"input\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen&&t.searchable,expression:\"isOpen && searchable\"}],ref:\"search\",staticClass:\"multiselect__input\",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:\"text\",autocomplete:\"off\",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()},keydown:[function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\"))return null;e.preventDefault(),t.pointerForward()},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\"))return null;e.preventDefault(),t.pointerBackward()},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\"]))return null;e.stopPropagation(),t.removeLastElement()}]}}),t._v(\" \"),t.isSingleLabelVisible?n(\"span\",{staticClass:\"multiselect__single\",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"singleLabel\",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(\" \"),t.isPlaceholderVisible?n(\"span\",{on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"placeholder\",[n(\"span\",{staticClass:\"multiselect__single\"},[t._v(\"\\n \"+t._s(t.placeholder)+\"\\n \")])])],2):t._e()],2),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect\"}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen,expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:{maxHeight:t.optimizedHeight+\"px\"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n(\"ul\",{staticClass:\"multiselect__content\",style:t.contentStyle},[t._t(\"beforeList\"),t._v(\" \"),t.multiple&&t.max===t.internalValue.length?n(\"li\",[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"maxElements\",[t._v(\"Maximum of \"+t._s(t.max)+\" options selected. First remove a selected option to select another.\")])],2)]):t._e(),t._v(\" \"),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,i){return n(\"li\",{key:i,staticClass:\"multiselect__element\"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n(\"span\",{staticClass:\"multiselect__option\",class:t.optionHighlight(i,e),attrs:{\"data-select\":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,\"data-selected\":t.selectedLabelText,\"data-deselect\":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(i)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(\" \"),e&&(e.$isLabel||e.$isDisabled)?n(\"span\",{staticClass:\"multiselect__option\",class:t.groupHighlight(i,e),attrs:{\"data-select\":t.groupSelect&&t.selectGroupLabelText,\"data-deselect\":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(i)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noResult\",[t._v(\"No elements found. Consider changing the search query.\")])],2)]),t._v(\" \"),t._t(\"afterList\")],2)])])],2)},r=[],o={render:i,staticRenderFns:r};e.a=o}])});","module.exports = require('./lib/axios');","exports.f = {}.propertyIsEnumerable;\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","function validate(binding) {\r\n if (typeof binding.value !== 'function') {\r\n console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.')\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isPopup(popupItem, elements) {\r\n if (!popupItem || !elements)\r\n return false\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n try {\r\n if (popupItem.contains(elements[i])) {\r\n return true\r\n }\r\n if (elements[i].contains(popupItem)) {\r\n return false\r\n }\r\n } catch(e) {\r\n return false\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nfunction isServer(vNode) {\r\n return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer\r\n}\r\n\r\nexports = module.exports = {\r\n bind: function (el, binding, vNode) {\r\n if (!validate(binding)) return\r\n\r\n // Define Handler and cache it on the element\r\n function handler(e) {\r\n if (!vNode.context) return\r\n\r\n // some components may have related popup item, on which we shall prevent the click outside event handler.\r\n var elements = e.path || (e.composedPath && e.composedPath())\r\n elements && elements.length > 0 && elements.unshift(e.target)\r\n \r\n if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return\r\n\r\n el.__vueClickOutside__.callback(e)\r\n }\r\n\r\n // add Event Listeners\r\n el.__vueClickOutside__ = {\r\n handler: handler,\r\n callback: binding.value\r\n }\r\n !isServer(vNode) && document.addEventListener('click', handler)\r\n },\r\n\r\n update: function (el, binding) {\r\n if (validate(binding)) el.__vueClickOutside__.callback = binding.value\r\n },\r\n \r\n unbind: function (el, binding, vNode) {\r\n // Remove Event Listeners\r\n !isServer(vNode) && document.removeEventListener('click', el.__vueClickOutside__.handler)\r\n delete el.__vueClickOutside__\r\n }\r\n}\r\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * vue-local-storage v0.6.0\n * (c) 2017 Alexander Avakov\n * @license MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.VueLocalStorage = factory());\n}(this, (function () { 'use strict';\n\nvar VueLocalStorage = function VueLocalStorage () {\n this._properties = {};\n this._namespace = '';\n this._isSupported = true;\n};\n\nvar prototypeAccessors = { namespace: {} };\n\n/**\n * Namespace getter.\n *\n * @returns {string}\n */\nprototypeAccessors.namespace.get = function () {\n return this._namespace\n};\n\n/**\n * Namespace setter.\n *\n * @param {string} value\n */\nprototypeAccessors.namespace.set = function (value) {\n this._namespace = value ? (value + \".\") : '';\n};\n\n/**\n * Concatenates localStorage key with namespace prefix.\n *\n * @param {string} lsKey\n * @returns {string}\n * @private\n */\nVueLocalStorage.prototype._getLsKey = function _getLsKey (lsKey) {\n return (\"\" + (this._namespace) + lsKey)\n};\n\n/**\n * Set a value to localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @param {*} rawValue\n * @param {*} type\n * @private\n */\nVueLocalStorage.prototype._lsSet = function _lsSet (lsKey, rawValue, type) {\n var key = this._getLsKey(lsKey);\n var value = type && [Array, Object].includes(type)\n ? JSON.stringify(rawValue)\n : rawValue;\n\n window.localStorage.setItem(key, value);\n};\n\n/**\n * Get value from localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @returns {any}\n * @private\n */\nVueLocalStorage.prototype._lsGet = function _lsGet (lsKey) {\n var key = this._getLsKey(lsKey);\n\n return window.localStorage[key]\n};\n\n/**\n * Get value from localStorage\n *\n * @param {String} lsKey\n * @param {*} defaultValue\n * @param {*} defaultType\n * @returns {*}\n */\nVueLocalStorage.prototype.get = function get (lsKey, defaultValue, defaultType) {\n var this$1 = this;\n if ( defaultValue === void 0 ) defaultValue = null;\n if ( defaultType === void 0 ) defaultType = String;\n\n if (!this._isSupported) {\n return null\n }\n\n if (this._lsGet(lsKey)) {\n var type = defaultType;\n\n for (var key in this$1._properties) {\n if (key === lsKey) {\n type = this$1._properties[key].type;\n break\n }\n }\n\n return this._process(type, this._lsGet(lsKey))\n }\n\n return defaultValue !== null ? defaultValue : null\n};\n\n/**\n * Set localStorage value\n *\n * @param {String} lsKey\n * @param {*} value\n * @returns {*}\n */\nVueLocalStorage.prototype.set = function set (lsKey, value) {\n var this$1 = this;\n\n if (!this._isSupported) {\n return null\n }\n\n for (var key in this$1._properties) {\n var type = this$1._properties[key].type;\n\n if ((key === lsKey)) {\n this$1._lsSet(lsKey, value, type);\n\n return value\n }\n }\n\n this._lsSet(lsKey, value);\n\n return value\n};\n\n/**\n * Remove value from localStorage\n *\n * @param {String} lsKey\n */\nVueLocalStorage.prototype.remove = function remove (lsKey) {\n if (!this._isSupported) {\n return null\n }\n\n return window.localStorage.removeItem(lsKey)\n};\n\n/**\n * Add new property to localStorage\n *\n * @param {String} key\n * @param {function} type\n * @param {*} defaultValue\n */\nVueLocalStorage.prototype.addProperty = function addProperty (key, type, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n type = type || String;\n\n this._properties[key] = { type: type };\n\n if (!this._lsGet(key) && defaultValue !== null) {\n this._lsSet(key, defaultValue, type);\n }\n};\n\n/**\n * Process the value before return it from localStorage\n *\n * @param {String} type\n * @param {*} value\n * @returns {*}\n * @private\n */\nVueLocalStorage.prototype._process = function _process (type, value) {\n switch (type) {\n case Boolean:\n return value === 'true'\n case Number:\n return parseFloat(value)\n case Array:\n try {\n var array = JSON.parse(value);\n\n return Array.isArray(array) ? array : []\n } catch (e) {\n return []\n }\n case Object:\n try {\n return JSON.parse(value)\n } catch (e) {\n return {}\n }\n default:\n return value\n }\n};\n\nObject.defineProperties( VueLocalStorage.prototype, prototypeAccessors );\n\nvar vueLocalStorage = new VueLocalStorage();\n\nvar index = {\n /**\n * Install vue-local-storage plugin\n *\n * @param {Vue} Vue\n * @param {Object} options\n */\n install: function (Vue, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof process !== 'undefined' &&\n (\n process.server ||\n process.SERVER_BUILD ||\n (process.env && process.env.VUE_ENV === 'server')\n )\n ) {\n return\n }\n\n var isSupported = true;\n\n try {\n var test = '__vue-localstorage-test__';\n\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n } catch (e) {\n isSupported = false;\n vueLocalStorage._isSupported = false;\n\n console.error('Local storage is not supported');\n }\n\n var name = options.name || 'localStorage';\n var bind = options.bind;\n\n if (options.namespace) {\n vueLocalStorage.namespace = options.namespace;\n }\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n var this$1 = this;\n\n if (!isSupported) {\n return\n }\n\n if (this.$options[name]) {\n Object.keys(this.$options[name]).forEach(function (key) {\n var config = this$1.$options[name][key];\n var ref = [config.type, config.default];\n var type = ref[0];\n var defaultValue = ref[1];\n\n vueLocalStorage.addProperty(key, type, defaultValue);\n\n var existingProp = Object.getOwnPropertyDescriptor(vueLocalStorage, key);\n\n if (!existingProp) {\n var prop = {\n get: function () { return Vue.localStorage.get(key, defaultValue); },\n set: function (val) { return Vue.localStorage.set(key, val); },\n configurable: true\n };\n\n Object.defineProperty(vueLocalStorage, key, prop);\n Vue.util.defineReactive(vueLocalStorage, key, defaultValue);\n } else if (!Vue.config.silent) {\n console.log((key + \": is already defined and will be reused\"));\n }\n\n if ((bind || config.bind) && config.bind !== false) {\n this$1.$options.computed = this$1.$options.computed || {};\n\n if (!this$1.$options.computed[key]) {\n this$1.$options.computed[key] = {\n get: function () { return Vue.localStorage[key]; },\n set: function (val) { Vue.localStorage[key] = val; }\n };\n }\n }\n });\n }\n }\n });\n\n Vue[name] = vueLocalStorage;\n Vue.prototype[(\"$\" + name)] = vueLocalStorage;\n }\n};\n\nreturn index;\n\n})));\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","exports.f = require('./_wks');\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 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\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueInfiniteLoading=t():e.VueInfiniteLoading=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var a=i[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,\"a\",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/\",t(t.s=3)}([function(e,t){function i(e,t){var i=e[1]||\"\",a=e[3];if(!a)return i;if(t&&\"function\"==typeof btoa){var r=n(a);return[i].concat(a.sources.map(function(e){return\"/*# sourceURL=\"+a.sourceRoot+e+\" */\"})).concat([r]).join(\"\\n\")}return[i].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=i(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,i){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},a=0;a<this.length;a++){var r=this[a][0];\"number\"==typeof r&&(n[r]=!0)}for(a=0;a<e.length;a++){var o=e[a];\"number\"==typeof o[0]&&n[o[0]]||(i&&!o[2]?o[2]=i:i&&(o[2]=\"(\"+o[2]+\") and (\"+i+\")\"),t.push(o))}},t}},function(e,t,i){function n(e){for(var t=0;t<e.length;t++){var i=e[t],n=f[i.id];if(n){n.refs++;for(var a=0;a<n.parts.length;a++)n.parts[a](i.parts[a]);for(;a<i.parts.length;a++)n.parts.push(r(i.parts[a]));n.parts.length>i.parts.length&&(n.parts.length=i.parts.length)}else{for(var o=[],a=0;a<i.parts.length;a++)o.push(r(i.parts[a]));f[i.id]={id:i.id,refs:1,parts:o}}}}function a(){var e=document.createElement(\"style\");return e.type=\"text/css\",c.appendChild(e),e}function r(e){var t,i,n=document.querySelector('style[data-vue-ssr-id~=\"'+e.id+'\"]');if(n){if(m)return h;n.parentNode.removeChild(n)}if(b){var r=p++;n=u||(u=a()),t=o.bind(null,n,r,!1),i=o.bind(null,n,r,!0)}else n=a(),t=s.bind(null,n),i=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}function o(e,t,i,n){var a=i?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=g(t,a);else{var r=document.createTextNode(a),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(r,o[t]):e.appendChild(r)}}function s(e,t){var i=t.css,n=t.media,a=t.sourceMap;if(n&&e.setAttribute(\"media\",n),a&&(i+=\"\\n/*# sourceURL=\"+a.sources[0]+\" */\",i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}var l=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!l)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var d=i(7),f={},c=l&&(document.head||document.getElementsByTagName(\"head\")[0]),u=null,p=0,m=!1,h=function(){},b=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,i){m=i;var a=d(e,t);return n(a),function(t){for(var i=[],r=0;r<a.length;r++){var o=a[r],s=f[o.id];s.refs--,i.push(s)}t?(a=d(e,t),n(a)):a=[];for(var r=0;r<i.length;r++){var s=i[r];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete f[s.id]}}}};var g=function(){var e=[];return function(t,i){return e[t]=i,e.filter(Boolean).join(\"\\n\")}}()},function(e,t){e.exports=function(e,t,i,n,a,r){var o,s=e=e||{},l=typeof e.default;\"object\"!==l&&\"function\"!==l||(o=e,s=e.default);var d=\"function\"==typeof s?s.options:s;t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0),i&&(d.functional=!0),a&&(d._scopeId=a);var f;if(r?(f=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=f):n&&(f=n),f){var c=d.functional,u=c?d.render:d.beforeCreate;c?(d._injectStyles=f,d.render=function(e,t){return f.call(t),u(e,t)}):d.beforeCreate=u?[].concat(u,f):[f]}return{esModule:o,exports:s,options:d}}},function(e,t,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=i(4);t.default=n.a,\"undefined\"!=typeof window&&window.Vue&&window.Vue.component(\"infinite-loading\",n.a)},function(e,t,i){\"use strict\";function n(e){i(5)}var a=i(8),r=i(14),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-fb2c869e\",null);t.a=l.exports},function(e,t,i){var n=i(6);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"2249d7a7\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,\".infinite-loading-container[data-v-fb2c869e]{clear:both;text-align:center}.infinite-loading-container[data-v-fb2c869e] [class^=loading-]{display:inline-block;margin:15px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.infinite-status-prompt[data-v-fb2c869e]{color:#666;font-size:14px;text-align:center;padding:10px 0}\",\"\"])},function(e,t){e.exports=function(e,t){for(var i=[],n={},a=0;a<t.length;a++){var r=t[a],o=r[0],s=r[1],l=r[2],d=r[3],f={id:e+\":\"+a,css:s,media:l,sourceMap:d};n[o]?n[o].parts.push(f):i.push(n[o]={id:o,parts:[f]})}return i}},function(e,t,i){\"use strict\";var n=i(9),a={STATE_CHANGER:[\"[Vue-infinite-loading warn]: emit `loaded` and `complete` event through component instance of `$refs` may cause error, so it will be deprecated soon, please use the `$state` argument instead (`$state` just the special `$event` variable):\",\"\\ntemplate:\",'<infinite-loading @infinite=\"infiniteHandler\"></infinite-loading>',\"\\nscript:\\n...\\ninfiniteHandler($state) {\\n ajax('https://www.example.com/api/news')\\n .then((res) => {\\n if (res.data.length) {\\n $state.loaded();\\n } else {\\n $state.complete();\\n }\\n });\\n}\\n...\",\"\",\"more details: https://github.com/PeachScript/vue-infinite-loading/issues/57#issuecomment-324370549\"].join(\"\\n\"),INFINITE_EVENT:\"[Vue-infinite-loading warn]: `:on-infinite` property will be deprecated soon, please use `@infinite` event instead.\"},r={INFINITE_LOOP:[\"[Vue-infinite-loading error]: executed the callback function more than 10 times for a short time, it looks like searched a wrong scroll wrapper that doest not has fixed height or maximum height, please check it. If you want to force to set a element as scroll wrapper ranther than automatic searching, you can do this:\",'\\n\\x3c!-- add a special attribute for the real scroll wrapper --\\x3e\\n<div infinite-wrapper>\\n ...\\n \\x3c!-- set force-use-infinite-wrapper to true --\\x3e\\n <infinite-loading force-use-infinite-wrapper=\"true\"></infinite-loading>\\n</div>\\n ',\"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169\"].join(\"\\n\")};t.a={name:\"InfiniteLoading\",data:function(){return{scrollParent:null,scrollHandler:null,isLoading:!1,isComplete:!1,isFirstLoad:!0,debounceTimer:null,debounceDuration:50,infiniteLoopChecked:!1,infiniteLoopTimer:null,continuousCallTimes:0}},components:{Spinner:n.a},computed:{isNoResults:{cache:!1,get:function(){var e=this.$slots[\"no-results\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&this.isFirstLoad&&!t}},isNoMore:{cache:!1,get:function(){var e=this.$slots[\"no-more\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&!this.isFirstLoad&&!t}}},props:{distance:{type:Number,default:100},onInfinite:Function,spinner:String,direction:{type:String,default:\"bottom\"},forceUseInfiniteWrapper:null},mounted:function(){var e=this;this.scrollParent=this.getScrollParent(),this.scrollHandler=function(e){this.isLoading||(clearTimeout(this.debounceTimer),e&&e.constructor===Event?this.debounceTimer=setTimeout(this.attemptLoad,this.debounceDuration):this.attemptLoad())}.bind(this),setTimeout(this.scrollHandler,1),this.scrollParent.addEventListener(\"scroll\",this.scrollHandler),this.$on(\"$InfiniteLoading:loaded\",function(t){e.isFirstLoad=!1,e.isLoading&&e.$nextTick(e.attemptLoad.bind(null,!0)),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:complete\",function(t){e.isLoading=!1,e.isComplete=!0,e.$nextTick(function(){e.$forceUpdate()}),e.scrollParent.removeEventListener(\"scroll\",e.scrollHandler),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:reset\",function(){e.isLoading=!1,e.isComplete=!1,e.isFirstLoad=!0,e.scrollParent.addEventListener(\"scroll\",e.scrollHandler),setTimeout(e.scrollHandler,1)}),this.onInfinite&&console.warn(a.INFINITE_EVENT),this.stateChanger={loaded:function(){e.$emit(\"$InfiniteLoading:loaded\",{target:e})},complete:function(){e.$emit(\"$InfiniteLoading:complete\",{target:e})},reset:function(){e.$emit(\"$InfiniteLoading:reset\",{target:e})}},this.$watch(\"forceUseInfiniteWrapper\",function(){e.scrollParent=e.getScrollParent()})},deactivated:function(){this.isLoading=!1,this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)},activated:function(){this.scrollParent.addEventListener(\"scroll\",this.scrollHandler)},methods:{attemptLoad:function(e){var t=this,i=this.getCurrentDistance();!this.isComplete&&i<=this.distance&&this.$el.offsetWidth+this.$el.offsetHeight>0?(this.isLoading=!0,\"function\"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit(\"infinite\",this.stateChanger),!e||this.forceUseInfiniteWrapper||this.infiniteLoopChecked||(this.continuousCallTimes+=1,clearTimeout(this.infiniteLoopTimer),this.infiniteLoopTimer=setTimeout(function(){t.infiniteLoopChecked=!0},1e3),this.continuousCallTimes>10&&(console.error(r.INFINITE_LOOP),this.infiniteLoopChecked=!0))):this.isLoading=!1},getCurrentDistance:function(){var e=void 0;if(\"top\"===this.direction)e=isNaN(this.scrollParent.scrollTop)?this.scrollParent.pageYOffset:this.scrollParent.scrollTop;else{e=this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom)}return e},getScrollParent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el,t=void 0;return\"BODY\"===e.tagName?t=window:!this.forceUseInfiniteWrapper&&[\"scroll\",\"auto\"].indexOf(getComputedStyle(e).overflowY)>-1?t=e:(e.hasAttribute(\"infinite-wrapper\")||e.hasAttribute(\"data-infinite-wrapper\"))&&(t=e),t||this.getScrollParent(e.parentNode)}},destroyed:function(){this.isComplete||this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)}}},function(e,t,i){\"use strict\";function n(e){i(10)}var a=i(12),r=i(13),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-6e1fd88f\",null);t.a=l.exports},function(e,t,i){var n=i(11);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"29881045\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,'.loading-wave-dots[data-v-6e1fd88f]{position:relative}.loading-wave-dots[data-v-6e1fd88f] .wave-item{position:absolute;top:50%;left:50%;display:inline-block;margin-top:-4px;width:8px;height:8px;border-radius:50%;-webkit-animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite;animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite}.loading-wave-dots[data-v-6e1fd88f] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-6e1fd88f{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}@keyframes loading-wave-dots-data-v-6e1fd88f{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}.loading-circles[data-v-6e1fd88f] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-6e1fd88f linear .75s infinite;animation:loading-circles-data-v-6e1fd88f linear .75s infinite}.loading-circles[data-v-6e1fd88f] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-6e1fd88f] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-6e1fd88f] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite;animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite}.loading-bubbles[data-v-6e1fd88f] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-6e1fd88f{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}@keyframes loading-bubbles-data-v-6e1fd88f{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}.loading-default[data-v-6e1fd88f]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite;animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite}.loading-default[data-v-6e1fd88f]:before{content:\"\";position:absolute;display:block;top:0;left:50%;margin-top:-3px;margin-left:-3px;width:6px;height:6px;background-color:#999;border-radius:50%}.loading-spiral[data-v-6e1fd88f]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-6e1fd88f linear .85s infinite;animation:loading-rotating-data-v-6e1fd88f linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-6e1fd88f],.loading-circles[data-v-6e1fd88f]{position:relative}.loading-bubbles[data-v-6e1fd88f] .bubble-item,.loading-circles[data-v-6e1fd88f] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child,.loading-circles[data-v-6e1fd88f] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',\"\"])},function(e,t,i){\"use strict\";var n={BUBBLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-bubbles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"bubble-item\"}})}))}},CIRCLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-circles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"circle-item\"}})}))}},DEFAULT:{render:function(e){return e(\"i\",{attrs:{class:\"loading-default\"}})}},SPIRAL:{render:function(e){return e(\"i\",{attrs:{class:\"loading-spiral\"}})}},WAVEDOTS:{render:function(e){return e(\"span\",{attrs:{class:\"loading-wave-dots\"}},Array.apply(Array,Array(5)).map(function(){return e(\"span\",{attrs:{class:\"wave-item\"}})}))}}};t.a={name:\"spinner\",computed:{spinnerView:function(){return n[(this.spinner||\"\").toUpperCase()]||n.DEFAULT}},props:{spinner:String}}},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement;return(e._self._c||t)(e.spinnerView,{tag:\"component\"})},a=[],r={render:n,staticRenderFns:a};t.a=r},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"infinite-loading-container\"},[i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isLoading,expression:\"isLoading\"}]},[e._t(\"spinner\",[i(\"spinner\",{attrs:{spinner:e.spinner}})])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoResults,expression:\"isNoResults\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-results\",[e._v(\"No results :(\")])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoMore,expression:\"isNoMore\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-more\",[e._v(\"No more data :)\")])],2)])},a=[],r={render:n,staticRenderFns:a};t.a=r}])});","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\nif (typeof window !== 'undefined') {\n\tSVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n\tif (typeof value === 'string') {\n\t\tvalue = value.split(' ');\n\t}\n\treturn value;\n}\n\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\nfunction addClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = convertToArray(el.className.baseVal);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tif (classList.indexOf(newClass) === -1) {\n\t\t\tclassList.push(newClass);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\nfunction removeClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = convertToArray(el.className.baseVal);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tvar index = classList.indexOf(newClass);\n\t\tif (index !== -1) {\n\t\t\tclassList.splice(index, 1);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n\tsupportsPassive = false;\n\ttry {\n\t\tvar opts = Object.defineProperty({}, 'passive', {\n\t\t\tget: function get() {\n\t\t\t\tsupportsPassive = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('test', null, opts);\n\t} catch (e) {}\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck$1 = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass$1 = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/* Forked from https://github.com/FezVrasta/popper.js/blob/master/packages/tooltip/src/index.js */\n\nvar DEFAULT_OPTIONS = {\n\tcontainer: false,\n\tdelay: 0,\n\thtml: false,\n\tplacement: 'top',\n\ttitle: '',\n\ttemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\ttrigger: 'hover focus',\n\toffset: 0\n};\n\nvar openTooltips = [];\n\nvar Tooltip = function () {\n\t/**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n *\t\t\tPlacement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n *\t\t\tleft(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n *\t\t\tDelay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n *\t\t\tIf a number is supplied, delay is applied to both hide/show.\n *\t\t\tObject structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n *\t\t\tBase HTML to used when creating the tooltip.\n *\t\t\tThe tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n *\t\t\t`.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n *\t\t\tThe outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n *\t\t\tHow tooltip is triggered - click, hover, focus, manual.\n *\t\t\tYou may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n *\t\t\tThe element used as boundaries for the tooltip. For more information refer to Popper.js'\n *\t\t\t[boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n *\t\t\t[offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n *\t\t\t[options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n\tfunction Tooltip(reference, options) {\n\t\tclassCallCheck$1(this, Tooltip);\n\n\t\t_initialiseProps.call(this);\n\n\t\t// apply user options over default ones\n\t\toptions = _extends$1({}, DEFAULT_OPTIONS, options);\n\n\t\treference.jquery && (reference = reference[0]);\n\n\t\t// cache reference and options\n\t\tthis.reference = reference;\n\t\tthis.options = options;\n\n\t\t// set initial state\n\t\tthis._isOpen = false;\n\n\t\tthis._init();\n\t}\n\n\t//\n\t// Public methods\n\t//\n\n\t/**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n\n\t/**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n\n\tcreateClass$1(Tooltip, [{\n\t\tkey: 'setClasses',\n\t\tvalue: function setClasses(classes) {\n\t\t\tthis._classes = classes;\n\t\t}\n\t}, {\n\t\tkey: 'setContent',\n\t\tvalue: function setContent(content) {\n\t\t\tthis.options.title = content;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._setContent(content, this.options);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'setOptions',\n\t\tvalue: function setOptions(options) {\n\t\t\tvar classesUpdated = false;\n\t\t\tvar classes = options && options.classes || directive.options.defaultClass;\n\t\t\tif (this._classes !== classes) {\n\t\t\t\tthis.setClasses(classes);\n\t\t\t\tclassesUpdated = true;\n\t\t\t}\n\n\t\t\toptions = getOptions(options);\n\n\t\t\tvar needPopperUpdate = false;\n\t\t\tvar needRestart = false;\n\n\t\t\tif (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n\t\t\t\tneedPopperUpdate = true;\n\t\t\t}\n\n\t\t\tif (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n\t\t\t\tneedRestart = true;\n\t\t\t}\n\n\t\t\tfor (var key in options) {\n\t\t\t\tthis.options[key] = options[key];\n\t\t\t}\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tif (needRestart) {\n\t\t\t\t\tvar isOpen = this._isOpen;\n\n\t\t\t\t\tthis.dispose();\n\t\t\t\t\tthis._init();\n\n\t\t\t\t\tif (isOpen) {\n\t\t\t\t\t\tthis.show();\n\t\t\t\t\t}\n\t\t\t\t} else if (needPopperUpdate) {\n\t\t\t\t\tthis.popperInstance.update();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\t// Private methods\n\t\t//\n\n\t}, {\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\t// get events list\n\t\t\tvar events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\t\t\tthis._isDisposed = false;\n\t\t\tthis._enableDocumentTouch = events.indexOf('manual') === -1;\n\n\t\t\t// set event listeners\n\t\t\tthis._setEventListeners(this.reference, events, this.options);\n\t\t}\n\n\t\t/**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n\t}, {\n\t\tkey: '_create',\n\t\tvalue: function _create(reference, template) {\n\t\t\t// create tooltip element\n\t\t\tvar tooltipGenerator = window.document.createElement('div');\n\t\t\ttooltipGenerator.innerHTML = template.trim();\n\t\t\tvar tooltipNode = tooltipGenerator.childNodes[0];\n\n\t\t\t// add unique ID to our tooltip (needed for accessibility reasons)\n\t\t\ttooltipNode.id = 'tooltip_' + Math.random().toString(36).substr(2, 10);\n\n\t\t\t// Initially hide the tooltip\n\t\t\t// The attribute will be switched in a next frame so\n\t\t\t// CSS transitions can play\n\t\t\ttooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tif (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n\t\t\t\ttooltipNode.addEventListener('mouseenter', this.hide);\n\t\t\t\ttooltipNode.addEventListener('click', this.hide);\n\t\t\t}\n\n\t\t\t// return the generated tooltip node\n\t\t\treturn tooltipNode;\n\t\t}\n\t}, {\n\t\tkey: '_setContent',\n\t\tvalue: function _setContent(content, options) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.asyncContent = false;\n\t\t\tthis._applyContent(content, options).then(function () {\n\t\t\t\t_this.popperInstance.update();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_applyContent',\n\t\tvalue: function _applyContent(title, options) {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar allowHtml = options.html;\n\t\t\t\tvar rootNode = _this2._tooltipNode;\n\t\t\t\tvar titleNode = rootNode.querySelector(_this2.options.innerSelector);\n\t\t\t\tif (title.nodeType === 1) {\n\t\t\t\t\t// if title is a node, append it only if allowHtml is true\n\t\t\t\t\tif (allowHtml) {\n\t\t\t\t\t\twhile (titleNode.firstChild) {\n\t\t\t\t\t\t\ttitleNode.removeChild(titleNode.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitleNode.appendChild(title);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof title === 'function') {\n\t\t\t\t\t// if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tvar result = title();\n\t\t\t\t\tif (result && typeof result.then === 'function') {\n\t\t\t\t\t\t_this2.asyncContent = true;\n\t\t\t\t\t\toptions.loadingClass && addClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\tif (options.loadingContent) {\n\t\t\t\t\t\t\t_this2._applyContent(options.loadingContent, options);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult.then(function (asyncResult) {\n\t\t\t\t\t\t\toptions.loadingClass && removeClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\t\treturn _this2._applyContent(asyncResult, options);\n\t\t\t\t\t\t}).then(resolve).catch(reject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this2._applyContent(result, options).then(resolve).catch(reject);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\t// if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tallowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n\t\t\t\t}\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_show',\n\t\tvalue: function _show(reference, options) {\n\t\t\tif (options && typeof options.container === 'string') {\n\t\t\t\tvar container = document.querySelector(options.container);\n\t\t\t\tif (!container) return;\n\t\t\t}\n\n\t\t\tclearTimeout(this._disposeTimer);\n\n\t\t\toptions = Object.assign({}, options);\n\t\t\tdelete options.offset;\n\n\t\t\tvar updateClasses = true;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t\tupdateClasses = false;\n\t\t\t}\n\n\t\t\tvar result = this._ensureShown(reference, options);\n\n\t\t\tif (updateClasses && this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t}\n\n\t\t\taddClasses(reference, ['v-tooltip-open']);\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: '_ensureShown',\n\t\tvalue: function _ensureShown(reference, options) {\n\t\t\tvar _this3 = this;\n\n\t\t\t// don't show if it's already visible\n\t\t\tif (this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis._isOpen = true;\n\n\t\t\topenTooltips.push(this);\n\n\t\t\t// if the tooltipNode already exists, just show it\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._tooltipNode.style.display = '';\n\t\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t\tif (this.asyncContent) {\n\t\t\t\t\tthis._setContent(options.title, options);\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// get title\n\t\t\tvar title = reference.getAttribute('title') || options.title;\n\n\t\t\t// don't show tooltip if no title is defined\n\t\t\tif (!title) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// create tooltip node\n\t\t\tvar tooltipNode = this._create(reference, options.template);\n\t\t\tthis._tooltipNode = tooltipNode;\n\n\t\t\tthis._setContent(title, options);\n\n\t\t\t// Add `aria-describedby` to our reference element for accessibility reasons\n\t\t\treference.setAttribute('aria-describedby', tooltipNode.id);\n\n\t\t\t// append tooltip to container\n\t\t\tvar container = this._findContainer(options.container, reference);\n\n\t\t\tthis._append(tooltipNode, container);\n\n\t\t\tvar popperOptions = _extends$1({}, options.popperOptions, {\n\t\t\t\tplacement: options.placement\n\t\t\t});\n\n\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\tarrow: {\n\t\t\t\t\telement: this.options.arrowSelector\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (options.boundariesElement) {\n\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\tboundariesElement: options.boundariesElement\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n\t\t\t// Fix position\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\tif (!_this3._isDisposed && _this3.popperInstance) {\n\t\t\t\t\t_this3.popperInstance.update();\n\n\t\t\t\t\t// Show the tooltip\n\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\tif (!_this3._isDisposed) {\n\t\t\t\t\t\t\t_this3._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t_this3.dispose();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_noLongerOpen',\n\t\tvalue: function _noLongerOpen() {\n\t\t\tvar index = openTooltips.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenTooltips.splice(index, 1);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_hide',\n\t\tvalue: function _hide() /* reference, options */{\n\t\t\tvar _this4 = this;\n\n\t\t\t// don't hide if it's already hidden\n\t\t\tif (!this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tthis._isOpen = false;\n\t\t\tthis._noLongerOpen();\n\n\t\t\t// hide tooltipNode\n\t\t\tthis._tooltipNode.style.display = 'none';\n\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tthis.popperInstance.disableEventListeners();\n\n\t\t\tclearTimeout(this._disposeTimer);\n\t\t\tvar disposeTime = directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis._disposeTimer = setTimeout(function () {\n\t\t\t\t\tif (_this4._tooltipNode) {\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('mouseenter', _this4.hide);\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('click', _this4.hide);\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\t_this4._tooltipNode.parentNode.removeChild(_this4._tooltipNode);\n\t\t\t\t\t\t_this4._tooltipNode = null;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\n\t\t\tremoveClasses(this.reference, ['v-tooltip-open']);\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_dispose',\n\t\tvalue: function _dispose() {\n\t\t\tvar _this5 = this;\n\n\t\t\tthis._isDisposed = true;\n\n\t\t\t// remove event listeners first to prevent any unexpected behaviour\n\t\t\tthis._events.forEach(function (_ref) {\n\t\t\t\tvar func = _ref.func,\n\t\t\t\t event = _ref.event;\n\n\t\t\t\t_this5.reference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis._events = [];\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._hide();\n\n\t\t\t\tthis._tooltipNode.removeEventListener('mouseenter', this.hide);\n\t\t\t\tthis._tooltipNode.removeEventListener('click', this.hide);\n\n\t\t\t\t// destroy instance\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tthis._tooltipNode.parentNode.removeChild(this._tooltipNode);\n\t\t\t\t\tthis._tooltipNode = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._noLongerOpen();\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_findContainer',\n\t\tvalue: function _findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t}\n\n\t\t/**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n\t}, {\n\t\tkey: '_append',\n\t\tvalue: function _append(tooltipNode, container) {\n\t\t\tcontainer.appendChild(tooltipNode);\n\t\t}\n\t}, {\n\t\tkey: '_setEventListeners',\n\t\tvalue: function _setEventListeners(reference, events, options) {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tif (_this6.options.hideOnTargetClick) oppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tif (_this6.options.hideOnTargetClick) oppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (_this6._isOpen === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevt.usedByTooltip = true;\n\t\t\t\t\t_this6._scheduleShow(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (evt.usedByTooltip === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this6._scheduleHide(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_onDocumentTouch',\n\t\tvalue: function _onDocumentTouch(event) {\n\t\t\tif (this._enableDocumentTouch) {\n\t\t\t\tthis._scheduleHide(this.reference, this.options.delay, this.options, event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_scheduleShow',\n\t\tvalue: function _scheduleShow(reference, delay, options /*, evt */) {\n\t\t\tvar _this7 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.show || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\treturn _this7._show(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}, {\n\t\tkey: '_scheduleHide',\n\t\tvalue: function _scheduleHide(reference, delay, options, evt) {\n\t\t\tvar _this8 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.hide || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\tif (_this8._isOpen === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!document.body.contains(_this8._tooltipNode)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\tif (evt.type === 'mouseleave') {\n\t\t\t\t\tvar isSet = _this8._setTooltipNodeEvent(evt, reference, delay, options);\n\n\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_this8._hide(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}]);\n\treturn Tooltip;\n}();\n\n// Hide tooltips on touch devices\n\n\nvar _initialiseProps = function _initialiseProps() {\n\tvar _this9 = this;\n\n\tthis.show = function () {\n\t\t_this9._show(_this9.reference, _this9.options);\n\t};\n\n\tthis.hide = function () {\n\t\t_this9._hide();\n\t};\n\n\tthis.dispose = function () {\n\t\t_this9._dispose();\n\t};\n\n\tthis.toggle = function () {\n\t\tif (_this9._isOpen) {\n\t\t\treturn _this9.hide();\n\t\t} else {\n\t\t\treturn _this9.show();\n\t\t}\n\t};\n\n\tthis._events = [];\n\n\tthis._setTooltipNodeEvent = function (evt, reference, delay, options) {\n\t\tvar relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n\t\tvar callback = function callback(evt2) {\n\t\t\tvar relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget;\n\n\t\t\t// Remove event listener after call\n\t\t\t_this9._tooltipNode.removeEventListener(evt.type, callback);\n\n\t\t\t// If the new reference is not the reference element\n\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t_this9._scheduleHide(reference, options.delay, options, evt2);\n\t\t\t}\n\t\t};\n\n\t\tif (_this9._tooltipNode.contains(relatedreference)) {\n\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t_this9._tooltipNode.addEventListener(evt.type, callback);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n};\n\nif (typeof document !== 'undefined') {\n\tdocument.addEventListener('touchstart', function (event) {\n\t\tfor (var i = 0; i < openTooltips.length; i++) {\n\t\t\topenTooltips[i]._onDocumentTouch(event);\n\t\t}\n\t}, supportsPassive ? {\n\t\tpassive: true,\n\t\tcapture: true\n\t} : true);\n}\n\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar state = {\n\tenabled: true\n};\n\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\n\nvar defaultOptions = {\n\t// Default tooltip placement relative to target element\n\tdefaultPlacement: 'top',\n\t// Default CSS classes applied to the tooltip element\n\tdefaultClass: 'vue-tooltip-theme',\n\t// Default CSS classes applied to the target element of the tooltip\n\tdefaultTargetClass: 'has-tooltip',\n\t// Is the content HTML by default?\n\tdefaultHtml: true,\n\t// Default HTML template of the tooltip element\n\t// It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n\t// Change if the classes conflict with other libraries (for example bootstrap)\n\tdefaultTemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\t// Selector used to get the arrow element in the tooltip template\n\tdefaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n\t// Selector used to get the inner content element in the tooltip template\n\tdefaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n\t// Delay (ms)\n\tdefaultDelay: 0,\n\t// Default events that trigger the tooltip\n\tdefaultTrigger: 'hover focus',\n\t// Default position offset (px)\n\tdefaultOffset: 0,\n\t// Default container where the tooltip will be appended\n\tdefaultContainer: 'body',\n\tdefaultBoundariesElement: undefined,\n\tdefaultPopperOptions: {},\n\t// Class added when content is loading\n\tdefaultLoadingClass: 'tooltip-loading',\n\t// Displayed when tooltip content is loading\n\tdefaultLoadingContent: '...',\n\t// Hide on mouseover tooltip\n\tautoHide: true,\n\t// Close tooltip on click on tooltip target?\n\tdefaultHideOnTargetClick: true,\n\t// Auto destroy tooltip DOM nodes (ms)\n\tdisposeTimeout: 5000,\n\t// Options for popover\n\tpopover: {\n\t\tdefaultPlacement: 'bottom',\n\t\t// Use the `popoverClass` prop for theming\n\t\tdefaultClass: 'vue-popover-theme',\n\t\t// Base class (change if conflicts with other libraries)\n\t\tdefaultBaseClass: 'tooltip popover',\n\t\t// Wrapper class (contains arrow and inner)\n\t\tdefaultWrapperClass: 'wrapper',\n\t\t// Inner content class\n\t\tdefaultInnerClass: 'tooltip-inner popover-inner',\n\t\t// Arrow class\n\t\tdefaultArrowClass: 'tooltip-arrow popover-arrow',\n\t\tdefaultDelay: 0,\n\t\tdefaultTrigger: 'click',\n\t\tdefaultOffset: 0,\n\t\tdefaultContainer: 'body',\n\t\tdefaultBoundariesElement: undefined,\n\t\tdefaultPopperOptions: {},\n\t\t// Hides if clicked outside of popover\n\t\tdefaultAutoHide: true,\n\t\t// Update popper on content resize\n\t\tdefaultHandleResize: true\n\t}\n};\n\nfunction getOptions(options) {\n\tvar result = {\n\t\tplacement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n\t\tdelay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n\t\thtml: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n\t\ttemplate: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n\t\tarrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n\t\tinnerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n\t\ttrigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n\t\toffset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n\t\tcontainer: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n\t\tboundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n\t\tautoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n\t\thideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n\t\tloadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n\t\tloadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n\t\tpopperOptions: _extends$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n\t};\n\n\tif (result.offset) {\n\t\tvar typeofOffset = _typeof(result.offset);\n\t\tvar offset = result.offset;\n\n\t\t// One value -> switch\n\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\toffset = '0, ' + offset;\n\t\t}\n\n\t\tif (!result.popperOptions.modifiers) {\n\t\t\tresult.popperOptions.modifiers = {};\n\t\t}\n\t\tresult.popperOptions.modifiers.offset = {\n\t\t\toffset: offset\n\t\t};\n\t}\n\n\treturn result;\n}\n\nfunction getPlacement(value, modifiers) {\n\tvar placement = value.placement;\n\tfor (var i = 0; i < positions.length; i++) {\n\t\tvar pos = positions[i];\n\t\tif (modifiers[pos]) {\n\t\t\tplacement = pos;\n\t\t}\n\t}\n\treturn placement;\n}\n\nfunction getContent(value) {\n\tvar type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\tif (type === 'string') {\n\t\treturn value;\n\t} else if (value && type === 'object') {\n\t\treturn value.content;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nfunction createTooltip(el, value) {\n\tvar modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar content = getContent(value);\n\tvar classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\tvar opts = _extends$1({\n\t\ttitle: content\n\t}, getOptions(_extends$1({}, value, {\n\t\tplacement: getPlacement(value, modifiers)\n\t})));\n\tvar tooltip = el._tooltip = new Tooltip(el, opts);\n\ttooltip.setClasses(classes);\n\ttooltip._vueEl = el;\n\n\t// Class on target\n\tvar targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n\tel._tooltipTargetClasses = targetClasses;\n\taddClasses(el, targetClasses);\n\n\treturn tooltip;\n}\n\nfunction destroyTooltip(el) {\n\tif (el._tooltip) {\n\t\tel._tooltip.dispose();\n\t\tdelete el._tooltip;\n\t\tdelete el._tooltipOldShow;\n\t}\n\n\tif (el._tooltipTargetClasses) {\n\t\tremoveClasses(el, el._tooltipTargetClasses);\n\t\tdelete el._tooltipTargetClasses;\n\t}\n}\n\nfunction bind(el, _ref) {\n\tvar value = _ref.value,\n\t oldValue = _ref.oldValue,\n\t modifiers = _ref.modifiers;\n\n\tvar content = getContent(value);\n\tif (!content || !state.enabled) {\n\t\tdestroyTooltip(el);\n\t} else {\n\t\tvar tooltip = void 0;\n\t\tif (el._tooltip) {\n\t\t\ttooltip = el._tooltip;\n\t\t\t// Content\n\t\t\ttooltip.setContent(content);\n\t\t\t// Options\n\t\t\ttooltip.setOptions(_extends$1({}, value, {\n\t\t\t\tplacement: getPlacement(value, modifiers)\n\t\t\t}));\n\t\t} else {\n\t\t\ttooltip = createTooltip(el, value, modifiers);\n\t\t}\n\n\t\t// Manual show\n\t\tif (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n\t\t\tel._tooltipOldShow = value.show;\n\t\t\tvalue.show ? tooltip.show() : tooltip.hide();\n\t\t}\n\t}\n}\n\nvar directive = {\n\toptions: defaultOptions,\n\tbind: bind,\n\tupdate: bind,\n\tunbind: function unbind(el) {\n\t\tdestroyTooltip(el);\n\t}\n};\n\nfunction addListeners(el) {\n\tel.addEventListener('click', onClick);\n\tel.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n\t\tpassive: true\n\t} : false);\n}\n\nfunction removeListeners(el) {\n\tel.removeEventListener('click', onClick);\n\tel.removeEventListener('touchstart', onTouchStart);\n\tel.removeEventListener('touchend', onTouchEnd);\n\tel.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n\tvar el = event.currentTarget;\n\tevent.closePopover = !el.$_vclosepopover_touch;\n\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n\tif (event.changedTouches.length === 1) {\n\t\tvar el = event.currentTarget;\n\t\tel.$_vclosepopover_touch = true;\n\t\tvar touch = event.changedTouches[0];\n\t\tel.$_vclosepopover_touchPoint = touch;\n\t\tel.addEventListener('touchend', onTouchEnd);\n\t\tel.addEventListener('touchcancel', onTouchCancel);\n\t}\n}\n\nfunction onTouchEnd(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n\tif (event.changedTouches.length === 1) {\n\t\tvar touch = event.changedTouches[0];\n\t\tvar firstTouch = el.$_vclosepopover_touchPoint;\n\t\tevent.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n\t\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n\t}\n}\n\nfunction onTouchCancel(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n\tbind: function bind(el, _ref) {\n\t\tvar value = _ref.value,\n\t\t modifiers = _ref.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (typeof value === 'undefined' || value) {\n\t\t\taddListeners(el);\n\t\t}\n\t},\n\tupdate: function update(el, _ref2) {\n\t\tvar value = _ref2.value,\n\t\t oldValue = _ref2.oldValue,\n\t\t modifiers = _ref2.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (value !== oldValue) {\n\t\t\tif (typeof value === 'undefined' || value) {\n\t\t\t\taddListeners(el);\n\t\t\t} else {\n\t\t\t\tremoveListeners(el);\n\t\t\t}\n\t\t}\n\t},\n\tunbind: function unbind(el) {\n\t\tremoveListeners(el);\n\t}\n};\n\nfunction getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE$1 = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE$1 = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tnotify: function notify() {\n\t\t\tthis.$emit('notify');\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.notify);\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis.notify();\n\t\t\t}\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE$1 && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.notify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE$1) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE$1) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install$1(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\t/* -- Add more components here -- */\n}\n\n/* -- Plugin definition & Auto-install -- */\n/* You shouldn't have to modify the code below */\n\n// Plugin\nvar plugin$2 = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.4\",\n\tinstall: install$1\n};\n\n// Auto-install\nvar GlobalVue$1 = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue$1 = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n\tGlobalVue$1.use(plugin$2);\n}\n\nfunction getDefault(key) {\n\tvar value = directive.options.popover[key];\n\tif (typeof value === 'undefined') {\n\t\treturn directive.options[key];\n\t}\n\treturn value;\n}\n\nvar isIOS = false;\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n\tisIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\nif (typeof window !== 'undefined') {\n\tElement = window.Element;\n}\n\nvar Popover = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"v-popover\", class: _vm.cssClass }, [_c('span', { ref: \"trigger\", staticClass: \"trigger\", staticStyle: { \"display\": \"inline-block\" }, attrs: { \"aria-describedby\": _vm.popoverId, \"tabindex\": _vm.trigger.indexOf('focus') !== -1 ? 0 : -1 } }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c('div', { ref: \"popover\", class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass], style: {\n\t\t\t\tvisibility: _vm.isOpen ? 'visible' : 'hidden'\n\t\t\t}, attrs: { \"id\": _vm.popoverId, \"aria-hidden\": _vm.isOpen ? 'false' : 'true' } }, [_c('div', { class: _vm.popoverWrapperClass }, [_c('div', { ref: \"inner\", class: _vm.popoverInnerClass, staticStyle: { \"position\": \"relative\" } }, [_c('div', [_vm._t(\"popover\")], 2), _vm._v(\" \"), _vm.handleResize ? _c('ResizeObserver', { on: { \"notify\": _vm.$_handleResize } }) : _vm._e()], 1), _vm._v(\" \"), _c('div', { ref: \"arrow\", class: _vm.popoverArrowClass })])])]);\n\t}, staticRenderFns: [],\n\tname: 'VPopover',\n\n\tcomponents: {\n\t\tResizeObserver: ResizeObserver\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPlacement');\n\t\t\t}\n\t\t},\n\t\tdelay: {\n\t\t\ttype: [String, Number, Object],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultDelay');\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultOffset');\n\t\t\t}\n\t\t},\n\t\ttrigger: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultTrigger');\n\t\t\t}\n\t\t},\n\t\tcontainer: {\n\t\t\ttype: [String, Object, Element],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultContainer');\n\t\t\t}\n\t\t},\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultBoundariesElement');\n\t\t\t}\n\t\t},\n\t\tpopperOptions: {\n\t\t\ttype: Object,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPopperOptions');\n\t\t\t}\n\t\t},\n\t\tpopoverClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultClass');\n\t\t\t}\n\t\t},\n\t\tpopoverBaseClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultBaseClass;\n\t\t\t}\n\t\t},\n\t\tpopoverInnerClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultInnerClass;\n\t\t\t}\n\t\t},\n\t\tpopoverWrapperClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultWrapperClass;\n\t\t\t}\n\t\t},\n\t\tpopoverArrowClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultArrowClass;\n\t\t\t}\n\t\t},\n\t\tautoHide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultAutoHide;\n\t\t\t}\n\t\t},\n\t\thandleResize: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultHandleResize;\n\t\t\t}\n\t\t},\n\t\topenGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null\n\t\t}\n\t},\n\n\tdata: function data() {\n\t\treturn {\n\t\t\tisOpen: false,\n\t\t\tid: Math.random().toString(36).substr(2, 10)\n\t\t};\n\t},\n\n\n\tcomputed: {\n\t\tcssClass: function cssClass() {\n\t\t\treturn {\n\t\t\t\t'open': this.isOpen\n\t\t\t};\n\t\t},\n\t\tpopoverId: function popoverId() {\n\t\t\treturn 'popover_' + this.id;\n\t\t}\n\t},\n\n\twatch: {\n\t\topen: function open(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.show();\n\t\t\t} else {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tdisabled: function disabled(val, oldVal) {\n\t\t\tif (val !== oldVal) {\n\t\t\t\tif (val) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t} else if (this.open) {\n\t\t\t\t\tthis.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcontainer: function container(val) {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\tvar reference = this.$refs.trigger;\n\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.popperInstance.scheduleUpdate();\n\t\t\t}\n\t\t},\n\t\ttrigger: function trigger(val) {\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.$_addEventListeners();\n\t\t},\n\t\tplacement: function placement(val) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.$_updatePopper(function () {\n\t\t\t\t_this.popperInstance.options.placement = val;\n\t\t\t});\n\t\t},\n\n\n\t\toffset: '$_restartPopper',\n\n\t\tboundariesElement: '$_restartPopper',\n\n\t\tpopperOptions: {\n\t\t\thandler: '$_restartPopper',\n\t\t\tdeep: true\n\t\t}\n\t},\n\n\tcreated: function created() {\n\t\tthis.$_isDisposed = false;\n\t\tthis.$_mounted = false;\n\t\tthis.$_events = [];\n\t\tthis.$_preventOpen = false;\n\t},\n\tmounted: function mounted() {\n\t\tvar popoverNode = this.$refs.popover;\n\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\n\t\tthis.$_init();\n\n\t\tif (this.open) {\n\t\t\tthis.show();\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.dispose();\n\t},\n\n\n\tmethods: {\n\t\tshow: function show() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref.event,\n\t\t\t _ref$skipDelay = _ref.skipDelay,\n\t\t\t skipDelay = _ref$skipDelay === undefined ? false : _ref$skipDelay,\n\t\t\t _ref$force = _ref.force,\n\t\t\t force = _ref$force === undefined ? false : _ref$force;\n\n\t\t\tif (force || !this.disabled) {\n\t\t\t\tthis.$_scheduleShow(event);\n\t\t\t\tthis.$emit('show');\n\t\t\t}\n\t\t\tthis.$emit('update:open', true);\n\t\t\tthis.$_beingShowed = true;\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\t_this2.$_beingShowed = false;\n\t\t\t});\n\t\t},\n\t\thide: function hide() {\n\t\t\tvar _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref2.event,\n\t\t\t _ref2$skipDelay = _ref2.skipDelay;\n\n\t\t\tthis.$_scheduleHide(event);\n\n\t\t\tthis.$emit('hide');\n\t\t\tthis.$emit('update:open', false);\n\t\t},\n\t\tdispose: function dispose() {\n\t\t\tthis.$_isDisposed = true;\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.hide({ skipDelay: true });\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.$_mounted = false;\n\t\t\tthis.popperInstance = null;\n\t\t\tthis.isOpen = false;\n\n\t\t\tthis.$emit('dispose');\n\t\t},\n\t\t$_init: function $_init() {\n\t\t\tif (this.trigger.indexOf('manual') === -1) {\n\t\t\t\tthis.$_addEventListeners();\n\t\t\t}\n\t\t},\n\t\t$_show: function $_show() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\n\t\t\t// Already open\n\t\t\tif (this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Popper is already initialized\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.isOpen = true;\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.scheduleUpdate();\n\t\t\t}\n\n\t\t\tif (!this.$_mounted) {\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.$_mounted = true;\n\t\t\t}\n\n\t\t\tif (!this.popperInstance) {\n\t\t\t\tvar popperOptions = _extends$1({}, this.popperOptions, {\n\t\t\t\t\tplacement: this.placement\n\t\t\t\t});\n\n\t\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\t\tarrow: {\n\t\t\t\t\t\telement: this.$refs.arrow\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (this.offset) {\n\t\t\t\t\tvar offset = this.$_getOffset();\n\n\t\t\t\t\tpopperOptions.modifiers.offset = {\n\t\t\t\t\t\toffset: offset\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (this.boundariesElement) {\n\t\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\t\tboundariesElement: this.boundariesElement\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.popperInstance = new Popper(reference, popoverNode, popperOptions);\n\n\t\t\t\t// Fix position\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\tif (!_this3.$_isDisposed && _this3.popperInstance) {\n\t\t\t\t\t\t_this3.popperInstance.scheduleUpdate();\n\n\t\t\t\t\t\t// Show the tooltip\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\tif (!_this3.$_isDisposed) {\n\t\t\t\t\t\t\t\t_this3.isOpen = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar openGroup = this.openGroup;\n\t\t\tif (openGroup) {\n\t\t\t\tvar popover = void 0;\n\t\t\t\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\t\t\t\tpopover = openPopovers[i];\n\t\t\t\t\tif (popover.openGroup !== openGroup) {\n\t\t\t\t\t\tpopover.hide();\n\t\t\t\t\t\tpopover.$emit('close-group');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\topenPopovers.push(this);\n\n\t\t\tthis.$emit('apply-show');\n\t\t},\n\t\t$_hide: function $_hide() {\n\t\t\tvar _this4 = this;\n\n\t\t\t// Already hidden\n\t\t\tif (!this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar index = openPopovers.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenPopovers.splice(index, 1);\n\t\t\t}\n\n\t\t\tthis.isOpen = false;\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.disableEventListeners();\n\t\t\t}\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\t\t\tvar disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis.$_disposeTimer = setTimeout(function () {\n\t\t\t\t\tvar popoverNode = _this4.$refs.popover;\n\t\t\t\t\tif (popoverNode) {\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t\t\t_this4.$_mounted = false;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\n\t\t\tthis.$emit('apply-hide');\n\t\t},\n\t\t$_findContainer: function $_findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t},\n\t\t$_getOffset: function $_getOffset() {\n\t\t\tvar typeofOffset = _typeof(this.offset);\n\t\t\tvar offset = this.offset;\n\n\t\t\t// One value -> switch\n\t\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\t\toffset = '0, ' + offset;\n\t\t\t}\n\n\t\t\treturn offset;\n\t\t},\n\t\t$_addEventListeners: function $_addEventListeners() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tvar events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (_this5.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.usedByTooltip = true;\n\t\t\t\t\t!_this5.$_preventOpen && _this5.show({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (event.usedByTooltip) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this5.hide({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t},\n\t\t$_scheduleShow: function $_scheduleShow() {\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_show();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_scheduleHide: function $_scheduleHide() {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_hide();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(function () {\n\t\t\t\t\tif (!_this6.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\t\tif (event && event.type === 'mouseleave') {\n\t\t\t\t\t\tvar isSet = _this6.$_setTooltipNodeEvent(event);\n\n\t\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t_this6.$_hide();\n\t\t\t\t}, computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n\t\t\tvar _this7 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tvar relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n\t\t\tvar callback = function callback(event2) {\n\t\t\t\tvar relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget;\n\n\t\t\t\t// Remove event listener after call\n\t\t\t\tpopoverNode.removeEventListener(event.type, callback);\n\n\t\t\t\t// If the new reference is not the reference element\n\t\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t\t_this7.hide({ event: event2 });\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (popoverNode.contains(relatedreference)) {\n\t\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t\tpopoverNode.addEventListener(event.type, callback);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\t$_removeEventListeners: function $_removeEventListeners() {\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tthis.$_events.forEach(function (_ref3) {\n\t\t\t\tvar func = _ref3.func,\n\t\t\t\t event = _ref3.event;\n\n\t\t\t\treference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis.$_events = [];\n\t\t},\n\t\t$_updatePopper: function $_updatePopper(cb) {\n\t\t\tif (this.popperInstance) {\n\t\t\t\tcb();\n\t\t\t\tif (this.isOpen) this.popperInstance.scheduleUpdate();\n\t\t\t}\n\t\t},\n\t\t$_restartPopper: function $_restartPopper() {\n\t\t\tif (this.popperInstance) {\n\t\t\t\tvar isOpen = this.isOpen;\n\t\t\t\tthis.dispose();\n\t\t\t\tthis.$_isDisposed = false;\n\t\t\t\tthis.$_init();\n\t\t\t\tif (isOpen) {\n\t\t\t\t\tthis.show({ skipDelay: true, force: true });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t$_handleGlobalClose: function $_handleGlobalClose(event) {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tif (this.$_beingShowed) return;\n\n\t\t\tthis.hide({ event: event });\n\n\t\t\tif (event.closePopover) {\n\t\t\t\tthis.$emit('close-directive');\n\t\t\t} else {\n\t\t\t\tthis.$emit('auto-hide');\n\t\t\t}\n\n\t\t\tif (touch) {\n\t\t\t\tthis.$_preventOpen = true;\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t_this8.$_preventOpen = false;\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t},\n\t\t$_handleResize: function $_handleResize() {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tthis.popperInstance.scheduleUpdate();\n\t\t\t\tthis.$emit('resize');\n\t\t\t}\n\t\t}\n\t}\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n\tif (isIOS) {\n\t\tdocument.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n\t\t\tpassive: true,\n\t\t\tcapture: true\n\t\t} : true);\n\t} else {\n\t\twindow.addEventListener('click', handleGlobalClick, true);\n\t}\n}\n\nfunction handleGlobalClick(event) {\n\thandleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n\thandleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t// Delay so that close directive has time to set values\n\trequestAnimationFrame(function () {\n\t\tvar popover = void 0;\n\t\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\t\tpopover = openPopovers[i];\n\t\t\tif (popover.$refs.popover) {\n\t\t\t\tvar contains = popover.$refs.popover.contains(event.target);\n\t\t\t\tif (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n\t\t\t\t\tpopover.$_handleGlobalClose(event, touch);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar lodash_merge = createCommonjsModule(function (module, exports) {\n/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = 'object' == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n return key == '__proto__'\n ? undefined\n : object[key];\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n});\n\nfunction install(Vue) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\tif (install.installed) return;\n\tinstall.installed = true;\n\n\tvar finalOptions = {};\n\tlodash_merge(finalOptions, defaultOptions, options);\n\n\tplugin.options = finalOptions;\n\tdirective.options = finalOptions;\n\n\tVue.directive('tooltip', directive);\n\tVue.directive('close-popover', vclosepopover);\n\tVue.component('v-popover', Popover);\n}\n\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = Popover;\n\nvar plugin = {\n\tinstall: install,\n\n\tget enabled() {\n\t\treturn state.enabled;\n\t},\n\n\tset enabled(value) {\n\t\tstate.enabled = value;\n\t}\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, VTooltip, VClosePopover, VPopover, createTooltip, destroyTooltip };\nexport default plugin;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","<template>\n\t<router-view></router-view>\n</template>\n\n<script>\nexport default {\n\tname: 'App',\n\tbeforeMount: function() {\n\t\t// importing server data into the store\n\t\tconst serverDataElmt = document.getElementById('serverData');\n\t\tif (serverDataElmt !== null) {\n\t\t\tthis.$store.commit('setServerData', JSON.parse(document.getElementById('serverData').dataset.server));\n\t\t}\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"router-view\")\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-7ba5bd90\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n scriptExports = scriptExports || {}\n\n // ES6 modules interop\n var type = typeof scriptExports.default\n if (type === 'object' || type === 'function') {\n scriptExports = scriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\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 functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/App.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-7ba5bd90\", Component.options)\n } else {\n hotAPI.reload(\"data-v-7ba5bd90\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","/**\n * vue-router v3.0.1\n * (c) 2017 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 (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nvar View = {\n name: 'router-view',\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 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 if (parent.$vnode && parent.$vnode.data.routerView) {\n depth++;\n }\n if (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 return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\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 // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\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 return h(component, data, children)\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\nfunction extend (to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n return to\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\nvar decode = decodeURIComponent;\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 parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\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\n ? decode(parts.join('='))\n : 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 ? Object.keys(obj).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 }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery$$1 = 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$$1),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\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) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\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);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\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\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n name: 'router-link',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(this.to, current, this.append);\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 = globalActiveClass == null\n ? 'router-link-active'\n : globalActiveClass;\n var exactActiveClassFallback = globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass = this.activeClass == null\n ? activeClassFallback\n : this.activeClass;\n var exactActiveClass = this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n var compareTarget = location.path\n ? createRoute(null, location, null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location);\n } else {\n router.push(location);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) { on[e] = handler; });\n } else {\n on[this.event] = handler;\n }\n\n var data = {\n class: classes\n };\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var extend = _Vue.util.extend;\n var aData = a.data = extend({}, a.data);\n aData.on = on;\n var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n aAttrs.href = href;\n } else {\n // doesn't have <a> 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('router-view', View);\n Vue.component('router-link', 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 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(/\\/\\//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))\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) {\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 + ')$');\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.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}\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 try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n return filler(params || {}, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n }\n}\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\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);\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 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(path || name)) + \" cannot be a \" +\n \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions = route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(\n path,\n parent,\n pathToRegexpOptions.strict\n );\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 instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props: 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 (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\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 (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias)\n ? route.alias\n : [route.alias];\n\n aliases.forEach(function (alias) {\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 (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\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 (path, pathToRegexpOptions) {\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(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (path, parent, strict) {\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\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.name || next._normalized) {\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = assign({}, next);\n next._normalized = true;\n var params = assign(assign({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"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\nfunction assign (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\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 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 if (record) {\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n }\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 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 var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n params[key.name] = val;\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\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n window.history.replaceState({ key: getStateKey() }, '');\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\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(to, from, isPop ? position : null);\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll.then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\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 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\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n var el = document.querySelector(shouldScroll.selector);\n if (el) {\n var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\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 window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState = inBrowser && (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 && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n _key = key;\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 history.replaceState({ key: _key }, '', url);\n } else {\n _key = genKey();\n history.pushState({ key: _key }, '', 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/* */\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};\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 (location, onComplete, onAbort) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(route, function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) { cb(route); });\n }\n }, function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n }\n });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n if (isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) { cb(err); });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort()\n }\n\n var ref = resolveQueue(this.current.matched, route.matched);\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 this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' && (\n typeof to.path === 'string' ||\n typeof to.name === 'string'\n ))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$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 var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) { cb(); });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> 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 cbs,\n isValid\n) {\n return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n })\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n next(cb);\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (instances[key]) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\n\nvar HTML5History = (function (History$$1) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History$$1.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n\n if (expectScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$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.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (expectScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History$$1 ) HTML5History.__proto__ = History$$1;\n HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n HTML5History.prototype.constructor = HTML5History;\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 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$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 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$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 if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\n\nvar HashHistory = (function (History$$1) {\n function HashHistory (router, base, fallback) {\n History$$1.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$$1 ) HashHistory.__proto__ = History$$1;\n HashHistory.prototype = Object.create( History$$1 && History$$1.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 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\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(\n cleanPath(base + '/#' + location)\n );\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 return index === -1 ? '' : href.slice(index + 1)\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\n\nvar AbstractHistory = (function (History$$1) {\n function AbstractHistory (router, base) {\n History$$1.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$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(route, function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\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\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\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 = 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 (\n raw,\n current,\n redirectedFrom\n) {\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 = this;\n\n process.env.NODE_ENV !== 'production' && 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 // main app already initialized.\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$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 this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n this.history.replace(location, onComplete, onAbort);\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([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n var location = normalizeLocation(\n to,\n current || this.history.current,\n append,\n this\n );\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.addRoutes = function addRoutes (routes) {\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\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\nVueRouter.install = install;\nVueRouter.version = '3.0.1';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", [\n _vm.item.href\n ? _c(\n \"a\",\n {\n attrs: { href: _vm.item.href ? _vm.item.href : \"#\" },\n on: { click: _vm.item.action }\n },\n [\n _c(\"span\", { class: _vm.item.icon }),\n _vm._v(\" \"),\n _vm.item.text\n ? _c(\"span\", [_vm._v(_vm._s(_vm.item.text))])\n : _vm.item.longtext\n ? _c(\"p\", [_vm._v(_vm._s(_vm.item.longtext))])\n : _vm._e()\n ]\n )\n : _vm.item.action\n ? _c(\"button\", { on: { click: _vm.item.action } }, [\n _c(\"span\", { class: _vm.item.icon }),\n _vm._v(\" \"),\n _vm.item.text\n ? _c(\"span\", [_vm._v(_vm._s(_vm.item.text))])\n : _vm.item.longtext\n ? _c(\"p\", [_vm._v(_vm._s(_vm.item.longtext))])\n : _vm._e()\n ])\n : _c(\"span\", [\n _c(\"span\", { class: _vm.item.icon }),\n _vm._v(\" \"),\n _vm.item.text\n ? _c(\"span\", [_vm._v(_vm._s(_vm.item.text))])\n : _vm.item.longtext\n ? _c(\"p\", [_vm._v(_vm._s(_vm.item.longtext))])\n : _vm._e()\n ])\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-4c6af9e6\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverItem.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverItem.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4c6af9e6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./popoverItem.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/popoverMenu/popoverItem.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-4c6af9e6\", Component.options)\n } else {\n hotAPI.reload(\"data-v-4c6af9e6\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n\t<li>\n\t\t<!-- If item.href is set, a link will be directly used -->\n\t\t<a @click=\"item.action\" v-if=\"item.href\" :href=\"(item.href) ? item.href : '#' \">\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</a>\n\t\t<!-- If item.action is set instead, a button will be used -->\n\t\t<button @click=\"item.action\" v-else-if=\"item.action\">\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</button>\n\t\t<!-- If item.longtext is set AND the item does not have an action -->\n\t\t<span v-else>\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nexport default {\n\tprops: ['item']\n}\n</script>\n","<template>\n\t<ul>\n\t\t<popover-item v-for=\"(item, key) in menu\" :item=\"item\" :key=\"key\" />\n\t</ul>\n</template>\n\n\n<script>\nimport popoverItem from './popoverMenu/popoverItem';\n\nexport default {\n\tname: 'popoverMenu',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tpopoverItem\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"ul\",\n _vm._l(_vm.menu, function(item, key) {\n return _c(\"popover-item\", { key: key, attrs: { item: item } })\n })\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-04ea21c4\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverMenu.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverMenu.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-04ea21c4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./popoverMenu.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/popoverMenu.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-04ea21c4\", Component.options)\n } else {\n hotAPI.reload(\"data-v-04ea21c4\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n\t<li :id=\"item.id\" :class=\"[{'icon-loading-small': item.loading, 'open': item.opened, 'collapsible': item.collapsible&&item.children&&item.children.length>0 }, item.classes]\">\n\n\t\t<!-- Bullet -->\n\t\t<div v-if=\"item.bullet\" class=\"app-navigation-entry-bullet\" :style=\"{ backgroundColor: item.bullet }\"></div>\n\n\t\t<!-- Main link -->\n\t\t<a v-if=\"item.href\" :href=\"(item.href) ? item.href : '#' \" @click=\"toggleCollapse\" :class=\"item.icon\" >\n\t\t\t<img v-if=\"item.iconUrl\" :alt=\"item.text\" :src=\"item.iconUrl\">\n\t\t\t{{item.text}}\n\t\t</a>\n\n\t\t<!-- Router link if specified. href OR router -->\n\t\t<router-link :to=\"item.router\" v-else-if=\"item.router\" :class=\"item.icon\" >\n\t\t\t<img v-if=\"item.iconUrl\" :alt=\"item.text\" :src=\"item.iconUrl\">\n\t\t\t{{item.text}}\n\t\t</router-link>\t\n\n\t\t<!-- Popover, counter and button(s) -->\n\t\t<div v-if=\"item.utils\" class=\"app-navigation-entry-utils\">\n\t\t\t<ul>\n\t\t\t\t<!-- counter -->\n\t\t\t\t<li v-if=\"Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-counter\">{{item.utils.counter}}</li>\n\n\t\t\t\t<!-- first action if only one action and counter -->\n\t\t\t\t<li v-if=\"item.utils.actions && item.utils.actions.length === 1 && Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button @click=\"item.utils.actions[0].action\" :class=\"item.utils.actions[0].icon\" :title=\"item.utils.actions[0].text\"></button>\n\t\t\t\t</li>\n\n\t\t\t\t<!-- second action only two actions and no counter -->\n\t\t\t\t<li v-else-if=\"item.utils.actions && item.utils.actions.length === 2 && !Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tv-for=\"action in item.utils.actions\" :key=\"action.action\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button @click=\"action.action\" :class=\"action.icon\" :title=\"action.text\"></button>\n\t\t\t\t</li>\n\n\t\t\t\t<!-- menu if only at least one action and counter OR two actions and no counter-->\n\t\t\t\t<li v-else-if=\"item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button v-click-outside=\"hideMenu\" @click=\"showMenu\" ></button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\n\t\t<!-- if more than 2 actions or more than 1 actions with counter -->\n\t\t<div v-if=\"item.utils && item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)\"\n\t\t\t class=\"app-navigation-entry-menu\" :class=\"{ 'open': openedMenu }\">\n\t\t\t <popover-menu :menu=\"item.utils.actions\"/>\n\t\t</div>\n\n\t\t<!-- undo entry -->\n\t\t<div class=\"app-navigation-entry-deleted\" v-if=\"item.undo\">\n\t\t\t<div class=\"app-navigation-entry-deleted-description\">{{item.undo.text}}</div>\n\t\t\t<button class=\"app-navigation-entry-deleted-button icon-history\" :title=\"t('settings', 'Undo')\"></button>\n\t\t</div>\n\n\t\t<!-- edit entry -->\n\t\t<div class=\"app-navigation-entry-edit\" v-if=\"item.edit\">\n\t\t\t<form>\n\t\t\t\t<input type=\"text\" v-model=\"item.text\">\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-close\" @click.stop.prevent=\"cancelEdit\">\n\t\t\t</form>\n\t\t</div>\n\n\t\t<!-- if the item has children, inject the component with proper data -->\n\t\t<ul v-if=\"item.children\">\n\t\t\t<navigation-item v-for=\"(item, key) in item.children\" :item=\"item\" :key=\"key\" />\n\t\t</ul>\n\t</li>\n</template>\n\n<script>\nimport popoverMenu from '../popoverMenu';\nimport ClickOutside from 'vue-click-outside';\nimport Vue from 'vue';\n\nexport default {\n\tname: 'navigationItem',\n\tprops: ['item'],\n\tcomponents: {\n\t\tpopoverMenu\n\t},\n\tdirectives: {\n\t\tClickOutside\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topenedMenu: false\n\t\t}\n\t},\n\tmethods: {\n\t\tshowMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\t\ttoggleCollapse() {\n\t\t\t// if item.opened isn't set, Vue won't trigger view updates https://vuejs.org/v2/api/#Vue-set\n\t\t\t// ternary is here to detect the undefined state of item.opened\n\t\t\tVue.set(this.item, 'opened', this.item.opened ? !this.item.opened : true);\n\t\t},\n\t\tcancelEdit() {\n\t\t\t// remove the editing class\n\t\t\tif (Array.isArray(this.item.classes))\n\t\t\t\tthis.item.classes = this.item.classes.filter(item => item !== 'editing');\n\t\t}\n\t},\n\tmounted() {\n\t\t// prevent click outside event with popupItem.\n\t\tthis.popupItem = this.$el;\n\t},\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"li\",\n {\n class: [\n {\n \"icon-loading-small\": _vm.item.loading,\n open: _vm.item.opened,\n collapsible:\n _vm.item.collapsible &&\n _vm.item.children &&\n _vm.item.children.length > 0\n },\n _vm.item.classes\n ],\n attrs: { id: _vm.item.id }\n },\n [\n _vm.item.bullet\n ? _c(\"div\", {\n staticClass: \"app-navigation-entry-bullet\",\n style: { backgroundColor: _vm.item.bullet }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.href\n ? _c(\n \"a\",\n {\n class: _vm.item.icon,\n attrs: { href: _vm.item.href ? _vm.item.href : \"#\" },\n on: { click: _vm.toggleCollapse }\n },\n [\n _vm.item.iconUrl\n ? _c(\"img\", {\n attrs: { alt: _vm.item.text, src: _vm.item.iconUrl }\n })\n : _vm._e(),\n _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.item.text) + \"\\n\\t\")\n ]\n )\n : _vm.item.router\n ? _c(\n \"router-link\",\n { class: _vm.item.icon, attrs: { to: _vm.item.router } },\n [\n _vm.item.iconUrl\n ? _c(\"img\", {\n attrs: { alt: _vm.item.text, src: _vm.item.iconUrl }\n })\n : _vm._e(),\n _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.item.text) + \"\\n\\t\")\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.utils\n ? _c(\"div\", { staticClass: \"app-navigation-entry-utils\" }, [\n _c(\n \"ul\",\n [\n Number.isInteger(_vm.item.utils.counter)\n ? _c(\n \"li\",\n { staticClass: \"app-navigation-entry-utils-counter\" },\n [_vm._v(_vm._s(_vm.item.utils.counter))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.utils.actions &&\n _vm.item.utils.actions.length === 1 &&\n Number.isInteger(_vm.item.utils.counter)\n ? _c(\n \"li\",\n { staticClass: \"app-navigation-entry-utils-menu-button\" },\n [\n _c(\"button\", {\n class: _vm.item.utils.actions[0].icon,\n attrs: { title: _vm.item.utils.actions[0].text },\n on: { click: _vm.item.utils.actions[0].action }\n })\n ]\n )\n : _vm.item.utils.actions &&\n _vm.item.utils.actions.length === 2 &&\n !Number.isInteger(_vm.item.utils.counter)\n ? _vm._l(_vm.item.utils.actions, function(action) {\n return _c(\n \"li\",\n {\n key: action.action,\n staticClass:\n \"app-navigation-entry-utils-menu-button\"\n },\n [\n _c(\"button\", {\n class: action.icon,\n attrs: { title: action.text },\n on: { click: action.action }\n })\n ]\n )\n })\n : _vm.item.utils.actions &&\n _vm.item.utils.actions.length > 1 &&\n (Number.isInteger(_vm.item.utils.counter) ||\n _vm.item.utils.actions.length > 2)\n ? _c(\n \"li\",\n {\n staticClass:\n \"app-navigation-entry-utils-menu-button\"\n },\n [\n _c(\"button\", {\n directives: [\n {\n name: \"click-outside\",\n rawName: \"v-click-outside\",\n value: _vm.hideMenu,\n expression: \"hideMenu\"\n }\n ],\n on: { click: _vm.showMenu }\n })\n ]\n )\n : _vm._e()\n ],\n 2\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.utils &&\n _vm.item.utils.actions &&\n _vm.item.utils.actions.length > 1 &&\n (Number.isInteger(_vm.item.utils.counter) ||\n _vm.item.utils.actions.length > 2)\n ? _c(\n \"div\",\n {\n staticClass: \"app-navigation-entry-menu\",\n class: { open: _vm.openedMenu }\n },\n [_c(\"popover-menu\", { attrs: { menu: _vm.item.utils.actions } })],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.undo\n ? _c(\"div\", { staticClass: \"app-navigation-entry-deleted\" }, [\n _c(\n \"div\",\n { staticClass: \"app-navigation-entry-deleted-description\" },\n [_vm._v(_vm._s(_vm.item.undo.text))]\n ),\n _vm._v(\" \"),\n _c(\"button\", {\n staticClass: \"app-navigation-entry-deleted-button icon-history\",\n attrs: { title: _vm.t(\"settings\", \"Undo\") }\n })\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.edit\n ? _c(\"div\", { staticClass: \"app-navigation-entry-edit\" }, [\n _c(\"form\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.item.text,\n expression: \"item.text\"\n }\n ],\n attrs: { type: \"text\" },\n domProps: { value: _vm.item.text },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.item, \"text\", $event.target.value)\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"icon-confirm\",\n attrs: { type: \"submit\", value: \"\" }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"icon-close\",\n attrs: { type: \"submit\", value: \"\" },\n on: {\n click: function($event) {\n $event.stopPropagation()\n $event.preventDefault()\n return _vm.cancelEdit($event)\n }\n }\n })\n ])\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.item.children\n ? _c(\n \"ul\",\n _vm._l(_vm.item.children, function(item, key) {\n return _c(\"navigation-item\", { key: key, attrs: { item: item } })\n })\n )\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-2cb61dde\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./navigationItem.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./navigationItem.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2cb61dde\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./navigationItem.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/appNavigation/navigationItem.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-2cb61dde\", Component.options)\n } else {\n hotAPI.reload(\"data-v-2cb61dde\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n\t<div id=\"app-navigation\" :class=\"{'icon-loading': menu.loading}\">\n\t\t<div class=\"app-navigation-new\" v-if=\"menu.new\">\n\t\t\t<button type=\"button\" :id=\"menu.new.id\" :class=\"menu.new.icon\" @click=\"menu.new.action\">{{menu.new.text}}</button>\n\t\t</div>\n\t\t<ul :id=\"menu.id\">\n\t\t\t<navigation-item v-for=\"(item, key) in menu.items\" :item=\"item\" :key=\"key\" />\n\t\t</ul>\n\t\t<div id=\"app-settings\">\n\t\t\t<div id=\"app-settings-header\">\n\t\t\t\t<button class=\"settings-button\"\n\t\t\t\t\t\tdata-apps-slide-toggle=\"#app-settings-content\"\n\t\t\t\t>{{t('settings', 'Settings')}}</button>\n\t\t\t</div>\n\t\t\t<div id=\"app-settings-content\">\n\t\t\t\t<slot name=\"settings-content\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport navigationItem from './appNavigation/navigationItem';\n\nexport default {\n\tname: 'appNavigation',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tnavigationItem\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n class: { \"icon-loading\": _vm.menu.loading },\n attrs: { id: \"app-navigation\" }\n },\n [\n _vm.menu.new\n ? _c(\"div\", { staticClass: \"app-navigation-new\" }, [\n _c(\n \"button\",\n {\n class: _vm.menu.new.icon,\n attrs: { type: \"button\", id: _vm.menu.new.id },\n on: { click: _vm.menu.new.action }\n },\n [_vm._v(_vm._s(_vm.menu.new.text))]\n )\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"ul\",\n { attrs: { id: _vm.menu.id } },\n _vm._l(_vm.menu.items, function(item, key) {\n return _c(\"navigation-item\", { key: key, attrs: { item: item } })\n })\n ),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"app-settings\" } }, [\n _c(\"div\", { attrs: { id: \"app-settings-header\" } }, [\n _c(\n \"button\",\n {\n staticClass: \"settings-button\",\n attrs: { \"data-apps-slide-toggle\": \"#app-settings-content\" }\n },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Settings\")))]\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { attrs: { id: \"app-settings-content\" } },\n [_vm._t(\"settings-content\")],\n 2\n )\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-142c1cb5\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./appNavigation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./appNavigation.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-142c1cb5\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./appNavigation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/appNavigation.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-142c1cb5\", Component.options)\n } else {\n hotAPI.reload(\"data-v-142c1cb5\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n\t<div class=\"row\" :class=\"{'disabled': loading.delete || loading.disable}\">\n\t\t<div class=\"avatar\" :class=\"{'icon-loading-small': loading.delete || loading.disable}\">\n\t\t\t<img alt=\"\" width=\"32\" height=\"32\" :src=\"generateAvatar(user.id, 32)\"\n\t\t\t\t :srcset=\"generateAvatar(user.id, 64)+' 2x, '+generateAvatar(user.id, 128)+' 4x'\"\n\t\t\t\t v-if=\"!loading.delete && !loading.disable\">\n\t\t</div>\n\t\t<div class=\"name\">{{user.id}}</div>\n\t\t<form class=\"displayName\" :class=\"{'icon-loading-small': loading.displayName}\" v-on:submit.prevent=\"updateDisplayName\">\n\t\t\t<input :id=\"'displayName'+user.id+rand\" type=\"text\"\n\t\t\t\t\t:disabled=\"loading.displayName||loading.all\"\n\t\t\t\t\t:value=\"user.displayname\" ref=\"displayName\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<form class=\"password\" v-if=\"settings.canChangePassword\" :class=\"{'icon-loading-small': loading.password}\"\n\t\t\t v-on:submit.prevent=\"updatePassword\">\n\t\t\t<input :id=\"'password'+user.id+rand\" type=\"password\" required\n\t\t\t\t\t:disabled=\"loading.password||loading.all\" :minlength=\"minPasswordLength\"\n\t\t\t\t\tvalue=\"\" :placeholder=\"t('settings', 'New password')\" ref=\"password\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<div v-else></div>\n\t\t<form class=\"mailAddress\" :class=\"{'icon-loading-small': loading.mailAddress}\" v-on:submit.prevent=\"updateEmail\">\n\t\t\t<input :id=\"'mailAddress'+user.id+rand\" type=\"email\"\n\t\t\t\t\t:disabled=\"loading.mailAddress||loading.all\"\n\t\t\t\t\t:value=\"user.email\" ref=\"mailAddress\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<div class=\"groups\" :class=\"{'icon-loading-small': loading.groups}\">\n\t\t\t<multiselect :value=\"userGroups\" :options=\"groups\" :disabled=\"loading.groups||loading.all\"\n\t\t\t\t\t\t tag-placeholder=\"create\" :placeholder=\"t('settings', 'Add user in group')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\" :limit=\"2\"\n\t\t\t\t\t\t :multiple=\"true\" :taggable=\"settings.isAdmin\" :closeOnSelect=\"false\"\n\t\t\t\t\t\t @tag=\"createGroup\" @select=\"addUserGroup\" @remove=\"removeUserGroup\">\n\t\t\t\t<span slot=\"limit\" class=\"multiselect__limit\" v-tooltip.auto=\"formatGroupsTitle(userGroups)\">+{{userGroups.length-2}}</span>\n\t\t\t\t<span slot=\"noResult\">{{t('settings', 'No results')}}</span>\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"subadmins\" v-if=\"subAdminsGroups.length>0 && settings.isAdmin\" :class=\"{'icon-loading-small': loading.subadmins}\">\n\t\t\t<multiselect :value=\"userSubAdminsGroups\" :options=\"subAdminsGroups\" :disabled=\"loading.subadmins||loading.all\"\n\t\t\t\t\t\t :placeholder=\"t('settings', 'Set user as admin for')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\" :limit=\"2\"\n\t\t\t\t\t\t :multiple=\"true\" :closeOnSelect=\"false\"\n\t\t\t\t\t\t @select=\"addUserSubAdmin\" @remove=\"removeUserSubAdmin\">\n\t\t\t\t<span slot=\"limit\" class=\"multiselect__limit\" v-tooltip.auto=\"formatGroupsTitle(userSubAdminsGroups)\">+{{userSubAdminsGroups.length-2}}</span>\n\t\t\t\t<span slot=\"noResult\">{{t('settings', 'No results')}}</span>\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"quota\" :class=\"{'icon-loading-small': loading.quota}\">\n\t\t\t<multiselect :value=\"userQuota\" :options=\"quotaOptions\" :disabled=\"loading.quota||loading.all\"\n\t\t\t\t\t\t tag-placeholder=\"create\" :placeholder=\"t('settings', 'Select user quota')\"\n\t\t\t\t\t\t label=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t @tag=\"validateQuota\" @input=\"setUserQuota\">\n\t\t\t</multiselect>\n\t\t\t<progress class=\"quota-user-progress\" :class=\"{'warn':usedQuota>80}\" :value=\"usedQuota\" max=\"100\"></progress>\n\t\t</div>\n\t\t<div class=\"languages\" :class=\"{'icon-loading-small': loading.languages}\"\n\t\t\t v-if=\"showConfig.showLanguages\">\n\t\t\t<multiselect :value=\"userLanguage\" :options=\"languages\" :disabled=\"loading.languages||loading.all\"\n\t\t\t\t\t\t :placeholder=\"t('settings', 'No language set')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"code\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :allowEmpty=\"false\" group-values=\"languages\" group-label=\"label\"\n\t\t\t\t\t\t @input=\"setUserLanguage\">\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"storageLocation\" v-if=\"showConfig.showStoragePath\">{{user.storageLocation}}</div>\n\t\t<div class=\"userBackend\" v-if=\"showConfig.showUserBackend\">{{user.backend}}</div>\n\t\t<div class=\"lastLogin\" v-if=\"showConfig.showLastLogin\" v-tooltip.auto=\"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''\">\n\t\t\t{{user.lastLogin>0 ? OC.Util.relativeModifiedDate(user.lastLogin) : t('settings','Never')}}\n\t\t</div>\n\t\t<div class=\"userActions\">\n\t\t\t<div class=\"toggleUserActions\" v-if=\"OC.currentUser !== user.id && user.id !== 'admin' && !loading.all\">\n\t\t\t\t<div class=\"icon-more\" v-click-outside=\"hideMenu\" @click=\"toggleMenu\"></div>\n\t\t\t\t<div class=\"popovermenu\" :class=\"{ 'open': openedMenu }\">\n\t\t\t\t\t<popover-menu :menu=\"userActions\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n</template>\n\n<script>\nimport popoverMenu from '../popoverMenu';\nimport ClickOutside from 'vue-click-outside';\nimport Multiselect from 'vue-multiselect';\nimport Vue from 'vue'\nimport VTooltip from 'v-tooltip'\n\nVue.use(VTooltip)\n\nexport default {\n\tname: 'userRow',\n\tprops: ['user', 'settings', 'groups', 'subAdminsGroups', 'quotaOptions', 'showConfig', 'languages'],\n\tcomponents: {\n\t\tpopoverMenu,\n\t\tMultiselect\n\t},\n\tdirectives: {\n\t\tClickOutside\n\t},\n\tmounted() {\n\t\t// required if popup needs to stay opened after menu click\n\t\t// since we only have disable/delete actions, let's close it directly\n\t\t// this.popupItem = this.$el;\n\t},\n\tdata() {\n\t\treturn {\n\t\t\trand: parseInt(Math.random() * 1000),\n\t\t\topenedMenu: false,\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tdisplayName: false,\n\t\t\t\tpassword: false,\n\t\t\t\tmailAddress: false,\n\t\t\t\tgroups: false,\n\t\t\t\tsubadmins: false,\n\t\t\t\tquota: false,\n\t\t\t\tdelete: false,\n\t\t\t\tdisable: false,\n\t\t\t\tlanguages: false\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\t/* USER POPOVERMENU ACTIONS */\n\t\tuserActions() {\n\t\t\treturn [{\n\t\t\t\ticon: 'icon-delete',\n\t\t\t\ttext: t('settings','Delete user'),\n\t\t\t\taction: this.deleteUser\n\t\t\t},{\n\t\t\t\ticon: this.user.enabled ? 'icon-close' : 'icon-add',\n\t\t\t\ttext: this.user.enabled ? t('settings','Disable user') : t('settings','Enable user'),\n\t\t\t\taction: this.enableDisableUser\n\t\t\t}]\n\t\t},\n\n\t\t/* GROUPS MANAGEMENT */\n\t\tuserGroups() {\n\t\t\tlet userGroups = this.groups.filter(group => this.user.groups.includes(group.id));\n\t\t\treturn userGroups;\n\t\t},\n\t\tuserSubAdminsGroups() {\n\t\t\tlet userSubAdminsGroups = this.subAdminsGroups.filter(group => this.user.subadmin.includes(group.id));\n\t\t\treturn userSubAdminsGroups;\n\t\t},\n\n\t\t/* QUOTA MANAGEMENT */\n\t\tusedQuota() {\n\t\t\tlet quota = this.user.quota.quota;\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100));\n\t\t\t} else {\n\t\t\t\tvar usedInGB = this.user.quota.used / (10 * Math.pow(2, 30));\n\t\t\t\t//asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota\n\t\t\t\tquota = 95 * (1 - (1 / (usedInGB + 1)));\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota;\n\t\t},\n\t\t// Mapping saved values to objects\n\t\tuserQuota() {\n\t\t\tif (this.user.quota.quota > 0) {\n\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\tlet humanQuota = OC.Util.humanFileSize(this.user.quota.quota);\n\t\t\t\tlet userQuota = this.quotaOptions.find(quota => quota.id === humanQuota);\n\t\t\t\treturn userQuota ? userQuota : {id:humanQuota, label:humanQuota};\n\t\t\t} else if (this.user.quota.quota === 0 || this.user.quota.quota === 'default') {\n\t\t\t\t// default quota is replaced by the proper value on load\n\t\t\t\treturn this.quotaOptions[0];\n\t\t\t}\n\t\t\treturn this.quotaOptions[1]; // unlimited\n\t\t},\n\n\t\t/* PASSWORD POLICY? */\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage() {\n\t\t\tlet availableLanguages = this.languages[0].languages.concat(this.languages[1].languages);\n\t\t\tlet userLang = availableLanguages.find(lang => lang.code === this.user.language);\n\t\t\tif (typeof userLang !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language\n\t\t\t\t}\n\t\t\t} else if(this.user.language === '') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn userLang;\n\t\t}\n\t},\n\tmethods: {\n\t\t/* MENU HANDLING */\n\t\ttoggleMenu() {\n\t\t\tthis.openedMenu = !this.openedMenu;\n\t\t},\n\t\thideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\n\t\t/**\n\t\t * Generate avatar url\n\t\t * \n\t\t * @param {string} user The user name\n\t\t * @param {int} size Size integer, default 32\n\t\t * @returns {string}\n\t\t */\n\t\tgenerateAvatar(user, size=32) {\n\t\t\treturn OC.generateUrl(\n\t\t\t\t'/avatar/{user}/{size}?v={version}',\n\t\t\t\t{\n\t\t\t\t\tuser: user,\n\t\t\t\t\tsize: size,\n\t\t\t\t\tversion: oc_userconfig.avatar.version\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Format array of groups objects to a string for the popup\n\t\t * \n\t\t * @param {array} groups The groups\n\t\t * @returns {string}\n\t\t */\n\t\tformatGroupsTitle(groups) {\n\t\t\tlet names = groups.map(group => group.name);\n\t\t\treturn names.slice(2,).join(', ');\n\t\t},\n\n\t\tdeleteUser() {\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tlet userid = this.user.id;\n\t\t\treturn this.$store.dispatch('deleteUser', {userid})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t});\n\t\t},\n\n\t\tenableDisableUser() {\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet enabled = !this.user.enabled;\n\t\t\treturn this.$store.dispatch('enableDisableUser', {userid, enabled})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user displayName\n\t\t * \n\t\t * @param {string} displayName The display name\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdateDisplayName() {\n\t\t\tlet displayName = this.$refs.displayName.value;\n\t\t\tthis.loading.displayName = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'displayname',\n\t\t\t\tvalue: displayName\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.displayName = false;\n\t\t\t\tthis.$refs.displayName.value = displayName;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user password\n\t\t * \n\t\t * @param {string} password The email adress\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdatePassword() {\n\t\t\tlet password = this.$refs.password.value;\n\t\t\tthis.loading.password = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'password',\n\t\t\t\tvalue: password\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.password = false;\n\t\t\t\tthis.$refs.password.value = ''; // empty & show placeholder \n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user mailAddress\n\t\t * \n\t\t * @param {string} mailAddress The email adress\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdateEmail() {\n\t\t\tlet mailAddress = this.$refs.mailAddress.value;\n\t\t\tthis.loading.mailAddress = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'email',\n\t\t\t\tvalue: mailAddress\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.mailAddress = false;\n\t\t\t\tthis.$refs.mailAddress.value = mailAddress;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Create a new group\n\t\t * \n\t\t * @param {string} groups Group id\n\t\t * @returns {Promise}\n\t\t */\n\t\tcreateGroup(gid) {\n\t\t\tthis.loading = {groups:true, subadmins:true}\n\t\t\tthis.$store.dispatch('addGroup', gid).then(() => {\n\t\t\t\tthis.loading = {groups:false, subadmins:false};\n\t\t\t\tlet userid = this.user.id;\n\t\t\t\tthis.$store.dispatch('addUserGroup', {userid, gid});\n\t\t\t});\n\t\t\treturn this.$store.getters.getGroups[this.groups.length];\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\taddUserGroup(group) {\n\t\t\tthis.loading.groups = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserGroup', {userid, gid})\n\t\t\t\t.then(() => this.loading.groups = false);\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\tremoveUserGroup(group) {\n\t\t\tthis.loading.groups = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserGroup', {userid, gid})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.groups = false\n\t\t\t\t\t// remove user from current list if current list is the removed group\n\t\t\t\t\tif (this.$route.params.selectedGroup === gid) {\n\t\t\t\t\t\tthis.$store.commit('deleteUser', userid);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\taddUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserSubAdmin', {userid, gid})\n\t\t\t\t.then(() => this.loading.subadmins = false);\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\tremoveUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserSubAdmin', {userid, gid})\n\t\t\t\t.then(() => this.loading.subadmins = false);\n\t\t},\n\n\t\t/**\n\t\t * Dispatch quota set request\n\t\t * \n\t\t * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @returns {string}\n\t\t */\n\t\tsetUserQuota(quota = 'none') {\n\t\t\tthis.loading.quota = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tquota = quota.id ? quota.id : quota;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'quota',\n\t\t\t\tvalue: quota\n\t\t\t}).then(() => this.loading.quota = false);\n\t\t\treturn quota;\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Promise|boolean}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setUserQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Dispatch language set request\n\t\t * \n\t\t * @param {Object} lang language object {code:'en', name:'English'}\n\t\t * @returns {Object}\n\t\t */\n\t\tsetUserLanguage(lang) {\n\t\t\tthis.loading.languages = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'language',\n\t\t\t\tvalue: lang.code\n\t\t\t}).then(() => this.loading.languages = false);\n\t\t\treturn lang;\n\t\t}\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { disabled: _vm.loading.delete || _vm.loading.disable }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"avatar\",\n class: {\n \"icon-loading-small\": _vm.loading.delete || _vm.loading.disable\n }\n },\n [\n !_vm.loading.delete && !_vm.loading.disable\n ? _c(\"img\", {\n attrs: {\n alt: \"\",\n width: \"32\",\n height: \"32\",\n src: _vm.generateAvatar(_vm.user.id, 32),\n srcset:\n _vm.generateAvatar(_vm.user.id, 64) +\n \" 2x, \" +\n _vm.generateAvatar(_vm.user.id, 128) +\n \" 4x\"\n }\n })\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"name\" }, [_vm._v(_vm._s(_vm.user.id))]),\n _vm._v(\" \"),\n _c(\n \"form\",\n {\n staticClass: \"displayName\",\n class: { \"icon-loading-small\": _vm.loading.displayName },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.updateDisplayName($event)\n }\n }\n },\n [\n _c(\"input\", {\n ref: \"displayName\",\n attrs: {\n id: \"displayName\" + _vm.user.id + _vm.rand,\n type: \"text\",\n disabled: _vm.loading.displayName || _vm.loading.all,\n autocomplete: \"new-password\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n spellcheck: \"false\"\n },\n domProps: { value: _vm.user.displayname }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"icon-confirm\",\n attrs: { type: \"submit\", value: \"\" }\n })\n ]\n ),\n _vm._v(\" \"),\n _vm.settings.canChangePassword\n ? _c(\n \"form\",\n {\n staticClass: \"password\",\n class: { \"icon-loading-small\": _vm.loading.password },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.updatePassword($event)\n }\n }\n },\n [\n _c(\"input\", {\n ref: \"password\",\n attrs: {\n id: \"password\" + _vm.user.id + _vm.rand,\n type: \"password\",\n required: \"\",\n disabled: _vm.loading.password || _vm.loading.all,\n minlength: _vm.minPasswordLength,\n value: \"\",\n placeholder: _vm.t(\"settings\", \"New password\"),\n autocomplete: \"new-password\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n spellcheck: \"false\"\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"icon-confirm\",\n attrs: { type: \"submit\", value: \"\" }\n })\n ]\n )\n : _c(\"div\"),\n _vm._v(\" \"),\n _c(\n \"form\",\n {\n staticClass: \"mailAddress\",\n class: { \"icon-loading-small\": _vm.loading.mailAddress },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.updateEmail($event)\n }\n }\n },\n [\n _c(\"input\", {\n ref: \"mailAddress\",\n attrs: {\n id: \"mailAddress\" + _vm.user.id + _vm.rand,\n type: \"email\",\n disabled: _vm.loading.mailAddress || _vm.loading.all,\n autocomplete: \"new-password\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n spellcheck: \"false\"\n },\n domProps: { value: _vm.user.email }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"icon-confirm\",\n attrs: { type: \"submit\", value: \"\" }\n })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"groups\",\n class: { \"icon-loading-small\": _vm.loading.groups }\n },\n [\n _c(\n \"multiselect\",\n {\n staticClass: \"multiselect-vue\",\n attrs: {\n value: _vm.userGroups,\n options: _vm.groups,\n disabled: _vm.loading.groups || _vm.loading.all,\n \"tag-placeholder\": \"create\",\n placeholder: _vm.t(\"settings\", \"Add user in group\"),\n label: \"name\",\n \"track-by\": \"id\",\n limit: 2,\n multiple: true,\n taggable: _vm.settings.isAdmin,\n closeOnSelect: false\n },\n on: {\n tag: _vm.createGroup,\n select: _vm.addUserGroup,\n remove: _vm.removeUserGroup\n }\n },\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.formatGroupsTitle(_vm.userGroups),\n expression: \"formatGroupsTitle(userGroups)\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"multiselect__limit\",\n attrs: { slot: \"limit\" },\n slot: \"limit\"\n },\n [_vm._v(\"+\" + _vm._s(_vm.userGroups.length - 2))]\n ),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { slot: \"noResult\" }, slot: \"noResult\" }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))\n ])\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin\n ? _c(\n \"div\",\n {\n staticClass: \"subadmins\",\n class: { \"icon-loading-small\": _vm.loading.subadmins }\n },\n [\n _c(\n \"multiselect\",\n {\n staticClass: \"multiselect-vue\",\n attrs: {\n value: _vm.userSubAdminsGroups,\n options: _vm.subAdminsGroups,\n disabled: _vm.loading.subadmins || _vm.loading.all,\n placeholder: _vm.t(\"settings\", \"Set user as admin for\"),\n label: \"name\",\n \"track-by\": \"id\",\n limit: 2,\n multiple: true,\n closeOnSelect: false\n },\n on: {\n select: _vm.addUserSubAdmin,\n remove: _vm.removeUserSubAdmin\n }\n },\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value: _vm.formatGroupsTitle(_vm.userSubAdminsGroups),\n expression: \"formatGroupsTitle(userSubAdminsGroups)\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"multiselect__limit\",\n attrs: { slot: \"limit\" },\n slot: \"limit\"\n },\n [_vm._v(\"+\" + _vm._s(_vm.userSubAdminsGroups.length - 2))]\n ),\n _vm._v(\" \"),\n _c(\n \"span\",\n { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n )\n ]\n )\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"quota\",\n class: { \"icon-loading-small\": _vm.loading.quota }\n },\n [\n _c(\"multiselect\", {\n staticClass: \"multiselect-vue\",\n attrs: {\n value: _vm.userQuota,\n options: _vm.quotaOptions,\n disabled: _vm.loading.quota || _vm.loading.all,\n \"tag-placeholder\": \"create\",\n placeholder: _vm.t(\"settings\", \"Select user quota\"),\n label: \"label\",\n \"track-by\": \"id\",\n allowEmpty: false,\n taggable: true\n },\n on: { tag: _vm.validateQuota, input: _vm.setUserQuota }\n }),\n _vm._v(\" \"),\n _c(\"progress\", {\n staticClass: \"quota-user-progress\",\n class: { warn: _vm.usedQuota > 80 },\n attrs: { max: \"100\" },\n domProps: { value: _vm.usedQuota }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.showConfig.showLanguages\n ? _c(\n \"div\",\n {\n staticClass: \"languages\",\n class: { \"icon-loading-small\": _vm.loading.languages }\n },\n [\n _c(\"multiselect\", {\n staticClass: \"multiselect-vue\",\n attrs: {\n value: _vm.userLanguage,\n options: _vm.languages,\n disabled: _vm.loading.languages || _vm.loading.all,\n placeholder: _vm.t(\"settings\", \"No language set\"),\n label: \"name\",\n \"track-by\": \"code\",\n allowEmpty: false,\n \"group-values\": \"languages\",\n \"group-label\": \"label\"\n },\n on: { input: _vm.setUserLanguage }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showStoragePath\n ? _c(\"div\", { staticClass: \"storageLocation\" }, [\n _vm._v(_vm._s(_vm.user.storageLocation))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showUserBackend\n ? _c(\"div\", { staticClass: \"userBackend\" }, [\n _vm._v(_vm._s(_vm.user.backend))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showLastLogin\n ? _c(\n \"div\",\n {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip.auto\",\n value:\n _vm.user.lastLogin > 0\n ? _vm.OC.Util.formatDate(_vm.user.lastLogin)\n : \"\",\n expression:\n \"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''\",\n modifiers: { auto: true }\n }\n ],\n staticClass: \"lastLogin\"\n },\n [\n _vm._v(\n \"\\n\\t\\t\" +\n _vm._s(\n _vm.user.lastLogin > 0\n ? _vm.OC.Util.relativeModifiedDate(_vm.user.lastLogin)\n : _vm.t(\"settings\", \"Never\")\n ) +\n \"\\n\\t\"\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"userActions\" }, [\n _vm.OC.currentUser !== _vm.user.id &&\n _vm.user.id !== \"admin\" &&\n !_vm.loading.all\n ? _c(\"div\", { staticClass: \"toggleUserActions\" }, [\n _c(\"div\", {\n directives: [\n {\n name: \"click-outside\",\n rawName: \"v-click-outside\",\n value: _vm.hideMenu,\n expression: \"hideMenu\"\n }\n ],\n staticClass: \"icon-more\",\n on: { click: _vm.toggleMenu }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"popovermenu\", class: { open: _vm.openedMenu } },\n [_c(\"popover-menu\", { attrs: { menu: _vm.userActions } })],\n 1\n )\n ])\n : _vm._e()\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-d19586ce\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userRow.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userRow.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d19586ce\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./userRow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/userList/userRow.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-d19586ce\", Component.options)\n } else {\n hotAPI.reload(\"data-v-d19586ce\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","<template>\n\t<div id=\"app-content\" class=\"user-list-grid\" v-on:scroll.passive=\"onScroll\">\n\t\t<div class=\"row\" id=\"grid-header\" :class=\"{'sticky': scrolled && !showConfig.showNewUserForm}\">\n\t\t\t<div id=\"headerAvatar\" class=\"avatar\"></div>\n\t\t\t<div id=\"headerName\" class=\"name\">{{ t('settings', 'Username') }}</div>\n\t\t\t<div id=\"headerDisplayName\" class=\"displayName\">{{ t('settings', 'Full name') }}</div>\n\t\t\t<div id=\"headerPassword\" class=\"password\">{{ t('settings', 'Password') }}</div>\n\t\t\t<div id=\"headerAddress\" class=\"mailAddress\">{{ t('settings', 'Email') }}</div>\n\t\t\t<div id=\"headerGroups\" class=\"groups\">{{ t('settings', 'Groups') }}</div>\n\t\t\t<div id=\"headerSubAdmins\" class=\"subadmins\"\n\t\t\t\t v-if=\"subAdminsGroups.length>0 && settings.isAdmin\">{{ t('settings', 'Group admin for') }}</div>\n\t\t\t<div id=\"headerQuota\" class=\"quota\">{{ t('settings', 'Quota') }}</div>\n\t\t\t<div id=\"headerLanguages\" class=\"languages\"\n\t\t\t\t v-if=\"showConfig.showLanguages\">{{ t('settings', 'Languages') }}</div>\n\t\t\t<div class=\"headerStorageLocation storageLocation\"\n\t\t\t\t v-if=\"showConfig.showStoragePath\">{{ t('settings', 'Storage location') }}</div>\n\t\t\t<div class=\"headerUserBackend userBackend\"\n\t\t\t\t v-if=\"showConfig.showUserBackend\">{{ t('settings', 'User backend') }}</div>\n\t\t\t<div class=\"headerLastLogin lastLogin\" \n\t\t\t\t v-if=\"showConfig.showLastLogin\">{{ t('settings', 'Last login') }}</div>\n\t\t\t<div class=\"userActions\"></div>\n\t\t</div>\n\n\t\t<form class=\"row\" id=\"new-user\" v-show=\"showConfig.showNewUserForm\"\n\t\t\t v-on:submit.prevent=\"createUser\" :disabled=\"loading\"\n\t\t\t :class=\"{'sticky': scrolled && showConfig.showNewUserForm}\">\n\t\t\t<div :class=\"loading?'icon-loading-small':'icon-add'\"></div>\n\t\t\t<div class=\"name\">\n\t\t\t\t<input id=\"newusername\" type=\"text\" required v-model=\"newUser.id\"\n\t\t\t\t\t :placeholder=\"t('settings', 'User name')\" name=\"username\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\"\n\t\t\t\t\t pattern=\"[a-zA-Z0-9 _\\.@\\-']+\">\n\t\t\t</div>\n\t\t\t<div class=\"displayName\">\n\t\t\t\t<input id=\"newdisplayname\" type=\"text\" v-model=\"newUser.displayName\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Display name')\" name=\"displayname\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\">\n\t\t\t</div>\n\t\t\t<div class=\"password\">\n\t\t\t\t<input id=\"newuserpassword\" type=\"password\" v-model=\"newUser.password\"\n\t\t\t\t\t :required=\"newUser.mailAddress===''\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Password')\" name=\"password\"\n\t\t\t\t\t autocomplete=\"new-password\" autocapitalize=\"none\" autocorrect=\"off\"\n\t\t\t\t\t :minlength=\"minPasswordLength\">\n\t\t\t</div>\n\t\t\t<div class=\"mailAddress\">\n\t\t\t\t<input id=\"newemail\" type=\"email\" v-model=\"newUser.mailAddress\"\n\t\t\t\t\t :required=\"newUser.password===''\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Mail address')\" name=\"email\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\">\n\t\t\t</div>\n\t\t\t<div class=\"groups\">\n\t\t\t\t<!-- hidden input trick for vanilla html5 form validation -->\n\t\t\t\t<input type=\"text\" :value=\"newUser.groups\" v-if=\"!settings.isAdmin\"\n\t\t\t\t\t tabindex=\"-1\" id=\"newgroups\" :required=\"!settings.isAdmin\" />\n\t\t\t\t<multiselect :options=\"groups\" v-model=\"newUser.groups\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Add user in group')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :multiple=\"true\" :close-on-select=\"false\"\n\t\t\t\t\t\t\t :allowEmpty=\"settings.isAdmin\">\n\t\t\t\t\t\t\t <!-- If user is not admin, he is a subadmin.\n\t\t\t\t\t\t\t \t Subadmins can't create users outside their groups\n\t\t\t\t\t\t\t\t Therefore, empty select is forbidden -->\n\t\t\t\t\t<span slot=\"noResult\">{{t('settings', 'No results')}}</span>\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"subadmins\" v-if=\"subAdminsGroups.length>0 && settings.isAdmin\">\n\t\t\t\t<multiselect :options=\"subAdminsGroups\" v-model=\"newUser.subAdminsGroups\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Set user as admin for')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :multiple=\"true\" :close-on-select=\"false\">\n\t\t\t\t\t<span slot=\"noResult\">{{t('settings', 'No results')}}</span>\n\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"quota\">\n\t\t\t\t<multiselect :options=\"quotaOptions\" v-model=\"newUser.quota\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Select user quota')\"\n\t\t\t\t\t\t\t label=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t \t @tag=\"validateQuota\" >\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"languages\" v-if=\"showConfig.showLanguages\">\n\t\t\t\t<multiselect :options=\"languages\" v-model=\"newUser.language\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Default language')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"code\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :allowEmpty=\"false\" group-values=\"languages\" group-label=\"label\">\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"storageLocation\" v-if=\"showConfig.showStoragePath\"></div>\n\t\t\t<div class=\"userBackend\" v-if=\"showConfig.showUserBackend\"></div>\n\t\t\t<div class=\"lastLogin\" v-if=\"showConfig.showLastLogin\"></div>\n\t\t\t<div class=\"userActions\">\n\t\t\t\t<input type=\"submit\" id=\"newsubmit\" class=\"button primary icon-checkmark-white has-tooltip\"\n\t\t\t\t\t value=\"\" :title=\"t('settings', 'Add a new user')\">\n\t\t\t\t<input type=\"reset\" id=\"newreset\" class=\"button icon-close has-tooltip\" @click=\"resetForm\"\n\t\t\t\t\t value=\"\" :title=\"t('settings', 'Cancel and reset the form')\">\n\t\t\t</div>\n\t\t</form>\n\n\t\t<user-row v-for=\"(user, key) in filteredUsers\" :user=\"user\" :key=\"key\" :settings=\"settings\" :showConfig=\"showConfig\"\n\t\t\t\t :groups=\"groups\" :subAdminsGroups=\"subAdminsGroups\" :quotaOptions=\"quotaOptions\" :languages=\"languages\" />\n\t\t<infinite-loading @infinite=\"infiniteHandler\" ref=\"infiniteLoading\">\n\t\t\t<div slot=\"spinner\"><div class=\"users-icon-loading icon-loading\"></div></div>\n\t\t\t<div slot=\"no-more\"><div class=\"users-list-end\">— {{t('settings', 'no more results')}} —</div></div>\n\t\t\t<div slot=\"no-results\">\n\t\t\t\t<div id=\"emptycontent\">\n\t\t\t\t\t<div class=\"icon-contacts-dark\"></div>\n\t\t\t\t\t<h2>{{t('settings', 'No users in here')}}</h2>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</infinite-loading>\n\t</div>\n</template>\n\n<script>\nimport userRow from './userList/userRow';\nimport Multiselect from 'vue-multiselect';\nimport InfiniteLoading from 'vue-infinite-loading';\nimport Vue from 'vue';\n\nexport default {\n\tname: 'userList',\n\tprops: ['users', 'showConfig', 'selectedGroup'],\n\tcomponents: {\n\t\tuserRow,\n\t\tMultiselect,\n\t\tInfiniteLoading\n\t},\n\tdata() {\n\t\tlet unlimitedQuota = {id:'none', label:t('settings', 'Unlimited')},\n\t\t\tdefaultQuota = {id:'default', label:t('settings', 'Default quota')};\n\t\treturn {\n\t\t\tunlimitedQuota: unlimitedQuota,\n\t\t\tdefaultQuota: defaultQuota,\n\t\t\tloading: false,\n\t\t\tscrolled: false,\n\t\t\tnewUser: {\n\t\t\t\tid:'',\n\t\t\t\tdisplayName:'',\n\t\t\t\tpassword:'',\n\t\t\t\tmailAddress:'',\n\t\t\t\tgroups: [],\n\t\t\t\tsubAdminsGroups: [],\n\t\t\t\tquota: defaultQuota,\n\t\t\t\tlanguage: {code: 'en', name: t('settings', 'Default language')}\n\t\t\t}\n\t\t};\n\t},\n\tmounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));\n\t\t}\n\n\t\t/** \n\t\t * Init default language from server data. The use of this.settings\n\t\t * requires a computed variable, which break the v-model binding of the form,\n\t\t * this is a much easier solution than getter and setter on a computed var\n\t\t */\n\t\tVue.set(this.newUser.language, 'code', this.settings.defaultLanguage);\n\n\t\t/**\n\t\t * In case the user directly loaded the user list within a group\n\t\t * the watch won't be triggered. We need to initialize it.\n\t\t */\n\t\tthis.setNewUserDefaultGroup(this.$route.params.selectedGroup);\n\t},\n\tcomputed: {\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\t\tfilteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\tlet disabledUsers = this.users.filter(user => user.enabled !== true);\n\t\t\t\tif (disabledUsers.length===0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {\n\t\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\t\tthis.$router.push({name: 'users'});\n\t\t\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t\t\t}\n\t\t\t\treturn disabledUsers;\n\t\t\t}\n\t\t\treturn this.users.filter(user => user.enabled === true);\n\t\t},\n\t\tgroups() {\n\t\t\t// data provided php side + remove the disabled group\n\t\t\treturn this.$store.getters.getGroups\n\t\t\t\t.filter(group => group.id !== 'disabled')\n\t\t\t\t.sort((a, b) => a.name.localeCompare(b.name));\n\t\t},\n\t\tsubAdminsGroups() {\n\t\t\t// data provided php side\n\t\t\treturn this.$store.getters.getServerData.subadmingroups;\n\t\t},\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tlet quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\tquotaPreset.unshift(this.defaultQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\t\t/* LANGUAGES */\n\t\tlanguages() {\n\t\t\treturn Array(\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonlanguages\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'All languages'),\n\t\t\t\t\tlanguages: this.settings.languages.languages\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t},\n\twatch: {\n\t\t// watch url change and group select\n\t\tselectedGroup: function (val, old) {\n\t\t\tthis.$store.commit('resetUsers');\n\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t\tthis.setNewUserDefaultGroup(val);\n\t\t}\n\t},\n\tmethods: {\n\t\tonScroll(event) {\n\t\t\tthis.scrolled = event.target.scrollTop>0;\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Object}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota !== null && validQuota > 0) {\n\t\t\t\t// unify format output\n\t\t\t\tquota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota));\n\t\t\t\treturn this.newUser.quota = {id: quota, label: quota};\n\t\t\t}\n\t\t\t// Default is unlimited\n\t\t\treturn this.newUser.quota = this.quotaOptions[0];\n\t\t},\n\n\t\tinfiniteHandler($state) {\n\t\t\tthis.$store.dispatch('getUsers', {\n\t\t\t\toffset: this.usersOffset,\n\t\t\t\tlimit: this.usersLimit,\n\t\t\t\tgroup: this.selectedGroup !== 'disabled' ? this.selectedGroup : ''\n\t\t\t})\n\t\t\t.then((response) => { response ? $state.loaded() : $state.complete() });\n\t\t},\n\n\t\tresetForm() {\n\t\t\t// revert form to original state\n\t\t\tObject.assign(this.newUser, this.$options.data.call(this).newUser);\n\t\t\tthis.loading = false;\n\t\t},\n\t\tcreateUser() {\n\t\t\tthis.loading = true;\n\t\t\tthis.$store.dispatch('addUser', {\n\t\t\t\tuserid: this.newUser.id,\n\t\t\t\tpassword: this.newUser.password,\n\t\t\t\temail: this.newUser.mailAddress,\n\t\t\t\tgroups: this.newUser.groups.map(group => group.id),\n\t\t\t\tsubadmin: this.newUser.subAdminsGroups.map(group => group.id),\n\t\t\t\tquota: this.newUser.quota.id,\n\t\t\t\tlanguage: this.newUser.language.code,\n\t\t\t}).then(() => this.resetForm())\n\t\t\t.catch(() => this.loading = false);\n\t\t},\n\t\tsetNewUserDefaultGroup(value) {\n\t\t\tif (value && value.length > 0) {\n\t\t\t\t// setting new user default group to the current selected one\n\t\t\t\tlet currentGroup = this.groups.find(group => group.id === value);\n\t\t\t\tif (currentGroup) {\n\t\t\t\t\tthis.newUser.groups = [currentGroup];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// fallback, empty selected group\n\t\t\tthis.newUser.groups = [];\n\t\t}\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"user-list-grid\",\n attrs: { id: \"app-content\" },\n on: {\n \"&scroll\": function($event) {\n return _vm.onScroll($event)\n }\n }\n },\n [\n _c(\n \"div\",\n {\n staticClass: \"row\",\n class: { sticky: _vm.scrolled && !_vm.showConfig.showNewUserForm },\n attrs: { id: \"grid-header\" }\n },\n [\n _c(\"div\", { staticClass: \"avatar\", attrs: { id: \"headerAvatar\" } }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"name\", attrs: { id: \"headerName\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Username\")))\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"displayName\", attrs: { id: \"headerDisplayName\" } },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Full name\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"password\", attrs: { id: \"headerPassword\" } },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Password\")))]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"mailAddress\", attrs: { id: \"headerAddress\" } },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Email\")))]\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"groups\", attrs: { id: \"headerGroups\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Groups\")))\n ]),\n _vm._v(\" \"),\n _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin\n ? _c(\n \"div\",\n { staticClass: \"subadmins\", attrs: { id: \"headerSubAdmins\" } },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Group admin for\")))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"quota\", attrs: { id: \"headerQuota\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Quota\")))\n ]),\n _vm._v(\" \"),\n _vm.showConfig.showLanguages\n ? _c(\n \"div\",\n { staticClass: \"languages\", attrs: { id: \"headerLanguages\" } },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Languages\")))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showStoragePath\n ? _c(\n \"div\",\n { staticClass: \"headerStorageLocation storageLocation\" },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"Storage location\")))]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showUserBackend\n ? _c(\"div\", { staticClass: \"headerUserBackend userBackend\" }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"User backend\")))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showLastLogin\n ? _c(\"div\", { staticClass: \"headerLastLogin lastLogin\" }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Last login\")))\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"userActions\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"form\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showConfig.showNewUserForm,\n expression: \"showConfig.showNewUserForm\"\n }\n ],\n staticClass: \"row\",\n class: { sticky: _vm.scrolled && _vm.showConfig.showNewUserForm },\n attrs: { id: \"new-user\", disabled: _vm.loading },\n on: {\n submit: function($event) {\n $event.preventDefault()\n return _vm.createUser($event)\n }\n }\n },\n [\n _c(\"div\", { class: _vm.loading ? \"icon-loading-small\" : \"icon-add\" }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"name\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newUser.id,\n expression: \"newUser.id\"\n }\n ],\n attrs: {\n id: \"newusername\",\n type: \"text\",\n required: \"\",\n placeholder: _vm.t(\"settings\", \"User name\"),\n name: \"username\",\n autocomplete: \"off\",\n autocapitalize: \"none\",\n autocorrect: \"off\",\n pattern: \"[a-zA-Z0-9 _\\\\.@\\\\-']+\"\n },\n domProps: { value: _vm.newUser.id },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.newUser, \"id\", $event.target.value)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"displayName\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newUser.displayName,\n expression: \"newUser.displayName\"\n }\n ],\n attrs: {\n id: \"newdisplayname\",\n type: \"text\",\n placeholder: _vm.t(\"settings\", \"Display name\"),\n name: \"displayname\",\n autocomplete: \"off\",\n autocapitalize: \"none\",\n autocorrect: \"off\"\n },\n domProps: { value: _vm.newUser.displayName },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.newUser, \"displayName\", $event.target.value)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"password\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newUser.password,\n expression: \"newUser.password\"\n }\n ],\n attrs: {\n id: \"newuserpassword\",\n type: \"password\",\n required: _vm.newUser.mailAddress === \"\",\n placeholder: _vm.t(\"settings\", \"Password\"),\n name: \"password\",\n autocomplete: \"new-password\",\n autocapitalize: \"none\",\n autocorrect: \"off\",\n minlength: _vm.minPasswordLength\n },\n domProps: { value: _vm.newUser.password },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.newUser, \"password\", $event.target.value)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"mailAddress\" }, [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.newUser.mailAddress,\n expression: \"newUser.mailAddress\"\n }\n ],\n attrs: {\n id: \"newemail\",\n type: \"email\",\n required: _vm.newUser.password === \"\",\n placeholder: _vm.t(\"settings\", \"Mail address\"),\n name: \"email\",\n autocomplete: \"off\",\n autocapitalize: \"none\",\n autocorrect: \"off\"\n },\n domProps: { value: _vm.newUser.mailAddress },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.$set(_vm.newUser, \"mailAddress\", $event.target.value)\n }\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"groups\" },\n [\n !_vm.settings.isAdmin\n ? _c(\"input\", {\n attrs: {\n type: \"text\",\n tabindex: \"-1\",\n id: \"newgroups\",\n required: !_vm.settings.isAdmin\n },\n domProps: { value: _vm.newUser.groups }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"multiselect\",\n {\n staticClass: \"multiselect-vue\",\n attrs: {\n options: _vm.groups,\n placeholder: _vm.t(\"settings\", \"Add user in group\"),\n label: \"name\",\n \"track-by\": \"id\",\n multiple: true,\n \"close-on-select\": false,\n allowEmpty: _vm.settings.isAdmin\n },\n model: {\n value: _vm.newUser.groups,\n callback: function($$v) {\n _vm.$set(_vm.newUser, \"groups\", $$v)\n },\n expression: \"newUser.groups\"\n }\n },\n [\n _c(\n \"span\",\n { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n )\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.subAdminsGroups.length > 0 && _vm.settings.isAdmin\n ? _c(\n \"div\",\n { staticClass: \"subadmins\" },\n [\n _c(\n \"multiselect\",\n {\n staticClass: \"multiselect-vue\",\n attrs: {\n options: _vm.subAdminsGroups,\n placeholder: _vm.t(\"settings\", \"Set user as admin for\"),\n label: \"name\",\n \"track-by\": \"id\",\n multiple: true,\n \"close-on-select\": false\n },\n model: {\n value: _vm.newUser.subAdminsGroups,\n callback: function($$v) {\n _vm.$set(_vm.newUser, \"subAdminsGroups\", $$v)\n },\n expression: \"newUser.subAdminsGroups\"\n }\n },\n [\n _c(\n \"span\",\n { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n )\n ]\n )\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"quota\" },\n [\n _c(\"multiselect\", {\n staticClass: \"multiselect-vue\",\n attrs: {\n options: _vm.quotaOptions,\n placeholder: _vm.t(\"settings\", \"Select user quota\"),\n label: \"label\",\n \"track-by\": \"id\",\n allowEmpty: false,\n taggable: true\n },\n on: { tag: _vm.validateQuota },\n model: {\n value: _vm.newUser.quota,\n callback: function($$v) {\n _vm.$set(_vm.newUser, \"quota\", $$v)\n },\n expression: \"newUser.quota\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.showConfig.showLanguages\n ? _c(\n \"div\",\n { staticClass: \"languages\" },\n [\n _c(\"multiselect\", {\n staticClass: \"multiselect-vue\",\n attrs: {\n options: _vm.languages,\n placeholder: _vm.t(\"settings\", \"Default language\"),\n label: \"name\",\n \"track-by\": \"code\",\n allowEmpty: false,\n \"group-values\": \"languages\",\n \"group-label\": \"label\"\n },\n model: {\n value: _vm.newUser.language,\n callback: function($$v) {\n _vm.$set(_vm.newUser, \"language\", $$v)\n },\n expression: \"newUser.language\"\n }\n })\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showStoragePath\n ? _c(\"div\", { staticClass: \"storageLocation\" })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showUserBackend\n ? _c(\"div\", { staticClass: \"userBackend\" })\n : _vm._e(),\n _vm._v(\" \"),\n _vm.showConfig.showLastLogin\n ? _c(\"div\", { staticClass: \"lastLogin\" })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"userActions\" }, [\n _c(\"input\", {\n staticClass: \"button primary icon-checkmark-white has-tooltip\",\n attrs: {\n type: \"submit\",\n id: \"newsubmit\",\n value: \"\",\n title: _vm.t(\"settings\", \"Add a new user\")\n }\n }),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"button icon-close has-tooltip\",\n attrs: {\n type: \"reset\",\n id: \"newreset\",\n value: \"\",\n title: _vm.t(\"settings\", \"Cancel and reset the form\")\n },\n on: { click: _vm.resetForm }\n })\n ])\n ]\n ),\n _vm._v(\" \"),\n _vm._l(_vm.filteredUsers, function(user, key) {\n return _c(\"user-row\", {\n key: key,\n attrs: {\n user: user,\n settings: _vm.settings,\n showConfig: _vm.showConfig,\n groups: _vm.groups,\n subAdminsGroups: _vm.subAdminsGroups,\n quotaOptions: _vm.quotaOptions,\n languages: _vm.languages\n }\n })\n }),\n _vm._v(\" \"),\n _c(\n \"infinite-loading\",\n { ref: \"infiniteLoading\", on: { infinite: _vm.infiniteHandler } },\n [\n _c(\"div\", { attrs: { slot: \"spinner\" }, slot: \"spinner\" }, [\n _c(\"div\", { staticClass: \"users-icon-loading icon-loading\" })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { slot: \"no-more\" }, slot: \"no-more\" }, [\n _c(\"div\", { staticClass: \"users-list-end\" }, [\n _vm._v(\"— \" + _vm._s(_vm.t(\"settings\", \"no more results\")) + \" —\")\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { slot: \"no-results\" }, slot: \"no-results\" }, [\n _c(\"div\", { attrs: { id: \"emptycontent\" } }, [\n _c(\"div\", { staticClass: \"icon-contacts-dark\" }),\n _vm._v(\" \"),\n _c(\"h2\", [_vm._v(_vm._s(_vm.t(\"settings\", \"No users in here\")))])\n ])\n ])\n ]\n )\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-40745299\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./userList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./userList.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-40745299\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./userList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/components/userList.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-40745299\", Component.options)\n } else {\n hotAPI.reload(\"data-v-40745299\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","import axios from 'axios';\n\nconst requestToken = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken');\nconst tokenHeaders = { headers: { requesttoken: requestToken } };\n\nconst sanitize = function(url) {\n\treturn url.replace(/\\/$/, ''); // Remove last url slash\n};\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * \taction(context) {\n\t *\t\treturn api.requireAdmin().then((response) => {\n\t *\t\t\treturn api.get('url')\n\t *\t\t\t\t.then((response) => {API success})\n\t *\t\t\t\t.catch((error) => {API failure});\n\t *\t\t}).catch((error) => {requireAdmin failure});\n\t *\t}\n\t * // vue\n\t *\tthis.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t * \n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t * \n\t * e.g\n\t *\tapi.requireAdmin().then((response) => {\n\t *\t\tapi.get('url')\n\t *\t\t\t.then((response) => {API success})\n\t *\t\t\t.catch((error) => {throw error;});\n\t *\t}).catch((error) => {requireAdmin OR API failure});\n\t * \n\t * @returns {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\t// TODO: migrate the OC.dialog to Vue and avoid this mess\n\t\t\t// wait for password confirmation\n\t\t\tlet passwordTimeout;\n\t\t\tlet waitForpassword = function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tpasswordTimeout = setTimeout(waitForpassword, 500);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\tclearTimeout(promiseTimeout);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\t// automatically reject after 5s if not resolved\n\t\t\tlet promiseTimeout = setTimeout(() => {\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\t// close dialog\n\t\t\t\tif (document.getElementsByClassName('oc-dialog-close').length>0) {\n\t\t\t\t\tdocument.getElementsByClassName('oc-dialog-close')[0].click();\n\t\t\t\t}\n\t\t\t\tOC.Notification.showTemporary(t('settings', 'You did not enter the password in time'));\n\t\t\t\treject('Password request cancelled');\n\t\t\t}, 7000); \n\n\t\t\t// request password\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation();\n\t\t\twaitForpassword();\n\t\t});\n\t},\n\tget(url) {\n\t\treturn axios.get(sanitize(url), tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tpost(url, data) {\n\t\treturn axios.post(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { data: data, headers: tokenHeaders.headers })\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t}\n};","<template>\n\t<div id=\"app\">\n\t\t<app-navigation :menu=\"menu\">\n\t\t\t<template slot=\"settings-content\">\n\t\t\t\t<div>\n\t\t\t\t\t<p>{{t('settings', 'Default quota :')}}</p>\n\t\t\t\t\t<multiselect :value=\"defaultQuota\" :options=\"quotaOptions\"\n\t\t\t\t\t\t\t\ttag-placeholder=\"create\" :placeholder=\"t('settings', 'Select default quota')\"\n\t\t\t\t\t\t\t\tlabel=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t\t:allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t\t\t@tag=\"validateQuota\" @input=\"setDefaultQuota\">\n\t\t\t\t\t</multiselect>\n\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showLanguages\" class=\"checkbox\" v-model=\"showLanguages\">\n\t\t\t\t\t<label for=\"showLanguages\">{{t('settings', 'Show Languages')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showLastLogin\" class=\"checkbox\" v-model=\"showLastLogin\">\n\t\t\t\t\t<label for=\"showLastLogin\">{{t('settings', 'Show last login')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showUserBackend\" class=\"checkbox\" v-model=\"showUserBackend\">\n\t\t\t\t\t<label for=\"showUserBackend\">{{t('settings', 'Show user backend')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showStoragePath\" class=\"checkbox\" v-model=\"showStoragePath\">\n\t\t\t\t\t<label for=\"showStoragePath\">{{t('settings', 'Show storage path')}}</label>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</app-navigation>\n\t\t<user-list :users=\"users\" :showConfig=\"showConfig\" :selectedGroup=\"selectedGroup\" />\n\t</div>\n</template>\n\n<script>\nimport appNavigation from '../components/appNavigation';\nimport userList from '../components/userList';\nimport Vue from 'vue';\nimport VueLocalStorage from 'vue-localstorage'\nimport Multiselect from 'vue-multiselect';\nimport api from '../store/api';\n\nVue.use(VueLocalStorage)\nVue.use(VueLocalStorage)\n\nexport default {\n\tname: 'Users',\n\tprops: ['selectedGroup'],\n\tcomponents: {\n\t\tappNavigation,\n\t\tuserList,\n\t\tMultiselect\n\t},\n\tbeforeMount() {\n\t\tthis.$store.commit('initGroups', {\n\t\t\tgroups: this.$store.getters.getServerData.groups,\n\t\t\torderBy: this.$store.getters.getServerData.sortGroups,\n\t\t\tuserCount: this.$store.getters.getServerData.userCount\n\t\t});\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength');\n\t},\n\tdata() {\n\t\treturn {\n\t\t\t// default quota is unlimited\n\t\t\tunlimitedQuota: {id:'default', label:t('settings', 'Unlimited')},\n\t\t\t// temporary value used for multiselect change\n\t\t\tselectedQuota: false,\n\t\t\tshowConfig: {\n\t\t\t\tshowStoragePath: false,\n\t\t\t\tshowUserBackend: false,\n\t\t\t\tshowLastLogin: false,\n\t\t\t\tshowNewUserForm: false,\n\t\t\t\tshowLanguages: false\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleNewUserMenu() {\n\t\t\tthis.showConfig.showNewUserForm = !this.showConfig.showNewUserForm;\n\t\t\tif (this.showConfig.showNewUserForm) {\n\t\t\t\tVue.nextTick(() => {\n\t\t\t\t\twindow.newusername.focus();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetLocalstorage(key) {\n\t\t\t// force initialization\n\t\t\tlet localConfig = this.$localStorage.get(key);\n\t\t\t// if localstorage is null, fallback to original values\n\t\t\tthis.showConfig[key] = localConfig !== null ? localConfig === 'true' : this.showConfig[key];\n\t\t\treturn this.showConfig[key];\n\t\t},\n\t\tsetLocalStorage(key, status) {\n\t\t\tthis.showConfig[key] = status;\n\t\t\tthis.$localStorage.set(key, status);\n\t\t\treturn status;\n\t\t},\n\t\tremoveGroup(groupid) {\n\t\t\tlet self = this;\n\t\t\t// TODO migrate to a vue js confirm dialog component \n\t\t\tOC.dialogs.confirm(\n\t\t\t\tt('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', {group: groupid}),\n\t\t\t\tt('settings','Please confirm the group removal '),\n\t\t\t\tfunction (success) {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tself.$store.dispatch('removeGroup', groupid);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Dispatch default quota set request\n\t\t * \n\t\t * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @returns {string}\n\t\t */\n\t\tsetDefaultQuota(quota = 'none') {\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota\n\t\t\t}).then(() => {\n\t\t\t\tif (typeof quota !== 'object') {\n\t\t\t\t\tquota = {id: quota, label: quota};\n\t\t\t\t}\n\t\t\t\tthis.defaultQuota = quota;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Promise|boolean}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setDefaultQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t},\n\t},\n\tcomputed: {\n\t\tusers() {\n\t\t\treturn this.$store.getters.getUsers;\n\t\t},\n\t\tloading() {\n\t\t\treturn Object.keys(this.users).length === 0;\n\t\t},\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\t\t// Local settings\n\t\tshowLanguages: {\n\t\t\tget: function() {return this.getLocalstorage('showLanguages')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showLanguages', status);\n\t\t\t}\n\t\t},\n\t\tshowLastLogin: {\n\t\t\tget: function() {return this.getLocalstorage('showLastLogin')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showLastLogin', status);\n\t\t\t}\n\t\t},\n\t\tshowUserBackend: {\n\t\t\tget: function() {return this.getLocalstorage('showUserBackend')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showUserBackend', status);\n\t\t\t}\n\t\t},\n\t\tshowStoragePath: {\n\t\t\tget: function() {return this.getLocalstorage('showStoragePath')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showStoragePath', status);\n\t\t\t}\n\t\t},\n\n\t\tuserCount() {\n\t\t\treturn this.$store.getters.getUserCount;\n\t\t},\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\n\t\t// default quota\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tlet quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\t\t// mapping saved values to objects\n\t\tdefaultQuota: {\n\t\t\tget: function() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota;\n\t\t\t\t}\n\t\t\t\tif (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn {id:this.settings.defaultQuota, label:this.settings.defaultQuota};\n\t\t\t\t}\n\t\t\t\treturn this.unlimitedQuota; // unlimited\n\t\t\t},\n\t\t\tset: function(quota) {\n\t\t\t\tthis.selectedQuota = quota;\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu() {\n\t\t\t// Data provided php side\n\t\t\tlet groups = this.$store.getters.getGroups;\n\t\t\tgroups = Array.isArray(groups) ? groups : [];\n\n\t\t\t// Map groups\n\t\t\tgroups = groups.map(group => {\n\t\t\t\tlet item = {};\n\t\t\t\titem.id = group.id.replace(' ', '_');\n\t\t\t\titem.classes = [];\t\t\t\t\t\t\t// empty classes, active will be set later\n\t\t\t\titem.router = {\t\t\t\t\t\t\t\t// router link to\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: {selectedGroup: group.id}\n\t\t\t\t};\n\t\t\t\titem.text = group.name;\t\t\t\t\t\t// group name\n\t\t\t\titem.utils = {counter: group.usercount};\t// users count\n\n\t\t\t\tif (item.id !== 'admin' && item.id !== 'disabled' && this.settings.isAdmin) {\n\t\t\t\t\t// add delete button on real groups\n\t\t\t\t\tlet self = this;\n\t\t\t\t\titem.utils.actions = [{\n\t\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\t\ttext: t('settings', 'Remove group'),\n\t\t\t\t\t\taction: function() {self.removeGroup(group.id)}\n\t\t\t\t\t}];\n\t\t\t\t};\n\t\t\t\treturn item;\n\t\t\t});\n\n\t\t\t// Adjust data\n\t\t\tlet adminGroup = groups.find(group => group.id == 'admin');\n\t\t\tlet disabledGroupIndex = groups.findIndex(group => group.id == 'disabled');\n\t\t\tlet disabledGroup = groups[disabledGroupIndex];\n\t\t\tif (adminGroup && adminGroup.text) {\n\t\t\t\tadminGroup.text = t('settings', 'Admins'); // rename admin group\n\t\t\t}\n\t\t\tif (disabledGroup && disabledGroup.text) {\n\t\t\t\tdisabledGroup.text = t('settings', 'Disabled users'); // rename disabled group\n\t\t\t\tif (disabledGroup.utils.counter === 0) {\n\t\t\t\t\tgroups.splice(disabledGroupIndex, 1); // remove disabled if empty\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add everyone group\n\t\t\tgroups.unshift({\n\t\t\t\tid: 'everyone',\n\t\t\t\tclasses: [],\n\t\t\t\trouter: {name:'users'},\n\t\t\t\ttext: t('settings', 'Everyone'),\n\t\t\t\tutils: {counter: this.userCount}\n\t\t\t});\n\n\t\t\t// Set current group as active\n\t\t\tlet activeGroup = groups.findIndex(group => group.id === this.selectedGroup);\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tgroups[activeGroup].classes.push('active');\n\t\t\t} else {\n\t\t\t\tgroups[0].classes.push('active');\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn {\n\t\t\t\tid: 'usergrouplist',\n\t\t\t\tnew: {\n\t\t\t\t\tid:'new-user-button',\n\t\t\t\t\ttext: t('settings','New user'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: this.toggleNewUserMenu\n\t\t\t\t},\n\t\t\t\titems: groups\n\t\t\t}\n\t\t},\n\t}\n}\n</script>\n","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"app\" } },\n [\n _c(\n \"app-navigation\",\n { attrs: { menu: _vm.menu } },\n [\n _c(\"template\", { slot: \"settings-content\" }, [\n _c(\n \"div\",\n [\n _c(\"p\", [_vm._v(_vm._s(_vm.t(\"settings\", \"Default quota :\")))]),\n _vm._v(\" \"),\n _c(\"multiselect\", {\n staticClass: \"multiselect-vue\",\n attrs: {\n value: _vm.defaultQuota,\n options: _vm.quotaOptions,\n \"tag-placeholder\": \"create\",\n placeholder: _vm.t(\"settings\", \"Select default quota\"),\n label: \"label\",\n \"track-by\": \"id\",\n allowEmpty: false,\n taggable: true\n },\n on: { tag: _vm.validateQuota, input: _vm.setDefaultQuota }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.showLanguages,\n expression: \"showLanguages\"\n }\n ],\n staticClass: \"checkbox\",\n attrs: { type: \"checkbox\", id: \"showLanguages\" },\n domProps: {\n checked: Array.isArray(_vm.showLanguages)\n ? _vm._i(_vm.showLanguages, null) > -1\n : _vm.showLanguages\n },\n on: {\n change: function($event) {\n var $$a = _vm.showLanguages,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && (_vm.showLanguages = $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n (_vm.showLanguages = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.showLanguages = $$c\n }\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"label\", { attrs: { for: \"showLanguages\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Show Languages\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.showLastLogin,\n expression: \"showLastLogin\"\n }\n ],\n staticClass: \"checkbox\",\n attrs: { type: \"checkbox\", id: \"showLastLogin\" },\n domProps: {\n checked: Array.isArray(_vm.showLastLogin)\n ? _vm._i(_vm.showLastLogin, null) > -1\n : _vm.showLastLogin\n },\n on: {\n change: function($event) {\n var $$a = _vm.showLastLogin,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && (_vm.showLastLogin = $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n (_vm.showLastLogin = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.showLastLogin = $$c\n }\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"label\", { attrs: { for: \"showLastLogin\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Show last login\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.showUserBackend,\n expression: \"showUserBackend\"\n }\n ],\n staticClass: \"checkbox\",\n attrs: { type: \"checkbox\", id: \"showUserBackend\" },\n domProps: {\n checked: Array.isArray(_vm.showUserBackend)\n ? _vm._i(_vm.showUserBackend, null) > -1\n : _vm.showUserBackend\n },\n on: {\n change: function($event) {\n var $$a = _vm.showUserBackend,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && (_vm.showUserBackend = $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n (_vm.showUserBackend = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.showUserBackend = $$c\n }\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"label\", { attrs: { for: \"showUserBackend\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Show user backend\")))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.showStoragePath,\n expression: \"showStoragePath\"\n }\n ],\n staticClass: \"checkbox\",\n attrs: { type: \"checkbox\", id: \"showStoragePath\" },\n domProps: {\n checked: Array.isArray(_vm.showStoragePath)\n ? _vm._i(_vm.showStoragePath, null) > -1\n : _vm.showStoragePath\n },\n on: {\n change: function($event) {\n var $$a = _vm.showStoragePath,\n $$el = $event.target,\n $$c = $$el.checked ? true : false\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v)\n if ($$el.checked) {\n $$i < 0 && (_vm.showStoragePath = $$a.concat([$$v]))\n } else {\n $$i > -1 &&\n (_vm.showStoragePath = $$a\n .slice(0, $$i)\n .concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.showStoragePath = $$c\n }\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"label\", { attrs: { for: \"showStoragePath\" } }, [\n _vm._v(_vm._s(_vm.t(\"settings\", \"Show storage path\")))\n ])\n ])\n ])\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"user-list\", {\n attrs: {\n users: _vm.users,\n showConfig: _vm.showConfig,\n selectedGroup: _vm.selectedGroup\n }\n })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nexport { render, staticRenderFns }\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-68be103e\", { render: render, staticRenderFns: staticRenderFns })\n }\n}","var disposed = false\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Users.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Users.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-68be103e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Users.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/views/Users.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-68be103e\", Component.options)\n } else {\n hotAPI.reload(\"data-v-68be103e\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Users from './views/Users';\n\nVue.use(Router);\n\n/*\n * This is the list of routes where the vuejs app will\n * take over php to provide data\n * You need to forward the php routing (routes.php) to\n * /settings/main.php, where the vue-router will ensure\n * the proper route.\n * ⚠️ Routes needs to match the php routes.\n */\n\nexport default new Router({\n\tmode: 'history',\n\t// if index.php is in the url AND we got this far, then it's working:\n\t// let's keep using index.php in the url\n\tbase: OC.generateUrl(''),\n\troutes: [\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/users',\n\t\t\tcomponent: Users,\n\t\t\tprops: true,\n\t\t\tname: 'users',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup',\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tcomponent: Users\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n});\n","/**\n * vuex v3.0.1\n * (c) 2017 Evan You\n * @license MIT\n */\nvar applyMixin = function (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n};\n\nvar devtoolHook =\n typeof window !== 'undefined' &&\n window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\n\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n this._children = Object.create(null);\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if (process.env.NODE_ENV !== 'production') {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n if (!parent.getChild(key).runtime) { return }\n\n parent.removeChild(key);\n};\n\nfunction update (path, targetModule, newModule) {\n if (process.env.NODE_ENV !== 'production') {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"Store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n var state = options.state; if ( state === void 0 ) state = {};\n if (typeof state === 'function') {\n state = state() || {};\n }\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n if (Vue.config.devtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nprototypeAccessors.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors.state.set = function (v) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, \"Use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n process.env.NODE_ENV !== 'production' &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });\n\n return entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload)\n};\n\nStore.prototype.subscribe = function subscribe (fn) {\n return genericSubscribe(fn, this._subscribers)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn) {\n return genericSubscribe(fn, this._actionSubscribers)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\nfunction genericSubscribe (fn, subs) {\n if (subs.indexOf(fn) < 0) {\n subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n computed[key] = function () { return fn(store); };\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (process.env.NODE_ENV !== 'production' && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (process.env.NODE_ENV !== 'production' && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n var gettersProxy = {};\n\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n\n return gettersProxy\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload, cb) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload, cb);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if (process.env.NODE_ENV !== 'production') {\n assert(store._committing, \"Do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.length\n ? path.reduce(function (state, key) { return state[key]; }, state)\n : state\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof type === 'string', (\"Expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (process.env.NODE_ENV !== 'production' && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\nfunction normalizeMap (map) {\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (process.env.NODE_ENV !== 'production' && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\nvar index_esm = {\n Store: Store,\n install: install,\n version: '3.0.1',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers\n};\n\nexport { Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers };\nexport default index_esm;\n","import api from './api';\n\nconst orderGroups = function(groups, orderBy) {\n\t/* const SORT_USERCOUNT = 1;\n\t * const SORT_GROUPNAME = 2;\n\t * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n\t */\n\tif (orderBy === 1) {\n\t\treturn groups.sort((a, b) => a.usercount < b.usercount);\n\t} else {\n\t\treturn groups.sort((a, b) => a.name.localeCompare(b.name));\n\t}\n};\n\nconst state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: 1,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tuserCount: 0\n};\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\t// convert obj to array\n\t\tlet users = state.users.concat(Object.keys(usersObj).map(userid => usersObj[userid]));\n\t\tstate.usersOffset += state.usersLimit;\n\t\tstate.users = users;\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length!=='' ? length : 0;\n\t},\n\tinitGroups(state, {groups, orderBy, userCount}) {\n\t\tstate.groups = groups;\n\t\tstate.orderBy = orderBy;\n\t\tstate.userCount = userCount;\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddGroup(state, gid) {\n\t\ttry {\n\t\t\tstate.groups.push({\n\t\t\t\tid: gid,\n\t\t\t\tname: gid,\n\t\t\t\tusercount: 0 // user will be added after the creation\n\t\t\t});\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t\t} catch (e) {\n\t\t\tconsole.log('Can\\'t create group', e);\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tlet groupIndex = state.groups.findIndex(groupSearch => groupSearch.id == gid);\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1);\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tlet group = state.groups.find(groupSearch => groupSearch.id == gid);\n\t\tif (group) {\n\t\t\tgroup.usercount++; // increase count\n\t\t}\n\t\tlet groups = state.users.find(user => user.id == userid).groups;\n\t\tgroups.push(gid);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tlet group = state.groups.find(groupSearch => groupSearch.id == gid);\n\t\tif (group) {\n\t\t\tgroup.usercount--; // lower count\n\t\t}\n\t\tlet groups = state.users.find(user => user.id == userid).groups;\n\t\tgroups.splice(groups.indexOf(gid),1);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tlet groups = state.users.find(user => user.id == userid).subadmin;\n\t\tgroups.push(gid);\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tlet groups = state.users.find(user => user.id == userid).subadmin;\n\t\tgroups.splice(groups.indexOf(gid),1);\n\t},\n\tdeleteUser(state, userid) {\n\t\tlet userIndex = state.users.findIndex(user => user.id == userid);\n\t\tstate.users.splice(userIndex, 1);\n\t},\n\taddUserData(state, response) {\n\t\tstate.users.push(response.data.ocs.data);\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tstate.users.find(user => user.id == userid).enabled = enabled;\n\t\t// increment or not\n\t\tstate.groups.find(group => group.id == 'disabled').usercount += enabled ? -1 : 1;\n\t\tstate.userCount += enabled ? 1 : -1;\n\t\tconsole.log(enabled);\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tlet humanValue = OC.Util.computerFileSize(value);\n\t\t\tstate.users.find(user => user.id == userid)[key][key] = humanValue?humanValue:value;\n\t\t} else {\n\t\t\tstate.users.find(user => user.id == userid)[key] = value;\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t */\n\tresetUsers(state) {\n\t\tstate.users = [];\n\t\tstate.usersOffset = 0;\n\t}\n};\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users;\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups;\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength;\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset;\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit;\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount;\n\t}\n};\n\nconst actions = {\n\n\t/**\n\t * Get all users with full details\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @returns {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\tgroup = typeof group === 'string' ? group : '';\n\t\tif (group !== '') {\n\t\t\treturn api.get(OC.linkToOCS(`cloud/groups/${group}/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t\t}\n\n\t\treturn api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\n\t/**\n\t * Get all users with full details\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @returns {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\treturn api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @returns {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(OC.linkToOCS(`cloud/users/${groupid}/details?offset=${offset}&limit=${limit}`, 2))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\t\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif(oc_capabilities.password_policy && oc_capabilities.password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', oc_capabilities.password_policy.minLength);\n\t\t\treturn oc_capabilities.password_policy.minLength;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Add group\n\t * \n\t * @param {Object} context\n\t * @param {string} gid Group id\n\t * @returns {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/groups`, 2), {groupid: gid})\n\t\t\t\t.then((response) => context.commit('addGroup', gid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove group\n\t * \n\t * @param {Object} context\n\t * @param {string} gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/groups/${gid}`, 2))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }));\n\t},\n\n\t/**\n\t * Add user to group\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove user from group\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Add user to group admin\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Delete a user\n\t * \n\t * @param {Object} context\n\t * @param {string} userid User id \n\t * @returns {Promise}\n\t */\n\tdeleteUser(context, { userid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}`, 2))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Add a user\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password \n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @returns {Promise}\n\t */\n\taddUser({commit, dispatch}, { userid, password, email, groups, subadmin, quota, language }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users`, 2), { userid, password, email, groups, subadmin, quota, language })\n\t\t\t\t.then((response) => dispatch('addUserData', userid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t * \n\t * @param {Object} context\n\t * @param {string} userid User id \n\t * @returns {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.get(OC.linkToOCS(`cloud/users/${userid}`, 2))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/** Enable or disable user \n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @returns {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tlet userStatus = enabled ? 'enable' : 'disable';\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(OC.linkToOCS(`cloud/users/${userid}/${userStatus}`, 2))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Edit user data\n\t * \n\t * @param {Object} context \n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @returns {Promise}\n\t */\n\tsetUserData(context, { userid, key, value }) {\n\t\tlet allowedEmpty = ['email', 'displayname'];\n\t\tif (['email', 'language', 'quota', 'displayname', 'password'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string' &&\n\t\t\t\t(\n\t\t\t\t\t(allowedEmpty.indexOf(key) === -1 && value.length > 0) ||\n\t\t\t\t\tallowedEmpty.indexOf(key) !== -1\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn api.requireAdmin().then((response) => {\n\t\t\t\t\treturn api.put(OC.linkToOCS(`cloud/users/${userid}`, 2), { key: key, value: value })\n\t\t\t\t\t\t.then((response) => context.commit('setUserData', { userid, key, value }))\n\t\t\t\t\t\t.catch((error) => {throw error;});\n\t\t\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'));\n\t}\n};\n\nexport default { state, mutations, getters, actions };","import api from './api';\n\nconst state = {\n\tserverData: {}\n};\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data;\n\t}\n};\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData;\n\t}\n};\nconst actions = {};\n\nexport default {state, mutations, getters, actions};\n","import api from './api';\n\nconst state = {};\nconst mutations = {};\nconst getters = {};\nconst actions = {\n\t/**\n * Set application config in database\n * \n\t * @param {Object} context\n * @param {Object} options\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @returns{Promise}\n\t */\n\tsetAppConfig(context, {app, key, value}) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`apps/provisioning_api/api/v1/config/apps/${app}/${key}`, 2), {value: value})\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }));;\n }\n};\n\nexport default {state, mutations, getters, actions};\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport users from './users';\nimport settings from './settings';\nimport oc from './oc';\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production';\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\tlet message = error.error.response.data.ocs.meta.message;\n\t\tOC.Notification.showHtml(t('settings','An error occured during the request. Unable to proceed.')+'<br>'+message, {timeout: 7});\n\t\t// throw to raise exception of the promise and allow a `.then` in the Vue methods\n\t\tconsole.log(state, error);\n\t\tthrow new Error(error);\n\t}\n};\n\nexport default new Vuex.Store({\n\tmodules: {\n\t\tusers,\n\t\tsettings,\n\t\toc\n\t},\n\tstrict: debug,\n\n\tmutations\n});\n","import Vue from 'vue';\nimport { sync } from 'vuex-router-sync';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nrequire(\"babel-polyfill\");\n\n\nsync(store, router);\n\n// bind to window\nVue.prototype.t = t;\nVue.prototype.OC = OC;\nVue.prototype.oc_userconfig = oc_userconfig;\n\nconst app = new Vue({\n\trouter,\n\tstore,\n\trender: h => h(App)\n}).$mount('#content');\n\nexport { app, router, store };","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve();\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var final = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < final) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n"],"sourceRoot":""}
\ No newline at end of file diff --git a/settings/js/users/deleteHandler.js b/settings/js/users/deleteHandler.js deleted file mode 100644 index 4f8d6eea9a7..00000000000 --- a/settings/js/users/deleteHandler.js +++ /dev/null @@ -1,213 +0,0 @@ -/** - * Copyright (c) 2014, Arthur Schiwon <blizzz@owncloud.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -/** - * takes care of deleting things represented by an ID - * - * @class - * @param {string} endpoint the corresponding ajax PHP script. Currently limited - * to settings - ajax path. - * @param {string} paramID the by the script expected parameter name holding the - * ID of the object to delete - * @param {markCallback} markCallback function to be called after successfully - * marking the object for deletion. - * @param {removeCallback} removeCallback the function to be called after - * successful delete. - */ - -/* globals escapeHTML */ - -function DeleteHandler(endpoint, paramID, markCallback, removeCallback) { - this.oidToDelete = false; - this.canceled = false; - - this.ajaxEndpoint = endpoint; - this.ajaxParamID = paramID; - - this.markCallback = markCallback; - this.removeCallback = removeCallback; - this.undoCallback = false; - - this.notifier = false; - this.notificationDataID = false; - this.notificationMessage = false; - this.notificationPlaceholder = '%oid'; -} - -/** - * Number of milliseconds after which the operation is performed. - */ -DeleteHandler.TIMEOUT_MS = 7000; - -/** - * Timer after which the action will be performed anyway. - */ -DeleteHandler.prototype._timeout = null; - -/** - * The function to be called after successfully marking the object for deletion - * @callback markCallback - * @param {string} oid the ID of the specific user or group - */ - -/** - * The function to be called after successful delete. The id of the object will - * be passed as argument. Unsuccessful operations will display an error using - * OC.dialogs, no callback is fired. - * @callback removeCallback - * @param {string} oid the ID of the specific user or group - */ - -/** - * This callback is fired after "undo" was clicked so the consumer can update - * the web interface - * @callback undoCallback - * @param {string} oid the ID of the specific user or group - */ - -/** - * enabled the notification system. Required for undo UI. - * - * @param {object} notifier Usually OC.Notification - * @param {string} dataID an identifier for the notifier, e.g. 'deleteuser' - * @param {string} message the message that should be shown upon delete. %oid - * will be replaced with the affected id of the item to be deleted - * @param {undoCallback} undoCallback called after "undo" was clicked - */ -DeleteHandler.prototype.setNotification = function(notifier, dataID, message, undoCallback) { - this.notifier = notifier; - this.notificationDataID = dataID; - this.notificationMessage = message; - this.undoCallback = undoCallback; - - var dh = this; - - $('#notification') - .off('click.deleteHandler_' + dataID) - .on('click.deleteHandler_' + dataID, '.undo', function () { - if ($('#notification').data(dh.notificationDataID)) { - var oid = dh.oidToDelete; - dh.cancel(); - if(typeof dh.undoCallback !== 'undefined') { - dh.undoCallback(oid); - } - } - dh.notifier.hide(); - }); -}; - -/** - * shows the Undo Notification (if configured) - */ -DeleteHandler.prototype.showNotification = function() { - if(this.notifier !== false) { - if(!this.notifier.isHidden()) { - this.hideNotification(); - } - $('#notification').data(this.notificationDataID, true); - var msg = this.notificationMessage.replace( - this.notificationPlaceholder, escapeHTML(this.oidToDelete)); - this.notifier.showHtml(msg); - } -}; - -/** - * hides the Undo Notification - */ -DeleteHandler.prototype.hideNotification = function() { - if(this.notifier !== false) { - $('#notification').removeData(this.notificationDataID); - this.notifier.hide(); - } -}; - -/** - * initializes the delete operation for a given object id - * - * @param {string} oid the object id - */ -DeleteHandler.prototype.mark = function(oid) { - if(this.oidToDelete !== false) { - // passing true to avoid hiding the notification - // twice and causing the second notification - // to disappear immediately - this.deleteEntry(true); - } - this.oidToDelete = oid; - this.canceled = false; - this.markCallback(oid); - this.showNotification(); - if (this._timeout) { - clearTimeout(this._timeout); - this._timeout = null; - } - if (DeleteHandler.TIMEOUT_MS > 0) { - this._timeout = window.setTimeout( - _.bind(this.deleteEntry, this), - DeleteHandler.TIMEOUT_MS - ); - } -}; - -/** - * cancels a delete operation - */ -DeleteHandler.prototype.cancel = function() { - if (this._timeout) { - clearTimeout(this._timeout); - this._timeout = null; - } - - this.canceled = true; - this.oidToDelete = false; -}; - -/** - * executes a delete operation. Requires that the operation has been - * initialized by mark(). On error, it will show a message via - * OC.dialogs.alert. On success, a callback is fired so that the client can - * update the web interface accordingly. - * - * @param {boolean} [keepNotification] true to keep the notification, false to hide - * it, defaults to false - */ -DeleteHandler.prototype.deleteEntry = function(keepNotification) { - var deferred = $.Deferred(); - if(this.canceled || this.oidToDelete === false) { - return deferred.resolve().promise(); - } - - var dh = this; - if(!keepNotification && $('#notification').data(this.notificationDataID) === true) { - dh.hideNotification(); - } - - if (this._timeout) { - clearTimeout(this._timeout); - this._timeout = null; - } - - var payload = {}; - payload[dh.ajaxParamID] = dh.oidToDelete; - return $.ajax({ - type: 'DELETE', - url: OC.generateUrl(dh.ajaxEndpoint+'/{oid}',{oid: this.oidToDelete}), - // FIXME: do not use synchronous ajax calls as they block the browser ! - async: false, - success: function (result) { - // Remove undo option, & remove user from table - - //TODO: following line - dh.removeCallback(dh.oidToDelete); - dh.canceled = true; - }, - error: function (jqXHR) { - OC.dialogs.alert(jqXHR.responseJSON.data.message, t('settings', 'Unable to delete {objName}', {objName: dh.oidToDelete})); - dh.undoCallback(dh.oidToDelete); - - } - }); -}; diff --git a/settings/js/users/filter.js b/settings/js/users/filter.js deleted file mode 100644 index 339d6ad5ec7..00000000000 --- a/settings/js/users/filter.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Copyright (c) 2014, Arthur Schiwon <blizzz@owncloud.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -/** - * @brief this object takes care of the filter functionality on the user - * management page - * @param {UserList} userList the UserList object - * @param {GroupList} groupList the GroupList object - */ -function UserManagementFilter (userList, groupList) { - this.userList = userList; - this.groupList = groupList; - this.oldFilter = ''; - - this.init(); -} - -/** - * @brief sets up when the filter action shall be triggered - */ -UserManagementFilter.prototype.init = function () { - OC.Plugins.register('OCA.Search', this); -}; - -/** - * @brief the filter action needs to be done, here the accurate steps are being - * taken care of - */ -UserManagementFilter.prototype.run = _.debounce(function (filter) { - if (filter === this.oldFilter) { - return; - } - this.oldFilter = filter; - this.userList.filter = filter; - this.userList.empty(); - this.userList.update(GroupList.getCurrentGID()); - if (this.groupList.filterGroups) { - // user counts are being updated nevertheless - this.groupList.empty(); - } - this.groupList.update(); - }, - 300 -); - -/** - * @brief returns the filter String - * @returns string - */ -UserManagementFilter.prototype.getPattern = function () { - var input = this.filterInput.val(), - html = $('html'), - isIE8or9 = html.hasClass('lte9'); - // FIXME - TODO - once support for IE8 and IE9 is dropped - if (isIE8or9 && input == this.filterInput.attr('placeholder')) { - input = ''; - } - return input; -}; - -/** - * @brief adds reset functionality to an HTML element - * @param jQuery the jQuery representation of that element - */ -UserManagementFilter.prototype.addResetButton = function (button) { - var umf = this; - button.click(function () { - umf.filterInput.val(''); - umf.run(); - }); -}; - -UserManagementFilter.prototype.attach = function (search) { - search.setFilter('settings', this.run.bind(this)); -}; diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js deleted file mode 100644 index 08bd26b230e..00000000000 --- a/settings/js/users/groups.js +++ /dev/null @@ -1,385 +0,0 @@ -/** - * Copyright (c) 2014, Raghu Nayyar <beingminimal@gmail.com> - * Copyright (c) 2014, Arthur Schiwon <blizzz@owncloud.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -/* globals escapeHTML, UserList, DeleteHandler */ - -var $userGroupList, - $sortGroupBy; - -var GroupList; -GroupList = { - activeGID: '', - everyoneGID: '_everyone', - filter: '', - filterGroups: false, - - addGroup: function (gid, displayName, usercount) { - if (_.isUndefined(displayName)) { - displayName = gid; - } - var $li = $userGroupList.find('.isgroup:last-child').clone(); - $li - .data('gid', gid) - .find('.groupname').text(displayName); - GroupList.setUserCount($li, usercount); - - $li.appendTo($userGroupList); - - GroupList.sortGroups(); - - return $li; - }, - - setUserCount: function (groupLiElement, usercount) { - if ($sortGroupBy !== 1) { - // If we don't sort by group count we don't display them either - return; - } - - var $groupLiElement = $(groupLiElement); - if (usercount === undefined || usercount === 0 || usercount < 0) { - usercount = ''; - $groupLiElement.data('usercount', 0); - } else { - $groupLiElement.data('usercount', usercount); - } - $groupLiElement.find('.usercount').text(usercount); - }, - - getUserCount: function ($groupLiElement) { - var count = parseInt($groupLiElement.data('usercount'), 10); - return isNaN(count) ? 0 : count; - }, - - modGroupCount: function(gid, diff) { - var $li = GroupList.getGroupLI(gid); - var count = GroupList.getUserCount($li) + diff; - GroupList.setUserCount($li, count); - }, - - incEveryoneCount: function() { - GroupList.modGroupCount(GroupList.everyoneGID, 1); - }, - - decEveryoneCount: function() { - GroupList.modGroupCount(GroupList.everyoneGID, -1); - }, - - incGroupCount: function(gid) { - GroupList.modGroupCount(gid, 1); - }, - - decGroupCount: function(gid) { - GroupList.modGroupCount(gid, -1); - }, - - getCurrentGID: function () { - return GroupList.activeGID; - }, - - sortGroups: function () { - var lis = $userGroupList.find('.isgroup').get(); - - lis.sort(function (a, b) { - // "Everyone" always at the top - if ($(a).data('gid') === '_everyone') { - return -1; - } else if ($(b).data('gid') === '_everyone') { - return 1; - } - - // "admin" always as second - if ($(a).data('gid') === 'admin') { - return -1; - } else if ($(b).data('gid') === 'admin') { - return 1; - } - - if ($sortGroupBy === 1) { - // Sort by user count first - var $usersGroupA = $(a).data('usercount'), - $usersGroupB = $(b).data('usercount'); - if ($usersGroupA > 0 && $usersGroupA > $usersGroupB) { - return -1; - } - if ($usersGroupB > 0 && $usersGroupB > $usersGroupA) { - return 1; - } - } - - // Fallback or sort by group name - return UserList.alphanum( - $(a).find('a span').text(), - $(b).find('a span').text() - ); - }); - - var items = []; - $.each(lis, function (index, li) { - items.push(li); - if (items.length === 100) { - $userGroupList.append(items); - items = []; - } - }); - if (items.length > 0) { - $userGroupList.append(items); - } - }, - - createGroup: function (groupid) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.createGroup, this, groupid)); - return; - } - - $.post( - OC.generateUrl('/settings/users/groups'), - { - id: groupid - }, - function (result) { - if (result.groupname) { - var addedGroup = result.groupname; - UserList.availableGroups[groupid] = {displayName: result.groupname}; - GroupList.addGroup(groupid, result.groupname); - } - GroupList.toggleAddGroup(); - }).fail(function(result) { - OC.Notification.showTemporary(t('settings', 'Error creating group: {message}', {message: result.responseJSON.message})); - }); - }, - - update: function () { - if (GroupList.updating) { - return; - } - GroupList.updating = true; - $.get( - OC.generateUrl('/settings/users/groups'), - { - pattern: this.filter, - filterGroups: this.filterGroups ? 1 : 0, - sortGroups: $sortGroupBy - }, - function (result) { - - var lis = []; - if (result.status === 'success') { - $.each(result.data, function (i, subset) { - $.each(subset, function (index, group) { - if (GroupList.getGroupLI(group.name).length > 0) { - GroupList.setUserCount(GroupList.getGroupLI(group.name).first(), group.usercount); - } - else { - var $li = GroupList.addGroup(group.id, group.name, group.usercount); - - $li.addClass('appear transparent'); - lis.push($li); - } - }); - }); - if (result.data.length > 0) { - GroupList.doSort(); - } - else { - GroupList.noMoreEntries = true; - } - _.defer(function () { - $(lis).each(function () { - this.removeClass('transparent'); - }); - }); - } - GroupList.updating = false; - - } - ); - }, - - elementBelongsToAddGroup: function (el) { - return !(el !== $('#newgroup-form').get(0) && - $('#newgroup-form').find($(el)).length === 0); - }, - - hasAddGroupNameText: function () { - var name = $('#newgroupname').val(); - return $.trim(name) !== ''; - - }, - - showDisabledUsers: function () { - UserList.empty(); - UserList.update('_disabledUsers'); - $userGroupList.find('li').removeClass('active'); - GroupList.getGroupLI('_disabledUsers').addClass('active'); - }, - - showGroup: function (gid) { - GroupList.activeGID = gid; - UserList.empty(); - UserList.update(gid === '_everyone' ? '' : gid); - $userGroupList.find('li').removeClass('active'); - if (gid !== undefined) { - GroupList.getGroupLI(gid).addClass('active'); - } - }, - - isAddGroupButtonVisible: function () { - return !$('#newgroup-entry').hasClass('editing'); - }, - - toggleAddGroup: function (event) { - if (GroupList.isAddGroupButtonVisible()) { - if (event) { - event.stopPropagation(); - } - $('#newgroup-entry').addClass('editing'); - $('#newgroupname').select(); - GroupList.handleAddGroupInput(''); - } - else { - $('#newgroup-entry').removeClass('editing'); - $('#newgroupname').val(''); - } - }, - - handleAddGroupInput: function (input) { - if(input.length) { - $('#newgroup-form input[type="submit"]').attr('disabled', null); - } else { - $('#newgroup-form input[type="submit"]').attr('disabled', 'disabled'); - } - }, - - isGroupNameValid: function (groupname) { - if ($.trim(groupname) === '') { - OC.Notification.showTemporary(t('settings', 'Error creating group: {message}', { - message: t('settings', 'A valid group name must be provided') - })); - return false; - } - return true; - }, - - hide: function (gid) { - GroupList.getGroupLI(gid).hide(); - }, - show: function (gid) { - GroupList.getGroupLI(gid).show(); - }, - remove: function (gid) { - GroupList.getGroupLI(gid).remove(); - }, - empty: function () { - $userGroupList.find('.isgroup').filter(function(index, item){ - return $(item).data('gid') !== ''; - }).remove(); - }, - initDeleteHandling: function () { - //set up handler - var GroupDeleteHandler = new DeleteHandler('/settings/users/groups', 'groupname', - GroupList.hide, GroupList.remove); - - //configure undo - OC.Notification.hide(); - var msg = escapeHTML(t('settings', 'deleted {groupName}', {groupName: '%oid'})) + '<span class="undo">' + - escapeHTML(t('settings', 'undo')) + '</span>'; - GroupDeleteHandler.setNotification(OC.Notification, 'deletegroup', msg, - GroupList.show); - - //when to mark user for delete - var deleteAction = function () { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(deleteAction, this)); - return; - } - - // Call function for handling delete/undo - GroupDeleteHandler.mark(GroupList.getElementGID($(this).parent())); - }; - $userGroupList.on('click', '.delete', deleteAction); - - //delete a marked user when leaving the page - $(window).on('beforeunload', function () { - GroupDeleteHandler.deleteEntry(); - }); - }, - - getGroupLI: function (gid) { - return $userGroupList.find('li.isgroup').filter(function () { - return GroupList.getElementGID(this) === gid; - }); - }, - - getElementGID: function (element) { - return ($(element).closest('li').data('gid') || '').toString(); - }, - getEveryoneCount: function () { - $.ajax({ - type: "GET", - dataType: "json", - url: OC.generateUrl('/settings/users/stats') - }).success(function (data) { - $('#everyonegroup').data('usercount', data.totalUsers); - $('#everyonecount').text(data.totalUsers); - }); - } -}; - -$(document).ready( function () { - $userGroupList = $('#usergrouplist'); - GroupList.initDeleteHandling(); - $sortGroupBy = $userGroupList.data('sort-groups'); - if ($sortGroupBy === 1) { - // Disabled due to performance issues, when we don't need it for sorting - GroupList.getEveryoneCount(); - } - - // Display or hide of Create Group List Element - $('#newgroup-init').on('click', function (e) { - GroupList.toggleAddGroup(e); - }); - - $(document).on('click keydown keyup', function(event) { - if(!GroupList.isAddGroupButtonVisible() && - !GroupList.elementBelongsToAddGroup(event.target) && - !GroupList.hasAddGroupNameText()) { - GroupList.toggleAddGroup(); - } - // Escape - if(!GroupList.isAddGroupButtonVisible() && event.keyCode && event.keyCode === 27) { - GroupList.toggleAddGroup(); - } - }); - - - // Responsible for Creating Groups. - $('#newgroup-form form').submit(function (event) { - event.preventDefault(); - if(GroupList.isGroupNameValid($('#newgroupname').val())) { - GroupList.createGroup($('#newgroupname').val()); - } - }); - - // click on group name - $userGroupList.on('click', '.isgroup', function () { - GroupList.showGroup(GroupList.getElementGID(this)); - }); - - // show disabled users - $userGroupList.on('click', '.disabledusers', function () { - GroupList.showDisabledUsers(); - }); - - $('#newgroupname').on('input', function(){ - GroupList.handleAddGroupInput(this.value); - }); - - // highlight `everyone` group at DOMReady by default - GroupList.showGroup('_everyone'); -}); diff --git a/settings/js/users/users.js b/settings/js/users/users.js deleted file mode 100644 index 847cceb8cc3..00000000000 --- a/settings/js/users/users.js +++ /dev/null @@ -1,1189 +0,0 @@ -/** - * Copyright (c) 2014, Arthur Schiwon <blizzz@owncloud.com> - * Copyright (c) 2014, Raghu Nayyar <beingminimal@gmail.com> - * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com> - * Copyright (c) 2017, John Molakvoæ <skjnldsv@protonmail.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -/* globals escapeHTML, GroupList, DeleteHandler, UserManagementFilter */ - -var $userList; -var $userListBody; -var $emptyContainer; - -var UserDeleteHandler; -var UserList = { - availableGroups: [], - offset: 0, - usersToLoad: 10, //So many users will be loaded when user scrolls down - initialUsersToLoad: 50, //initial number of users to load - currentGid: '', - filter: '', - - /** - * Initializes the user list - * @param $el user list table element - */ - initialize: function ($el) { - this.$el = $el; - - // initially the list might already contain user entries (not fully ajaxified yet) - // initialize these entries - this.$el.find('.quota-user').singleSelect().on('change', this.onQuotaSelect); - $('#new-user-button').on('click', function(event) { - event.preventDefault(); - $('#newuserHeader').slideToggle(OC.menuSpeed); - $('#newusername').focus(); - }); - $('#newreset').on('click', function(event) { - $('#newuserHeader').slideToggle(OC.menuSpeed); - }); - $('.has-tooltip').tooltip({ - placement: 'bottom' - }); - }, - - /** - * Add a user row from user object - * - * @param user object containing following keys: - * { - * 'name': 'username', - * 'displayname': 'Users display name', - * 'groups': {group1: {displayName: 'Group 1'}, group2: {displayName: 'Group 2'}} - * 'subadmin': {group5: {displayName: 'Group 5'}, group6: {displayName: 'Group 6'}} - * 'quota': '10 GB', - * 'quota_bytes': '10737418240', - * 'storageLocation': '/srv/www/owncloud/data/username', - * 'lastLogin': '1418632333' - * 'backend': 'LDAP', - * 'email': 'username@example.org' - * 'isRestoreDisabled':false - * 'isEnabled': true, - * 'size': 156789 - * } - */ - add: function (user) { - if (this.currentGid && this.currentGid !== '_everyone' && this.currentGid !== '_disabledUsers' && Object.keys(user.groups).indexOf(this.currentGid) < 0) { - return false; - } - - var $tr = $userListBody.find('tr:first-child').clone(); - // this removes just the `display:none` of the template row - $tr.removeAttr('style'); - - /** - * Avatar or placeholder - */ - if ($tr.find('div.avatardiv').length) { - if (user.isAvatarAvailable === true) { - $('div.avatardiv', $tr).avatar(user.name, 32, undefined, undefined, undefined, user.displayname); - } else { - $('div.avatardiv', $tr).imageplaceholder(user.displayname, undefined, 32); - } - } - - /** - * add username and displayname to row (in data and visible markup) - */ - $tr.data('uid', user.name); - $tr.data('displayname', user.displayname); - $tr.data('mailAddress', user.email); - $tr.data('restoreDisabled', user.isRestoreDisabled); - $tr.data('userEnabled', user.isEnabled); - $tr.find('.name').text(user.name); - $tr.find('td.displayName > span').text(user.displayname); - $tr.find('td.mailAddress > span').text(user.email); - $tr.find('td.displayName > .action').tooltip({placement: 'top'}); - $tr.find('td.mailAddress > .action').tooltip({placement: 'top'}); - $tr.find('td.password > .action').tooltip({placement: 'top'}); - - - /** - * groups and subadmins - */ - var $tdGroups = $tr.find('td.groups'); - this._updateGroupListLabel($tdGroups, user.groups); - $tdGroups.find('.action').tooltip({placement: 'top'}); - - var $tdSubadmins = $tr.find('td.subadmins'); - this._updateGroupListLabel($tdSubadmins, user.subadmin); - $tdSubadmins.find('.action').tooltip({placement: 'top'}); - - /** - * hide user actions menu for current user - */ - if (OC.currentUser === user.name) { - $tr.find('td.userActions').empty(); - } - - /** - * quota - */ - UserList.updateQuotaProgressbar($tr, user.quota_bytes, user.size); - $tr.data('size', user.size); - var $quotaSelect = $tr.find('.quota-user'); - var humanSize = humanFileSize(user.size, true); - $quotaSelect.tooltip({ - title: t('settings', '{size} used', {size: humanSize}, 0 , {escape: false}).replace('<', '<'), - delay: { - show: 100, - hide: 0 - } - }); - if (user.quota === 'default') { - $quotaSelect - .data('previous', 'default') - .find('option').attr('selected', null) - .first().attr('selected', 'selected'); - } else { - var $options = $quotaSelect.find('option'); - var $foundOption = $options.filterAttr('value', user.quota); - if ($foundOption.length > 0) { - $foundOption.attr('selected', 'selected'); - } else { - // append before "Other" entry - $options.last().before('<option value="' + escapeHTML(user.quota) + '" selected="selected">' + escapeHTML(user.quota) + '</option>'); - } - } - - /** - * storage location - */ - $tr.find('td.storageLocation').text(user.storageLocation); - - /** - * user backend - */ - $tr.find('td.userBackend').text(user.backend); - - /** - * last login - */ - var lastLoginRel = t('settings', 'never'); - var lastLoginAbs = lastLoginRel; - if (user.lastLogin !== 0) { - lastLoginRel = OC.Util.relativeModifiedDate(user.lastLogin); - lastLoginAbs = OC.Util.formatDate(user.lastLogin); - } - var $tdLastLogin = $tr.find('td.lastLogin'); - $tdLastLogin.text(lastLoginRel); - $tdLastLogin.attr('title', lastLoginAbs); - // setup tooltip with #app-content as container to prevent the td to resize on hover - $tdLastLogin.tooltip({placement: 'top', container: '#app-content'}); - - /** - * append generated row to user list - */ - $tr.appendTo($userList); - - $quotaSelect.on('change', UserList.onQuotaSelect); - - // defer init so the user first sees the list appear more quickly - window.setTimeout(function () { - $quotaSelect.singleSelect(); - }, 0); - }, - // From http://my.opera.com/GreyWyvern/blog/show.dml/1671288 - alphanum: function (a, b) { - function chunkify (t) { - var tz = [], x = 0, y = -1, n = 0, i, j; - - while (i = (j = t.charAt(x++)).charCodeAt(0)) { - var m = (i === 46 || (i >= 48 && i <= 57)); - if (m !== n) { - tz[++y] = ""; - n = m; - } - tz[y] += j; - } - return tz; - } - - var aa = chunkify(a.toLowerCase()); - var bb = chunkify(b.toLowerCase()); - - for (var x = 0; aa[x] && bb[x]; x++) { - if (aa[x] !== bb[x]) { - var c = Number(aa[x]), d = Number(bb[x]); - if (c === aa[x] && d === bb[x]) { - return c - d; - } else { - return (aa[x] > bb[x]) ? 1 : -1; - } - } - } - return aa.length - bb.length; - }, - preSortSearchString: function (a, b) { - var pattern = this.filter; - if (typeof pattern === 'undefined') { - return undefined; - } - pattern = pattern.toLowerCase(); - var aMatches = false; - var bMatches = false; - if (typeof a === 'string' && a.toLowerCase().indexOf(pattern) === 0) { - aMatches = true; - } - if (typeof b === 'string' && b.toLowerCase().indexOf(pattern) === 0) { - bMatches = true; - } - - if ((aMatches && bMatches) || (!aMatches && !bMatches)) { - return undefined; - } - - if (aMatches) { - return -1; - } else { - return 1; - } - }, - doSort: function () { - // some browsers like Chrome lose the scrolling information - // when messing with the list elements - var lastScrollTop = this.scrollArea.scrollTop(); - var lastScrollLeft = this.scrollArea.scrollLeft(); - var rows = $userListBody.find('tr').get(); - - rows.sort(function (a, b) { - // FIXME: inefficient way of getting the names, - // better use a data attribute - a = $(a).find('.name').text(); - b = $(b).find('.name').text(); - var firstSort = UserList.preSortSearchString(a, b); - if (typeof firstSort !== 'undefined') { - return firstSort; - } - return OC.Util.naturalSortCompare(a, b); - }); - - var items = []; - $.each(rows, function (index, row) { - items.push(row); - if (items.length === 100) { - $userListBody.append(items); - items = []; - } - }); - if (items.length > 0) { - $userListBody.append(items); - } - this.scrollArea.scrollTop(lastScrollTop); - this.scrollArea.scrollLeft(lastScrollLeft); - }, - checkUsersToLoad: function () { - //30 shall be loaded initially, from then on always 10 upon scrolling - if (UserList.isEmpty === false) { - UserList.usersToLoad = 10; - } else { - UserList.usersToLoad = UserList.initialUsersToLoad; - } - }, - empty: function () { - //one row needs to be kept, because it is cloned to add new rows - $userListBody.find('tr:not(:first)').remove(); - var $tr = $userListBody.find('tr:first'); - $tr.hide(); - //on an update a user may be missing when the username matches with that - //of the hidden row. So change this to a random string. - $tr.data('uid', Math.random().toString(36).substring(2)); - UserList.isEmpty = true; - UserList.offset = 0; - UserList.checkUsersToLoad(); - }, - hide: function (uid) { - UserList.getRow(uid).hide(); - }, - show: function (uid) { - UserList.getRow(uid).show(); - }, - markRemove: function (uid) { - var $tr = UserList.getRow(uid); - var groups = $tr.find('.groups').data('groups'); - for (var i in groups) { - var gid = groups[i]; - var $li = GroupList.getGroupLI(gid); - var userCount = GroupList.getUserCount($li); - GroupList.setUserCount($li, userCount - 1); - } - GroupList.decEveryoneCount(); - UserList.hide(uid); - }, - remove: function (uid) { - UserList.getRow(uid).remove(); - }, - undoRemove: function (uid) { - var $tr = UserList.getRow(uid); - var groups = $tr.find('.groups').data('groups'); - for (var i in groups) { - var gid = groups[i]; - var $li = GroupList.getGroupLI(gid); - var userCount = GroupList.getUserCount($li); - GroupList.setUserCount($li, userCount + 1); - } - GroupList.incEveryoneCount(); - UserList.getRow(uid).show(); - }, - has: function (uid) { - return UserList.getRow(uid).length > 0; - }, - getRow: function (uid) { - return $userListBody.find('tr').filter(function () { - return UserList.getUID(this) === uid; - }); - }, - getUID: function (element) { - return ($(element).closest('tr').data('uid') || '').toString(); - }, - getDisplayName: function (element) { - return ($(element).closest('tr').data('displayname') || '').toString(); - }, - getMailAddress: function (element) { - return ($(element).closest('tr').data('mailAddress') || '').toString(); - }, - getRestoreDisabled: function (element) { - return ($(element).closest('tr').data('restoreDisabled') || ''); - }, - getUserEnabled: function (element) { - return ($(element).closest('tr').data('userEnabled') || ''); - }, - initDeleteHandling: function () { - //set up handler - UserDeleteHandler = new DeleteHandler('/settings/users/users', 'username', - UserList.markRemove, UserList.remove); - - //configure undo - OC.Notification.hide(); - var msg = escapeHTML(t('settings', 'deleted {userName}', {userName: '%oid'})) + '<span class="undo">' + - escapeHTML(t('settings', 'undo')) + '</span>'; - UserDeleteHandler.setNotification(OC.Notification, 'deleteuser', msg, - UserList.undoRemove); - - //when to mark user for delete - $userListBody.on('click', '.action-remove', function () { - // Call function for handling delete/undo - var uid = UserList.getUID(this); - - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(function () { - UserDeleteHandler.mark(uid); - }); - return; - } - - UserDeleteHandler.mark(uid); - }); - - //delete a marked user when leaving the page - $(window).on('beforeunload', function () { - UserDeleteHandler.deleteEntry(); - }); - }, - update: function (gid, limit) { - if (UserList.updating) { - return; - } - if (!limit) { - limit = UserList.usersToLoad; - } - $userList.siblings('.loading').css('visibility', 'visible'); - UserList.updating = true; - if (gid === undefined) { - gid = ''; - } - UserList.currentGid = gid; - var pattern = this.filter; - $.get( - OC.generateUrl('/settings/users/users'), - {offset: UserList.offset, limit: limit, gid: gid, pattern: pattern}, - function (result) { - //The offset does not mirror the amount of users available, - //because it is backend-dependent. For correct retrieval, - //always the limit(requested amount of users) needs to be added. - $.each(result, function (index, user) { - if (UserList.has(user.name)) { - return true; - } - UserList.add(user); - }); - - if (result.length > 0) { - UserList.doSort(); - $userList.siblings('.loading').css('visibility', 'hidden'); - // reset state on load - UserList.noMoreEntries = false; - $userListHead.show(); - $emptyContainer.hide(); - $emptyContainer.find('h2').text(''); - } - else { - UserList.noMoreEntries = true; - $userList.siblings('.loading').remove(); - - if (pattern !== "") { - $userListHead.hide(); - $emptyContainer.show(); - $emptyContainer.find('h2').html(t('settings', 'No user found for <strong>{pattern}</strong>', {pattern: pattern})); - } - } - UserList.offset += limit; - }).always(function () { - UserList.updating = false; - }); - }, - - applyGroupSelect: function (element, user, checked) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.applyGroupSelect, this, element, user, checked)); - return; - } - - var $element = $(element); - - var addUserToGroup = null, - removeUserFromGroup = null; - if (user) { // Only if in a user row, and not the #newusergroups select - var handleUserGroupMembership = function (group, add) { - if (user === OC.getCurrentUser().uid && group === 'admin') { - return false; - } - if (!OC.isUserAdmin() && checked.length === 1 && checked[0] === group) { - return false; - } - if (add && OC.isUserAdmin() && _.isUndefined(UserList.availableGroups[group])) { - GroupList.createGroup(group); - if (_.isUndefined(UserList.availableGroups[group])) { - UserList.availableGroups[group] = {displayName: group}; - } - } - - $.ajax({ - url: OC.linkToOCS('cloud/users/' + user, 2) + 'groups', - data: { - groupid: group - }, - type: add ? 'POST' : 'DELETE', - beforeSend: function (request) { - request.setRequestHeader('Accept', 'application/json'); - }, - success: function () { - GroupList.update(); - if (add && _.isUndefined(UserList.availableGroups[group])) { - UserList.availableGroups[group] = {displayName: group}; - } - - if (add) { - GroupList.incGroupCount(group); - } else { - GroupList.decGroupCount(group); - } - }, - error: function () { - if (add) { - OC.Notification.show(t('settings', 'Unable to add user to group {group}', { - group: group - })); - } else { - OC.Notification.show(t('settings', 'Unable to remove user from group {group}', { - group: group - })); - } - } - }); - }; - addUserToGroup = function (group) { - return handleUserGroupMembership(group, true); - }; - removeUserFromGroup = function (group) { - return handleUserGroupMembership(group, false); - }; - } - var addGroup = function (select, group) { - GroupList.addGroup(escapeHTML(group)); - }; - var label; - if (OC.isUserAdmin()) { - label = t('settings', 'Add group'); - } - else { - label = null; - } - $element.multiSelect({ - createCallback: addGroup, - createText: label, - selectedFirst: true, - checked: checked, - oncheck: addUserToGroup, - onuncheck: removeUserFromGroup, - minWidth: 150 - }); - }, - - applySubadminSelect: function (element, user, checked) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.applySubadminSelect, this, element, user, checked)); - return; - } - - var $element = $(element); - var checkHandler = function (group) { - if (group === 'admin') { - return false; - } - $.post( - OC.filePath('settings', 'ajax', 'togglesubadmins.php'), - { - username: user, - group: group - }, - function (response) { - if (response.data !== undefined && response.data.message) { - OC.Notification.show(response.data.message); - } - } - ); - }; - - $element.multiSelect({ - createText: null, - checked: checked, - oncheck: checkHandler, - onuncheck: checkHandler, - minWidth: 150 - }); - }, - - _onScroll: function () { - if (!!UserList.noMoreEntries) { - return; - } - if (UserList.scrollArea.scrollTop() + UserList.scrollArea.height() > UserList.scrollArea.get(0).scrollHeight - 500) { - UserList.update(UserList.currentGid); - } - }, - - updateQuotaProgressbar: function ($tr, quota, size) { - var usedQuota; - if (quota > 0) { - usedQuota = Math.min(100, Math.round(size / quota * 100)); - } else { - var usedInGB = size / (10 * Math.pow(2, 30)); - //asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota - usedQuota = 95 * (1 - (1 / (usedInGB + 1))); - } - $tr.find('.quota-user-progress').val( isNaN(usedQuota) ? 0 : usedQuota ); - if (usedQuota > 80) { - $tr.find('.quota-user-progress').addClass('warn'); - } else { - $tr.find('.quota-user-progress').removeClass('warn'); - } - }, - - /** - * Event handler for when a quota has been changed through a single select. - * This will save the value. - */ - onQuotaSelect: function (ev) { - var $select = $(ev.target); - var $tr = $select.closest('tr'); - const size = $tr.data('size'); - var uid = UserList.getUID($select); - var quota = $select.val(); - if (quota === 'other') { - return; - } - if (quota !== 'default' && quota !== "none" && OC.Util.computerFileSize(quota) === null) { - // the select component has added the bogus value, delete it again - $select.find('option[selected]').remove(); - OC.Notification.showTemporary(t('core', 'Invalid quota value "{val}"', {val: quota})); - return; - } - - UserList._updateQuota(uid, quota, function (returnedQuota) { - if (quota !== returnedQuota) { - $select.find(':selected').text(returnedQuota); - UserList.updateQuotaProgressbar($tr, OC.Util.computerFileSize(returnedQuota), size); - } - }); - - UserList.updateQuotaProgressbar($tr, OC.Util.computerFileSize(quota), size); - // remove the background color that the "other" option placed on the select - $select.css('background-color', 'transparent'); - }, - - /** - * Saves the quota for the given user - * @param {String} [uid] optional user id, sets default quota if empty - * @param {String} quota quota value - * @param {Function} ready callback after save - */ - _updateQuota: function (uid, quota, ready) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this._updateQuota, this, uid, quota, ready)); - return; - } - - $.post( - OC.filePath('settings', 'ajax', 'setquota.php'), - {username: uid, quota: quota}, - function (result) { - if (result.status === 'error') { - OC.Notification.showTemporary(result.data.message); - } else { - if (ready) { - ready(result.data.quota); - } - } - } - ); - }, - - /** - * Creates a temporary jquery.multiselect selector on the given group field - */ - _triggerGroupEdit: function ($td, isSubadminSelect) { - var self = this; - var $groupsListContainer = $td.find('.groupsListContainer'); - var placeholder = $groupsListContainer.data('placeholder') || t('settings', 'no group'); - var user = UserList.getUID($td); - var checked = $td.data('groups') || {}; - var extraGroups = Object.assign({}, checked); - - $td.find('.multiselectoptions').remove(); - - // jquery.multiselect can only work with select+options in DOM ? We'll give jquery.multiselect what it wants... - var $groupsSelect; - if (isSubadminSelect) { - $groupsSelect = $('<select multiple="multiple" class="groupsselect multiselect button" title="' + placeholder + '"></select>'); - } else { - $groupsSelect = $('<select multiple="multiple" class="subadminsselect multiselect button" title="' + placeholder + '"></select>') - } - - function createItem (gid, group) { - if (isSubadminSelect && group.displayName === 'admin') { - // can't become subadmin of "admin" group - return; - } - $groupsSelect.append($('<option value="' + escapeHTML(gid) + '">' + escapeHTML(group.displayName) + '</option>')); - } - - $.each(this.availableGroups, function (gid, group) { - // some new groups might be selected but not in the available groups list yet - if (extraGroups[gid] !== undefined) { - // remove extra group as it was found - delete extraGroups[gid]; - } - createItem(gid, group); - }); - $.each(extraGroups, function (i, group) { - createItem(group); - }); - - $td.append($groupsSelect); - - var checkedIds = Object.keys(checked).map(function(group, gid) { - return checked[group].displayName; - }); - if (isSubadminSelect) { - UserList.applySubadminSelect($groupsSelect, user, checkedIds); - } else { - UserList.applyGroupSelect($groupsSelect, user, checkedIds); - } - - $groupsListContainer.addClass('hidden'); - $td.find('.multiselect:not(.groupsListContainer):first').click(); - $groupsSelect.on('dropdownclosed', function (e) { - $groupsSelect.remove(); - $td.find('.multiselect:not(.groupsListContainer)').parent().remove(); - $td.find('.multiselectoptions').remove(); - $groupsListContainer.removeClass('hidden'); - // Pull all checked groups from this.availableGroups - var checked = Object.keys(self.availableGroups).reduce(function (previous, key) { - if(e.checked.indexOf(key) >= 0) { - return Object.assign(previous, {[key]:self.availableGroups[key]}); - } else { - return previous; - } - }, {}); - UserList._updateGroupListLabel($td, checked); - }); - }, - - /** - * Updates the groups list td with the given groups selection - */ - _updateGroupListLabel: function ($td, groups) { - var placeholder = $td.find('.groupsListContainer').data('placeholder'); - var $groupsEl = $td.find('.groupsList'); - var grouptext = Object.keys(groups).map(function(group, gid) { - return groups[group].displayName; - }); - $groupsEl.text(grouptext.join(', ') || placeholder || t('settings', 'no group')); - $td.data('groups', groups); - } -}; - -$(document).ready(function () { - OC.Plugins.attach('OC.Settings.UserList', UserList); - $userList = $('#userlist'); - $userListBody = $userList.find('tbody'); - $userListHead = $userList.find('thead'); - $emptyContainer = $userList.siblings('.emptycontent'); - - UserList.initDeleteHandling(); - - // Implements User Search - OCA.Search.users = new UserManagementFilter(UserList, GroupList); - - UserList.scrollArea = $('#app-content'); - - UserList.doSort(); - UserList.availableGroups = $userList.data('groups'); - - UserList.scrollArea.scroll(function (e) { - UserList._onScroll(e); - }); - - $userList.after($('<div class="loading" style="height: 200px; visibility: hidden;"></div>')); - - // TODO: move other init calls inside of initialize - UserList.initialize($('#userlist')); - - var _submitPasswordChange = function (uid, password, recoveryPasswordVal, blurFunction) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(function () { - _submitPasswordChange(uid, password, recoveryPasswordVal, blurFunction); - }); - return; - } - - $.post( - OC.generateUrl('/settings/users/changepassword'), - { - username: uid, - password: password, - recoveryPassword: recoveryPasswordVal - }, - function (result) { - blurFunction(); - if (result.status === 'success') { - OC.Notification.showTemporary(t('admin', 'Password successfully changed')); - } else { - OC.Notification.showTemporary(t('admin', result.data.message)); - } - } - ).fail(blurFunction); - }; - - $userListBody.on('click', '.password', function (event) { - event.stopPropagation(); - - var $td = $(this).closest('td'); - var $tr = $(this).closest('tr'); - var uid = UserList.getUID($td); - var $input = $('<input type="password">'); - var isRestoreDisabled = UserList.getRestoreDisabled($td) === true; - var blurFunction = function () { - $(this).replaceWith($('<span>●●●●●●●</span>')); - $td.find('img').show(); - // remove highlight class from users without recovery ability - $tr.removeClass('row-warning'); - }; - blurFunction = _.bind(blurFunction, $input); - if (isRestoreDisabled) { - $tr.addClass('row-warning'); - // add tooltip if the password change could cause data loss - no recovery enabled - $input.attr('title', t('settings', 'Changing the password will result in data loss, because data recovery is not available for this user')); - $input.tooltip({placement: 'bottom'}); - } - $td.find('img').hide(); - $td.children('span').replaceWith($input); - $input - .focus() - .keypress(function (event) { - if (event.keyCode === 13) { - if ($(this).val().length > 0) { - var recoveryPasswordVal = $('input:password[id="recoveryPassword"]').val(); - $input.off('blur'); - _submitPasswordChange(uid, $(this).val(), recoveryPasswordVal, blurFunction); - } else { - $input.blur(); - } - } - }) - .blur(blurFunction); - }); - $('input:password[id="recoveryPassword"]').keyup(function () { - OC.Notification.hide(); - }); - - var _submitDisplayNameChange = function ($tr, uid, displayName, blurFunction) { - var $div = $tr.find('div.avatardiv'); - if ($div.length) { - $div.imageplaceholder(uid, displayName); - } - - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(function () { - _submitDisplayNameChange($tr, uid, displayName, blurFunction); - }); - return; - } - - $.ajax({ - type: 'POST', - url: OC.generateUrl('/settings/users/{id}/displayName', {id: uid}), - data: { - username: uid, - displayName: displayName - } - }).success(function (result) { - if (result && result.status === 'success' && $div.length) { - $div.avatar(result.data.username, 32); - } - $tr.data('displayname', displayName); - blurFunction(); - }).fail(function (result) { - OC.Notification.showTemporary(result.responseJSON.message); - $tr.find('.displayName input').blur(blurFunction); - }); - }; - - $userListBody.on('click', '.displayName', function (event) { - event.stopPropagation(); - var $td = $(this).closest('td'); - var $tr = $td.closest('tr'); - var uid = UserList.getUID($td); - var displayName = escapeHTML(UserList.getDisplayName($td)); - var $input = $('<input type="text" value="' + displayName + '">'); - var blurFunction = function () { - var displayName = $tr.data('displayname'); - $input.replaceWith('<span>' + escapeHTML(displayName) + '</span>'); - $td.find('img').show(); - }; - $td.find('img').hide(); - $td.children('span').replaceWith($input); - $input - .focus() - .keypress(function (event) { - if (event.keyCode === 13) { - if ($(this).val().length > 0) { - $input.off('blur'); - _submitDisplayNameChange($tr, uid, $(this).val(), blurFunction); - } else { - $input.blur(); - } - } - }) - .blur(blurFunction); - }); - - var _submitEmailChange = function ($tr, $td, $input, uid, mailAddress, blurFunction) { - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(function () { - _submitEmailChange($tr, $td, $input, uid, mailAddress, blurFunction); - }); - return; - } - - $.ajax({ - type: 'PUT', - url: OC.generateUrl('/settings/users/{id}/mailAddress', {id: uid}), - data: { - mailAddress: mailAddress - } - }).success(function () { - // set data attribute to new value - // will in blur() be used to show the text instead of the input field - $tr.data('mailAddress', mailAddress); - $td.find('.loading-small').css('display', ''); - $input.removeAttr('disabled') - .triggerHandler('blur'); // needed instead of $input.blur() for Firefox - blurFunction(); - }).fail(function (result) { - if (!_.isUndefined(result.responseJSON.data)) { - OC.Notification.showTemporary(result.responseJSON.data.message); - } else if (!_.isUndefined(result.responseJSON.message)) { - OC.Notification.showTemporary(result.responseJSON.message); - } else { - OC.Notification.showTemporary(t('settings', 'Could not change the users email')); - } - $td.find('.loading-small').css('display', ''); - $input.removeAttr('disabled') - .css('padding-right', '6px'); - $input.blur(blurFunction); - }); - }; - - $userListBody.on('click', '.mailAddress', function (event) { - event.stopPropagation(); - var $td = $(this).closest('td'); - var $tr = $td.closest('tr'); - var uid = UserList.getUID($td); - var mailAddress = escapeHTML(UserList.getMailAddress($td)); - var $input = $('<input type="text">').val(mailAddress); - var blurFunction = function () { - if ($td.find('.loading-small').css('display') === 'inline-block') { - // in Chrome the blur event is fired too early by the browser - even if the request is still running - return; - } - var $span = $('<span>').text($tr.data('mailAddress')); - $input.replaceWith($span); - $td.find('img').show(); - }; - $td.children('span').replaceWith($input); - $td.find('img').hide(); - $input - .focus() - .keypress(function (event) { - if (event.keyCode === 13) { - // enter key - - $td.find('.loading-small').css('display', 'inline-block'); - $input.css('padding-right', '26px'); - $input.attr('disabled', 'disabled'); - $input.off('blur'); - _submitEmailChange($tr, $td, $input, uid, $(this).val(), blurFunction); - } - }) - .blur(blurFunction); - }); - - $('#newuser .groupsListContainer').on('click', function (event) { - event.stopPropagation(); - var $div = $(this).closest('.groups'); - UserList._triggerGroupEdit($div); - }); - $userListBody.on('click', '.groups .groupsListContainer, .subadmins .groupsListContainer', function (event) { - event.stopPropagation(); - var $td = $(this).closest('td'); - var isSubadminSelect = $td.hasClass('subadmins'); - UserList._triggerGroupEdit($td, isSubadminSelect); - }); - - $userListBody.on('click', '.toggleUserActions > .action', function (event) { - event.stopPropagation(); - var $td = $(this).closest('td'); - var $tr = $($td).closest('tr'); - var menudiv = $tr.find('.popovermenu'); - - if ($tr.is('.active')) { - $tr.removeClass('active'); - menudiv.removeClass('open'); - return; - } - $('#userlist tr.active').removeClass('active'); - $('#userlist .popovermenu').removeClass('open'); - menudiv.addClass('open'); - menudiv.find('.action-togglestate').empty(); - if ($tr.data('userEnabled')) { - $('.action-togglestate', $td).html('<span class="icon icon-close"></span><span>' + t('settings', 'Disable') + '</span>'); - } else { - $('.action-togglestate', $td).html('<span class="icon icon-add"></span><span>' + t('settings', 'Enable') + '</span>'); - } - $tr.addClass('active'); - }); - - $(document).on('mouseup', function (event) { - if (!$(event.target).closest('.toggleUserActions').length) { - $('#userlist tr.active').removeClass('active'); - $('#userlist .popovermenu.open').removeClass('open'); - } - }); - - $userListBody.on('click', '.action-togglestate', function (event) { - event.stopPropagation(); - var $td = $(this).closest('td'); - var $tr = $td.closest('tr'); - var uid = UserList.getUID($td); - var setEnabled = UserList.getUserEnabled($td) ? 0 : 1; - $.post( - OC.generateUrl('/settings/users/{id}/setEnabled', {id: uid}), - {username: uid, enabled: setEnabled}, - function (result) { - if (result && result.status === 'success') { - var count = GroupList.getUserCount(GroupList.getGroupLI('_disabledUsers')); - $tr.remove(); - if (result.data.enabled == 1) { - $tr.data('userEnabled', true); - GroupList.setUserCount(GroupList.getGroupLI('_disabledUsers'), count - 1); - } else { - $tr.data('userEnabled', false); - GroupList.setUserCount(GroupList.getGroupLI('_disabledUsers'), count + 1); - } - } else { - OC.dialogs.alert(result.data.message, t('settings', 'Error while changing status of {user}', {user: uid})); - } - } - ).fail(function (result) { - var message = 'Unknown error'; - if (result.responseJSON && - result.responseJSON.data && - result.responseJSON.data.message) { - message = result.responseJSON.data.message; - } - OC.dialogs.alert(message, t('settings', 'Error while changing status of {user}', {user: uid})); - }); - }); - - // init the quota field select box after it is shown the first time - $('#app-settings').one('show', function () { - $(this).find('#default_quota').singleSelect().on('change', UserList.onQuotaSelect); - }); - - $('#newuser input').click(function () { - // empty the container also here to avoid visual delay - $emptyContainer.hide(); - OC.Search = new OCA.Search($('#searchbox'), $('#searchresults')); - OC.Search.clear(); - }); - - UserList._updateGroupListLabel($('#newuser .groups'), {}); - var _submitNewUserForm = function (event) { - event.preventDefault(); - if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { - OC.PasswordConfirmation.requirePasswordConfirmation(function () { - _submitNewUserForm(event); - }); - return; - } - - var username = $('#newusername').val(); - var password = $('#newuserpassword').val(); - var email = $('#newemail').val(); - if ($.trim(username) === '') { - OC.Notification.showTemporary(t('settings', 'Error creating user: {message}', { - message: t('settings', 'A valid username must be provided') - })); - return false; - } - - var promise; - if (UserDeleteHandler) { - promise = UserDeleteHandler.deleteEntry(); - } else { - promise = $.Deferred().resolve().promise(); - } - - promise.then(function () { - var groups = $('#newuser .groups').data('groups') || {}; - groups = Object.keys(groups); - $.post( - OC.generateUrl('/settings/users/users'), - { - username: username, - password: password, - groups: groups, - email: email - }, - function (result) { - if (result.groups) { - for (var i in result.groups) { - var gid = result.groups[i]; - if (_.isUndefined(UserList.availableGroups[gid])) { - UserList.availableGroups[gid] = {displayName: gid}; - } - var $li = GroupList.getGroupLI(gid); - var userCount = GroupList.getUserCount($li); - GroupList.setUserCount($li, userCount + 1); - } - } - if (!UserList.has(username)) { - UserList.add(result); - UserList.doSort(); - } - $('#newusername').focus(); - GroupList.incEveryoneCount(); - }).fail(function (result) { - OC.Notification.showTemporary(t('settings', 'Error creating user: {message}', { - message: result.responseJSON.message - }, undefined, {escape: false})); - }).success(function () { - $('#newuser').get(0).reset(); - }); - }); - }; - $('#newuser').submit(_submitNewUserForm); - - if ($('#CheckboxStorageLocation').is(':checked')) { - $("#userlist .storageLocation").show(); - } - // Option to display/hide the "Storage location" column - $('#CheckboxStorageLocation').click(function () { - if ($('#CheckboxStorageLocation').is(':checked')) { - $("#userlist .storageLocation").show(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_storage_location', 'true'); - } - } else { - $("#userlist .storageLocation").hide(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_storage_location', 'false'); - } - } - }); - - if ($('#CheckboxLastLogin').is(':checked')) { - $("#userlist .lastLogin").show(); - } - // Option to display/hide the "Last Login" column - $('#CheckboxLastLogin').click(function () { - if ($('#CheckboxLastLogin').is(':checked')) { - $("#userlist .lastLogin").show(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_last_login', 'true'); - } - } else { - $("#userlist .lastLogin").hide(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_last_login', 'false'); - } - } - }); - - if ($('#CheckboxUserBackend').is(':checked')) { - $("#userlist .userBackend").show(); - } - // Option to display/hide the "User Backend" column - $('#CheckboxUserBackend').click(function () { - if ($('#CheckboxUserBackend').is(':checked')) { - $("#userlist .userBackend").show(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_backend', 'true'); - } - } else { - $("#userlist .userBackend").hide(); - if (OC.isUserAdmin()) { - OCP.AppConfig.setValue('core', 'umgmt_show_backend', 'false'); - } - } - }); - - // calculate initial limit of users to load - var initialUserCountLimit = UserList.initialUsersToLoad, - containerHeight = $('#app-content').height(); - if (containerHeight > 40) { - initialUserCountLimit = Math.floor(containerHeight / 40); - if (initialUserCountLimit < UserList.initialUsersToLoad) { - initialUserCountLimit = UserList.initialUsersToLoad; - } - } - //realign initialUserCountLimit with usersToLoad as a safeguard - while ((initialUserCountLimit % UserList.usersToLoad) !== 0) { - // must be a multiple of this, otherwise LDAP freaks out. - // FIXME: solve this in LDAP backend in 8.1 - initialUserCountLimit = initialUserCountLimit + 1; - } - - // trigger loading of users on startup - UserList.update(UserList.currentGid, initialUserCountLimit); - - _.defer(function () { - $('#app-content').trigger($.Event('apprendered')); - }); - -}); diff --git a/settings/package-lock.json b/settings/package-lock.json new file mode 100644 index 00000000000..077842ff3ee --- /dev/null +++ b/settings/package-lock.json @@ -0,0 +1,10119 @@ +{ + "name": "settings", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.0.2.tgz", + "integrity": "sha512-vCpf75JDcdomXvUd7Rn6DfYAVqPAFI66FVjxiWGwh85OLdvfo3paBoPJaam5keIYRyUolnS7SleS/ZPCidCvzw==", + "dev": true + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", + "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "debug": "^3.1.0", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz", + "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz", + "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==", + "dev": true, + "requires": { + "debug": "^3.1.0" + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz", + "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.4.3" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz", + "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz", + "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz", + "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz", + "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==", + "dev": true, + "requires": { + "leb": "^0.3.0" + } + }, + "@webassemblyjs/validation": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz", + "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3" + } + }, + "@webassemblyjs/wasm-edit": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz", + "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/helper-wasm-section": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-opt": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-printer": "1.4.3", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz", + "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz", + "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "debug": "^3.1.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz", + "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz", + "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/floating-point-hex-parser": "1.4.3", + "@webassemblyjs/helper-code-frame": "1.4.3", + "@webassemblyjs/helper-fsm": "1.4.3", + "long": "^3.2.0", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz", + "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "requires": { + "acorn": "^5.0.0" + } + }, + "ajv": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", + "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", + "dev": true, + "requires": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^3.0.2" + } + }, + "ajv-keywords": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", + "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "axios": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "requires": { + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-loader": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", + "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "binaryextensions": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", + "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", + "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz", + "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000835", + "electron-to-chromium": "^1.3.45" + }, + "dependencies": { + "electron-to-chromium": { + "version": "1.3.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz", + "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=", + "dev": true + } + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000830", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000830.tgz", + "integrity": "sha1-bkUlWzRWSf0V/1kHLaHhK7PeLxM=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000843", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000843.tgz", + "integrity": "sha512-1ntiW826MhRBmM0CeI7w1cQr16gxwOoM8doJWh3BFalPZoKWdZXs27Bc04xth/3NR1/wNXn9cpP4F92lVenCvg==", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", + "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "chrome-trace-event": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz", + "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "^1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.42", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz", + "integrity": "sha1-lcM78B0MxAVVauyJn+Yf1NduoPk=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", + "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "envinfo": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-4.4.2.tgz", + "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "flow-parser": { + "version": "0.72.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.72.0.tgz", + "integrity": "sha512-kFaDtviKlD/rHi6NRp42KTbnPgz/nKcWUJQhqDnLDeKA8uGcRVSy0YlQjaf9M3pFo5PgC3SNFnCPpQGLtHjH2w==", + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "follow-redirects": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", + "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "requires": { + "debug": "^3.1.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "dev": true, + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "dev": true, + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "dev": true, + "requires": { + "glob": "^7.0.5", + "yargs": "~1.2.6" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", + "dev": true, + "requires": { + "minimist": "^0.1.0" + } + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.4", + "minimatch": "~3.0.2" + } + }, + "got": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.1.tgz", + "integrity": "sha512-tiLX+bnYm5A56T5N/n9Xo89vMaO1mrS9qoDqj3u/anVooqGozvY/HbXzEpDfbNeKsHCBpK40gSbz8wGYSp3i1w==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "dev": true, + "requires": { + "lodash": "^4.17.2" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "^1.0.2" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ieee754": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", + "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "requires": { + "symbol-observable": "^0.2.2" + }, + "dependencies": { + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "dev": true, + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "dev": true, + "requires": { + "binaryextensions": "2", + "editions": "^1.3.3", + "textextensions": "2" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "js-base64": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jscodeshift": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.5.0.tgz", + "integrity": "sha512-JAcQINNMFpdzzpKJN8k5xXjF3XDuckB1/48uScSzcnNyK199iWEc9AxKL9OoX5144M2w5zEx9Qs4/E/eBZZUlw==", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^7.0.0-beta.30", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "neo-async": "^2.5.0", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.14.1", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "babylon": { + "version": "7.0.0-beta.47", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", + "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "leb": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", + "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=", + "dev": true + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "dev": true, + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + } + }, + "mem-fs-editor": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-4.0.2.tgz", + "integrity": "sha512-QHvdXLLNmwJXxKdf7x27aNUren6IoPxwcM8Sfd+S6/ddQQMcYdEtVKsh6ilpqMrU18VQuKZEaH0aCGt3JDbA0g==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.5.1", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.0", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "~1.33.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "node-dir": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz", + "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=", + "dev": true + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-sass": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", + "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "~2.79.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + } + } + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "dev": true, + "requires": { + "chalk": "~0.4.0", + "underscore": "~1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-lazy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "popper.js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", + "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "^5.0.16" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "uniqid": "^4.0.0" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "^5.0.5" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-chunk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", + "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", + "dev": true, + "requires": { + "pify": "^3.0.0", + "safe-buffer": "^5.1.1" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + } + }, + "recast": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", + "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", + "dev": true, + "requires": { + "ast-types": "0.11.3", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "sass-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.0.1.tgz", + "integrity": "sha512-MeVVJFejJELlAbA7jrRchi88PGP6U9yIfqyiG+bBC4a9s2PX+ulJB9h8bbEohtPBfZmlLhNZ0opQM9hovRXvlw==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=", + "dev": true + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", + "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", + "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "requires": { + "any-observable": "^0.2.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "dev": true, + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "textextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "^6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", + "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "^0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "untildify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=", + "dev": true + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, + "uri-js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", + "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + }, + "v-tooltip": { + "version": "2.0.0-rc.32", + "resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.0-rc.32.tgz", + "integrity": "sha512-UAczAn/OG2TpILOgm1bJ+JnJfAZpozS8BEPL8CLPiOnr0N1iDljCf14MtUVecaiYH21V/3996CmtxOUR9Q6Xbw==", + "requires": { + "lodash.merge": "^4.6.0", + "popper.js": "^1.12.9", + "vue-resize": "^0.4.3" + } + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "vue": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz", + "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ==" + }, + "vue-click-outside": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/vue-click-outside/-/vue-click-outside-1.0.7.tgz", + "integrity": "sha1-zdKxYF48SUR4TheU6uShKg9wC9Y=" + }, + "vue-hot-reload-api": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", + "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==", + "dev": true + }, + "vue-infinite-loading": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/vue-infinite-loading/-/vue-infinite-loading-2.3.1.tgz", + "integrity": "sha512-t9HncjLpl6Wk3qXGLRBRL/u/0MdxiK6tYx8ehLo1+9P+zv9zW5cVXwOZHHZRHCbRzctKE0m0W+aajadjIuGXiQ==" + }, + "vue-loader": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-14.2.2.tgz", + "integrity": "sha512-SehrPGsxSssZXQoR7DTAm2oMBiJxV+xTIX5BUxc+qFsNo0iIj01tzAMXWt0PD5hjoNCXdS5Bq1KLRy7WaMdkKg==", + "dev": true, + "requires": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.1", + "postcss": "^6.0.8", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "prettier": "^1.7.0", + "resolve": "^1.4.0", + "source-map": "^0.6.1", + "vue-hot-reload-api": "^2.2.0", + "vue-style-loader": "^4.0.1", + "vue-template-es2015-compiler": "^1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "vue-localstorage": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/vue-localstorage/-/vue-localstorage-0.6.2.tgz", + "integrity": "sha512-29YQVVkIdoS6BZBCJAyu9d0OR0eKSm5gk5OjsLssV1+NM4zJnf9cxhN1AVeXkUHJLqOonECweuaR8PZ2x307dw==" + }, + "vue-multiselect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vue-multiselect/-/vue-multiselect-2.1.0.tgz", + "integrity": "sha512-mEhApxZ6MUISGLuGDy0RF5UlAKUgG/Qq0DWYE/C+CA1h6ZszM3cHfpNFfFm2AMWLclY2SAWpY1HlQLjsw8WnvQ==" + }, + "vue-resize": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.4.tgz", + "integrity": "sha512-Lb/cnE2N9Y42ZJPw8wpjkpuX5a9ReerWNGcQRcbNCwfCnkHG6++FurNNmLIdU8dcCTH4c5rtTPdxBqFoRMK2cQ==" + }, + "vue-router": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.1.tgz", + "integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w==" + }, + "vue-style-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.0.tgz", + "integrity": "sha512-IsSiXDrLW2QIjyBsCqa35e45l5AceMbJ2jO8DxoEQv75xu/UmtXkSC0ybESq/LpbmmIW47MAWDQvErUw+Hrz/A==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", + "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", + "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "dev": true + }, + "vuex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz", + "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==" + }, + "vuex-router-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz", + "integrity": "sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w==" + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "webpack": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", + "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wasm-edit": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "acorn": "^5.0.0", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^0.1.1", + "enhanced-resolve": "^4.0.0", + "eslint-scope": "^3.7.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" + } + }, + "webpack-addons": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", + "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", + "dev": true, + "requires": { + "jscodeshift": "^0.4.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "ast-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "jscodeshift": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz", + "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==", + "dev": true, + "requires": { + "async": "^1.5.0", + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^6.17.3", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.12.5", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "recast": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", + "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", + "dev": true, + "requires": { + "ast-types": "0.10.1", + "core-js": "^2.4.1", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.1.3.tgz", + "integrity": "sha512-5AsKoL/Ccn8iTrwk3uErdyhetGH+c7VRQ7Itim2GL0IhBRq5rtojVDk00buMRmFmBpw1RvHXq97Gup965LbozA==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "cross-spawn": "^6.0.5", + "diff": "^3.5.0", + "enhanced-resolve": "^4.0.0", + "envinfo": "^4.4.2", + "glob-all": "^3.1.0", + "global-modules": "^1.0.0", + "got": "^8.2.0", + "import-local": "^1.0.0", + "inquirer": "^5.1.0", + "interpret": "^1.0.4", + "jscodeshift": "^0.5.0", + "listr": "^0.13.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.5", + "log-symbols": "^2.2.0", + "mkdirp": "^0.5.1", + "p-each-series": "^1.0.0", + "p-lazy": "^1.0.0", + "prettier": "^1.5.3", + "supports-color": "^5.3.0", + "v8-compile-cache": "^1.1.2", + "webpack-addons": "^1.1.5", + "yargs": "^11.1.0", + "yeoman-environment": "^2.0.0", + "yeoman-generator": "^2.0.4" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-merge": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", + "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yeoman-environment": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.1.1.tgz", + "integrity": "sha512-IBLwCUrJrDxBYuwdYm1wuF3O/CR2LpXR0rFS684QOrU6x69DPPrsdd20dZOFaedZ/M9sON7po73WhO3I1CbgNQ==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.3.1", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^5.2.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.1.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "yeoman-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.5.tgz", + "integrity": "sha512-rV6tJ8oYzm4mmdF2T3wjY+Q42jKF2YiiD0VKfJ8/0ZYwmhCKC9Xs2346HVLPj/xE13i68psnFJv7iS6gWRkeAg==", + "dev": true, + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^5.1.0", + "dateformat": "^3.0.3", + "debug": "^3.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^2.1.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^4.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^4.0.2", + "read-chunk": "^2.1.0", + "read-pkg-up": "^3.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^2.0.0", + "yeoman-environment": "^2.0.5" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + } + } +} diff --git a/settings/package.json b/settings/package.json new file mode 100644 index 00000000000..59b9692c078 --- /dev/null +++ b/settings/package.json @@ -0,0 +1,45 @@ +{ + "name": "settings", + "description": "Nextcloud settings", + "version": "1.0.0", + "author": "John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>", + "license": "AGPL3", + "private": true, + "scripts": { + "dev": "webpack --config webpack.dev.js", + "watch": "webpack --progress --watch --config webpack.dev.js", + "build": "webpack --progress --hide-modules --config webpack.prod.js" + }, + "dependencies": { + "axios": "^0.18.0", + "babel-polyfill": "^6.26.0", + "v-tooltip": "^2.0.0-rc.32", + "vue": "^2.5.16", + "vue-click-outside": "^1.0.7", + "vue-infinite-loading": "^2.3.1", + "vue-localstorage": "^0.6.2", + "vue-multiselect": "^2.1.0", + "vue-router": "^3.0.1", + "vuex": "^3.0.1", + "vuex-router-sync": "^5.0.0" + }, + "browserslist": [ + "last 2 versions", + "ie >= 11" + ], + "devDependencies": { + "babel-core": "^6.26.3", + "babel-loader": "^7.1.4", + "babel-preset-env": "^1.7.0", + "babel-preset-stage-3": "^6.24.1", + "css-loader": "^0.28.11", + "file-loader": "^1.1.11", + "node-sass": "^4.9.0", + "sass-loader": "^7.0.1", + "vue-loader": "^14.2.2", + "vue-template-compiler": "^2.5.16", + "webpack": "^4.8.3", + "webpack-cli": "^2.1.3", + "webpack-merge": "^4.1.2" + } +} diff --git a/settings/routes.php b/settings/routes.php index 9a89d7353ef..a3a5812bf4f 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -39,7 +39,6 @@ namespace OC\Settings; $application = new Application(); $application->registerRoutes($this, [ 'resources' => [ - 'users' => ['url' => '/settings/users/users'], 'AuthSettings' => ['url' => '/settings/personal/authtokens'], ], 'routes' => [ @@ -50,12 +49,10 @@ $application->registerRoutes($this, [ ['name' => 'AppSettings#listCategories', 'url' => '/settings/apps/categories', 'verb' => 'GET'], ['name' => 'AppSettings#viewApps', 'url' => '/settings/apps', 'verb' => 'GET'], ['name' => 'AppSettings#listApps', 'url' => '/settings/apps/list', 'verb' => 'GET'], - ['name' => 'Users#setDisplayName', 'url' => '/settings/users/{username}/displayName', 'verb' => 'POST'], - ['name' => 'Users#setEMailAddress', 'url' => '/settings/users/{id}/mailAddress', 'verb' => 'PUT'], ['name' => 'Users#setUserSettings', 'url' => '/settings/users/{username}/settings', 'verb' => 'PUT'], ['name' => 'Users#getVerificationCode', 'url' => '/settings/users/{account}/verify', 'verb' => 'GET'], - ['name' => 'Users#setEnabled', 'url' => '/settings/users/{id}/setEnabled', 'verb' => 'POST'], - ['name' => 'Users#stats', 'url' => '/settings/users/stats', 'verb' => 'GET'], + ['name' => 'Users#usersList', 'url' => '/settings/users', 'verb' => 'GET'], + ['name' => 'Users#usersListByGroup', 'url' => '/settings/users/{group}', 'verb' => 'GET'], ['name' => 'LogSettings#setLogLevel', 'url' => '/settings/admin/log/level', 'verb' => 'POST'], ['name' => 'LogSettings#getEntries', 'url' => '/settings/admin/log/entries', 'verb' => 'GET'], ['name' => 'LogSettings#download', 'url' => '/settings/admin/log/download', 'verb' => 'GET'], @@ -70,12 +67,7 @@ $application->registerRoutes($this, [ ['name' => 'AdminSettings#index', 'url' => '/settings/admin/{section}', 'verb' => 'GET', 'defaults' => ['section' => 'server']], ['name' => 'AdminSettings#form', 'url' => '/settings/admin/{section}', 'verb' => 'GET'], ['name' => 'ChangePassword#changePersonalPassword', 'url' => '/settings/personal/changepassword', 'verb' => 'POST'], - ['name' => 'ChangePassword#changeUserPassword', 'url' => '/settings/users/changepassword', 'verb' => 'POST'], - ['name' => 'Groups#index', 'url' => '/settings/users/groups', 'verb' => 'GET'], - ['name' => 'Groups#show', 'url' => '/settings/users/groups/{id}', 'requirements' => ['id' => '[^?]*'], 'verb' => 'GET'], - ['name' => 'Groups#create', 'url' => '/settings/users/groups', 'verb' => 'POST'], - ['name' => 'Groups#update', 'url' => '/settings/users/groups/{id}', 'requirements' => ['id' => '[^?]*'], 'verb' => 'PUT'], - ['name' => 'Groups#destroy', 'url' => '/settings/users/groups/{id}', 'requirements' => ['id' => '[^?]*'], 'verb' => 'DELETE'], + ['name' => 'ChangePassword#changeUserPassword', 'url' => '/settings/users/changepassword', 'verb' => 'POST'] ] ]); @@ -84,18 +76,7 @@ $application->registerRoutes($this, [ // Settings pages $this->create('settings_help', '/settings/help') ->actionInclude('settings/help.php'); -$this->create('settings_users', '/settings/users') - ->actionInclude('settings/users.php'); // Settings ajax actions -// users -$this->create('settings_ajax_setquota', '/settings/ajax/setquota.php') - ->actionInclude('settings/ajax/setquota.php'); -$this->create('settings_ajax_togglegroups', '/settings/ajax/togglegroups.php') - ->actionInclude('settings/ajax/togglegroups.php'); -$this->create('settings_ajax_togglesubadmins', '/settings/ajax/togglesubadmins.php') - ->actionInclude('settings/ajax/togglesubadmins.php'); -$this->create('settings_ajax_changegorupname', '/settings/ajax/changegroupname.php') - ->actionInclude('settings/ajax/changegroupname.php'); // apps $this->create('settings_ajax_enableapp', '/settings/ajax/enableapp.php') ->actionInclude('settings/ajax/enableapp.php'); @@ -105,6 +86,3 @@ $this->create('settings_ajax_updateapp', '/settings/ajax/updateapp.php') ->actionInclude('settings/ajax/updateapp.php'); $this->create('settings_ajax_uninstallapp', '/settings/ajax/uninstallapp.php') ->actionInclude('settings/ajax/uninstallapp.php'); -// admin -$this->create('settings_ajax_excludegroups', '/settings/ajax/excludegroups.php') - ->actionInclude('settings/ajax/excludegroups.php'); diff --git a/settings/src/.jshintrc b/settings/src/.jshintrc new file mode 100644 index 00000000000..fc024bea970 --- /dev/null +++ b/settings/src/.jshintrc @@ -0,0 +1,3 @@ +{ + "esversion": 6 +} diff --git a/settings/src/App.vue b/settings/src/App.vue new file mode 100644 index 00000000000..4e1708bed4f --- /dev/null +++ b/settings/src/App.vue @@ -0,0 +1,16 @@ +<template> + <router-view></router-view> +</template> + +<script> +export default { + name: 'App', + beforeMount: function() { + // importing server data into the store + const serverDataElmt = document.getElementById('serverData'); + if (serverDataElmt !== null) { + this.$store.commit('setServerData', JSON.parse(document.getElementById('serverData').dataset.server)); + } + } +} +</script> diff --git a/settings/src/components/appNavigation.vue b/settings/src/components/appNavigation.vue new file mode 100644 index 00000000000..02858b4bb5b --- /dev/null +++ b/settings/src/components/appNavigation.vue @@ -0,0 +1,32 @@ +<template> + <div id="app-navigation" :class="{'icon-loading': menu.loading}"> + <div class="app-navigation-new" v-if="menu.new"> + <button type="button" :id="menu.new.id" :class="menu.new.icon" @click="menu.new.action">{{menu.new.text}}</button> + </div> + <ul :id="menu.id"> + <navigation-item v-for="(item, key) in menu.items" :item="item" :key="key" /> + </ul> + <div id="app-settings"> + <div id="app-settings-header"> + <button class="settings-button" + data-apps-slide-toggle="#app-settings-content" + >{{t('settings', 'Settings')}}</button> + </div> + <div id="app-settings-content"> + <slot name="settings-content"></slot> + </div> + </div> + </div> +</template> + +<script> +import navigationItem from './appNavigation/navigationItem'; + +export default { + name: 'appNavigation', + props: ['menu'], + components: { + navigationItem + } +} +</script> diff --git a/settings/src/components/appNavigation/navigationItem.vue b/settings/src/components/appNavigation/navigationItem.vue new file mode 100644 index 00000000000..ee748ee826e --- /dev/null +++ b/settings/src/components/appNavigation/navigationItem.vue @@ -0,0 +1,117 @@ +<template> + <li :id="item.id" :class="[{'icon-loading-small': item.loading, 'open': item.opened, 'collapsible': item.collapsible&&item.children&&item.children.length>0 }, item.classes]"> + + <!-- Bullet --> + <div v-if="item.bullet" class="app-navigation-entry-bullet" :style="{ backgroundColor: item.bullet }"></div> + + <!-- Main link --> + <a v-if="item.href" :href="(item.href) ? item.href : '#' " @click="toggleCollapse" :class="item.icon" > + <img v-if="item.iconUrl" :alt="item.text" :src="item.iconUrl"> + {{item.text}} + </a> + + <!-- Router link if specified. href OR router --> + <router-link :to="item.router" v-else-if="item.router" :class="item.icon" > + <img v-if="item.iconUrl" :alt="item.text" :src="item.iconUrl"> + {{item.text}} + </router-link> + + <!-- Popover, counter and button(s) --> + <div v-if="item.utils" class="app-navigation-entry-utils"> + <ul> + <!-- counter --> + <li v-if="Number.isInteger(item.utils.counter)" + class="app-navigation-entry-utils-counter">{{item.utils.counter}}</li> + + <!-- first action if only one action and counter --> + <li v-if="item.utils.actions && item.utils.actions.length === 1 && Number.isInteger(item.utils.counter)" + class="app-navigation-entry-utils-menu-button"> + <button @click="item.utils.actions[0].action" :class="item.utils.actions[0].icon" :title="item.utils.actions[0].text"></button> + </li> + + <!-- second action only two actions and no counter --> + <li v-else-if="item.utils.actions && item.utils.actions.length === 2 && !Number.isInteger(item.utils.counter)" + v-for="action in item.utils.actions" :key="action.action" + class="app-navigation-entry-utils-menu-button"> + <button @click="action.action" :class="action.icon" :title="action.text"></button> + </li> + + <!-- menu if only at least one action and counter OR two actions and no counter--> + <li v-else-if="item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)" + class="app-navigation-entry-utils-menu-button"> + <button v-click-outside="hideMenu" @click="showMenu" ></button> + </li> + </ul> + </div> + + <!-- if more than 2 actions or more than 1 actions with counter --> + <div v-if="item.utils && item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)" + class="app-navigation-entry-menu" :class="{ 'open': openedMenu }"> + <popover-menu :menu="item.utils.actions"/> + </div> + + <!-- undo entry --> + <div class="app-navigation-entry-deleted" v-if="item.undo"> + <div class="app-navigation-entry-deleted-description">{{item.undo.text}}</div> + <button class="app-navigation-entry-deleted-button icon-history" :title="t('settings', 'Undo')"></button> + </div> + + <!-- edit entry --> + <div class="app-navigation-entry-edit" v-if="item.edit"> + <form> + <input type="text" v-model="item.text"> + <input type="submit" value="" class="icon-confirm"> + <input type="submit" value="" class="icon-close" @click.stop.prevent="cancelEdit"> + </form> + </div> + + <!-- if the item has children, inject the component with proper data --> + <ul v-if="item.children"> + <navigation-item v-for="(item, key) in item.children" :item="item" :key="key" /> + </ul> + </li> +</template> + +<script> +import popoverMenu from '../popoverMenu'; +import ClickOutside from 'vue-click-outside'; +import Vue from 'vue'; + +export default { + name: 'navigationItem', + props: ['item'], + components: { + popoverMenu + }, + directives: { + ClickOutside + }, + data() { + return { + openedMenu: false + } + }, + methods: { + showMenu() { + this.openedMenu = true; + }, + hideMenu() { + this.openedMenu = false; + }, + toggleCollapse() { + // if item.opened isn't set, Vue won't trigger view updates https://vuejs.org/v2/api/#Vue-set + // ternary is here to detect the undefined state of item.opened + Vue.set(this.item, 'opened', this.item.opened ? !this.item.opened : true); + }, + cancelEdit() { + // remove the editing class + if (Array.isArray(this.item.classes)) + this.item.classes = this.item.classes.filter(item => item !== 'editing'); + } + }, + mounted() { + // prevent click outside event with popupItem. + this.popupItem = this.$el; + }, +} +</script> diff --git a/settings/src/components/popoverMenu.vue b/settings/src/components/popoverMenu.vue new file mode 100644 index 00000000000..92f62c5090d --- /dev/null +++ b/settings/src/components/popoverMenu.vue @@ -0,0 +1,18 @@ +<template> + <ul> + <popover-item v-for="(item, key) in menu" :item="item" :key="key" /> + </ul> +</template> + + +<script> +import popoverItem from './popoverMenu/popoverItem'; + +export default { + name: 'popoverMenu', + props: ['menu'], + components: { + popoverItem + } +} +</script> diff --git a/settings/src/components/popoverMenu/popoverItem.vue b/settings/src/components/popoverMenu/popoverItem.vue new file mode 100644 index 00000000000..710aff80aa6 --- /dev/null +++ b/settings/src/components/popoverMenu/popoverItem.vue @@ -0,0 +1,28 @@ +<template> + <li> + <!-- If item.href is set, a link will be directly used --> + <a @click="item.action" v-if="item.href" :href="(item.href) ? item.href : '#' "> + <span :class="item.icon"></span> + <span v-if="item.text">{{item.text}}</span> + <p v-else-if="item.longtext">{{item.longtext}}</p> + </a> + <!-- If item.action is set instead, a button will be used --> + <button @click="item.action" v-else-if="item.action"> + <span :class="item.icon"></span> + <span v-if="item.text">{{item.text}}</span> + <p v-else-if="item.longtext">{{item.longtext}}</p> + </button> + <!-- If item.longtext is set AND the item does not have an action --> + <span v-else> + <span :class="item.icon"></span> + <span v-if="item.text">{{item.text}}</span> + <p v-else-if="item.longtext">{{item.longtext}}</p> + </span> + </li> +</template> + +<script> +export default { + props: ['item'] +} +</script> diff --git a/settings/src/components/userList.vue b/settings/src/components/userList.vue new file mode 100644 index 00000000000..cb0a6944823 --- /dev/null +++ b/settings/src/components/userList.vue @@ -0,0 +1,298 @@ +<template> + <div id="app-content" class="user-list-grid" v-on:scroll.passive="onScroll"> + <div class="row" id="grid-header" :class="{'sticky': scrolled && !showConfig.showNewUserForm}"> + <div id="headerAvatar" class="avatar"></div> + <div id="headerName" class="name">{{ t('settings', 'Username') }}</div> + <div id="headerDisplayName" class="displayName">{{ t('settings', 'Full name') }}</div> + <div id="headerPassword" class="password">{{ t('settings', 'Password') }}</div> + <div id="headerAddress" class="mailAddress">{{ t('settings', 'Email') }}</div> + <div id="headerGroups" class="groups">{{ t('settings', 'Groups') }}</div> + <div id="headerSubAdmins" class="subadmins" + v-if="subAdminsGroups.length>0 && settings.isAdmin">{{ t('settings', 'Group admin for') }}</div> + <div id="headerQuota" class="quota">{{ t('settings', 'Quota') }}</div> + <div id="headerLanguages" class="languages" + v-if="showConfig.showLanguages">{{ t('settings', 'Languages') }}</div> + <div class="headerStorageLocation storageLocation" + v-if="showConfig.showStoragePath">{{ t('settings', 'Storage location') }}</div> + <div class="headerUserBackend userBackend" + v-if="showConfig.showUserBackend">{{ t('settings', 'User backend') }}</div> + <div class="headerLastLogin lastLogin" + v-if="showConfig.showLastLogin">{{ t('settings', 'Last login') }}</div> + <div class="userActions"></div> + </div> + + <form class="row" id="new-user" v-show="showConfig.showNewUserForm" + v-on:submit.prevent="createUser" :disabled="loading" + :class="{'sticky': scrolled && showConfig.showNewUserForm}"> + <div :class="loading?'icon-loading-small':'icon-add'"></div> + <div class="name"> + <input id="newusername" type="text" required v-model="newUser.id" + :placeholder="t('settings', 'User name')" name="username" + autocomplete="off" autocapitalize="none" autocorrect="off" + pattern="[a-zA-Z0-9 _\.@\-']+"> + </div> + <div class="displayName"> + <input id="newdisplayname" type="text" v-model="newUser.displayName" + :placeholder="t('settings', 'Display name')" name="displayname" + autocomplete="off" autocapitalize="none" autocorrect="off"> + </div> + <div class="password"> + <input id="newuserpassword" type="password" v-model="newUser.password" + :required="newUser.mailAddress===''" + :placeholder="t('settings', 'Password')" name="password" + autocomplete="new-password" autocapitalize="none" autocorrect="off" + :minlength="minPasswordLength"> + </div> + <div class="mailAddress"> + <input id="newemail" type="email" v-model="newUser.mailAddress" + :required="newUser.password===''" + :placeholder="t('settings', 'Mail address')" name="email" + autocomplete="off" autocapitalize="none" autocorrect="off"> + </div> + <div class="groups"> + <!-- hidden input trick for vanilla html5 form validation --> + <input type="text" :value="newUser.groups" v-if="!settings.isAdmin" + tabindex="-1" id="newgroups" :required="!settings.isAdmin" /> + <multiselect :options="groups" v-model="newUser.groups" + :placeholder="t('settings', 'Add user in group')" + label="name" track-by="id" class="multiselect-vue" + :multiple="true" :close-on-select="false" + :allowEmpty="settings.isAdmin"> + <!-- If user is not admin, he is a subadmin. + Subadmins can't create users outside their groups + Therefore, empty select is forbidden --> + <span slot="noResult">{{t('settings', 'No results')}}</span> + </multiselect> + </div> + <div class="subadmins" v-if="subAdminsGroups.length>0 && settings.isAdmin"> + <multiselect :options="subAdminsGroups" v-model="newUser.subAdminsGroups" + :placeholder="t('settings', 'Set user as admin for')" + label="name" track-by="id" class="multiselect-vue" + :multiple="true" :close-on-select="false"> + <span slot="noResult">{{t('settings', 'No results')}}</span> + </multiselect> + </div> + <div class="quota"> + <multiselect :options="quotaOptions" v-model="newUser.quota" + :placeholder="t('settings', 'Select user quota')" + label="label" track-by="id" class="multiselect-vue" + :allowEmpty="false" :taggable="true" + @tag="validateQuota" > + </multiselect> + </div> + <div class="languages" v-if="showConfig.showLanguages"> + <multiselect :options="languages" v-model="newUser.language" + :placeholder="t('settings', 'Default language')" + label="name" track-by="code" class="multiselect-vue" + :allowEmpty="false" group-values="languages" group-label="label"> + </multiselect> + </div> + <div class="storageLocation" v-if="showConfig.showStoragePath"></div> + <div class="userBackend" v-if="showConfig.showUserBackend"></div> + <div class="lastLogin" v-if="showConfig.showLastLogin"></div> + <div class="userActions"> + <input type="submit" id="newsubmit" class="button primary icon-checkmark-white has-tooltip" + value="" :title="t('settings', 'Add a new user')"> + <input type="reset" id="newreset" class="button icon-close has-tooltip" @click="resetForm" + value="" :title="t('settings', 'Cancel and reset the form')"> + </div> + </form> + + <user-row v-for="(user, key) in filteredUsers" :user="user" :key="key" :settings="settings" :showConfig="showConfig" + :groups="groups" :subAdminsGroups="subAdminsGroups" :quotaOptions="quotaOptions" :languages="languages" /> + <infinite-loading @infinite="infiniteHandler" ref="infiniteLoading"> + <div slot="spinner"><div class="users-icon-loading icon-loading"></div></div> + <div slot="no-more"><div class="users-list-end">— {{t('settings', 'no more results')}} —</div></div> + <div slot="no-results"> + <div id="emptycontent"> + <div class="icon-contacts-dark"></div> + <h2>{{t('settings', 'No users in here')}}</h2> + </div> + </div> + </infinite-loading> + </div> +</template> + +<script> +import userRow from './userList/userRow'; +import Multiselect from 'vue-multiselect'; +import InfiniteLoading from 'vue-infinite-loading'; +import Vue from 'vue'; + +export default { + name: 'userList', + props: ['users', 'showConfig', 'selectedGroup'], + components: { + userRow, + Multiselect, + InfiniteLoading + }, + data() { + let unlimitedQuota = {id:'none', label:t('settings', 'Unlimited')}, + defaultQuota = {id:'default', label:t('settings', 'Default quota')}; + return { + unlimitedQuota: unlimitedQuota, + defaultQuota: defaultQuota, + loading: false, + scrolled: false, + newUser: { + id:'', + displayName:'', + password:'', + mailAddress:'', + groups: [], + subAdminsGroups: [], + quota: defaultQuota, + language: {code: 'en', name: t('settings', 'Default language')} + } + }; + }, + mounted() { + if (!this.settings.canChangePassword) { + OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled')); + } + + /** + * Init default language from server data. The use of this.settings + * requires a computed variable, which break the v-model binding of the form, + * this is a much easier solution than getter and setter on a computed var + */ + Vue.set(this.newUser.language, 'code', this.settings.defaultLanguage); + + /** + * In case the user directly loaded the user list within a group + * the watch won't be triggered. We need to initialize it. + */ + this.setNewUserDefaultGroup(this.$route.params.selectedGroup); + }, + computed: { + settings() { + return this.$store.getters.getServerData; + }, + filteredUsers() { + if (this.selectedGroup === 'disabled') { + let disabledUsers = this.users.filter(user => user.enabled !== true); + if (disabledUsers.length===0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) { + // disabled group is empty, redirection to all users + this.$router.push({name: 'users'}); + this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); + } + return disabledUsers; + } + return this.users.filter(user => user.enabled === true); + }, + groups() { + // data provided php side + remove the disabled group + return this.$store.getters.getGroups + .filter(group => group.id !== 'disabled') + .sort((a, b) => a.name.localeCompare(b.name)); + }, + subAdminsGroups() { + // data provided php side + return this.$store.getters.getServerData.subadmingroups; + }, + quotaOptions() { + // convert the preset array into objects + let quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []); + // add default presets + quotaPreset.unshift(this.unlimitedQuota); + quotaPreset.unshift(this.defaultQuota); + return quotaPreset; + }, + minPasswordLength() { + return this.$store.getters.getPasswordPolicyMinLength; + }, + usersOffset() { + return this.$store.getters.getUsersOffset; + }, + usersLimit() { + return this.$store.getters.getUsersLimit; + }, + + /* LANGUAGES */ + languages() { + return Array( + { + label: t('settings', 'Common languages'), + languages: this.settings.languages.commonlanguages + }, + { + label: t('settings', 'All languages'), + languages: this.settings.languages.languages + } + ); + } + }, + watch: { + // watch url change and group select + selectedGroup: function (val, old) { + this.$store.commit('resetUsers'); + this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); + this.setNewUserDefaultGroup(val); + } + }, + methods: { + onScroll(event) { + this.scrolled = event.target.scrollTop>0; + }, + + /** + * Validate quota string to make sure it's a valid human file size + * + * @param {string} quota Quota in readable format '5 GB' + * @returns {Object} + */ + validateQuota(quota) { + // only used for new presets sent through @Tag + let validQuota = OC.Util.computerFileSize(quota); + if (validQuota !== null && validQuota > 0) { + // unify format output + quota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota)); + return this.newUser.quota = {id: quota, label: quota}; + } + // Default is unlimited + return this.newUser.quota = this.quotaOptions[0]; + }, + + infiniteHandler($state) { + this.$store.dispatch('getUsers', { + offset: this.usersOffset, + limit: this.usersLimit, + group: this.selectedGroup !== 'disabled' ? this.selectedGroup : '' + }) + .then((response) => { response ? $state.loaded() : $state.complete() }); + }, + + resetForm() { + // revert form to original state + Object.assign(this.newUser, this.$options.data.call(this).newUser); + this.loading = false; + }, + createUser() { + this.loading = true; + this.$store.dispatch('addUser', { + userid: this.newUser.id, + password: this.newUser.password, + email: this.newUser.mailAddress, + groups: this.newUser.groups.map(group => group.id), + subadmin: this.newUser.subAdminsGroups.map(group => group.id), + quota: this.newUser.quota.id, + language: this.newUser.language.code, + }).then(() => this.resetForm()) + .catch(() => this.loading = false); + }, + setNewUserDefaultGroup(value) { + if (value && value.length > 0) { + // setting new user default group to the current selected one + let currentGroup = this.groups.find(group => group.id === value); + if (currentGroup) { + this.newUser.groups = [currentGroup]; + return; + } + } + // fallback, empty selected group + this.newUser.groups = []; + } + } +} +</script> diff --git a/settings/src/components/userList/userRow.vue b/settings/src/components/userList/userRow.vue new file mode 100644 index 00000000000..da3f93ed2c8 --- /dev/null +++ b/settings/src/components/userList/userRow.vue @@ -0,0 +1,449 @@ +<template> + <div class="row" :class="{'disabled': loading.delete || loading.disable}"> + <div class="avatar" :class="{'icon-loading-small': loading.delete || loading.disable}"> + <img alt="" width="32" height="32" :src="generateAvatar(user.id, 32)" + :srcset="generateAvatar(user.id, 64)+' 2x, '+generateAvatar(user.id, 128)+' 4x'" + v-if="!loading.delete && !loading.disable"> + </div> + <div class="name">{{user.id}}</div> + <form class="displayName" :class="{'icon-loading-small': loading.displayName}" v-on:submit.prevent="updateDisplayName"> + <input :id="'displayName'+user.id+rand" type="text" + :disabled="loading.displayName||loading.all" + :value="user.displayname" ref="displayName" + autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" /> + <input type="submit" class="icon-confirm" value="" /> + </form> + <form class="password" v-if="settings.canChangePassword" :class="{'icon-loading-small': loading.password}" + v-on:submit.prevent="updatePassword"> + <input :id="'password'+user.id+rand" type="password" required + :disabled="loading.password||loading.all" :minlength="minPasswordLength" + value="" :placeholder="t('settings', 'New password')" ref="password" + autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" /> + <input type="submit" class="icon-confirm" value="" /> + </form> + <div v-else></div> + <form class="mailAddress" :class="{'icon-loading-small': loading.mailAddress}" v-on:submit.prevent="updateEmail"> + <input :id="'mailAddress'+user.id+rand" type="email" + :disabled="loading.mailAddress||loading.all" + :value="user.email" ref="mailAddress" + autocomplete="new-password" autocorrect="off" autocapitalize="off" spellcheck="false" /> + <input type="submit" class="icon-confirm" value="" /> + </form> + <div class="groups" :class="{'icon-loading-small': loading.groups}"> + <multiselect :value="userGroups" :options="groups" :disabled="loading.groups||loading.all" + tag-placeholder="create" :placeholder="t('settings', 'Add user in group')" + label="name" track-by="id" class="multiselect-vue" :limit="2" + :multiple="true" :taggable="settings.isAdmin" :closeOnSelect="false" + @tag="createGroup" @select="addUserGroup" @remove="removeUserGroup"> + <span slot="limit" class="multiselect__limit" v-tooltip.auto="formatGroupsTitle(userGroups)">+{{userGroups.length-2}}</span> + <span slot="noResult">{{t('settings', 'No results')}}</span> + </multiselect> + </div> + <div class="subadmins" v-if="subAdminsGroups.length>0 && settings.isAdmin" :class="{'icon-loading-small': loading.subadmins}"> + <multiselect :value="userSubAdminsGroups" :options="subAdminsGroups" :disabled="loading.subadmins||loading.all" + :placeholder="t('settings', 'Set user as admin for')" + label="name" track-by="id" class="multiselect-vue" :limit="2" + :multiple="true" :closeOnSelect="false" + @select="addUserSubAdmin" @remove="removeUserSubAdmin"> + <span slot="limit" class="multiselect__limit" v-tooltip.auto="formatGroupsTitle(userSubAdminsGroups)">+{{userSubAdminsGroups.length-2}}</span> + <span slot="noResult">{{t('settings', 'No results')}}</span> + </multiselect> + </div> + <div class="quota" :class="{'icon-loading-small': loading.quota}"> + <multiselect :value="userQuota" :options="quotaOptions" :disabled="loading.quota||loading.all" + tag-placeholder="create" :placeholder="t('settings', 'Select user quota')" + label="label" track-by="id" class="multiselect-vue" + :allowEmpty="false" :taggable="true" + @tag="validateQuota" @input="setUserQuota"> + </multiselect> + <progress class="quota-user-progress" :class="{'warn':usedQuota>80}" :value="usedQuota" max="100"></progress> + </div> + <div class="languages" :class="{'icon-loading-small': loading.languages}" + v-if="showConfig.showLanguages"> + <multiselect :value="userLanguage" :options="languages" :disabled="loading.languages||loading.all" + :placeholder="t('settings', 'No language set')" + label="name" track-by="code" class="multiselect-vue" + :allowEmpty="false" group-values="languages" group-label="label" + @input="setUserLanguage"> + </multiselect> + </div> + <div class="storageLocation" v-if="showConfig.showStoragePath">{{user.storageLocation}}</div> + <div class="userBackend" v-if="showConfig.showUserBackend">{{user.backend}}</div> + <div class="lastLogin" v-if="showConfig.showLastLogin" v-tooltip.auto="user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''"> + {{user.lastLogin>0 ? OC.Util.relativeModifiedDate(user.lastLogin) : t('settings','Never')}} + </div> + <div class="userActions"> + <div class="toggleUserActions" v-if="OC.currentUser !== user.id && user.id !== 'admin' && !loading.all"> + <div class="icon-more" v-click-outside="hideMenu" @click="toggleMenu"></div> + <div class="popovermenu" :class="{ 'open': openedMenu }"> + <popover-menu :menu="userActions" /> + </div> + </div> + </div> + </div> +</template> + +<script> +import popoverMenu from '../popoverMenu'; +import ClickOutside from 'vue-click-outside'; +import Multiselect from 'vue-multiselect'; +import Vue from 'vue' +import VTooltip from 'v-tooltip' + +Vue.use(VTooltip) + +export default { + name: 'userRow', + props: ['user', 'settings', 'groups', 'subAdminsGroups', 'quotaOptions', 'showConfig', 'languages'], + components: { + popoverMenu, + Multiselect + }, + directives: { + ClickOutside + }, + mounted() { + // required if popup needs to stay opened after menu click + // since we only have disable/delete actions, let's close it directly + // this.popupItem = this.$el; + }, + data() { + return { + rand: parseInt(Math.random() * 1000), + openedMenu: false, + loading: { + all: false, + displayName: false, + password: false, + mailAddress: false, + groups: false, + subadmins: false, + quota: false, + delete: false, + disable: false, + languages: false + } + } + }, + computed: { + /* USER POPOVERMENU ACTIONS */ + userActions() { + return [{ + icon: 'icon-delete', + text: t('settings','Delete user'), + action: this.deleteUser + },{ + icon: this.user.enabled ? 'icon-close' : 'icon-add', + text: this.user.enabled ? t('settings','Disable user') : t('settings','Enable user'), + action: this.enableDisableUser + }] + }, + + /* GROUPS MANAGEMENT */ + userGroups() { + let userGroups = this.groups.filter(group => this.user.groups.includes(group.id)); + return userGroups; + }, + userSubAdminsGroups() { + let userSubAdminsGroups = this.subAdminsGroups.filter(group => this.user.subadmin.includes(group.id)); + return userSubAdminsGroups; + }, + + /* QUOTA MANAGEMENT */ + usedQuota() { + let quota = this.user.quota.quota; + if (quota > 0) { + quota = Math.min(100, Math.round(this.user.quota.used / quota * 100)); + } else { + var usedInGB = this.user.quota.used / (10 * Math.pow(2, 30)); + //asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota + quota = 95 * (1 - (1 / (usedInGB + 1))); + } + return isNaN(quota) ? 0 : quota; + }, + // Mapping saved values to objects + userQuota() { + if (this.user.quota.quota > 0) { + // if value is valid, let's map the quotaOptions or return custom quota + let humanQuota = OC.Util.humanFileSize(this.user.quota.quota); + let userQuota = this.quotaOptions.find(quota => quota.id === humanQuota); + return userQuota ? userQuota : {id:humanQuota, label:humanQuota}; + } else if (this.user.quota.quota === 0 || this.user.quota.quota === 'default') { + // default quota is replaced by the proper value on load + return this.quotaOptions[0]; + } + return this.quotaOptions[1]; // unlimited + }, + + /* PASSWORD POLICY? */ + minPasswordLength() { + return this.$store.getters.getPasswordPolicyMinLength; + }, + + /* LANGUAGE */ + userLanguage() { + let availableLanguages = this.languages[0].languages.concat(this.languages[1].languages); + let userLang = availableLanguages.find(lang => lang.code === this.user.language); + if (typeof userLang !== 'object' && this.user.language !== '') { + return { + code: this.user.language, + name: this.user.language + } + } else if(this.user.language === '') { + return false; + } + return userLang; + } + }, + methods: { + /* MENU HANDLING */ + toggleMenu() { + this.openedMenu = !this.openedMenu; + }, + hideMenu() { + this.openedMenu = false; + }, + + /** + * Generate avatar url + * + * @param {string} user The user name + * @param {int} size Size integer, default 32 + * @returns {string} + */ + generateAvatar(user, size=32) { + return OC.generateUrl( + '/avatar/{user}/{size}?v={version}', + { + user: user, + size: size, + version: oc_userconfig.avatar.version + } + ); + }, + + /** + * Format array of groups objects to a string for the popup + * + * @param {array} groups The groups + * @returns {string} + */ + formatGroupsTitle(groups) { + let names = groups.map(group => group.name); + return names.slice(2,).join(', '); + }, + + deleteUser() { + this.loading.delete = true; + this.loading.all = true; + let userid = this.user.id; + return this.$store.dispatch('deleteUser', {userid}) + .then(() => { + this.loading.delete = false + this.loading.all = false + }); + }, + + enableDisableUser() { + this.loading.delete = true; + this.loading.all = true; + let userid = this.user.id; + let enabled = !this.user.enabled; + return this.$store.dispatch('enableDisableUser', {userid, enabled}) + .then(() => { + this.loading.delete = false + this.loading.all = false + }); + }, + + /** + * Set user displayName + * + * @param {string} displayName The display name + * @returns {Promise} + */ + updateDisplayName() { + let displayName = this.$refs.displayName.value; + this.loading.displayName = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'displayname', + value: displayName + }).then(() => { + this.loading.displayName = false; + this.$refs.displayName.value = displayName; + }); + }, + + /** + * Set user password + * + * @param {string} password The email adress + * @returns {Promise} + */ + updatePassword() { + let password = this.$refs.password.value; + this.loading.password = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'password', + value: password + }).then(() => { + this.loading.password = false; + this.$refs.password.value = ''; // empty & show placeholder + }); + }, + + /** + * Set user mailAddress + * + * @param {string} mailAddress The email adress + * @returns {Promise} + */ + updateEmail() { + let mailAddress = this.$refs.mailAddress.value; + this.loading.mailAddress = true; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'email', + value: mailAddress + }).then(() => { + this.loading.mailAddress = false; + this.$refs.mailAddress.value = mailAddress; + }); + }, + + /** + * Create a new group + * + * @param {string} groups Group id + * @returns {Promise} + */ + createGroup(gid) { + this.loading = {groups:true, subadmins:true} + this.$store.dispatch('addGroup', gid).then(() => { + this.loading = {groups:false, subadmins:false}; + let userid = this.user.id; + this.$store.dispatch('addUserGroup', {userid, gid}); + }); + return this.$store.getters.getGroups[this.groups.length]; + }, + + /** + * Add user to group + * + * @param {object} group Group object + * @returns {Promise} + */ + addUserGroup(group) { + this.loading.groups = true; + let userid = this.user.id; + let gid = group.id; + return this.$store.dispatch('addUserGroup', {userid, gid}) + .then(() => this.loading.groups = false); + }, + + /** + * Remove user from group + * + * @param {object} group Group object + * @returns {Promise} + */ + removeUserGroup(group) { + this.loading.groups = true; + let userid = this.user.id; + let gid = group.id; + return this.$store.dispatch('removeUserGroup', {userid, gid}) + .then(() => { + this.loading.groups = false + // remove user from current list if current list is the removed group + if (this.$route.params.selectedGroup === gid) { + this.$store.commit('deleteUser', userid); + } + }); + }, + + /** + * Add user to group + * + * @param {object} group Group object + * @returns {Promise} + */ + addUserSubAdmin(group) { + this.loading.subadmins = true; + let userid = this.user.id; + let gid = group.id; + return this.$store.dispatch('addUserSubAdmin', {userid, gid}) + .then(() => this.loading.subadmins = false); + }, + + /** + * Remove user from group + * + * @param {object} group Group object + * @returns {Promise} + */ + removeUserSubAdmin(group) { + this.loading.subadmins = true; + let userid = this.user.id; + let gid = group.id; + return this.$store.dispatch('removeUserSubAdmin', {userid, gid}) + .then(() => this.loading.subadmins = false); + }, + + /** + * Dispatch quota set request + * + * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'} + * @returns {string} + */ + setUserQuota(quota = 'none') { + this.loading.quota = true; + // ensure we only send the preset id + quota = quota.id ? quota.id : quota; + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'quota', + value: quota + }).then(() => this.loading.quota = false); + return quota; + }, + + /** + * Validate quota string to make sure it's a valid human file size + * + * @param {string} quota Quota in readable format '5 GB' + * @returns {Promise|boolean} + */ + validateQuota(quota) { + // only used for new presets sent through @Tag + let validQuota = OC.Util.computerFileSize(quota); + if (validQuota === 0) { + return this.setUserQuota('none'); + } else if (validQuota !== null) { + // unify format output + return this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota))); + } + // if no valid do not change + return false; + }, + + /** + * Dispatch language set request + * + * @param {Object} lang language object {code:'en', name:'English'} + * @returns {Object} + */ + setUserLanguage(lang) { + this.loading.languages = true; + // ensure we only send the preset id + this.$store.dispatch('setUserData', { + userid: this.user.id, + key: 'language', + value: lang.code + }).then(() => this.loading.languages = false); + return lang; + } + } +} +</script> diff --git a/settings/src/main.js b/settings/src/main.js new file mode 100644 index 00000000000..e09925a95de --- /dev/null +++ b/settings/src/main.js @@ -0,0 +1,22 @@ +import Vue from 'vue'; +import { sync } from 'vuex-router-sync'; +import App from './App.vue'; +import router from './router'; +import store from './store'; +require("babel-polyfill"); + + +sync(store, router); + +// bind to window +Vue.prototype.t = t; +Vue.prototype.OC = OC; +Vue.prototype.oc_userconfig = oc_userconfig; + +const app = new Vue({ + router, + store, + render: h => h(App) +}).$mount('#content'); + +export { app, router, store };
\ No newline at end of file diff --git a/settings/src/router.js b/settings/src/router.js new file mode 100644 index 00000000000..7eedb359b69 --- /dev/null +++ b/settings/src/router.js @@ -0,0 +1,36 @@ +import Vue from 'vue'; +import Router from 'vue-router'; +import Users from './views/Users'; + +Vue.use(Router); + +/* + * This is the list of routes where the vuejs app will + * take over php to provide data + * You need to forward the php routing (routes.php) to + * /settings/main.php, where the vue-router will ensure + * the proper route. + * ⚠️ Routes needs to match the php routes. + */ + +export default new Router({ + mode: 'history', + // if index.php is in the url AND we got this far, then it's working: + // let's keep using index.php in the url + base: OC.generateUrl(''), + routes: [ + { + path: '/:index(index.php/)?settings/users', + component: Users, + props: true, + name: 'users', + children: [ + { + path: ':selectedGroup', + name: 'group', + component: Users + } + ] + } + ] +}); diff --git a/settings/src/store/api.js b/settings/src/store/api.js new file mode 100644 index 00000000000..7501a7bb4cc --- /dev/null +++ b/settings/src/store/api.js @@ -0,0 +1,99 @@ +import axios from 'axios'; + +const requestToken = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken'); +const tokenHeaders = { headers: { requesttoken: requestToken } }; + +const sanitize = function(url) { + return url.replace(/\/$/, ''); // Remove last url slash +}; + +export default { + + /** + * This Promise is used to chain a request that require an admin password confirmation + * Since chaining Promise have a very precise behavior concerning catch and then, + * you'll need to be careful when using it. + * e.g + * // store + * action(context) { + * return api.requireAdmin().then((response) => { + * return api.get('url') + * .then((response) => {API success}) + * .catch((error) => {API failure}); + * }).catch((error) => {requireAdmin failure}); + * } + * // vue + * this.$store.dispatch('action').then(() => {always executed}) + * + * Since Promise.then().catch().then() will always execute the last then + * this.$store.dispatch('action').then will always be executed + * + * If you want requireAdmin failure to also catch the API request failure + * you will need to throw a new error in the api.get.catch() + * + * e.g + * api.requireAdmin().then((response) => { + * api.get('url') + * .then((response) => {API success}) + * .catch((error) => {throw error;}); + * }).catch((error) => {requireAdmin OR API failure}); + * + * @returns {Promise} + */ + requireAdmin() { + return new Promise(function(resolve, reject) { + // TODO: migrate the OC.dialog to Vue and avoid this mess + // wait for password confirmation + let passwordTimeout; + let waitForpassword = function() { + if (OC.PasswordConfirmation.requiresPasswordConfirmation()) { + passwordTimeout = setTimeout(waitForpassword, 500); + return; + } + clearTimeout(passwordTimeout); + clearTimeout(promiseTimeout); + resolve(); + }; + + // automatically reject after 5s if not resolved + let promiseTimeout = setTimeout(() => { + clearTimeout(passwordTimeout); + // close dialog + if (document.getElementsByClassName('oc-dialog-close').length>0) { + document.getElementsByClassName('oc-dialog-close')[0].click(); + } + OC.Notification.showTemporary(t('settings', 'You did not enter the password in time')); + reject('Password request cancelled'); + }, 7000); + + // request password + OC.PasswordConfirmation.requirePasswordConfirmation(); + waitForpassword(); + }); + }, + get(url) { + return axios.get(sanitize(url), tokenHeaders) + .then((response) => Promise.resolve(response)) + .catch((error) => Promise.reject(error)); + }, + post(url, data) { + return axios.post(sanitize(url), data, tokenHeaders) + .then((response) => Promise.resolve(response)) + .catch((error) => Promise.reject(error)); + }, + patch(url, data) { + return axios.patch(sanitize(url), data, tokenHeaders) + .then((response) => Promise.resolve(response)) + .catch((error) => Promise.reject(error)); + }, + put(url, data) { + return axios.put(sanitize(url), data, tokenHeaders) + .then((response) => Promise.resolve(response)) + .catch((error) => Promise.reject(error)); + }, + delete(url, data) { + return axios.delete(sanitize(url), { data: data, headers: tokenHeaders.headers }) + .then((response) => Promise.resolve(response)) + .catch((error) => Promise.reject(error)); + } +};
\ No newline at end of file diff --git a/settings/src/store/index.js b/settings/src/store/index.js new file mode 100644 index 00000000000..4332ece33e4 --- /dev/null +++ b/settings/src/store/index.js @@ -0,0 +1,28 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import users from './users'; +import settings from './settings'; +import oc from './oc'; + +Vue.use(Vuex) + +const debug = process.env.NODE_ENV !== 'production'; + +const mutations = { + API_FAILURE(state, error) { + let message = error.error.response.data.ocs.meta.message; + OC.Notification.showHtml(t('settings','An error occured during the request. Unable to proceed.')+'<br>'+message, {timeout: 7}); + console.log(state, error); + } +}; + +export default new Vuex.Store({ + modules: { + users, + settings, + oc + }, + strict: debug, + + mutations +}); diff --git a/settings/src/store/oc.js b/settings/src/store/oc.js new file mode 100644 index 00000000000..4bb82075e8a --- /dev/null +++ b/settings/src/store/oc.js @@ -0,0 +1,25 @@ +import api from './api'; + +const state = {}; +const mutations = {}; +const getters = {}; +const actions = { + /** + * Set application config in database + * + * @param {Object} context + * @param {Object} options + * @param {string} options.app Application name + * @param {boolean} options.key Config key + * @param {boolean} options.value Value to set + * @returns{Promise} + */ + setAppConfig(context, {app, key, value}) { + return api.requireAdmin().then((response) => { + return api.post(OC.linkToOCS(`apps/provisioning_api/api/v1/config/apps/${app}/${key}`, 2), {value: value}) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { app, key, value, error }));; + } +}; + +export default {state, mutations, getters, actions}; diff --git a/settings/src/store/settings.js b/settings/src/store/settings.js new file mode 100644 index 00000000000..0ba827467a1 --- /dev/null +++ b/settings/src/store/settings.js @@ -0,0 +1,18 @@ +import api from './api'; + +const state = { + serverData: {} +}; +const mutations = { + setServerData(state, data) { + state.serverData = data; + } +}; +const getters = { + getServerData(state) { + return state.serverData; + } +}; +const actions = {}; + +export default {state, mutations, getters, actions}; diff --git a/settings/src/store/users.js b/settings/src/store/users.js new file mode 100644 index 00000000000..f349c7b4a06 --- /dev/null +++ b/settings/src/store/users.js @@ -0,0 +1,420 @@ +import api from './api'; + +const orderGroups = function(groups, orderBy) { + /* const SORT_USERCOUNT = 1; + * const SORT_GROUPNAME = 2; + * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34 + */ + if (orderBy === 1) { + return groups.sort((a, b) => a.usercount < b.usercount); + } else { + return groups.sort((a, b) => a.name.localeCompare(b.name)); + } +}; + +const state = { + users: [], + groups: [], + orderBy: 1, + minPasswordLength: 0, + usersOffset: 0, + usersLimit: 25, + userCount: 0 +}; + +const mutations = { + appendUsers(state, usersObj) { + // convert obj to array + let users = state.users.concat(Object.keys(usersObj).map(userid => usersObj[userid])); + state.usersOffset += state.usersLimit; + state.users = users; + }, + setPasswordPolicyMinLength(state, length) { + state.minPasswordLength = length!=='' ? length : 0; + }, + initGroups(state, {groups, orderBy, userCount}) { + state.groups = groups; + state.orderBy = orderBy; + state.userCount = userCount; + state.groups = orderGroups(state.groups, state.orderBy); + }, + addGroup(state, gid) { + try { + state.groups.push({ + id: gid, + name: gid, + usercount: 0 // user will be added after the creation + }); + state.groups = orderGroups(state.groups, state.orderBy); + } catch (e) { + console.log('Can\'t create group', e); + } + }, + removeGroup(state, gid) { + let groupIndex = state.groups.findIndex(groupSearch => groupSearch.id == gid); + if (groupIndex >= 0) { + state.groups.splice(groupIndex, 1); + } + }, + addUserGroup(state, { userid, gid }) { + let group = state.groups.find(groupSearch => groupSearch.id == gid); + if (group) { + group.usercount++; // increase count + } + let groups = state.users.find(user => user.id == userid).groups; + groups.push(gid); + state.groups = orderGroups(state.groups, state.orderBy); + }, + removeUserGroup(state, { userid, gid }) { + let group = state.groups.find(groupSearch => groupSearch.id == gid); + if (group) { + group.usercount--; // lower count + } + let groups = state.users.find(user => user.id == userid).groups; + groups.splice(groups.indexOf(gid),1); + state.groups = orderGroups(state.groups, state.orderBy); + }, + addUserSubAdmin(state, { userid, gid }) { + let groups = state.users.find(user => user.id == userid).subadmin; + groups.push(gid); + }, + removeUserSubAdmin(state, { userid, gid }) { + let groups = state.users.find(user => user.id == userid).subadmin; + groups.splice(groups.indexOf(gid),1); + }, + deleteUser(state, userid) { + let userIndex = state.users.findIndex(user => user.id == userid); + state.users.splice(userIndex, 1); + }, + addUserData(state, response) { + state.users.push(response.data.ocs.data); + }, + enableDisableUser(state, { userid, enabled }) { + state.users.find(user => user.id == userid).enabled = enabled; + // increment or not + state.groups.find(group => group.id == 'disabled').usercount += enabled ? -1 : 1; + state.userCount += enabled ? 1 : -1; + console.log(enabled); + }, + setUserData(state, { userid, key, value }) { + if (key === 'quota') { + let humanValue = OC.Util.computerFileSize(value); + state.users.find(user => user.id == userid)[key][key] = humanValue?humanValue:value; + } else { + state.users.find(user => user.id == userid)[key] = value; + } + }, + + /** + * Reset users list + */ + resetUsers(state) { + state.users = []; + state.usersOffset = 0; + } +}; + +const getters = { + getUsers(state) { + return state.users; + }, + getGroups(state) { + return state.groups; + }, + getPasswordPolicyMinLength(state) { + return state.minPasswordLength; + }, + getUsersOffset(state) { + return state.usersOffset; + }, + getUsersLimit(state) { + return state.usersLimit; + }, + getUserCount(state) { + return state.userCount; + } +}; + +const actions = { + + /** + * Get all users with full details + * + * @param {Object} context + * @param {Object} options + * @param {int} options.offset List offset to request + * @param {int} options.limit List number to return from offset + * @param {string} options.search Search amongst users + * @param {string} options.group Get users from group + * @returns {Promise} + */ + getUsers(context, { offset, limit, search, group }) { + search = typeof search === 'string' ? search : ''; + group = typeof group === 'string' ? group : ''; + if (group !== '') { + return api.get(OC.linkToOCS(`cloud/groups/${group}/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2)) + .then((response) => { + if (Object.keys(response.data.ocs.data.users).length > 0) { + context.commit('appendUsers', response.data.ocs.data.users); + return true; + } + return false; + }) + .catch((error) => context.commit('API_FAILURE', error)); + } + + return api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2)) + .then((response) => { + if (Object.keys(response.data.ocs.data.users).length > 0) { + context.commit('appendUsers', response.data.ocs.data.users); + return true; + } + return false; + }) + .catch((error) => context.commit('API_FAILURE', error)); + }, + + /** + * Get all users with full details + * + * @param {Object} context + * @param {Object} options + * @param {int} options.offset List offset to request + * @param {int} options.limit List number to return from offset + * @returns {Promise} + */ + getUsersFromList(context, { offset, limit, search }) { + search = typeof search === 'string' ? search : ''; + return api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2)) + .then((response) => { + if (Object.keys(response.data.ocs.data.users).length > 0) { + context.commit('appendUsers', response.data.ocs.data.users); + return true; + } + return false; + }) + .catch((error) => context.commit('API_FAILURE', error)); + }, + + /** + * Get all users with full details from a groupid + * + * @param {Object} context + * @param {Object} options + * @param {int} options.offset List offset to request + * @param {int} options.limit List number to return from offset + * @returns {Promise} + */ + getUsersFromGroup(context, { groupid, offset, limit }) { + return api.get(OC.linkToOCS(`cloud/users/${groupid}/details?offset=${offset}&limit=${limit}`, 2)) + .then((response) => context.commit('getUsersFromList', response.data.ocs.data.users)) + .catch((error) => context.commit('API_FAILURE', error)); + }, + + + getPasswordPolicyMinLength(context) { + if(oc_capabilities.password_policy && oc_capabilities.password_policy.minLength) { + context.commit('setPasswordPolicyMinLength', oc_capabilities.password_policy.minLength); + return oc_capabilities.password_policy.minLength; + } + return false; + }, + + /** + * Add group + * + * @param {Object} context + * @param {string} gid Group id + * @returns {Promise} + */ + addGroup(context, gid) { + return api.requireAdmin().then((response) => { + return api.post(OC.linkToOCS(`cloud/groups`, 2), {groupid: gid}) + .then((response) => context.commit('addGroup', gid)) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Remove group + * + * @param {Object} context + * @param {string} gid Group id + * @returns {Promise} + */ + removeGroup(context, gid) { + return api.requireAdmin().then((response) => { + return api.delete(OC.linkToOCS(`cloud/groups/${gid}`, 2)) + .then((response) => context.commit('removeGroup', gid)) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { gid, error })); + }, + + /** + * Add user to group + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.gid Group id + * @returns {Promise} + */ + addUserGroup(context, { userid, gid }) { + return api.requireAdmin().then((response) => { + return api.post(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid }) + .then((response) => context.commit('addUserGroup', { userid, gid })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Remove user from group + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.gid Group id + * @returns {Promise} + */ + removeUserGroup(context, { userid, gid }) { + return api.requireAdmin().then((response) => { + return api.delete(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid }) + .then((response) => context.commit('removeUserGroup', { userid, gid })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Add user to group admin + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.gid Group id + * @returns {Promise} + */ + addUserSubAdmin(context, { userid, gid }) { + return api.requireAdmin().then((response) => { + return api.post(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid }) + .then((response) => context.commit('addUserSubAdmin', { userid, gid })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Remove user from group admin + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.gid Group id + * @returns {Promise} + */ + removeUserSubAdmin(context, { userid, gid }) { + return api.requireAdmin().then((response) => { + return api.delete(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid }) + .then((response) => context.commit('removeUserSubAdmin', { userid, gid })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Delete a user + * + * @param {Object} context + * @param {string} userid User id + * @returns {Promise} + */ + deleteUser(context, { userid }) { + return api.requireAdmin().then((response) => { + return api.delete(OC.linkToOCS(`cloud/users/${userid}`, 2)) + .then((response) => context.commit('deleteUser', userid)) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Add a user + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.password User password + * @param {string} options.email User email + * @param {string} options.groups User groups + * @param {string} options.subadmin User subadmin groups + * @param {string} options.quota User email + * @returns {Promise} + */ + addUser({commit, dispatch}, { userid, password, email, groups, subadmin, quota, language }) { + return api.requireAdmin().then((response) => { + return api.post(OC.linkToOCS(`cloud/users`, 2), { userid, password, email, groups, subadmin, quota, language }) + .then((response) => dispatch('addUserData', userid)) + .catch((error) => {throw error;}); + }).catch((error) => commit('API_FAILURE', { userid, error })); + }, + + /** + * Get user data and commit addition + * + * @param {Object} context + * @param {string} userid User id + * @returns {Promise} + */ + addUserData(context, userid) { + return api.requireAdmin().then((response) => { + return api.get(OC.linkToOCS(`cloud/users/${userid}`, 2)) + .then((response) => context.commit('addUserData', response)) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** Enable or disable user + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {boolean} options.enabled User enablement status + * @returns {Promise} + */ + enableDisableUser(context, { userid, enabled = true }) { + let userStatus = enabled ? 'enable' : 'disable'; + return api.requireAdmin().then((response) => { + return api.put(OC.linkToOCS(`cloud/users/${userid}/${userStatus}`, 2)) + .then((response) => context.commit('enableDisableUser', { userid, enabled })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + }, + + /** + * Edit user data + * + * @param {Object} context + * @param {Object} options + * @param {string} options.userid User id + * @param {string} options.key User field to edit + * @param {string} options.value Value of the change + * @returns {Promise} + */ + setUserData(context, { userid, key, value }) { + let allowedEmpty = ['email', 'displayname']; + if (['email', 'language', 'quota', 'displayname', 'password'].indexOf(key) !== -1) { + // We allow empty email or displayname + if (typeof value === 'string' && + ( + (allowedEmpty.indexOf(key) === -1 && value.length > 0) || + allowedEmpty.indexOf(key) !== -1 + ) + ) { + return api.requireAdmin().then((response) => { + return api.put(OC.linkToOCS(`cloud/users/${userid}`, 2), { key: key, value: value }) + .then((response) => context.commit('setUserData', { userid, key, value })) + .catch((error) => {throw error;}); + }).catch((error) => context.commit('API_FAILURE', { userid, error })); + } + } + return Promise.reject(new Error('Invalid request data')); + } +}; + +export default { state, mutations, getters, actions };
\ No newline at end of file diff --git a/settings/src/views/Users.vue b/settings/src/views/Users.vue new file mode 100644 index 00000000000..c88487635a9 --- /dev/null +++ b/settings/src/views/Users.vue @@ -0,0 +1,301 @@ +<template> + <div id="app"> + <app-navigation :menu="menu"> + <template slot="settings-content"> + <div> + <p>{{t('settings', 'Default quota :')}}</p> + <multiselect :value="defaultQuota" :options="quotaOptions" + tag-placeholder="create" :placeholder="t('settings', 'Select default quota')" + label="label" track-by="id" class="multiselect-vue" + :allowEmpty="false" :taggable="true" + @tag="validateQuota" @input="setDefaultQuota"> + </multiselect> + + </div> + <div> + <input type="checkbox" id="showLanguages" class="checkbox" v-model="showLanguages"> + <label for="showLanguages">{{t('settings', 'Show Languages')}}</label> + </div> + <div> + <input type="checkbox" id="showLastLogin" class="checkbox" v-model="showLastLogin"> + <label for="showLastLogin">{{t('settings', 'Show last login')}}</label> + </div> + <div> + <input type="checkbox" id="showUserBackend" class="checkbox" v-model="showUserBackend"> + <label for="showUserBackend">{{t('settings', 'Show user backend')}}</label> + </div> + <div> + <input type="checkbox" id="showStoragePath" class="checkbox" v-model="showStoragePath"> + <label for="showStoragePath">{{t('settings', 'Show storage path')}}</label> + </div> + </template> + </app-navigation> + <user-list :users="users" :showConfig="showConfig" :selectedGroup="selectedGroup" /> + </div> +</template> + +<script> +import appNavigation from '../components/appNavigation'; +import userList from '../components/userList'; +import Vue from 'vue'; +import VueLocalStorage from 'vue-localstorage' +import Multiselect from 'vue-multiselect'; +import api from '../store/api'; + +Vue.use(VueLocalStorage) +Vue.use(VueLocalStorage) + +export default { + name: 'Users', + props: ['selectedGroup'], + components: { + appNavigation, + userList, + Multiselect + }, + beforeMount() { + this.$store.commit('initGroups', { + groups: this.$store.getters.getServerData.groups, + orderBy: this.$store.getters.getServerData.sortGroups, + userCount: this.$store.getters.getServerData.userCount + }); + this.$store.dispatch('getPasswordPolicyMinLength'); + }, + data() { + return { + // default quota is unlimited + unlimitedQuota: {id:'default', label:t('settings', 'Unlimited')}, + // temporary value used for multiselect change + selectedQuota: false, + showConfig: { + showStoragePath: false, + showUserBackend: false, + showLastLogin: false, + showNewUserForm: false, + showLanguages: false + } + } + }, + methods: { + toggleNewUserMenu() { + this.showConfig.showNewUserForm = !this.showConfig.showNewUserForm; + if (this.showConfig.showNewUserForm) { + Vue.nextTick(() => { + window.newusername.focus(); + }); + } + }, + getLocalstorage(key) { + // force initialization + let localConfig = this.$localStorage.get(key); + // if localstorage is null, fallback to original values + this.showConfig[key] = localConfig !== null ? localConfig === 'true' : this.showConfig[key]; + return this.showConfig[key]; + }, + setLocalStorage(key, status) { + this.showConfig[key] = status; + this.$localStorage.set(key, status); + return status; + }, + removeGroup(groupid) { + let self = this; + // TODO migrate to a vue js confirm dialog component + OC.dialogs.confirm( + t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', {group: groupid}), + t('settings','Please confirm the group removal '), + function (success) { + if (success) { + self.$store.dispatch('removeGroup', groupid); + } + } + ); + }, + + /** + * Dispatch default quota set request + * + * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'} + * @returns {string} + */ + setDefaultQuota(quota = 'none') { + this.$store.dispatch('setAppConfig', { + app: 'files', + key: 'default_quota', + // ensure we only send the preset id + value: quota.id ? quota.id : quota + }).then(() => { + if (typeof quota !== 'object') { + quota = {id: quota, label: quota}; + } + this.defaultQuota = quota; + }); + }, + + /** + * Validate quota string to make sure it's a valid human file size + * + * @param {string} quota Quota in readable format '5 GB' + * @returns {Promise|boolean} + */ + validateQuota(quota) { + // only used for new presets sent through @Tag + let validQuota = OC.Util.computerFileSize(quota); + if (validQuota === 0) { + return this.setDefaultQuota('none'); + } else if (validQuota !== null) { + // unify format output + return this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota))); + } + // if no valid do not change + return false; + }, + }, + computed: { + users() { + return this.$store.getters.getUsers; + }, + loading() { + return Object.keys(this.users).length === 0; + }, + usersOffset() { + return this.$store.getters.getUsersOffset; + }, + usersLimit() { + return this.$store.getters.getUsersLimit; + }, + + // Local settings + showLanguages: { + get: function() {return this.getLocalstorage('showLanguages')}, + set: function(status) { + this.setLocalStorage('showLanguages', status); + } + }, + showLastLogin: { + get: function() {return this.getLocalstorage('showLastLogin')}, + set: function(status) { + this.setLocalStorage('showLastLogin', status); + } + }, + showUserBackend: { + get: function() {return this.getLocalstorage('showUserBackend')}, + set: function(status) { + this.setLocalStorage('showUserBackend', status); + } + }, + showStoragePath: { + get: function() {return this.getLocalstorage('showStoragePath')}, + set: function(status) { + this.setLocalStorage('showStoragePath', status); + } + }, + + userCount() { + return this.$store.getters.getUserCount; + }, + settings() { + return this.$store.getters.getServerData; + }, + + // default quota + quotaOptions() { + // convert the preset array into objects + let quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []); + // add default presets + quotaPreset.unshift(this.unlimitedQuota); + return quotaPreset; + }, + // mapping saved values to objects + defaultQuota: { + get: function() { + if (this.selectedQuota !== false) { + return this.selectedQuota; + } + if (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) { + // if value is valid, let's map the quotaOptions or return custom quota + return {id:this.settings.defaultQuota, label:this.settings.defaultQuota}; + } + return this.unlimitedQuota; // unlimited + }, + set: function(quota) { + this.selectedQuota = quota; + } + + }, + + // BUILD APP NAVIGATION MENU OBJECT + menu() { + // Data provided php side + let groups = this.$store.getters.getGroups; + groups = Array.isArray(groups) ? groups : []; + + // Map groups + groups = groups.map(group => { + let item = {}; + item.id = group.id.replace(' ', '_'); + item.classes = []; // empty classes, active will be set later + item.router = { // router link to + name: 'group', + params: {selectedGroup: group.id} + }; + item.text = group.name; // group name + item.utils = {counter: group.usercount}; // users count + + if (item.id !== 'admin' && item.id !== 'disabled' && this.settings.isAdmin) { + // add delete button on real groups + let self = this; + item.utils.actions = [{ + icon: 'icon-delete', + text: t('settings', 'Remove group'), + action: function() {self.removeGroup(group.id)} + }]; + }; + return item; + }); + + // Adjust data + let adminGroup = groups.find(group => group.id == 'admin'); + let disabledGroupIndex = groups.findIndex(group => group.id == 'disabled'); + let disabledGroup = groups[disabledGroupIndex]; + if (adminGroup && adminGroup.text) { + adminGroup.text = t('settings', 'Admins'); // rename admin group + } + if (disabledGroup && disabledGroup.text) { + disabledGroup.text = t('settings', 'Disabled users'); // rename disabled group + if (disabledGroup.utils.counter === 0) { + groups.splice(disabledGroupIndex, 1); // remove disabled if empty + } + } + + // Add everyone group + groups.unshift({ + id: 'everyone', + classes: [], + router: {name:'users'}, + text: t('settings', 'Everyone'), + utils: {counter: this.userCount} + }); + + // Set current group as active + let activeGroup = groups.findIndex(group => group.id === this.selectedGroup); + if (activeGroup >= 0) { + groups[activeGroup].classes.push('active'); + } else { + groups[0].classes.push('active'); + } + + // Return + return { + id: 'usergrouplist', + new: { + id:'new-user-button', + text: t('settings','New user'), + icon: 'icon-add', + action: this.toggleNewUserMenu + }, + items: groups + } + }, + } +} +</script> diff --git a/settings/templates/settings.php b/settings/templates/settings.php index 44011af2884..2314604111a 100644 --- a/settings/templates/settings.php +++ b/settings/templates/settings.php @@ -1,9 +1,24 @@ -<?php /** - * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */?> +<?php +/** + * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * + * @license GNU AGPL version 3 or any later version + * + * This is the default empty template to load Vue! + * Do your cbackend computations into a php files + * then serve this file as template and include your data into + * the $serverData template variable + * + * return new TemplateResponse('settings', 'settings', ['serverData' => $serverData]); + * + */ -<?php foreach($_['forms'] as $form) { - print_unescaped($form); -} +script('settings', 'main'); +style('settings', 'settings'); + +// Did we have some data to inject ? +if(is_array($_['serverData'])) { +?> +<span id="serverData" data-server="<?php p(json_encode($_['serverData']));?>"></span> +<?php } ?> diff --git a/settings/templates/users/main.php b/settings/templates/users/main.php deleted file mode 100644 index 2d40f0fbb64..00000000000 --- a/settings/templates/users/main.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright (c) 2011, Robin Appelman <icewind1991@gmail.com> - * Copyright (c) 2017, John Molakvoæ <skjnldsv@protonmail.com> - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ - -script('settings', [ - 'users/deleteHandler', - 'users/filter', - 'users/users', - 'users/groups' -]); -script('core', [ - 'multiselect', - 'singleselect' -]); -style('settings', 'settings'); - -$userlistParams = array(); -$allGroups=array(); -foreach($_["adminGroup"] as $group) { - $allGroups[$group['id']] = array('displayName' => $group['name']); -} -foreach($_["groups"] as $group) { - $allGroups[$group['id']] = array('displayName' => $group['name']); -} -$userlistParams['subadmingroups'] = $allGroups; -$userlistParams['allGroups'] = json_encode($allGroups); -$items = array_flip($userlistParams['subadmingroups']); -unset($items['admin']); -$userlistParams['subadmingroups'] = array_flip($items); - -translation('settings'); -?> - -<div id="app-navigation"> - <?php print_unescaped($this->inc('users/part.createuser')); ?> - <?php print_unescaped($this->inc('users/part.grouplist')); ?> - <div id="app-settings"> - <div id="app-settings-header"> - <button class="settings-button" tabindex="0" data-apps-slide-toggle="#app-settings-content"><?php p($l->t('Settings'));?></button> - </div> - <div id="app-settings-content"> - <?php print_unescaped($this->inc('users/part.setquota')); ?> - - <div id="userlistoptions"> - <p> - <input type="checkbox" name="StorageLocation" value="StorageLocation" id="CheckboxStorageLocation" - class="checkbox" <?php if ($_['show_storage_location'] === 'true') print_unescaped('checked="checked"'); ?> /> - <label for="CheckboxStorageLocation"> - <?php p($l->t('Show storage location')) ?> - </label> - </p> - <p> - <input type="checkbox" name="UserBackend" value="UserBackend" id="CheckboxUserBackend" - class="checkbox" <?php if ($_['show_backend'] === 'true') print_unescaped('checked="checked"'); ?> /> - <label for="CheckboxUserBackend"> - <?php p($l->t('Show user backend')) ?> - </label> - </p> - <p> - <input type="checkbox" name="LastLogin" value="LastLogin" id="CheckboxLastLogin" - class="checkbox" <?php if ($_['show_last_login'] === 'true') print_unescaped('checked="checked"'); ?> /> - <label for="CheckboxLastLogin"> - <?php p($l->t('Show last login')) ?> - </label> - </p> - <p class="info-text"> - <?php p($l->t('When the password of a new user is left empty, an activation email with a link to set the password is sent.')) ?> - </p> - </div> - </div> - </div> -</div> - -<div id="app-content"> - <?php print_unescaped($this->inc('users/part.userlist', $userlistParams)); ?> -</div> diff --git a/settings/templates/users/part.createuser.php b/settings/templates/users/part.createuser.php deleted file mode 100644 index 57fe8e8b63f..00000000000 --- a/settings/templates/users/part.createuser.php +++ /dev/null @@ -1,3 +0,0 @@ -<div class="app-navigation-new"> - <button type="button" id="new-user-button" class="icon-add"><?php p($l->t('Add user'))?></button> -</div> diff --git a/settings/templates/users/part.grouplist.php b/settings/templates/users/part.grouplist.php deleted file mode 100644 index 4128a6b76e4..00000000000 --- a/settings/templates/users/part.grouplist.php +++ /dev/null @@ -1,69 +0,0 @@ -<ul id="usergrouplist" data-sort-groups="<?php p($_['sortGroups']); ?>"> - <!-- Add new group --> - <?php if ($_['isAdmin']) { ?> - <li id="newgroup-entry"> - <a href="#" class="icon-add" id="newgroup-init"><?php p($l->t('Add group'))?></a> - <div class="app-navigation-entry-edit" id="newgroup-form"> - <form> - <input type="text" id="newgroupname" placeholder="<?php p($l->t('Add group'))?>"> - <input type="submit" value="" class="icon-checkmark"> - </form> - </div> - </li> - <?php } ?> - <!-- Everyone --> - <li id="everyonegroup" data-gid="_everyone" data-usercount="" class="isgroup"> - <a href="#"> - <span class="groupname"> - <?php p($l->t('Everyone')); ?> - </span> - </a> - <div class="app-navigation-entry-utils"> - <ul> - <li class="usercount app-navigation-entry-utils-counter" id="everyonecount"></li> - </ul> - </div> - </li> - - <!-- The Admin Group --> - <?php foreach($_["adminGroup"] as $adminGroup): ?> - <li data-gid="admin" data-usercount="<?php if($adminGroup['usercount'] > 0) { p($adminGroup['usercount']); } ?>" class="isgroup"> - <a href="#"><span class="groupname"><?php p($l->t('Admins')); ?></span></a> - <div class="app-navigation-entry-utils"> - <ul> - <li class="app-navigation-entry-utils-counter"><?php if($adminGroup['usercount'] > 0) { p($adminGroup['usercount']); } ?></li> - </ul> - </div> - </li> - <?php endforeach; ?> - - <!-- Disabled Users --> - <?php $disabledUsersGroup = $_["disabledUsersGroup"] ?> - <li data-gid="_disabledUsers" data-usercount="<?php if($disabledUsersGroup['usercount'] > 0) { p($disabledUsersGroup['usercount']); } ?>" class="isgroup"> - <a href="#"><span class="groupname"><?php p($l->t('Disabled')); ?></span></a> - <div class="app-navigation-entry-utils"> - <ul> - <li class="app-navigation-entry-utils-counter"><?php if($disabledUsersGroup['usercount'] > 0) { p($disabledUsersGroup['usercount']); } ?></li> - </ul> - </div> - </li> - - <!--List of Groups--> - <?php foreach($_["groups"] as $group): ?> - <li data-gid="<?php p($group['id']) ?>" data-usercount="<?php p($group['usercount']) ?>" class="isgroup"> - <a href="#" class="dorename"> - <span class="groupname"><?php p($group['name']); ?></span> - </a> - <div class="app-navigation-entry-utils"> - <ul> - <li class="app-navigation-entry-utils-counter"><?php if($group['usercount'] > 0) { p($group['usercount']); } ?></li> - <?php if($_['isAdmin']): ?> - <li class="app-navigation-entry-utils-menu-button delete"> - <button class="icon-delete"></button> - </li> - <?php endif; ?> - </ul> - </div> - </li> - <?php endforeach; ?> -</ul> diff --git a/settings/templates/users/part.setquota.php b/settings/templates/users/part.setquota.php deleted file mode 100644 index a0231ddace2..00000000000 --- a/settings/templates/users/part.setquota.php +++ /dev/null @@ -1,35 +0,0 @@ -<div class="quota"> - <!-- Default storage --> - <span><?php p($l->t('Default quota'));?></span> - <?php if((bool) $_['isAdmin']): ?> - <select id='default_quota' data-inputtitle="<?php p($l->t('Please enter storage quota (ex: "512 MB" or "12 GB")')) ?>" data-tipsy-gravity="s"> - <option <?php if($_['default_quota'] === 'none') print_unescaped('selected="selected"');?> value='none'> - <?php p($l->t('Unlimited'));?> - </option> - <?php foreach($_['quota_preset'] as $preset):?> - <?php if($preset !== 'default'):?> - <option <?php if($_['default_quota']==$preset) print_unescaped('selected="selected"');?> value='<?php p($preset);?>'> - <?php p($preset);?> - </option> - <?php endif;?> - <?php endforeach;?> - <?php if($_['defaultQuotaIsUserDefined']):?> - <option selected="selected" value='<?php p($_['default_quota']);?>'> - <?php p($_['default_quota']);?> - </option> - <?php endif;?> - <option data-new value='other'> - <?php p($l->t('Other'));?> - ... - </option> - </select> - <?php endif; ?> - <?php if((bool) !$_['isAdmin']): ?> - : - <?php if( $_['default_quota'] === 'none'): ?> - <?php p($l->t('Unlimited'));?> - <?php else: ?> - <?php p($_['default_quota']);?> - <?php endif; ?> - <?php endif; ?> -</div> diff --git a/settings/templates/users/part.userlist.php b/settings/templates/users/part.userlist.php deleted file mode 100644 index 5a37c968d1e..00000000000 --- a/settings/templates/users/part.userlist.php +++ /dev/null @@ -1,149 +0,0 @@ -<form class="newUserMenu" id="newuser" autocomplete="off"> - <table id="userlist" class="grid" data-groups="<?php p($_['allGroups']);?>"> - <thead> - <tr> - <th id="headerAvatar" scope="col"></th> - <th id="headerName" scope="col"><?php p($l->t('Username'))?></th> - <th id="headerDisplayName" scope="col"><?php p($l->t( 'Full name' )); ?></th> - <th id="headerPassword" scope="col"><?php p($l->t( 'Password' )); ?></th> - <th class="mailAddress" scope="col"><?php p($l->t( 'Email' )); ?></th> - <th id="headerGroups" scope="col"><?php p($l->t( 'Groups' )); ?></th> - <?php if(is_array($_['subadmins']) || $_['subadmins']): ?> - <th id="headerSubAdmins" scope="col"><?php p($l->t('Group admin for')); ?></th> - <?php endif;?> - <?php if((bool)$_['recoveryAdminEnabled']): ?> - <th id="recoveryPassword" scope="col"><?php p($l->t('Recovery password')); ?></th> - <?php endif; ?> - <th id="headerQuota" scope="col"><?php p($l->t('Quota')); ?></th> - <th class="storageLocation" scope="col"><?php p($l->t('Storage location')); ?></th> - <th class="userBackend" scope="col"><?php p($l->t('User backend')); ?></th> - <th class="lastLogin" scope="col"><?php p($l->t('Last login')); ?></th> - <th class="userActions"></th> - </tr> - <tr id="newuserHeader" style="display:none"> - <td class="icon-add"></td> - <td class="name"> - <input id="newusername" type="text" required - placeholder="<?php p($l->t('Username'))?>" name="username" - autocomplete="off" autocapitalize="none" autocorrect="off" /> - </td> - <td class="displayName"> - <input id="newdisplayname" type="text" - placeholder="<?php p($l->t('Full name'))?>" name="displayname" - autocomplete="off" autocapitalize="none" autocorrect="off" /> - </td> - <td class="password"> - <input id="newuserpassword" type="password" - placeholder="<?php p($l->t('Password'))?>" name="password" - autocomplete="new-password" autocapitalize="none" autocorrect="off" /> - </td> - <td class="mailAddress"> - <input id="newemail" type="email" - placeholder="<?php p($l->t('E-Mail'))?>" name="email" - autocomplete="off" autocapitalize="none" autocorrect="off" /> - </td> - <td class="groups"> - <div class="groupsListContainer multiselect button" data-placeholder="<?php p($l->t('Groups'))?>"> - <span class="title groupsList"></span> - <span class="icon-triangle-s"></span> - </div> - </td> - <?php if(is_array($_['subadmins']) || $_['subadmins']): ?> - <td></td> - <?php endif;?> - <?php if((bool)$_['recoveryAdminEnabled']): ?> - <td class="recoveryPassword"> - <input id="recoveryPassword" - type="password" - placeholder="<?php p($l->t('Admin Recovery Password'))?>" - title="<?php p($l->t('Enter the recovery password in order to recover the users files during password change'))?>" - alt="<?php p($l->t('Enter the recovery password in order to recover the users files during password change'))?>"/> - </td> - <?php endif; ?> - <td class="quota"></td> - <td class="storageLocation" scope="col"></td> - <td class="userBackend" scope="col"></td> - <td class="lastLogin" scope="col"></td> - <td class="userActions"> - <input type="submit" id="newsubmit" class="button primary icon-checkmark-white has-tooltip" value="" title="<?php p($l->t('Add user'))?>" /> - <input type="reset" id="newreset" class="button icon-close has-tooltip" value="" title="<?php p($l->t('Cancel'))?>" /> - </td> - </tr> - </thead> - <tbody> - <!-- the following <tr> is used as a template for the JS part --> - <tr style="display:none"> - <td class="avatar"><div class="avatardiv"></div></td> - <td class="name" scope="row"></td> - <td class="displayName"><span></span> <img class="action" - src="<?php p(image_path('core', 'actions/rename.svg'))?>" - alt="<?php p($l->t('change full name'))?>" title="<?php p($l->t('change full name'))?>"/> - </td> - <td class="password"><span>●●●●●●●</span> <img class="action" - src="<?php print_unescaped(image_path('core', 'actions/rename.svg'))?>" - alt="<?php p($l->t('set new password'))?>" title="<?php p($l->t('set new password'))?>"/> - </td> - <td class="mailAddress"><span></span><div class="loading-small hidden"></div> <img class="action" - src="<?php p(image_path('core', 'actions/rename.svg'))?>" - alt="<?php p($l->t('change email address'))?>" title="<?php p($l->t('change email address'))?>"/> - </td> - <td class="groups"><div class="groupsListContainer multiselect button" - ><span class="title groupsList"></span><span class="icon-triangle-s"></span></div> - </td> - <?php if(is_array($_['subadmins']) || $_['subadmins']): ?> - <td class="subadmins"><div class="groupsListContainer multiselect button" - ><span class="title groupsList"></span><span class="icon-triangle-s"></span></div> - </td> - <?php endif;?> - <?php if((bool)$_['recoveryAdminEnabled']): ?> - <td></td> - <?php endif; ?> - <td class="quota"> - <select class="quota-user" data-inputtitle="<?php p($l->t('Please enter storage quota (ex: "512 MB" or "12 GB")')) ?>"> - <option value='default'> - <?php p($l->t('Default'));?> - </option> - <option value='none'> - <?php p($l->t('Unlimited'));?> - </option> - <?php foreach($_['quota_preset'] as $preset):?> - <option value='<?php p($preset);?>'> - <?php p($preset);?> - </option> - <?php endforeach;?> - <option value='other' data-new> - <?php p($l->t('Other'));?> ... - </option> - </select> - <progress class="quota-user-progress" value="" max="100"></progress> - </td> - <td class="storageLocation"></td> - <td class="userBackend"></td> - <td class="lastLogin"></td> - <td class="userActions"> - <div class="toggleUserActions"> - <a class="action"><span class="icon-more"></span></a> - <div class="popovermenu"> - <ul class="userActionsMenu"> - <li> - <a href="#" class="menuitem action-togglestate permanent" data-action="togglestate"></a> - </li> - <li> - <a href="#" class="menuitem action-remove permanent" data-action="remove"> - <span class="icon icon-delete"></span> - <span><?php p($l->t('Delete')); ?></span> - </a> - </li> - </ul> - </div> - </div> - </td> - </tr> - </tbody> - </table> -</form> - -<div class="emptycontent" style="display:none"> - <div class="icon-search"></div> - <h2></h2> -</div> diff --git a/settings/tests/js/users/deleteHandlerSpec.js b/settings/tests/js/users/deleteHandlerSpec.js deleted file mode 100644 index 98530c47eed..00000000000 --- a/settings/tests/js/users/deleteHandlerSpec.js +++ /dev/null @@ -1,220 +0,0 @@ -/** -* ownCloud -* -* @author Vincent Petry -* @copyright 2014 Vincent Petry <pvince81@owncloud.com> -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE -* License as published by the Free Software Foundation; either -* version 3 of the License, or any later version. -* -* This library 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 library. If not, see <http://www.gnu.org/licenses/>. -* -*/ - -describe('DeleteHandler tests', function() { - var showNotificationSpy; - var hideNotificationSpy; - var clock; - var removeCallback; - var markCallback; - var undoCallback; - - function init(markCallback, removeCallback, undoCallback) { - var handler = new DeleteHandler('dummyendpoint.php', 'paramid', markCallback, removeCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry', undoCallback); - return handler; - } - - beforeEach(function() { - showNotificationSpy = sinon.spy(OC.Notification, 'showHtml'); - hideNotificationSpy = sinon.spy(OC.Notification, 'hide'); - clock = sinon.useFakeTimers(); - removeCallback = sinon.stub(); - markCallback = sinon.stub(); - undoCallback = sinon.stub(); - - $('#testArea').append('<div id="notification"></div>'); - }); - afterEach(function() { - showNotificationSpy.restore(); - hideNotificationSpy.restore(); - clock.restore(); - }); - it('shows a notification when marking for delete', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); - - expect(markCallback.calledOnce).toEqual(true); - expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); - expect(removeCallback.notCalled).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - - expect(fakeServer.requests.length).toEqual(0); - }); - it('deletes first entry and reshows notification on second delete', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_other_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_uid entry'); - showNotificationSpy.resetHistory(); - - handler.mark('some_other_uid'); - - expect(hideNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.calledOnce).toEqual(true); - expect(showNotificationSpy.getCall(0).args[0]).toEqual('removed some_other_uid entry'); - - expect(markCallback.calledTwice).toEqual(true); - expect(markCallback.getCall(0).args[0]).toEqual('some_uid'); - expect(markCallback.getCall(1).args[0]).toEqual('some_other_uid'); - // called only once, because it is called once the second user is deleted - expect(removeCallback.calledOnce).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - - // previous one was delete - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('automatically deletes after timeout', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 204, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - clock.tick(5000); - // nothing happens yet - expect(fakeServer.requests.length).toEqual(0); - - clock.tick(3000); - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('deletes when deleteEntry is called', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - - handler.deleteEntry(); - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid'); - }); - it('deletes when deleteEntry is called and escapes', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid<>/"..\\'); - - handler.deleteEntry(); - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid%3C%3E%2F%22..%5C'); - }); - it('cancels deletion when undo is clicked', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); - handler.mark('some_uid'); - $('#notification .undo').click(); - - expect(undoCallback.calledOnce).toEqual(true); - - // timer was cancelled - clock.tick(10000); - expect(fakeServer.requests.length).toEqual(0); - }); - it('cancels deletion when cancel method is called', function() { - var handler = init(markCallback, removeCallback, undoCallback); - handler.setNotification(OC.Notification, 'dataid', 'removed %oid entry <span class="undo">Undo</span>', undoCallback); - handler.mark('some_uid'); - handler.cancel(); - - // not sure why, seems to be by design - expect(undoCallback.notCalled).toEqual(true); - - // timer was cancelled - clock.tick(10000); - expect(fakeServer.requests.length).toEqual(0); - }); - it('calls removeCallback after successful server side deletion', function() { - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 200, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'success'}) - ]); - - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - handler.deleteEntry(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - var query = OC.parseQueryString(request.requestBody); - - expect(removeCallback.calledOnce).toEqual(true); - expect(undoCallback.notCalled).toEqual(true); - expect(removeCallback.getCall(0).args[0]).toEqual('some_uid'); - }); - it('calls undoCallback and shows alert after failed server side deletion', function() { - // stub t to avoid extra calls - var tStub = sinon.stub(window, 't').returns('text'); - fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [ - 403, - { 'Content-Type': 'application/json' }, - JSON.stringify({status: 'error', data: {message: 'test error'}}) - ]); - - var alertDialogStub = sinon.stub(OC.dialogs, 'alert'); - var handler = init(markCallback, removeCallback, undoCallback); - handler.mark('some_uid'); - handler.deleteEntry(); - - expect(fakeServer.requests.length).toEqual(1); - var request = fakeServer.requests[0]; - var query = OC.parseQueryString(request.requestBody); - - expect(removeCallback.notCalled).toEqual(true); - expect(undoCallback.calledOnce).toEqual(true); - expect(undoCallback.getCall(0).args[0]).toEqual('some_uid'); - - expect(alertDialogStub.calledOnce); - - alertDialogStub.restore(); - tStub.restore(); - }); -}); diff --git a/settings/users.php b/settings/users.php deleted file mode 100644 index 03523fc5305..00000000000 --- a/settings/users.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> - * @author Clark Tomlinson <fallen013@gmail.com> - * @author Daniel Molkentin <daniel@molkentin.de> - * @author Georg Ehrke <oc.list@georgehrke.com> - * @author Jakob Sack <mail@jakobsack.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Stephan Peijnik <speijnik@anexia-it.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Thomas Pulzer <t.pulzer@kniel.de> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -OC_Util::checkSubAdminUser(); - -\OC::$server->getNavigationManager()->setActiveEntry('core_users'); - -$userManager = \OC::$server->getUserManager(); -$groupManager = \OC::$server->getGroupManager(); -$appManager = \OC::$server->getAppManager(); - -// Set the sort option: SORT_USERCOUNT or SORT_GROUPNAME -$sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT; - -$config = \OC::$server->getConfig(); - -if ($config->getSystemValue('sort_groups_by_name', false)) { - $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME; -} else { - $isLDAPUsed = false; - if ($appManager->isEnabledForUser('user_ldap')) { - $isLDAPUsed = - $groupManager->isBackendUsed('\OCA\User_LDAP\Group_LDAP') - || $groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy'); - if ($isLDAPUsed) { - // LDAP user count can be slow, so we sort by group name here - $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME; - } - } -} - -$uid = \OC_User::getUser(); -$isAdmin = OC_User::isAdminUser($uid); - -$isDisabled = true; -$user = $userManager->get($uid); -if ($user) { - $isDisabled = !$user->isEnabled(); -} - -$groupsInfo = new \OC\Group\MetaData( - $uid, - $isAdmin, - $groupManager, - \OC::$server->getUserSession() -); - -$groupsInfo->setSorting($sortGroupsBy); -list($adminGroup, $groups) = $groupsInfo->get(); - -$recoveryAdminEnabled = $appManager->isEnabledForUser('encryption') && - $config->getAppValue( 'encryption', 'recoveryAdminEnabled', '0'); - -if($isAdmin) { - $subAdmins = \OC::$server->getGroupManager()->getSubAdmin()->getAllSubAdmins(); - // New class returns IUser[] so convert back - $result = []; - foreach ($subAdmins as $subAdmin) { - $result[] = [ - 'gid' => $subAdmin['group']->getGID(), - 'uid' => $subAdmin['user']->getUID(), - ]; - } - $subAdmins = $result; -}else{ - /* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */ - $gids = array(); - foreach($groups as $group) { - if (isset($group['id'])) { - $gids[] = $group['id']; - } - } - $subAdmins = false; -} - -$disabledUsers = $isLDAPUsed ? 0 : $userManager->countDisabledUsers(); -$disabledUsersGroup = [ - 'id' => '_disabledUsers', - 'name' => '_disabledUsers', - 'usercount' => $disabledUsers -]; - -// load preset quotas -$quotaPreset=$config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB'); -$quotaPreset=explode(',', $quotaPreset); -foreach($quotaPreset as &$preset) { - $preset=trim($preset); -} -$quotaPreset=array_diff($quotaPreset, array('default', 'none')); - -$defaultQuota=$config->getAppValue('files', 'default_quota', 'none'); -$defaultQuotaIsUserDefined=array_search($defaultQuota, $quotaPreset)===false - && array_search($defaultQuota, array('none', 'default'))===false; - -\OC::$server->getEventDispatcher()->dispatch('OC\Settings\Users::loadAdditionalScripts'); - -$tmpl = new OC_Template("settings", "users/main", "user"); -$tmpl->assign('groups', $groups); -$tmpl->assign('sortGroups', $sortGroupsBy); -$tmpl->assign('adminGroup', $adminGroup); -$tmpl->assign('disabledUsersGroup', $disabledUsersGroup); -$tmpl->assign('isAdmin', (int)$isAdmin); -$tmpl->assign('subadmins', $subAdmins); -$tmpl->assign('numofgroups', count($groups) + count($adminGroup)); -$tmpl->assign('quota_preset', $quotaPreset); -$tmpl->assign('default_quota', $defaultQuota); -$tmpl->assign('defaultQuotaIsUserDefined', $defaultQuotaIsUserDefined); -$tmpl->assign('recoveryAdminEnabled', $recoveryAdminEnabled); - -$tmpl->assign('show_storage_location', $config->getAppValue('core', 'umgmt_show_storage_location', 'false')); -$tmpl->assign('show_last_login', $config->getAppValue('core', 'umgmt_show_last_login', 'false')); -$tmpl->assign('show_email', $config->getAppValue('core', 'umgmt_show_email', 'false')); -$tmpl->assign('show_backend', $config->getAppValue('core', 'umgmt_show_backend', 'false')); -$tmpl->assign('send_email', $config->getAppValue('core', 'umgmt_send_email', 'false')); - -$tmpl->printPage(); diff --git a/settings/webpack.common.js b/settings/webpack.common.js new file mode 100644 index 00000000000..8810c302448 --- /dev/null +++ b/settings/webpack.common.js @@ -0,0 +1,77 @@ +const path = require('path') + +module.exports = { + entry: './src/main.js', + output: { + path: path.resolve(__dirname, './js'), + publicPath: '/dist/', + filename: 'main.js' + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + 'vue-style-loader', + 'css-loader' + ], + }, + { + test: /\.scss$/, + use: [ + 'vue-style-loader', + 'css-loader', + 'sass-loader' + ], + }, + { + test: /\.sass$/, + use: [ + 'vue-style-loader', + 'css-loader', + 'sass-loader?indentedSyntax' + ], + }, + { + test: /\.vue$/, + loader: 'vue-loader', + options: { + loaders: { + // Since sass-loader (weirdly) has SCSS as its default parse mode, we map + // the "scss" and "sass" values for the lang attribute to the right configs here. + // other preprocessors should work out of the box, no loader config like this necessary. + 'scss': [ + 'vue-style-loader', + 'css-loader', + 'sass-loader' + ], + 'sass': [ + 'vue-style-loader', + 'css-loader', + 'sass-loader?indentedSyntax' + ] + } + // other vue-loader options go here + } + }, + { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + }, + { + test: /\.(png|jpg|gif|svg)$/, + loader: 'file-loader', + options: { + name: '[name].[ext]?[hash]' + } + } + ] + }, + resolve: { + alias: { + 'vue$': 'vue/dist/vue.esm.js' + }, + extensions: ['*', '.js', '.vue', '.json'] + } +} diff --git a/settings/webpack.dev.js b/settings/webpack.dev.js new file mode 100644 index 00000000000..88409bbb1d8 --- /dev/null +++ b/settings/webpack.dev.js @@ -0,0 +1,12 @@ +const merge = require('webpack-merge'); +const common = require('./webpack.common.js'); + +module.exports = merge(common, { + mode: 'development', + devServer: { + historyApiFallback: true, + noInfo: true, + overlay: true + }, + devtool: '#eval-source-map', +}) diff --git a/settings/webpack.prod.js b/settings/webpack.prod.js new file mode 100644 index 00000000000..f081567bd63 --- /dev/null +++ b/settings/webpack.prod.js @@ -0,0 +1,7 @@ +const merge = require('webpack-merge') +const common = require('./webpack.common.js') + +module.exports = merge(common, { + mode: 'production', + devtool: '#source-map' +}) diff --git a/tests/Settings/ApplicationTest.php b/tests/Settings/ApplicationTest.php index 31391a8fac6..eab7d5bd8cf 100644 --- a/tests/Settings/ApplicationTest.php +++ b/tests/Settings/ApplicationTest.php @@ -72,7 +72,6 @@ class ApplicationTest extends TestCase { [AuthSettingsController::class, Controller::class], // Needs session: [CertificateController::class, Controller::class], [CheckSetupController::class, Controller::class], - [GroupsController::class, Controller::class], [LogSettingsController::class, Controller::class], [MailSettingsController::class, Controller::class], [UsersController::class, Controller::class], diff --git a/tests/Settings/Controller/GroupsControllerTest.php b/tests/Settings/Controller/GroupsControllerTest.php deleted file mode 100644 index d43d4faf218..00000000000 --- a/tests/Settings/Controller/GroupsControllerTest.php +++ /dev/null @@ -1,381 +0,0 @@ -<?php -/** - * @author Lukas Reschke - * @copyright 2014 Lukas Reschke lukas@owncloud.com - * - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -namespace Tests\Settings\Controller; - -use OC\Group\Group; -use OC\Group\MetaData; -use OC\Settings\Controller\GroupsController; -use OC\User\User; -use OCP\AppFramework\Http; -use OCP\AppFramework\Http\DataResponse; -use OCP\IGroupManager; -use OCP\IL10N; -use OCP\IRequest; -use OCP\IUserSession; - -/** - * @package Tests\Settings\Controller - */ -class GroupsControllerTest extends \Test\TestCase { - - /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ - private $groupManager; - - /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ - private $userSession; - - /** @var GroupsController */ - private $groupsController; - - protected function setUp() { - parent::setUp(); - - $this->groupManager = $this->createMock(IGroupManager::class); - $this->userSession = $this->createMock(IUserSession::class); - $l = $this->createMock(IL10N::class); - $l->method('t') - ->will($this->returnCallback(function($text, $parameters = []) { - return vsprintf($text, $parameters); - })); - $this->groupsController = new GroupsController( - 'settings', - $this->createMock(IRequest::class), - $this->groupManager, - $this->userSession, - true, - $l - ); - - } - - /** - * TODO: Since GroupManager uses the static OC_Subadmin class it can't be mocked - * to test for subadmins. Thus the test always assumes you have admin permissions... - */ - public function testIndexSortByName() { - $firstGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $firstGroup - ->method('getGID') - ->will($this->returnValue('firstGroup')); - $firstGroup - ->method('getDisplayName') - ->will($this->returnValue('First group')); - $firstGroup - ->method('count') - ->will($this->returnValue(12)); - $secondGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $secondGroup - ->method('getGID') - ->will($this->returnValue('secondGroup')); - $secondGroup - ->method('getDisplayName') - ->will($this->returnValue('Second group')); - $secondGroup - ->method('count') - ->will($this->returnValue(25)); - $thirdGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $thirdGroup - ->method('getGID') - ->will($this->returnValue('thirdGroup')); - $thirdGroup - ->method('getDisplayName') - ->will($this->returnValue('Third group')); - $thirdGroup - ->method('count') - ->will($this->returnValue(14)); - $fourthGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $fourthGroup - ->method('getGID') - ->will($this->returnValue('admin')); - $fourthGroup - ->method('getDisplayName') - ->will($this->returnValue('Admin')); - $fourthGroup - ->method('count') - ->will($this->returnValue(18)); - /** @var \OC\Group\Group[] $groups */ - $groups = array(); - $groups[] = $firstGroup; - $groups[] = $secondGroup; - $groups[] = $thirdGroup; - $groups[] = $fourthGroup; - - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('MyAdminUser')); - $this->groupManager->method('search') - ->will($this->returnValue($groups)); - - $expectedResponse = new DataResponse( - array( - 'data' => array( - 'adminGroups' => array( - 0 => array( - 'id' => 'admin', - 'name' => 'Admin', - 'usercount' => 0,//User count disabled 18, - ) - ), - 'groups' => - array( - 0 => array( - 'id' => 'firstGroup', - 'name' => 'First group', - 'usercount' => 0,//User count disabled 12, - ), - 1 => array( - 'id' => 'secondGroup', - 'name' => 'Second group', - 'usercount' => 0,//User count disabled 25, - ), - 2 => array( - 'id' => 'thirdGroup', - 'name' => 'Third group', - 'usercount' => 0,//User count disabled 14, - ), - ) - ) - ) - ); - $response = $this->groupsController->index('', false, MetaData::SORT_GROUPNAME); - $this->assertEquals($expectedResponse, $response); - } - - /** - * TODO: Since GroupManager uses the static OC_Subadmin class it can't be mocked - * to test for subadmins. Thus the test always assumes you have admin permissions... - */ - public function testIndexSortbyCount() { - $firstGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $firstGroup - ->method('getGID') - ->will($this->returnValue('firstGroup')); - $firstGroup - ->method('getDisplayName') - ->will($this->returnValue('First group')); - $firstGroup - ->method('count') - ->will($this->returnValue(12)); - $secondGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $secondGroup - ->method('getGID') - ->will($this->returnValue('secondGroup')); - $secondGroup - ->method('getDisplayName') - ->will($this->returnValue('Second group')); - $secondGroup - ->method('count') - ->will($this->returnValue(25)); - $thirdGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $thirdGroup - ->method('getGID') - ->will($this->returnValue('thirdGroup')); - $thirdGroup - ->method('getDisplayName') - ->will($this->returnValue('Third group')); - $thirdGroup - ->method('count') - ->will($this->returnValue(14)); - $fourthGroup = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $fourthGroup - ->method('getGID') - ->will($this->returnValue('admin')); - $fourthGroup - ->method('getDisplayName') - ->will($this->returnValue('Admin')); - $fourthGroup - ->method('count') - ->will($this->returnValue(18)); - /** @var \OC\Group\Group[] $groups */ - $groups = array(); - $groups[] = $firstGroup; - $groups[] = $secondGroup; - $groups[] = $thirdGroup; - $groups[] = $fourthGroup; - - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('MyAdminUser')); - $this->groupManager - ->method('search') - ->will($this->returnValue($groups)); - - $expectedResponse = new DataResponse( - array( - 'data' => array( - 'adminGroups' => array( - 0 => array( - 'id' => 'admin', - 'name' => 'Admin', - 'usercount' => 18, - ) - ), - 'groups' => - array( - 0 => array( - 'id' => 'secondGroup', - 'name' => 'Second group', - 'usercount' => 25, - ), - 1 => array( - 'id' => 'thirdGroup', - 'name' => 'Third group', - 'usercount' => 14, - ), - 2 => array( - 'id' => 'firstGroup', - 'name' => 'First group', - 'usercount' => 12, - ), - ) - ) - ) - ); - $response = $this->groupsController->index(); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateWithExistingGroup() { - $this->groupManager - ->expects($this->once()) - ->method('groupExists') - ->with('ExistingGroup') - ->will($this->returnValue(true)); - - $expectedResponse = new DataResponse( - array( - 'message' => 'Group already exists.' - ), - Http::STATUS_CONFLICT - ); - $response = $this->groupsController->create('ExistingGroup'); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateSuccessful() { - $group = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $this->groupManager - ->expects($this->once()) - ->method('groupExists') - ->with('NewGroup') - ->will($this->returnValue(false)); - $this->groupManager - ->expects($this->once()) - ->method('createGroup') - ->with('NewGroup') - ->will($this->returnValue($group)); - $group - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('NewGroup')); - - $expectedResponse = new DataResponse( - array( - 'groupname' => 'NewGroup' - ), - Http::STATUS_CREATED - ); - $response = $this->groupsController->create('NewGroup'); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateUnsuccessful() { - $this->groupManager - ->expects($this->once()) - ->method('groupExists') - ->with('NewGroup') - ->will($this->returnValue(false)); - $this->groupManager - ->expects($this->once()) - ->method('createGroup') - ->with('NewGroup') - ->will($this->returnValue(false)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'error', - 'data' => array('message' => 'Unable to add group.') - ), - Http::STATUS_FORBIDDEN - ); - $response = $this->groupsController->create('NewGroup'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroySuccessful() { - $group = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $this->groupManager - ->expects($this->once()) - ->method('get') - ->with('ExistingGroup') - ->will($this->returnValue($group)); - $group - ->expects($this->once()) - ->method('delete') - ->will($this->returnValue(true)); - $group - ->method('getDisplayName') - ->will($this->returnValue('ExistingGroup')); - - $expectedResponse = new DataResponse( - array( - 'status' => 'success', - 'data' => array('groupname' => 'ExistingGroup') - ), - Http::STATUS_NO_CONTENT - ); - $response = $this->groupsController->destroy('ExistingGroup'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroyUnsuccessful() { - $this->groupManager - ->expects($this->once()) - ->method('get') - ->with('ExistingGroup') - ->will($this->returnValue(null)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'error', - 'data' => array('message' => 'Unable to delete group.') - ), - Http::STATUS_FORBIDDEN - ); - $response = $this->groupsController->destroy('ExistingGroup'); - $this->assertEquals($expectedResponse, $response); - } - -} diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php index 4cfec07f78b..74ac990be92 100644 --- a/tests/Settings/Controller/UsersControllerTest.php +++ b/tests/Settings/Controller/UsersControllerTest.php @@ -31,10 +31,10 @@ use OCP\IGroupManager; use OCP\IL10N; use OCP\ILogger; use OCP\IRequest; -use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; +use OCP\L10N\IFactory; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\Security\ISecureRandom; @@ -60,8 +60,8 @@ class UsersControllerTest extends \Test\TestCase { private $logger; /** @var IMailer|\PHPUnit_Framework_MockObject_MockObject */ private $mailer; - /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ - private $urlGenerator; + /** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */ + private $l10nFactory; /** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject */ private $appManager; /** @var IAvatarManager|\PHPUnit_Framework_MockObject_MockObject */ @@ -78,8 +78,6 @@ class UsersControllerTest extends \Test\TestCase { private $jobList; /** @var \OC\Security\IdentityProof\Manager |\PHPUnit_Framework_MockObject_MockObject */ private $securityManager; - /** @var IUserMountCache |\PHPUnit_Framework_MockObject_MockObject */ - private $userMountCache; /** @var IManager | \PHPUnit_Framework_MockObject_MockObject */ private $encryptionManager; /** @var IEncryptionModule | \PHPUnit_Framework_MockObject_MockObject */ @@ -88,46 +86,28 @@ class UsersControllerTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->groupManager = $this->createMock(Manager::class); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(Manager::class); $this->userSession = $this->createMock(IUserSession::class); $this->config = $this->createMock(IConfig::class); - $this->logger = $this->createMock(ILogger::class); + $this->l = $this->createMock(IL10N::class); $this->mailer = $this->createMock(IMailer::class); - $this->urlGenerator = $this->createMock(IURLGenerator::class); + $this->l10nFactory = $this->createMock(IFactory::class); $this->appManager = $this->createMock(IAppManager::class); - $this->avatarManager = $this->createMock(IAvatarManager::class); $this->accountManager = $this->createMock(AccountManager::class); - $this->secureRandom = $this->createMock(ISecureRandom::class); - $this->newUserMailHelper = $this->createMock(NewUserMailHelper::class); $this->securityManager = $this->getMockBuilder(\OC\Security\IdentityProof\Manager::class)->disableOriginalConstructor()->getMock(); $this->jobList = $this->createMock(IJobList::class); $this->encryptionManager = $this->createMock(IManager::class); - $this->l = $this->createMock(IL10N::class); + $this->l->method('t') ->will($this->returnCallback(function ($text, $parameters = []) { return vsprintf($text, $parameters); })); - $this->userMountCache = $this->createMock(IUserMountCache::class); $this->encryptionModule = $this->createMock(IEncryptionModule::class); $this->encryptionManager->expects($this->any())->method('getEncryptionModules') ->willReturn(['encryptionModule' => ['callback' => function() { return $this->encryptionModule;}]]); - /* - * Set default avatar behaviour for whole test suite - */ - - $avatarExists = $this->createMock(IAvatar::class); - $avatarExists->method('exists')->willReturn(true); - $avatarNotExists = $this->createMock(IAvatar::class); - $avatarNotExists->method('exists')->willReturn(false); - $this->avatarManager->method('getAvatar') - ->will($this->returnValueMap([ - ['foo', $avatarExists], - ['bar', $avatarExists], - ['admin', $avatarNotExists], - ])); } /** @@ -145,17 +125,12 @@ class UsersControllerTest extends \Test\TestCase { $this->config, $isAdmin, $this->l, - $this->logger, $this->mailer, - $this->urlGenerator, + $this->l10nFactory, $this->appManager, - $this->avatarManager, $this->accountManager, - $this->secureRandom, - $this->newUserMailHelper, $this->securityManager, $this->jobList, - $this->userMountCache, $this->encryptionManager ); } else { @@ -170,1926 +145,18 @@ class UsersControllerTest extends \Test\TestCase { $this->config, $isAdmin, $this->l, - $this->logger, $this->mailer, - $this->urlGenerator, + $this->l10nFactory, $this->appManager, - $this->avatarManager, $this->accountManager, - $this->secureRandom, - $this->newUserMailHelper, $this->securityManager, $this->jobList, - $this->userMountCache, $this->encryptionManager ] )->setMethods($mockedMethods)->getMock(); } } - public function testIndexAdmin() { - $controller = $this->getController(true); - - $foo = $this->createMock(User::class); - $foo - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('foo')); - $foo - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('M. Foo')); - $foo - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('foo@bar.com')); - $foo - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue(1024)); - $foo - ->method('getLastLogin') - ->will($this->returnValue(500)); - $foo - ->method('getHome') - ->will($this->returnValue('/home/foo')); - $foo - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('OC_User_Database')); - $foo->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $admin = $this->createMock(User::class); - $admin - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('admin')); - $admin - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('S. Admin')); - $admin - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('admin@bar.com')); - $admin - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue(404)); - $admin - ->expects($this->once()) - ->method('getLastLogin') - ->will($this->returnValue(12)); - $admin - ->expects($this->once()) - ->method('getHome') - ->will($this->returnValue('/home/admin')); - $admin - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $admin->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $bar = $this->createMock(User::class); - $bar - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('bar')); - $bar - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('B. Ar')); - $bar - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('bar@dummy.com')); - $bar - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue(2323)); - $bar - ->method('getLastLogin') - ->will($this->returnValue(3999)); - $bar - ->method('getHome') - ->will($this->returnValue('/home/bar')); - $bar - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $bar->expects($this->at(0)) - ->method('isEnabled') - ->willReturn(true); - $bar->expects($this->at(1)) - ->method('isEnabled') - ->willReturn(true); - $bar->expects($this->at(2)) - ->method('isEnabled') - ->willReturn(false); - - $this->groupManager - ->expects($this->once()) - ->method('displayNamesInGroup') - ->with('gid', 'pattern') - ->will($this->returnValue(array('foo' => 'M. Foo', 'admin' => 'S. Admin', 'bar' => 'B. Ar'))); - $this->groupManager - ->expects($this->exactly(3)) - ->method('getUserGroupNames') - ->will($this->onConsecutiveCalls( - array( - 'Users' => array('displayName' => 'Users'), - 'Support' => array('displayName' => 'Support') - ), - array( - 'admins' => array('displayName' => 'admins'), - 'Support' => array('displayName' => 'Support') - ), - array( - 'External Users' => array('displayName' => 'External Users') - ) - )); - $this->userManager - ->expects($this->at(0)) - ->method('get') - ->with('foo') - ->will($this->returnValue($foo)); - $this->userManager - ->expects($this->at(1)) - ->method('get') - ->with('admin') - ->will($this->returnValue($admin)); - $this->userManager - ->expects($this->at(2)) - ->method('get') - ->with('bar') - ->will($this->returnValue($bar)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->with($foo) - ->will($this->returnValue([])); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->with($admin) - ->will($this->returnValue([])); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->with($bar) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $this->userMountCache - ->expects($this->once()) - ->method('getUsedSpaceForUsers') - ->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512])); - - $expectedResponse = new DataResponse( - array( - 0 => array( - 'name' => 'foo', - 'displayname' => 'M. Foo', - 'groups' => array( - 'Users' => array('displayName' => 'Users'), - 'Support' => array('displayName' => 'Support') - ), - 'subadmin' => array(), - 'quota' => 1024, - 'quota_bytes' => 1024.0, - 'storageLocation' => '/home/foo', - 'lastLogin' => 500000, - 'backend' => 'OC_User_Database', - 'email' => 'foo@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 512, - ), - 1 => array( - 'name' => 'admin', - 'displayname' => 'S. Admin', - 'groups' => array( - 'admins' => array('displayName' => 'admins'), - 'Support' => array('displayName' => 'Support') - ), - 'subadmin' => array(), - 'quota' => 404, - 'quota_bytes' => 404.0, - 'storageLocation' => '/home/admin', - 'lastLogin' => 12000, - 'backend' => Dummy::class, - 'email' => 'admin@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => false, - 'isEnabled' => true, - 'size' => 200, - ), - 2 => array( - 'name' => 'bar', - 'displayname' => 'B. Ar', - 'groups' => array( - 'External Users' => array('displayName' => 'External Users') - ), - 'subadmin' => array(), - 'quota' => 2323, - 'quota_bytes' => 2323.0, - 'storageLocation' => '/home/bar', - 'lastLogin' => 3999000, - 'backend' => Dummy::class, - 'email' => 'bar@dummy.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => false, - 'size' => 2000, - ), - ) - ); - $response = $controller->index(0, 10, 'gid', 'pattern'); - $this->assertEquals($expectedResponse, $response); - } - - public function testIndexSubAdmin() { - $controller = $this->getController(false); - - $user = $this->createMock(User::class); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - - $foo = $this->createMock(User::class); - $foo - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('foo')); - $foo - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('M. Foo')); - $foo - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('foo@bar.com')); - $foo - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('1024')); - $foo - ->method('getLastLogin') - ->will($this->returnValue(500)); - $foo - ->method('getHome') - ->will($this->returnValue('/home/foo')); - $foo - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('OC_User_Database')); - $foo->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $admin = $this->createMock(User::class); - $admin - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('admin')); - $admin - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('S. Admin')); - $admin - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('admin@bar.com')); - $admin - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('404')); - $admin - ->expects($this->once()) - ->method('getLastLogin') - ->will($this->returnValue(12)); - $admin - ->expects($this->once()) - ->method('getHome') - ->will($this->returnValue('/home/admin')); - $admin - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $admin->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $bar = $this->createMock(User::class); - $bar - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('bar')); - $bar - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('B. Ar')); - $bar - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('bar@dummy.com')); - $bar - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('2323')); - $bar - ->method('getLastLogin') - ->will($this->returnValue(3999)); - $bar - ->method('getHome') - ->will($this->returnValue('/home/bar')); - $bar - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $bar->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - - $this->groupManager - ->expects($this->at(2)) - ->method('displayNamesInGroup') - ->with('SubGroup2', 'pattern') - ->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin'])); - $this->groupManager - ->expects($this->at(1)) - ->method('displayNamesInGroup') - ->with('SubGroup1', 'pattern') - ->will($this->returnValue(['bar' => 'B. Ar'])); - $this->groupManager - ->expects($this->exactly(3)) - ->method('getUserGroupIds') - ->will($this->onConsecutiveCalls( - ['admin', 'SubGroup1', 'testGroup'], - ['SubGroup2', 'SubGroup1'], - ['SubGroup2', 'Foo'] - )); - $this->userManager - ->expects($this->at(0)) - ->method('get') - ->with('bar') - ->will($this->returnValue($bar)); - $this->userManager - ->expects($this->at(1)) - ->method('get') - ->with('foo') - ->will($this->returnValue($foo)); - $this->userManager - ->expects($this->at(2)) - ->method('get') - ->with('admin') - ->will($this->returnValue($admin)); - - $subgroup1 = $this->getMockBuilder(IGroup::class) - ->disableOriginalConstructor() - ->getMock(); - $subgroup1->expects($this->any()) - ->method('getGID') - ->will($this->returnValue('SubGroup1')); - $subgroup2 = $this->getMockBuilder(IGroup::class) - ->disableOriginalConstructor() - ->getMock(); - $subgroup2->expects($this->any()) - ->method('getGID') - ->will($this->returnValue('SubGroup2')); - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->at(0)) - ->method('getSubAdminsGroups') - ->will($this->returnValue([$subgroup1, $subgroup2])); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->will($this->returnValue([])); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroups') - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $this->userMountCache - ->expects($this->once()) - ->method('getUsedSpaceForUsers') - ->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512])); - - $expectedResponse = new DataResponse( - [ - 0 => [ - 'name' => 'bar', - 'displayname' => 'B. Ar', - 'groups' => ['SubGroup1'], - 'subadmin' => [], - 'quota' => '2323', - 'quota_bytes' => 2323.0, - 'storageLocation' => '/home/bar', - 'lastLogin' => 3999000, - 'backend' => Dummy::class, - 'email' => 'bar@dummy.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 2000, - ], - 1=> [ - 'name' => 'foo', - 'displayname' => 'M. Foo', - 'groups' => ['SubGroup2', 'SubGroup1'], - 'subadmin' => [], - 'quota' => '1024', - 'quota_bytes' => 1024.0, - 'storageLocation' => '/home/foo', - 'lastLogin' => 500000, - 'backend' => 'OC_User_Database', - 'email' => 'foo@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 512, - ], - 2 => [ - 'name' => 'admin', - 'displayname' => 'S. Admin', - 'groups' => ['SubGroup2'], - 'subadmin' => [], - 'quota' => '404', - 'quota_bytes' => 404.0, - 'storageLocation' => '/home/admin', - 'lastLogin' => 12000, - 'backend' => Dummy::class, - 'email' => 'admin@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => false, - 'isEnabled' => true, - 'size' => 200, - ], - ] - ); - - $response = $controller->index(0, 10, '', 'pattern'); - $this->assertEquals($expectedResponse, $response); - } - - /** - * TODO: Since the function uses the static OC_Subadmin class it can't be mocked - * to test for subadmins. Thus the test always assumes you have admin permissions... - */ - public function testIndexWithSearch() { - $controller = $this->getController(true); - - $foo = $this->createMock(User::class); - $foo - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('foo')); - $foo - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('M. Foo')); - $foo - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('foo@bar.com')); - $foo - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('1024')); - $foo - ->method('getLastLogin') - ->will($this->returnValue(500)); - $foo - ->method('getHome') - ->will($this->returnValue('/home/foo')); - $foo - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('OC_User_Database')); - $foo->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $admin = $this->createMock(User::class); - $admin - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('admin')); - $admin - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('S. Admin')); - $admin - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('admin@bar.com')); - $admin - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('404')); - $admin - ->expects($this->once()) - ->method('getLastLogin') - ->will($this->returnValue(12)); - $admin - ->expects($this->once()) - ->method('getHome') - ->will($this->returnValue('/home/admin')); - $admin - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $admin->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $bar = $this->createMock(User::class); - $bar - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('bar')); - $bar - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('B. Ar')); - $bar - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue('bar@dummy.com')); - $bar - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('2323')); - $bar - ->method('getLastLogin') - ->will($this->returnValue(3999)); - $bar - ->method('getHome') - ->will($this->returnValue('/home/bar')); - $bar - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn(Dummy::class); - $bar->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - - $this->userManager - ->expects($this->once()) - ->method('search') - ->with('pattern', 10, 0) - ->will($this->returnValue([$foo, $admin, $bar])); - $this->groupManager - ->expects($this->exactly(3)) - ->method('getUserGroupNames') - ->will($this->onConsecutiveCalls( - array( - 'Users' => array('displayName' => 'Users'), - 'Support' => array('displayName' => 'Support') - ), - array( - 'admins' => array('displayName' => 'admins'), - 'Support' => array('displayName' => 'Support') - ), - array( - 'External Users' => array('displayName' => 'External Users') - ) - )); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $this->userMountCache - ->expects($this->once()) - ->method('getUsedSpaceForUsers') - ->will($this->returnValue(['admin' => 200, 'bar' => 2000, 'foo' => 512])); - - $expectedResponse = new DataResponse( - array( - 0 => array( - 'name' => 'foo', - 'displayname' => 'M. Foo', - 'groups' => array( - 'Users' => array('displayName' => 'Users'), - 'Support' => array('displayName' => 'Support') - ), - 'subadmin' => array(), - 'quota' => 1024, - 'quota_bytes' => 1024, - 'storageLocation' => '/home/foo', - 'lastLogin' => 500000, - 'backend' => 'OC_User_Database', - 'email' => 'foo@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 512, - ), - 1 => array( - 'name' => 'admin', - 'displayname' => 'S. Admin', - 'groups' => array( - 'admins' => array('displayName' => 'admins'), - 'Support' => array('displayName' => 'Support') - ), - 'subadmin' => array(), - 'quota' => 404, - 'quota_bytes' => 404, - 'storageLocation' => '/home/admin', - 'lastLogin' => 12000, - 'backend' => Dummy::class, - 'email' => 'admin@bar.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => false, - 'isEnabled' => true, - 'size' => 200, - ), - 2 => array( - 'name' => 'bar', - 'displayname' => 'B. Ar', - 'groups' => array( - 'External Users' => array('displayName' => 'External Users') - ), - 'subadmin' => array(), - 'quota' => 2323, - 'quota_bytes' => 2323, - 'storageLocation' => '/home/bar', - 'lastLogin' => 3999000, - 'backend' => Dummy::class, - 'email' => 'bar@dummy.com', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 2000, - ), - ) - ); - $response = $controller->index(0, 10, '', 'pattern'); - $this->assertEquals($expectedResponse, $response); - } - - public function testIndexWithBackend() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->expects($this->exactly(2)) - ->method('getUID') - ->will($this->returnValue('foo')); - $user - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue('M. Foo')); - $user - ->expects($this->once()) - ->method('getEMailAddress') - ->will($this->returnValue(null)); - $user - ->expects($this->exactly(2)) - ->method('getQuota') - ->will($this->returnValue('none')); - $user - ->method('getLastLogin') - ->will($this->returnValue(500)); - $user - ->method('getHome') - ->will($this->returnValue('/home/foo')); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('OC_User_Database')); - $user->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - - $this->userManager - ->expects($this->once()) - ->method('getBackends') - ->will($this->returnValue([new Dummy(), new \OC\User\Database()])); - $this->userManager - ->expects($this->once()) - ->method('clearBackends'); - $this->userManager - ->expects($this->once()) - ->method('search') - ->with('') - ->will($this->returnValue([$user])); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $this->userMountCache - ->expects($this->once()) - ->method('getUsedSpaceForUsers') - ->will($this->returnValue(['foo' => 512])); - - $expectedResponse = new DataResponse( - array( - 0 => array( - 'name' => 'foo', - 'displayname' => 'M. Foo', - 'groups' => null, - 'subadmin' => array(), - 'quota' => 'none', - 'quota_bytes' => 0, - 'storageLocation' => '/home/foo', - 'lastLogin' => 500000, - 'backend' => 'OC_User_Database', - 'email' => null, - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'size' => 512, - ) - ) - ); - $response = $controller->index(0, 10, '','', Dummy::class); - $this->assertEquals($expectedResponse, $response); - } - - public function testIndexWithBackendNoUser() { - $controller = $this->getController(true); - - $this->userManager - ->expects($this->once()) - ->method('getBackends') - ->will($this->returnValue([new Dummy(), new \OC\User\Database()])); - $this->userManager - ->expects($this->once()) - ->method('search') - ->with('') - ->will($this->returnValue([])); - - $this->userMountCache - ->expects($this->once()) - ->method('getUsedSpaceForUsers') - ->will($this->returnValue([])); - - $expectedResponse = new DataResponse([]); - $response = $controller->index(0, 10, '','', Dummy::class); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateSuccessfulWithoutGroupAdmin() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->method('getHome') - ->will($this->returnValue('/home/user')); - $user - ->method('getUID') - ->will($this->returnValue('foo')); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('bar')); - $user->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - - $this->userManager - ->expects($this->once()) - ->method('createUser') - ->will($this->onConsecutiveCalls($user)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - array( - 'name' => 'foo', - 'groups' => null, - 'storageLocation' => '/home/user', - 'backend' => 'bar', - 'lastLogin' => null, - 'displayname' => null, - 'quota' => null, - 'subadmin' => array(), - 'email' => null, - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'quota_bytes' => false, - ), - Http::STATUS_CREATED - ); - $response = $controller->create('foo', 'password', array()); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateSuccessfulWithGroupAdmin() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->method('getHome') - ->will($this->returnValue('/home/user')); - $user - ->method('getHome') - ->will($this->returnValue('/home/user')); - $user - ->method('getUID') - ->will($this->returnValue('foo')); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('bar')); - $user->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $existingGroup = $this->getMockBuilder(IGroup::class) - ->disableOriginalConstructor()->getMock(); - $existingGroup - ->expects($this->once()) - ->method('addUser') - ->with($user); - $newGroup = $this->getMockBuilder(IGroup::class) - ->disableOriginalConstructor()->getMock(); - $newGroup - ->expects($this->once()) - ->method('addUser') - ->with($user); - - $this->userManager - ->expects($this->once()) - ->method('createUser') - ->will($this->onConsecutiveCalls($user)); - $this->groupManager - ->expects($this->exactly(2)) - ->method('get') - ->will($this->onConsecutiveCalls(null, $existingGroup)); - $this->groupManager - ->expects($this->once()) - ->method('createGroup') - ->with('NewGroup') - ->will($this->onConsecutiveCalls($newGroup)); - $this->groupManager - ->expects($this->once()) - ->method('getUserGroupNames') - ->with($user) - ->will($this->onConsecutiveCalls( - array( - 'NewGroup' => array('displayName' => 'NewGroup'), - 'ExistingGroup' => array('displayName' => 'ExistingGroup') - ) - )); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - array( - 'name' => 'foo', - 'groups' => array( - 'NewGroup' => array('displayName' => 'NewGroup'), - 'ExistingGroup' => array('displayName' => 'ExistingGroup') - ), - 'storageLocation' => '/home/user', - 'backend' => 'bar', - 'lastLogin' => null, - 'displayname' => null, - 'quota' => null, - 'subadmin' => array(), - 'email' => null, - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'quota_bytes' => false, - ), - Http::STATUS_CREATED - ); - $response = $controller->create('foo', 'password', array('NewGroup', 'ExistingGroup')); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateSuccessfulWithGroupSubAdmin() { - $controller = $this->getController(false); - $user = $this->createMock(IUser::class); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - $newUser = $this->createMock(IUser::class); - $newUser - ->method('getHome') - ->will($this->returnValue('/home/user')); - $newUser - ->method('getHome') - ->will($this->returnValue('/home/user')); - $newUser - ->method('getUID') - ->will($this->returnValue('foo')); - $newUser - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('bar')); - $subGroup1 = $this->createMock(IGroup::class); - $newUser->expects($this->any()) - ->method('isEnabled') - ->willReturn(true); - $subGroup1 - ->expects($this->any()) - ->method('getGID') - ->will($this->returnValue('SubGroup1')); - $subGroup1 - ->expects($this->once()) - ->method('addUser') - ->with($user); - $this->userManager - ->expects($this->once()) - ->method('createUser') - ->will($this->returnValue($newUser)); - $this->groupManager - ->expects($this->once()) - ->method('getUserGroupNames') - ->with($user) - ->will($this->onConsecutiveCalls(array('SubGroup1' => - array('displayName' => 'SubGroup1') - ))); - $this->groupManager - ->expects($this->once()) - ->method('getUserGroupNames') - ->with($newUser) - ->will($this->onConsecutiveCalls(['SubGroup1'])); - - $subadmin = $this->createMock(\OC\SubAdmin::class); - $subadmin->expects($this->atLeastOnce()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->willReturnMap([ - [$user, [$subGroup1]], - [$newUser, []], - ]); - $subadmin->expects($this->atLeastOnce()) - ->method('isSubAdminofGroup') - ->willReturnMap([ - [$user, $subGroup1, true], - ]); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - $this->groupManager->expects($this->atLeastOnce()) - ->method('get') - ->willReturnMap([ - ['SubGroup1', $subGroup1], - ]); - - $expectedResponse = new DataResponse( - array( - 'name' => 'foo', - 'groups' => array('SubGroup1' => array('displayName' => 'SubGroup1')), - 'storageLocation' => '/home/user', - 'backend' => 'bar', - 'lastLogin' => 0, - 'displayname' => null, - 'quota' => null, - 'subadmin' => [], - 'email' => null, - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - 'quota_bytes' => false, - ), - Http::STATUS_CREATED - ); - $response = $controller->create('foo', 'password', ['SubGroup1', 'ExistingGroup']); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateUnsuccessfulAdmin() { - $controller = $this->getController(true); - - $this->userManager - ->method('createUser') - ->will($this->throwException(new \Exception())); - - $expectedResponse = new DataResponse( - array( - 'message' => 'Unable to create user.' - ), - Http::STATUS_FORBIDDEN - ); - $response = $controller->create('foo', 'password', array()); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateUnsuccessfulSubAdminNoGroup() { - $controller = $this->getController(false); - $user = $this->createMock(IUser::class); - $user->expects($this->any()) - ->method('getUID') - ->will($this->returnValue('username')); - $this->userSession->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - - $this->userManager->expects($this->never()) - ->method('createUser'); - - $expectedResponse = new DataResponse( - [ - 'message' => 'No valid group selected' - ], - Http::STATUS_FORBIDDEN - ); - $response = $controller->create('foo', 'password', []); - $this->assertEquals($expectedResponse, $response); - } - - public function testCreateUnsuccessfulSubAdmin() { - $controller = $this->getController(false); - $user = $this->createMock(IUser::class); - $user->expects($this->any()) - ->method('getUID') - ->will($this->returnValue('username')); - $this->userSession->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - - $this->userManager - ->method('createUser') - ->will($this->throwException(new \Exception())); - - $subgroup1 = $this->createMock(IGroup::class); - $subgroup2 = $this->createMock(IGroup::class); - $subadmin = $this->createMock(\OC\SubAdmin::class); - $subadmin->expects($this->atLeastOnce()) - ->method('isSubAdminofGroup') - ->willReturnMap([ - [$user, $subgroup1, true], - [$user, $subgroup2, true], - ]); - $this->groupManager->expects($this->any()) - ->method('getSubAdmin') - ->willReturn($subadmin); - $this->groupManager->expects($this->atLeastOnce()) - ->method('get') - ->willReturnMap([ - ['SubGroup1', $subgroup1], - ['SubGroup2', $subgroup2], - ]); - - $expectedResponse = new DataResponse( - [ - 'message' => 'Unable to create user.' - ], - Http::STATUS_FORBIDDEN - ); - $response = $controller->create('foo', 'password', array('SubGroup1', 'SubGroup2')); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroySelfAdmin() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('myself')); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'error', - 'data' => array( - 'message' => 'Unable to delete user.' - ) - ), - Http::STATUS_FORBIDDEN - ); - $response = $controller->destroy('myself'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroySelfSubadmin() { - $controller = $this->getController(false); - - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('myself')); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'error', - 'data' => array( - 'message' => 'Unable to delete user.' - ) - ), - Http::STATUS_FORBIDDEN - ); - $response = $controller->destroy('myself'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroyAdmin() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('Admin')); - $toDeleteUser = $this->createMock(User::class); - $toDeleteUser - ->expects($this->once()) - ->method('delete') - ->will($this->returnValue(true)); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->method('get') - ->with('UserToDelete') - ->will($this->returnValue($toDeleteUser)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'success', - 'data' => array( - 'username' => 'UserToDelete' - ) - ), - Http::STATUS_NO_CONTENT - ); - $response = $controller->destroy('UserToDelete'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroySubAdmin() { - $controller = $this->getController(false); - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('myself')); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - - $user = $this->createMock(User::class); - $toDeleteUser = $this->createMock(User::class); - $toDeleteUser - ->expects($this->once()) - ->method('delete') - ->will($this->returnValue(true)); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->method('get') - ->with('UserToDelete') - ->will($this->returnValue($toDeleteUser)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->with($user, $toDeleteUser) - ->will($this->returnValue(true)); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => 'UserToDelete' - ] - ], - Http::STATUS_NO_CONTENT - ); - $response = $controller->destroy('UserToDelete'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroyUnsuccessfulAdmin() { - $controller = $this->getController(true); - - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('Admin')); - $toDeleteUser = $this->createMock(User::class); - $toDeleteUser - ->expects($this->once()) - ->method('delete') - ->will($this->returnValue(false)); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->method('get') - ->with('UserToDelete') - ->will($this->returnValue($toDeleteUser)); - - $expectedResponse = new DataResponse( - array( - 'status' => 'error', - 'data' => array( - 'message' => 'Unable to delete user.' - ) - ), - Http::STATUS_FORBIDDEN - ); - $response = $controller->destroy('UserToDelete'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroyUnsuccessfulSubAdmin() { - $controller = $this->getController(false); - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('myself')); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - - $toDeleteUser = $this->createMock(User::class); - $toDeleteUser - ->expects($this->once()) - ->method('delete') - ->will($this->returnValue(false)); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->method('get') - ->with('UserToDelete') - ->will($this->returnValue($toDeleteUser)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->with($user, $toDeleteUser) - ->will($this->returnValue(true)); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Unable to delete user.' - ] - ], - Http::STATUS_FORBIDDEN - ); - $response = $controller->destroy('UserToDelete'); - $this->assertEquals($expectedResponse, $response); - } - - public function testDestroyNotAccessibleToSubAdmin() { - $controller = $this->getController(false); - - $user = $this->createMock(User::class); - $user - ->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('myself')); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - - $toDeleteUser = $this->createMock(User::class); - $this->userSession - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->method('get') - ->with('UserToDelete') - ->will($this->returnValue($toDeleteUser)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->with($user, $toDeleteUser) - ->will($this->returnValue(false)); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Authentication error' - ] - ], - Http::STATUS_FORBIDDEN - ); - $response = $controller->destroy('UserToDelete'); - $this->assertEquals($expectedResponse, $response); - } - - /** - * test if an invalid mail result in a failure response - */ - public function testCreateUnsuccessfulWithInvalidEmailAdmin() { - $controller = $this->getController(true); - - $expectedResponse = new DataResponse([ - 'message' => 'Invalid mail address', - ], - Http::STATUS_UNPROCESSABLE_ENTITY - ); - $response = $controller->create('foo', 'password', [], 'invalidMailAdress'); - $this->assertEquals($expectedResponse, $response); - } - - /** - * test if a valid mail result in a successful mail send - */ - public function testCreateSuccessfulWithValidEmailAdmin() { - $controller = $this->getController(true); - $this->mailer - ->expects($this->at(0)) - ->method('validateMailAddress') - ->with('validMail@Adre.ss') - ->will($this->returnValue(true)); - - $user = $this->createMock(User::class); - $user - ->method('getHome') - ->will($this->returnValue('/home/user')); - $user - ->method('getHome') - ->will($this->returnValue('/home/user')); - $user - ->method('getUID') - ->will($this->returnValue('foo')); - $user - ->method('getDisplayName') - ->will($this->returnValue('foo')); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue('bar')); - - $emailTemplate = $this->createMock(IEMailTemplate::class); - $this->newUserMailHelper - ->expects($this->at(0)) - ->method('generateTemplate') - ->with($user, false) - ->willReturn($emailTemplate); - $this->newUserMailHelper - ->expects($this->at(1)) - ->method('sendMail') - ->with($user, $emailTemplate); - - $this->userManager - ->expects($this->once()) - ->method('createUser') - ->will($this->onConsecutiveCalls($user)); - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $response = $controller->create('foo', 'password', [], 'validMail@Adre.ss'); - $this->assertEquals(Http::STATUS_CREATED, $response->getStatus()); - } - - private function mockUser($userId = 'foo', $displayName = 'M. Foo', - $lastLogin = 500, $home = '/home/foo', - $backend = 'OC_User_Database', $enabled = true) { - $user = $this->createMock(User::class); - $user - ->expects($this->any()) - ->method('getUID') - ->will($this->returnValue($userId)); - $user - ->expects($this->once()) - ->method('getDisplayName') - ->will($this->returnValue($displayName)); - $user - ->method('getLastLogin') - ->will($this->returnValue($lastLogin)); - $user - ->method('getHome') - ->will($this->returnValue($home)); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->will($this->returnValue($backend)); - $user->expects($this->any()) - ->method('isEnabled') - ->willReturn($enabled); - - $result = [ - 'name' => $userId, - 'displayname' => $displayName, - 'groups' => null, - 'subadmin' => array(), - 'quota' => null, - 'storageLocation' => $home, - 'lastLogin' => $lastLogin * 1000, - 'backend' => $backend, - 'email' => null, - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => $enabled, - 'quota_bytes' => false, - ]; - - return [$user, $result]; - } - - public function testRestorePossibleWithoutEncryption() { - $controller = $this->getController(true); - - list($user, $expectedResult) = $this->mockUser(); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $result = self::invokePrivate($controller, 'formatUserForIndex', [$user]); - $this->assertEquals($expectedResult, $result); - } - - public function testRestorePossibleWithAdminAndUserRestore() { - list($user, $expectedResult) = $this->mockUser(); - - $this->appManager - ->expects($this->once()) - ->method('isEnabledForUser') - ->with( - $this->equalTo('encryption') - ) - ->will($this->returnValue(true)); - $this->config - ->expects($this->once()) - ->method('getAppValue') - ->with( - $this->equalTo('encryption'), - $this->equalTo('recoveryAdminEnabled'), - $this->anything() - ) - ->will($this->returnValue('1')); - - $this->config - ->expects($this->at(1)) - ->method('getUserValue') - ->with( - $this->anything(), - $this->equalTo('encryption'), - $this->equalTo('recoveryEnabled'), - $this->anything() - ) - ->will($this->returnValue('1')); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $controller = $this->getController(true); - $result = self::invokePrivate($controller, 'formatUserForIndex', [$user]); - $this->assertEquals($expectedResult, $result); - } - - /** - * @dataProvider dataTestRestoreNotPossibleWithoutAdminRestore - * - * @param bool $masterKeyEnabled - */ - public function testRestoreNotPossibleWithoutAdminRestore($masterKeyEnabled) { - list($user, $expectedResult) = $this->mockUser(); - - // without the master key enabled we use per-user keys - $this->encryptionModule->expects($this->once())->method('needDetailedAccessList')->willReturn(!$masterKeyEnabled); - - $this->appManager - ->method('isEnabledForUser') - ->with( - $this->equalTo('encryption') - ) - ->will($this->returnValue(true)); - - // without the master key enabled we use per-user keys -> restore is disabled - $expectedResult['isRestoreDisabled'] = !$masterKeyEnabled; - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $controller = $this->getController(true); - $result = self::invokePrivate($controller, 'formatUserForIndex', [$user]); - $this->assertEquals($expectedResult, $result); - } - - public function dataTestRestoreNotPossibleWithoutAdminRestore() { - return [ - [true], - [false] - ]; - } - - public function testRestoreNotPossibleWithoutUserRestore() { - list($user, $expectedResult) = $this->mockUser(); - - $this->appManager - ->expects($this->once()) - ->method('isEnabledForUser') - ->with( - $this->equalTo('encryption') - ) - ->will($this->returnValue(true)); - $this->config - ->expects($this->once()) - ->method('getAppValue') - ->with( - $this->equalTo('encryption'), - $this->equalTo('recoveryAdminEnabled'), - $this->anything() - ) - ->will($this->returnValue('1')); - - $this->config - ->expects($this->at(1)) - ->method('getUserValue') - ->with( - $this->anything(), - $this->equalTo('encryption'), - $this->equalTo('recoveryEnabled'), - $this->anything() - ) - ->will($this->returnValue('0')); - - $expectedResult['isRestoreDisabled'] = true; - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $controller = $this->getController(true); - $result = self::invokePrivate($controller, 'formatUserForIndex', [$user]); - $this->assertEquals($expectedResult, $result); - } - - public function testNoAvatar() { - $controller = $this->getController(true); - - list($user, $expectedResult) = $this->mockUser(); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin->expects($this->once()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $this->avatarManager - ->method('getAvatar') - ->will($this->throwException(new \OCP\Files\NotFoundException())); - $expectedResult['isAvatarAvailable'] = false; - - $result = self::invokePrivate($controller, 'formatUserForIndex', [$user]); - $this->assertEquals($expectedResult, $result); - } - - public function testStatsAdmin() { - $controller = $this->getController(true); - - $this->userManager - ->expects($this->at(0)) - ->method('countUsers') - ->will($this->returnValue([128, 44])); - - $expectedResponse = new DataResponse( - [ - 'totalUsers' => 172 - ] - ); - $response = $controller->stats(); - $this->assertEquals($expectedResponse, $response); - } - - /** - * Tests that the subadmin stats return unique users, even - * when a user appears in several groups. - */ - public function testStatsSubAdmin() { - $controller = $this->getController(false); - - $user = $this->createMock(User::class); - - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - - $group1 = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $group1 - ->expects($this->once()) - ->method('getUsers') - ->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin'])); - - $group2 = $this->getMockBuilder(Group::class) - ->disableOriginalConstructor()->getMock(); - $group2 - ->expects($this->once()) - ->method('getUsers') - ->will($this->returnValue(['bar' => 'B. Ar'])); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->at(0)) - ->method('getSubAdminsGroupsName') - ->will($this->returnValue([$group1, $group2])); - $subadmin - ->expects($this->at(0)) - ->method('getSubAdminsGroups') - ->will($this->returnValue([$group1, $group2])); - - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $expectedResponse = new DataResponse( - [ - 'totalUsers' => 3 - ] - ); - - $response = $controller->stats(); - $this->assertEquals($expectedResponse, $response); - } - - public function dataSetDisplayName() { - $data = []; - - $user1 = $this->createMock(IUser::class); - $user1->method('getUID')->willReturn('user1'); - $user1->method('canChangeDisplayName')->willReturn(true); - $data[] = [$user1, $user1, false, false, true]; - - $user1 = $this->createMock(IUser::class); - $user1->method('getUID')->willReturn('user1'); - $user1->method('canChangeDisplayName')->willReturn(false); - $data[] = [$user1, $user1, false, false, false]; - - $user1 = $this->createMock(IUser::class); - $user1->method('getUID')->willReturn('user1'); - $user2 = $this->createMock(IUser::class); - $user2->method('getUID')->willReturn('user2'); - $user2->method('canChangeDisplayName')->willReturn(true); - $data[] = [$user1, $user2, false, false, false]; - - $user1 = $this->createMock(IUser::class); - $user1->method('getUID')->willReturn('user1'); - $user2 = $this->createMock(IUser::class); - $user2->method('getUID')->willReturn('user2'); - $user2->method('canChangeDisplayName')->willReturn(true); - $data[] = [$user1, $user2, true, false, true]; - - $user1 = $this->createMock(IUser::class); - $user1->method('getUID')->willReturn('user1'); - $user2 = $this->createMock(IUser::class); - $user2->method('getUID')->willReturn('user2'); - $user2->method('canChangeDisplayName')->willReturn(true); - $data[] = [$user1, $user2, false, true, true]; - - return $data; - } - - /** - * @dataProvider dataSetDisplayName - * - * @param IUser|\PHPUnit_Framework_MockObject_MockObject $currentUser - * @param IUser|\PHPUnit_Framework_MockObject_MockObject $editUser - * @param bool $isAdmin - * @param bool $isSubAdmin - * @param bool $valid - */ - public function testSetDisplayName($currentUser, $editUser, $isAdmin, $isSubAdmin, $valid) { - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->willReturn($currentUser); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with($editUser->getUID()) - ->willReturn($editUser); - $this->accountManager->expects($this->any())->method('getUser')->willReturn([]); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->method('isUserAccessible') - ->with($currentUser, $editUser) - ->willReturn($isSubAdmin); - - $this->groupManager - ->method('getSubAdmin') - ->willReturn($subadmin); - $this->groupManager - ->method('isAdmin') - ->with($currentUser->getUID()) - ->willReturn($isAdmin); - - if ($valid === true) { - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'message' => 'Your full name has been changed.', - 'username' => $editUser->getUID(), - 'displayName' => 'newDisplayName', - ], - ] - ); - } else { - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Authentication error', - ], - ] - ); - } - - $controller = $this->getController(true); - $response = $controller->setDisplayName($editUser->getUID(), 'newDisplayName'); - $this->assertEquals($expectedResponse, $response); - } - - public function testSetDisplayNameFails() { - /** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */ - $user = $this->createMock(IUser::class); - $user->method('canChangeDisplayname')->willReturn(true); - $user->method('getUID')->willReturn('user'); - $user->expects($this->once()) - ->method('setDisplayName') - ->with('newDisplayName') - ->willReturn(false); - $user->method('getDisplayName')->willReturn('oldDisplayName'); - - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->willReturn($user); - - $this->userManager - ->expects($this->once()) - ->method('get') - ->with($user->getUID()) - ->willReturn($user); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->method('isUserAccessible') - ->with($user, $user) - ->willReturn(false); - - $this->groupManager - ->method('getSubAdmin') - ->willReturn($subadmin); - $this->groupManager - ->expects($this->once()) - ->method('isAdmin') - ->with($user->getUID()) - ->willReturn(false); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Unable to change full name', - 'displayName' => 'oldDisplayName', - ], - ] - ); - $controller = $this->getController(true); - $response = $controller->setDisplayName($user->getUID(), 'newDisplayName'); - $this->assertEquals($expectedResponse, $response); - } - /** * @dataProvider dataTestSetUserSettings * @@ -2361,158 +428,6 @@ class UsersControllerTest extends \Test\TestCase { } /** - * @return array - */ - public function setEmailAddressData() { - return [ - /* mailAddress, isValid, expectsUpdate, canChangeDisplayName, responseCode */ - [ '', true, true, true, Http::STATUS_OK ], - [ 'foo@local', true, true, true, Http::STATUS_OK], - [ 'foo@bar@local', false, false, true, Http::STATUS_UNPROCESSABLE_ENTITY], - [ 'foo@local', true, false, false, Http::STATUS_FORBIDDEN], - ]; - } - /** - * @dataProvider setEmailAddressData - * - * @param string $mailAddress - * @param bool $isValid - * @param bool $expectsUpdate - * @param bool $canChangeDisplayName - * @param int $responseCode - */ - public function testSetEMailAddress($mailAddress, $isValid, $expectsUpdate, $canChangeDisplayName, $responseCode) { - $user = $this->createMock(User::class); - $user - ->expects($this->any()) - ->method('getUID') - ->will($this->returnValue('foo')); - $user - ->expects($this->any()) - ->method('canChangeDisplayName') - ->will($this->returnValue($canChangeDisplayName)); - $user - ->expects($expectsUpdate ? $this->once() : $this->never()) - ->method('setEMailAddress') - ->with( - $this->equalTo($mailAddress) - ); - $user->method('getEMailAddress')->willReturn('oldEmailAddress'); - $this->mailer - ->expects($this->any()) - ->method('validateMailAddress') - ->with($mailAddress) - ->willReturn($isValid); - if ($isValid) { - $user->expects($this->atLeastOnce()) - ->method('canChangeDisplayName') - ->willReturn(true); - $this->userManager - ->expects($this->atLeastOnce()) - ->method('get') - ->with('foo') - ->will($this->returnValue($user)); - } - $controller = $this->getController(true); - $response = $controller->setEMailAddress($user->getUID(), $mailAddress); - $this->assertSame($responseCode, $response->getStatus()); - } - - public function testCreateUnsuccessfulWithoutPasswordAndEmail() { - $controller = $this->getController(true); - - $expectedResponse = new DataResponse( - array( - 'message' => 'To send a password link to the user an email address is required.' - ), - Http::STATUS_UNPROCESSABLE_ENTITY - ); - $response = $controller->create('foo', '', array(), ''); - $this->assertEquals($expectedResponse, $response); - } - - - - public function testCreateSuccessfulWithoutPasswordAndWithEmail() { - $user = $this->createMock(User::class); - $user - ->method('getHome') - ->willReturn('/home/user'); - $user - ->method('getUID') - ->willReturn('foo'); - $user - ->method('getDisplayName') - ->willReturn('John Doe'); - $user - ->method('getEmailAddress') - ->willReturn('abc@example.org'); - $user - ->expects($this->once()) - ->method('getBackendClassName') - ->willReturn('bar'); - $user - ->method('isEnabled') - ->willReturn(true); - - $this->userManager - ->expects($this->once()) - ->method('createUser') - ->will($this->onConsecutiveCalls($user)); - - $subadmin = $this->getMockBuilder(SubAdmin::class) - ->disableOriginalConstructor() - ->getMock(); - $subadmin - ->expects($this->any()) - ->method('getSubAdminsGroupsName') - ->with($user) - ->will($this->returnValue([])); - $this->groupManager - ->expects($this->any()) - ->method('getSubAdmin') - ->will($this->returnValue($subadmin)); - - $controller = $this->getController(true); - $this->mailer - ->expects($this->at(0)) - ->method('validateMailAddress') - ->with('abc@example.org') - ->will($this->returnValue(true)); - $emailTemplate = $this->createMock(IEMailTemplate::class); - $this->newUserMailHelper - ->expects($this->at(0)) - ->method('generateTemplate') - ->with($user, true) - ->willReturn($emailTemplate); - $this->newUserMailHelper - ->expects($this->at(1)) - ->method('sendMail') - ->with($user, $emailTemplate); - - $expectedResponse = new DataResponse( - [ - 'name' => 'foo', - 'groups' => null, - 'storageLocation' => '/home/user', - 'backend' => 'bar', - 'lastLogin' => 0, - 'displayname' => 'John Doe', - 'quota' => null, - 'quota_bytes' => false, - 'subadmin' => array(), - 'email' => 'abc@example.org', - 'isRestoreDisabled' => false, - 'isAvatarAvailable' => true, - 'isEnabled' => true, - ], - Http::STATUS_CREATED - ); - $response = $controller->create('foo', '', array(), 'abc@example.org'); - $this->assertEquals($expectedResponse, $response); - } - - /** * @param string $account * @param string $type * @param array $dataBefore @@ -2598,425 +513,4 @@ class UsersControllerTest extends \Test\TestCase { $this->assertSame(Http::STATUS_BAD_REQUEST, $result->getStatus()); } - public function testDisableUserFailsDueSameUser() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('abc')); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while disabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(true)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testDisableUserFailsDueNoAdminAndNoSubadmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(2)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->never()) - ->method('setEnabled'); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $subadmin = $this->createMock(SubAdmin::class); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->will($this->returnValue(false)); - $this->groupManager - ->expects($this->once()) - ->method('getSubAdmin') - ->willReturn($subadmin); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Authentication error', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(false)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testDisableUserFailsDueNoUser() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn(null); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while disabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(true)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testDisableUserFailsDueNoUserForSubAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn(null); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while disabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(false)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testDisableUserSuccessForAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->once()) - ->method('setEnabled') - ->with(false); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => 'abc', - 'enabled' => 0, - ], - ] - ); - $response = $this->getController(true)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testDisableUserSuccessForSubAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(2)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->once()) - ->method('setEnabled'); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $subadmin = $this->createMock(SubAdmin::class); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->will($this->returnValue(true)); - $this->groupManager - ->expects($this->once()) - ->method('getSubAdmin') - ->willReturn($subadmin); - - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => 'abc', - 'enabled' => 0, - ], - ] - ); - $response = $this->getController(false)->setEnabled('abc', false); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserFailsDueSameUser() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('abc')); - $this->userSession - ->expects($this->once()) - ->method('getUser') - ->will($this->returnValue($user)); - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while enabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(true)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserFailsDueNoAdminAndNoSubadmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(2)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->never()) - ->method('setEnabled'); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $subadmin = $this->createMock(SubAdmin::class); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->will($this->returnValue(false)); - $this->groupManager - ->expects($this->once()) - ->method('getSubAdmin') - ->willReturn($subadmin); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Authentication error', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(false)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserFailsDueNoUser() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn(null); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while enabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(true)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserFailsDueNoUserForSubAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn(null); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'error', - 'data' => [ - 'message' => 'Error while enabling user.', - ], - ], - Http::STATUS_FORBIDDEN - ); - $response = $this->getController(false)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserSuccessForAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(1)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->once()) - ->method('setEnabled'); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $this->groupManager - ->expects($this->never()) - ->method('getSubAdmin'); - - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => 'abc', - 'enabled' => 1, - ], - ] - ); - $response = $this->getController(true)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } - - public function testEnableUserSuccessForSubAdmin() { - $user = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user->expects($this->once()) - ->method('getUID') - ->will($this->returnValue('def')); - $this->userSession - ->expects($this->exactly(2)) - ->method('getUser') - ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder(User::class) - ->disableOriginalConstructor()->getMock(); - $user2->expects($this->once()) - ->method('setEnabled') - ->with(true); - $this->userManager - ->expects($this->once()) - ->method('get') - ->with('abc') - ->willReturn($user2); - - $subadmin = $this->createMock(SubAdmin::class); - $subadmin->expects($this->once()) - ->method('isUserAccessible') - ->will($this->returnValue(true)); - $this->groupManager - ->expects($this->once()) - ->method('getSubAdmin') - ->willReturn($subadmin); - - $expectedResponse = new DataResponse( - [ - 'status' => 'success', - 'data' => [ - 'username' => 'abc', - 'enabled' => 1, - ], - ] - ); - $response = $this->getController(false)->setEnabled('abc', true); - $this->assertEquals($expectedResponse, $response); - } } diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 7eee0a4da9c..5f1b27ffe2d 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -8,8 +8,10 @@ default: - NextcloudTestServerContext - AppNavigationContext + - AppSettingsContext - CommentsAppContext - ContactsMenuContext + - DialogContext - FeatureContext - FileListContext - FilesAppContext diff --git a/tests/acceptance/features/bootstrap/AppNavigationContext.php b/tests/acceptance/features/bootstrap/AppNavigationContext.php index 9ef71a06065..e6e6bcc8479 100644 --- a/tests/acceptance/features/bootstrap/AppNavigationContext.php +++ b/tests/acceptance/features/bootstrap/AppNavigationContext.php @@ -1,9 +1,10 @@ <?php /** - * + * * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) - * + * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -32,24 +33,43 @@ class AppNavigationContext implements Context, ActorAwareInterface { */ public static function appNavigation() { return Locator::forThe()->id("app-navigation")-> - describedAs("App navigation"); + describedAs("App navigation"); } /** * @return Locator */ public static function appNavigationSectionItemFor($sectionText) { - return Locator::forThe()->xpath("//li[normalize-space() = '$sectionText']")-> - descendantOf(self::appNavigation())-> - describedAs($sectionText . " section item in App Navigation"); + return Locator::forThe()->xpath("//li/a[normalize-space() = '$sectionText']/..")-> + descendantOf(self::appNavigation())-> + describedAs($sectionText . " section item in App Navigation"); } /** * @return Locator */ public static function appNavigationCurrentSectionItem() { - return Locator::forThe()->css(".active")->descendantOf(self::appNavigation())-> - describedAs("Current section item in App Navigation"); + return Locator::forThe()->css(".active")-> + descendantOf(self::appNavigation())-> + describedAs("Current section item in App Navigation"); + } + + /** + * @return Locator + */ + public static function buttonForTheSection($class, $section) { + return Locator::forThe()->css("." . $class)-> + descendantOf(self::appNavigationSectionItemFor($section))-> + describedAs("The $class button on the $section section in App Navigation"); + } + + /** + * @return Locator + */ + public static function counterForTheSection($section) { + return Locator::forThe()->css(".app-navigation-entry-utils-counter")-> + descendantOf(self::appNavigationSectionItemFor($section))-> + describedAs("The counter for the $section section in App Navigation"); } /** @@ -60,10 +80,38 @@ class AppNavigationContext implements Context, ActorAwareInterface { } /** + * @Given I click the :class button on the :section section + */ + public function iClickTheButtonInTheSection($class, $section) { + $this->actor->find(self::buttonForTheSection($class, $section), 10)->click(); + } + + /** * @Then I see that the current section is :section */ public function iSeeThatTheCurrentSectionIs($section) { PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::appNavigationCurrentSectionItem(), 10)->getText(), $section); } + /** + * @Then I see that the section :section is shown + */ + public function iSeeThatTheSectionIsShown($section) { + WaitFor::elementToBeEventuallyShown($this->actor, self::appNavigationSectionItemFor($section)); + } + + /** + * @Then I see that the section :section is not shown + */ + public function iSeeThatTheSectionIsNotShown($section) { + WaitFor::elementToBeEventuallyNotShown($this->actor, self::appNavigationSectionItemFor($section)); + } + + /** + * @Then I see that the section :section has a count of :count + */ + public function iSeeThatTheSectionHasACountOf($section, $count) { + PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::counterForTheSection($section), 10)->getText(), $count); + } + } diff --git a/tests/acceptance/features/bootstrap/AppSettingsContext.php b/tests/acceptance/features/bootstrap/AppSettingsContext.php new file mode 100644 index 00000000000..5cf54cb5280 --- /dev/null +++ b/tests/acceptance/features/bootstrap/AppSettingsContext.php @@ -0,0 +1,102 @@ +<?php + +/** + * + * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) + * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * + * @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 <http://www.gnu.org/licenses/>. + * + */ + +use Behat\Behat\Context\Context; + +class AppSettingsContext implements Context, ActorAwareInterface { + + use ActorAware; + + /** + * @return Locator + */ + public static function appSettings() { + return Locator::forThe()->id("app-settings")-> + describedAs("App settings"); + } + /** + * @return Locator + */ + public static function appSettingsContent() { + return Locator::forThe()->id("app-settings-content")-> + descendantOf(self::appSettings())-> + describedAs("App settings"); + } + + /** + * @return Locator + */ + public static function appSettingsOpenButton() { + return Locator::forThe()->xpath("//div[@id = 'app-settings-header']/button")-> + descendantOf(self::appSettings())-> + describedAs("The button to open the app settings"); + } + + /** + * @return Locator + */ + public static function checkboxInTheSettings($id) { + return Locator::forThe()->xpath("//input[@id = '$id']")-> + descendantOf(self::appSettingsContent())-> + describedAs("The $id checkbox in the settings"); + } + + /** + * @return Locator + */ + public static function checkboxLabelInTheSettings($id) { + return Locator::forThe()->xpath("//label[@for = '$id']")-> + descendantOf(self::appSettingsContent())-> + describedAs("The label for the $id checkbox in the settings"); + } + + /** + * @Given I open the settings + */ + public function iOpenTheSettings() { + $this->actor->find(self::appSettingsOpenButton())->click(); + } + + /** + * @Given I toggle the :id checkbox in the settings + */ + public function iToggleTheCheckboxInTheSettingsTo($id) { + $locator = self::CheckboxInTheSettings($id); + + // If locator is not visible, fallback to label + if (!$this->actor->find(self::CheckboxInTheSettings($id))->isVisible()) { + $locator = self::checkboxLabelInTheSettings($id); + } + + $this->actor->find($locator)->click(); + } + + /** + * @Then I see that the settings are opened + */ + public function iSeeThatTheSettingsAreOpened() { + WaitFor::elementToBeEventuallyShown($this->actor, self::appSettingsContent()); + } + +} diff --git a/tests/acceptance/features/bootstrap/DialogContext.php b/tests/acceptance/features/bootstrap/DialogContext.php new file mode 100644 index 00000000000..8f387992b5f --- /dev/null +++ b/tests/acceptance/features/bootstrap/DialogContext.php @@ -0,0 +1,68 @@ +<?php + +/** + * + * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * + * @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 <http://www.gnu.org/licenses/>. + * + */ + +use Behat\Behat\Context\Context; + +class DialogContext implements Context, ActorAwareInterface { + + use ActorAware; + + /** + * @return Locator + */ + public static function theDialog() { + return Locator::forThe()->css(".oc-dialog")-> + describedAs("The dialog"); + } + + /** + * @return Locator + */ + public static function theDialogButton($text) { + return Locator::forThe()->xpath("//button[normalize-space() = '$text']")-> + descendantOf(self::theDialog())-> + describedAs($text . " button of the dialog"); + } + + /** + * @Given I click the :text button of the confirmation dialog + */ + public function iClickTheDialogButton($text) { + $this->actor->find(self::theDialogButton($text), 10)->click(); + } + + /** + * @Then I see that the confirmation dialog is shown + */ + public function iSeeThatTheConfirmationDialogIsShown() { + WaitFor::elementToBeEventuallyShown($this->actor, self::theDialog()); + } + + /** + * @Then I see that the confirmation dialog is not shown + */ + public function iSeeThatTheConfirmationDialogIsNotShown() { + WaitFor::elementToBeEventuallyNotShown($this->actor, self::theDialog()); + } + +} diff --git a/tests/acceptance/features/bootstrap/UsersSettingsContext.php b/tests/acceptance/features/bootstrap/UsersSettingsContext.php index 9ddea57f413..995bbdd8725 100644 --- a/tests/acceptance/features/bootstrap/UsersSettingsContext.php +++ b/tests/acceptance/features/bootstrap/UsersSettingsContext.php @@ -1,8 +1,9 @@ <?php /** - * + * * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) + * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * * @license GNU AGPL version 3 or any later version * @@ -31,7 +32,7 @@ class UsersSettingsContext implements Context, ActorAwareInterface { * @return Locator */ public static function newUserForm() { - return Locator::forThe()->id("newuserHeader")-> + return Locator::forThe()->id("new-user")-> describedAs("New user form in Users Settings"); } @@ -63,7 +64,7 @@ class UsersSettingsContext implements Context, ActorAwareInterface { * @return Locator */ public static function createNewUserButton() { - return Locator::forThe()->xpath("//form[@id = 'newuser']//input[@type = 'submit']")-> + return Locator::forThe()->xpath("//form[@id = 'new-user']//input[@type = 'submit']")-> describedAs("Create user button in Users Settings"); } @@ -71,24 +72,72 @@ class UsersSettingsContext implements Context, ActorAwareInterface { * @return Locator */ public static function rowForUser($user) { - return Locator::forThe()->xpath("//table[@id = 'userlist']//td[normalize-space() = '$user']/..")-> + return Locator::forThe()->xpath("//div[@id='app-content']/div/div[normalize-space() = '$user']/..")-> describedAs("Row for user $user in Users Settings"); } /** + * Warning: you need to watch out for the proper classes order + * + * @return Locator + */ + public static function classCellForUser($class, $user) { + return Locator::forThe()->xpath("//*[@class='$class']")-> + descendantOf(self::rowForUser($user))-> + describedAs("$class cell for user $user in Users Settings"); + } + + /** + * @return Locator + */ + public static function inputForUserInCell($cell, $user) { + return Locator::forThe()->css("input")-> + descendantOf(self::classCellForUser($cell, $user))-> + describedAs("$cell input for user $user in Users Settings"); + } + + /** + * @return Locator + */ + public static function optionInInputForUser($cell, $user) { + return Locator::forThe()->css(".multiselect__option--highlight")-> + descendantOf(self::classCellForUser($cell, $user))-> + describedAs("Selected $cell option in $cell input for user $user in Users Settings"); + } + + /** + * @return Locator + */ + public static function actionsMenuOf($user) { + return Locator::forThe()->css(".icon-more")-> + descendantOf(self::rowForUser($user))-> + describedAs("Actions menu for user $user in Users Settings"); + } + + /** + * @return Locator + */ + public static function theAction($action, $user) { + return Locator::forThe()->xpath("//button[normalize-space() = '$action']")-> + descendantOf(self::rowForUser($user))-> + describedAs("$action action for the user $user row in Users Settings"); + } + + /** * @return Locator */ - public static function passwordCellForUser($user) { - return Locator::forThe()->css(".password")->descendantOf(self::rowForUser($user))-> - describedAs("Password cell for user $user in Users Settings"); + public static function theColumn($column) { + return Locator::forThe()->xpath("//div[@class='user-list-grid']//div[normalize-space() = '$column']")-> + describedAs("The $column column in Users Settings"); } /** * @return Locator */ - public static function passwordInputForUser($user) { - return Locator::forThe()->css("input")->descendantOf(self::passwordCellForUser($user))-> - describedAs("Password input for user $user in Users Settings"); + public static function selectedSelectOption($cell, $user) { + return Locator::forThe()->css(".multiselect__single")-> + descendantOf(self::classCellForUser($cell, $user))-> + describedAs("The selected option of the $cell select for the user $user in Users Settings"); } /** @@ -99,6 +148,20 @@ class UsersSettingsContext implements Context, ActorAwareInterface { } /** + * @When I click the :action action in the :user actions menu + */ + public function iClickTheAction($action, $user) { + $this->actor->find(self::theAction($action, $user))->click(); + } + + /** + * @When I open the actions menu for the user :user + */ + public function iOpenTheActionsMenuOf($user) { + $this->actor->find(self::actionsMenuOf($user))->click(); + } + + /** * @When I create user :user with password :password */ public function iCreateUserWithPassword($user, $password) { @@ -108,18 +171,40 @@ class UsersSettingsContext implements Context, ActorAwareInterface { } /** - * @When I set the password for :user to :password + * @When I set the :field for :user to :value */ - public function iSetThePasswordForUserTo($user, $password) { - $this->actor->find(self::passwordCellForUser($user), 10)->click(); - $this->actor->find(self::passwordInputForUser($user), 2)->setValue($password . "\r"); + public function iSetTheFieldForUserTo($field, $user, $value) { + $this->actor->find(self::inputForUserInCell($field, $user), 2)->setValue($value . "\r"); + } + + /** + * @When I assign the user :user to the group :group + */ + public function iAssignTheUserToTheGroup($user, $group) { + $this->actor->find(self::inputForUserInCell('groups', $user))->setValue($group); + $this->actor->find(self::optionInInputForUser('groups', $user))->click(); + } + + /** + * @When I set the user :user quota to :quota + */ + public function iSetTheUserQuotaTo($user, $quota) { + $this->actor->find(self::inputForUserInCell('quota', $user))->setValue($quota); + $this->actor->find(self::optionInInputForUser('quota', $user))->click(); } /** * @Then I see that the list of users contains the user :user */ public function iSeeThatTheListOfUsersContainsTheUser($user) { - PHPUnit_Framework_Assert::assertNotNull($this->actor->find(self::rowForUser($user), 10)); + WaitFor::elementToBeEventuallyShown($this->actor, self::rowForUser($user)); + } + + /** + * @Then I see that the list of users does not contains the user :user + */ + public function iSeeThatTheListOfUsersDoesNotContainsTheUser($user) { + WaitFor::elementToBeEventuallyNotShown($this->actor, self::rowForUser($user)); } /** @@ -130,4 +215,45 @@ class UsersSettingsContext implements Context, ActorAwareInterface { $this->actor->find(self::newUserForm(), 10)->isVisible()); } + /** + * @Then I see that the :action action in the :user actions menu is shown + */ + public function iSeeTheAction($action, $user) { + PHPUnit_Framework_Assert::assertTrue( + $this->actor->find(self::theAction($action, $user), 10)->isVisible()); + } + + /** + * @Then I see that the :column column is shown + */ + public function iSeeThatTheColumnIsShown($column) { + PHPUnit_Framework_Assert::assertTrue( + $this->actor->find(self::theColumn($column), 10)->isVisible()); + } + + /** + * @Then I see that the :field of :user is :value + */ + public function iSeeThatTheFieldOfUserIs($field, $user, $value) { + PHPUnit_Framework_Assert::assertEquals( + $this->actor->find(self::inputForUserInCell($field, $user), 10)->getValue(), $value); + } + + /** + * @Then I see that the :cell cell for user :user is done loading + */ + public function iSeeThatTheCellForUserIsDoneLoading($cell, $user) { + WaitFor::elementToBeEventuallyShown($this->actor, self::classCellForUser($cell.' icon-loading-small', $user)); + WaitFor::elementToBeEventuallyNotShown($this->actor, self::classCellForUser($cell.' icon-loading-small', $user)); + } + + /** + * @Then I see that the user quota of :user is :quota + */ + public function iSeeThatTheuserQuotaIs($user, $quota) { + PHPUnit_Framework_Assert::assertEquals( + $this->actor->find(self::selectedSelectOption('quota', $user), 2)->getText(), $quota); + } + + } diff --git a/tests/acceptance/features/core/ElementWrapper.php b/tests/acceptance/features/core/ElementWrapper.php index 7d7a86149ed..c866ea699fe 100644 --- a/tests/acceptance/features/core/ElementWrapper.php +++ b/tests/acceptance/features/core/ElementWrapper.php @@ -148,6 +148,18 @@ class ElementWrapper { } /** + * Returns whether the wrapped element is checked or not. + * + * @return bool true if the wrapped element is checked, false otherwise. + */ + public function isChecked() { + $commandCallback = function() { + return $this->element->isChecked(); + }; + return $this->executeCommand($commandCallback, "check state could not be got"); + } + + /** * Returns the text of the wrapped element. * * If the wrapped element is not visible the returned text is an empty @@ -206,6 +218,32 @@ class ElementWrapper { } /** + * Check the wrapped element. + * + * If automatically waits for the wrapped element to be visible (up to the + * timeout set when finding it). + */ + public function check() { + $commandCallback = function() { + $this->element->check(); + }; + $this->executeCommand($commandCallback, "could not be checked"); + } + + /** + * uncheck the wrapped element. + * + * If automatically waits for the wrapped element to be visible (up to the + * timeout set when finding it). + */ + public function uncheck() { + $commandCallback = function() { + $this->element->uncheck(); + }; + $this->executeCommand($commandCallback, "could not be unchecked"); + } + + /** * Executes the given command. * * If a StaleElementReference or a NoSuchElement exception is thrown the diff --git a/tests/acceptance/features/login.feature b/tests/acceptance/features/login.feature index 3db8c4945ec..3a31d3f88bd 100644 --- a/tests/acceptance/features/login.feature +++ b/tests/acceptance/features/login.feature @@ -18,7 +18,6 @@ Feature: login And I am logged in as the admin And I open the User settings And I set the password for user0 to 654321 - And I see that the "Password successfully changed" notification is shown And I act as John And I log in with user user0 and password 654321 Then I see that the current page is the Files app diff --git a/tests/acceptance/features/users.feature b/tests/acceptance/features/users.feature new file mode 100644 index 00000000000..9bce32a2daa --- /dev/null +++ b/tests/acceptance/features/users.feature @@ -0,0 +1,115 @@ +Feature: users + + Scenario: create a new user + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I click the New user button + And I see that the new user form is shown + When I create user unknownUser with password 123456acb + Then I see that the list of users contains the user unknownUser + + Scenario: delete a user + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I open the actions menu for the user user0 + And I see that the "Delete user" action in the user0 actions menu is shown + When I click the "Delete user" action in the user0 actions menu + Then I see that the list of users does not contains the user user0 + + Scenario: disable a user + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I open the actions menu for the user user0 + And I see that the "Disable user" action in the user0 actions menu is shown + When I click the "Disable user" action in the user0 actions menu + Then I see that the list of users does not contains the user user0 + When I open the "Disabled users" section + Then I see that the list of users contains the user user0 + + Scenario: assign user to a group + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + # disabled because we need the TAB patch: + # https://github.com/minkphp/MinkSelenium2Driver/pull/244 + # When I assign the user user0 to the group admin + # Then I see that the section Admins is shown + # And I see that the section Admins has a count of 2 + + Scenario: create and delete a group + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + # disabled because we need the TAB patch: + # https://github.com/minkphp/MinkSelenium2Driver/pull/244 + # And I assign the user user0 to the group Group1 + # And I see that the section Group1 is shown + # And I click the "icon-delete" button on the Group1 section + # And I see that the confirmation dialog is shown + # When I click the "Yes" button of the confirmation dialog + # Then I see that the section Group1 is not shown + + Scenario: change columns visibility + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I open the settings + And I see that the settings are opened + When I toggle the showLanguages checkbox in the settings + Then I see that the "Languages" column is shown + When I toggle the showLastLogin checkbox in the settings + Then I see that the "Last login" column is shown + When I toggle the showStoragePath checkbox in the settings + Then I see that the "Storage location" column is shown + When I toggle the showUserBackend checkbox in the settings + Then I see that the "User backend" column is shown + + Scenario: change display name + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I see that the displayName of user0 is user0 + When I set the displayName for user0 to user1 + And I see that the displayName cell for user user0 is done loading + Then I see that the displayName of user0 is user1 + + Scenario: change password + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I see that the password of user0 is "" + When I set the password for user0 to 123456 + And I see that the password cell for user user0 is done loading + # password input is emptied on change + Then I see that the password of user0 is "" + + Scenario: change email + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I see that the mailAddress of user0 is "" + When I set the mailAddress for user0 to "test@nextcloud.com" + And I see that the mailAddress cell for user user0 is done loading + Then I see that the mailAddress of user0 is "test@nextcloud.com" + + Scenario: change user quota + Given I act as Jane + And I am logged in as the admin + And I open the User settings + And I see that the list of users contains the user user0 + And I see that the user quota of user0 is Unlimited + # disabled because we need the TAB patch: + # https://github.com/minkphp/MinkSelenium2Driver/pull/244 + # When I set the user user0 quota to 1GB + # And I see that the quota cell for user user0 is done loading + # Then I see that the user quota of user0 is "1 GB"
\ No newline at end of file |