From 15f43d735113e4951cfaaabb388fccb940c76df4 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 17 Mar 2021 09:33:42 +0100 Subject: [PATCH 01/91] add work reprt in the community skellet --- frontend/src/App.vue | 29 ++- frontend/src/apis/communityAPI.js | 3 + frontend/src/apis/loginAPI.js | 3 + .../components/Breadcrumb/RouteBreadcrumb.vue | 2 +- .../src/components/SidebarPlugin/SideBar.vue | 44 ++-- frontend/src/plugins/dashboard-plugin.js | 2 + frontend/src/routes/routes.js | 15 +- frontend/src/store/store.js | 6 +- frontend/src/views/AdminOverview.vue | 2 + frontend/src/views/KontoOverview.vue | 36 +-- .../src/views/KontoOverview/GddAddWork.vue | 9 + .../src/views/KontoOverview/GddAddWork2.vue | 240 ++++++++++++++++++ frontend/src/views/KontoOverview/GddTable.vue | 3 + .../src/views/KontoOverview/GddWorkTable.vue | 27 +- frontend/src/views/Landing.vue | 2 +- frontend/src/views/Layout/AdminLayout.vue | 2 +- frontend/src/views/Layout/AuthLayout.vue | 4 +- frontend/src/views/Layout/AuthLayout_gdd.vue | 10 +- frontend/src/views/Layout/DashboardLayout.vue | 10 +- frontend/src/views/Layout/DashboardNavbar.vue | 12 +- frontend/src/views/NotFoundPage.vue | 2 +- .../src/views/Pages/UserProfile/UserCard.vue | 2 +- 22 files changed, 354 insertions(+), 111 deletions(-) create mode 100644 frontend/src/views/KontoOverview/GddAddWork2.vue diff --git a/frontend/src/App.vue b/frontend/src/App.vue index da80c328f..52976cf65 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -4,8 +4,7 @@
- - +
@@ -19,17 +18,25 @@ export default { components: { ParticlesBg }, - created () { - //console.log("this.$cookies.get('gdd_session_id') ", this.$cookies.get('gdd_session_id') ) - console.log(" $cookies.isKey('gdd_session_id') ", this.$cookies.isKey("gdd_session_id") ) - if ( this.$cookies.isKey('gdd_session_id') ) { + mounted() { + console.log("mounted") + console.log(" $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") ) + console.log(" $cookies.isKey('gdd_session_id') ", $cookies.isKey("gdd_session_id") ) + const isSession = $cookies.isKey("gdd_session_id") + const getSession = $cookies.get("gdd_session_id") + console.log("this.isSession ", this.isSession ) + + if ( $cookies.isKey("gdd_session_id")) { //this.$store.state.email = this.$cookies.get('gdd_u') - console.log("login to kontooverview") - this.$router.push('/KontoOverview') + console.log("router to overview") + this.$router.push("/overview") }else { - console.log("login to LOGIN") - this.$router.push("/Login") + console.log("router to LOGIN") + //this.$router.push("/login") } + }, + created () { + console.log("created") }, data() { return { @@ -52,7 +59,7 @@ export default { } diff --git a/frontend/src/views/Layout/DashboardNavbar.vue b/frontend/src/views/Layout/DashboardNavbar.vue index 806afc6c5..a736e45d2 100755 --- a/frontend/src/views/Layout/DashboardNavbar.vue +++ b/frontend/src/views/Layout/DashboardNavbar.vue @@ -15,19 +15,7 @@ - - + {{this.$store.state.email}} diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index cf7427415..9550e5466 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -82,6 +82,18 @@ onSubmit() { this.$store.dispatch('login', {"email": this.model.email, "password": this.model.password}) } - } + }, + created () { + console.log("login.vue created") + + if ( $cookies.isKey("gdd_session_id")) { + //this.$store.state.email = this.$cookies.get('gdd_u') + console.log("login to overview") + this.$router.push("/overview") + }else { + console.log("login to LOGIN") + //this.$router.push("/login") + } + }, } diff --git a/frontend/src/views/Pages/UserProfile/UserCard.vue b/frontend/src/views/Pages/UserProfile/UserCard.vue index e698844a9..e55a9f1f5 100755 --- a/frontend/src/views/Pages/UserProfile/UserCard.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard.vue @@ -4,7 +4,7 @@
- +
From 21aa8b9cc2024a0cfdab11e0309b3b1f3c8cbfd9 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 18 Mar 2021 15:02:54 +0100 Subject: [PATCH 08/91] fix-cookies-get-set --- frontend/src/App.vue | 17 ++++++++++------- frontend/src/store/store.js | 4 ++-- frontend/src/views/Layout/DashboardNavbar.vue | 4 +++- frontend/src/views/Pages/Login.vue | 18 +++--------------- frontend/src/views/Pages/Password.vue | 4 ++-- frontend/src/views/Pages/Register.vue | 4 ++-- 6 files changed, 22 insertions(+), 29 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 28669abef..38fb24619 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -25,18 +25,21 @@ export default { console.log("created") // console.log(" $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") ) - console.log("app.vue $cookies.isKey('gdd_session_id') ", $cookies.isKey("gdd_session_id") ) - const isSession = $cookies.isKey("gdd_session_id") - // const getSession = $cookies.get("gdd_session_id") - // console.log("this.isSession ", this.isSession ) - console.log("xx", ( isSession == true)) + // console.log("app.vue $cookies.isKey('gdd_session_id') ", $cookies.isKey("gdd_session_id") ) + // const isSession = $cookies.isKey("gdd_session_id") + // const getSession = $cookies.get("gdd_session_id") + // console.log("this.isSession ", this.isSession ) + // console.log("xx", ( isSession == true)) if ( $cookies.isKey("gdd_session_id") == true) { //this.$store.state.email = this.$cookies.get('gdd_u') + console.log("cookies to store.state") + this.$store.commit('session_id', $cookies.get("gdd_session_id")) + this.$store.commit('email', $cookies.get("gdd_u")) console.log("app to overview") this.$router.push("overview") }else { - console.log("router to LOGIN") - //this.$router.push("/login") + console.log("app.vue to LOout") + this.$store.dispatch('logout') } }, data() { diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 4fdb4d201..f87db8347 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -154,8 +154,8 @@ export const store = new Vuex.Store({ console.log('action: dispatch', dispatch) console.log('action: state.session_id', state.session_id) console.log(" action: $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") ) - commit('session_id', $cookies.get("gdd_session_id")) - commit('email', $cookies.get("gdd_u")) + // commit('session_id', $cookies.get("gdd_session_id")) + // commit('email', $cookies.get("gdd_u")) const result = await communityAPI.balance($cookies.get("gdd_session_id")) console.log("accountBalance result", result) if(result.success) { diff --git a/frontend/src/views/Layout/DashboardNavbar.vue b/frontend/src/views/Layout/DashboardNavbar.vue index a736e45d2..4c6f9f6c0 100755 --- a/frontend/src/views/Layout/DashboardNavbar.vue +++ b/frontend/src/views/Layout/DashboardNavbar.vue @@ -4,7 +4,9 @@ class="navbar-top navbar-expand" :class="{'navbar-dark': type === 'default'}" > - {{$route.name}} + + {{$route.name}} + diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 9550e5466..71c1616f6 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -6,8 +6,8 @@
-

Gradido Wallet

-

{{ $t('site.login.community')}}

+

Gradido Wallet

+

{{ $t('site.login.community')}}

@@ -82,18 +82,6 @@ onSubmit() { this.$store.dispatch('login', {"email": this.model.email, "password": this.model.password}) } - }, - created () { - console.log("login.vue created") - - if ( $cookies.isKey("gdd_session_id")) { - //this.$store.state.email = this.$cookies.get('gdd_u') - console.log("login to overview") - this.$router.push("/overview") - }else { - console.log("login to LOGIN") - //this.$router.push("/login") - } - }, + } } diff --git a/frontend/src/views/Pages/Password.vue b/frontend/src/views/Pages/Password.vue index af1dc5bc2..dc18a1cc7 100644 --- a/frontend/src/views/Pages/Password.vue +++ b/frontend/src/views/Pages/Password.vue @@ -5,8 +5,8 @@
-

{{ $t('site.password.title')}}

-

{{ $t('site.password.subtitle')}}

+

{{ $t('site.password.title')}}

+

{{ $t('site.password.subtitle')}}

diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index e3eb84805..d6592addd 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -6,8 +6,8 @@
-

{{ $t('site.signup.title')}}

-

{{ $t('site.signup.subtitle')}}

+

{{ $t('site.signup.title')}}

+

{{ $t('site.signup.subtitle')}}

From e4e6cf967ecb548a9ac3c0f6b3858df364378eb1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 18 Mar 2021 15:20:32 +0100 Subject: [PATCH 09/91] remove submodul --- .gitmodules | 4 +-- frontend/src/App.vue | 26 +++++-------------- frontend/src/components/Modal.vue | 2 +- frontend/src/views/AdminOverview.vue | 2 +- frontend/src/views/Dashboard.vue | 2 +- frontend/src/views/Layout/DashboardNavbar.vue | 14 +++++----- 6 files changed, 18 insertions(+), 32 deletions(-) diff --git a/.gitmodules b/.gitmodules index 116400a7b..fab7b5b5e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,6 +2,4 @@ path = gn url = https://github.com/gradido/gn.git branch = master -[submodule "login_server"] - path = login_server - url = git@github.com:gradido/gradido_login_server.git + diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 38fb24619..6a229f115 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -18,27 +18,15 @@ export default { components: { ParticlesBg }, - mounted() { - console.log("mounted") - }, - created () { - console.log("created") - - // console.log(" $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") ) - // console.log("app.vue $cookies.isKey('gdd_session_id') ", $cookies.isKey("gdd_session_id") ) - // const isSession = $cookies.isKey("gdd_session_id") - // const getSession = $cookies.get("gdd_session_id") - // console.log("this.isSession ", this.isSession ) - // console.log("xx", ( isSession == true)) + created () { + console.log('%cWillkommen bei Gradido %cgreen text', 'font-weight:bold', 'color: green') if ( $cookies.isKey("gdd_session_id") == true) { - //this.$store.state.email = this.$cookies.get('gdd_u') - console.log("cookies to store.state") - this.$store.commit('session_id', $cookies.get("gdd_session_id")) - this.$store.commit('email', $cookies.get("gdd_u")) - console.log("app to overview") - this.$router.push("overview") + console.log('%cWillkommen zurück %c'+$cookies.get("gdd_u")+'', 'font-weight:bold', 'color: orange') + this.$store.commit('session_id', $cookies.get("gdd_session_id")) + this.$store.commit('email', $cookies.get("gdd_u")) + this.$router.push("overview") }else { - console.log("app.vue to LOout") + console.log("app.vue to Logout") this.$store.dispatch('logout') } }, diff --git a/frontend/src/components/Modal.vue b/frontend/src/components/Modal.vue index 44996d624..cc01518d1 100644 --- a/frontend/src/components/Modal.vue +++ b/frontend/src/components/Modal.vue @@ -26,7 +26,7 @@ diff --git a/frontend/src/views/AdminOverview.vue b/frontend/src/views/AdminOverview.vue index 6ed76740e..41c1b1d99 100644 --- a/frontend/src/views/AdminOverview.vue +++ b/frontend/src/views/AdminOverview.vue @@ -65,7 +65,7 @@
Charts
-
Geschöpft
+
Geschöpft
diff --git a/frontend/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue index d7313896d..79a1a03d7 100644 --- a/frontend/src/views/Dashboard.vue +++ b/frontend/src/views/Dashboard.vue @@ -68,7 +68,7 @@
Overview
-
Sales value
+
Sales value
diff --git a/frontend/src/views/Layout/DashboardNavbar.vue b/frontend/src/views/Layout/DashboardNavbar.vue index 4c6f9f6c0..1e77c16c5 100755 --- a/frontend/src/views/Layout/DashboardNavbar.vue +++ b/frontend/src/views/Layout/DashboardNavbar.vue @@ -5,7 +5,7 @@ :class="{'navbar-dark': type === 'default'}" > - {{$route.name}} + {{$route.name}} @@ -23,14 +23,14 @@ tag="li" title-tag="a" title-classes="nav-link pr-0"> - - + + - + - {{this.$store.state.email}} + {{ $store.state.email }} @@ -68,8 +68,8 @@ diff --git a/frontend/src/views/Starter/SampleFooter.vue b/frontend/src/views/Starter/SampleFooter.vue deleted file mode 100644 index 7786a507c..000000000 --- a/frontend/src/views/Starter/SampleFooter.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/frontend/src/views/Starter/SampleLayout.vue b/frontend/src/views/Starter/SampleLayout.vue deleted file mode 100755 index 5b3d69f21..000000000 --- a/frontend/src/views/Starter/SampleLayout.vue +++ /dev/null @@ -1,77 +0,0 @@ - - diff --git a/frontend/src/views/Starter/SampleNavbar.vue b/frontend/src/views/Starter/SampleNavbar.vue deleted file mode 100644 index 859f4464b..000000000 --- a/frontend/src/views/Starter/SampleNavbar.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/frontend/src/views/Starter/SamplePage.vue b/frontend/src/views/Starter/SamplePage.vue deleted file mode 100755 index e0dee359f..000000000 --- a/frontend/src/views/Starter/SamplePage.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 06586d16a..aecec84d1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -9626,6 +9626,11 @@ vue-cookies@^1.7.4: resolved "https://registry.yarnpkg.com/vue-cookies/-/vue-cookies-1.7.4.tgz#d241d0a0431da0795837651d10b4d73e7c8d3e8d" integrity sha512-mOS5Btr8V9zvAtkmQ7/TfqJIropOx7etDAgBywPCmHjvfJl2gFbH2XgoMghleLoyyMTi5eaJss0mPN7arMoslA== +vue-country-flag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vue-country-flag/-/vue-country-flag-2.0.3.tgz#f644d8f5150a97f473f0c13e04622c6ede37d1de" + integrity sha512-QZM3hNNhnGU+G1qnpq1BiICE4Zh91UA++/UpM0go8XbxkVxTiPy4asWY07vL/3PtW8M69YqWVbhwG13rzvNwkA== + vue-eslint-parser@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" From ea65400de071b17a3e186199e0fe66150ed44ae0 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 17:35:04 +0100 Subject: [PATCH 19/91] fixed docker builds (they work differently - why?) --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8879a34bb..2248b65dc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -74,7 +74,7 @@ jobs: ########################################################################## - name: login server | Build `test` image run: | - docker build --target login_server_debug -t "gradido/loginserver:test" login_server/Dockerfile.debug + docker build --target login_server_debug -t "gradido/loginserver:test" -f ./login_server/Dockerfile.debug login_server/ docker save "gradido/loginserver:test" > /tmp/loginserver.tar - name: Upload Artifact uses: actions/upload-artifact@v2 @@ -100,7 +100,7 @@ jobs: ########################################################################## - name: community server | Build `test` image run: | - docker build -t "gradido/communityserver:test" community_server/ + docker build -t "gradido/communityserver:test" -f ./community_server/Dockerfile ./ docker save "gradido/communityserver:test" > /tmp/communityserver.tar - name: Upload Artifact uses: actions/upload-artifact@v2 From bf34acb573b14cdb2f539ec2817c4a8918979765 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:17:39 +0100 Subject: [PATCH 20/91] include submodules in checkout for login server --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2248b65dc..e340b4889 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,6 +69,7 @@ jobs: ########################################################################## - name: Checkout code uses: actions/checkout@v2 + submodules: recursive ########################################################################## # BUILD LOGIN SERVER DOCKER IMAGE (build) ################################ ########################################################################## From abb5f1170d1952e00c3583b1bcf261a9bf1fc326 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:18:38 +0100 Subject: [PATCH 21/91] corrected syntax --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e340b4889..d92f167dc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -69,7 +69,8 @@ jobs: ########################################################################## - name: Checkout code uses: actions/checkout@v2 - submodules: recursive + with: + - submodules: recursive ########################################################################## # BUILD LOGIN SERVER DOCKER IMAGE (build) ################################ ########################################################################## From 7f01a890ae3b9452de7e23310427cb58dc05aa8c Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:19:33 +0100 Subject: [PATCH 22/91] more syntax --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d92f167dc..ed55ced01 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -70,7 +70,7 @@ jobs: - name: Checkout code uses: actions/checkout@v2 with: - - submodules: recursive + submodules: recursive ########################################################################## # BUILD LOGIN SERVER DOCKER IMAGE (build) ################################ ########################################################################## From dc63b4ccaff1df140ea5d848ac0cf1a0d0439b63 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:24:30 +0100 Subject: [PATCH 23/91] try to correct submodules path --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index b867af34b..60b29abc2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,10 +4,10 @@ branch = master [submodule "mithril_client"] path = community_server/mithril_client - url = git@github.com:gradido/gradido_mithrilJS_client.git + url = https://github.com/gradido/gradido_mithrilJS_client.git [submodule "src/protobuf"] path = community_server/src/protobuf - url = git@github.com:gradido/gradido_protocol.git + url = https://github.com/gradido/gradido_protocol.git [submodule "dependencies/tinf"] path = login_server/dependencies/tinf url = https://github.com/jibsen/tinf.git From f12a1a40536ed6abf0171bd9a6b1ba7272a44c1a Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:25:41 +0100 Subject: [PATCH 24/91] remove mithril client - seems not to work at all --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 60b29abc2..246626547 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,9 +2,9 @@ path = gn url = https://github.com/gradido/gn.git branch = master -[submodule "mithril_client"] - path = community_server/mithril_client - url = https://github.com/gradido/gradido_mithrilJS_client.git +#[submodule "mithril_client"] +# path = community_server/mithril_client +# url = https://github.com/gradido/gradido_mithrilJS_client.git [submodule "src/protobuf"] path = community_server/src/protobuf url = https://github.com/gradido/gradido_protocol.git From 7ec9fcf9ea172f1bcdb61ab850ac37725c154898 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 19 Mar 2021 18:27:16 +0100 Subject: [PATCH 25/91] remove mithril client reference --- community_server/mithril_client | 1 - 1 file changed, 1 deletion(-) delete mode 160000 community_server/mithril_client diff --git a/community_server/mithril_client b/community_server/mithril_client deleted file mode 160000 index f0b1d113c..000000000 --- a/community_server/mithril_client +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f0b1d113cee2a76e9dbb098b315f4acaf38410d0 From 962578933963e3546259c348c53a9342fc027a2b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 20 Mar 2021 10:03:27 +0100 Subject: [PATCH 26/91] better error reporting in email manager, because it seems it don't work like it should --- login_server/src/cpp/SingletonManager/EmailManager.cpp | 4 ++++ login_server/src/cpp/tasks/Thread.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/login_server/src/cpp/SingletonManager/EmailManager.cpp b/login_server/src/cpp/SingletonManager/EmailManager.cpp index 847887316..e1eee3e2c 100644 --- a/login_server/src/cpp/SingletonManager/EmailManager.cpp +++ b/login_server/src/cpp/SingletonManager/EmailManager.cpp @@ -92,6 +92,8 @@ int EmailManager::ThreadFunction() if (mPendingEmails.empty()) return 0; auto lm = LanguageManager::getInstance(); + ErrorList errors; + static const char* function_name = "PrepareEmailTask"; Poco::Net::SecureSMTPClientSession mailClientSession(mEmailAccount.url, mEmailAccount.port); mailClientSession.login(); @@ -100,6 +102,7 @@ int EmailManager::ThreadFunction() mailClientSession.login(Poco::Net::SMTPClientSession::AUTH_LOGIN, mEmailAccount.username, mEmailAccount.password); } catch (Poco::Net::SSLException& ex) { + errors.addError(new ParamError(function_name, "ssl certificate error", ex.displayText())); printf("[PrepareEmailTask] ssl certificate error: %s\nPlease make sure you have cacert.pem (CA/root certificates) next to binary from https://curl.haxx.se/docs/caextract.html\n", ex.displayText().data()); return -1; } @@ -151,6 +154,7 @@ int EmailManager::ThreadFunction() else { // error drafting email, shouldn't happend printf("[EmailManager::ThreadFunction] Error drafting email\n"); + errors.addError(new Error(function_name, "Error drafting email")); } delete email; email = nullptr; diff --git a/login_server/src/cpp/tasks/Thread.cpp b/login_server/src/cpp/tasks/Thread.cpp index 0c095aeb9..2419a1719 100644 --- a/login_server/src/cpp/tasks/Thread.cpp +++ b/login_server/src/cpp/tasks/Thread.cpp @@ -1,6 +1,7 @@ //#include "lib/Thread.h" //#include "UniversumLib.h" #include "Thread.h" +#include "../lib/ErrorList.h" namespace UniLib { namespace lib { @@ -55,6 +56,8 @@ namespace UniLib { void Thread::run() { + static const char* function_name = "Thread::run"; + ErrorList errors; //Thread* t = this; while (true) { try { @@ -77,6 +80,7 @@ namespace UniLib { { //EngineLog.writeToLog("error-code: %d", ret); printf("[Thread::%s] error running thread functon: %d, exit thread\n", __FUNCTION__, ret); + errors.addError(new ParamError(function_name, "error running thread function, exit thread", mPocoThread->getName())); return; } } @@ -85,13 +89,19 @@ namespace UniLib { threadUnlock(); //LOG_ERROR("Fehler in Thread, exit", -1); printf("[Thread::%s] exception: %s\n", __FUNCTION__, e.message().data()); + errors.addError(new ParamError(function_name, "poco exception", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); return; } } catch (Poco::TimeoutException& e) { printf("[Thread::%s] timeout exception\n", __FUNCTION__); + errors.addError(new ParamError(function_name, "poco timeout exception", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); } catch (Poco::Exception& e) { printf("[Thread::%s] exception: %s\n", __FUNCTION__, e.message().data()); + errors.addError(new ParamError(function_name, "poco exception 2", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); return; } } From 83ab670858f989230960463139559c042109f4f3 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 22 Mar 2021 13:03:08 +0100 Subject: [PATCH 27/91] add optional paramater account state to user search to able to search users which haven't activated there account yet --- .../src/cpp/JSONInterface/JsonGetUsers.cpp | 15 ++++-- login_server/src/cpp/controller/User.cpp | 37 ++++++++++++--- login_server/src/cpp/controller/User.h | 2 +- login_server/src/cpp/model/table/ModelBase.h | 46 +++++++++++++++++++ 4 files changed, 89 insertions(+), 11 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp b/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp index dc6c1faac..77f5e0a24 100644 --- a/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp +++ b/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp @@ -12,7 +12,8 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) int session_id = 0; std::string searchString; - + std::string accountState = ""; + static std::string emptySearchString = "... empty ..."; // if is json object if (params.type() == typeid(Poco::JSON::Object::Ptr)) { Poco::JSON::Object::Ptr paramJsonObject = params.extract(); @@ -23,6 +24,9 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) /// Throws InvalidAccessException if Var is empty. try { paramJsonObject->get("search").convert(searchString); + if (paramJsonObject->has("account_state")) { + paramJsonObject->get("account_state").convert(accountState); + } paramJsonObject->get("session_id").convert(session_id); } catch (Poco::Exception& ex) { @@ -67,17 +71,20 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) } auto user = session->getNewUser(); + if (searchString == emptySearchString) { + searchString = ""; + } if (user.isNull()) { return customStateError("not found", "Session didn't contain user"); } - else if (searchString == "") { - return customStateError("not found", "Search string is empty"); + else if (searchString == "" && (accountState == "" || accountState == "all")) { + return customStateError("not found", "Search string is empty and account_state is all or empty"); } else if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { return customStateError("wrong role", "User hasn't correct role"); } - auto results = controller::User::search(searchString); + auto results = controller::User::search(searchString, accountState); if (!results.size()) { return stateSuccess(); } diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 7aedbb701..e71d4b70a 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -46,24 +46,49 @@ namespace controller { return Poco::AutoPtr(user); } - std::vector User::search(const std::string& searchString) + std::vector User::search(const std::string& searchString, const std::string& accountState /* = "all" */) { auto sm = SessionManager::getInstance(); + auto cm = ConnectionManager::getInstance(); auto db = new model::table::User(); + static const char* functionName = "User::search"; std::string globalSearch = "%" + searchString + "%"; std::vector resultFromDB; - // check if search string is email - /*if (sm->isValid(searchString, VALIDATE_EMAIL)) { - resultFromDB = db->loadFromDB ("email", globalSearch); + if (accountState == "email not activated") { + + std::vector fieldNames = { "first_name", "last_name", "email", "email_checked" }; + auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); + std::vector results; + + using namespace Poco::Data::Keywords; + Poco::Data::Statement select(session); + // typedef Poco::Tuple, int> UserTuple; + select << "SELECT id, first_name, last_name, email, pubkey, created, email_checked, disabled FROM " << db->getTableName(); + select << " where email_checked = 0 "; + select, into(resultFromDB); + if (searchString != "") { + select << "AND (first_name LIKE ? OR last_name LIKE ? OR email LIKE ?)"; + select, useRef(globalSearch), useRef(globalSearch), useRef(globalSearch); + } + try { + select.execute(); + } + catch (Poco::Exception& ex) { + ErrorList errors; + errors.addError(new ParamError(functionName, "mysql error ", ex.displayText())); + errors.addError(new ParamError(functionName, "search string", searchString)); + errors.addError(new ParamError(functionName, "account state", accountState)); + errors.sendErrorsAsEmail(); + } } - else {*/ + else { std::vector fieldNames = { "first_name", "last_name", "email" }; std::vector fieldValues = { globalSearch, globalSearch, globalSearch }; resultFromDB = db->loadFromDB(fieldNames, fieldValues, model::table::MYSQL_CONDITION_OR); - //} + } db->release(); db = nullptr; diff --git a/login_server/src/cpp/controller/User.h b/login_server/src/cpp/controller/User.h index 33daa9eda..f6b124cd5 100644 --- a/login_server/src/cpp/controller/User.h +++ b/login_server/src/cpp/controller/User.h @@ -28,7 +28,7 @@ namespace controller { static Poco::AutoPtr create(); static Poco::AutoPtr create(const std::string& email, const std::string& first_name, const std::string& last_name, Poco::UInt64 passwordHashed = 0, std::string languageKey = "de"); - static std::vector search(const std::string& searchString); + static std::vector search(const std::string& searchString, const std::string& accountState = "all"); //! \brief go through whole db and search users with email_checked = false and schedule resend 7 days after email_opt_in created date //! diff --git a/login_server/src/cpp/model/table/ModelBase.h b/login_server/src/cpp/model/table/ModelBase.h index 3d3bc3ab8..13bcc467c 100644 --- a/login_server/src/cpp/model/table/ModelBase.h +++ b/login_server/src/cpp/model/table/ModelBase.h @@ -40,10 +40,19 @@ namespace model { size_t loadFromDB(const std::string& fieldName, const T& fieldValue); template bool isExistInDB(const std::string& fieldName, const T& fieldValue); + template std::vector loadFromDB(const std::string& fieldName, const WhereFieldType& fieldValue, int expectedResults = 0); + template size_t loadFromDB(const std::vector& fieldNames, const T1& field1Value, const T2& field2Value, MysqlConditionType conditionType = MYSQL_CONDITION_AND); + + template + std::vector loadMultipleFromDB( + const std::vector& fieldNames, + const T1& field1Value, const T2& field2Value, const T3& field3Value, const T4& field4Value, + MysqlConditionType conditionType = MYSQL_CONDITION_AND); + template std::vector loadFromDB(const std::vector& fieldNames, const std::vector& fieldValues, MysqlConditionType conditionType = MYSQL_CONDITION_AND, int expectedResults = 0); bool insertIntoDB(bool loadId); @@ -211,6 +220,43 @@ namespace model { return resultCount; } + template + std::vector ModelBase::loadMultipleFromDB( + const std::vector& fieldNames, + const T1& field1Value, const T2& field2Value, const T3& field3Value, const T4& field4Value, + MysqlConditionType conditionType/* = MYSQL_CONDITION_AND*/) + { + auto cm = ConnectionManager::getInstance(); + std::vector results; + if (fieldNames.size() != 4) { + addError(new Error(getTableName(), "error in loadFromDB with 4 different field values, fieldNames count isn't 4")); + return results; + } + Poco::ScopedLock _lock(mWorkMutex); + + auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); + Poco::Data::Statement select = _loadMultipleFromDB(session, fieldNames, conditionType); + select, Poco::Data::Keywords::into(results), + Poco::Data::Keywords::useRef(field1Value), Poco::Data::Keywords::useRef(field2Value), + Poco::Data::Keywords::useRef(field3Value), Poco::Data::Keywords::useRef(field4Value); + + size_t resultCount = 0; + try { + resultCount = select.execute(); + } + catch (Poco::Exception& ex) { + lock(); + addError(new ParamError(getTableName(), "mysql error by selecting with 4 different field types", ex.displayText())); + int count = 0; + for (auto it = fieldNames.begin(); it != fieldNames.end(); it++) { + addError(new ParamError(getTableName(), "field name for select: ", *it)); + } + + //addError(new ParamError(getTableName(), "field name for select: ", fieldName.data())); + unlock(); + } + return resultCount; + } template size_t ModelBase::updateIntoDB(const std::string& fieldName, const T& fieldValue) From ffe6aefa13865bd8a67f5e073452d2bac00d44ec Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 12:07:52 +0000 Subject: [PATCH 28/91] add account state as parameter for user search, transmit to login-server and update handling by selecting from community server --- .../Component/JsonRequestClientComponent.php | 5 +- .../src/Controller/StateUsersController.php | 57 ++++++++++++------- community_server/src/Form/UserSearchForm.php | 4 +- .../src/Template/StateUsers/search.ctp | 16 +++++- 4 files changed, 59 insertions(+), 23 deletions(-) diff --git a/community_server/src/Controller/Component/JsonRequestClientComponent.php b/community_server/src/Controller/Component/JsonRequestClientComponent.php index 8a071b70b..66e65e3bb 100644 --- a/community_server/src/Controller/Component/JsonRequestClientComponent.php +++ b/community_server/src/Controller/Component/JsonRequestClientComponent.php @@ -55,7 +55,7 @@ class JsonRequestClientComponent extends Component ]), '/getRunningUserTasks'); } - public function getUsers($session_id, $searchString) + public function getUsers($session_id, $searchString, $accountState) { if($searchString == "") { return ['state' => 'error', 'type' => 'parameter error', 'msg' => 'search string is empty']; @@ -66,7 +66,8 @@ class JsonRequestClientComponent extends Component return $this->sendRequest(json_encode([ 'session_id' => $session_id, - 'search' => $searchString + 'search' => $searchString, + 'account_state' => $accountState, ]), '/getUsers'); } diff --git a/community_server/src/Controller/StateUsersController.php b/community_server/src/Controller/StateUsersController.php index d85f8b449..9f07fffdb 100644 --- a/community_server/src/Controller/StateUsersController.php +++ b/community_server/src/Controller/StateUsersController.php @@ -99,9 +99,14 @@ class StateUsersController extends AppController //$this->set('timeUsed', $timeUsed); $csfr_token = $this->request->getParam('_csrfToken'); $this->set(compact('timeUsed', 'searchForm', 'csfr_token')); - + $empty_string = '... empty ...'; if ($this->request->is('post')) { + $finalUserEntrys = []; $requestData = $this->request->getData(); + $account_state = $requestData['account_state']; + if($requestData['search'] == '' && $account_state != 'all') { + $requestData['search'] = $empty_string; + } if ($searchForm->validate($requestData)) { //var_dump($requestData); @@ -111,7 +116,7 @@ class StateUsersController extends AppController $searchType = 'email'; } // find users on login server - $resultJson = $this->JsonRequestClient->getUsers($session->read('session_id'), $searchString); + $resultJson = $this->JsonRequestClient->getUsers($session->read('session_id'), $searchString, $account_state); $loginServerUser = []; if ($resultJson['state'] == 'success') { $dataJson = $resultJson['data']; @@ -139,28 +144,42 @@ class StateUsersController extends AppController } } // find user on community server db - $globalSearch = '%' . $searchString . '%'; + + + $communityUsers = $this->StateUsers ->find('all') ->contain(['StateBalances' => ['fields' => ['amount', 'state_user_id']]]); - - $communityUsers->where(['OR' => [ - 'first_name LIKE' => $globalSearch, - 'last_name LIKE' => $globalSearch, - //'username LIKE' => $globalSearch, - 'email LIKE' => $globalSearch - ]]); - - //var_dump($communityUsers->toArray()); - foreach ($communityUsers as $u) { - $pubkey_hex = bin2hex(stream_get_contents($u->public_key)); - $u->public_hex = $pubkey_hex; - if (!isset($pubkeySorted[$pubkey_hex])) { - $pubkeySorted[$pubkey_hex] = ['login' => [], 'community' => []]; + + if($account_state == 'email not activated') { + if(count($pubkeySorted) > 0) { + $communityUsers->where(['hex(public_key) IN' => array_keys($pubkeySorted)]); + } else { + $communityUsers = null; } - array_push($pubkeySorted[$pubkey_hex]['community'], $u); + } else { + $globalSearch = '%' . $searchString . '%'; + $communityUsers->where(['OR' => [ + 'first_name LIKE' => $globalSearch, + 'last_name LIKE' => $globalSearch, + //'username LIKE' => $globalSearch, + 'email LIKE' => $globalSearch + ]]); } - $finalUserEntrys = []; + + + //var_dump($communityUsers->toArray()); + if($communityUsers) { + foreach ($communityUsers as $u) { + $pubkey_hex = bin2hex(stream_get_contents($u->public_key)); + $u->public_hex = $pubkey_hex; + if (!isset($pubkeySorted[$pubkey_hex])) { + $pubkeySorted[$pubkey_hex] = ['login' => [], 'community' => []]; + } + array_push($pubkeySorted[$pubkey_hex]['community'], $u); + } + } + // detect states foreach ($pubkeySorted as $pubhex => $user) { $finalUser = []; diff --git a/community_server/src/Form/UserSearchForm.php b/community_server/src/Form/UserSearchForm.php index e2955e244..c68269920 100644 --- a/community_server/src/Form/UserSearchForm.php +++ b/community_server/src/Form/UserSearchForm.php @@ -11,7 +11,9 @@ class UserSearchForm extends Form protected function _buildSchema(Schema $schema) { - return $schema->addField('search', ['type' => 'string']); + return $schema + ->addField('search', ['type' => 'string']) + ->addField('account_state', ['type' => 'select']); } function validationDefault(Validator $validator) diff --git a/community_server/src/Template/StateUsers/search.ctp b/community_server/src/Template/StateUsers/search.ctp index e6775729b..07a20210c 100644 --- a/community_server/src/Template/StateUsers/search.ctp +++ b/community_server/src/Template/StateUsers/search.ctp @@ -11,6 +11,19 @@ $this->assign('title', __('Benutzer suchen')); $this->loadHelper('Form', [ 'templates' => 'horizontal_form', ]); + +$stateOptions = [ + 'all' => __('Alle'), + //'account created'=>__('Konto angelegt'), + //'account not on login-server' => __('Konto nicht auf Login-Server'), + //'email activated' => __('Konto aktiviert'), + //'account copied to community' => __('Konto auf Gemeinschafts-Server'), + 'email not activated' => __('Konto nicht aktiviert'), + //'account multiple times on login-server' => __('Konto mehrfach vorhanden'), + //'account not on community server' => __('Konto nicht auf Gemeinschafts-Server'), + //'no keys' => __('Keine Schlüssel generiert') +]; + ?> Html->css([ 'loginServer/style.css', @@ -41,7 +54,8 @@ $this->loadHelper('Form', [

Benutzer suchen

Form->create($searchForm, []) ?> - Form->control('search', ['label' => __('Suchbegriff'), 'class' => 'form-control', 'id' => 'inlineFormInputGroup', 'placeholder' => __('Vorname/Nachname/E-Mail')]) ?> + Form->control('search', ['label' => __('Suchbegriff'), 'class' => 'form-control', 'id' => 'inlineFormInputGroup', 'placeholder' => __('Vorname/Nachname/E-Mail'), 'required' => false]) ?> + Form->control('account_state', ['label' => __('Konto Status'), 'class' => 'form-control', 'type' => 'select', 'options' => $stateOptions]) ?> Form->button('search ' . __('Suchen'), ['class' => 'form-button']) ?> Form->hidden('order_row', ['id' => 'input-order-row']) ?>
From cd5c8a2c5d07c21959147947d2de44f1d4b0d3b3 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 13:08:58 +0000 Subject: [PATCH 29/91] update user search js, add order functionality --- .../src/Template/StateUsers/search.ctp | 2 +- community_server/webroot/js/userSearch.js | 2954 +++++++++-------- community_server/webroot/js/userSearch.min.js | 2 +- 3 files changed, 1496 insertions(+), 1462 deletions(-) diff --git a/community_server/src/Template/StateUsers/search.ctp b/community_server/src/Template/StateUsers/search.ctp index 07a20210c..626cb7313 100644 --- a/community_server/src/Template/StateUsers/search.ctp +++ b/community_server/src/Template/StateUsers/search.ctp @@ -73,7 +73,7 @@ $stateOptions = [ csfr_token = ''; -Html->script('userSearch') ?> +Html->script('userSearch.min') ?> diff --git a/community_server/webroot/js/userSearch.js b/community_server/webroot/js/userSearch.js index 4ad04ec57..84f030ad0 100644 --- a/community_server/webroot/js/userSearch.js +++ b/community_server/webroot/js/userSearch.js @@ -185,7 +185,7 @@ process.chdir = function (dir) { process.umask = function() { return 0; }; },{}],2:[function(require,module,exports){ -(function (setImmediate,clearImmediate){ +(function (setImmediate,clearImmediate){(function (){ var nextTick = require('process/browser.js').nextTick; var apply = Function.prototype.apply; var slice = Array.prototype.slice; @@ -262,1170 +262,1170 @@ exports.setImmediate = typeof setImmediate === "function" ? setImmediate : funct exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { delete immediateIds[id]; }; -}).call(this,require("timers").setImmediate,require("timers").clearImmediate) +}).call(this)}).call(this,require("timers").setImmediate,require("timers").clearImmediate) },{"process/browser.js":1,"timers":2}],3:[function(require,module,exports){ -(function (global,setImmediate){ -new function() { - -function Vnode(tag, key, attrs0, children, text, dom) { - return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false} -} -Vnode.normalize = function(node) { - if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined) - if (node != null && typeof node !== "object") return Vnode("#", undefined, undefined, node === false ? "" : node, undefined, undefined) - return node -} -Vnode.normalizeChildren = function normalizeChildren(children) { - for (var i = 0; i < children.length; i++) { - children[i] = Vnode.normalize(children[i]) - } - return children -} -var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g -var selectorCache = {} -function hyperscript(selector) { - if (selector == null || typeof selector !== "string" && typeof selector.view !== "function") { - throw Error("The selector must be either a string or a component."); - } - if (typeof selector === "string" && selectorCache[selector] === undefined) { - var match, tag, classes = [], attributes = {} - while (match = selectorParser.exec(selector)) { - var type = match[1], value = match[2] - if (type === "" && value !== "") tag = value - else if (type === "#") attributes.id = value - else if (type === ".") classes.push(value) - else if (match[3][0] === "[") { - var attrValue = match[6] - if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\") - if (match[4] === "class") classes.push(attrValue) - else attributes[match[4]] = attrValue || true - } - } - if (classes.length > 0) attributes.className = classes.join(" ") - selectorCache[selector] = function(attrs, children) { - var hasAttrs = false, childList, text - var className = attrs.className || attrs.class - for (var key in attributes) attrs[key] = attributes[key] - if (className !== undefined) { - if (attrs.class !== undefined) { - attrs.class = undefined - attrs.className = className - } - if (attributes.className !== undefined) attrs.className = attributes.className + " " + className - } - for (var key in attrs) { - if (key !== "key") { - hasAttrs = true - break - } - } - if (Array.isArray(children) && children.length == 1 && children[0] != null && children[0].tag === "#") text = children[0].children - else childList = children - return Vnode(tag || "div", attrs.key, hasAttrs ? attrs : undefined, childList, text, undefined) - } - } - var attrs, children, childrenIndex - if (arguments[1] == null || typeof arguments[1] === "object" && arguments[1].tag === undefined && !Array.isArray(arguments[1])) { - attrs = arguments[1] - childrenIndex = 2 - } - else childrenIndex = 1 - if (arguments.length === childrenIndex + 1) { - children = Array.isArray(arguments[childrenIndex]) ? arguments[childrenIndex] : [arguments[childrenIndex]] - } - else { - children = [] - for (var i = childrenIndex; i < arguments.length; i++) children.push(arguments[i]) - } - if (typeof selector === "string") return selectorCache[selector](attrs || {}, Vnode.normalizeChildren(children)) - return Vnode(selector, attrs && attrs.key, attrs || {}, Vnode.normalizeChildren(children), undefined, undefined) -} -hyperscript.trust = function(html) { - if (html == null) html = "" - return Vnode("<", undefined, undefined, html, undefined, undefined) -} -hyperscript.fragment = function(attrs1, children) { - return Vnode("[", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined) -} -var m = hyperscript -/** @constructor */ -var PromisePolyfill = function(executor) { - if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`") - if (typeof executor !== "function") throw new TypeError("executor must be a function") - var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false) - var instance = self._instance = {resolvers: resolvers, rejectors: rejectors} - var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout - function handler(list, shouldAbsorb) { - return function execute(value) { - var then - try { - if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") { - if (value === self) throw new TypeError("Promise can't be resolved w/ itself") - executeOnce(then.bind(value)) - } - else { - callAsync(function() { - if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value) - for (var i = 0; i < list.length; i++) list[i](value) - resolvers.length = 0, rejectors.length = 0 - instance.state = shouldAbsorb - instance.retry = function() {execute(value)} - }) - } - } - catch (e) { - rejectCurrent(e) - } - } - } - function executeOnce(then) { - var runs = 0 - function run(fn) { - return function(value) { - if (runs++ > 0) return - fn(value) - } - } - var onerror = run(rejectCurrent) - try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)} - } - executeOnce(executor) -} -PromisePolyfill.prototype.then = function(onFulfilled, onRejection) { - var self = this, instance = self._instance - function handle(callback, list, next, state) { - list.push(function(value) { - if (typeof callback !== "function") next(value) - else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)} - }) - if (typeof instance.retry === "function" && state === instance.state) instance.retry() - } - var resolveNext, rejectNext - var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject}) - handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false) - return promise -} -PromisePolyfill.prototype.catch = function(onRejection) { - return this.then(null, onRejection) -} -PromisePolyfill.resolve = function(value) { - if (value instanceof PromisePolyfill) return value - return new PromisePolyfill(function(resolve) {resolve(value)}) -} -PromisePolyfill.reject = function(value) { - return new PromisePolyfill(function(resolve, reject) {reject(value)}) -} -PromisePolyfill.all = function(list) { - return new PromisePolyfill(function(resolve, reject) { - var total = list.length, count = 0, values = [] - if (list.length === 0) resolve([]) - else for (var i = 0; i < list.length; i++) { - (function(i) { - function consume(value) { - count++ - values[i] = value - if (count === total) resolve(values) - } - if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") { - list[i].then(consume, reject) - } - else consume(list[i]) - })(i) - } - }) -} -PromisePolyfill.race = function(list) { - return new PromisePolyfill(function(resolve, reject) { - for (var i = 0; i < list.length; i++) { - list[i].then(resolve, reject) - } - }) -} -if (typeof window !== "undefined") { - if (typeof window.Promise === "undefined") window.Promise = PromisePolyfill - var PromisePolyfill = window.Promise -} else if (typeof global !== "undefined") { - if (typeof global.Promise === "undefined") global.Promise = PromisePolyfill - var PromisePolyfill = global.Promise -} else { -} -var buildQueryString = function(object) { - if (Object.prototype.toString.call(object) !== "[object Object]") return "" - var args = [] - for (var key0 in object) { - destructure(key0, object[key0]) - } - return args.join("&") - function destructure(key0, value) { - if (Array.isArray(value)) { - for (var i = 0; i < value.length; i++) { - destructure(key0 + "[" + i + "]", value[i]) - } - } - else if (Object.prototype.toString.call(value) === "[object Object]") { - for (var i in value) { - destructure(key0 + "[" + i + "]", value[i]) - } - } - else args.push(encodeURIComponent(key0) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : "")) - } -} -var _8 = function($window, Promise) { - var callbackCount = 0 - var oncompletion - function setCompletionCallback(callback) {oncompletion = callback} - function finalizer() { - var count = 0 - function complete() {if (--count === 0 && typeof oncompletion === "function") oncompletion()} - return function finalize(promise0) { - var then0 = promise0.then - promise0.then = function() { - count++ - var next = then0.apply(promise0, arguments) - next.then(complete, function(e) { - complete() - if (count === 0) throw e - }) - return finalize(next) - } - return promise0 - } - } - function normalize(args, extra) { - if (typeof args === "string") { - var url = args - args = extra || {} - if (args.url == null) args.url = url - } - return args - } - function request(args, extra) { - var finalize = finalizer() - args = normalize(args, extra) - var promise0 = new Promise(function(resolve, reject) { - if (args.method == null) args.method = "GET" - args.method = args.method.toUpperCase() - var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE" - if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify - if (typeof args.deserialize !== "function") args.deserialize = deserialize - if (typeof args.extract !== "function") args.extract = extract - args.url = interpolate(args.url, args.data) - if (useBody) args.data = args.serialize(args.data) - else args.url = assemble(args.url, args.data) - var xhr = new $window.XMLHttpRequest() - xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) - if (args.serialize === JSON.stringify && useBody) { - xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8") - } - if (args.deserialize === deserialize) { - xhr.setRequestHeader("Accept", "application/json, text/*") - } - if (args.withCredentials) xhr.withCredentials = args.withCredentials - for (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) { - xhr.setRequestHeader(key, args.headers[key]) - } - if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr - xhr.onreadystatechange = function() { - // Don't throw errors on xhr.abort(). XMLHttpRequests ends up in a state of - // xhr.status == 0 and xhr.readyState == 4 if aborted after open, but before completion. - if (xhr.status && xhr.readyState === 4) { - try { - var response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args)) - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { - resolve(cast(args.type, response)) - } - else { - var error = new Error(xhr.responseText) - for (var key in response) error[key] = response[key] - reject(error) - } - } - catch (e) { - reject(e) - } - } - } - if (useBody && (args.data != null)) xhr.send(args.data) - else xhr.send() - }) - return args.background === true ? promise0 : finalize(promise0) - } - function jsonp(args, extra) { - var finalize = finalizer() - args = normalize(args, extra) - var promise0 = new Promise(function(resolve, reject) { - var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ - var script = $window.document.createElement("script") - $window[callbackName] = function(data) { - script.parentNode.removeChild(script) - resolve(cast(args.type, data)) - delete $window[callbackName] - } - script.onerror = function() { - script.parentNode.removeChild(script) - reject(new Error("JSONP request failed")) - delete $window[callbackName] - } - if (args.data == null) args.data = {} - args.url = interpolate(args.url, args.data) - args.data[args.callbackKey || "callback"] = callbackName - script.src = assemble(args.url, args.data) - $window.document.documentElement.appendChild(script) - }) - return args.background === true? promise0 : finalize(promise0) - } - function interpolate(url, data) { - if (data == null) return url - var tokens = url.match(/:[^\/]+/gi) || [] - for (var i = 0; i < tokens.length; i++) { - var key = tokens[i].slice(1) - if (data[key] != null) { - url = url.replace(tokens[i], data[key]) - } - } - return url - } - function assemble(url, data) { - var querystring = buildQueryString(data) - if (querystring !== "") { - var prefix = url.indexOf("?") < 0 ? "?" : "&" - url += prefix + querystring - } - return url - } - function deserialize(data) { - try {return data !== "" ? JSON.parse(data) : null} - catch (e) {throw new Error(data)} - } - function extract(xhr) {return xhr.responseText} - function cast(type0, data) { - if (typeof type0 === "function") { - if (Array.isArray(data)) { - for (var i = 0; i < data.length; i++) { - data[i] = new type0(data[i]) - } - } - else return new type0(data) - } - return data - } - return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback} -} -var requestService = _8(window, PromisePolyfill) -var coreRenderer = function($window) { - var $doc = $window.document - var $emptyFragment = $doc.createDocumentFragment() - var onevent - function setEventCallback(callback) {return onevent = callback} - //create - function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) { - for (var i = start; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - insertNode(parent, createNode(vnode, hooks, ns), nextSibling) - } - } - } - function createNode(vnode, hooks, ns) { - var tag = vnode.tag - if (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks) - if (typeof tag === "string") { - switch (tag) { - case "#": return createText(vnode) - case "<": return createHTML(vnode) - case "[": return createFragment(vnode, hooks, ns) - default: return createElement(vnode, hooks, ns) - } - } - else return createComponent(vnode, hooks, ns) - } - function createText(vnode) { - return vnode.dom = $doc.createTextNode(vnode.children) - } - function createHTML(vnode) { - var match1 = vnode.children.match(/^\s*?<(\w+)/im) || [] - var parent = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"}[match1[1]] || "div" - var temp = $doc.createElement(parent) - temp.innerHTML = vnode.children - vnode.dom = temp.firstChild - vnode.domSize = temp.childNodes.length - var fragment = $doc.createDocumentFragment() - var child - while (child = temp.firstChild) { - fragment.appendChild(child) - } - return fragment - } - function createFragment(vnode, hooks, ns) { - var fragment = $doc.createDocumentFragment() - if (vnode.children != null) { - var children = vnode.children - createNodes(fragment, children, 0, children.length, hooks, null, ns) - } - vnode.dom = fragment.firstChild - vnode.domSize = fragment.childNodes.length - return fragment - } - function createElement(vnode, hooks, ns) { - var tag = vnode.tag - switch (vnode.tag) { - case "svg": ns = "http://www.w3.org/2000/svg"; break - case "math": ns = "http://www.w3.org/1998/Math/MathML"; break - } - var attrs2 = vnode.attrs - var is = attrs2 && attrs2.is - var element = ns ? - is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) : - is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag) - vnode.dom = element - if (attrs2 != null) { - setAttrs(vnode, attrs2, ns) - } - if (vnode.attrs != null && vnode.attrs.contenteditable != null) { - setContentEditable(vnode) - } - else { - if (vnode.text != null) { - if (vnode.text !== "") element.textContent = vnode.text - else vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] - } - if (vnode.children != null) { - var children = vnode.children - createNodes(element, children, 0, children.length, hooks, null, ns) - setLateAttrs(vnode) - } - } - return element - } - function createComponent(vnode, hooks, ns) { - vnode.state = Object.create(vnode.tag) - var view = vnode.tag.view - if (view.reentrantLock != null) return $emptyFragment - view.reentrantLock = true - initLifecycle(vnode.tag, vnode, hooks) - vnode.instance = Vnode.normalize(view.call(vnode.state, vnode)) - view.reentrantLock = null - if (vnode.instance != null) { - if (vnode.instance === vnode) throw Error("A view cannot return the vnode it received as arguments") - var element = createNode(vnode.instance, hooks, ns) - vnode.dom = vnode.instance.dom - vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0 - return element - } - else { - vnode.domSize = 0 - return $emptyFragment - } - } - //update - function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) { - if (old === vnodes || old == null && vnodes == null) return - else if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined) - else if (vnodes == null) removeNodes(old, 0, old.length, vnodes) - else { - if (old.length === vnodes.length) { - var isUnkeyed = false - for (var i = 0; i < vnodes.length; i++) { - if (vnodes[i] != null && old[i] != null) { - isUnkeyed = vnodes[i].key == null && old[i].key == null - break - } - } - if (isUnkeyed) { - for (var i = 0; i < old.length; i++) { - if (old[i] === vnodes[i]) continue - else if (old[i] == null && vnodes[i] != null) insertNode(parent, createNode(vnodes[i], hooks, ns), getNextSibling(old, i + 1, nextSibling)) - else if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes) - else updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), false, ns) - } - return - } - } - var recycling = isRecyclable(old, vnodes) - if (recycling) old = old.concat(old.pool) - var oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map - while (oldEnd >= oldStart && end >= start) { - var o = old[oldStart], v = vnodes[start] - if (o === v && !recycling) oldStart++, start++ - else if (o == null) oldStart++ - else if (v == null) start++ - else if (o.key === v.key) { - oldStart++, start++ - updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), recycling, ns) - if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) - } - else { - var o = old[oldEnd] - if (o === v && !recycling) oldEnd--, start++ - else if (o == null) oldEnd-- - else if (v == null) start++ - else if (o.key === v.key) { - updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - if (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling)) - oldEnd--, start++ - } - else break - } - } - while (oldEnd >= oldStart && end >= start) { - var o = old[oldEnd], v = vnodes[end] - if (o === v && !recycling) oldEnd--, end-- - else if (o == null) oldEnd-- - else if (v == null) end-- - else if (o.key === v.key) { - updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) - if (o.dom != null) nextSibling = o.dom - oldEnd--, end-- - } - else { - if (!map) map = getKeyMap(old, oldEnd) - if (v != null) { - var oldIndex = map[v.key] - if (oldIndex != null) { - var movable = old[oldIndex] - updateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - insertNode(parent, toFragment(movable), nextSibling) - old[oldIndex].skip = true - if (movable.dom != null) nextSibling = movable.dom - } - else { - var dom = createNode(v, hooks, undefined) - insertNode(parent, dom, nextSibling) - nextSibling = dom - } - } - end-- - } - if (end < start) break - } - createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) - removeNodes(old, oldStart, oldEnd + 1, vnodes) - } - } - function updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) { - var oldTag = old.tag, tag = vnode.tag - if (oldTag === tag) { - vnode.state = old.state - vnode.events = old.events - if (shouldUpdate(vnode, old)) return - if (vnode.attrs != null) { - updateLifecycle(vnode.attrs, vnode, hooks, recycling) - } - if (typeof oldTag === "string") { - switch (oldTag) { - case "#": updateText(old, vnode); break - case "<": updateHTML(parent, old, vnode, nextSibling); break - case "[": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break - default: updateElement(old, vnode, hooks, ns) - } - } - else updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) - } - else { - removeNode(old, null) - insertNode(parent, createNode(vnode, hooks, ns), nextSibling) - } - } - function updateText(old, vnode) { - if (old.children.toString() !== vnode.children.toString()) { - old.dom.nodeValue = vnode.children - } - vnode.dom = old.dom - } - function updateHTML(parent, old, vnode, nextSibling) { - if (old.children !== vnode.children) { - toFragment(old) - insertNode(parent, createHTML(vnode), nextSibling) - } - else vnode.dom = old.dom, vnode.domSize = old.domSize - } - function updateFragment(parent, old, vnode, hooks, nextSibling, ns) { - updateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns) - var domSize = 0, children = vnode.children - vnode.dom = null - if (children != null) { - for (var i = 0; i < children.length; i++) { - var child = children[i] - if (child != null && child.dom != null) { - if (vnode.dom == null) vnode.dom = child.dom - domSize += child.domSize || 1 - } - } - if (domSize !== 1) vnode.domSize = domSize - } - } - function updateElement(old, vnode, hooks, ns) { - var element = vnode.dom = old.dom - switch (vnode.tag) { - case "svg": ns = "http://www.w3.org/2000/svg"; break - case "math": ns = "http://www.w3.org/1998/Math/MathML"; break - } - if (vnode.tag === "textarea") { - if (vnode.attrs == null) vnode.attrs = {} - if (vnode.text != null) { - vnode.attrs.value = vnode.text //FIXME handle0 multiple children - vnode.text = undefined - } - } - updateAttrs(vnode, old.attrs, vnode.attrs, ns) - if (vnode.attrs != null && vnode.attrs.contenteditable != null) { - setContentEditable(vnode) - } - else if (old.text != null && vnode.text != null && vnode.text !== "") { - if (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text - } - else { - if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)] - if (vnode.text != null) vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] - updateNodes(element, old.children, vnode.children, hooks, null, ns) - } - } - function updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) { - vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode)) - updateLifecycle(vnode.tag, vnode, hooks, recycling) - if (vnode.instance != null) { - if (old.instance == null) insertNode(parent, createNode(vnode.instance, hooks, ns), nextSibling) - else updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns) - vnode.dom = vnode.instance.dom - vnode.domSize = vnode.instance.domSize - } - else if (old.instance != null) { - removeNode(old.instance, null) - vnode.dom = undefined - vnode.domSize = 0 - } - else { - vnode.dom = old.dom - vnode.domSize = old.domSize - } - } - function isRecyclable(old, vnodes) { - if (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) { - var oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0 - var poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0 - var vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0 - if (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) { - return true - } - } - return false - } - function getKeyMap(vnodes, end) { - var map = {}, i = 0 - for (var i = 0; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - var key2 = vnode.key - if (key2 != null) map[key2] = i - } - } - return map - } - function toFragment(vnode) { - var count0 = vnode.domSize - if (count0 != null || vnode.dom == null) { - var fragment = $doc.createDocumentFragment() - if (count0 > 0) { - var dom = vnode.dom - while (--count0) fragment.appendChild(dom.nextSibling) - fragment.insertBefore(dom, fragment.firstChild) - } - return fragment - } - else return vnode.dom - } - function getNextSibling(vnodes, i, nextSibling) { - for (; i < vnodes.length; i++) { - if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom - } - return nextSibling - } - function insertNode(parent, dom, nextSibling) { - if (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling) - else parent.appendChild(dom) - } - function setContentEditable(vnode) { - var children = vnode.children - if (children != null && children.length === 1 && children[0].tag === "<") { - var content = children[0].children - if (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content - } - else if (vnode.text != null || children != null && children.length !== 0) throw new Error("Child node of a contenteditable must be trusted") - } - //remove - function removeNodes(vnodes, start, end, context) { - for (var i = start; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - if (vnode.skip) vnode.skip = false - else removeNode(vnode, context) - } - } - } - function removeNode(vnode, context) { - var expected = 1, called = 0 - if (vnode.attrs && vnode.attrs.onbeforeremove) { - var result = vnode.attrs.onbeforeremove.call(vnode.state, vnode) - if (result != null && typeof result.then === "function") { - expected++ - result.then(continuation, continuation) - } - } - if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) { - var result = vnode.tag.onbeforeremove.call(vnode.state, vnode) - if (result != null && typeof result.then === "function") { - expected++ - result.then(continuation, continuation) - } - } - continuation() - function continuation() { - if (++called === expected) { - onremove(vnode) - if (vnode.dom) { - var count0 = vnode.domSize || 1 - if (count0 > 1) { - var dom = vnode.dom - while (--count0) { - removeNodeFromDOM(dom.nextSibling) - } - } - removeNodeFromDOM(vnode.dom) - if (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === "string") { //TODO test custom elements - if (!context.pool) context.pool = [vnode] - else context.pool.push(vnode) - } - } - } - } - } - function removeNodeFromDOM(node) { - var parent = node.parentNode - if (parent != null) parent.removeChild(node) - } - function onremove(vnode) { - if (vnode.attrs && vnode.attrs.onremove) vnode.attrs.onremove.call(vnode.state, vnode) - if (typeof vnode.tag !== "string" && vnode.tag.onremove) vnode.tag.onremove.call(vnode.state, vnode) - if (vnode.instance != null) onremove(vnode.instance) - else { - var children = vnode.children - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - var child = children[i] - if (child != null) onremove(child) - } - } - } - } - //attrs2 - function setAttrs(vnode, attrs2, ns) { - for (var key2 in attrs2) { - setAttr(vnode, key2, null, attrs2[key2], ns) - } - } - function setAttr(vnode, key2, old, value, ns) { - var element = vnode.dom - if (key2 === "key" || key2 === "is" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== "object" || typeof value === "undefined" || isLifecycleMethod(key2)) return - var nsLastIndex = key2.indexOf(":") - if (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === "xlink") { - element.setAttributeNS("http://www.w3.org/1999/xlink", key2.slice(nsLastIndex + 1), value) - } - else if (key2[0] === "o" && key2[1] === "n" && typeof value === "function") updateEvent(vnode, key2, value) - else if (key2 === "style") updateStyle(element, old, value) - else if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) { - //setting input[value] to same value by typing on focused element moves cursor to end in Chrome - if (vnode.tag === "input" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return - //setting select[value] to same value while having select open blinks select dropdown in Chrome - if (vnode.tag === "select" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return - //setting option[value] to same value while having select open blinks select dropdown in Chrome - if (vnode.tag === "option" && key2 === "value" && vnode.dom.value === value) return - element[key2] = value - } - else { - if (typeof value === "boolean") { - if (value) element.setAttribute(key2, "") - else element.removeAttribute(key2) - } - else element.setAttribute(key2 === "className" ? "class" : key2, value) - } - } - function setLateAttrs(vnode) { - var attrs2 = vnode.attrs - if (vnode.tag === "select" && attrs2 != null) { - if ("value" in attrs2) setAttr(vnode, "value", null, attrs2.value, undefined) - if ("selectedIndex" in attrs2) setAttr(vnode, "selectedIndex", null, attrs2.selectedIndex, undefined) - } - } - function updateAttrs(vnode, old, attrs2, ns) { - if (attrs2 != null) { - for (var key2 in attrs2) { - setAttr(vnode, key2, old && old[key2], attrs2[key2], ns) - } - } - if (old != null) { - for (var key2 in old) { - if (attrs2 == null || !(key2 in attrs2)) { - if (key2 === "className") key2 = "class" - if (key2[0] === "o" && key2[1] === "n" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined) - else if (key2 !== "key") vnode.dom.removeAttribute(key2) - } - } - } - } - function isFormAttribute(vnode, attr) { - return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode.dom === $doc.activeElement - } - function isLifecycleMethod(attr) { - return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate" - } - function isAttribute(attr) { - return attr === "href" || attr === "list" || attr === "form" || attr === "width" || attr === "height"// || attr === "type" - } - function isCustomElement(vnode){ - return vnode.attrs.is || vnode.tag.indexOf("-") > -1 - } - function hasIntegrationMethods(source) { - return source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove) - } - //style - function updateStyle(element, old, style) { - if (old === style) element.style.cssText = "", old = null - if (style == null) element.style.cssText = "" - else if (typeof style === "string") element.style.cssText = style - else { - if (typeof old === "string") element.style.cssText = "" - for (var key2 in style) { - element.style[key2] = style[key2] - } - if (old != null && typeof old !== "string") { - for (var key2 in old) { - if (!(key2 in style)) element.style[key2] = "" - } - } - } - } - //event - function updateEvent(vnode, key2, value) { - var element = vnode.dom - var callback = typeof onevent !== "function" ? value : function(e) { - var result = value.call(element, e) - onevent.call(element, e) - return result - } - if (key2 in element) element[key2] = typeof value === "function" ? callback : null - else { - var eventName = key2.slice(2) - if (vnode.events === undefined) vnode.events = {} - if (vnode.events[key2] === callback) return - if (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false) - if (typeof value === "function") { - vnode.events[key2] = callback - element.addEventListener(eventName, vnode.events[key2], false) - } - } - } - //lifecycle - function initLifecycle(source, vnode, hooks) { - if (typeof source.oninit === "function") source.oninit.call(vnode.state, vnode) - if (typeof source.oncreate === "function") hooks.push(source.oncreate.bind(vnode.state, vnode)) - } - function updateLifecycle(source, vnode, hooks, recycling) { - if (recycling) initLifecycle(source, vnode, hooks) - else if (typeof source.onupdate === "function") hooks.push(source.onupdate.bind(vnode.state, vnode)) - } - function shouldUpdate(vnode, old) { - var forceVnodeUpdate, forceComponentUpdate - if (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === "function") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old) - if (typeof vnode.tag !== "string" && typeof vnode.tag.onbeforeupdate === "function") forceComponentUpdate = vnode.tag.onbeforeupdate.call(vnode.state, vnode, old) - if (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) { - vnode.dom = old.dom - vnode.domSize = old.domSize - vnode.instance = old.instance - return true - } - return false - } - function render(dom, vnodes) { - if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.") - var hooks = [] - var active = $doc.activeElement - // First time0 rendering into a node clears it out - if (dom.vnodes == null) dom.textContent = "" - if (!Array.isArray(vnodes)) vnodes = [vnodes] - updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), hooks, null, undefined) - dom.vnodes = vnodes - for (var i = 0; i < hooks.length; i++) hooks[i]() - if ($doc.activeElement !== active) active.focus() - } - return {render: render, setEventCallback: setEventCallback} -} -function throttle(callback) { - //60fps translates to 16.6ms, round it down since setTimeout requires int - var time = 16 - var last = 0, pending = null - var timeout = typeof requestAnimationFrame === "function" ? requestAnimationFrame : setTimeout - return function() { - var now = Date.now() - if (last === 0 || now - last >= time) { - last = now - callback() - } - else if (pending === null) { - pending = timeout(function() { - pending = null - callback() - last = Date.now() - }, time - (now - last)) - } - } -} -var _11 = function($window) { - var renderService = coreRenderer($window) - renderService.setEventCallback(function(e) { - if (e.redraw !== false) redraw() - }) - - var callbacks = [] - function subscribe(key1, callback) { - unsubscribe(key1) - callbacks.push(key1, throttle(callback)) - } - function unsubscribe(key1) { - var index = callbacks.indexOf(key1) - if (index > -1) callbacks.splice(index, 2) - } - function redraw() { - for (var i = 1; i < callbacks.length; i += 2) { - callbacks[i]() - } - } - return {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render} -} -var redrawService = _11(window) -requestService.setCompletionCallback(redrawService.redraw) -var _16 = function(redrawService0) { - return function(root, component) { - if (component === null) { - redrawService0.render(root, []) - redrawService0.unsubscribe(root) - return - } - - if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode") - - var run0 = function() { - redrawService0.render(root, Vnode(component)) - } - redrawService0.subscribe(root, run0) - redrawService0.redraw() - } -} -m.mount = _16(redrawService) -var Promise = PromisePolyfill -var parseQueryString = function(string) { - if (string === "" || string == null) return {} - if (string.charAt(0) === "?") string = string.slice(1) - var entries = string.split("&"), data0 = {}, counters = {} - for (var i = 0; i < entries.length; i++) { - var entry = entries[i].split("=") - var key5 = decodeURIComponent(entry[0]) - var value = entry.length === 2 ? decodeURIComponent(entry[1]) : "" - if (value === "true") value = true - else if (value === "false") value = false - var levels = key5.split(/\]\[?|\[/) - var cursor = data0 - if (key5.indexOf("[") > -1) levels.pop() - for (var j = 0; j < levels.length; j++) { - var level = levels[j], nextLevel = levels[j + 1] - var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10)) - var isValue = j === levels.length - 1 - if (level === "") { - var key5 = levels.slice(0, j).join() - if (counters[key5] == null) counters[key5] = 0 - level = counters[key5]++ - } - if (cursor[level] == null) { - cursor[level] = isValue ? value : isNumber ? [] : {} - } - cursor = cursor[level] - } - } - return data0 -} -var coreRouter = function($window) { - var supportsPushState = typeof $window.history.pushState === "function" - var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout - function normalize1(fragment0) { - var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) - if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data - return data - } - var asyncId - function debounceAsync(callback0) { - return function() { - if (asyncId != null) return - asyncId = callAsync0(function() { - asyncId = null - callback0() - }) - } - } - function parsePath(path, queryData, hashData) { - var queryIndex = path.indexOf("?") - var hashIndex = path.indexOf("#") - var pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length - if (queryIndex > -1) { - var queryEnd = hashIndex > -1 ? hashIndex : path.length - var queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd)) - for (var key4 in queryParams) queryData[key4] = queryParams[key4] - } - if (hashIndex > -1) { - var hashParams = parseQueryString(path.slice(hashIndex + 1)) - for (var key4 in hashParams) hashData[key4] = hashParams[key4] - } - return path.slice(0, pathEnd) - } - var router = {prefix: "#!"} - router.getPath = function() { - var type2 = router.prefix.charAt(0) - switch (type2) { - case "#": return normalize1("hash").slice(router.prefix.length) - case "?": return normalize1("search").slice(router.prefix.length) + normalize1("hash") - default: return normalize1("pathname").slice(router.prefix.length) + normalize1("search") + normalize1("hash") - } - } - router.setPath = function(path, data, options) { - var queryData = {}, hashData = {} - path = parsePath(path, queryData, hashData) - if (data != null) { - for (var key4 in data) queryData[key4] = data[key4] - path = path.replace(/:([^\/]+)/g, function(match2, token) { - delete queryData[token] - return data[token] - }) - } - var query = buildQueryString(queryData) - if (query) path += "?" + query - var hash = buildQueryString(hashData) - if (hash) path += "#" + hash - if (supportsPushState) { - var state = options ? options.state : null - var title = options ? options.title : null - $window.onpopstate() - if (options && options.replace) $window.history.replaceState(state, title, router.prefix + path) - else $window.history.pushState(state, title, router.prefix + path) - } - else $window.location.href = router.prefix + path - } - router.defineRoutes = function(routes, resolve, reject) { - function resolveRoute() { - var path = router.getPath() - var params = {} - var pathname = parsePath(path, params, params) - - var state = $window.history.state - if (state != null) { - for (var k in state) params[k] = state[k] - } - for (var route0 in routes) { - var matcher = new RegExp("^" + route0.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$") - if (matcher.test(pathname)) { - pathname.replace(matcher, function() { - var keys = route0.match(/:[^\/]+/g) || [] - var values = [].slice.call(arguments, 1, -2) - for (var i = 0; i < keys.length; i++) { - params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i]) - } - resolve(routes[route0], params, path, route0) - }) - return - } - } - reject(path, params) - } - - if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute) - else if (router.prefix.charAt(0) === "#") $window.onhashchange = resolveRoute - resolveRoute() - } - - return router -} -var _20 = function($window, redrawService0) { - var routeService = coreRouter($window) - var identity = function(v) {return v} - var render1, component, attrs3, currentPath, lastUpdate - var route = function(root, defaultRoute, routes) { - if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined") - var run1 = function() { - if (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3))) - } - var bail = function() { - routeService.setPath(defaultRoute, null, {replace: true}) - } - routeService.defineRoutes(routes, function(payload, params, path) { - var update = lastUpdate = function(routeResolver, comp) { - if (update !== lastUpdate) return - component = comp != null && typeof comp.view === "function" ? comp : "div", attrs3 = params, currentPath = path, lastUpdate = null - render1 = (routeResolver.render || identity).bind(routeResolver) - run1() - } - if (payload.view) update({}, payload) - else { - if (payload.onmatch) { - Promise.resolve(payload.onmatch(params, path)).then(function(resolved) { - update(payload, resolved) - }, bail) - } - else update(payload, "div") - } - }, bail) - redrawService0.subscribe(root, run1) - } - route.set = function(path, data, options) { - if (lastUpdate != null) options = {replace: true} - lastUpdate = null - routeService.setPath(path, data, options) - } - route.get = function() {return currentPath} - route.prefix = function(prefix0) {routeService.prefix = prefix0} - route.link = function(vnode1) { - vnode1.dom.setAttribute("href", routeService.prefix + vnode1.attrs.href) - vnode1.dom.onclick = function(e) { - if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return - e.preventDefault() - e.redraw = false - var href = this.getAttribute("href") - if (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length) - route.set(href, undefined, undefined) - } - } - route.param = function(key3) { - if(typeof attrs3 !== "undefined" && typeof key3 !== "undefined") return attrs3[key3] - return attrs3 - } - return route -} -m.route = _20(window, redrawService) -m.withAttr = function(attrName, callback1, context) { - return function(e) { - callback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName)) - } -} -var _28 = coreRenderer(window) -m.render = _28.render -m.redraw = redrawService.redraw -m.request = requestService.request -m.jsonp = requestService.jsonp -m.parseQueryString = parseQueryString -m.buildQueryString = buildQueryString -m.version = "1.0.0" -m.vnode = Vnode -if (typeof module !== "undefined") module["exports"] = m -else window.m = m +(function (global,setImmediate){(function (){ +new function() { + +function Vnode(tag, key, attrs0, children, text, dom) { + return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false} } -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) +Vnode.normalize = function(node) { + if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined) + if (node != null && typeof node !== "object") return Vnode("#", undefined, undefined, node === false ? "" : node, undefined, undefined) + return node +} +Vnode.normalizeChildren = function normalizeChildren(children) { + for (var i = 0; i < children.length; i++) { + children[i] = Vnode.normalize(children[i]) + } + return children +} +var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g +var selectorCache = {} +function hyperscript(selector) { + if (selector == null || typeof selector !== "string" && typeof selector.view !== "function") { + throw Error("The selector must be either a string or a component."); + } + if (typeof selector === "string" && selectorCache[selector] === undefined) { + var match, tag, classes = [], attributes = {} + while (match = selectorParser.exec(selector)) { + var type = match[1], value = match[2] + if (type === "" && value !== "") tag = value + else if (type === "#") attributes.id = value + else if (type === ".") classes.push(value) + else if (match[3][0] === "[") { + var attrValue = match[6] + if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\") + if (match[4] === "class") classes.push(attrValue) + else attributes[match[4]] = attrValue || true + } + } + if (classes.length > 0) attributes.className = classes.join(" ") + selectorCache[selector] = function(attrs, children) { + var hasAttrs = false, childList, text + var className = attrs.className || attrs.class + for (var key in attributes) attrs[key] = attributes[key] + if (className !== undefined) { + if (attrs.class !== undefined) { + attrs.class = undefined + attrs.className = className + } + if (attributes.className !== undefined) attrs.className = attributes.className + " " + className + } + for (var key in attrs) { + if (key !== "key") { + hasAttrs = true + break + } + } + if (Array.isArray(children) && children.length == 1 && children[0] != null && children[0].tag === "#") text = children[0].children + else childList = children + return Vnode(tag || "div", attrs.key, hasAttrs ? attrs : undefined, childList, text, undefined) + } + } + var attrs, children, childrenIndex + if (arguments[1] == null || typeof arguments[1] === "object" && arguments[1].tag === undefined && !Array.isArray(arguments[1])) { + attrs = arguments[1] + childrenIndex = 2 + } + else childrenIndex = 1 + if (arguments.length === childrenIndex + 1) { + children = Array.isArray(arguments[childrenIndex]) ? arguments[childrenIndex] : [arguments[childrenIndex]] + } + else { + children = [] + for (var i = childrenIndex; i < arguments.length; i++) children.push(arguments[i]) + } + if (typeof selector === "string") return selectorCache[selector](attrs || {}, Vnode.normalizeChildren(children)) + return Vnode(selector, attrs && attrs.key, attrs || {}, Vnode.normalizeChildren(children), undefined, undefined) +} +hyperscript.trust = function(html) { + if (html == null) html = "" + return Vnode("<", undefined, undefined, html, undefined, undefined) +} +hyperscript.fragment = function(attrs1, children) { + return Vnode("[", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined) +} +var m = hyperscript +/** @constructor */ +var PromisePolyfill = function(executor) { + if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`") + if (typeof executor !== "function") throw new TypeError("executor must be a function") + var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false) + var instance = self._instance = {resolvers: resolvers, rejectors: rejectors} + var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout + function handler(list, shouldAbsorb) { + return function execute(value) { + var then + try { + if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") { + if (value === self) throw new TypeError("Promise can't be resolved w/ itself") + executeOnce(then.bind(value)) + } + else { + callAsync(function() { + if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value) + for (var i = 0; i < list.length; i++) list[i](value) + resolvers.length = 0, rejectors.length = 0 + instance.state = shouldAbsorb + instance.retry = function() {execute(value)} + }) + } + } + catch (e) { + rejectCurrent(e) + } + } + } + function executeOnce(then) { + var runs = 0 + function run(fn) { + return function(value) { + if (runs++ > 0) return + fn(value) + } + } + var onerror = run(rejectCurrent) + try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)} + } + executeOnce(executor) +} +PromisePolyfill.prototype.then = function(onFulfilled, onRejection) { + var self = this, instance = self._instance + function handle(callback, list, next, state) { + list.push(function(value) { + if (typeof callback !== "function") next(value) + else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)} + }) + if (typeof instance.retry === "function" && state === instance.state) instance.retry() + } + var resolveNext, rejectNext + var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject}) + handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false) + return promise +} +PromisePolyfill.prototype.catch = function(onRejection) { + return this.then(null, onRejection) +} +PromisePolyfill.resolve = function(value) { + if (value instanceof PromisePolyfill) return value + return new PromisePolyfill(function(resolve) {resolve(value)}) +} +PromisePolyfill.reject = function(value) { + return new PromisePolyfill(function(resolve, reject) {reject(value)}) +} +PromisePolyfill.all = function(list) { + return new PromisePolyfill(function(resolve, reject) { + var total = list.length, count = 0, values = [] + if (list.length === 0) resolve([]) + else for (var i = 0; i < list.length; i++) { + (function(i) { + function consume(value) { + count++ + values[i] = value + if (count === total) resolve(values) + } + if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") { + list[i].then(consume, reject) + } + else consume(list[i]) + })(i) + } + }) +} +PromisePolyfill.race = function(list) { + return new PromisePolyfill(function(resolve, reject) { + for (var i = 0; i < list.length; i++) { + list[i].then(resolve, reject) + } + }) +} +if (typeof window !== "undefined") { + if (typeof window.Promise === "undefined") window.Promise = PromisePolyfill + var PromisePolyfill = window.Promise +} else if (typeof global !== "undefined") { + if (typeof global.Promise === "undefined") global.Promise = PromisePolyfill + var PromisePolyfill = global.Promise +} else { +} +var buildQueryString = function(object) { + if (Object.prototype.toString.call(object) !== "[object Object]") return "" + var args = [] + for (var key0 in object) { + destructure(key0, object[key0]) + } + return args.join("&") + function destructure(key0, value) { + if (Array.isArray(value)) { + for (var i = 0; i < value.length; i++) { + destructure(key0 + "[" + i + "]", value[i]) + } + } + else if (Object.prototype.toString.call(value) === "[object Object]") { + for (var i in value) { + destructure(key0 + "[" + i + "]", value[i]) + } + } + else args.push(encodeURIComponent(key0) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : "")) + } +} +var _8 = function($window, Promise) { + var callbackCount = 0 + var oncompletion + function setCompletionCallback(callback) {oncompletion = callback} + function finalizer() { + var count = 0 + function complete() {if (--count === 0 && typeof oncompletion === "function") oncompletion()} + return function finalize(promise0) { + var then0 = promise0.then + promise0.then = function() { + count++ + var next = then0.apply(promise0, arguments) + next.then(complete, function(e) { + complete() + if (count === 0) throw e + }) + return finalize(next) + } + return promise0 + } + } + function normalize(args, extra) { + if (typeof args === "string") { + var url = args + args = extra || {} + if (args.url == null) args.url = url + } + return args + } + function request(args, extra) { + var finalize = finalizer() + args = normalize(args, extra) + var promise0 = new Promise(function(resolve, reject) { + if (args.method == null) args.method = "GET" + args.method = args.method.toUpperCase() + var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE" + if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify + if (typeof args.deserialize !== "function") args.deserialize = deserialize + if (typeof args.extract !== "function") args.extract = extract + args.url = interpolate(args.url, args.data) + if (useBody) args.data = args.serialize(args.data) + else args.url = assemble(args.url, args.data) + var xhr = new $window.XMLHttpRequest() + xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) + if (args.serialize === JSON.stringify && useBody) { + xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8") + } + if (args.deserialize === deserialize) { + xhr.setRequestHeader("Accept", "application/json, text/*") + } + if (args.withCredentials) xhr.withCredentials = args.withCredentials + for (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) { + xhr.setRequestHeader(key, args.headers[key]) + } + if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr + xhr.onreadystatechange = function() { + // Don't throw errors on xhr.abort(). XMLHttpRequests ends up in a state of + // xhr.status == 0 and xhr.readyState == 4 if aborted after open, but before completion. + if (xhr.status && xhr.readyState === 4) { + try { + var response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args)) + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { + resolve(cast(args.type, response)) + } + else { + var error = new Error(xhr.responseText) + for (var key in response) error[key] = response[key] + reject(error) + } + } + catch (e) { + reject(e) + } + } + } + if (useBody && (args.data != null)) xhr.send(args.data) + else xhr.send() + }) + return args.background === true ? promise0 : finalize(promise0) + } + function jsonp(args, extra) { + var finalize = finalizer() + args = normalize(args, extra) + var promise0 = new Promise(function(resolve, reject) { + var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ + var script = $window.document.createElement("script") + $window[callbackName] = function(data) { + script.parentNode.removeChild(script) + resolve(cast(args.type, data)) + delete $window[callbackName] + } + script.onerror = function() { + script.parentNode.removeChild(script) + reject(new Error("JSONP request failed")) + delete $window[callbackName] + } + if (args.data == null) args.data = {} + args.url = interpolate(args.url, args.data) + args.data[args.callbackKey || "callback"] = callbackName + script.src = assemble(args.url, args.data) + $window.document.documentElement.appendChild(script) + }) + return args.background === true? promise0 : finalize(promise0) + } + function interpolate(url, data) { + if (data == null) return url + var tokens = url.match(/:[^\/]+/gi) || [] + for (var i = 0; i < tokens.length; i++) { + var key = tokens[i].slice(1) + if (data[key] != null) { + url = url.replace(tokens[i], data[key]) + } + } + return url + } + function assemble(url, data) { + var querystring = buildQueryString(data) + if (querystring !== "") { + var prefix = url.indexOf("?") < 0 ? "?" : "&" + url += prefix + querystring + } + return url + } + function deserialize(data) { + try {return data !== "" ? JSON.parse(data) : null} + catch (e) {throw new Error(data)} + } + function extract(xhr) {return xhr.responseText} + function cast(type0, data) { + if (typeof type0 === "function") { + if (Array.isArray(data)) { + for (var i = 0; i < data.length; i++) { + data[i] = new type0(data[i]) + } + } + else return new type0(data) + } + return data + } + return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback} +} +var requestService = _8(window, PromisePolyfill) +var coreRenderer = function($window) { + var $doc = $window.document + var $emptyFragment = $doc.createDocumentFragment() + var onevent + function setEventCallback(callback) {return onevent = callback} + //create + function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) { + for (var i = start; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + insertNode(parent, createNode(vnode, hooks, ns), nextSibling) + } + } + } + function createNode(vnode, hooks, ns) { + var tag = vnode.tag + if (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks) + if (typeof tag === "string") { + switch (tag) { + case "#": return createText(vnode) + case "<": return createHTML(vnode) + case "[": return createFragment(vnode, hooks, ns) + default: return createElement(vnode, hooks, ns) + } + } + else return createComponent(vnode, hooks, ns) + } + function createText(vnode) { + return vnode.dom = $doc.createTextNode(vnode.children) + } + function createHTML(vnode) { + var match1 = vnode.children.match(/^\s*?<(\w+)/im) || [] + var parent = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"}[match1[1]] || "div" + var temp = $doc.createElement(parent) + temp.innerHTML = vnode.children + vnode.dom = temp.firstChild + vnode.domSize = temp.childNodes.length + var fragment = $doc.createDocumentFragment() + var child + while (child = temp.firstChild) { + fragment.appendChild(child) + } + return fragment + } + function createFragment(vnode, hooks, ns) { + var fragment = $doc.createDocumentFragment() + if (vnode.children != null) { + var children = vnode.children + createNodes(fragment, children, 0, children.length, hooks, null, ns) + } + vnode.dom = fragment.firstChild + vnode.domSize = fragment.childNodes.length + return fragment + } + function createElement(vnode, hooks, ns) { + var tag = vnode.tag + switch (vnode.tag) { + case "svg": ns = "http://www.w3.org/2000/svg"; break + case "math": ns = "http://www.w3.org/1998/Math/MathML"; break + } + var attrs2 = vnode.attrs + var is = attrs2 && attrs2.is + var element = ns ? + is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) : + is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag) + vnode.dom = element + if (attrs2 != null) { + setAttrs(vnode, attrs2, ns) + } + if (vnode.attrs != null && vnode.attrs.contenteditable != null) { + setContentEditable(vnode) + } + else { + if (vnode.text != null) { + if (vnode.text !== "") element.textContent = vnode.text + else vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] + } + if (vnode.children != null) { + var children = vnode.children + createNodes(element, children, 0, children.length, hooks, null, ns) + setLateAttrs(vnode) + } + } + return element + } + function createComponent(vnode, hooks, ns) { + vnode.state = Object.create(vnode.tag) + var view = vnode.tag.view + if (view.reentrantLock != null) return $emptyFragment + view.reentrantLock = true + initLifecycle(vnode.tag, vnode, hooks) + vnode.instance = Vnode.normalize(view.call(vnode.state, vnode)) + view.reentrantLock = null + if (vnode.instance != null) { + if (vnode.instance === vnode) throw Error("A view cannot return the vnode it received as arguments") + var element = createNode(vnode.instance, hooks, ns) + vnode.dom = vnode.instance.dom + vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0 + return element + } + else { + vnode.domSize = 0 + return $emptyFragment + } + } + //update + function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) { + if (old === vnodes || old == null && vnodes == null) return + else if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined) + else if (vnodes == null) removeNodes(old, 0, old.length, vnodes) + else { + if (old.length === vnodes.length) { + var isUnkeyed = false + for (var i = 0; i < vnodes.length; i++) { + if (vnodes[i] != null && old[i] != null) { + isUnkeyed = vnodes[i].key == null && old[i].key == null + break + } + } + if (isUnkeyed) { + for (var i = 0; i < old.length; i++) { + if (old[i] === vnodes[i]) continue + else if (old[i] == null && vnodes[i] != null) insertNode(parent, createNode(vnodes[i], hooks, ns), getNextSibling(old, i + 1, nextSibling)) + else if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes) + else updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), false, ns) + } + return + } + } + var recycling = isRecyclable(old, vnodes) + if (recycling) old = old.concat(old.pool) + var oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map + while (oldEnd >= oldStart && end >= start) { + var o = old[oldStart], v = vnodes[start] + if (o === v && !recycling) oldStart++, start++ + else if (o == null) oldStart++ + else if (v == null) start++ + else if (o.key === v.key) { + oldStart++, start++ + updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), recycling, ns) + if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) + } + else { + var o = old[oldEnd] + if (o === v && !recycling) oldEnd--, start++ + else if (o == null) oldEnd-- + else if (v == null) start++ + else if (o.key === v.key) { + updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + if (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling)) + oldEnd--, start++ + } + else break + } + } + while (oldEnd >= oldStart && end >= start) { + var o = old[oldEnd], v = vnodes[end] + if (o === v && !recycling) oldEnd--, end-- + else if (o == null) oldEnd-- + else if (v == null) end-- + else if (o.key === v.key) { + updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) + if (o.dom != null) nextSibling = o.dom + oldEnd--, end-- + } + else { + if (!map) map = getKeyMap(old, oldEnd) + if (v != null) { + var oldIndex = map[v.key] + if (oldIndex != null) { + var movable = old[oldIndex] + updateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + insertNode(parent, toFragment(movable), nextSibling) + old[oldIndex].skip = true + if (movable.dom != null) nextSibling = movable.dom + } + else { + var dom = createNode(v, hooks, undefined) + insertNode(parent, dom, nextSibling) + nextSibling = dom + } + } + end-- + } + if (end < start) break + } + createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) + removeNodes(old, oldStart, oldEnd + 1, vnodes) + } + } + function updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) { + var oldTag = old.tag, tag = vnode.tag + if (oldTag === tag) { + vnode.state = old.state + vnode.events = old.events + if (shouldUpdate(vnode, old)) return + if (vnode.attrs != null) { + updateLifecycle(vnode.attrs, vnode, hooks, recycling) + } + if (typeof oldTag === "string") { + switch (oldTag) { + case "#": updateText(old, vnode); break + case "<": updateHTML(parent, old, vnode, nextSibling); break + case "[": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break + default: updateElement(old, vnode, hooks, ns) + } + } + else updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) + } + else { + removeNode(old, null) + insertNode(parent, createNode(vnode, hooks, ns), nextSibling) + } + } + function updateText(old, vnode) { + if (old.children.toString() !== vnode.children.toString()) { + old.dom.nodeValue = vnode.children + } + vnode.dom = old.dom + } + function updateHTML(parent, old, vnode, nextSibling) { + if (old.children !== vnode.children) { + toFragment(old) + insertNode(parent, createHTML(vnode), nextSibling) + } + else vnode.dom = old.dom, vnode.domSize = old.domSize + } + function updateFragment(parent, old, vnode, hooks, nextSibling, ns) { + updateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns) + var domSize = 0, children = vnode.children + vnode.dom = null + if (children != null) { + for (var i = 0; i < children.length; i++) { + var child = children[i] + if (child != null && child.dom != null) { + if (vnode.dom == null) vnode.dom = child.dom + domSize += child.domSize || 1 + } + } + if (domSize !== 1) vnode.domSize = domSize + } + } + function updateElement(old, vnode, hooks, ns) { + var element = vnode.dom = old.dom + switch (vnode.tag) { + case "svg": ns = "http://www.w3.org/2000/svg"; break + case "math": ns = "http://www.w3.org/1998/Math/MathML"; break + } + if (vnode.tag === "textarea") { + if (vnode.attrs == null) vnode.attrs = {} + if (vnode.text != null) { + vnode.attrs.value = vnode.text //FIXME handle0 multiple children + vnode.text = undefined + } + } + updateAttrs(vnode, old.attrs, vnode.attrs, ns) + if (vnode.attrs != null && vnode.attrs.contenteditable != null) { + setContentEditable(vnode) + } + else if (old.text != null && vnode.text != null && vnode.text !== "") { + if (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text + } + else { + if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)] + if (vnode.text != null) vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] + updateNodes(element, old.children, vnode.children, hooks, null, ns) + } + } + function updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) { + vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode)) + updateLifecycle(vnode.tag, vnode, hooks, recycling) + if (vnode.instance != null) { + if (old.instance == null) insertNode(parent, createNode(vnode.instance, hooks, ns), nextSibling) + else updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns) + vnode.dom = vnode.instance.dom + vnode.domSize = vnode.instance.domSize + } + else if (old.instance != null) { + removeNode(old.instance, null) + vnode.dom = undefined + vnode.domSize = 0 + } + else { + vnode.dom = old.dom + vnode.domSize = old.domSize + } + } + function isRecyclable(old, vnodes) { + if (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) { + var oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0 + var poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0 + var vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0 + if (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) { + return true + } + } + return false + } + function getKeyMap(vnodes, end) { + var map = {}, i = 0 + for (var i = 0; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + var key2 = vnode.key + if (key2 != null) map[key2] = i + } + } + return map + } + function toFragment(vnode) { + var count0 = vnode.domSize + if (count0 != null || vnode.dom == null) { + var fragment = $doc.createDocumentFragment() + if (count0 > 0) { + var dom = vnode.dom + while (--count0) fragment.appendChild(dom.nextSibling) + fragment.insertBefore(dom, fragment.firstChild) + } + return fragment + } + else return vnode.dom + } + function getNextSibling(vnodes, i, nextSibling) { + for (; i < vnodes.length; i++) { + if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom + } + return nextSibling + } + function insertNode(parent, dom, nextSibling) { + if (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling) + else parent.appendChild(dom) + } + function setContentEditable(vnode) { + var children = vnode.children + if (children != null && children.length === 1 && children[0].tag === "<") { + var content = children[0].children + if (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content + } + else if (vnode.text != null || children != null && children.length !== 0) throw new Error("Child node of a contenteditable must be trusted") + } + //remove + function removeNodes(vnodes, start, end, context) { + for (var i = start; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + if (vnode.skip) vnode.skip = false + else removeNode(vnode, context) + } + } + } + function removeNode(vnode, context) { + var expected = 1, called = 0 + if (vnode.attrs && vnode.attrs.onbeforeremove) { + var result = vnode.attrs.onbeforeremove.call(vnode.state, vnode) + if (result != null && typeof result.then === "function") { + expected++ + result.then(continuation, continuation) + } + } + if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) { + var result = vnode.tag.onbeforeremove.call(vnode.state, vnode) + if (result != null && typeof result.then === "function") { + expected++ + result.then(continuation, continuation) + } + } + continuation() + function continuation() { + if (++called === expected) { + onremove(vnode) + if (vnode.dom) { + var count0 = vnode.domSize || 1 + if (count0 > 1) { + var dom = vnode.dom + while (--count0) { + removeNodeFromDOM(dom.nextSibling) + } + } + removeNodeFromDOM(vnode.dom) + if (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === "string") { //TODO test custom elements + if (!context.pool) context.pool = [vnode] + else context.pool.push(vnode) + } + } + } + } + } + function removeNodeFromDOM(node) { + var parent = node.parentNode + if (parent != null) parent.removeChild(node) + } + function onremove(vnode) { + if (vnode.attrs && vnode.attrs.onremove) vnode.attrs.onremove.call(vnode.state, vnode) + if (typeof vnode.tag !== "string" && vnode.tag.onremove) vnode.tag.onremove.call(vnode.state, vnode) + if (vnode.instance != null) onremove(vnode.instance) + else { + var children = vnode.children + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + var child = children[i] + if (child != null) onremove(child) + } + } + } + } + //attrs2 + function setAttrs(vnode, attrs2, ns) { + for (var key2 in attrs2) { + setAttr(vnode, key2, null, attrs2[key2], ns) + } + } + function setAttr(vnode, key2, old, value, ns) { + var element = vnode.dom + if (key2 === "key" || key2 === "is" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== "object" || typeof value === "undefined" || isLifecycleMethod(key2)) return + var nsLastIndex = key2.indexOf(":") + if (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === "xlink") { + element.setAttributeNS("http://www.w3.org/1999/xlink", key2.slice(nsLastIndex + 1), value) + } + else if (key2[0] === "o" && key2[1] === "n" && typeof value === "function") updateEvent(vnode, key2, value) + else if (key2 === "style") updateStyle(element, old, value) + else if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) { + //setting input[value] to same value by typing on focused element moves cursor to end in Chrome + if (vnode.tag === "input" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return + //setting select[value] to same value while having select open blinks select dropdown in Chrome + if (vnode.tag === "select" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return + //setting option[value] to same value while having select open blinks select dropdown in Chrome + if (vnode.tag === "option" && key2 === "value" && vnode.dom.value === value) return + element[key2] = value + } + else { + if (typeof value === "boolean") { + if (value) element.setAttribute(key2, "") + else element.removeAttribute(key2) + } + else element.setAttribute(key2 === "className" ? "class" : key2, value) + } + } + function setLateAttrs(vnode) { + var attrs2 = vnode.attrs + if (vnode.tag === "select" && attrs2 != null) { + if ("value" in attrs2) setAttr(vnode, "value", null, attrs2.value, undefined) + if ("selectedIndex" in attrs2) setAttr(vnode, "selectedIndex", null, attrs2.selectedIndex, undefined) + } + } + function updateAttrs(vnode, old, attrs2, ns) { + if (attrs2 != null) { + for (var key2 in attrs2) { + setAttr(vnode, key2, old && old[key2], attrs2[key2], ns) + } + } + if (old != null) { + for (var key2 in old) { + if (attrs2 == null || !(key2 in attrs2)) { + if (key2 === "className") key2 = "class" + if (key2[0] === "o" && key2[1] === "n" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined) + else if (key2 !== "key") vnode.dom.removeAttribute(key2) + } + } + } + } + function isFormAttribute(vnode, attr) { + return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode.dom === $doc.activeElement + } + function isLifecycleMethod(attr) { + return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate" + } + function isAttribute(attr) { + return attr === "href" || attr === "list" || attr === "form" || attr === "width" || attr === "height"// || attr === "type" + } + function isCustomElement(vnode){ + return vnode.attrs.is || vnode.tag.indexOf("-") > -1 + } + function hasIntegrationMethods(source) { + return source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove) + } + //style + function updateStyle(element, old, style) { + if (old === style) element.style.cssText = "", old = null + if (style == null) element.style.cssText = "" + else if (typeof style === "string") element.style.cssText = style + else { + if (typeof old === "string") element.style.cssText = "" + for (var key2 in style) { + element.style[key2] = style[key2] + } + if (old != null && typeof old !== "string") { + for (var key2 in old) { + if (!(key2 in style)) element.style[key2] = "" + } + } + } + } + //event + function updateEvent(vnode, key2, value) { + var element = vnode.dom + var callback = typeof onevent !== "function" ? value : function(e) { + var result = value.call(element, e) + onevent.call(element, e) + return result + } + if (key2 in element) element[key2] = typeof value === "function" ? callback : null + else { + var eventName = key2.slice(2) + if (vnode.events === undefined) vnode.events = {} + if (vnode.events[key2] === callback) return + if (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false) + if (typeof value === "function") { + vnode.events[key2] = callback + element.addEventListener(eventName, vnode.events[key2], false) + } + } + } + //lifecycle + function initLifecycle(source, vnode, hooks) { + if (typeof source.oninit === "function") source.oninit.call(vnode.state, vnode) + if (typeof source.oncreate === "function") hooks.push(source.oncreate.bind(vnode.state, vnode)) + } + function updateLifecycle(source, vnode, hooks, recycling) { + if (recycling) initLifecycle(source, vnode, hooks) + else if (typeof source.onupdate === "function") hooks.push(source.onupdate.bind(vnode.state, vnode)) + } + function shouldUpdate(vnode, old) { + var forceVnodeUpdate, forceComponentUpdate + if (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === "function") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old) + if (typeof vnode.tag !== "string" && typeof vnode.tag.onbeforeupdate === "function") forceComponentUpdate = vnode.tag.onbeforeupdate.call(vnode.state, vnode, old) + if (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) { + vnode.dom = old.dom + vnode.domSize = old.domSize + vnode.instance = old.instance + return true + } + return false + } + function render(dom, vnodes) { + if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.") + var hooks = [] + var active = $doc.activeElement + // First time0 rendering into a node clears it out + if (dom.vnodes == null) dom.textContent = "" + if (!Array.isArray(vnodes)) vnodes = [vnodes] + updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), hooks, null, undefined) + dom.vnodes = vnodes + for (var i = 0; i < hooks.length; i++) hooks[i]() + if ($doc.activeElement !== active) active.focus() + } + return {render: render, setEventCallback: setEventCallback} +} +function throttle(callback) { + //60fps translates to 16.6ms, round it down since setTimeout requires int + var time = 16 + var last = 0, pending = null + var timeout = typeof requestAnimationFrame === "function" ? requestAnimationFrame : setTimeout + return function() { + var now = Date.now() + if (last === 0 || now - last >= time) { + last = now + callback() + } + else if (pending === null) { + pending = timeout(function() { + pending = null + callback() + last = Date.now() + }, time - (now - last)) + } + } +} +var _11 = function($window) { + var renderService = coreRenderer($window) + renderService.setEventCallback(function(e) { + if (e.redraw !== false) redraw() + }) + + var callbacks = [] + function subscribe(key1, callback) { + unsubscribe(key1) + callbacks.push(key1, throttle(callback)) + } + function unsubscribe(key1) { + var index = callbacks.indexOf(key1) + if (index > -1) callbacks.splice(index, 2) + } + function redraw() { + for (var i = 1; i < callbacks.length; i += 2) { + callbacks[i]() + } + } + return {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render} +} +var redrawService = _11(window) +requestService.setCompletionCallback(redrawService.redraw) +var _16 = function(redrawService0) { + return function(root, component) { + if (component === null) { + redrawService0.render(root, []) + redrawService0.unsubscribe(root) + return + } + + if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode") + + var run0 = function() { + redrawService0.render(root, Vnode(component)) + } + redrawService0.subscribe(root, run0) + redrawService0.redraw() + } +} +m.mount = _16(redrawService) +var Promise = PromisePolyfill +var parseQueryString = function(string) { + if (string === "" || string == null) return {} + if (string.charAt(0) === "?") string = string.slice(1) + var entries = string.split("&"), data0 = {}, counters = {} + for (var i = 0; i < entries.length; i++) { + var entry = entries[i].split("=") + var key5 = decodeURIComponent(entry[0]) + var value = entry.length === 2 ? decodeURIComponent(entry[1]) : "" + if (value === "true") value = true + else if (value === "false") value = false + var levels = key5.split(/\]\[?|\[/) + var cursor = data0 + if (key5.indexOf("[") > -1) levels.pop() + for (var j = 0; j < levels.length; j++) { + var level = levels[j], nextLevel = levels[j + 1] + var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10)) + var isValue = j === levels.length - 1 + if (level === "") { + var key5 = levels.slice(0, j).join() + if (counters[key5] == null) counters[key5] = 0 + level = counters[key5]++ + } + if (cursor[level] == null) { + cursor[level] = isValue ? value : isNumber ? [] : {} + } + cursor = cursor[level] + } + } + return data0 +} +var coreRouter = function($window) { + var supportsPushState = typeof $window.history.pushState === "function" + var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout + function normalize1(fragment0) { + var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) + if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data + return data + } + var asyncId + function debounceAsync(callback0) { + return function() { + if (asyncId != null) return + asyncId = callAsync0(function() { + asyncId = null + callback0() + }) + } + } + function parsePath(path, queryData, hashData) { + var queryIndex = path.indexOf("?") + var hashIndex = path.indexOf("#") + var pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length + if (queryIndex > -1) { + var queryEnd = hashIndex > -1 ? hashIndex : path.length + var queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd)) + for (var key4 in queryParams) queryData[key4] = queryParams[key4] + } + if (hashIndex > -1) { + var hashParams = parseQueryString(path.slice(hashIndex + 1)) + for (var key4 in hashParams) hashData[key4] = hashParams[key4] + } + return path.slice(0, pathEnd) + } + var router = {prefix: "#!"} + router.getPath = function() { + var type2 = router.prefix.charAt(0) + switch (type2) { + case "#": return normalize1("hash").slice(router.prefix.length) + case "?": return normalize1("search").slice(router.prefix.length) + normalize1("hash") + default: return normalize1("pathname").slice(router.prefix.length) + normalize1("search") + normalize1("hash") + } + } + router.setPath = function(path, data, options) { + var queryData = {}, hashData = {} + path = parsePath(path, queryData, hashData) + if (data != null) { + for (var key4 in data) queryData[key4] = data[key4] + path = path.replace(/:([^\/]+)/g, function(match2, token) { + delete queryData[token] + return data[token] + }) + } + var query = buildQueryString(queryData) + if (query) path += "?" + query + var hash = buildQueryString(hashData) + if (hash) path += "#" + hash + if (supportsPushState) { + var state = options ? options.state : null + var title = options ? options.title : null + $window.onpopstate() + if (options && options.replace) $window.history.replaceState(state, title, router.prefix + path) + else $window.history.pushState(state, title, router.prefix + path) + } + else $window.location.href = router.prefix + path + } + router.defineRoutes = function(routes, resolve, reject) { + function resolveRoute() { + var path = router.getPath() + var params = {} + var pathname = parsePath(path, params, params) + + var state = $window.history.state + if (state != null) { + for (var k in state) params[k] = state[k] + } + for (var route0 in routes) { + var matcher = new RegExp("^" + route0.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$") + if (matcher.test(pathname)) { + pathname.replace(matcher, function() { + var keys = route0.match(/:[^\/]+/g) || [] + var values = [].slice.call(arguments, 1, -2) + for (var i = 0; i < keys.length; i++) { + params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i]) + } + resolve(routes[route0], params, path, route0) + }) + return + } + } + reject(path, params) + } + + if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute) + else if (router.prefix.charAt(0) === "#") $window.onhashchange = resolveRoute + resolveRoute() + } + + return router +} +var _20 = function($window, redrawService0) { + var routeService = coreRouter($window) + var identity = function(v) {return v} + var render1, component, attrs3, currentPath, lastUpdate + var route = function(root, defaultRoute, routes) { + if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined") + var run1 = function() { + if (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3))) + } + var bail = function() { + routeService.setPath(defaultRoute, null, {replace: true}) + } + routeService.defineRoutes(routes, function(payload, params, path) { + var update = lastUpdate = function(routeResolver, comp) { + if (update !== lastUpdate) return + component = comp != null && typeof comp.view === "function" ? comp : "div", attrs3 = params, currentPath = path, lastUpdate = null + render1 = (routeResolver.render || identity).bind(routeResolver) + run1() + } + if (payload.view) update({}, payload) + else { + if (payload.onmatch) { + Promise.resolve(payload.onmatch(params, path)).then(function(resolved) { + update(payload, resolved) + }, bail) + } + else update(payload, "div") + } + }, bail) + redrawService0.subscribe(root, run1) + } + route.set = function(path, data, options) { + if (lastUpdate != null) options = {replace: true} + lastUpdate = null + routeService.setPath(path, data, options) + } + route.get = function() {return currentPath} + route.prefix = function(prefix0) {routeService.prefix = prefix0} + route.link = function(vnode1) { + vnode1.dom.setAttribute("href", routeService.prefix + vnode1.attrs.href) + vnode1.dom.onclick = function(e) { + if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return + e.preventDefault() + e.redraw = false + var href = this.getAttribute("href") + if (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length) + route.set(href, undefined, undefined) + } + } + route.param = function(key3) { + if(typeof attrs3 !== "undefined" && typeof key3 !== "undefined") return attrs3[key3] + return attrs3 + } + return route +} +m.route = _20(window, redrawService) +m.withAttr = function(attrName, callback1, context) { + return function(e) { + callback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName)) + } +} +var _28 = coreRenderer(window) +m.render = _28.render +m.redraw = redrawService.redraw +m.request = requestService.request +m.jsonp = requestService.jsonp +m.parseQueryString = parseQueryString +m.buildQueryString = buildQueryString +m.version = "1.0.0" +m.vnode = Vnode +if (typeof module !== "undefined") module["exports"] = m +else window.m = m +} +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) },{"timers":2}],4:[function(require,module,exports){ /*! @preserve * numeral.js @@ -2442,10 +2442,10 @@ return numeral; })); },{}],5:[function(require,module,exports){ -(function (global){ +(function (global){(function (){ /**! * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.0 + * @version 1.16.1 * @license * Copyright (c) 2016 Federico Zivolo and contributors * @@ -2797,7 +2797,7 @@ function getBordersSize(styles, axis) { var sideA = axis === 'x' ? 'Left' : 'Top'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); + return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); } function getSize(axis, body, html, computedStyle) { @@ -2952,8 +2952,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { var scrollParent = getScrollParent(children); var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth, 10); - var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + var borderTopWidth = parseFloat(styles.borderTopWidth); + var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc if (fixedPosition && isHTML) { @@ -2974,8 +2974,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { // differently when margins are applied to it. The margins are included in // the box of the documentElement, in the other cases not. if (!isIE10 && isHTML) { - var marginTop = parseFloat(styles.marginTop, 10); - var marginLeft = parseFloat(styles.marginLeft, 10); + var marginTop = parseFloat(styles.marginTop); + var marginLeft = parseFloat(styles.marginLeft); offsets.top -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop; @@ -3914,8 +3914,8 @@ function arrow(data, options) { // Compute the sideValue using the updated popper offsets // take popper margin in account because we don't have this info available var css = getStyleComputedProperty(data.instance.popper); - var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper @@ -5068,11 +5068,11 @@ return Popper; }))); -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{}],6:[function(require,module,exports){ -(function (process){ +(function (process){(function (){ /**! -* tippy.js v5.1.4 +* tippy.js v5.2.1 * (c) 2017-2020 atomiks * MIT License */ @@ -5100,7 +5100,7 @@ function _extends() { return _extends.apply(this, arguments); } -var version = "5.1.4"; +var version = "5.2.1"; /** * Triggers reflow @@ -5749,7 +5749,6 @@ function bindGlobalEventListeners() { var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; var ua = isBrowser ? navigator.userAgent : ''; var isIE = /MSIE |Trident\//.test(ua); -var isUCBrowser = /UCBrowser\//.test(ua); var isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform); function updateIOSClass(isAdd) { var shouldAdd = isAdd && isIOS && currentInput.isTouch; @@ -5939,8 +5938,9 @@ function updatePopperElement(popper, prevProps, nextProps) { */ function updateTransitionEndListener(tooltip, action, listener) { - var eventName = isUCBrowser && document.body.style.webkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend'; - tooltip[action + 'EventListener'](eventName, listener); + ['transitionend', 'webkitTransitionEnd'].forEach(function (event) { + tooltip[action + 'EventListener'](event, listener); + }); } /** * Adds/removes theme from tooltip's classList @@ -6070,6 +6070,7 @@ function createTippy(reference, passedProps) { var pluginsHooks = plugins.map(function (plugin) { return plugin.fn(instance); }); + var hadAriaExpandedAttributeOnCreate = reference.hasAttribute('aria-expanded'); addListenersToTriggerTarget(); handleAriaExpandedAttribute(); @@ -6090,8 +6091,9 @@ function createTippy(reference, passedProps) { instance.clearDelayTimeouts(); } }); - popper.addEventListener('mouseleave', function () { + popper.addEventListener('mouseleave', function (event) { if (instance.props.interactive && includes(instance.props.trigger, 'mouseenter')) { + debouncedOnMouseMove(event); doc.addEventListener('mousemove', debouncedOnMouseMove); } }); @@ -6170,6 +6172,13 @@ function createTippy(reference, passedProps) { } function handleAriaExpandedAttribute() { + // If the user has specified `aria-expanded` on their reference when the + // instance was created, we have to assume they're controlling it externally + // themselves + if (hadAriaExpandedAttributeOnCreate) { + return; + } + var nodes = normalizeToArray(instance.props.triggerTarget || reference); nodes.forEach(function (node) { if (instance.props.interactive) { @@ -6300,7 +6309,11 @@ function createTippy(reference, passedProps) { break; case 'focus': - on(isIE ? 'focusout' : 'blur', onBlur); + on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut); + break; + + case 'focusin': + on('focusout', onBlurOrFocusOut); break; } }); @@ -6371,7 +6384,7 @@ function createTippy(reference, passedProps) { return el === reference || el === popper; }); - if (isCursorOverReferenceOrPopper) { + if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) { return; } @@ -6405,14 +6418,15 @@ function createTippy(reference, passedProps) { doc.body.addEventListener('mouseleave', scheduleHide); doc.addEventListener('mousemove', debouncedOnMouseMove); pushIfUnique(mouseMoveListeners, debouncedOnMouseMove); + debouncedOnMouseMove(event); return; } scheduleHide(event); } - function onBlur(event) { - if (event.target !== getCurrentTarget()) { + function onBlurOrFocusOut(event) { + if (!includes(instance.props.trigger, 'focusin') && event.target !== getCurrentTarget()) { return; } // If focus was moved to within the popper @@ -6993,7 +7007,6 @@ exports.hideAll = hideAll; exports.includes = includes; exports.isBrowser = isBrowser; exports.isMouseEvent = isMouseEvent; -exports.isUCBrowser = isUCBrowser; exports.normalizeToArray = normalizeToArray; exports.removeProperties = removeProperties; exports.setVisibilityState = setVisibilityState; @@ -7002,11 +7015,11 @@ exports.useIfDefined = useIfDefined; exports.warnWhen = warnWhen; -}).call(this,require('_process')) +}).call(this)}).call(this,require('_process')) },{"_process":1,"popper.js":5}],7:[function(require,module,exports){ -(function (process){ +(function (process){(function (){ /**! -* tippy.js v5.1.4 +* tippy.js v5.2.1 * (c) 2017-2020 atomiks * MIT License */ @@ -7256,7 +7269,7 @@ var animateFill = { var _instance$popperChild = instance.popperChildren, tooltip = _instance$popperChild.tooltip, content = _instance$popperChild.content; - var backdrop = instance.props.animateFill && !index.isUCBrowser ? createBackdropElement() : null; + var backdrop = instance.props.animateFill ? createBackdropElement() : null; function addBackdropToPopperChildren() { instance.popperChildren.backdrop = backdrop; @@ -7391,7 +7404,7 @@ var followCursor = { // scroll for "vertical" - if (getIsEnabled() && (getIsInitialBehavior() || instance.props.followCursor !== true)) { + if (getIsEnabled() && getIsInitialBehavior()) { instance.popperInstance.disableEventListeners(); } } @@ -7432,7 +7445,6 @@ var followCursor = { var isCursorOverReference = index.closestCallback(event.target, function (el) { return el === reference; }); - var rect = reference.getBoundingClientRect(); var followCursor = instance.props.followCursor; var isHorizontal = followCursor === 'horizontal'; var isVertical = followCursor === 'vertical'; @@ -7456,6 +7468,7 @@ var followCursor = { clientWidth: 0, clientHeight: 0, getBoundingClientRect: function getBoundingClientRect() { + var rect = reference.getBoundingClientRect(); return { width: isVerticalPlacement ? size : 0, height: isVerticalPlacement ? 0 : size, @@ -7721,7 +7734,7 @@ exports.inlinePositioning = inlinePositioning; exports.sticky = sticky; -}).call(this,require('_process')) +}).call(this)}).call(this,require('_process')) },{"./tippy.chunk.cjs.js":6,"_process":1,"popper.js":5}],8:[function(require,module,exports){ 'use strict'; @@ -7749,7 +7762,7 @@ function launch() { }); })(document, window, domIsReady); -},{"./texte/de":14,"./view":15,"mithril":3}],9:[function(require,module,exports){ +},{"./texte/de":13,"./view":14,"mithril":3}],9:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -7828,10 +7841,10 @@ var _tippy = _interopRequireDefault(require("tippy.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. */ //import { createPopper } from '@popperjs/core'; //import 'tippy.js/dist/tippy.css'; @@ -7845,8 +7858,8 @@ function Tooltip(object) { // Pass the button, the tooltip, and some options, and Popper will do the // magic positioning for you: - /*createPopper(vnode.dom, tooltip, { - placement: 'right', + /*createPopper(vnode.dom, tooltip, { + placement: 'right', });*/ (0, _tippy["default"])(vnode.dom, { content: vnode.attrs.accountState.getTooltipText(), @@ -7856,9 +7869,9 @@ function Tooltip(object) { }); //*/ // bootstrap tooltip - /*$(vnode.dom).tooltip({ - placement:'right', - title: vnode.attrs.accountState.getTooltipText() + /*$(vnode.dom).tooltip({ + placement:'right', + title: vnode.attrs.accountState.getTooltipText() })*/ }, onremove: function onremove() {// Cleanup 3rd party lib on removal @@ -7906,24 +7919,6 @@ exports["default"] = _default; },{"mithril":3}],12:[function(require,module,exports){ "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = encode; - -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -function encode(receiver, subject, body) { - //return encodeURIComponent(receiver + '?subject=' + subject + '&body=' + body) - return encodeURIComponent(receiver) + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body); -} - -},{}],13:[function(require,module,exports){ -"use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); @@ -7939,19 +7934,17 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -/* -__('account created'); -__('account not on login-server'); -__('email activated'); -__('account copied to community'); -__('email not activated'); -__('account multiple times on login-server'); -__('account not on community server'); -__('no keys'); +/* +__('account created'); +__('account not on login-server'); +__('email activated'); +__('account copied to community'); +__('email not activated'); +__('account multiple times on login-server'); +__('account not on community server'); +__('no keys'); */ -var AccountState = -/*#__PURE__*/ -function () { +var AccountState = /*#__PURE__*/function () { function AccountState(stateName) { _classCallCheck(this, AccountState); @@ -8050,7 +8043,7 @@ function () { exports["default"] = AccountState; -},{"mithril":3}],14:[function(require,module,exports){ +},{"mithril":3}],13:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8226,7 +8219,6 @@ var _default = { DELETE_FROM_COMMUNITY_SUCCESS: 'Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht', VERIFICATION_EMAIL_RESEND: 'Verification Email erneut zusenden', VERIFICATION_EMAIL_RESEND_SUCCESS: 'Verification Email wird erneut zugestellt', - MAILTO_VERIFICATION_EMAIL: 'Verification Email selbst verschicken', COPY_FAILED: 'Fehler beim Kopieren', DELETE_FAILED: 'Fehler beim löschen', RESEND_FAILED: 'Senden fehlgeschlagen', @@ -8240,7 +8232,7 @@ var _default = { }; exports["default"] = _default; -},{}],15:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8256,26 +8248,26 @@ var _AccountState = _interopRequireDefault(require("../model/AccountState")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * 0) : ?> - userTable - -
-

-
- +/* + * 0) : ?> + userTable + +
+

+
+ */ -/* -
-
-
-
-
- My content -
-
-
+/* +
+
+
+
+
+ My content +
+
+
*/ function view(vnode) { if (g_users === undefined) { @@ -8285,11 +8277,11 @@ function view(vnode) { return (0, _mithril["default"])('', [(0, _mithril["default"])('.grid-body.py-3', (0, _mithril["default"])('p.grid-header', window.texte.USER_FOUND)), (0, _mithril["default"])('.table-responsive', (0, _mithril["default"])(_userTable["default"], { users: g_users })) - /*m('.tippy-popper', - m('.tippy-tooltip', {'data-placement': 'top'}, [ - m('.tippy-backdop'), - m('.tippy-arrow'), - m('.tippy-content', acc.getTooltip()) + /*m('.tippy-popper', + m('.tippy-tooltip', {'data-placement': 'top'}, [ + m('.tippy-backdop'), + m('.tippy-arrow'), + m('.tippy-content', acc.getTooltip()) ]))*/ ]); return (0, _mithril["default"])(_userTable["default"], { @@ -8305,7 +8297,7 @@ var _default = { }; exports["default"] = _default; -},{"../model/AccountState":13,"./userTable":23,"mithril":3}],16:[function(require,module,exports){ +},{"../model/AccountState":12,"./userTable":21,"mithril":3}],15:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8319,12 +8311,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 20.03.20 - * - * @brief: Object for buttons with start an ajax request +/* + * @author: Dario Rekowski + * + * @date: 20.03.20 + * + * @brief: Object for buttons with start an ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8405,7 +8397,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"mithril":3}],17:[function(require,module,exports){ +},{"../../../lib/dialog":11,"mithril":3}],16:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8419,12 +8411,12 @@ var _actionBase = _interopRequireDefault(require("./actionBase")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 22.01.20 - * - * @brief: copy Account from Login-Server to Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 22.01.20 + * + * @brief: copy Account from Login-Server to Community-Server Button and ajax request */ function view(vnode) { // btn btn-primary @@ -8450,7 +8442,7 @@ var _default = { }; exports["default"] = _default; -},{"./actionBase":16,"mithril":3}],18:[function(require,module,exports){ +},{"./actionBase":15,"mithril":3}],17:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8466,12 +8458,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 22.01.20 - * - * @brief: copy Account from Login-Server to Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 22.01.20 + * + * @brief: copy Account from Login-Server to Community-Server Button and ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8537,35 +8529,35 @@ function view(vnode) { btnTitle: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, progessText: window.texte.COPY_IN_PROGRESS }); - /* - - return m('span', [ - m('span', [ - m('button.btn.btn-gradido-orange.btn-xs', { - title:window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, - onclick:(e) => {click(vnode)}, - disabled: vnode.state.loading === true - }, - vnode.state.loading === true ? - m('i.spinner-border.spinner-border-sm') : - m('i.mdi.mdi-content-copy') - ), - window.texte.COPY_FROM_LOGIN_TO_COMMUNITY - ]), - vnode.state.showDialog ? - m(dialog, { - title: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, - body: m('div', [ - vnode.state.loading ? - m('div', [ - m('i.spinner-border.spinner-border-sm'), - m.trust(' '), - window.texte.COPY_IN_PROGRESS] - ) : null, - m('div', vnode.state.message) - ]), - dismiss: (e) => {cleanMessage(vnode)} - }) : null + /* + + return m('span', [ + m('span', [ + m('button.btn.btn-gradido-orange.btn-xs', { + title:window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, + onclick:(e) => {click(vnode)}, + disabled: vnode.state.loading === true + }, + vnode.state.loading === true ? + m('i.spinner-border.spinner-border-sm') : + m('i.mdi.mdi-content-copy') + ), + window.texte.COPY_FROM_LOGIN_TO_COMMUNITY + ]), + vnode.state.showDialog ? + m(dialog, { + title: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, + body: m('div', [ + vnode.state.loading ? + m('div', [ + m('i.spinner-border.spinner-border-sm'), + m.trust(' '), + window.texte.COPY_IN_PROGRESS] + ) : null, + m('div', vnode.state.message) + ]), + dismiss: (e) => {cleanMessage(vnode)} + }) : null ])*/ } @@ -8575,7 +8567,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],19:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],18:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8591,12 +8583,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 23.01.20 - * - * @brief: delete user from Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 23.01.20 + * + * @brief: delete user from Community-Server Button and ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8671,127 +8663,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],20:[function(require,module,exports){ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _mithril = _interopRequireDefault(require("mithril")); - -var _actionBase = _interopRequireDefault(require("./actionBase")); - -var _dialog = _interopRequireDefault(require("../../../lib/dialog")); - -var _emailToLink = _interopRequireDefault(require("../../../lib/emailToLink")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* - * @author: Dario Rekowski - * - * @date: 20.03.20 - * - * @brief: getting email verification code in silence - */ -function oninit(vnode) { - vnode.state.loading = true; - vnode.state.results = null; - vnode.state.additionalUserData = []; - vnode.state.serverData = []; - - _mithril["default"].request({ - method: 'POST', - url: window.location.protocol + '//' + document.domain + '/state-users/ajaxGetUserEmailVerificationCode', - data: vnode.attrs.user, - headers: { - 'X-CSRF-Token': csfr_token - } - }).then(function (result) { - vnode.state.loading = false; - - if (result.state === 'success') { - vnode.state.copyResult = 'success'; - vnode.state.additionalUserData = result.data.userData; - vnode.state.serverData = result.data.server; //console.log("ajax result: %o", result) - } else {//console.log("result error") - } - })["catch"](function (e) { - vnode.state.loading = false; - console.error("ajax error: %s in file: %s in line: %d", e.message, e.fileName, e.lineNumber); - }); -} - -function getField(vnode, index) { - if (null === vnode.state.results) { - return (0, _mithril["default"])('i.spinner-border.spinner-border-sm'); - } else if (index in vnode.state.results) { - return vnode.state.results[index]; - } else { - return '0'; - } -} - -function view(vnode) { - var email = vnode.attrs.user.email; - var first_name = vnode.attrs.user.first_name; - var last_name = vnode.attrs.user.last_name; - var recevier = first_name + ' ' + last_name + ' <' + email + '>'; - var userData = vnode.state.additionalUserData; - var serverData = vnode.state.serverData; //console.log('Server data: %o', serverData) - //vnode.state.additionalUserData.verificationCode - - var link = serverData['loginServer.path'] + '/checkEmail/' + userData['EmailVerificationCode.Register']; - var body = 'Liebe(r) ' + first_name + ' ' + last_name + ',\n\ -\n\ -Der Admin hat ein erneutes zusenden deiner Bestätigungsemail angefordert. \n\ -Du hast vor einer Weile ein Gradido Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\ -\n\ -Bitte klicke zur Bestätigung auf den Link: ' + link + '\n\ -oder kopiere den obigen Link in Dein Browserfenster.\n\ -\n\ -Mit freundlichen Grüßen\n\ -Dario, Gradido Server Admin\n\ -'; - - if (true === vnode.state.loading) { - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('button.btn.btn-secondary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - disabled: true - }, (0, _mithril["default"])('i.spinner-border.spinner-border-sm')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - } else { - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('a.btn.btn-primary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - href: 'mailto:' + (0, _emailToLink["default"])(recevier, 'Gradido: E-Mail Verification', body) - }, (0, _mithril["default"])('i.mdi.mdi-email-outline')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - } - - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('a.btn.btn-secondary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - href: 'mailto:' + (0, _emailToLink["default"])(recevier, 'Gradido: E-Mail Verification', body), - disabled: vnode.state.loading === true - }, vnode.state.loading === true ? (0, _mithril["default"])('i.spinner-border.spinner-border-sm') : (0, _mithril["default"])('i.mdi.mdi-email-outline')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - /*return m('span', [ - window.texte.RECEIVE_TRANSACTIONS_COUNT, - getField(vnode, 'receive'), - ', ', - window.texte.SENDED_TRANSACTIONS_COUNT, - getField(vnode, 'sended'), - ', ', - window.texte.CREATION_TRANSACTIONS_COUNT, - getField(vnode, 'creation') - ])*/ -} - -var _default = { - view: view, - oninit: oninit -}; -exports["default"] = _default; - -},{"../../../lib/dialog":11,"../../../lib/emailToLink":12,"./actionBase":16,"mithril":3}],21:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],19:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8807,12 +8679,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 23.01.20 - * - * @brief: count transactions from users and calculate/take balance +/* + * @author: Dario Rekowski + * + * @date: 23.01.20 + * + * @brief: count transactions from users and calculate/take balance */ function oninit(vnode) { vnode.state.loading = true; @@ -8830,12 +8702,12 @@ function oninit(vnode) { vnode.state.loading = false; if (result.state === 'success') { - //vnode.state.message = m('div.alert.alert-success', window.texte.DELETE_FROM_COMMUNITY_SUCCESS) + vnode.state.message = (0, _mithril["default"])('div.alert.alert-success', window.texte.DELETE_FROM_COMMUNITY_SUCCESS); vnode.state.copyResult = 'success'; vnode.state.results = result.counts; } else { //console.log("result error") - //vnode.state.message = m('div.alert.alert-danger', window.texte.DELETE_FAILED) + vnode.state.message = (0, _mithril["default"])('div.alert.alert-danger', window.texte.DELETE_FAILED); vnode.state.copyResult = 'error'; } })["catch"](function (e) { @@ -8866,7 +8738,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],22:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],20:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8880,10 +8752,10 @@ var _actionBase = _interopRequireDefault(require("./actionBase")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. */ //mdi-email function view(vnode) { @@ -8896,7 +8768,7 @@ function view(vnode) { ajaxData: vnode.attrs.user, alertSuccess: window.texte.VERIFICATION_EMAIL_RESEND_SUCCESS, alertFailed: window.texte.RESEND_FAILED, - btnColor: 'btn-gradido-orange', + btnColor: 'btn-primary', btnSymbol: 'mdi-email', btnTitle: window.texte.VERIFICATION_EMAIL_RESEND, progessText: window.texte.RESEND_IN_PROGRESS @@ -8908,7 +8780,7 @@ var _default = { }; exports["default"] = _default; -},{"./actionBase":16,"mithril":3}],23:[function(require,module,exports){ +},{"./actionBase":15,"mithril":3}],21:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8932,6 +8804,10 @@ function oninit(vnode) { } vnode.state.openedUser = -1; + vnode.state.order = { + field: 'default', + dir: 'DESC' + }; } function openButtonClick(vnode, index) { @@ -8942,6 +8818,27 @@ function openButtonClick(vnode, index) { } } +function changeOrder(vnode, fieldName) { + var field = vnode.state.order.field; + var dir = vnode.state.order.dir; + + if (field != fieldName) { + vnode.state.order.field = fieldName; + vnode.state.order.dir = 'DESC'; + } else if (field == fieldName) { + var new_dir; + + if (dir == 'DESC') { + new_dir = 'ASC'; + } else { + new_dir = 'DESC'; + } + + vnode.state.order.dir = new_dir; + } //console.log("change to %s %s", vnode.state.order.field, vnode.state.order.dir) + +} + function updateStateForActiveUser(newState, vnode) { //console.log('updateStateForActiveUser') if (-1 !== vnode.state.openedUser) { @@ -8957,12 +8854,154 @@ function deleteActiveUser(vnode) { } } +function sortByCreated(var1, var2, dir) { + if (var1.created == var2.created) { + return 0; + } + + var var1_date = new Date(var1.created); + var var2_date = new Date(var2.created); // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + if (dir == 'DESC') { + // descending + if (var1_date < var2_date) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1_date < var2_date) { + return -1; + } else { + return 1; + } + } +} + +function sortyByString(var1, var2, dir, field) { + if (var1[field] == var2[field]) { + return 0; + } // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + + if (dir == 'DESC') { + // descending + if (var1[field] < var2[field]) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1[field] < var2[field]) { + return -1; + } else { + return 1; + } + } +} + +function sortByBalance(var1, var2, dir) { + if (var1.balance == var2.balance) { + return 0; + } + + var var1_balance = parseFloat(var1.balance); + var var2_balance = parseFloat(var2.balance); // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + if (dir == 'DESC') { + // descending + if (var1_balance < var2_balance) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1_balance < var2_balance) { + return -1; + } else { + return 1; + } + } +} // js sort work in place, so no copy is created + + +function sort(vnode, user) { + var field = vnode.state.order.field; + var dir = vnode.state.order.dir; + + if (field == 'created') { + user.sort(function (var1, var2) { + return sortByCreated(var1, var2, dir); + }); + } else if (field == 'name' || field == 'email' || field == 'pubkeyhex') { + user.sort(function (var1, var2) { + return sortyByString(var1, var2, dir, field); + }); + } else if (field == 'balance') { + user.sort(function (var1, var2) { + return sortByBalance(var1, var2, dir); + }); + } +} + +function getArrow(vnode, fieldName) { + // Arrow-up: ↑ + // Arrow-down: ↓ + if (vnode.state.order.field == fieldName) { + if (vnode.state.order.dir == 'DESC') { + return _mithril["default"].trust('↓ '); + } else { + return _mithril["default"].trust('↑ '); + } + } + + return _mithril["default"].trust('  '); +} + function view(vnode) { + // js sort work in place, so me made a deep copy first + var user_sorted = JSON.parse(JSON.stringify(vnode.state.orderedUsers)); + + if (vnode.state.order.field != 'default') { + sort(vnode, user_sorted); + } + return (0, _mithril["default"])('table.table.table-hover.table-sm', [(0, _mithril["default"])('thead', (0, _mithril["default"])('tr.solid-header', [(0, _mithril["default"])('th', { style: { 'padding-left': '1.5rem' } - }), (0, _mithril["default"])('th', window.texte.NAME), (0, _mithril["default"])('th', window.texte.EMAIL), (0, _mithril["default"])('th', window.texte.BALANCE), (0, _mithril["default"])('th', _mithril["default"].trust(window.texte.PUBLIC_KEY)), (0, _mithril["default"])('th', window.texte.CREATED)])), (0, _mithril["default"])('tbody', vnode.state.orderedUsers.map(function (value, index) { + }), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'name'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'name'), window.texte.NAME])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'email'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'email'), window.texte.EMAIL])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'balance'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'balance'), window.texte.BALANCE])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'pubkeyhex'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'pubkeyhex'), _mithril["default"].trust(window.texte.PUBLIC_KEY)])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'created'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'created'), window.texte.CREATED]))])), (0, _mithril["default"])('tbody', user_sorted.map(function (value, index) { var open = vnode.state.openedUser === index; return [(0, _mithril["default"])(_rowView["default"], { user: value, @@ -8989,7 +9028,7 @@ var _default = { }; exports["default"] = _default; -},{"./rowAction":24,"./rowView":25,"mithril":3}],24:[function(require,module,exports){ +},{"./rowAction":22,"./rowView":23,"mithril":3}],22:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -9009,8 +9048,6 @@ var _copyCommunityLogin = _interopRequireDefault(require("./actions/copyCommunit var _verificationResend = _interopRequireDefault(require("./actions/verificationResend")); -var _mailtoVerificationResend = _interopRequireDefault(require("./actions/mailtoVerificationResend")); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var checkTodoAction = new RegExp(/{{([a-z-]*)}}/); @@ -9034,9 +9071,6 @@ function getAction(name) { case 'verification-resend': return _verificationResend["default"]; - - case 'mailto-verification-resend': - return _mailtoVerificationResend["default"]; } return null; @@ -9077,7 +9111,7 @@ var _default = { }; exports["default"] = _default; -},{"./actions/copyCommunityLogin":17,"./actions/copyLoginCommunity":18,"./actions/deleteCommunityServer":19,"./actions/mailtoVerificationResend":20,"./actions/userTransactionsOverview":21,"./actions/verificationResend":22,"mithril":3}],25:[function(require,module,exports){ +},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,"mithril":3}],23:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -9148,4 +9182,4 @@ var _default = { }; exports["default"] = _default; -},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":13,"mithril":3}]},{},[8]); +},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,"mithril":3}]},{},[8]); diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index f13a1b3a8..5fe24b680 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function o(a,s,l){function u(t,e){if(!s[t]){if(!a[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[t]={exports:{}};a[t][0].call(i.exports,function(e){return u(a[t][1][e]||e)},i,i.exports,o,a,s,l)}return s[t].exports}for(var c="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=r.clientWidth&&n>=r.clientHeight}),f=0l[e]&&!r.escapeWithReference&&(n=Math.min(c[t],l[e]-("right"===e?c.width:c.height))),E({},t,n)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";c=P({},c,f[t](e))}),e.offsets.popper=c,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",l=a?"left":"top",u=a?"width":"height";return n[s]o(r[s])&&(e.offsets.popper[l]=o(r[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var r=t.element;if("string"==typeof r){if(!(r=e.instance.popper.querySelector(r)))return e}else if(!e.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],o=e.offsets,a=o.popper,s=o.reference,l=-1!==["left","right"].indexOf(i),u=l?"height":"width",c=l?"Top":"Left",f=c.toLowerCase(),d=l?"left":"top",p=l?"bottom":"right",m=S(r)[u];s[p]-ma[p]&&(e.offsets.popper[f]+=s[f]+m-a[p]),e.offsets.popper=T(e.offsets.popper);var h=s[f]+s[u]/2-m/2,v=w(e.instance.popper),g=parseFloat(v["margin"+c],10),b=parseFloat(v["border"+c+"Width"],10),y=h-e.offsets.popper[f]-g-b;return y=Math.max(Math.min(a[u]-m,y),0),e.arrowElement=r,e.offsets.arrow=(E(n={},f,Math.round(y)),E(n,d,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(h,v){if(N(h.instance.modifiers,"inner"))return h;if(h.flipped&&h.placement===h.originalPlacement)return h;var g=p(h.instance.popper,h.instance.reference,v.padding,v.boundariesElement,h.positionFixed),b=h.placement.split("-")[0],y=k(b),w=h.placement.split("-")[1]||"",x=[];switch(v.behavior){case K:x=[b,y];break;case W:x=H(b);break;case Y:x=H(b,!0);break;default:x=v.behavior}return x.forEach(function(e,t){if(b!==e||x.length===t+1)return h;b=h.placement.split("-")[0],y=k(b);var n=h.offsets.popper,r=h.offsets.reference,i=Math.floor,o="left"===b&&i(n.right)>i(r.left)||"right"===b&&i(n.left)i(r.top)||"bottom"===b&&i(n.top)i(g.right),l=i(n.top)i(g.bottom),c="left"===b&&a||"right"===b&&s||"top"===b&&l||"bottom"===b&&u,f=-1!==["top","bottom"].indexOf(b),d=!!v.flipVariations&&(f&&"start"===w&&a||f&&"end"===w&&s||!f&&"start"===w&&l||!f&&"end"===w&&u),p=!!v.flipVariationsByContent&&(f&&"start"===w&&s||f&&"end"===w&&a||!f&&"start"===w&&u||!f&&"end"===w&&l),m=d||p;(o||c||m)&&(h.flipped=!0,(o||c)&&(b=x[t+1]),m&&(w="end"===w?"start":"start"===w?"end":w),h.placement=b+(w?"-"+w:""),h.offsets.popper=P({},h.offsets.popper,C(h.instance.popper,h.offsets.reference,h.placement)),h=A(h.instance.modifiers,h,"flip"))}),h},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(s?i[a?"width":"height"]:0),e.placement=k(t),e.offsets.popper=T(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=I(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},l="tippy-iOS",Ae="tippy-popper",Ne="tippy-tooltip",Me="tippy-content",u="tippy-arrow",c="tippy-svg-arrow",Le="."+Ae,f="."+Ne,h="."+Me,v="."+u,g="."+c,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function x(){var e=document.activeElement;if(i(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var E="undefined"!=typeof window&&"undefined"!=typeof document,T=E?navigator.userAgent:"",Pe=/MSIE |Trident\//.test(T),_=/UCBrowser\//.test(T),O=E&&/iPhone|iPad|iPod/.test(navigator.platform);function Fe(e){var t=e&&O&&De.isTouch;document.body.classList[t?"add":"remove"](l)}function Ie(e){return e.split("-")[0]}function Be(e){e.setAttribute("data-inertia","")}function je(e){e.setAttribute("data-interactive","")}function ze(e,t){p(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Ue(e){return{tooltip:e.querySelector(f),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function Re(e){var t=ae();return!0===e?t.className=u:(t.className=c,p(e)?t.appendChild(e):n(t,e)),t}function Ve(e,t,n){var r,i=Ue(e),o=i.tooltip,a=i.content,s=i.arrow;e.style.zIndex=""+n.zIndex,o.setAttribute("data-animation",n.animation),o.style.maxWidth="number"==typeof(r=n.maxWidth)?r+"px":r,n.role?o.setAttribute("role",n.role):o.removeAttribute("role"),t.content!==n.content&&ze(a,n),!t.arrow&&n.arrow?(o.appendChild(Re(n.arrow)),o.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(o.removeChild(s),o.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(o.removeChild(s),o.appendChild(Re(n.arrow))),!t.interactive&&n.interactive?je(o):t.interactive&&!n.interactive&&o.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Be(o):t.inertia&&!n.inertia&&o.removeAttribute("data-inertia"),t.theme!==n.theme&&(Ke(o,"remove",t.theme),Ke(o,"add",n.theme))}function He(e,t,n){var r=_&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";e[t+"EventListener"](r,n)}function Ke(t,n,e){me(e).forEach(function(e){t.classList[n](e+"-theme")})}var We=1,Ye=[],Ge=[];function S(o,e){var a,n,r,t=Se(o,Q({},Te,{},Oe(e)));if(!t.multiple&&o._tippy)return null;var s,l,i,u,c,f=!1,d=!1,p=!1,m=0,h=[],v=ue(H,t.interactiveDebounce),g=ge(t.triggerTarget||o),b=We++,y=function(e,t){var n=ae();n.className=Ae,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=ae();r.className=Ne,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),Ke(r,"add",t.theme);var i=ae();return i.className=Me,i.setAttribute("data-state","hidden"),t.interactive&&je(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(Re(t.arrow))),t.inertia&&Be(r),ze(i,t),r.appendChild(i),n.appendChild(r),Ve(n,t,t),n}(b,t),w=Ue(y),x=(c=t.plugins).filter(function(e,t){return c.indexOf(e)===t}),E=w.tooltip,T=w.content,_=[E,T],O={id:b,reference:o,popper:y,popperChildren:w,popperInstance:null,props:t,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:x,clearDelayTimeouts:function(){clearTimeout(a),clearTimeout(n),cancelAnimationFrame(r)},setProps:function(n){if("production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("setProps")),!O.state.isDestroyed){"production"!==J.env.NODE_ENV&&(ke(n,x),Ee(!!n.plugins&&(n.plugins.length!==x.length||x.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[O,n]),R();var t=O.props,e=Se(o,Q({},O.props,{},n,{ignoreAttributes:!0}));if(e.ignoreAttributes=he(n.ignoreAttributes,t.ignoreAttributes),O.props=e,U(),t.interactiveDebounce!==e.interactiveDebounce&&(P(),v=ue(H,e.interactiveDebounce)),Ve(y,t,e),O.popperChildren=Ue(y),t.triggerTarget&&!e.triggerTarget?ve(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&o.removeAttribute("aria-expanded"),D(),O.popperInstance)if(_e.some(function(e){return ee(n,e)&&n[e]!==t[e]})){var r=O.popperInstance.reference;O.popperInstance.destroy(),G(),O.popperInstance.reference=r,O.state.isVisible&&O.popperInstance.enableEventListeners()}else O.popperInstance.update();M("onAfterUpdate",[O,n])}},setContent:function(e){O.setProps({content:e})},show:function(e){void 0===e&&(e=te(O.props.duration,0,Te.duration)),"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("show"));var t=O.state.isVisible,n=O.state.isDestroyed,r=!O.state.isEnabled,i=De.isTouch&&!O.props.touch;t||n||r||i||A().hasAttribute("disabled")||(O.popperInstance||G(),M("onShow",[O],!1),!1!==O.props.onShow(O)&&(I(),y.style.visibility="visible",O.state.isVisible=!0,O.state.isMounted||se(_.concat(y),0),l=function(){O.state.isVisible&&(se([y],O.props.updateDuration),se(_,e),le(_,"visible"),L(),D(),be(Ge,O),Fe(!0),O.state.isMounted=!0,M("onMount",[O]),j(e,function(){O.state.isShown=!0,M("onShown",[O])}))},function(){m=0;var e,t=O.props.appendTo,n=A();(e=O.props.interactive&&t===Te.appendTo||"parent"===t?n.parentNode:ie(t,[n])).contains(y)||e.appendChild(y),"production"!==J.env.NODE_ENV&&Ee(O.props.interactive&&t===Te.appendTo&&n.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),oe(O.popperInstance.modifiers,"flip","enabled",O.props.flip),O.popperInstance.enableEventListeners(),O.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=te(O.props.duration,1,Te.duration)),"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("hide"));var t=!O.state.isVisible&&!f,n=O.state.isDestroyed,r=!O.state.isEnabled&&!f;t||n||r||(M("onHide",[O],!1),!1===O.props.onHide(O)&&!f||(B(),y.style.visibility="hidden",O.state.isVisible=!1,O.state.isShown=!1,se(_,e),le(_,"hidden"),L(),D(),j(e,function(){!O.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(O.popperInstance.disableEventListeners(),O.popperInstance.options.placement=O.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==O})).length&&Fe(!1),O.state.isMounted=!1,M("onHidden",[O]))})))},enable:function(){O.state.isEnabled=!0},disable:function(){O.hide(),O.state.isEnabled=!1},destroy:function(){"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("destroy")),O.state.isDestroyed||(f=!0,O.clearDelayTimeouts(),O.hide(0),R(),delete o._tippy,O.popperInstance&&O.popperInstance.destroy(),f=!1,O.state.isDestroyed=!0,M("onDestroy",[O]))}};o._tippy=O,y._tippy=O;var S=x.map(function(e){return e.fn(O)});return U(),D(),t.lazy||G(),M("onCreate",[O]),t.showOnCreate&&$(),y.addEventListener("mouseenter",function(){O.props.interactive&&O.state.isVisible&&O.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(){O.props.interactive&&pe(O.props.trigger,"mouseenter")&&g.addEventListener("mousemove",v)}),O;function k(){var e=O.props.touch;return Array.isArray(e)?e:[e,0]}function C(){return"hold"===k()[0]}function A(){return u||o}function N(e){return O.state.isMounted&&!O.state.isVisible||De.isTouch||s&&"focus"===s.type?0:te(O.props.delay,e?0:1,Te.delay)}function M(t,n,e){var r;void 0===e&&(e=!0),S.forEach(function(e){ee(e,t)&&e[t].apply(e,n)}),e&&(r=O.props)[t].apply(r,n)}function L(){var e=O.props.aria;if(e){var r="aria-"+e,i=E.id;ve(O.props.triggerTarget||o).forEach(function(e){var t=e.getAttribute(r);if(O.state.isVisible)e.setAttribute(r,t?t+" "+i:i);else{var n=t&&t.replace(i,"").trim();n?e.setAttribute(r,n):e.removeAttribute(r)}})}}function D(){ve(O.props.triggerTarget||o).forEach(function(e){O.props.interactive?e.setAttribute("aria-expanded",O.state.isVisible&&e===A()?"true":"false"):e.removeAttribute("aria-expanded")})}function P(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ye=Ye.filter(function(e){return e!==v})}function F(e){if(!O.props.interactive||!y.contains(e.target)){if(A().contains(e.target)){if(De.isTouch)return;if(O.state.isVisible&&pe(O.props.trigger,"click"))return}!0===O.props.hideOnClick&&(d=!1,O.clearDelayTimeouts(),O.hide(),p=!0,setTimeout(function(){p=!1}),O.state.isMounted||B())}}function I(){g.addEventListener("mousedown",F,!0)}function B(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===E&&(He(E,"remove",n),t())}if(0===e)return t();He(E,"remove",i),He(E,"add",n),i=n}function z(t,n,r){void 0===r&&(r=!1),ve(O.props.triggerTarget||o).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function U(){C()&&(z("touchstart",V,Ce),z("touchend",K,Ce)),me(O.props.trigger).forEach(function(e){if("manual"!==e)switch(z(e,V),e){case"mouseenter":z("mouseleave",K);break;case"focus":z(Pe?"focusout":"blur",W)}})}function R(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),h=[]}function V(t){var e=!1;if(O.state.isEnabled&&!Y(t)&&!p){if(u=(s=t).currentTarget,D(),!O.state.isVisible&&re(t)&&Ye.forEach(function(e){return e(t)}),"click"!==t.type||pe(O.props.trigger,"mouseenter")&&!d||!1===O.props.hideOnClick||!O.state.isVisible){var n=k(),r=n[0],i=n[1];De.isTouch&&"hold"===r&&i?a=setTimeout(function(){$(t)},i):$(t)}else e=!0;"click"===t.type&&(d=!e),e&&X(t)}}function H(e){var t,l,u;de(e.target,function(e){return e===o||e===y})||(t=fe(y.querySelectorAll(Le)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,r=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:r}}),l=e.clientX,u=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),a=Math.max(t.bottom,n.bottom),s=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" "))}var f=l.reduce(function(e,t){var n=t&&S(t,s);return n&&e.push(n),e},[]);return p(e)?f[0]:f}k.version="5.1.4",k.defaultProps=Te,k.setDefaultProps=o,k.currentInput=De,A.BACKDROP_CLASS="tippy-backdrop",A.ROUND_ARROW='',A._extends=Q,A.arrayFrom=fe,A.closestCallback=de,A.createTippyWithPlugins=function(r){"production"!==J.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=[]),n=t.plugins||n,k(e,Q({},t,{plugins:[].concat(r,n)}))}return e.version="5.1.4",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},A.currentInput=De,A.defaultProps=Te,A.div=ae,A.errorWhen=m,A.getBasePlacement=Ie,A.getOwnerDocument=ge,A.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;Ge.forEach(function(e){var t=!1;n&&(t=i(n)?e.reference===n:e.popper===n.popper),t||e.hide(r)})},A.includes=pe,A.isBrowser=E,A.isMouseEvent=re,A.isUCBrowser=_,A.normalizeToArray=ve,A.removeProperties=a,A.setVisibilityState=le,A.tippy=k,A.useIfDefined=he,A.warnWhen=Ee}).call(this,C("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){(function(d){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var E=i("./tippy.chunk.cjs.js");i("popper.js");var p={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t,n=e.popperChildren,r=n.tooltip,i=n.content,o=e.props.animateFill&&!E.isUCBrowser?((t=E.div()).className=E.BACKDROP_CLASS,E.setVisibilityState([t],"hidden"),t):null;function a(){e.popperChildren.backdrop=o}return{onCreate:function(){o&&(a(),r.insertBefore(o,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){if(o){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));i.style.transitionDelay=Math.round(t/10)+"ms",o.style.transitionDuration=e,E.setVisibilityState([o],"visible"),"production"!==d.env.NODE_ENV&&(E.warnWhen("absolute"!==getComputedStyle(o).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),E.warnWhen("none"===getComputedStyle(r).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work."))}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&E.setVisibilityState([o],"hidden")},onAfterUpdate:function(){a()}}}},t={name:"followCursor",defaultValue:!1,fn:function(h){var v,g=h.reference,b=h.popper,y=null,e=E.getOwnerDocument(h.props.triggerTarget||g),n=null,r=!1,i=h.props;function t(){return"manual"===h.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return h.props.followCursor&&e}function w(){return E.currentInput.isTouch||"initial"===h.props.followCursor&&h.state.isVisible}function a(){h.popperInstance&&y&&(h.popperInstance.reference=y)}function s(){if(o()||h.props.placement!==i.placement){var e=i.placement,t=e.split("-")[1];r=!0,h.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1}}function l(){h.popperInstance&&o()&&(w()||!0!==h.props.followCursor)&&h.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",f):a()}function c(){o()&&f(v)}function x(){e.removeEventListener("mousemove",f)}function f(e){var t,n=v=e,r=n.clientX,i=n.clientY;if(h.popperInstance&&h.state.currentPlacement){var o=E.closestCallback(e.target,function(e){return e===g}),a=g.getBoundingClientRect(),s=h.props.followCursor,l="horizontal"===s,u="vertical"===s,c=E.includes(["top","bottom"],E.getBasePlacement(h.state.currentPlacement)),f={size:t=c?b.offsetWidth:b.offsetHeight,x:c?t:0,y:c?0:t},d=f.size,p=f.x,m=f.y;!o&&h.props.interactive||(null===y&&(y=h.popperInstance.reference),h.popperInstance.reference={referenceNode:g,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return{width:c?d:0,height:c?0:d,top:(l?a.top:i)-m,bottom:(l?a.bottom:i)+m,left:(u?a.left:r)-p,right:(u?a.right:r)+p}}},h.popperInstance.update()),w()&&x()}}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=E.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(c)},onMount:function(){c(),l()},onShow:function(){t()&&(v=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(E.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},v=t),s(),u())},onUntrigger:function(){h.state.isVisible||(x(),n=null)},onHidden:function(){x(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=o?r.left:i.left,u=o?r.right:i.right;return{top:a,bottom:s,left:l,right:u,width:u-l,height:s-a};case"left":case"right":var c=Math.min.apply(Math,n.map(function(e){return e.left})),f=Math.max.apply(Math,n.map(function(e){return e.right})),d=n.filter(function(e){return"left"===t?e.left===c:e.right===f}),p=d[0].top,m=d[d.length-1].bottom;return{top:p,bottom:m,left:c,right:f,width:f-c,height:m-p};default:return e}}(e.state.currentPlacement&&E.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),E.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=E.createTippyWithPlugins,o.default=E.tippy,o.hideAll=E.hideAll,o.roundArrow=E.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(a,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==d.env.NODE_ENV&&E.errorWhen(!Array.isArray(a),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(a)].join(" ")),t=e.plugins||t,a.forEach(function(e){e.disable()});var s,l,u=E._extends({},E.defaultProps,{},e).aria,r=!1,c=a.map(function(e){return e.reference}),n={fn:function(i){function o(e){if(s){var t="aria-"+s;e&&!i.props.interactive?l.setAttribute(t,i.popperChildren.tooltip.id):l.removeAttribute(t)}}return{onAfterUpdate:function(e,t){var n=t.aria;void 0!==n&&n!==u&&(r?(r=!0,i.setProps({aria:null}),r=!1):u=n)},onDestroy:function(){a.forEach(function(e){e.enable()})},onMount:function(){o(!0)},onUntrigger:function(){o(!1)},onTrigger:function(e,t){var n=t.currentTarget,r=c.indexOf(n);n!==l&&(l=n,s=u,i.state.isVisible&&o(!0),i.popperInstance.reference=n,i.setContent(a[r].props.content))}}}};return E.tippy(E.div(),E._extends({},e,{plugins:[n].concat(t),aria:null,triggerTarget:c}))},o.delegate=function(e,i,t){void 0===t&&(t=[]),"production"!==d.env.NODE_ENV&&E.errorWhen(!(i&&i.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=i.plugins||t;var o=[],a=[],s=i.target,n=E.removeProperties(i,["target"]),r=E._extends({},n,{plugins:t,trigger:"manual"}),l=E._extends({},n,{plugins:t,showOnCreate:!0}),u=E.tippy(e,r);function c(e){if(e.target){var t=e.target.closest(s);if(t){var n=t.getAttribute("data-tippy-trigger")||i.trigger||E.defaultProps.trigger;if(E.includes(n,p[e.type])){var r=E.tippy(t,l);r&&(a=a.concat(r))}}}}function f(e,t,n,r){void 0===r&&(r=!1),e.addEventListener(t,n,r),o.push({node:e,eventType:t,handler:n,options:r})}return E.normalizeToArray(u).forEach(function(e){var t,n=e.destroy;e.destroy=function(e){void 0===e&&(e=!0),e&&a.forEach(function(e){e.destroy()}),a=[],o.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),o=[],n()},f(t=e.reference,"mouseover",c),f(t,"focusin",c),f(t,"click",c)}),u},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}).call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1,s={view:function(e){return(0,r.default)("span",(t=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(t).format("0,0.00")+" GDD"));var t},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}};n.default=s},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,i=(r=e("mithril"))&&r.__esModule?r:{default:r},o={view:function(e){return(0,i.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,i.default)("div.modal-dialog",{role:"document"},(0,i.default)("div.modal-content",[(0,i.default)("p.grid-header",e.attrs.title),(0,i.default)("div.modal-body",e.attrs.body),(0,i.default)("div.modal-footer",[(0,i.default)("button.btn.btn-primary",{type:"button","data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}};n.default=o},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,i=(r=e("mithril"))&&r.__esModule?r:{default:r};function o(e,t){for(var n=0;n';if(t+='
'+e.description.title+"
",null!=e.description.lines){for(var n in t+="
    ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],o="mdi ";if("+"===r)o+=" mdi-check color-primary";else if("-"===r)o+=" mdi-close color-danger";else{if("/"!==r)continue;o+=" mdi-alert-circle-outline color-warning"}t+="
  • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
  • "}t+="
"}return t+"
"}}]),s);function s(e){!function(e){if(!(e instanceof s))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=a},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","{{user-transactions-overview}}","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederherstellt.","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Community-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FAILED:"Fehler beim Kopieren",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert"}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}var s={view:function(e){return void 0===g_users?(0,r.default)(""):0"+s.toLocaleTimeString()}var l=!1;t.hasActions()&&(l=t.getRawColor());var u="down";return e.attrs.open&&(u="up"),(0,c.default)("tr",[(0,c.default)("td",!1!==l?(0,c.default)("i.mdi.mdi-menu-"+u+".btn.btn-xs.btn-"+l,{onclick:e.attrs.btnClick}):null),(0,c.default)("td.pr-0",[(0,c.default)("span.text-black.font-weight-medium.d-block",n.name),(0,c.default)((0,p.default)((0,c.default)("span",[(0,c.default)("span.status-indicator.rounded-indicator.small."+r),(0,c.default)("small",i)])),{accountState:t})]),(0,c.default)("td",n.email),(0,c.default)("td",(0,c.default)(d.default,{centAmount:n.balance})),(0,c.default)("td",{title:n.pubkeyhex},o),(0,c.default)("td",c.default.trust(a))])},oninit:function(e){}};n.default=i},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); +!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
'+e.description.title+"
",null!=e.description.lines){for(var n in t+="
    ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
  • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
  • "}t+="
"}return t+"
"}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("
    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u=r(e("mithril")),c=r(e("../../model/AccountState")),d=r(e("../../lib/Gradido")),f=r(e("../../lib/Tooltip"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){var t=new c.default(e.attrs.user.indicator.name),n=e.attrs.user,r=t.getColor(),i=t.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(l=new Date(a)).toLocaleDateString()+"
    "+l.toLocaleTimeString());var s=!1;t.hasActions()&&(s=t.getRawColor(),s="primary");var l="down";return e.attrs.open&&(l="up"),(0,u.default)("tr",[(0,u.default)("td",!1!==s?(0,u.default)("i.mdi.mdi-menu-"+l+".btn.btn-xs.btn-"+s,{onclick:e.attrs.btnClick}):null),(0,u.default)("td.pr-0",[(0,u.default)("span.text-black.font-weight-medium.d-block",n.name),(0,u.default)((0,f.default)((0,u.default)("span",[(0,u.default)("span.status-indicator.rounded-indicator.small."+r),(0,u.default)("small",i)])),{accountState:t})]),(0,u.default)("td",n.email),(0,u.default)("td",(0,u.default)(d.default,{centAmount:n.balance})),(0,u.default)("td",{title:n.pubkeyhex},o),(0,u.default)("td",u.default.trust(a))])},oninit:function(e){}}},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); From aa6b00f8a1415a3f3b74037770f36f7d1b4d3f7b Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 15:00:59 +0000 Subject: [PATCH 30/91] shorten oversize emails and show them in modal dialog --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 5fe24b680..aa4c8978e 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u=r(e("mithril")),c=r(e("../../model/AccountState")),d=r(e("../../lib/Gradido")),f=r(e("../../lib/Tooltip"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){var t=new c.default(e.attrs.user.indicator.name),n=e.attrs.user,r=t.getColor(),i=t.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(l=new Date(a)).toLocaleDateString()+"
    "+l.toLocaleTimeString());var s=!1;t.hasActions()&&(s=t.getRawColor(),s="primary");var l="down";return e.attrs.open&&(l="up"),(0,u.default)("tr",[(0,u.default)("td",!1!==s?(0,u.default)("i.mdi.mdi-menu-"+l+".btn.btn-xs.btn-"+s,{onclick:e.attrs.btnClick}):null),(0,u.default)("td.pr-0",[(0,u.default)("span.text-black.font-weight-medium.d-block",n.name),(0,u.default)((0,f.default)((0,u.default)("span",[(0,u.default)("span.status-indicator.rounded-indicator.small."+r),(0,u.default)("small",i)])),{accountState:t})]),(0,u.default)("td",n.email),(0,u.default)("td",(0,u.default)(d.default,{centAmount:n.balance})),(0,u.default)("td",{title:n.pubkeyhex},o),(0,u.default)("td",u.default.trust(a))])},oninit:function(e){}}},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); +!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Mon, 22 Mar 2021 15:04:08 +0000 Subject: [PATCH 31/91] update oversized size, from 25 to 23 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index aa4c8978e..6a71db82c 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23 Date: Mon, 22 Mar 2021 15:05:07 +0000 Subject: [PATCH 32/91] update oversized size, from 23 to 22 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6a71db82c..6c21eea05 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22 Date: Mon, 22 Mar 2021 16:06:10 +0100 Subject: [PATCH 33/91] clear for deploy phase 1 WIP --- frontend/src/routes/routes.js | 7 ++- frontend/src/views/KontoOverview/GddSent.vue | 53 +++++++++++++------ .../src/views/KontoOverview/GddStatus.vue | 11 ++-- frontend/src/views/Layout/ContentFooter.vue | 5 +- frontend/src/views/Pages/Explorer.vue | 28 ++++++++++ 5 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 frontend/src/views/Pages/Explorer.vue diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 4acb71d90..256758d3a 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -26,6 +26,11 @@ const routes = [ { path: '/password', component: () => import('../views/Pages/Password.vue') + }, + { + path: '/explorer', + name: 'Explorer', + component: () => import('../views/Pages/Explorer.vue'), } ] }, @@ -68,7 +73,7 @@ const routes = [ meta: { requiresAuth: true } - } + } ] } ]; diff --git a/frontend/src/views/KontoOverview/GddSent.vue b/frontend/src/views/KontoOverview/GddSent.vue index b0a153b3b..2d2a858c7 100644 --- a/frontend/src/views/KontoOverview/GddSent.vue +++ b/frontend/src/views/KontoOverview/GddSent.vue @@ -6,6 +6,9 @@ {{ $t('site.overview.send_gradido') }} + + Achtung! Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden. +
    @@ -28,6 +31,10 @@
    + + Empfänger + + - - + +
    + + Betrag + + + maximale anzahl GDD zum versenden erreicht! + - - +
    GDD
    - - -
    GDD
    -
    + {{$store.state.user.balance}} + -
    + + + Nachricht für den Empfänger (optional) + + - - + + - +
    + {{$refs.observer}}
    + + + + {{$t('form.send_now')}} {{$t('form.cancel')}}
    @@ -110,17 +129,21 @@ export default { }, data(){ return { - scan: false, + scan: false, show: true, form: { img: '', email: '', amount: '', memo:'' - } + }, + sent: false, } }, methods: { + sendbutton(){ + this.sent = true + }, async onDecode (decodedString) { console.log('onDecode JSON.parse(decodedString)',JSON.parse(decodedString) ) const arr = JSON.parse(decodedString) diff --git a/frontend/src/views/KontoOverview/GddStatus.vue b/frontend/src/views/KontoOverview/GddStatus.vue index 048e40a78..13d60fd13 100644 --- a/frontend/src/views/KontoOverview/GddStatus.vue +++ b/frontend/src/views/KontoOverview/GddStatus.vue @@ -4,7 +4,8 @@ + class="mb-4" + style="font-size: -webkit-xxx-large"> {{ $n($store.state.user.balance) }} GDD @@ -22,12 +23,6 @@ \ No newline at end of file diff --git a/frontend/src/views/Layout/ContentFooter.vue b/frontend/src/views/Layout/ContentFooter.vue index d7c9d3e77..fb913523e 100755 --- a/frontend/src/views/Layout/ContentFooter.vue +++ b/frontend/src/views/Layout/ContentFooter.vue @@ -3,7 +3,7 @@
    - © {{year}} Gradido Wallet + © {{year}} Gradido Wallet
    @@ -17,6 +17,9 @@ {{$t('privacy_policy')}} + + GDD-Explorer +
    diff --git a/frontend/src/views/Pages/Explorer.vue b/frontend/src/views/Pages/Explorer.vue new file mode 100644 index 000000000..edd6dbcc0 --- /dev/null +++ b/frontend/src/views/Pages/Explorer.vue @@ -0,0 +1,28 @@ + From fe21d2d796794ba44520c56c9aecb8127a236cf4 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 15:12:20 +0000 Subject: [PATCH 34/91] update oversized size, from 23 to 25, but subtract additonal 3 char for the points --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6c21eea05..9dd4f94f9 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Fri, 19 Mar 2021 15:50:08 +0100 Subject: [PATCH 35/91] sprache angepasst, for login, pwd, sigin --- frontend/package.json | 1 + frontend/src/App.vue | 3 + frontend/src/locales/de.json | 4 +- frontend/src/locales/en.json | 6 +- frontend/src/main.js | 2 +- frontend/src/plugins/dashboard-plugin.js | 4 + frontend/src/store/store.js | 22 ++- frontend/src/views/Layout/AuthLayout.vue | 3 - frontend/src/views/Layout/AuthLayout_gdd.vue | 46 ++---- frontend/src/views/Layout/ContentFooter.vue | 22 +-- frontend/src/views/Layout/DashboardLayout.vue | 8 +- frontend/src/views/Pages/Password.vue | 6 +- .../src/views/Pages/UserProfileActivity.vue | 58 +++++++- frontend/src/views/Starter/SampleFooter.vue | 37 ----- frontend/src/views/Starter/SampleLayout.vue | 77 ---------- frontend/src/views/Starter/SampleNavbar.vue | 137 ------------------ frontend/src/views/Starter/SamplePage.vue | 95 ------------ frontend/yarn.lock | 5 + 18 files changed, 125 insertions(+), 411 deletions(-) delete mode 100644 frontend/src/views/Starter/SampleFooter.vue delete mode 100755 frontend/src/views/Starter/SampleLayout.vue delete mode 100644 frontend/src/views/Starter/SampleNavbar.vue delete mode 100755 frontend/src/views/Starter/SamplePage.vue diff --git a/frontend/package.json b/frontend/package.json index 5100e736a..95dcda5ec 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -41,6 +41,7 @@ "vue-clickaway": "^2.2.2", "vue-clipboard2": "^0.3.0", "vue-cookies": "^1.7.4", + "vue-country-flag": "^2.0.3", "vue-flatpickr-component": "^8.1.2", "vue-good-table": "^2.21.3", "vue-i18n": "^8.22.4", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 925cb52f6..2756c5314 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -19,11 +19,14 @@ export default { ParticlesBg }, created () { + console.log( "xx", $cookies.get("gdd_lang")) console.log('%cWillkommen bei Gradido %cgreen text', 'font-weight:bold', 'color: green') if ( $cookies.isKey("gdd_session_id") == true) { console.log('%cHey %c'+$cookies.get("gdd_u")+'', 'font-weight:bold', 'color: orange') this.$store.commit('session_id', $cookies.get("gdd_session_id")) this.$store.commit('email', $cookies.get("gdd_u")) + this.$store.commit('language', $cookies.get("gdd_lang")) + this.$i18n.locale = $cookies.get("gdd_lang") this.$router.push("overview") }else { console.log("app.vue to Logout") diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 4b3088866..efec06a10 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -1,13 +1,13 @@ { "message": "hallo gradido !!", "welcome":"Willkommen!", - "logout":"Logout", + "logout":"Abmelden", "login":"Login", "signup": "Registrieren", "imprint":"Impressum", "privacy_policy":"Datenschutzerklärung", - "license":"Lizenz", "back":"zurück", + "sent":"Senden", "transactions":"Transaktionen", "language":"Sprachen", "languages":{ diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index e5757458c..37b510d7e 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -4,10 +4,10 @@ "logout":"Logout", "login":"Login", "signup": "Sign up", - "imprint":"Imprint", + "imprint":"Legal notice", "privacy_policy":"Privacy policy", - "license":"License", "back":"back", + "sent":"Sent", "transactions":"transactions", "language":"Language", "languages":{ @@ -40,7 +40,7 @@ "site": { "login": { "community":"You are the community", - "remember":"Remember me", + "remember":"Remember password", "signin":"Sign in", "forgot_pwd":"Forgot password?", "new_wallet":"Create new wallet" diff --git a/frontend/src/main.js b/frontend/src/main.js index d98768a6e..78d03e58f 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -14,7 +14,7 @@ import router from './routes/router'; Vue.use(DashboardPlugin); Vue.config.productionTip = false; Vue.use(VueCookies); - + /* eslint-disable no-new */ new Vue({ diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index a903cab74..67b161292 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -37,6 +37,9 @@ import 'vue-good-table/dist/vue-good-table.css'; import VueMoment from 'vue-moment'; +import CountryFlag from 'vue-country-flag' + + Object.keys(rules).forEach(rule => { extend(rule, { ...rules[rule], // copies rule configuration @@ -56,6 +59,7 @@ export default { Vue.use(VueQrcodeReader); Vue.use(VueQrcode); Vue.use(VueFlatPickr); + Vue.use(CountryFlag); configure({ classes: { valid: 'is-valid', diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index c33fbb338..bf4b610bb 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -7,11 +7,13 @@ import communityAPI from '../apis/communityAPI' import axios from 'axios' //import CONFIG from '../config' - export const store = new Vuex.Store({ state: { session_id: null, email: null, + language: 'en', + sizeDE: 'normal', + sizeGB: 'big', user : { name:"", balance: 0, @@ -43,6 +45,19 @@ export const store = new Vuex.Store({ }, // Syncronous mutation of the state mutations: { + language: (state, language) => { + console.log('mutation: language', language) + state.language = language + $cookies.set('gdd_lang', language); + if (state.language == "de") { + state.sizeDE = 'big' + state.sizeGB = 'normal' + } else { + state.sizeDE = 'normal' + state.sizeGB = 'big' + } + + }, email: (state, email) => { //console.log('mutation: email') state.email = email @@ -77,12 +92,14 @@ export const store = new Vuex.Store({ // console.log('result.data.state',result.data.state) // console.log('result.data.session_id',result.data.session_id) - + if( result.success){ commit('session_id', result.result.data.session_id) commit('email', data.email) $cookies.set('gdd_session_id', result.result.data.session_id); $cookies.set('gdd_u', data.email); + + router.push('/overview') } else { // Register failed, we perform a logout @@ -128,6 +145,7 @@ export const store = new Vuex.Store({ commit('email', null) $cookies.remove('gdd_session_id'); $cookies.remove('gdd_u'); + $cookies.remove('gdd_lang'); router.push('/Login') }, ajaxCreate: async ({ dispatch, state }) => { diff --git a/frontend/src/views/Layout/AuthLayout.vue b/frontend/src/views/Layout/AuthLayout.vue index 089950afd..90b519392 100755 --- a/frontend/src/views/Layout/AuthLayout.vue +++ b/frontend/src/views/Layout/AuthLayout.vue @@ -61,9 +61,6 @@ Datenschutzerklärung - - License - diff --git a/frontend/src/views/Layout/AuthLayout_gdd.vue b/frontend/src/views/Layout/AuthLayout_gdd.vue index b53eb676f..4dee33b6e 100644 --- a/frontend/src/views/Layout/AuthLayout_gdd.vue +++ b/frontend/src/views/Layout/AuthLayout_gdd.vue @@ -2,47 +2,23 @@
    diff --git a/frontend/src/views/Starter/SampleFooter.vue b/frontend/src/views/Starter/SampleFooter.vue deleted file mode 100644 index 7786a507c..000000000 --- a/frontend/src/views/Starter/SampleFooter.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/frontend/src/views/Starter/SampleLayout.vue b/frontend/src/views/Starter/SampleLayout.vue deleted file mode 100755 index 5b3d69f21..000000000 --- a/frontend/src/views/Starter/SampleLayout.vue +++ /dev/null @@ -1,77 +0,0 @@ - - diff --git a/frontend/src/views/Starter/SampleNavbar.vue b/frontend/src/views/Starter/SampleNavbar.vue deleted file mode 100644 index 859f4464b..000000000 --- a/frontend/src/views/Starter/SampleNavbar.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/frontend/src/views/Starter/SamplePage.vue b/frontend/src/views/Starter/SamplePage.vue deleted file mode 100755 index e0dee359f..000000000 --- a/frontend/src/views/Starter/SamplePage.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 06586d16a..aecec84d1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -9626,6 +9626,11 @@ vue-cookies@^1.7.4: resolved "https://registry.yarnpkg.com/vue-cookies/-/vue-cookies-1.7.4.tgz#d241d0a0431da0795837651d10b4d73e7c8d3e8d" integrity sha512-mOS5Btr8V9zvAtkmQ7/TfqJIropOx7etDAgBywPCmHjvfJl2gFbH2XgoMghleLoyyMTi5eaJss0mPN7arMoslA== +vue-country-flag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vue-country-flag/-/vue-country-flag-2.0.3.tgz#f644d8f5150a97f473f0c13e04622c6ede37d1de" + integrity sha512-QZM3hNNhnGU+G1qnpq1BiICE4Zh91UA++/UpM0go8XbxkVxTiPy4asWY07vL/3PtW8M69YqWVbhwG13rzvNwkA== + vue-eslint-parser@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" From 48b5b02946ae4f77e98bed3d75853f7a773f246b Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 22 Mar 2021 16:06:10 +0100 Subject: [PATCH 36/91] clear for deploy phase 1 WIP --- frontend/src/routes/routes.js | 7 ++- frontend/src/views/KontoOverview/GddSent.vue | 53 +++++++++++++------ .../src/views/KontoOverview/GddStatus.vue | 11 ++-- frontend/src/views/Layout/ContentFooter.vue | 5 +- frontend/src/views/Pages/Explorer.vue | 28 ++++++++++ 5 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 frontend/src/views/Pages/Explorer.vue diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 4acb71d90..256758d3a 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -26,6 +26,11 @@ const routes = [ { path: '/password', component: () => import('../views/Pages/Password.vue') + }, + { + path: '/explorer', + name: 'Explorer', + component: () => import('../views/Pages/Explorer.vue'), } ] }, @@ -68,7 +73,7 @@ const routes = [ meta: { requiresAuth: true } - } + } ] } ]; diff --git a/frontend/src/views/KontoOverview/GddSent.vue b/frontend/src/views/KontoOverview/GddSent.vue index b0a153b3b..2d2a858c7 100644 --- a/frontend/src/views/KontoOverview/GddSent.vue +++ b/frontend/src/views/KontoOverview/GddSent.vue @@ -6,6 +6,9 @@ {{ $t('site.overview.send_gradido') }} + + Achtung! Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden. +
    @@ -28,6 +31,10 @@
    + + Empfänger + + - - + +
    + + Betrag + + + maximale anzahl GDD zum versenden erreicht! + - - +
    GDD
    - - -
    GDD
    -
    + {{$store.state.user.balance}} + -
    + + + Nachricht für den Empfänger (optional) + + - - + + - +
    + {{$refs.observer}}
    + + + + {{$t('form.send_now')}} {{$t('form.cancel')}}
    @@ -110,17 +129,21 @@ export default { }, data(){ return { - scan: false, + scan: false, show: true, form: { img: '', email: '', amount: '', memo:'' - } + }, + sent: false, } }, methods: { + sendbutton(){ + this.sent = true + }, async onDecode (decodedString) { console.log('onDecode JSON.parse(decodedString)',JSON.parse(decodedString) ) const arr = JSON.parse(decodedString) diff --git a/frontend/src/views/KontoOverview/GddStatus.vue b/frontend/src/views/KontoOverview/GddStatus.vue index 048e40a78..13d60fd13 100644 --- a/frontend/src/views/KontoOverview/GddStatus.vue +++ b/frontend/src/views/KontoOverview/GddStatus.vue @@ -4,7 +4,8 @@ + class="mb-4" + style="font-size: -webkit-xxx-large"> {{ $n($store.state.user.balance) }} GDD @@ -22,12 +23,6 @@ \ No newline at end of file diff --git a/frontend/src/views/Layout/ContentFooter.vue b/frontend/src/views/Layout/ContentFooter.vue index d7c9d3e77..fb913523e 100755 --- a/frontend/src/views/Layout/ContentFooter.vue +++ b/frontend/src/views/Layout/ContentFooter.vue @@ -3,7 +3,7 @@
    - © {{year}} Gradido Wallet + © {{year}} Gradido Wallet
    @@ -17,6 +17,9 @@ {{$t('privacy_policy')}} + + GDD-Explorer +
    diff --git a/frontend/src/views/Pages/Explorer.vue b/frontend/src/views/Pages/Explorer.vue new file mode 100644 index 000000000..edd6dbcc0 --- /dev/null +++ b/frontend/src/views/Pages/Explorer.vue @@ -0,0 +1,28 @@ + From a6ee7fe57ee5d5e098e546fb063f783537a8bcfe Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 22 Mar 2021 14:17:34 +0100 Subject: [PATCH 37/91] setup for unit tests in frontend --- frontend/.babelrc | 25 + frontend/.gitignore | 2 + frontend/package.json | 38 +- frontend/src/components/CloseButton.spec.js | 33 + frontend/test/registerContext.js | 2 + frontend/yarn.lock | 1897 ++++++++++++++++++- 6 files changed, 1947 insertions(+), 50 deletions(-) create mode 100644 frontend/.babelrc create mode 100644 frontend/src/components/CloseButton.spec.js create mode 100644 frontend/test/registerContext.js diff --git a/frontend/.babelrc b/frontend/.babelrc new file mode 100644 index 000000000..b05ad522d --- /dev/null +++ b/frontend/.babelrc @@ -0,0 +1,25 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "modules": false + } + ] + ], + "env": { + "test": { + "plugins": ["require-context-hook"], + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "10" + } + } + ] + ] + } + } +} \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore index 82783fce2..fbdbf35b6 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -18,3 +18,5 @@ package-lock.json *.ntvs* *.njsproj *.sln + +*~ \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 5100e736a..e039710fa 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,10 +8,44 @@ "build": "vue-cli-service build", "lint": "vue-cli-service lint", "dev": "yarn run serve", - "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'" + "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'", + "test": "jest" + }, + "jest": { + "verbose": true, + "collectCoverageFrom": [ + "**/*.{js,vue}", + "!**/node_modules/**", + "!**/?(*.)+(spec|test).js?(x)" + ], + "moduleFileExtensions": [ + "js", + "json", + "vue" + ], + "coverageReporters": [ + "lcov" + ], + "moduleNameMapper": { + "^@/(.*)$": "/src/$1" + }, + "transform": { + ".*\\.(vue)$": "vue-jest", + "^.+\\.js$": "babel-jest" + }, + "setupFiles": [ + "/test/registerContext.js" + ], + "testMatch": [ + "**/?(*.)+(spec|test).js?(x)" + ] }, "dependencies": { + "@vue/test-utils": "^1.1.3", "axios": "^0.21.1", + "babel-core": "^7.12.3", + "babel-jest": "^26.6.3", + "babel-plugin-require-context-hook": "^1.0.0", "bootstrap": "4.3.1", "bootstrap-vue": "^2.5.0", "chart.js": "^2.9.3", @@ -27,6 +61,7 @@ "flatpickr": "^4.5.7", "fuse.js": "^3.2.0", "google-maps": "^3.2.1", + "jest": "^26.6.3", "nouislider": "^12.1.0", "particles-bg-vue": "1.2.3", "perfect-scrollbar": "^1.3.0", @@ -44,6 +79,7 @@ "vue-flatpickr-component": "^8.1.2", "vue-good-table": "^2.21.3", "vue-i18n": "^8.22.4", + "vue-jest": "^3.0.7", "vue-moment": "^4.1.0", "vue-qrcode": "^0.3.5", "vue-qrcode-reader": "^2.3.16", diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js new file mode 100644 index 000000000..8ebd17a73 --- /dev/null +++ b/frontend/src/components/CloseButton.spec.js @@ -0,0 +1,33 @@ +import { mount } from '@vue/test-utils' + +import CloseButton from './CloseButton' + +const localVue = global.localVue + +describe('CloseButton', () => { + + let wrapper + let propsData = { + taget: ["Target", 0], + expanded: false, + } + + const Wrapper = () => { + return mount(CloseButton, { localVue, propsData }) + } + + describe('mount', () => { + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('emmits click event', () => { + console.log(wrapper.html()) + wrapper.find('.navbar-toggler').trigger('click') + expect(wrapper.emitted('click')).toBeTruthy() + }) + + }) + +}) diff --git a/frontend/test/registerContext.js b/frontend/test/registerContext.js new file mode 100644 index 000000000..a27ca2f7a --- /dev/null +++ b/frontend/test/registerContext.js @@ -0,0 +1,2 @@ +import registerRequireContextHook from 'babel-plugin-require-context-hook/register' +registerRequireContextHook() diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 06586d16a..6086562f9 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -14,6 +14,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.6.tgz#11972d07db4c2317afdbf41d6feb3a730301ef4e" integrity sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw== +"@babel/compat-data@^7.13.8": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.11.tgz#9c8fe523c206979c9a81b1e12fe50c1254f1aa35" + integrity sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== + "@babel/core@^7.0.0": version "7.13.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.1.tgz#7ddd027176debe40f13bb88bac0c21218c5b1ecf" @@ -36,6 +41,28 @@ semver "7.0.0" source-map "^0.5.0" +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" + integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.10" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.10" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/generator@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.0.tgz#bd00d4394ca22f220390c56a0b5b85568ec1ec0c" @@ -45,6 +72,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.13.9": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" @@ -70,6 +106,16 @@ browserslist "^4.14.5" semver "7.0.0" +"@babel/helper-compilation-targets@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" + integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.0.tgz#28d04ad9cfbd1ed1d8b988c9ea7b945263365846" @@ -178,7 +224,7 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== @@ -252,6 +298,15 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/helpers@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + "@babel/highlight@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" @@ -261,6 +316,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.13.10": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.11.tgz#f93ebfc99d21c1772afbbaa153f47e7ce2f50b88" + integrity sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== + "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.7.0": version "7.13.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.4.tgz#340211b0da94a351a6f10e63671fa727333d13ab" @@ -325,13 +385,27 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-decorators@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" @@ -346,7 +420,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -360,20 +441,55 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" @@ -670,7 +786,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": +"@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== @@ -679,7 +795,7 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== @@ -703,7 +819,7 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.7.0": +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== @@ -712,6 +828,19 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -753,6 +882,193 @@ cssnano-preset-default "^4.0.0" postcss "^7.0.0" +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -775,6 +1091,20 @@ consola "^2.15.0" node-fetch "^2.6.1" +"@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@soda/friendly-errors-webpack-plugin@^1.7.1": version "1.8.0" resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz#84751d82a93019d5c92c0cf0e45ac59087cd2240" @@ -785,6 +1115,39 @@ string-width "^2.0.0" strip-ansi "^5" +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== + dependencies: + "@babel/types" "^7.3.0" + "@types/chart.js@^2.7.55": version "2.9.30" resolved "https://registry.yarnpkg.com/@types/chart.js/-/chart.js-2.9.30.tgz#34b99897f4f5ef0f74c8fe4ced70ac52b4d752dd" @@ -805,6 +1168,32 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + "@types/json-schema@^7.0.5": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" @@ -825,11 +1214,43 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/prettier@^2.0.0": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" + integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== + "@types/q@^1.5.1": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + "@vue/babel-helper-vue-jsx-merge-props@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" @@ -1070,6 +1491,15 @@ resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== +"@vue/test-utils@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.3.tgz#747f5683d8d4633c85a385fe2e02c1bb35bec153" + integrity sha512-BAY1Cwe9JpkJseimC295EW3YlAmgIJI9OPkg2FSP62+PHZooB0B+wceDi9TYyU57oqzL0yLbcP73JKFpKiLc9A== + dependencies: + dom-event-types "^1.0.0" + lodash "^4.17.15" + pretty "^2.0.0" + "@vue/web-component-wrapper@^1.2.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" @@ -1230,6 +1660,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1243,6 +1678,14 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -1285,6 +1728,11 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.5: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== + address@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -1345,6 +1793,13 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1402,7 +1857,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: +anymatch@^3.0.3, anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -1600,6 +2055,11 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@^7.12.3: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + babel-eslint@^10.0.1, babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -1617,6 +2077,20 @@ babel-helper-vue-jsx-merge-props@^2.0.0: resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-loader@^8.0.5: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -1627,6 +2101,13 @@ babel-loader@^8.0.5: make-dir "^3.1.0" schema-utils "^2.6.5" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + babel-plugin-component@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea" @@ -1641,6 +2122,27 @@ babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.3 dependencies: object.assign "^4.1.0" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + babel-plugin-module-resolver@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" @@ -1676,7 +2178,56 @@ babel-plugin-polyfill-regenerator@^0.1.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.1.2" -babel-runtime@6.x: +babel-plugin-require-context-hook@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.0.tgz#3f0e7cce87c338f53639b948632fd4e73834632d" + integrity sha512-EMZD1563QUqLhzrqcThk759RhuNVX/ZJdrtGK6drwzgvnR+ARjWyXIHPbu+tUNaMGtPz/gQeAM2M6VUw2UiUeA== + +babel-plugin-transform-es2015-modules-commonjs@^6.26.0: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + 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-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -1684,6 +2235,47 @@ babel-runtime@6.x: core-js "^2.4.0" regenerator-runtime "^0.11.0" +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + 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@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + 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" + +babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1856,7 +2448,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1878,6 +2470,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1950,6 +2547,13 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.70" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" @@ -2161,11 +2765,16 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -2181,6 +2790,13 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz#bacb432b6701f690c8c5f7c680166b9a9f0843d9" integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + case-sensitive-paths-webpack-plugin@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -2219,6 +2835,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -2308,6 +2929,11 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2321,6 +2947,11 @@ circular-json@^0.3.1: resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2404,6 +3035,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2422,16 +3062,16 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone@2.x, clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2451,6 +3091,11 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2516,7 +3161,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.18.0, commander@^2.20.0: +commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2576,6 +3221,23 @@ concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -2620,7 +3282,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.5.1, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -2861,6 +3523,16 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -2941,6 +3613,23 @@ csso@^4.0.2: dependencies: css-tree "^1.1.2" +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + current-script-polyfill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz#f31cf7e4f3e218b0726e738ca92a02d3488ef615" @@ -3243,6 +3932,15 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + datamaps@^0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/datamaps/-/datamaps-0.5.9.tgz#2a775473aaab29b55025208b2245e840ecfd4fe1" @@ -3267,7 +3965,15 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +deasync@^0.1.15: + version "0.1.21" + resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.21.tgz#bb11eabd4466c0d8776f0d82deb8a6126460d30f" + integrity sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w== + dependencies: + bindings "^1.5.0" + node-addon-api "^1.7.1" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3293,6 +3999,11 @@ decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -3320,7 +4031,7 @@ deepmerge@^1.2.0, deepmerge@^1.5.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== -deepmerge@^4.2.0: +deepmerge@^4.2.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -3422,6 +4133,11 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -3432,6 +4148,11 @@ diacriticless@1.0.1: resolved "https://registry.yarnpkg.com/diacriticless/-/diacriticless-1.0.1.tgz#e7dda978c2919609bb48aee1efc5de6a337bd4c3" integrity sha1-592peMKRlgm7SK7h78XeajN71MM= +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -3494,6 +4215,11 @@ dom-converter@^0.2: dependencies: utila "~0.4" +dom-event-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" + integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -3517,6 +4243,13 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -3616,6 +4349,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3656,6 +4399,11 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -3851,6 +4599,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escodegen@^1.11.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -3863,6 +4616,18 @@ escodegen@^1.11.1: optionalDependencies: source-map "~0.6.1" +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@~1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" @@ -4164,6 +4929,11 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exec-sh@^0.3.2: + version "0.3.5" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.5.tgz#1b46bd6bcbf54fdc1e926a4f3d90126d42cec3df" + integrity sha512-0hzpaUazv4mEccxdn3TXC+HWNeVXNKMCJRK6E7Xyg+LwGAYI3yFag6jTkd4injV+kChYDQS1ftqDhnDVWNhU8A== + execa@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" @@ -4206,6 +4976,26 @@ execa@^3.3.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -4219,6 +5009,18 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + express@^4.16.3, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -4314,6 +5116,13 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-from-css@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" + integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= + dependencies: + css "^2.1.0" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4388,6 +5197,13 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -4529,7 +5345,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4665,7 +5481,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1: +fsevents@^2.1.2, fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -4735,6 +5551,11 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -4796,7 +5617,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4813,6 +5634,11 @@ globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -4871,11 +5697,16 @@ google-maps@^3.2.1: resolved "https://registry.yarnpkg.com/google-maps/-/google-maps-3.3.0.tgz#4432b4715406bc15268ad35b1dd1b04d974956a6" integrity sha512-pj4En0cWKG+lcBvC7qrzu5ItiMsYNTgjG2capsPzAbAM/O8ftugGpUUftTTwdGL8KlNvB4CEZ6IBWwpWYzUEpw== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + gzip-size@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -5048,11 +5879,23 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + html-minifier@^3.2.3: version "3.5.21" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" @@ -5258,6 +6101,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5308,6 +6159,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -5449,6 +6305,13 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -5554,6 +6417,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5621,6 +6489,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-regex@^1.0.4, is-regex@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" @@ -5658,7 +6531,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -5673,6 +6546,11 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5683,7 +6561,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -5722,16 +6600,441 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + javascript-stringify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + js-base64@^2.1.8: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.13.5" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.5.tgz#a08a97890cae55daf1d758d3f6577bd4a64d7014" + integrity sha512-MsXlH6Z/BiRYSkSRW3clNDqDjSpiSNOiG8xYVUBXt4k0LnGvDhlTGOlHX1VFtAdoLmtwjxMG5qiWKy/g+Ipv5w== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "^1.0.4" + nopt "^5.0.0" + js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -5772,6 +7075,38 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom@^16.4.0: + version "16.5.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.1.tgz#4ced6bbd7b77d67fb980e64d9e3e6fb900f97dd6" + integrity sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA== + dependencies: + abab "^2.0.5" + acorn "^8.0.5" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "6.0.1" + request "^2.88.2" + request-promise-native "^1.0.9" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.4.4" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5887,6 +7222,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + launch-editor-middleware@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" @@ -5902,6 +7242,11 @@ launch-editor@^2.2.1: chalk "^2.3.0" shell-quote "^1.6.1" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -6031,6 +7376,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.transform@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" @@ -6078,7 +7428,7 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -6122,13 +7472,20 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -6255,6 +7612,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -6322,7 +7687,7 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -6374,6 +7739,11 @@ mixin-deep@^1.2.0: dependencies: minimist "^1.2.5" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + moment@^2.10.2, moment@^2.19.2: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" @@ -6492,6 +7862,19 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-addon-api@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-cache@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" + integrity sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A== + dependencies: + clone "2.x" + lodash "^4.17.15" + node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -6520,6 +7903,11 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + node-ipc@^9.1.1: version "9.1.3" resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.3.tgz#1df3f069d103184ae9127fa885dbdaea56a4436f" @@ -6558,6 +7946,23 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + node-releases@^1.1.70: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" @@ -6593,6 +7998,13 @@ node-sass@^4.12.0: dependencies: abbrev "1" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -6691,6 +8103,11 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -6899,6 +8316,11 @@ osenv@0: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -7042,16 +8464,16 @@ parse5-htmlparser2-tree-adapter@^6.0.0: dependencies: parse5 "^6.0.1" +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parse5@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -7165,7 +8587,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -7197,6 +8619,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -7218,7 +8647,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -7639,6 +9068,25 @@ pretty-error@^2.0.2: lodash "^4.17.20" renderkid "^2.0.4" +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7659,6 +9107,19 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + proton-engine@^4.1.3: version "4.2.1" resolved "https://registry.yarnpkg.com/proton-engine/-/proton-engine-4.2.1.tgz#db938e4f673ddbd91ac70628b0733283a4571ef7" @@ -7682,7 +9143,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28: +psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -7858,6 +9319,11 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -7866,6 +9332,15 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -7875,7 +9350,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^5.0.0: +read-pkg@^5.0.0, read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -8055,7 +9530,7 @@ request-promise-core@1.1.4: dependencies: lodash "^4.17.19" -request-promise-native@^1.0.7: +request-promise-native@^1.0.7, request-promise-native@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== @@ -8064,7 +9539,7 @@ request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.0, request@^2.88.0: +request@^2.87.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -8130,6 +9605,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -8145,12 +9627,17 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.5, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.4.0: +resolve@^1.1.5, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.4.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -8215,6 +9702,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + rtcpeerconnection-shim@^1.2.15: version "1.2.15" resolved "https://registry.yarnpkg.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" @@ -8280,6 +9772,21 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sass-graph@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" @@ -8306,6 +9813,13 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -8523,6 +10037,16 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -8535,6 +10059,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -8545,6 +10074,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -8624,7 +10158,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-resolve@^0.5.0: +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -8635,7 +10169,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -8665,6 +10199,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -8760,6 +10299,13 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -8854,6 +10400,14 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8972,6 +10526,16 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -8994,7 +10558,7 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -9027,13 +10591,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -9063,6 +10635,11 @@ sweetalert2@^9.5.4: resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-9.17.2.tgz#7f33ce157a64c303d2ca98863c9a3f437e5f1187" integrity sha512-HkpPZVMYsnhFUBLdy/LvkU9snggKP3VAuSVnPhVXjxdg02lWbFx0W8H3m7A+WMWw2diXZS1wIa4m67XkNxdvew== +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" @@ -9099,6 +10676,14 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.2.3, terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -9123,6 +10708,15 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -9151,6 +10745,11 @@ thread-loader@^2.1.2: loader-utils "^1.1.0" neo-async "^2.6.0" +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + throttle-debounce@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" @@ -9198,11 +10797,21 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -9270,6 +10879,22 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -9287,6 +10912,16 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -9316,11 +10951,26 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -9339,6 +10989,13 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -9409,7 +11066,7 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -universalify@^0.1.0: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -9536,6 +11193,20 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -9697,6 +11368,23 @@ vue-i18n@^8.17.0, vue-i18n@^8.22.4: resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.23.0.tgz#4a65681a1dfe716d47e1d00ddbd6e0b88ea36735" integrity sha512-mXgniaumwca8tKdp55fmvqIcW658vQQXq0zEyRHp8sgZ6t+Md+Whhu6CCPg9/erVNlvpKzsGsucGjt2N8GrFCA== +vue-jest@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.7.tgz#a6d29758a5cb4d750f5d1242212be39be4296a33" + integrity sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" + chalk "^2.1.0" + deasync "^0.1.15" + extract-from-css "^0.4.4" + find-babel-config "^1.1.0" + js-beautify "^1.6.14" + node-cache "^4.1.1" + object-assign "^4.1.1" + source-map "^0.5.6" + tsconfig "^7.0.0" + vue-template-es2015-compiler "^1.6.0" + vue-loader@^15.7.0: version "15.9.6" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" @@ -9751,7 +11439,7 @@ vue-template-compiler@^2.6.11: de-indent "^1.0.2" he "^1.1.0" -vue-template-es2015-compiler@^1.9.0: +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== @@ -9771,6 +11459,27 @@ vuex@^3.6.0: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -9803,6 +11512,16 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-bundle-analyzer@^3.3.0: version "3.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" @@ -9954,6 +11673,27 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -9966,7 +11706,7 @@ which@1, which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -10006,6 +11746,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -10020,6 +11769,16 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -10041,6 +11800,21 @@ ws@^6.0.0, ws@^6.2.1: dependencies: async-limiter "~1.0.0" +ws@^7.4.4: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10079,6 +11853,14 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2: version "20.2.6" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" @@ -10100,6 +11882,23 @@ yargs@^13.2.2, yargs@^13.2.4, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yargs@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From f9b8a2d88381aec57a3199d60dbc38686ec752cf Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 22 Mar 2021 14:24:53 +0100 Subject: [PATCH 38/91] set correct version of babel core --- frontend/package.json | 2 +- frontend/yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index e039710fa..2cc5744db 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -43,7 +43,7 @@ "dependencies": { "@vue/test-utils": "^1.1.3", "axios": "^0.21.1", - "babel-core": "^7.12.3", + "babel-core": "^7.0.0-bridge.0", "babel-jest": "^26.6.3", "babel-plugin-require-context-hook": "^1.0.0", "bootstrap": "4.3.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6086562f9..cf52833bf 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2055,7 +2055,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^7.12.3: +babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== From 43a011ab2841353288b829ac10eaf0279b86cce0 Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 22 Mar 2021 19:47:37 +0100 Subject: [PATCH 39/91] sprachen angepasst --- frontend/src/locales/de.json | 2 +- frontend/src/locales/en.json | 2 +- frontend/src/views/Pages/Login.vue | 2 +- frontend/src/views/Pages/Register.vue | 1 + frontend/src/views/Pages/UserProfileActivity.vue | 3 +-- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index efec06a10..ce500351d 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -38,7 +38,7 @@ }, "site": { "login": { - "community":"Du bist die Gemeinschaft", + "community":"Tausend Dank, weil du bei uns bist!", "remember":"Passwort merken", "signin":"Anmelden", "forgot_pwd":"Passwort vergessen?", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 37b510d7e..4fb4c14d9 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -39,7 +39,7 @@ }, "site": { "login": { - "community":"You are the community", + "community":"A thousand thanks for being with us!", "remember":"Remember password", "signin":"Sign in", "forgot_pwd":"Forgot password?", diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 71c1616f6..e8515debc 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -6,7 +6,7 @@
    -

    Gradido Wallet

    +

    Gradido

    {{ $t('site.login.community')}}

    diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index d6592addd..a286ecf05 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -99,6 +99,7 @@ lastname: '', email: '', password: '', + password2: '', agree: false } } diff --git a/frontend/src/views/Pages/UserProfileActivity.vue b/frontend/src/views/Pages/UserProfileActivity.vue index 830444daf..4c38860da 100644 --- a/frontend/src/views/Pages/UserProfileActivity.vue +++ b/frontend/src/views/Pages/UserProfileActivity.vue @@ -65,8 +65,7 @@ GddTable, GddWorkTable, LineChart, - BarChart, - + BarChart }, data(){ return { From bf35ff33ad486c8181adee9b721eec07ca36e2ed Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Sat, 20 Mar 2021 10:03:27 +0100 Subject: [PATCH 40/91] better error reporting in email manager, because it seems it don't work like it should --- login_server/src/cpp/SingletonManager/EmailManager.cpp | 4 ++++ login_server/src/cpp/tasks/Thread.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/login_server/src/cpp/SingletonManager/EmailManager.cpp b/login_server/src/cpp/SingletonManager/EmailManager.cpp index 847887316..e1eee3e2c 100644 --- a/login_server/src/cpp/SingletonManager/EmailManager.cpp +++ b/login_server/src/cpp/SingletonManager/EmailManager.cpp @@ -92,6 +92,8 @@ int EmailManager::ThreadFunction() if (mPendingEmails.empty()) return 0; auto lm = LanguageManager::getInstance(); + ErrorList errors; + static const char* function_name = "PrepareEmailTask"; Poco::Net::SecureSMTPClientSession mailClientSession(mEmailAccount.url, mEmailAccount.port); mailClientSession.login(); @@ -100,6 +102,7 @@ int EmailManager::ThreadFunction() mailClientSession.login(Poco::Net::SMTPClientSession::AUTH_LOGIN, mEmailAccount.username, mEmailAccount.password); } catch (Poco::Net::SSLException& ex) { + errors.addError(new ParamError(function_name, "ssl certificate error", ex.displayText())); printf("[PrepareEmailTask] ssl certificate error: %s\nPlease make sure you have cacert.pem (CA/root certificates) next to binary from https://curl.haxx.se/docs/caextract.html\n", ex.displayText().data()); return -1; } @@ -151,6 +154,7 @@ int EmailManager::ThreadFunction() else { // error drafting email, shouldn't happend printf("[EmailManager::ThreadFunction] Error drafting email\n"); + errors.addError(new Error(function_name, "Error drafting email")); } delete email; email = nullptr; diff --git a/login_server/src/cpp/tasks/Thread.cpp b/login_server/src/cpp/tasks/Thread.cpp index 0c095aeb9..2419a1719 100644 --- a/login_server/src/cpp/tasks/Thread.cpp +++ b/login_server/src/cpp/tasks/Thread.cpp @@ -1,6 +1,7 @@ //#include "lib/Thread.h" //#include "UniversumLib.h" #include "Thread.h" +#include "../lib/ErrorList.h" namespace UniLib { namespace lib { @@ -55,6 +56,8 @@ namespace UniLib { void Thread::run() { + static const char* function_name = "Thread::run"; + ErrorList errors; //Thread* t = this; while (true) { try { @@ -77,6 +80,7 @@ namespace UniLib { { //EngineLog.writeToLog("error-code: %d", ret); printf("[Thread::%s] error running thread functon: %d, exit thread\n", __FUNCTION__, ret); + errors.addError(new ParamError(function_name, "error running thread function, exit thread", mPocoThread->getName())); return; } } @@ -85,13 +89,19 @@ namespace UniLib { threadUnlock(); //LOG_ERROR("Fehler in Thread, exit", -1); printf("[Thread::%s] exception: %s\n", __FUNCTION__, e.message().data()); + errors.addError(new ParamError(function_name, "poco exception", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); return; } } catch (Poco::TimeoutException& e) { printf("[Thread::%s] timeout exception\n", __FUNCTION__); + errors.addError(new ParamError(function_name, "poco timeout exception", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); } catch (Poco::Exception& e) { printf("[Thread::%s] exception: %s\n", __FUNCTION__, e.message().data()); + errors.addError(new ParamError(function_name, "poco exception 2", e.message())); + errors.addError(new ParamError(function_name, "thread name", mPocoThread->getName())); return; } } From db99a1077efc6aef9f98e531a170d0a07c33b6a8 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 22 Mar 2021 13:03:08 +0100 Subject: [PATCH 41/91] add optional paramater account state to user search to able to search users which haven't activated there account yet --- .../src/cpp/JSONInterface/JsonGetUsers.cpp | 15 ++++-- login_server/src/cpp/controller/User.cpp | 37 ++++++++++++--- login_server/src/cpp/controller/User.h | 2 +- login_server/src/cpp/model/table/ModelBase.h | 46 +++++++++++++++++++ 4 files changed, 89 insertions(+), 11 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp b/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp index dc6c1faac..77f5e0a24 100644 --- a/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp +++ b/login_server/src/cpp/JSONInterface/JsonGetUsers.cpp @@ -12,7 +12,8 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) int session_id = 0; std::string searchString; - + std::string accountState = ""; + static std::string emptySearchString = "... empty ..."; // if is json object if (params.type() == typeid(Poco::JSON::Object::Ptr)) { Poco::JSON::Object::Ptr paramJsonObject = params.extract(); @@ -23,6 +24,9 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) /// Throws InvalidAccessException if Var is empty. try { paramJsonObject->get("search").convert(searchString); + if (paramJsonObject->has("account_state")) { + paramJsonObject->get("account_state").convert(accountState); + } paramJsonObject->get("session_id").convert(session_id); } catch (Poco::Exception& ex) { @@ -67,17 +71,20 @@ Poco::JSON::Object* JsonGetUsers::handle(Poco::Dynamic::Var params) } auto user = session->getNewUser(); + if (searchString == emptySearchString) { + searchString = ""; + } if (user.isNull()) { return customStateError("not found", "Session didn't contain user"); } - else if (searchString == "") { - return customStateError("not found", "Search string is empty"); + else if (searchString == "" && (accountState == "" || accountState == "all")) { + return customStateError("not found", "Search string is empty and account_state is all or empty"); } else if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { return customStateError("wrong role", "User hasn't correct role"); } - auto results = controller::User::search(searchString); + auto results = controller::User::search(searchString, accountState); if (!results.size()) { return stateSuccess(); } diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 7aedbb701..e71d4b70a 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -46,24 +46,49 @@ namespace controller { return Poco::AutoPtr(user); } - std::vector User::search(const std::string& searchString) + std::vector User::search(const std::string& searchString, const std::string& accountState /* = "all" */) { auto sm = SessionManager::getInstance(); + auto cm = ConnectionManager::getInstance(); auto db = new model::table::User(); + static const char* functionName = "User::search"; std::string globalSearch = "%" + searchString + "%"; std::vector resultFromDB; - // check if search string is email - /*if (sm->isValid(searchString, VALIDATE_EMAIL)) { - resultFromDB = db->loadFromDB ("email", globalSearch); + if (accountState == "email not activated") { + + std::vector fieldNames = { "first_name", "last_name", "email", "email_checked" }; + auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); + std::vector results; + + using namespace Poco::Data::Keywords; + Poco::Data::Statement select(session); + // typedef Poco::Tuple, int> UserTuple; + select << "SELECT id, first_name, last_name, email, pubkey, created, email_checked, disabled FROM " << db->getTableName(); + select << " where email_checked = 0 "; + select, into(resultFromDB); + if (searchString != "") { + select << "AND (first_name LIKE ? OR last_name LIKE ? OR email LIKE ?)"; + select, useRef(globalSearch), useRef(globalSearch), useRef(globalSearch); + } + try { + select.execute(); + } + catch (Poco::Exception& ex) { + ErrorList errors; + errors.addError(new ParamError(functionName, "mysql error ", ex.displayText())); + errors.addError(new ParamError(functionName, "search string", searchString)); + errors.addError(new ParamError(functionName, "account state", accountState)); + errors.sendErrorsAsEmail(); + } } - else {*/ + else { std::vector fieldNames = { "first_name", "last_name", "email" }; std::vector fieldValues = { globalSearch, globalSearch, globalSearch }; resultFromDB = db->loadFromDB(fieldNames, fieldValues, model::table::MYSQL_CONDITION_OR); - //} + } db->release(); db = nullptr; diff --git a/login_server/src/cpp/controller/User.h b/login_server/src/cpp/controller/User.h index 33daa9eda..f6b124cd5 100644 --- a/login_server/src/cpp/controller/User.h +++ b/login_server/src/cpp/controller/User.h @@ -28,7 +28,7 @@ namespace controller { static Poco::AutoPtr create(); static Poco::AutoPtr create(const std::string& email, const std::string& first_name, const std::string& last_name, Poco::UInt64 passwordHashed = 0, std::string languageKey = "de"); - static std::vector search(const std::string& searchString); + static std::vector search(const std::string& searchString, const std::string& accountState = "all"); //! \brief go through whole db and search users with email_checked = false and schedule resend 7 days after email_opt_in created date //! diff --git a/login_server/src/cpp/model/table/ModelBase.h b/login_server/src/cpp/model/table/ModelBase.h index 3d3bc3ab8..13bcc467c 100644 --- a/login_server/src/cpp/model/table/ModelBase.h +++ b/login_server/src/cpp/model/table/ModelBase.h @@ -40,10 +40,19 @@ namespace model { size_t loadFromDB(const std::string& fieldName, const T& fieldValue); template bool isExistInDB(const std::string& fieldName, const T& fieldValue); + template std::vector loadFromDB(const std::string& fieldName, const WhereFieldType& fieldValue, int expectedResults = 0); + template size_t loadFromDB(const std::vector& fieldNames, const T1& field1Value, const T2& field2Value, MysqlConditionType conditionType = MYSQL_CONDITION_AND); + + template + std::vector loadMultipleFromDB( + const std::vector& fieldNames, + const T1& field1Value, const T2& field2Value, const T3& field3Value, const T4& field4Value, + MysqlConditionType conditionType = MYSQL_CONDITION_AND); + template std::vector loadFromDB(const std::vector& fieldNames, const std::vector& fieldValues, MysqlConditionType conditionType = MYSQL_CONDITION_AND, int expectedResults = 0); bool insertIntoDB(bool loadId); @@ -211,6 +220,43 @@ namespace model { return resultCount; } + template + std::vector ModelBase::loadMultipleFromDB( + const std::vector& fieldNames, + const T1& field1Value, const T2& field2Value, const T3& field3Value, const T4& field4Value, + MysqlConditionType conditionType/* = MYSQL_CONDITION_AND*/) + { + auto cm = ConnectionManager::getInstance(); + std::vector results; + if (fieldNames.size() != 4) { + addError(new Error(getTableName(), "error in loadFromDB with 4 different field values, fieldNames count isn't 4")); + return results; + } + Poco::ScopedLock _lock(mWorkMutex); + + auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); + Poco::Data::Statement select = _loadMultipleFromDB(session, fieldNames, conditionType); + select, Poco::Data::Keywords::into(results), + Poco::Data::Keywords::useRef(field1Value), Poco::Data::Keywords::useRef(field2Value), + Poco::Data::Keywords::useRef(field3Value), Poco::Data::Keywords::useRef(field4Value); + + size_t resultCount = 0; + try { + resultCount = select.execute(); + } + catch (Poco::Exception& ex) { + lock(); + addError(new ParamError(getTableName(), "mysql error by selecting with 4 different field types", ex.displayText())); + int count = 0; + for (auto it = fieldNames.begin(); it != fieldNames.end(); it++) { + addError(new ParamError(getTableName(), "field name for select: ", *it)); + } + + //addError(new ParamError(getTableName(), "field name for select: ", fieldName.data())); + unlock(); + } + return resultCount; + } template size_t ModelBase::updateIntoDB(const std::string& fieldName, const T& fieldValue) From 660ac324b850295d6c56b2230d0d72d5c69b834a Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 12:07:52 +0000 Subject: [PATCH 42/91] add account state as parameter for user search, transmit to login-server and update handling by selecting from community server --- .../Component/JsonRequestClientComponent.php | 5 +- .../src/Controller/StateUsersController.php | 57 ++++++++++++------- community_server/src/Form/UserSearchForm.php | 4 +- .../src/Template/StateUsers/search.ctp | 16 +++++- 4 files changed, 59 insertions(+), 23 deletions(-) diff --git a/community_server/src/Controller/Component/JsonRequestClientComponent.php b/community_server/src/Controller/Component/JsonRequestClientComponent.php index 8a071b70b..66e65e3bb 100644 --- a/community_server/src/Controller/Component/JsonRequestClientComponent.php +++ b/community_server/src/Controller/Component/JsonRequestClientComponent.php @@ -55,7 +55,7 @@ class JsonRequestClientComponent extends Component ]), '/getRunningUserTasks'); } - public function getUsers($session_id, $searchString) + public function getUsers($session_id, $searchString, $accountState) { if($searchString == "") { return ['state' => 'error', 'type' => 'parameter error', 'msg' => 'search string is empty']; @@ -66,7 +66,8 @@ class JsonRequestClientComponent extends Component return $this->sendRequest(json_encode([ 'session_id' => $session_id, - 'search' => $searchString + 'search' => $searchString, + 'account_state' => $accountState, ]), '/getUsers'); } diff --git a/community_server/src/Controller/StateUsersController.php b/community_server/src/Controller/StateUsersController.php index d85f8b449..9f07fffdb 100644 --- a/community_server/src/Controller/StateUsersController.php +++ b/community_server/src/Controller/StateUsersController.php @@ -99,9 +99,14 @@ class StateUsersController extends AppController //$this->set('timeUsed', $timeUsed); $csfr_token = $this->request->getParam('_csrfToken'); $this->set(compact('timeUsed', 'searchForm', 'csfr_token')); - + $empty_string = '... empty ...'; if ($this->request->is('post')) { + $finalUserEntrys = []; $requestData = $this->request->getData(); + $account_state = $requestData['account_state']; + if($requestData['search'] == '' && $account_state != 'all') { + $requestData['search'] = $empty_string; + } if ($searchForm->validate($requestData)) { //var_dump($requestData); @@ -111,7 +116,7 @@ class StateUsersController extends AppController $searchType = 'email'; } // find users on login server - $resultJson = $this->JsonRequestClient->getUsers($session->read('session_id'), $searchString); + $resultJson = $this->JsonRequestClient->getUsers($session->read('session_id'), $searchString, $account_state); $loginServerUser = []; if ($resultJson['state'] == 'success') { $dataJson = $resultJson['data']; @@ -139,28 +144,42 @@ class StateUsersController extends AppController } } // find user on community server db - $globalSearch = '%' . $searchString . '%'; + + + $communityUsers = $this->StateUsers ->find('all') ->contain(['StateBalances' => ['fields' => ['amount', 'state_user_id']]]); - - $communityUsers->where(['OR' => [ - 'first_name LIKE' => $globalSearch, - 'last_name LIKE' => $globalSearch, - //'username LIKE' => $globalSearch, - 'email LIKE' => $globalSearch - ]]); - - //var_dump($communityUsers->toArray()); - foreach ($communityUsers as $u) { - $pubkey_hex = bin2hex(stream_get_contents($u->public_key)); - $u->public_hex = $pubkey_hex; - if (!isset($pubkeySorted[$pubkey_hex])) { - $pubkeySorted[$pubkey_hex] = ['login' => [], 'community' => []]; + + if($account_state == 'email not activated') { + if(count($pubkeySorted) > 0) { + $communityUsers->where(['hex(public_key) IN' => array_keys($pubkeySorted)]); + } else { + $communityUsers = null; } - array_push($pubkeySorted[$pubkey_hex]['community'], $u); + } else { + $globalSearch = '%' . $searchString . '%'; + $communityUsers->where(['OR' => [ + 'first_name LIKE' => $globalSearch, + 'last_name LIKE' => $globalSearch, + //'username LIKE' => $globalSearch, + 'email LIKE' => $globalSearch + ]]); } - $finalUserEntrys = []; + + + //var_dump($communityUsers->toArray()); + if($communityUsers) { + foreach ($communityUsers as $u) { + $pubkey_hex = bin2hex(stream_get_contents($u->public_key)); + $u->public_hex = $pubkey_hex; + if (!isset($pubkeySorted[$pubkey_hex])) { + $pubkeySorted[$pubkey_hex] = ['login' => [], 'community' => []]; + } + array_push($pubkeySorted[$pubkey_hex]['community'], $u); + } + } + // detect states foreach ($pubkeySorted as $pubhex => $user) { $finalUser = []; diff --git a/community_server/src/Form/UserSearchForm.php b/community_server/src/Form/UserSearchForm.php index e2955e244..c68269920 100644 --- a/community_server/src/Form/UserSearchForm.php +++ b/community_server/src/Form/UserSearchForm.php @@ -11,7 +11,9 @@ class UserSearchForm extends Form protected function _buildSchema(Schema $schema) { - return $schema->addField('search', ['type' => 'string']); + return $schema + ->addField('search', ['type' => 'string']) + ->addField('account_state', ['type' => 'select']); } function validationDefault(Validator $validator) diff --git a/community_server/src/Template/StateUsers/search.ctp b/community_server/src/Template/StateUsers/search.ctp index e6775729b..07a20210c 100644 --- a/community_server/src/Template/StateUsers/search.ctp +++ b/community_server/src/Template/StateUsers/search.ctp @@ -11,6 +11,19 @@ $this->assign('title', __('Benutzer suchen')); $this->loadHelper('Form', [ 'templates' => 'horizontal_form', ]); + +$stateOptions = [ + 'all' => __('Alle'), + //'account created'=>__('Konto angelegt'), + //'account not on login-server' => __('Konto nicht auf Login-Server'), + //'email activated' => __('Konto aktiviert'), + //'account copied to community' => __('Konto auf Gemeinschafts-Server'), + 'email not activated' => __('Konto nicht aktiviert'), + //'account multiple times on login-server' => __('Konto mehrfach vorhanden'), + //'account not on community server' => __('Konto nicht auf Gemeinschafts-Server'), + //'no keys' => __('Keine Schlüssel generiert') +]; + ?> Html->css([ 'loginServer/style.css', @@ -41,7 +54,8 @@ $this->loadHelper('Form', [

    Benutzer suchen

    Form->create($searchForm, []) ?> - Form->control('search', ['label' => __('Suchbegriff'), 'class' => 'form-control', 'id' => 'inlineFormInputGroup', 'placeholder' => __('Vorname/Nachname/E-Mail')]) ?> + Form->control('search', ['label' => __('Suchbegriff'), 'class' => 'form-control', 'id' => 'inlineFormInputGroup', 'placeholder' => __('Vorname/Nachname/E-Mail'), 'required' => false]) ?> + Form->control('account_state', ['label' => __('Konto Status'), 'class' => 'form-control', 'type' => 'select', 'options' => $stateOptions]) ?> Form->button('search ' . __('Suchen'), ['class' => 'form-button']) ?> Form->hidden('order_row', ['id' => 'input-order-row']) ?>
    From a50858c2c7c80f244bb558c0f2cd6eefc06f2eec Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 13:08:58 +0000 Subject: [PATCH 43/91] update user search js, add order functionality --- .../src/Template/StateUsers/search.ctp | 2 +- community_server/webroot/js/userSearch.js | 2954 +++++++++-------- community_server/webroot/js/userSearch.min.js | 2 +- 3 files changed, 1496 insertions(+), 1462 deletions(-) diff --git a/community_server/src/Template/StateUsers/search.ctp b/community_server/src/Template/StateUsers/search.ctp index 07a20210c..626cb7313 100644 --- a/community_server/src/Template/StateUsers/search.ctp +++ b/community_server/src/Template/StateUsers/search.ctp @@ -73,7 +73,7 @@ $stateOptions = [ csfr_token = ''; -Html->script('userSearch') ?> +Html->script('userSearch.min') ?> diff --git a/community_server/webroot/js/userSearch.js b/community_server/webroot/js/userSearch.js index 4ad04ec57..84f030ad0 100644 --- a/community_server/webroot/js/userSearch.js +++ b/community_server/webroot/js/userSearch.js @@ -185,7 +185,7 @@ process.chdir = function (dir) { process.umask = function() { return 0; }; },{}],2:[function(require,module,exports){ -(function (setImmediate,clearImmediate){ +(function (setImmediate,clearImmediate){(function (){ var nextTick = require('process/browser.js').nextTick; var apply = Function.prototype.apply; var slice = Array.prototype.slice; @@ -262,1170 +262,1170 @@ exports.setImmediate = typeof setImmediate === "function" ? setImmediate : funct exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { delete immediateIds[id]; }; -}).call(this,require("timers").setImmediate,require("timers").clearImmediate) +}).call(this)}).call(this,require("timers").setImmediate,require("timers").clearImmediate) },{"process/browser.js":1,"timers":2}],3:[function(require,module,exports){ -(function (global,setImmediate){ -new function() { - -function Vnode(tag, key, attrs0, children, text, dom) { - return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false} -} -Vnode.normalize = function(node) { - if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined) - if (node != null && typeof node !== "object") return Vnode("#", undefined, undefined, node === false ? "" : node, undefined, undefined) - return node -} -Vnode.normalizeChildren = function normalizeChildren(children) { - for (var i = 0; i < children.length; i++) { - children[i] = Vnode.normalize(children[i]) - } - return children -} -var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g -var selectorCache = {} -function hyperscript(selector) { - if (selector == null || typeof selector !== "string" && typeof selector.view !== "function") { - throw Error("The selector must be either a string or a component."); - } - if (typeof selector === "string" && selectorCache[selector] === undefined) { - var match, tag, classes = [], attributes = {} - while (match = selectorParser.exec(selector)) { - var type = match[1], value = match[2] - if (type === "" && value !== "") tag = value - else if (type === "#") attributes.id = value - else if (type === ".") classes.push(value) - else if (match[3][0] === "[") { - var attrValue = match[6] - if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\") - if (match[4] === "class") classes.push(attrValue) - else attributes[match[4]] = attrValue || true - } - } - if (classes.length > 0) attributes.className = classes.join(" ") - selectorCache[selector] = function(attrs, children) { - var hasAttrs = false, childList, text - var className = attrs.className || attrs.class - for (var key in attributes) attrs[key] = attributes[key] - if (className !== undefined) { - if (attrs.class !== undefined) { - attrs.class = undefined - attrs.className = className - } - if (attributes.className !== undefined) attrs.className = attributes.className + " " + className - } - for (var key in attrs) { - if (key !== "key") { - hasAttrs = true - break - } - } - if (Array.isArray(children) && children.length == 1 && children[0] != null && children[0].tag === "#") text = children[0].children - else childList = children - return Vnode(tag || "div", attrs.key, hasAttrs ? attrs : undefined, childList, text, undefined) - } - } - var attrs, children, childrenIndex - if (arguments[1] == null || typeof arguments[1] === "object" && arguments[1].tag === undefined && !Array.isArray(arguments[1])) { - attrs = arguments[1] - childrenIndex = 2 - } - else childrenIndex = 1 - if (arguments.length === childrenIndex + 1) { - children = Array.isArray(arguments[childrenIndex]) ? arguments[childrenIndex] : [arguments[childrenIndex]] - } - else { - children = [] - for (var i = childrenIndex; i < arguments.length; i++) children.push(arguments[i]) - } - if (typeof selector === "string") return selectorCache[selector](attrs || {}, Vnode.normalizeChildren(children)) - return Vnode(selector, attrs && attrs.key, attrs || {}, Vnode.normalizeChildren(children), undefined, undefined) -} -hyperscript.trust = function(html) { - if (html == null) html = "" - return Vnode("<", undefined, undefined, html, undefined, undefined) -} -hyperscript.fragment = function(attrs1, children) { - return Vnode("[", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined) -} -var m = hyperscript -/** @constructor */ -var PromisePolyfill = function(executor) { - if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`") - if (typeof executor !== "function") throw new TypeError("executor must be a function") - var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false) - var instance = self._instance = {resolvers: resolvers, rejectors: rejectors} - var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout - function handler(list, shouldAbsorb) { - return function execute(value) { - var then - try { - if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") { - if (value === self) throw new TypeError("Promise can't be resolved w/ itself") - executeOnce(then.bind(value)) - } - else { - callAsync(function() { - if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value) - for (var i = 0; i < list.length; i++) list[i](value) - resolvers.length = 0, rejectors.length = 0 - instance.state = shouldAbsorb - instance.retry = function() {execute(value)} - }) - } - } - catch (e) { - rejectCurrent(e) - } - } - } - function executeOnce(then) { - var runs = 0 - function run(fn) { - return function(value) { - if (runs++ > 0) return - fn(value) - } - } - var onerror = run(rejectCurrent) - try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)} - } - executeOnce(executor) -} -PromisePolyfill.prototype.then = function(onFulfilled, onRejection) { - var self = this, instance = self._instance - function handle(callback, list, next, state) { - list.push(function(value) { - if (typeof callback !== "function") next(value) - else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)} - }) - if (typeof instance.retry === "function" && state === instance.state) instance.retry() - } - var resolveNext, rejectNext - var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject}) - handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false) - return promise -} -PromisePolyfill.prototype.catch = function(onRejection) { - return this.then(null, onRejection) -} -PromisePolyfill.resolve = function(value) { - if (value instanceof PromisePolyfill) return value - return new PromisePolyfill(function(resolve) {resolve(value)}) -} -PromisePolyfill.reject = function(value) { - return new PromisePolyfill(function(resolve, reject) {reject(value)}) -} -PromisePolyfill.all = function(list) { - return new PromisePolyfill(function(resolve, reject) { - var total = list.length, count = 0, values = [] - if (list.length === 0) resolve([]) - else for (var i = 0; i < list.length; i++) { - (function(i) { - function consume(value) { - count++ - values[i] = value - if (count === total) resolve(values) - } - if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") { - list[i].then(consume, reject) - } - else consume(list[i]) - })(i) - } - }) -} -PromisePolyfill.race = function(list) { - return new PromisePolyfill(function(resolve, reject) { - for (var i = 0; i < list.length; i++) { - list[i].then(resolve, reject) - } - }) -} -if (typeof window !== "undefined") { - if (typeof window.Promise === "undefined") window.Promise = PromisePolyfill - var PromisePolyfill = window.Promise -} else if (typeof global !== "undefined") { - if (typeof global.Promise === "undefined") global.Promise = PromisePolyfill - var PromisePolyfill = global.Promise -} else { -} -var buildQueryString = function(object) { - if (Object.prototype.toString.call(object) !== "[object Object]") return "" - var args = [] - for (var key0 in object) { - destructure(key0, object[key0]) - } - return args.join("&") - function destructure(key0, value) { - if (Array.isArray(value)) { - for (var i = 0; i < value.length; i++) { - destructure(key0 + "[" + i + "]", value[i]) - } - } - else if (Object.prototype.toString.call(value) === "[object Object]") { - for (var i in value) { - destructure(key0 + "[" + i + "]", value[i]) - } - } - else args.push(encodeURIComponent(key0) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : "")) - } -} -var _8 = function($window, Promise) { - var callbackCount = 0 - var oncompletion - function setCompletionCallback(callback) {oncompletion = callback} - function finalizer() { - var count = 0 - function complete() {if (--count === 0 && typeof oncompletion === "function") oncompletion()} - return function finalize(promise0) { - var then0 = promise0.then - promise0.then = function() { - count++ - var next = then0.apply(promise0, arguments) - next.then(complete, function(e) { - complete() - if (count === 0) throw e - }) - return finalize(next) - } - return promise0 - } - } - function normalize(args, extra) { - if (typeof args === "string") { - var url = args - args = extra || {} - if (args.url == null) args.url = url - } - return args - } - function request(args, extra) { - var finalize = finalizer() - args = normalize(args, extra) - var promise0 = new Promise(function(resolve, reject) { - if (args.method == null) args.method = "GET" - args.method = args.method.toUpperCase() - var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE" - if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify - if (typeof args.deserialize !== "function") args.deserialize = deserialize - if (typeof args.extract !== "function") args.extract = extract - args.url = interpolate(args.url, args.data) - if (useBody) args.data = args.serialize(args.data) - else args.url = assemble(args.url, args.data) - var xhr = new $window.XMLHttpRequest() - xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) - if (args.serialize === JSON.stringify && useBody) { - xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8") - } - if (args.deserialize === deserialize) { - xhr.setRequestHeader("Accept", "application/json, text/*") - } - if (args.withCredentials) xhr.withCredentials = args.withCredentials - for (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) { - xhr.setRequestHeader(key, args.headers[key]) - } - if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr - xhr.onreadystatechange = function() { - // Don't throw errors on xhr.abort(). XMLHttpRequests ends up in a state of - // xhr.status == 0 and xhr.readyState == 4 if aborted after open, but before completion. - if (xhr.status && xhr.readyState === 4) { - try { - var response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args)) - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { - resolve(cast(args.type, response)) - } - else { - var error = new Error(xhr.responseText) - for (var key in response) error[key] = response[key] - reject(error) - } - } - catch (e) { - reject(e) - } - } - } - if (useBody && (args.data != null)) xhr.send(args.data) - else xhr.send() - }) - return args.background === true ? promise0 : finalize(promise0) - } - function jsonp(args, extra) { - var finalize = finalizer() - args = normalize(args, extra) - var promise0 = new Promise(function(resolve, reject) { - var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ - var script = $window.document.createElement("script") - $window[callbackName] = function(data) { - script.parentNode.removeChild(script) - resolve(cast(args.type, data)) - delete $window[callbackName] - } - script.onerror = function() { - script.parentNode.removeChild(script) - reject(new Error("JSONP request failed")) - delete $window[callbackName] - } - if (args.data == null) args.data = {} - args.url = interpolate(args.url, args.data) - args.data[args.callbackKey || "callback"] = callbackName - script.src = assemble(args.url, args.data) - $window.document.documentElement.appendChild(script) - }) - return args.background === true? promise0 : finalize(promise0) - } - function interpolate(url, data) { - if (data == null) return url - var tokens = url.match(/:[^\/]+/gi) || [] - for (var i = 0; i < tokens.length; i++) { - var key = tokens[i].slice(1) - if (data[key] != null) { - url = url.replace(tokens[i], data[key]) - } - } - return url - } - function assemble(url, data) { - var querystring = buildQueryString(data) - if (querystring !== "") { - var prefix = url.indexOf("?") < 0 ? "?" : "&" - url += prefix + querystring - } - return url - } - function deserialize(data) { - try {return data !== "" ? JSON.parse(data) : null} - catch (e) {throw new Error(data)} - } - function extract(xhr) {return xhr.responseText} - function cast(type0, data) { - if (typeof type0 === "function") { - if (Array.isArray(data)) { - for (var i = 0; i < data.length; i++) { - data[i] = new type0(data[i]) - } - } - else return new type0(data) - } - return data - } - return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback} -} -var requestService = _8(window, PromisePolyfill) -var coreRenderer = function($window) { - var $doc = $window.document - var $emptyFragment = $doc.createDocumentFragment() - var onevent - function setEventCallback(callback) {return onevent = callback} - //create - function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) { - for (var i = start; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - insertNode(parent, createNode(vnode, hooks, ns), nextSibling) - } - } - } - function createNode(vnode, hooks, ns) { - var tag = vnode.tag - if (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks) - if (typeof tag === "string") { - switch (tag) { - case "#": return createText(vnode) - case "<": return createHTML(vnode) - case "[": return createFragment(vnode, hooks, ns) - default: return createElement(vnode, hooks, ns) - } - } - else return createComponent(vnode, hooks, ns) - } - function createText(vnode) { - return vnode.dom = $doc.createTextNode(vnode.children) - } - function createHTML(vnode) { - var match1 = vnode.children.match(/^\s*?<(\w+)/im) || [] - var parent = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"}[match1[1]] || "div" - var temp = $doc.createElement(parent) - temp.innerHTML = vnode.children - vnode.dom = temp.firstChild - vnode.domSize = temp.childNodes.length - var fragment = $doc.createDocumentFragment() - var child - while (child = temp.firstChild) { - fragment.appendChild(child) - } - return fragment - } - function createFragment(vnode, hooks, ns) { - var fragment = $doc.createDocumentFragment() - if (vnode.children != null) { - var children = vnode.children - createNodes(fragment, children, 0, children.length, hooks, null, ns) - } - vnode.dom = fragment.firstChild - vnode.domSize = fragment.childNodes.length - return fragment - } - function createElement(vnode, hooks, ns) { - var tag = vnode.tag - switch (vnode.tag) { - case "svg": ns = "http://www.w3.org/2000/svg"; break - case "math": ns = "http://www.w3.org/1998/Math/MathML"; break - } - var attrs2 = vnode.attrs - var is = attrs2 && attrs2.is - var element = ns ? - is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) : - is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag) - vnode.dom = element - if (attrs2 != null) { - setAttrs(vnode, attrs2, ns) - } - if (vnode.attrs != null && vnode.attrs.contenteditable != null) { - setContentEditable(vnode) - } - else { - if (vnode.text != null) { - if (vnode.text !== "") element.textContent = vnode.text - else vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] - } - if (vnode.children != null) { - var children = vnode.children - createNodes(element, children, 0, children.length, hooks, null, ns) - setLateAttrs(vnode) - } - } - return element - } - function createComponent(vnode, hooks, ns) { - vnode.state = Object.create(vnode.tag) - var view = vnode.tag.view - if (view.reentrantLock != null) return $emptyFragment - view.reentrantLock = true - initLifecycle(vnode.tag, vnode, hooks) - vnode.instance = Vnode.normalize(view.call(vnode.state, vnode)) - view.reentrantLock = null - if (vnode.instance != null) { - if (vnode.instance === vnode) throw Error("A view cannot return the vnode it received as arguments") - var element = createNode(vnode.instance, hooks, ns) - vnode.dom = vnode.instance.dom - vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0 - return element - } - else { - vnode.domSize = 0 - return $emptyFragment - } - } - //update - function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) { - if (old === vnodes || old == null && vnodes == null) return - else if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined) - else if (vnodes == null) removeNodes(old, 0, old.length, vnodes) - else { - if (old.length === vnodes.length) { - var isUnkeyed = false - for (var i = 0; i < vnodes.length; i++) { - if (vnodes[i] != null && old[i] != null) { - isUnkeyed = vnodes[i].key == null && old[i].key == null - break - } - } - if (isUnkeyed) { - for (var i = 0; i < old.length; i++) { - if (old[i] === vnodes[i]) continue - else if (old[i] == null && vnodes[i] != null) insertNode(parent, createNode(vnodes[i], hooks, ns), getNextSibling(old, i + 1, nextSibling)) - else if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes) - else updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), false, ns) - } - return - } - } - var recycling = isRecyclable(old, vnodes) - if (recycling) old = old.concat(old.pool) - var oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map - while (oldEnd >= oldStart && end >= start) { - var o = old[oldStart], v = vnodes[start] - if (o === v && !recycling) oldStart++, start++ - else if (o == null) oldStart++ - else if (v == null) start++ - else if (o.key === v.key) { - oldStart++, start++ - updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), recycling, ns) - if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) - } - else { - var o = old[oldEnd] - if (o === v && !recycling) oldEnd--, start++ - else if (o == null) oldEnd-- - else if (v == null) start++ - else if (o.key === v.key) { - updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - if (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling)) - oldEnd--, start++ - } - else break - } - } - while (oldEnd >= oldStart && end >= start) { - var o = old[oldEnd], v = vnodes[end] - if (o === v && !recycling) oldEnd--, end-- - else if (o == null) oldEnd-- - else if (v == null) end-- - else if (o.key === v.key) { - updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) - if (o.dom != null) nextSibling = o.dom - oldEnd--, end-- - } - else { - if (!map) map = getKeyMap(old, oldEnd) - if (v != null) { - var oldIndex = map[v.key] - if (oldIndex != null) { - var movable = old[oldIndex] - updateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) - insertNode(parent, toFragment(movable), nextSibling) - old[oldIndex].skip = true - if (movable.dom != null) nextSibling = movable.dom - } - else { - var dom = createNode(v, hooks, undefined) - insertNode(parent, dom, nextSibling) - nextSibling = dom - } - } - end-- - } - if (end < start) break - } - createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) - removeNodes(old, oldStart, oldEnd + 1, vnodes) - } - } - function updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) { - var oldTag = old.tag, tag = vnode.tag - if (oldTag === tag) { - vnode.state = old.state - vnode.events = old.events - if (shouldUpdate(vnode, old)) return - if (vnode.attrs != null) { - updateLifecycle(vnode.attrs, vnode, hooks, recycling) - } - if (typeof oldTag === "string") { - switch (oldTag) { - case "#": updateText(old, vnode); break - case "<": updateHTML(parent, old, vnode, nextSibling); break - case "[": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break - default: updateElement(old, vnode, hooks, ns) - } - } - else updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) - } - else { - removeNode(old, null) - insertNode(parent, createNode(vnode, hooks, ns), nextSibling) - } - } - function updateText(old, vnode) { - if (old.children.toString() !== vnode.children.toString()) { - old.dom.nodeValue = vnode.children - } - vnode.dom = old.dom - } - function updateHTML(parent, old, vnode, nextSibling) { - if (old.children !== vnode.children) { - toFragment(old) - insertNode(parent, createHTML(vnode), nextSibling) - } - else vnode.dom = old.dom, vnode.domSize = old.domSize - } - function updateFragment(parent, old, vnode, hooks, nextSibling, ns) { - updateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns) - var domSize = 0, children = vnode.children - vnode.dom = null - if (children != null) { - for (var i = 0; i < children.length; i++) { - var child = children[i] - if (child != null && child.dom != null) { - if (vnode.dom == null) vnode.dom = child.dom - domSize += child.domSize || 1 - } - } - if (domSize !== 1) vnode.domSize = domSize - } - } - function updateElement(old, vnode, hooks, ns) { - var element = vnode.dom = old.dom - switch (vnode.tag) { - case "svg": ns = "http://www.w3.org/2000/svg"; break - case "math": ns = "http://www.w3.org/1998/Math/MathML"; break - } - if (vnode.tag === "textarea") { - if (vnode.attrs == null) vnode.attrs = {} - if (vnode.text != null) { - vnode.attrs.value = vnode.text //FIXME handle0 multiple children - vnode.text = undefined - } - } - updateAttrs(vnode, old.attrs, vnode.attrs, ns) - if (vnode.attrs != null && vnode.attrs.contenteditable != null) { - setContentEditable(vnode) - } - else if (old.text != null && vnode.text != null && vnode.text !== "") { - if (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text - } - else { - if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)] - if (vnode.text != null) vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] - updateNodes(element, old.children, vnode.children, hooks, null, ns) - } - } - function updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) { - vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode)) - updateLifecycle(vnode.tag, vnode, hooks, recycling) - if (vnode.instance != null) { - if (old.instance == null) insertNode(parent, createNode(vnode.instance, hooks, ns), nextSibling) - else updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns) - vnode.dom = vnode.instance.dom - vnode.domSize = vnode.instance.domSize - } - else if (old.instance != null) { - removeNode(old.instance, null) - vnode.dom = undefined - vnode.domSize = 0 - } - else { - vnode.dom = old.dom - vnode.domSize = old.domSize - } - } - function isRecyclable(old, vnodes) { - if (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) { - var oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0 - var poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0 - var vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0 - if (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) { - return true - } - } - return false - } - function getKeyMap(vnodes, end) { - var map = {}, i = 0 - for (var i = 0; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - var key2 = vnode.key - if (key2 != null) map[key2] = i - } - } - return map - } - function toFragment(vnode) { - var count0 = vnode.domSize - if (count0 != null || vnode.dom == null) { - var fragment = $doc.createDocumentFragment() - if (count0 > 0) { - var dom = vnode.dom - while (--count0) fragment.appendChild(dom.nextSibling) - fragment.insertBefore(dom, fragment.firstChild) - } - return fragment - } - else return vnode.dom - } - function getNextSibling(vnodes, i, nextSibling) { - for (; i < vnodes.length; i++) { - if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom - } - return nextSibling - } - function insertNode(parent, dom, nextSibling) { - if (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling) - else parent.appendChild(dom) - } - function setContentEditable(vnode) { - var children = vnode.children - if (children != null && children.length === 1 && children[0].tag === "<") { - var content = children[0].children - if (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content - } - else if (vnode.text != null || children != null && children.length !== 0) throw new Error("Child node of a contenteditable must be trusted") - } - //remove - function removeNodes(vnodes, start, end, context) { - for (var i = start; i < end; i++) { - var vnode = vnodes[i] - if (vnode != null) { - if (vnode.skip) vnode.skip = false - else removeNode(vnode, context) - } - } - } - function removeNode(vnode, context) { - var expected = 1, called = 0 - if (vnode.attrs && vnode.attrs.onbeforeremove) { - var result = vnode.attrs.onbeforeremove.call(vnode.state, vnode) - if (result != null && typeof result.then === "function") { - expected++ - result.then(continuation, continuation) - } - } - if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) { - var result = vnode.tag.onbeforeremove.call(vnode.state, vnode) - if (result != null && typeof result.then === "function") { - expected++ - result.then(continuation, continuation) - } - } - continuation() - function continuation() { - if (++called === expected) { - onremove(vnode) - if (vnode.dom) { - var count0 = vnode.domSize || 1 - if (count0 > 1) { - var dom = vnode.dom - while (--count0) { - removeNodeFromDOM(dom.nextSibling) - } - } - removeNodeFromDOM(vnode.dom) - if (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === "string") { //TODO test custom elements - if (!context.pool) context.pool = [vnode] - else context.pool.push(vnode) - } - } - } - } - } - function removeNodeFromDOM(node) { - var parent = node.parentNode - if (parent != null) parent.removeChild(node) - } - function onremove(vnode) { - if (vnode.attrs && vnode.attrs.onremove) vnode.attrs.onremove.call(vnode.state, vnode) - if (typeof vnode.tag !== "string" && vnode.tag.onremove) vnode.tag.onremove.call(vnode.state, vnode) - if (vnode.instance != null) onremove(vnode.instance) - else { - var children = vnode.children - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - var child = children[i] - if (child != null) onremove(child) - } - } - } - } - //attrs2 - function setAttrs(vnode, attrs2, ns) { - for (var key2 in attrs2) { - setAttr(vnode, key2, null, attrs2[key2], ns) - } - } - function setAttr(vnode, key2, old, value, ns) { - var element = vnode.dom - if (key2 === "key" || key2 === "is" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== "object" || typeof value === "undefined" || isLifecycleMethod(key2)) return - var nsLastIndex = key2.indexOf(":") - if (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === "xlink") { - element.setAttributeNS("http://www.w3.org/1999/xlink", key2.slice(nsLastIndex + 1), value) - } - else if (key2[0] === "o" && key2[1] === "n" && typeof value === "function") updateEvent(vnode, key2, value) - else if (key2 === "style") updateStyle(element, old, value) - else if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) { - //setting input[value] to same value by typing on focused element moves cursor to end in Chrome - if (vnode.tag === "input" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return - //setting select[value] to same value while having select open blinks select dropdown in Chrome - if (vnode.tag === "select" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return - //setting option[value] to same value while having select open blinks select dropdown in Chrome - if (vnode.tag === "option" && key2 === "value" && vnode.dom.value === value) return - element[key2] = value - } - else { - if (typeof value === "boolean") { - if (value) element.setAttribute(key2, "") - else element.removeAttribute(key2) - } - else element.setAttribute(key2 === "className" ? "class" : key2, value) - } - } - function setLateAttrs(vnode) { - var attrs2 = vnode.attrs - if (vnode.tag === "select" && attrs2 != null) { - if ("value" in attrs2) setAttr(vnode, "value", null, attrs2.value, undefined) - if ("selectedIndex" in attrs2) setAttr(vnode, "selectedIndex", null, attrs2.selectedIndex, undefined) - } - } - function updateAttrs(vnode, old, attrs2, ns) { - if (attrs2 != null) { - for (var key2 in attrs2) { - setAttr(vnode, key2, old && old[key2], attrs2[key2], ns) - } - } - if (old != null) { - for (var key2 in old) { - if (attrs2 == null || !(key2 in attrs2)) { - if (key2 === "className") key2 = "class" - if (key2[0] === "o" && key2[1] === "n" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined) - else if (key2 !== "key") vnode.dom.removeAttribute(key2) - } - } - } - } - function isFormAttribute(vnode, attr) { - return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode.dom === $doc.activeElement - } - function isLifecycleMethod(attr) { - return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate" - } - function isAttribute(attr) { - return attr === "href" || attr === "list" || attr === "form" || attr === "width" || attr === "height"// || attr === "type" - } - function isCustomElement(vnode){ - return vnode.attrs.is || vnode.tag.indexOf("-") > -1 - } - function hasIntegrationMethods(source) { - return source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove) - } - //style - function updateStyle(element, old, style) { - if (old === style) element.style.cssText = "", old = null - if (style == null) element.style.cssText = "" - else if (typeof style === "string") element.style.cssText = style - else { - if (typeof old === "string") element.style.cssText = "" - for (var key2 in style) { - element.style[key2] = style[key2] - } - if (old != null && typeof old !== "string") { - for (var key2 in old) { - if (!(key2 in style)) element.style[key2] = "" - } - } - } - } - //event - function updateEvent(vnode, key2, value) { - var element = vnode.dom - var callback = typeof onevent !== "function" ? value : function(e) { - var result = value.call(element, e) - onevent.call(element, e) - return result - } - if (key2 in element) element[key2] = typeof value === "function" ? callback : null - else { - var eventName = key2.slice(2) - if (vnode.events === undefined) vnode.events = {} - if (vnode.events[key2] === callback) return - if (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false) - if (typeof value === "function") { - vnode.events[key2] = callback - element.addEventListener(eventName, vnode.events[key2], false) - } - } - } - //lifecycle - function initLifecycle(source, vnode, hooks) { - if (typeof source.oninit === "function") source.oninit.call(vnode.state, vnode) - if (typeof source.oncreate === "function") hooks.push(source.oncreate.bind(vnode.state, vnode)) - } - function updateLifecycle(source, vnode, hooks, recycling) { - if (recycling) initLifecycle(source, vnode, hooks) - else if (typeof source.onupdate === "function") hooks.push(source.onupdate.bind(vnode.state, vnode)) - } - function shouldUpdate(vnode, old) { - var forceVnodeUpdate, forceComponentUpdate - if (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === "function") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old) - if (typeof vnode.tag !== "string" && typeof vnode.tag.onbeforeupdate === "function") forceComponentUpdate = vnode.tag.onbeforeupdate.call(vnode.state, vnode, old) - if (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) { - vnode.dom = old.dom - vnode.domSize = old.domSize - vnode.instance = old.instance - return true - } - return false - } - function render(dom, vnodes) { - if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.") - var hooks = [] - var active = $doc.activeElement - // First time0 rendering into a node clears it out - if (dom.vnodes == null) dom.textContent = "" - if (!Array.isArray(vnodes)) vnodes = [vnodes] - updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), hooks, null, undefined) - dom.vnodes = vnodes - for (var i = 0; i < hooks.length; i++) hooks[i]() - if ($doc.activeElement !== active) active.focus() - } - return {render: render, setEventCallback: setEventCallback} -} -function throttle(callback) { - //60fps translates to 16.6ms, round it down since setTimeout requires int - var time = 16 - var last = 0, pending = null - var timeout = typeof requestAnimationFrame === "function" ? requestAnimationFrame : setTimeout - return function() { - var now = Date.now() - if (last === 0 || now - last >= time) { - last = now - callback() - } - else if (pending === null) { - pending = timeout(function() { - pending = null - callback() - last = Date.now() - }, time - (now - last)) - } - } -} -var _11 = function($window) { - var renderService = coreRenderer($window) - renderService.setEventCallback(function(e) { - if (e.redraw !== false) redraw() - }) - - var callbacks = [] - function subscribe(key1, callback) { - unsubscribe(key1) - callbacks.push(key1, throttle(callback)) - } - function unsubscribe(key1) { - var index = callbacks.indexOf(key1) - if (index > -1) callbacks.splice(index, 2) - } - function redraw() { - for (var i = 1; i < callbacks.length; i += 2) { - callbacks[i]() - } - } - return {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render} -} -var redrawService = _11(window) -requestService.setCompletionCallback(redrawService.redraw) -var _16 = function(redrawService0) { - return function(root, component) { - if (component === null) { - redrawService0.render(root, []) - redrawService0.unsubscribe(root) - return - } - - if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode") - - var run0 = function() { - redrawService0.render(root, Vnode(component)) - } - redrawService0.subscribe(root, run0) - redrawService0.redraw() - } -} -m.mount = _16(redrawService) -var Promise = PromisePolyfill -var parseQueryString = function(string) { - if (string === "" || string == null) return {} - if (string.charAt(0) === "?") string = string.slice(1) - var entries = string.split("&"), data0 = {}, counters = {} - for (var i = 0; i < entries.length; i++) { - var entry = entries[i].split("=") - var key5 = decodeURIComponent(entry[0]) - var value = entry.length === 2 ? decodeURIComponent(entry[1]) : "" - if (value === "true") value = true - else if (value === "false") value = false - var levels = key5.split(/\]\[?|\[/) - var cursor = data0 - if (key5.indexOf("[") > -1) levels.pop() - for (var j = 0; j < levels.length; j++) { - var level = levels[j], nextLevel = levels[j + 1] - var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10)) - var isValue = j === levels.length - 1 - if (level === "") { - var key5 = levels.slice(0, j).join() - if (counters[key5] == null) counters[key5] = 0 - level = counters[key5]++ - } - if (cursor[level] == null) { - cursor[level] = isValue ? value : isNumber ? [] : {} - } - cursor = cursor[level] - } - } - return data0 -} -var coreRouter = function($window) { - var supportsPushState = typeof $window.history.pushState === "function" - var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout - function normalize1(fragment0) { - var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) - if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data - return data - } - var asyncId - function debounceAsync(callback0) { - return function() { - if (asyncId != null) return - asyncId = callAsync0(function() { - asyncId = null - callback0() - }) - } - } - function parsePath(path, queryData, hashData) { - var queryIndex = path.indexOf("?") - var hashIndex = path.indexOf("#") - var pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length - if (queryIndex > -1) { - var queryEnd = hashIndex > -1 ? hashIndex : path.length - var queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd)) - for (var key4 in queryParams) queryData[key4] = queryParams[key4] - } - if (hashIndex > -1) { - var hashParams = parseQueryString(path.slice(hashIndex + 1)) - for (var key4 in hashParams) hashData[key4] = hashParams[key4] - } - return path.slice(0, pathEnd) - } - var router = {prefix: "#!"} - router.getPath = function() { - var type2 = router.prefix.charAt(0) - switch (type2) { - case "#": return normalize1("hash").slice(router.prefix.length) - case "?": return normalize1("search").slice(router.prefix.length) + normalize1("hash") - default: return normalize1("pathname").slice(router.prefix.length) + normalize1("search") + normalize1("hash") - } - } - router.setPath = function(path, data, options) { - var queryData = {}, hashData = {} - path = parsePath(path, queryData, hashData) - if (data != null) { - for (var key4 in data) queryData[key4] = data[key4] - path = path.replace(/:([^\/]+)/g, function(match2, token) { - delete queryData[token] - return data[token] - }) - } - var query = buildQueryString(queryData) - if (query) path += "?" + query - var hash = buildQueryString(hashData) - if (hash) path += "#" + hash - if (supportsPushState) { - var state = options ? options.state : null - var title = options ? options.title : null - $window.onpopstate() - if (options && options.replace) $window.history.replaceState(state, title, router.prefix + path) - else $window.history.pushState(state, title, router.prefix + path) - } - else $window.location.href = router.prefix + path - } - router.defineRoutes = function(routes, resolve, reject) { - function resolveRoute() { - var path = router.getPath() - var params = {} - var pathname = parsePath(path, params, params) - - var state = $window.history.state - if (state != null) { - for (var k in state) params[k] = state[k] - } - for (var route0 in routes) { - var matcher = new RegExp("^" + route0.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$") - if (matcher.test(pathname)) { - pathname.replace(matcher, function() { - var keys = route0.match(/:[^\/]+/g) || [] - var values = [].slice.call(arguments, 1, -2) - for (var i = 0; i < keys.length; i++) { - params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i]) - } - resolve(routes[route0], params, path, route0) - }) - return - } - } - reject(path, params) - } - - if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute) - else if (router.prefix.charAt(0) === "#") $window.onhashchange = resolveRoute - resolveRoute() - } - - return router -} -var _20 = function($window, redrawService0) { - var routeService = coreRouter($window) - var identity = function(v) {return v} - var render1, component, attrs3, currentPath, lastUpdate - var route = function(root, defaultRoute, routes) { - if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined") - var run1 = function() { - if (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3))) - } - var bail = function() { - routeService.setPath(defaultRoute, null, {replace: true}) - } - routeService.defineRoutes(routes, function(payload, params, path) { - var update = lastUpdate = function(routeResolver, comp) { - if (update !== lastUpdate) return - component = comp != null && typeof comp.view === "function" ? comp : "div", attrs3 = params, currentPath = path, lastUpdate = null - render1 = (routeResolver.render || identity).bind(routeResolver) - run1() - } - if (payload.view) update({}, payload) - else { - if (payload.onmatch) { - Promise.resolve(payload.onmatch(params, path)).then(function(resolved) { - update(payload, resolved) - }, bail) - } - else update(payload, "div") - } - }, bail) - redrawService0.subscribe(root, run1) - } - route.set = function(path, data, options) { - if (lastUpdate != null) options = {replace: true} - lastUpdate = null - routeService.setPath(path, data, options) - } - route.get = function() {return currentPath} - route.prefix = function(prefix0) {routeService.prefix = prefix0} - route.link = function(vnode1) { - vnode1.dom.setAttribute("href", routeService.prefix + vnode1.attrs.href) - vnode1.dom.onclick = function(e) { - if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return - e.preventDefault() - e.redraw = false - var href = this.getAttribute("href") - if (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length) - route.set(href, undefined, undefined) - } - } - route.param = function(key3) { - if(typeof attrs3 !== "undefined" && typeof key3 !== "undefined") return attrs3[key3] - return attrs3 - } - return route -} -m.route = _20(window, redrawService) -m.withAttr = function(attrName, callback1, context) { - return function(e) { - callback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName)) - } -} -var _28 = coreRenderer(window) -m.render = _28.render -m.redraw = redrawService.redraw -m.request = requestService.request -m.jsonp = requestService.jsonp -m.parseQueryString = parseQueryString -m.buildQueryString = buildQueryString -m.version = "1.0.0" -m.vnode = Vnode -if (typeof module !== "undefined") module["exports"] = m -else window.m = m +(function (global,setImmediate){(function (){ +new function() { + +function Vnode(tag, key, attrs0, children, text, dom) { + return {tag: tag, key: key, attrs: attrs0, children: children, text: text, dom: dom, domSize: undefined, state: {}, events: undefined, instance: undefined, skip: false} } -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) +Vnode.normalize = function(node) { + if (Array.isArray(node)) return Vnode("[", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined) + if (node != null && typeof node !== "object") return Vnode("#", undefined, undefined, node === false ? "" : node, undefined, undefined) + return node +} +Vnode.normalizeChildren = function normalizeChildren(children) { + for (var i = 0; i < children.length; i++) { + children[i] = Vnode.normalize(children[i]) + } + return children +} +var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g +var selectorCache = {} +function hyperscript(selector) { + if (selector == null || typeof selector !== "string" && typeof selector.view !== "function") { + throw Error("The selector must be either a string or a component."); + } + if (typeof selector === "string" && selectorCache[selector] === undefined) { + var match, tag, classes = [], attributes = {} + while (match = selectorParser.exec(selector)) { + var type = match[1], value = match[2] + if (type === "" && value !== "") tag = value + else if (type === "#") attributes.id = value + else if (type === ".") classes.push(value) + else if (match[3][0] === "[") { + var attrValue = match[6] + if (attrValue) attrValue = attrValue.replace(/\\(["'])/g, "$1").replace(/\\\\/g, "\\") + if (match[4] === "class") classes.push(attrValue) + else attributes[match[4]] = attrValue || true + } + } + if (classes.length > 0) attributes.className = classes.join(" ") + selectorCache[selector] = function(attrs, children) { + var hasAttrs = false, childList, text + var className = attrs.className || attrs.class + for (var key in attributes) attrs[key] = attributes[key] + if (className !== undefined) { + if (attrs.class !== undefined) { + attrs.class = undefined + attrs.className = className + } + if (attributes.className !== undefined) attrs.className = attributes.className + " " + className + } + for (var key in attrs) { + if (key !== "key") { + hasAttrs = true + break + } + } + if (Array.isArray(children) && children.length == 1 && children[0] != null && children[0].tag === "#") text = children[0].children + else childList = children + return Vnode(tag || "div", attrs.key, hasAttrs ? attrs : undefined, childList, text, undefined) + } + } + var attrs, children, childrenIndex + if (arguments[1] == null || typeof arguments[1] === "object" && arguments[1].tag === undefined && !Array.isArray(arguments[1])) { + attrs = arguments[1] + childrenIndex = 2 + } + else childrenIndex = 1 + if (arguments.length === childrenIndex + 1) { + children = Array.isArray(arguments[childrenIndex]) ? arguments[childrenIndex] : [arguments[childrenIndex]] + } + else { + children = [] + for (var i = childrenIndex; i < arguments.length; i++) children.push(arguments[i]) + } + if (typeof selector === "string") return selectorCache[selector](attrs || {}, Vnode.normalizeChildren(children)) + return Vnode(selector, attrs && attrs.key, attrs || {}, Vnode.normalizeChildren(children), undefined, undefined) +} +hyperscript.trust = function(html) { + if (html == null) html = "" + return Vnode("<", undefined, undefined, html, undefined, undefined) +} +hyperscript.fragment = function(attrs1, children) { + return Vnode("[", attrs1.key, attrs1, Vnode.normalizeChildren(children), undefined, undefined) +} +var m = hyperscript +/** @constructor */ +var PromisePolyfill = function(executor) { + if (!(this instanceof PromisePolyfill)) throw new Error("Promise must be called with `new`") + if (typeof executor !== "function") throw new TypeError("executor must be a function") + var self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false) + var instance = self._instance = {resolvers: resolvers, rejectors: rejectors} + var callAsync = typeof setImmediate === "function" ? setImmediate : setTimeout + function handler(list, shouldAbsorb) { + return function execute(value) { + var then + try { + if (shouldAbsorb && value != null && (typeof value === "object" || typeof value === "function") && typeof (then = value.then) === "function") { + if (value === self) throw new TypeError("Promise can't be resolved w/ itself") + executeOnce(then.bind(value)) + } + else { + callAsync(function() { + if (!shouldAbsorb && list.length === 0) console.error("Possible unhandled promise rejection:", value) + for (var i = 0; i < list.length; i++) list[i](value) + resolvers.length = 0, rejectors.length = 0 + instance.state = shouldAbsorb + instance.retry = function() {execute(value)} + }) + } + } + catch (e) { + rejectCurrent(e) + } + } + } + function executeOnce(then) { + var runs = 0 + function run(fn) { + return function(value) { + if (runs++ > 0) return + fn(value) + } + } + var onerror = run(rejectCurrent) + try {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)} + } + executeOnce(executor) +} +PromisePolyfill.prototype.then = function(onFulfilled, onRejection) { + var self = this, instance = self._instance + function handle(callback, list, next, state) { + list.push(function(value) { + if (typeof callback !== "function") next(value) + else try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)} + }) + if (typeof instance.retry === "function" && state === instance.state) instance.retry() + } + var resolveNext, rejectNext + var promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject}) + handle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false) + return promise +} +PromisePolyfill.prototype.catch = function(onRejection) { + return this.then(null, onRejection) +} +PromisePolyfill.resolve = function(value) { + if (value instanceof PromisePolyfill) return value + return new PromisePolyfill(function(resolve) {resolve(value)}) +} +PromisePolyfill.reject = function(value) { + return new PromisePolyfill(function(resolve, reject) {reject(value)}) +} +PromisePolyfill.all = function(list) { + return new PromisePolyfill(function(resolve, reject) { + var total = list.length, count = 0, values = [] + if (list.length === 0) resolve([]) + else for (var i = 0; i < list.length; i++) { + (function(i) { + function consume(value) { + count++ + values[i] = value + if (count === total) resolve(values) + } + if (list[i] != null && (typeof list[i] === "object" || typeof list[i] === "function") && typeof list[i].then === "function") { + list[i].then(consume, reject) + } + else consume(list[i]) + })(i) + } + }) +} +PromisePolyfill.race = function(list) { + return new PromisePolyfill(function(resolve, reject) { + for (var i = 0; i < list.length; i++) { + list[i].then(resolve, reject) + } + }) +} +if (typeof window !== "undefined") { + if (typeof window.Promise === "undefined") window.Promise = PromisePolyfill + var PromisePolyfill = window.Promise +} else if (typeof global !== "undefined") { + if (typeof global.Promise === "undefined") global.Promise = PromisePolyfill + var PromisePolyfill = global.Promise +} else { +} +var buildQueryString = function(object) { + if (Object.prototype.toString.call(object) !== "[object Object]") return "" + var args = [] + for (var key0 in object) { + destructure(key0, object[key0]) + } + return args.join("&") + function destructure(key0, value) { + if (Array.isArray(value)) { + for (var i = 0; i < value.length; i++) { + destructure(key0 + "[" + i + "]", value[i]) + } + } + else if (Object.prototype.toString.call(value) === "[object Object]") { + for (var i in value) { + destructure(key0 + "[" + i + "]", value[i]) + } + } + else args.push(encodeURIComponent(key0) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : "")) + } +} +var _8 = function($window, Promise) { + var callbackCount = 0 + var oncompletion + function setCompletionCallback(callback) {oncompletion = callback} + function finalizer() { + var count = 0 + function complete() {if (--count === 0 && typeof oncompletion === "function") oncompletion()} + return function finalize(promise0) { + var then0 = promise0.then + promise0.then = function() { + count++ + var next = then0.apply(promise0, arguments) + next.then(complete, function(e) { + complete() + if (count === 0) throw e + }) + return finalize(next) + } + return promise0 + } + } + function normalize(args, extra) { + if (typeof args === "string") { + var url = args + args = extra || {} + if (args.url == null) args.url = url + } + return args + } + function request(args, extra) { + var finalize = finalizer() + args = normalize(args, extra) + var promise0 = new Promise(function(resolve, reject) { + if (args.method == null) args.method = "GET" + args.method = args.method.toUpperCase() + var useBody = typeof args.useBody === "boolean" ? args.useBody : args.method !== "GET" && args.method !== "TRACE" + if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify + if (typeof args.deserialize !== "function") args.deserialize = deserialize + if (typeof args.extract !== "function") args.extract = extract + args.url = interpolate(args.url, args.data) + if (useBody) args.data = args.serialize(args.data) + else args.url = assemble(args.url, args.data) + var xhr = new $window.XMLHttpRequest() + xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) + if (args.serialize === JSON.stringify && useBody) { + xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8") + } + if (args.deserialize === deserialize) { + xhr.setRequestHeader("Accept", "application/json, text/*") + } + if (args.withCredentials) xhr.withCredentials = args.withCredentials + for (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) { + xhr.setRequestHeader(key, args.headers[key]) + } + if (typeof args.config === "function") xhr = args.config(xhr, args) || xhr + xhr.onreadystatechange = function() { + // Don't throw errors on xhr.abort(). XMLHttpRequests ends up in a state of + // xhr.status == 0 and xhr.readyState == 4 if aborted after open, but before completion. + if (xhr.status && xhr.readyState === 4) { + try { + var response = (args.extract !== extract) ? args.extract(xhr, args) : args.deserialize(args.extract(xhr, args)) + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) { + resolve(cast(args.type, response)) + } + else { + var error = new Error(xhr.responseText) + for (var key in response) error[key] = response[key] + reject(error) + } + } + catch (e) { + reject(e) + } + } + } + if (useBody && (args.data != null)) xhr.send(args.data) + else xhr.send() + }) + return args.background === true ? promise0 : finalize(promise0) + } + function jsonp(args, extra) { + var finalize = finalizer() + args = normalize(args, extra) + var promise0 = new Promise(function(resolve, reject) { + var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ + var script = $window.document.createElement("script") + $window[callbackName] = function(data) { + script.parentNode.removeChild(script) + resolve(cast(args.type, data)) + delete $window[callbackName] + } + script.onerror = function() { + script.parentNode.removeChild(script) + reject(new Error("JSONP request failed")) + delete $window[callbackName] + } + if (args.data == null) args.data = {} + args.url = interpolate(args.url, args.data) + args.data[args.callbackKey || "callback"] = callbackName + script.src = assemble(args.url, args.data) + $window.document.documentElement.appendChild(script) + }) + return args.background === true? promise0 : finalize(promise0) + } + function interpolate(url, data) { + if (data == null) return url + var tokens = url.match(/:[^\/]+/gi) || [] + for (var i = 0; i < tokens.length; i++) { + var key = tokens[i].slice(1) + if (data[key] != null) { + url = url.replace(tokens[i], data[key]) + } + } + return url + } + function assemble(url, data) { + var querystring = buildQueryString(data) + if (querystring !== "") { + var prefix = url.indexOf("?") < 0 ? "?" : "&" + url += prefix + querystring + } + return url + } + function deserialize(data) { + try {return data !== "" ? JSON.parse(data) : null} + catch (e) {throw new Error(data)} + } + function extract(xhr) {return xhr.responseText} + function cast(type0, data) { + if (typeof type0 === "function") { + if (Array.isArray(data)) { + for (var i = 0; i < data.length; i++) { + data[i] = new type0(data[i]) + } + } + else return new type0(data) + } + return data + } + return {request: request, jsonp: jsonp, setCompletionCallback: setCompletionCallback} +} +var requestService = _8(window, PromisePolyfill) +var coreRenderer = function($window) { + var $doc = $window.document + var $emptyFragment = $doc.createDocumentFragment() + var onevent + function setEventCallback(callback) {return onevent = callback} + //create + function createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) { + for (var i = start; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + insertNode(parent, createNode(vnode, hooks, ns), nextSibling) + } + } + } + function createNode(vnode, hooks, ns) { + var tag = vnode.tag + if (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks) + if (typeof tag === "string") { + switch (tag) { + case "#": return createText(vnode) + case "<": return createHTML(vnode) + case "[": return createFragment(vnode, hooks, ns) + default: return createElement(vnode, hooks, ns) + } + } + else return createComponent(vnode, hooks, ns) + } + function createText(vnode) { + return vnode.dom = $doc.createTextNode(vnode.children) + } + function createHTML(vnode) { + var match1 = vnode.children.match(/^\s*?<(\w+)/im) || [] + var parent = {caption: "table", thead: "table", tbody: "table", tfoot: "table", tr: "tbody", th: "tr", td: "tr", colgroup: "table", col: "colgroup"}[match1[1]] || "div" + var temp = $doc.createElement(parent) + temp.innerHTML = vnode.children + vnode.dom = temp.firstChild + vnode.domSize = temp.childNodes.length + var fragment = $doc.createDocumentFragment() + var child + while (child = temp.firstChild) { + fragment.appendChild(child) + } + return fragment + } + function createFragment(vnode, hooks, ns) { + var fragment = $doc.createDocumentFragment() + if (vnode.children != null) { + var children = vnode.children + createNodes(fragment, children, 0, children.length, hooks, null, ns) + } + vnode.dom = fragment.firstChild + vnode.domSize = fragment.childNodes.length + return fragment + } + function createElement(vnode, hooks, ns) { + var tag = vnode.tag + switch (vnode.tag) { + case "svg": ns = "http://www.w3.org/2000/svg"; break + case "math": ns = "http://www.w3.org/1998/Math/MathML"; break + } + var attrs2 = vnode.attrs + var is = attrs2 && attrs2.is + var element = ns ? + is ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) : + is ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag) + vnode.dom = element + if (attrs2 != null) { + setAttrs(vnode, attrs2, ns) + } + if (vnode.attrs != null && vnode.attrs.contenteditable != null) { + setContentEditable(vnode) + } + else { + if (vnode.text != null) { + if (vnode.text !== "") element.textContent = vnode.text + else vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] + } + if (vnode.children != null) { + var children = vnode.children + createNodes(element, children, 0, children.length, hooks, null, ns) + setLateAttrs(vnode) + } + } + return element + } + function createComponent(vnode, hooks, ns) { + vnode.state = Object.create(vnode.tag) + var view = vnode.tag.view + if (view.reentrantLock != null) return $emptyFragment + view.reentrantLock = true + initLifecycle(vnode.tag, vnode, hooks) + vnode.instance = Vnode.normalize(view.call(vnode.state, vnode)) + view.reentrantLock = null + if (vnode.instance != null) { + if (vnode.instance === vnode) throw Error("A view cannot return the vnode it received as arguments") + var element = createNode(vnode.instance, hooks, ns) + vnode.dom = vnode.instance.dom + vnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0 + return element + } + else { + vnode.domSize = 0 + return $emptyFragment + } + } + //update + function updateNodes(parent, old, vnodes, hooks, nextSibling, ns) { + if (old === vnodes || old == null && vnodes == null) return + else if (old == null) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, undefined) + else if (vnodes == null) removeNodes(old, 0, old.length, vnodes) + else { + if (old.length === vnodes.length) { + var isUnkeyed = false + for (var i = 0; i < vnodes.length; i++) { + if (vnodes[i] != null && old[i] != null) { + isUnkeyed = vnodes[i].key == null && old[i].key == null + break + } + } + if (isUnkeyed) { + for (var i = 0; i < old.length; i++) { + if (old[i] === vnodes[i]) continue + else if (old[i] == null && vnodes[i] != null) insertNode(parent, createNode(vnodes[i], hooks, ns), getNextSibling(old, i + 1, nextSibling)) + else if (vnodes[i] == null) removeNodes(old, i, i + 1, vnodes) + else updateNode(parent, old[i], vnodes[i], hooks, getNextSibling(old, i + 1, nextSibling), false, ns) + } + return + } + } + var recycling = isRecyclable(old, vnodes) + if (recycling) old = old.concat(old.pool) + var oldStart = 0, start = 0, oldEnd = old.length - 1, end = vnodes.length - 1, map + while (oldEnd >= oldStart && end >= start) { + var o = old[oldStart], v = vnodes[start] + if (o === v && !recycling) oldStart++, start++ + else if (o == null) oldStart++ + else if (v == null) start++ + else if (o.key === v.key) { + oldStart++, start++ + updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), recycling, ns) + if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) + } + else { + var o = old[oldEnd] + if (o === v && !recycling) oldEnd--, start++ + else if (o == null) oldEnd-- + else if (v == null) start++ + else if (o.key === v.key) { + updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + if (recycling || start < end) insertNode(parent, toFragment(o), getNextSibling(old, oldStart, nextSibling)) + oldEnd--, start++ + } + else break + } + } + while (oldEnd >= oldStart && end >= start) { + var o = old[oldEnd], v = vnodes[end] + if (o === v && !recycling) oldEnd--, end-- + else if (o == null) oldEnd-- + else if (v == null) end-- + else if (o.key === v.key) { + updateNode(parent, o, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + if (recycling && o.tag === v.tag) insertNode(parent, toFragment(o), nextSibling) + if (o.dom != null) nextSibling = o.dom + oldEnd--, end-- + } + else { + if (!map) map = getKeyMap(old, oldEnd) + if (v != null) { + var oldIndex = map[v.key] + if (oldIndex != null) { + var movable = old[oldIndex] + updateNode(parent, movable, v, hooks, getNextSibling(old, oldEnd + 1, nextSibling), recycling, ns) + insertNode(parent, toFragment(movable), nextSibling) + old[oldIndex].skip = true + if (movable.dom != null) nextSibling = movable.dom + } + else { + var dom = createNode(v, hooks, undefined) + insertNode(parent, dom, nextSibling) + nextSibling = dom + } + } + end-- + } + if (end < start) break + } + createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns) + removeNodes(old, oldStart, oldEnd + 1, vnodes) + } + } + function updateNode(parent, old, vnode, hooks, nextSibling, recycling, ns) { + var oldTag = old.tag, tag = vnode.tag + if (oldTag === tag) { + vnode.state = old.state + vnode.events = old.events + if (shouldUpdate(vnode, old)) return + if (vnode.attrs != null) { + updateLifecycle(vnode.attrs, vnode, hooks, recycling) + } + if (typeof oldTag === "string") { + switch (oldTag) { + case "#": updateText(old, vnode); break + case "<": updateHTML(parent, old, vnode, nextSibling); break + case "[": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break + default: updateElement(old, vnode, hooks, ns) + } + } + else updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) + } + else { + removeNode(old, null) + insertNode(parent, createNode(vnode, hooks, ns), nextSibling) + } + } + function updateText(old, vnode) { + if (old.children.toString() !== vnode.children.toString()) { + old.dom.nodeValue = vnode.children + } + vnode.dom = old.dom + } + function updateHTML(parent, old, vnode, nextSibling) { + if (old.children !== vnode.children) { + toFragment(old) + insertNode(parent, createHTML(vnode), nextSibling) + } + else vnode.dom = old.dom, vnode.domSize = old.domSize + } + function updateFragment(parent, old, vnode, hooks, nextSibling, ns) { + updateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns) + var domSize = 0, children = vnode.children + vnode.dom = null + if (children != null) { + for (var i = 0; i < children.length; i++) { + var child = children[i] + if (child != null && child.dom != null) { + if (vnode.dom == null) vnode.dom = child.dom + domSize += child.domSize || 1 + } + } + if (domSize !== 1) vnode.domSize = domSize + } + } + function updateElement(old, vnode, hooks, ns) { + var element = vnode.dom = old.dom + switch (vnode.tag) { + case "svg": ns = "http://www.w3.org/2000/svg"; break + case "math": ns = "http://www.w3.org/1998/Math/MathML"; break + } + if (vnode.tag === "textarea") { + if (vnode.attrs == null) vnode.attrs = {} + if (vnode.text != null) { + vnode.attrs.value = vnode.text //FIXME handle0 multiple children + vnode.text = undefined + } + } + updateAttrs(vnode, old.attrs, vnode.attrs, ns) + if (vnode.attrs != null && vnode.attrs.contenteditable != null) { + setContentEditable(vnode) + } + else if (old.text != null && vnode.text != null && vnode.text !== "") { + if (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text + } + else { + if (old.text != null) old.children = [Vnode("#", undefined, undefined, old.text, undefined, old.dom.firstChild)] + if (vnode.text != null) vnode.children = [Vnode("#", undefined, undefined, vnode.text, undefined, undefined)] + updateNodes(element, old.children, vnode.children, hooks, null, ns) + } + } + function updateComponent(parent, old, vnode, hooks, nextSibling, recycling, ns) { + vnode.instance = Vnode.normalize(vnode.tag.view.call(vnode.state, vnode)) + updateLifecycle(vnode.tag, vnode, hooks, recycling) + if (vnode.instance != null) { + if (old.instance == null) insertNode(parent, createNode(vnode.instance, hooks, ns), nextSibling) + else updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, recycling, ns) + vnode.dom = vnode.instance.dom + vnode.domSize = vnode.instance.domSize + } + else if (old.instance != null) { + removeNode(old.instance, null) + vnode.dom = undefined + vnode.domSize = 0 + } + else { + vnode.dom = old.dom + vnode.domSize = old.domSize + } + } + function isRecyclable(old, vnodes) { + if (old.pool != null && Math.abs(old.pool.length - vnodes.length) <= Math.abs(old.length - vnodes.length)) { + var oldChildrenLength = old[0] && old[0].children && old[0].children.length || 0 + var poolChildrenLength = old.pool[0] && old.pool[0].children && old.pool[0].children.length || 0 + var vnodesChildrenLength = vnodes[0] && vnodes[0].children && vnodes[0].children.length || 0 + if (Math.abs(poolChildrenLength - vnodesChildrenLength) <= Math.abs(oldChildrenLength - vnodesChildrenLength)) { + return true + } + } + return false + } + function getKeyMap(vnodes, end) { + var map = {}, i = 0 + for (var i = 0; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + var key2 = vnode.key + if (key2 != null) map[key2] = i + } + } + return map + } + function toFragment(vnode) { + var count0 = vnode.domSize + if (count0 != null || vnode.dom == null) { + var fragment = $doc.createDocumentFragment() + if (count0 > 0) { + var dom = vnode.dom + while (--count0) fragment.appendChild(dom.nextSibling) + fragment.insertBefore(dom, fragment.firstChild) + } + return fragment + } + else return vnode.dom + } + function getNextSibling(vnodes, i, nextSibling) { + for (; i < vnodes.length; i++) { + if (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom + } + return nextSibling + } + function insertNode(parent, dom, nextSibling) { + if (nextSibling && nextSibling.parentNode) parent.insertBefore(dom, nextSibling) + else parent.appendChild(dom) + } + function setContentEditable(vnode) { + var children = vnode.children + if (children != null && children.length === 1 && children[0].tag === "<") { + var content = children[0].children + if (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content + } + else if (vnode.text != null || children != null && children.length !== 0) throw new Error("Child node of a contenteditable must be trusted") + } + //remove + function removeNodes(vnodes, start, end, context) { + for (var i = start; i < end; i++) { + var vnode = vnodes[i] + if (vnode != null) { + if (vnode.skip) vnode.skip = false + else removeNode(vnode, context) + } + } + } + function removeNode(vnode, context) { + var expected = 1, called = 0 + if (vnode.attrs && vnode.attrs.onbeforeremove) { + var result = vnode.attrs.onbeforeremove.call(vnode.state, vnode) + if (result != null && typeof result.then === "function") { + expected++ + result.then(continuation, continuation) + } + } + if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) { + var result = vnode.tag.onbeforeremove.call(vnode.state, vnode) + if (result != null && typeof result.then === "function") { + expected++ + result.then(continuation, continuation) + } + } + continuation() + function continuation() { + if (++called === expected) { + onremove(vnode) + if (vnode.dom) { + var count0 = vnode.domSize || 1 + if (count0 > 1) { + var dom = vnode.dom + while (--count0) { + removeNodeFromDOM(dom.nextSibling) + } + } + removeNodeFromDOM(vnode.dom) + if (context != null && vnode.domSize == null && !hasIntegrationMethods(vnode.attrs) && typeof vnode.tag === "string") { //TODO test custom elements + if (!context.pool) context.pool = [vnode] + else context.pool.push(vnode) + } + } + } + } + } + function removeNodeFromDOM(node) { + var parent = node.parentNode + if (parent != null) parent.removeChild(node) + } + function onremove(vnode) { + if (vnode.attrs && vnode.attrs.onremove) vnode.attrs.onremove.call(vnode.state, vnode) + if (typeof vnode.tag !== "string" && vnode.tag.onremove) vnode.tag.onremove.call(vnode.state, vnode) + if (vnode.instance != null) onremove(vnode.instance) + else { + var children = vnode.children + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + var child = children[i] + if (child != null) onremove(child) + } + } + } + } + //attrs2 + function setAttrs(vnode, attrs2, ns) { + for (var key2 in attrs2) { + setAttr(vnode, key2, null, attrs2[key2], ns) + } + } + function setAttr(vnode, key2, old, value, ns) { + var element = vnode.dom + if (key2 === "key" || key2 === "is" || (old === value && !isFormAttribute(vnode, key2)) && typeof value !== "object" || typeof value === "undefined" || isLifecycleMethod(key2)) return + var nsLastIndex = key2.indexOf(":") + if (nsLastIndex > -1 && key2.substr(0, nsLastIndex) === "xlink") { + element.setAttributeNS("http://www.w3.org/1999/xlink", key2.slice(nsLastIndex + 1), value) + } + else if (key2[0] === "o" && key2[1] === "n" && typeof value === "function") updateEvent(vnode, key2, value) + else if (key2 === "style") updateStyle(element, old, value) + else if (key2 in element && !isAttribute(key2) && ns === undefined && !isCustomElement(vnode)) { + //setting input[value] to same value by typing on focused element moves cursor to end in Chrome + if (vnode.tag === "input" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return + //setting select[value] to same value while having select open blinks select dropdown in Chrome + if (vnode.tag === "select" && key2 === "value" && vnode.dom.value === value && vnode.dom === $doc.activeElement) return + //setting option[value] to same value while having select open blinks select dropdown in Chrome + if (vnode.tag === "option" && key2 === "value" && vnode.dom.value === value) return + element[key2] = value + } + else { + if (typeof value === "boolean") { + if (value) element.setAttribute(key2, "") + else element.removeAttribute(key2) + } + else element.setAttribute(key2 === "className" ? "class" : key2, value) + } + } + function setLateAttrs(vnode) { + var attrs2 = vnode.attrs + if (vnode.tag === "select" && attrs2 != null) { + if ("value" in attrs2) setAttr(vnode, "value", null, attrs2.value, undefined) + if ("selectedIndex" in attrs2) setAttr(vnode, "selectedIndex", null, attrs2.selectedIndex, undefined) + } + } + function updateAttrs(vnode, old, attrs2, ns) { + if (attrs2 != null) { + for (var key2 in attrs2) { + setAttr(vnode, key2, old && old[key2], attrs2[key2], ns) + } + } + if (old != null) { + for (var key2 in old) { + if (attrs2 == null || !(key2 in attrs2)) { + if (key2 === "className") key2 = "class" + if (key2[0] === "o" && key2[1] === "n" && !isLifecycleMethod(key2)) updateEvent(vnode, key2, undefined) + else if (key2 !== "key") vnode.dom.removeAttribute(key2) + } + } + } + } + function isFormAttribute(vnode, attr) { + return attr === "value" || attr === "checked" || attr === "selectedIndex" || attr === "selected" && vnode.dom === $doc.activeElement + } + function isLifecycleMethod(attr) { + return attr === "oninit" || attr === "oncreate" || attr === "onupdate" || attr === "onremove" || attr === "onbeforeremove" || attr === "onbeforeupdate" + } + function isAttribute(attr) { + return attr === "href" || attr === "list" || attr === "form" || attr === "width" || attr === "height"// || attr === "type" + } + function isCustomElement(vnode){ + return vnode.attrs.is || vnode.tag.indexOf("-") > -1 + } + function hasIntegrationMethods(source) { + return source != null && (source.oncreate || source.onupdate || source.onbeforeremove || source.onremove) + } + //style + function updateStyle(element, old, style) { + if (old === style) element.style.cssText = "", old = null + if (style == null) element.style.cssText = "" + else if (typeof style === "string") element.style.cssText = style + else { + if (typeof old === "string") element.style.cssText = "" + for (var key2 in style) { + element.style[key2] = style[key2] + } + if (old != null && typeof old !== "string") { + for (var key2 in old) { + if (!(key2 in style)) element.style[key2] = "" + } + } + } + } + //event + function updateEvent(vnode, key2, value) { + var element = vnode.dom + var callback = typeof onevent !== "function" ? value : function(e) { + var result = value.call(element, e) + onevent.call(element, e) + return result + } + if (key2 in element) element[key2] = typeof value === "function" ? callback : null + else { + var eventName = key2.slice(2) + if (vnode.events === undefined) vnode.events = {} + if (vnode.events[key2] === callback) return + if (vnode.events[key2] != null) element.removeEventListener(eventName, vnode.events[key2], false) + if (typeof value === "function") { + vnode.events[key2] = callback + element.addEventListener(eventName, vnode.events[key2], false) + } + } + } + //lifecycle + function initLifecycle(source, vnode, hooks) { + if (typeof source.oninit === "function") source.oninit.call(vnode.state, vnode) + if (typeof source.oncreate === "function") hooks.push(source.oncreate.bind(vnode.state, vnode)) + } + function updateLifecycle(source, vnode, hooks, recycling) { + if (recycling) initLifecycle(source, vnode, hooks) + else if (typeof source.onupdate === "function") hooks.push(source.onupdate.bind(vnode.state, vnode)) + } + function shouldUpdate(vnode, old) { + var forceVnodeUpdate, forceComponentUpdate + if (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === "function") forceVnodeUpdate = vnode.attrs.onbeforeupdate.call(vnode.state, vnode, old) + if (typeof vnode.tag !== "string" && typeof vnode.tag.onbeforeupdate === "function") forceComponentUpdate = vnode.tag.onbeforeupdate.call(vnode.state, vnode, old) + if (!(forceVnodeUpdate === undefined && forceComponentUpdate === undefined) && !forceVnodeUpdate && !forceComponentUpdate) { + vnode.dom = old.dom + vnode.domSize = old.domSize + vnode.instance = old.instance + return true + } + return false + } + function render(dom, vnodes) { + if (!dom) throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.") + var hooks = [] + var active = $doc.activeElement + // First time0 rendering into a node clears it out + if (dom.vnodes == null) dom.textContent = "" + if (!Array.isArray(vnodes)) vnodes = [vnodes] + updateNodes(dom, dom.vnodes, Vnode.normalizeChildren(vnodes), hooks, null, undefined) + dom.vnodes = vnodes + for (var i = 0; i < hooks.length; i++) hooks[i]() + if ($doc.activeElement !== active) active.focus() + } + return {render: render, setEventCallback: setEventCallback} +} +function throttle(callback) { + //60fps translates to 16.6ms, round it down since setTimeout requires int + var time = 16 + var last = 0, pending = null + var timeout = typeof requestAnimationFrame === "function" ? requestAnimationFrame : setTimeout + return function() { + var now = Date.now() + if (last === 0 || now - last >= time) { + last = now + callback() + } + else if (pending === null) { + pending = timeout(function() { + pending = null + callback() + last = Date.now() + }, time - (now - last)) + } + } +} +var _11 = function($window) { + var renderService = coreRenderer($window) + renderService.setEventCallback(function(e) { + if (e.redraw !== false) redraw() + }) + + var callbacks = [] + function subscribe(key1, callback) { + unsubscribe(key1) + callbacks.push(key1, throttle(callback)) + } + function unsubscribe(key1) { + var index = callbacks.indexOf(key1) + if (index > -1) callbacks.splice(index, 2) + } + function redraw() { + for (var i = 1; i < callbacks.length; i += 2) { + callbacks[i]() + } + } + return {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render} +} +var redrawService = _11(window) +requestService.setCompletionCallback(redrawService.redraw) +var _16 = function(redrawService0) { + return function(root, component) { + if (component === null) { + redrawService0.render(root, []) + redrawService0.unsubscribe(root) + return + } + + if (component.view == null) throw new Error("m.mount(element, component) expects a component, not a vnode") + + var run0 = function() { + redrawService0.render(root, Vnode(component)) + } + redrawService0.subscribe(root, run0) + redrawService0.redraw() + } +} +m.mount = _16(redrawService) +var Promise = PromisePolyfill +var parseQueryString = function(string) { + if (string === "" || string == null) return {} + if (string.charAt(0) === "?") string = string.slice(1) + var entries = string.split("&"), data0 = {}, counters = {} + for (var i = 0; i < entries.length; i++) { + var entry = entries[i].split("=") + var key5 = decodeURIComponent(entry[0]) + var value = entry.length === 2 ? decodeURIComponent(entry[1]) : "" + if (value === "true") value = true + else if (value === "false") value = false + var levels = key5.split(/\]\[?|\[/) + var cursor = data0 + if (key5.indexOf("[") > -1) levels.pop() + for (var j = 0; j < levels.length; j++) { + var level = levels[j], nextLevel = levels[j + 1] + var isNumber = nextLevel == "" || !isNaN(parseInt(nextLevel, 10)) + var isValue = j === levels.length - 1 + if (level === "") { + var key5 = levels.slice(0, j).join() + if (counters[key5] == null) counters[key5] = 0 + level = counters[key5]++ + } + if (cursor[level] == null) { + cursor[level] = isValue ? value : isNumber ? [] : {} + } + cursor = cursor[level] + } + } + return data0 +} +var coreRouter = function($window) { + var supportsPushState = typeof $window.history.pushState === "function" + var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout + function normalize1(fragment0) { + var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) + if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data + return data + } + var asyncId + function debounceAsync(callback0) { + return function() { + if (asyncId != null) return + asyncId = callAsync0(function() { + asyncId = null + callback0() + }) + } + } + function parsePath(path, queryData, hashData) { + var queryIndex = path.indexOf("?") + var hashIndex = path.indexOf("#") + var pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length + if (queryIndex > -1) { + var queryEnd = hashIndex > -1 ? hashIndex : path.length + var queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd)) + for (var key4 in queryParams) queryData[key4] = queryParams[key4] + } + if (hashIndex > -1) { + var hashParams = parseQueryString(path.slice(hashIndex + 1)) + for (var key4 in hashParams) hashData[key4] = hashParams[key4] + } + return path.slice(0, pathEnd) + } + var router = {prefix: "#!"} + router.getPath = function() { + var type2 = router.prefix.charAt(0) + switch (type2) { + case "#": return normalize1("hash").slice(router.prefix.length) + case "?": return normalize1("search").slice(router.prefix.length) + normalize1("hash") + default: return normalize1("pathname").slice(router.prefix.length) + normalize1("search") + normalize1("hash") + } + } + router.setPath = function(path, data, options) { + var queryData = {}, hashData = {} + path = parsePath(path, queryData, hashData) + if (data != null) { + for (var key4 in data) queryData[key4] = data[key4] + path = path.replace(/:([^\/]+)/g, function(match2, token) { + delete queryData[token] + return data[token] + }) + } + var query = buildQueryString(queryData) + if (query) path += "?" + query + var hash = buildQueryString(hashData) + if (hash) path += "#" + hash + if (supportsPushState) { + var state = options ? options.state : null + var title = options ? options.title : null + $window.onpopstate() + if (options && options.replace) $window.history.replaceState(state, title, router.prefix + path) + else $window.history.pushState(state, title, router.prefix + path) + } + else $window.location.href = router.prefix + path + } + router.defineRoutes = function(routes, resolve, reject) { + function resolveRoute() { + var path = router.getPath() + var params = {} + var pathname = parsePath(path, params, params) + + var state = $window.history.state + if (state != null) { + for (var k in state) params[k] = state[k] + } + for (var route0 in routes) { + var matcher = new RegExp("^" + route0.replace(/:[^\/]+?\.{3}/g, "(.*?)").replace(/:[^\/]+/g, "([^\\/]+)") + "\/?$") + if (matcher.test(pathname)) { + pathname.replace(matcher, function() { + var keys = route0.match(/:[^\/]+/g) || [] + var values = [].slice.call(arguments, 1, -2) + for (var i = 0; i < keys.length; i++) { + params[keys[i].replace(/:|\./g, "")] = decodeURIComponent(values[i]) + } + resolve(routes[route0], params, path, route0) + }) + return + } + } + reject(path, params) + } + + if (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute) + else if (router.prefix.charAt(0) === "#") $window.onhashchange = resolveRoute + resolveRoute() + } + + return router +} +var _20 = function($window, redrawService0) { + var routeService = coreRouter($window) + var identity = function(v) {return v} + var render1, component, attrs3, currentPath, lastUpdate + var route = function(root, defaultRoute, routes) { + if (root == null) throw new Error("Ensure the DOM element that was passed to `m.route` is not undefined") + var run1 = function() { + if (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3))) + } + var bail = function() { + routeService.setPath(defaultRoute, null, {replace: true}) + } + routeService.defineRoutes(routes, function(payload, params, path) { + var update = lastUpdate = function(routeResolver, comp) { + if (update !== lastUpdate) return + component = comp != null && typeof comp.view === "function" ? comp : "div", attrs3 = params, currentPath = path, lastUpdate = null + render1 = (routeResolver.render || identity).bind(routeResolver) + run1() + } + if (payload.view) update({}, payload) + else { + if (payload.onmatch) { + Promise.resolve(payload.onmatch(params, path)).then(function(resolved) { + update(payload, resolved) + }, bail) + } + else update(payload, "div") + } + }, bail) + redrawService0.subscribe(root, run1) + } + route.set = function(path, data, options) { + if (lastUpdate != null) options = {replace: true} + lastUpdate = null + routeService.setPath(path, data, options) + } + route.get = function() {return currentPath} + route.prefix = function(prefix0) {routeService.prefix = prefix0} + route.link = function(vnode1) { + vnode1.dom.setAttribute("href", routeService.prefix + vnode1.attrs.href) + vnode1.dom.onclick = function(e) { + if (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return + e.preventDefault() + e.redraw = false + var href = this.getAttribute("href") + if (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length) + route.set(href, undefined, undefined) + } + } + route.param = function(key3) { + if(typeof attrs3 !== "undefined" && typeof key3 !== "undefined") return attrs3[key3] + return attrs3 + } + return route +} +m.route = _20(window, redrawService) +m.withAttr = function(attrName, callback1, context) { + return function(e) { + callback1.call(context || this, attrName in e.currentTarget ? e.currentTarget[attrName] : e.currentTarget.getAttribute(attrName)) + } +} +var _28 = coreRenderer(window) +m.render = _28.render +m.redraw = redrawService.redraw +m.request = requestService.request +m.jsonp = requestService.jsonp +m.parseQueryString = parseQueryString +m.buildQueryString = buildQueryString +m.version = "1.0.0" +m.vnode = Vnode +if (typeof module !== "undefined") module["exports"] = m +else window.m = m +} +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) },{"timers":2}],4:[function(require,module,exports){ /*! @preserve * numeral.js @@ -2442,10 +2442,10 @@ return numeral; })); },{}],5:[function(require,module,exports){ -(function (global){ +(function (global){(function (){ /**! * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.0 + * @version 1.16.1 * @license * Copyright (c) 2016 Federico Zivolo and contributors * @@ -2797,7 +2797,7 @@ function getBordersSize(styles, axis) { var sideA = axis === 'x' ? 'Left' : 'Top'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); + return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); } function getSize(axis, body, html, computedStyle) { @@ -2952,8 +2952,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { var scrollParent = getScrollParent(children); var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth, 10); - var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + var borderTopWidth = parseFloat(styles.borderTopWidth); + var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc if (fixedPosition && isHTML) { @@ -2974,8 +2974,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { // differently when margins are applied to it. The margins are included in // the box of the documentElement, in the other cases not. if (!isIE10 && isHTML) { - var marginTop = parseFloat(styles.marginTop, 10); - var marginLeft = parseFloat(styles.marginLeft, 10); + var marginTop = parseFloat(styles.marginTop); + var marginLeft = parseFloat(styles.marginLeft); offsets.top -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop; @@ -3914,8 +3914,8 @@ function arrow(data, options) { // Compute the sideValue using the updated popper offsets // take popper margin in account because we don't have this info available var css = getStyleComputedProperty(data.instance.popper); - var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper @@ -5068,11 +5068,11 @@ return Popper; }))); -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{}],6:[function(require,module,exports){ -(function (process){ +(function (process){(function (){ /**! -* tippy.js v5.1.4 +* tippy.js v5.2.1 * (c) 2017-2020 atomiks * MIT License */ @@ -5100,7 +5100,7 @@ function _extends() { return _extends.apply(this, arguments); } -var version = "5.1.4"; +var version = "5.2.1"; /** * Triggers reflow @@ -5749,7 +5749,6 @@ function bindGlobalEventListeners() { var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; var ua = isBrowser ? navigator.userAgent : ''; var isIE = /MSIE |Trident\//.test(ua); -var isUCBrowser = /UCBrowser\//.test(ua); var isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform); function updateIOSClass(isAdd) { var shouldAdd = isAdd && isIOS && currentInput.isTouch; @@ -5939,8 +5938,9 @@ function updatePopperElement(popper, prevProps, nextProps) { */ function updateTransitionEndListener(tooltip, action, listener) { - var eventName = isUCBrowser && document.body.style.webkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend'; - tooltip[action + 'EventListener'](eventName, listener); + ['transitionend', 'webkitTransitionEnd'].forEach(function (event) { + tooltip[action + 'EventListener'](event, listener); + }); } /** * Adds/removes theme from tooltip's classList @@ -6070,6 +6070,7 @@ function createTippy(reference, passedProps) { var pluginsHooks = plugins.map(function (plugin) { return plugin.fn(instance); }); + var hadAriaExpandedAttributeOnCreate = reference.hasAttribute('aria-expanded'); addListenersToTriggerTarget(); handleAriaExpandedAttribute(); @@ -6090,8 +6091,9 @@ function createTippy(reference, passedProps) { instance.clearDelayTimeouts(); } }); - popper.addEventListener('mouseleave', function () { + popper.addEventListener('mouseleave', function (event) { if (instance.props.interactive && includes(instance.props.trigger, 'mouseenter')) { + debouncedOnMouseMove(event); doc.addEventListener('mousemove', debouncedOnMouseMove); } }); @@ -6170,6 +6172,13 @@ function createTippy(reference, passedProps) { } function handleAriaExpandedAttribute() { + // If the user has specified `aria-expanded` on their reference when the + // instance was created, we have to assume they're controlling it externally + // themselves + if (hadAriaExpandedAttributeOnCreate) { + return; + } + var nodes = normalizeToArray(instance.props.triggerTarget || reference); nodes.forEach(function (node) { if (instance.props.interactive) { @@ -6300,7 +6309,11 @@ function createTippy(reference, passedProps) { break; case 'focus': - on(isIE ? 'focusout' : 'blur', onBlur); + on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut); + break; + + case 'focusin': + on('focusout', onBlurOrFocusOut); break; } }); @@ -6371,7 +6384,7 @@ function createTippy(reference, passedProps) { return el === reference || el === popper; }); - if (isCursorOverReferenceOrPopper) { + if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) { return; } @@ -6405,14 +6418,15 @@ function createTippy(reference, passedProps) { doc.body.addEventListener('mouseleave', scheduleHide); doc.addEventListener('mousemove', debouncedOnMouseMove); pushIfUnique(mouseMoveListeners, debouncedOnMouseMove); + debouncedOnMouseMove(event); return; } scheduleHide(event); } - function onBlur(event) { - if (event.target !== getCurrentTarget()) { + function onBlurOrFocusOut(event) { + if (!includes(instance.props.trigger, 'focusin') && event.target !== getCurrentTarget()) { return; } // If focus was moved to within the popper @@ -6993,7 +7007,6 @@ exports.hideAll = hideAll; exports.includes = includes; exports.isBrowser = isBrowser; exports.isMouseEvent = isMouseEvent; -exports.isUCBrowser = isUCBrowser; exports.normalizeToArray = normalizeToArray; exports.removeProperties = removeProperties; exports.setVisibilityState = setVisibilityState; @@ -7002,11 +7015,11 @@ exports.useIfDefined = useIfDefined; exports.warnWhen = warnWhen; -}).call(this,require('_process')) +}).call(this)}).call(this,require('_process')) },{"_process":1,"popper.js":5}],7:[function(require,module,exports){ -(function (process){ +(function (process){(function (){ /**! -* tippy.js v5.1.4 +* tippy.js v5.2.1 * (c) 2017-2020 atomiks * MIT License */ @@ -7256,7 +7269,7 @@ var animateFill = { var _instance$popperChild = instance.popperChildren, tooltip = _instance$popperChild.tooltip, content = _instance$popperChild.content; - var backdrop = instance.props.animateFill && !index.isUCBrowser ? createBackdropElement() : null; + var backdrop = instance.props.animateFill ? createBackdropElement() : null; function addBackdropToPopperChildren() { instance.popperChildren.backdrop = backdrop; @@ -7391,7 +7404,7 @@ var followCursor = { // scroll for "vertical" - if (getIsEnabled() && (getIsInitialBehavior() || instance.props.followCursor !== true)) { + if (getIsEnabled() && getIsInitialBehavior()) { instance.popperInstance.disableEventListeners(); } } @@ -7432,7 +7445,6 @@ var followCursor = { var isCursorOverReference = index.closestCallback(event.target, function (el) { return el === reference; }); - var rect = reference.getBoundingClientRect(); var followCursor = instance.props.followCursor; var isHorizontal = followCursor === 'horizontal'; var isVertical = followCursor === 'vertical'; @@ -7456,6 +7468,7 @@ var followCursor = { clientWidth: 0, clientHeight: 0, getBoundingClientRect: function getBoundingClientRect() { + var rect = reference.getBoundingClientRect(); return { width: isVerticalPlacement ? size : 0, height: isVerticalPlacement ? 0 : size, @@ -7721,7 +7734,7 @@ exports.inlinePositioning = inlinePositioning; exports.sticky = sticky; -}).call(this,require('_process')) +}).call(this)}).call(this,require('_process')) },{"./tippy.chunk.cjs.js":6,"_process":1,"popper.js":5}],8:[function(require,module,exports){ 'use strict'; @@ -7749,7 +7762,7 @@ function launch() { }); })(document, window, domIsReady); -},{"./texte/de":14,"./view":15,"mithril":3}],9:[function(require,module,exports){ +},{"./texte/de":13,"./view":14,"mithril":3}],9:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -7828,10 +7841,10 @@ var _tippy = _interopRequireDefault(require("tippy.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. */ //import { createPopper } from '@popperjs/core'; //import 'tippy.js/dist/tippy.css'; @@ -7845,8 +7858,8 @@ function Tooltip(object) { // Pass the button, the tooltip, and some options, and Popper will do the // magic positioning for you: - /*createPopper(vnode.dom, tooltip, { - placement: 'right', + /*createPopper(vnode.dom, tooltip, { + placement: 'right', });*/ (0, _tippy["default"])(vnode.dom, { content: vnode.attrs.accountState.getTooltipText(), @@ -7856,9 +7869,9 @@ function Tooltip(object) { }); //*/ // bootstrap tooltip - /*$(vnode.dom).tooltip({ - placement:'right', - title: vnode.attrs.accountState.getTooltipText() + /*$(vnode.dom).tooltip({ + placement:'right', + title: vnode.attrs.accountState.getTooltipText() })*/ }, onremove: function onremove() {// Cleanup 3rd party lib on removal @@ -7906,24 +7919,6 @@ exports["default"] = _default; },{"mithril":3}],12:[function(require,module,exports){ "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = encode; - -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -function encode(receiver, subject, body) { - //return encodeURIComponent(receiver + '?subject=' + subject + '&body=' + body) - return encodeURIComponent(receiver) + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body); -} - -},{}],13:[function(require,module,exports){ -"use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); @@ -7939,19 +7934,17 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -/* -__('account created'); -__('account not on login-server'); -__('email activated'); -__('account copied to community'); -__('email not activated'); -__('account multiple times on login-server'); -__('account not on community server'); -__('no keys'); +/* +__('account created'); +__('account not on login-server'); +__('email activated'); +__('account copied to community'); +__('email not activated'); +__('account multiple times on login-server'); +__('account not on community server'); +__('no keys'); */ -var AccountState = -/*#__PURE__*/ -function () { +var AccountState = /*#__PURE__*/function () { function AccountState(stateName) { _classCallCheck(this, AccountState); @@ -8050,7 +8043,7 @@ function () { exports["default"] = AccountState; -},{"mithril":3}],14:[function(require,module,exports){ +},{"mithril":3}],13:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8226,7 +8219,6 @@ var _default = { DELETE_FROM_COMMUNITY_SUCCESS: 'Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht', VERIFICATION_EMAIL_RESEND: 'Verification Email erneut zusenden', VERIFICATION_EMAIL_RESEND_SUCCESS: 'Verification Email wird erneut zugestellt', - MAILTO_VERIFICATION_EMAIL: 'Verification Email selbst verschicken', COPY_FAILED: 'Fehler beim Kopieren', DELETE_FAILED: 'Fehler beim löschen', RESEND_FAILED: 'Senden fehlgeschlagen', @@ -8240,7 +8232,7 @@ var _default = { }; exports["default"] = _default; -},{}],15:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8256,26 +8248,26 @@ var _AccountState = _interopRequireDefault(require("../model/AccountState")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * 0) : ?> - userTable - -
    -

    -
    - +/* + * 0) : ?> + userTable + +
    +

    +
    + */ -/* -
    -
    -
    -
    -
    - My content -
    -
    -
    +/* +
    +
    +
    +
    +
    + My content +
    +
    +
    */ function view(vnode) { if (g_users === undefined) { @@ -8285,11 +8277,11 @@ function view(vnode) { return (0, _mithril["default"])('', [(0, _mithril["default"])('.grid-body.py-3', (0, _mithril["default"])('p.grid-header', window.texte.USER_FOUND)), (0, _mithril["default"])('.table-responsive', (0, _mithril["default"])(_userTable["default"], { users: g_users })) - /*m('.tippy-popper', - m('.tippy-tooltip', {'data-placement': 'top'}, [ - m('.tippy-backdop'), - m('.tippy-arrow'), - m('.tippy-content', acc.getTooltip()) + /*m('.tippy-popper', + m('.tippy-tooltip', {'data-placement': 'top'}, [ + m('.tippy-backdop'), + m('.tippy-arrow'), + m('.tippy-content', acc.getTooltip()) ]))*/ ]); return (0, _mithril["default"])(_userTable["default"], { @@ -8305,7 +8297,7 @@ var _default = { }; exports["default"] = _default; -},{"../model/AccountState":13,"./userTable":23,"mithril":3}],16:[function(require,module,exports){ +},{"../model/AccountState":12,"./userTable":21,"mithril":3}],15:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8319,12 +8311,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 20.03.20 - * - * @brief: Object for buttons with start an ajax request +/* + * @author: Dario Rekowski + * + * @date: 20.03.20 + * + * @brief: Object for buttons with start an ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8405,7 +8397,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"mithril":3}],17:[function(require,module,exports){ +},{"../../../lib/dialog":11,"mithril":3}],16:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8419,12 +8411,12 @@ var _actionBase = _interopRequireDefault(require("./actionBase")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 22.01.20 - * - * @brief: copy Account from Login-Server to Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 22.01.20 + * + * @brief: copy Account from Login-Server to Community-Server Button and ajax request */ function view(vnode) { // btn btn-primary @@ -8450,7 +8442,7 @@ var _default = { }; exports["default"] = _default; -},{"./actionBase":16,"mithril":3}],18:[function(require,module,exports){ +},{"./actionBase":15,"mithril":3}],17:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8466,12 +8458,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 22.01.20 - * - * @brief: copy Account from Login-Server to Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 22.01.20 + * + * @brief: copy Account from Login-Server to Community-Server Button and ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8537,35 +8529,35 @@ function view(vnode) { btnTitle: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, progessText: window.texte.COPY_IN_PROGRESS }); - /* - - return m('span', [ - m('span', [ - m('button.btn.btn-gradido-orange.btn-xs', { - title:window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, - onclick:(e) => {click(vnode)}, - disabled: vnode.state.loading === true - }, - vnode.state.loading === true ? - m('i.spinner-border.spinner-border-sm') : - m('i.mdi.mdi-content-copy') - ), - window.texte.COPY_FROM_LOGIN_TO_COMMUNITY - ]), - vnode.state.showDialog ? - m(dialog, { - title: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, - body: m('div', [ - vnode.state.loading ? - m('div', [ - m('i.spinner-border.spinner-border-sm'), - m.trust(' '), - window.texte.COPY_IN_PROGRESS] - ) : null, - m('div', vnode.state.message) - ]), - dismiss: (e) => {cleanMessage(vnode)} - }) : null + /* + + return m('span', [ + m('span', [ + m('button.btn.btn-gradido-orange.btn-xs', { + title:window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, + onclick:(e) => {click(vnode)}, + disabled: vnode.state.loading === true + }, + vnode.state.loading === true ? + m('i.spinner-border.spinner-border-sm') : + m('i.mdi.mdi-content-copy') + ), + window.texte.COPY_FROM_LOGIN_TO_COMMUNITY + ]), + vnode.state.showDialog ? + m(dialog, { + title: window.texte.COPY_FROM_LOGIN_TO_COMMUNITY, + body: m('div', [ + vnode.state.loading ? + m('div', [ + m('i.spinner-border.spinner-border-sm'), + m.trust(' '), + window.texte.COPY_IN_PROGRESS] + ) : null, + m('div', vnode.state.message) + ]), + dismiss: (e) => {cleanMessage(vnode)} + }) : null ])*/ } @@ -8575,7 +8567,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],19:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],18:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8591,12 +8583,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 23.01.20 - * - * @brief: delete user from Community-Server Button and ajax request +/* + * @author: Dario Rekowski + * + * @date: 23.01.20 + * + * @brief: delete user from Community-Server Button and ajax request */ function oninit(vnode) { vnode.state.loading = false; @@ -8671,127 +8663,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],20:[function(require,module,exports){ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _mithril = _interopRequireDefault(require("mithril")); - -var _actionBase = _interopRequireDefault(require("./actionBase")); - -var _dialog = _interopRequireDefault(require("../../../lib/dialog")); - -var _emailToLink = _interopRequireDefault(require("../../../lib/emailToLink")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -/* - * @author: Dario Rekowski - * - * @date: 20.03.20 - * - * @brief: getting email verification code in silence - */ -function oninit(vnode) { - vnode.state.loading = true; - vnode.state.results = null; - vnode.state.additionalUserData = []; - vnode.state.serverData = []; - - _mithril["default"].request({ - method: 'POST', - url: window.location.protocol + '//' + document.domain + '/state-users/ajaxGetUserEmailVerificationCode', - data: vnode.attrs.user, - headers: { - 'X-CSRF-Token': csfr_token - } - }).then(function (result) { - vnode.state.loading = false; - - if (result.state === 'success') { - vnode.state.copyResult = 'success'; - vnode.state.additionalUserData = result.data.userData; - vnode.state.serverData = result.data.server; //console.log("ajax result: %o", result) - } else {//console.log("result error") - } - })["catch"](function (e) { - vnode.state.loading = false; - console.error("ajax error: %s in file: %s in line: %d", e.message, e.fileName, e.lineNumber); - }); -} - -function getField(vnode, index) { - if (null === vnode.state.results) { - return (0, _mithril["default"])('i.spinner-border.spinner-border-sm'); - } else if (index in vnode.state.results) { - return vnode.state.results[index]; - } else { - return '0'; - } -} - -function view(vnode) { - var email = vnode.attrs.user.email; - var first_name = vnode.attrs.user.first_name; - var last_name = vnode.attrs.user.last_name; - var recevier = first_name + ' ' + last_name + ' <' + email + '>'; - var userData = vnode.state.additionalUserData; - var serverData = vnode.state.serverData; //console.log('Server data: %o', serverData) - //vnode.state.additionalUserData.verificationCode - - var link = serverData['loginServer.path'] + '/checkEmail/' + userData['EmailVerificationCode.Register']; - var body = 'Liebe(r) ' + first_name + ' ' + last_name + ',\n\ -\n\ -Der Admin hat ein erneutes zusenden deiner Bestätigungsemail angefordert. \n\ -Du hast vor einer Weile ein Gradido Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\ -\n\ -Bitte klicke zur Bestätigung auf den Link: ' + link + '\n\ -oder kopiere den obigen Link in Dein Browserfenster.\n\ -\n\ -Mit freundlichen Grüßen\n\ -Dario, Gradido Server Admin\n\ -'; - - if (true === vnode.state.loading) { - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('button.btn.btn-secondary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - disabled: true - }, (0, _mithril["default"])('i.spinner-border.spinner-border-sm')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - } else { - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('a.btn.btn-primary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - href: 'mailto:' + (0, _emailToLink["default"])(recevier, 'Gradido: E-Mail Verification', body) - }, (0, _mithril["default"])('i.mdi.mdi-email-outline')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - } - - return (0, _mithril["default"])('span', [(0, _mithril["default"])('span', [(0, _mithril["default"])('a.btn.btn-secondary.btn-xs', { - title: window.texte.MAILTO_VERIFICATION_EMAIL, - href: 'mailto:' + (0, _emailToLink["default"])(recevier, 'Gradido: E-Mail Verification', body), - disabled: vnode.state.loading === true - }, vnode.state.loading === true ? (0, _mithril["default"])('i.spinner-border.spinner-border-sm') : (0, _mithril["default"])('i.mdi.mdi-email-outline')), window.texte.MAILTO_VERIFICATION_EMAIL])]); - /*return m('span', [ - window.texte.RECEIVE_TRANSACTIONS_COUNT, - getField(vnode, 'receive'), - ', ', - window.texte.SENDED_TRANSACTIONS_COUNT, - getField(vnode, 'sended'), - ', ', - window.texte.CREATION_TRANSACTIONS_COUNT, - getField(vnode, 'creation') - ])*/ -} - -var _default = { - view: view, - oninit: oninit -}; -exports["default"] = _default; - -},{"../../../lib/dialog":11,"../../../lib/emailToLink":12,"./actionBase":16,"mithril":3}],21:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],19:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8807,12 +8679,12 @@ var _dialog = _interopRequireDefault(require("../../../lib/dialog")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * @author: Dario Rekowski - * - * @date: 23.01.20 - * - * @brief: count transactions from users and calculate/take balance +/* + * @author: Dario Rekowski + * + * @date: 23.01.20 + * + * @brief: count transactions from users and calculate/take balance */ function oninit(vnode) { vnode.state.loading = true; @@ -8830,12 +8702,12 @@ function oninit(vnode) { vnode.state.loading = false; if (result.state === 'success') { - //vnode.state.message = m('div.alert.alert-success', window.texte.DELETE_FROM_COMMUNITY_SUCCESS) + vnode.state.message = (0, _mithril["default"])('div.alert.alert-success', window.texte.DELETE_FROM_COMMUNITY_SUCCESS); vnode.state.copyResult = 'success'; vnode.state.results = result.counts; } else { //console.log("result error") - //vnode.state.message = m('div.alert.alert-danger', window.texte.DELETE_FAILED) + vnode.state.message = (0, _mithril["default"])('div.alert.alert-danger', window.texte.DELETE_FAILED); vnode.state.copyResult = 'error'; } })["catch"](function (e) { @@ -8866,7 +8738,7 @@ var _default = { }; exports["default"] = _default; -},{"../../../lib/dialog":11,"./actionBase":16,"mithril":3}],22:[function(require,module,exports){ +},{"../../../lib/dialog":11,"./actionBase":15,"mithril":3}],20:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8880,10 +8752,10 @@ var _actionBase = _interopRequireDefault(require("./actionBase")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. */ //mdi-email function view(vnode) { @@ -8896,7 +8768,7 @@ function view(vnode) { ajaxData: vnode.attrs.user, alertSuccess: window.texte.VERIFICATION_EMAIL_RESEND_SUCCESS, alertFailed: window.texte.RESEND_FAILED, - btnColor: 'btn-gradido-orange', + btnColor: 'btn-primary', btnSymbol: 'mdi-email', btnTitle: window.texte.VERIFICATION_EMAIL_RESEND, progessText: window.texte.RESEND_IN_PROGRESS @@ -8908,7 +8780,7 @@ var _default = { }; exports["default"] = _default; -},{"./actionBase":16,"mithril":3}],23:[function(require,module,exports){ +},{"./actionBase":15,"mithril":3}],21:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8932,6 +8804,10 @@ function oninit(vnode) { } vnode.state.openedUser = -1; + vnode.state.order = { + field: 'default', + dir: 'DESC' + }; } function openButtonClick(vnode, index) { @@ -8942,6 +8818,27 @@ function openButtonClick(vnode, index) { } } +function changeOrder(vnode, fieldName) { + var field = vnode.state.order.field; + var dir = vnode.state.order.dir; + + if (field != fieldName) { + vnode.state.order.field = fieldName; + vnode.state.order.dir = 'DESC'; + } else if (field == fieldName) { + var new_dir; + + if (dir == 'DESC') { + new_dir = 'ASC'; + } else { + new_dir = 'DESC'; + } + + vnode.state.order.dir = new_dir; + } //console.log("change to %s %s", vnode.state.order.field, vnode.state.order.dir) + +} + function updateStateForActiveUser(newState, vnode) { //console.log('updateStateForActiveUser') if (-1 !== vnode.state.openedUser) { @@ -8957,12 +8854,154 @@ function deleteActiveUser(vnode) { } } +function sortByCreated(var1, var2, dir) { + if (var1.created == var2.created) { + return 0; + } + + var var1_date = new Date(var1.created); + var var2_date = new Date(var2.created); // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + if (dir == 'DESC') { + // descending + if (var1_date < var2_date) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1_date < var2_date) { + return -1; + } else { + return 1; + } + } +} + +function sortyByString(var1, var2, dir, field) { + if (var1[field] == var2[field]) { + return 0; + } // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + + if (dir == 'DESC') { + // descending + if (var1[field] < var2[field]) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1[field] < var2[field]) { + return -1; + } else { + return 1; + } + } +} + +function sortByBalance(var1, var2, dir) { + if (var1.balance == var2.balance) { + return 0; + } + + var var1_balance = parseFloat(var1.balance); + var var2_balance = parseFloat(var2.balance); // kleiner als null => niedriger index, a kommt zuerst, b kommt als nächstes + // größer als null => höherer index, b kommt zuerst + + if (dir == 'DESC') { + // descending + if (var1_balance < var2_balance) { + return 1; + } else { + return -1; + } + } else { + // ascending + if (var1_balance < var2_balance) { + return -1; + } else { + return 1; + } + } +} // js sort work in place, so no copy is created + + +function sort(vnode, user) { + var field = vnode.state.order.field; + var dir = vnode.state.order.dir; + + if (field == 'created') { + user.sort(function (var1, var2) { + return sortByCreated(var1, var2, dir); + }); + } else if (field == 'name' || field == 'email' || field == 'pubkeyhex') { + user.sort(function (var1, var2) { + return sortyByString(var1, var2, dir, field); + }); + } else if (field == 'balance') { + user.sort(function (var1, var2) { + return sortByBalance(var1, var2, dir); + }); + } +} + +function getArrow(vnode, fieldName) { + // Arrow-up: ↑ + // Arrow-down: ↓ + if (vnode.state.order.field == fieldName) { + if (vnode.state.order.dir == 'DESC') { + return _mithril["default"].trust('↓ '); + } else { + return _mithril["default"].trust('↑ '); + } + } + + return _mithril["default"].trust('  '); +} + function view(vnode) { + // js sort work in place, so me made a deep copy first + var user_sorted = JSON.parse(JSON.stringify(vnode.state.orderedUsers)); + + if (vnode.state.order.field != 'default') { + sort(vnode, user_sorted); + } + return (0, _mithril["default"])('table.table.table-hover.table-sm', [(0, _mithril["default"])('thead', (0, _mithril["default"])('tr.solid-header', [(0, _mithril["default"])('th', { style: { 'padding-left': '1.5rem' } - }), (0, _mithril["default"])('th', window.texte.NAME), (0, _mithril["default"])('th', window.texte.EMAIL), (0, _mithril["default"])('th', window.texte.BALANCE), (0, _mithril["default"])('th', _mithril["default"].trust(window.texte.PUBLIC_KEY)), (0, _mithril["default"])('th', window.texte.CREATED)])), (0, _mithril["default"])('tbody', vnode.state.orderedUsers.map(function (value, index) { + }), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'name'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'name'), window.texte.NAME])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'email'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'email'), window.texte.EMAIL])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'balance'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'balance'), window.texte.BALANCE])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'pubkeyhex'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'pubkeyhex'), _mithril["default"].trust(window.texte.PUBLIC_KEY)])), (0, _mithril["default"])('th', (0, _mithril["default"])('a', { + onclick: function onclick() { + changeOrder(vnode, 'created'); + }, + className: 'grd_clickable' + }, [getArrow(vnode, 'created'), window.texte.CREATED]))])), (0, _mithril["default"])('tbody', user_sorted.map(function (value, index) { var open = vnode.state.openedUser === index; return [(0, _mithril["default"])(_rowView["default"], { user: value, @@ -8989,7 +9028,7 @@ var _default = { }; exports["default"] = _default; -},{"./rowAction":24,"./rowView":25,"mithril":3}],24:[function(require,module,exports){ +},{"./rowAction":22,"./rowView":23,"mithril":3}],22:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -9009,8 +9048,6 @@ var _copyCommunityLogin = _interopRequireDefault(require("./actions/copyCommunit var _verificationResend = _interopRequireDefault(require("./actions/verificationResend")); -var _mailtoVerificationResend = _interopRequireDefault(require("./actions/mailtoVerificationResend")); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var checkTodoAction = new RegExp(/{{([a-z-]*)}}/); @@ -9034,9 +9071,6 @@ function getAction(name) { case 'verification-resend': return _verificationResend["default"]; - - case 'mailto-verification-resend': - return _mailtoVerificationResend["default"]; } return null; @@ -9077,7 +9111,7 @@ var _default = { }; exports["default"] = _default; -},{"./actions/copyCommunityLogin":17,"./actions/copyLoginCommunity":18,"./actions/deleteCommunityServer":19,"./actions/mailtoVerificationResend":20,"./actions/userTransactionsOverview":21,"./actions/verificationResend":22,"mithril":3}],25:[function(require,module,exports){ +},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,"mithril":3}],23:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -9148,4 +9182,4 @@ var _default = { }; exports["default"] = _default; -},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":13,"mithril":3}]},{},[8]); +},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,"mithril":3}]},{},[8]); diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index f13a1b3a8..5fe24b680 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function o(a,s,l){function u(t,e){if(!s[t]){if(!a[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[t]={exports:{}};a[t][0].call(i.exports,function(e){return u(a[t][1][e]||e)},i,i.exports,o,a,s,l)}return s[t].exports}for(var c="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=r.clientWidth&&n>=r.clientHeight}),f=0l[e]&&!r.escapeWithReference&&(n=Math.min(c[t],l[e]-("right"===e?c.width:c.height))),E({},t,n)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";c=P({},c,f[t](e))}),e.offsets.popper=c,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",l=a?"left":"top",u=a?"width":"height";return n[s]o(r[s])&&(e.offsets.popper[l]=o(r[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var r=t.element;if("string"==typeof r){if(!(r=e.instance.popper.querySelector(r)))return e}else if(!e.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],o=e.offsets,a=o.popper,s=o.reference,l=-1!==["left","right"].indexOf(i),u=l?"height":"width",c=l?"Top":"Left",f=c.toLowerCase(),d=l?"left":"top",p=l?"bottom":"right",m=S(r)[u];s[p]-ma[p]&&(e.offsets.popper[f]+=s[f]+m-a[p]),e.offsets.popper=T(e.offsets.popper);var h=s[f]+s[u]/2-m/2,v=w(e.instance.popper),g=parseFloat(v["margin"+c],10),b=parseFloat(v["border"+c+"Width"],10),y=h-e.offsets.popper[f]-g-b;return y=Math.max(Math.min(a[u]-m,y),0),e.arrowElement=r,e.offsets.arrow=(E(n={},f,Math.round(y)),E(n,d,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(h,v){if(N(h.instance.modifiers,"inner"))return h;if(h.flipped&&h.placement===h.originalPlacement)return h;var g=p(h.instance.popper,h.instance.reference,v.padding,v.boundariesElement,h.positionFixed),b=h.placement.split("-")[0],y=k(b),w=h.placement.split("-")[1]||"",x=[];switch(v.behavior){case K:x=[b,y];break;case W:x=H(b);break;case Y:x=H(b,!0);break;default:x=v.behavior}return x.forEach(function(e,t){if(b!==e||x.length===t+1)return h;b=h.placement.split("-")[0],y=k(b);var n=h.offsets.popper,r=h.offsets.reference,i=Math.floor,o="left"===b&&i(n.right)>i(r.left)||"right"===b&&i(n.left)i(r.top)||"bottom"===b&&i(n.top)i(g.right),l=i(n.top)i(g.bottom),c="left"===b&&a||"right"===b&&s||"top"===b&&l||"bottom"===b&&u,f=-1!==["top","bottom"].indexOf(b),d=!!v.flipVariations&&(f&&"start"===w&&a||f&&"end"===w&&s||!f&&"start"===w&&l||!f&&"end"===w&&u),p=!!v.flipVariationsByContent&&(f&&"start"===w&&s||f&&"end"===w&&a||!f&&"start"===w&&u||!f&&"end"===w&&l),m=d||p;(o||c||m)&&(h.flipped=!0,(o||c)&&(b=x[t+1]),m&&(w="end"===w?"start":"start"===w?"end":w),h.placement=b+(w?"-"+w:""),h.offsets.popper=P({},h.offsets.popper,C(h.instance.popper,h.offsets.reference,h.placement)),h=A(h.instance.modifiers,h,"flip"))}),h},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(s?i[a?"width":"height"]:0),e.placement=k(t),e.offsets.popper=T(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=I(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},l="tippy-iOS",Ae="tippy-popper",Ne="tippy-tooltip",Me="tippy-content",u="tippy-arrow",c="tippy-svg-arrow",Le="."+Ae,f="."+Ne,h="."+Me,v="."+u,g="."+c,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function x(){var e=document.activeElement;if(i(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var E="undefined"!=typeof window&&"undefined"!=typeof document,T=E?navigator.userAgent:"",Pe=/MSIE |Trident\//.test(T),_=/UCBrowser\//.test(T),O=E&&/iPhone|iPad|iPod/.test(navigator.platform);function Fe(e){var t=e&&O&&De.isTouch;document.body.classList[t?"add":"remove"](l)}function Ie(e){return e.split("-")[0]}function Be(e){e.setAttribute("data-inertia","")}function je(e){e.setAttribute("data-interactive","")}function ze(e,t){p(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Ue(e){return{tooltip:e.querySelector(f),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function Re(e){var t=ae();return!0===e?t.className=u:(t.className=c,p(e)?t.appendChild(e):n(t,e)),t}function Ve(e,t,n){var r,i=Ue(e),o=i.tooltip,a=i.content,s=i.arrow;e.style.zIndex=""+n.zIndex,o.setAttribute("data-animation",n.animation),o.style.maxWidth="number"==typeof(r=n.maxWidth)?r+"px":r,n.role?o.setAttribute("role",n.role):o.removeAttribute("role"),t.content!==n.content&&ze(a,n),!t.arrow&&n.arrow?(o.appendChild(Re(n.arrow)),o.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(o.removeChild(s),o.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(o.removeChild(s),o.appendChild(Re(n.arrow))),!t.interactive&&n.interactive?je(o):t.interactive&&!n.interactive&&o.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Be(o):t.inertia&&!n.inertia&&o.removeAttribute("data-inertia"),t.theme!==n.theme&&(Ke(o,"remove",t.theme),Ke(o,"add",n.theme))}function He(e,t,n){var r=_&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";e[t+"EventListener"](r,n)}function Ke(t,n,e){me(e).forEach(function(e){t.classList[n](e+"-theme")})}var We=1,Ye=[],Ge=[];function S(o,e){var a,n,r,t=Se(o,Q({},Te,{},Oe(e)));if(!t.multiple&&o._tippy)return null;var s,l,i,u,c,f=!1,d=!1,p=!1,m=0,h=[],v=ue(H,t.interactiveDebounce),g=ge(t.triggerTarget||o),b=We++,y=function(e,t){var n=ae();n.className=Ae,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=ae();r.className=Ne,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),Ke(r,"add",t.theme);var i=ae();return i.className=Me,i.setAttribute("data-state","hidden"),t.interactive&&je(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(Re(t.arrow))),t.inertia&&Be(r),ze(i,t),r.appendChild(i),n.appendChild(r),Ve(n,t,t),n}(b,t),w=Ue(y),x=(c=t.plugins).filter(function(e,t){return c.indexOf(e)===t}),E=w.tooltip,T=w.content,_=[E,T],O={id:b,reference:o,popper:y,popperChildren:w,popperInstance:null,props:t,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:x,clearDelayTimeouts:function(){clearTimeout(a),clearTimeout(n),cancelAnimationFrame(r)},setProps:function(n){if("production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("setProps")),!O.state.isDestroyed){"production"!==J.env.NODE_ENV&&(ke(n,x),Ee(!!n.plugins&&(n.plugins.length!==x.length||x.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[O,n]),R();var t=O.props,e=Se(o,Q({},O.props,{},n,{ignoreAttributes:!0}));if(e.ignoreAttributes=he(n.ignoreAttributes,t.ignoreAttributes),O.props=e,U(),t.interactiveDebounce!==e.interactiveDebounce&&(P(),v=ue(H,e.interactiveDebounce)),Ve(y,t,e),O.popperChildren=Ue(y),t.triggerTarget&&!e.triggerTarget?ve(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&o.removeAttribute("aria-expanded"),D(),O.popperInstance)if(_e.some(function(e){return ee(n,e)&&n[e]!==t[e]})){var r=O.popperInstance.reference;O.popperInstance.destroy(),G(),O.popperInstance.reference=r,O.state.isVisible&&O.popperInstance.enableEventListeners()}else O.popperInstance.update();M("onAfterUpdate",[O,n])}},setContent:function(e){O.setProps({content:e})},show:function(e){void 0===e&&(e=te(O.props.duration,0,Te.duration)),"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("show"));var t=O.state.isVisible,n=O.state.isDestroyed,r=!O.state.isEnabled,i=De.isTouch&&!O.props.touch;t||n||r||i||A().hasAttribute("disabled")||(O.popperInstance||G(),M("onShow",[O],!1),!1!==O.props.onShow(O)&&(I(),y.style.visibility="visible",O.state.isVisible=!0,O.state.isMounted||se(_.concat(y),0),l=function(){O.state.isVisible&&(se([y],O.props.updateDuration),se(_,e),le(_,"visible"),L(),D(),be(Ge,O),Fe(!0),O.state.isMounted=!0,M("onMount",[O]),j(e,function(){O.state.isShown=!0,M("onShown",[O])}))},function(){m=0;var e,t=O.props.appendTo,n=A();(e=O.props.interactive&&t===Te.appendTo||"parent"===t?n.parentNode:ie(t,[n])).contains(y)||e.appendChild(y),"production"!==J.env.NODE_ENV&&Ee(O.props.interactive&&t===Te.appendTo&&n.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),oe(O.popperInstance.modifiers,"flip","enabled",O.props.flip),O.popperInstance.enableEventListeners(),O.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=te(O.props.duration,1,Te.duration)),"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("hide"));var t=!O.state.isVisible&&!f,n=O.state.isDestroyed,r=!O.state.isEnabled&&!f;t||n||r||(M("onHide",[O],!1),!1===O.props.onHide(O)&&!f||(B(),y.style.visibility="hidden",O.state.isVisible=!1,O.state.isShown=!1,se(_,e),le(_,"hidden"),L(),D(),j(e,function(){!O.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(O.popperInstance.disableEventListeners(),O.popperInstance.options.placement=O.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==O})).length&&Fe(!1),O.state.isMounted=!1,M("onHidden",[O]))})))},enable:function(){O.state.isEnabled=!0},disable:function(){O.hide(),O.state.isEnabled=!1},destroy:function(){"production"!==J.env.NODE_ENV&&Ee(O.state.isDestroyed,xe("destroy")),O.state.isDestroyed||(f=!0,O.clearDelayTimeouts(),O.hide(0),R(),delete o._tippy,O.popperInstance&&O.popperInstance.destroy(),f=!1,O.state.isDestroyed=!0,M("onDestroy",[O]))}};o._tippy=O,y._tippy=O;var S=x.map(function(e){return e.fn(O)});return U(),D(),t.lazy||G(),M("onCreate",[O]),t.showOnCreate&&$(),y.addEventListener("mouseenter",function(){O.props.interactive&&O.state.isVisible&&O.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(){O.props.interactive&&pe(O.props.trigger,"mouseenter")&&g.addEventListener("mousemove",v)}),O;function k(){var e=O.props.touch;return Array.isArray(e)?e:[e,0]}function C(){return"hold"===k()[0]}function A(){return u||o}function N(e){return O.state.isMounted&&!O.state.isVisible||De.isTouch||s&&"focus"===s.type?0:te(O.props.delay,e?0:1,Te.delay)}function M(t,n,e){var r;void 0===e&&(e=!0),S.forEach(function(e){ee(e,t)&&e[t].apply(e,n)}),e&&(r=O.props)[t].apply(r,n)}function L(){var e=O.props.aria;if(e){var r="aria-"+e,i=E.id;ve(O.props.triggerTarget||o).forEach(function(e){var t=e.getAttribute(r);if(O.state.isVisible)e.setAttribute(r,t?t+" "+i:i);else{var n=t&&t.replace(i,"").trim();n?e.setAttribute(r,n):e.removeAttribute(r)}})}}function D(){ve(O.props.triggerTarget||o).forEach(function(e){O.props.interactive?e.setAttribute("aria-expanded",O.state.isVisible&&e===A()?"true":"false"):e.removeAttribute("aria-expanded")})}function P(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ye=Ye.filter(function(e){return e!==v})}function F(e){if(!O.props.interactive||!y.contains(e.target)){if(A().contains(e.target)){if(De.isTouch)return;if(O.state.isVisible&&pe(O.props.trigger,"click"))return}!0===O.props.hideOnClick&&(d=!1,O.clearDelayTimeouts(),O.hide(),p=!0,setTimeout(function(){p=!1}),O.state.isMounted||B())}}function I(){g.addEventListener("mousedown",F,!0)}function B(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===E&&(He(E,"remove",n),t())}if(0===e)return t();He(E,"remove",i),He(E,"add",n),i=n}function z(t,n,r){void 0===r&&(r=!1),ve(O.props.triggerTarget||o).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function U(){C()&&(z("touchstart",V,Ce),z("touchend",K,Ce)),me(O.props.trigger).forEach(function(e){if("manual"!==e)switch(z(e,V),e){case"mouseenter":z("mouseleave",K);break;case"focus":z(Pe?"focusout":"blur",W)}})}function R(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),h=[]}function V(t){var e=!1;if(O.state.isEnabled&&!Y(t)&&!p){if(u=(s=t).currentTarget,D(),!O.state.isVisible&&re(t)&&Ye.forEach(function(e){return e(t)}),"click"!==t.type||pe(O.props.trigger,"mouseenter")&&!d||!1===O.props.hideOnClick||!O.state.isVisible){var n=k(),r=n[0],i=n[1];De.isTouch&&"hold"===r&&i?a=setTimeout(function(){$(t)},i):$(t)}else e=!0;"click"===t.type&&(d=!e),e&&X(t)}}function H(e){var t,l,u;de(e.target,function(e){return e===o||e===y})||(t=fe(y.querySelectorAll(Le)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,r=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:r}}),l=e.clientX,u=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),a=Math.max(t.bottom,n.bottom),s=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" "))}var f=l.reduce(function(e,t){var n=t&&S(t,s);return n&&e.push(n),e},[]);return p(e)?f[0]:f}k.version="5.1.4",k.defaultProps=Te,k.setDefaultProps=o,k.currentInput=De,A.BACKDROP_CLASS="tippy-backdrop",A.ROUND_ARROW='',A._extends=Q,A.arrayFrom=fe,A.closestCallback=de,A.createTippyWithPlugins=function(r){"production"!==J.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=[]),n=t.plugins||n,k(e,Q({},t,{plugins:[].concat(r,n)}))}return e.version="5.1.4",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},A.currentInput=De,A.defaultProps=Te,A.div=ae,A.errorWhen=m,A.getBasePlacement=Ie,A.getOwnerDocument=ge,A.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;Ge.forEach(function(e){var t=!1;n&&(t=i(n)?e.reference===n:e.popper===n.popper),t||e.hide(r)})},A.includes=pe,A.isBrowser=E,A.isMouseEvent=re,A.isUCBrowser=_,A.normalizeToArray=ve,A.removeProperties=a,A.setVisibilityState=le,A.tippy=k,A.useIfDefined=he,A.warnWhen=Ee}).call(this,C("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){(function(d){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var E=i("./tippy.chunk.cjs.js");i("popper.js");var p={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t,n=e.popperChildren,r=n.tooltip,i=n.content,o=e.props.animateFill&&!E.isUCBrowser?((t=E.div()).className=E.BACKDROP_CLASS,E.setVisibilityState([t],"hidden"),t):null;function a(){e.popperChildren.backdrop=o}return{onCreate:function(){o&&(a(),r.insertBefore(o,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){if(o){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));i.style.transitionDelay=Math.round(t/10)+"ms",o.style.transitionDuration=e,E.setVisibilityState([o],"visible"),"production"!==d.env.NODE_ENV&&(E.warnWhen("absolute"!==getComputedStyle(o).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),E.warnWhen("none"===getComputedStyle(r).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work."))}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&E.setVisibilityState([o],"hidden")},onAfterUpdate:function(){a()}}}},t={name:"followCursor",defaultValue:!1,fn:function(h){var v,g=h.reference,b=h.popper,y=null,e=E.getOwnerDocument(h.props.triggerTarget||g),n=null,r=!1,i=h.props;function t(){return"manual"===h.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return h.props.followCursor&&e}function w(){return E.currentInput.isTouch||"initial"===h.props.followCursor&&h.state.isVisible}function a(){h.popperInstance&&y&&(h.popperInstance.reference=y)}function s(){if(o()||h.props.placement!==i.placement){var e=i.placement,t=e.split("-")[1];r=!0,h.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1}}function l(){h.popperInstance&&o()&&(w()||!0!==h.props.followCursor)&&h.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",f):a()}function c(){o()&&f(v)}function x(){e.removeEventListener("mousemove",f)}function f(e){var t,n=v=e,r=n.clientX,i=n.clientY;if(h.popperInstance&&h.state.currentPlacement){var o=E.closestCallback(e.target,function(e){return e===g}),a=g.getBoundingClientRect(),s=h.props.followCursor,l="horizontal"===s,u="vertical"===s,c=E.includes(["top","bottom"],E.getBasePlacement(h.state.currentPlacement)),f={size:t=c?b.offsetWidth:b.offsetHeight,x:c?t:0,y:c?0:t},d=f.size,p=f.x,m=f.y;!o&&h.props.interactive||(null===y&&(y=h.popperInstance.reference),h.popperInstance.reference={referenceNode:g,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return{width:c?d:0,height:c?0:d,top:(l?a.top:i)-m,bottom:(l?a.bottom:i)+m,left:(u?a.left:r)-p,right:(u?a.right:r)+p}}},h.popperInstance.update()),w()&&x()}}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=E.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(c)},onMount:function(){c(),l()},onShow:function(){t()&&(v=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(E.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},v=t),s(),u())},onUntrigger:function(){h.state.isVisible||(x(),n=null)},onHidden:function(){x(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=o?r.left:i.left,u=o?r.right:i.right;return{top:a,bottom:s,left:l,right:u,width:u-l,height:s-a};case"left":case"right":var c=Math.min.apply(Math,n.map(function(e){return e.left})),f=Math.max.apply(Math,n.map(function(e){return e.right})),d=n.filter(function(e){return"left"===t?e.left===c:e.right===f}),p=d[0].top,m=d[d.length-1].bottom;return{top:p,bottom:m,left:c,right:f,width:f-c,height:m-p};default:return e}}(e.state.currentPlacement&&E.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),E.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=E.createTippyWithPlugins,o.default=E.tippy,o.hideAll=E.hideAll,o.roundArrow=E.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(a,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==d.env.NODE_ENV&&E.errorWhen(!Array.isArray(a),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(a)].join(" ")),t=e.plugins||t,a.forEach(function(e){e.disable()});var s,l,u=E._extends({},E.defaultProps,{},e).aria,r=!1,c=a.map(function(e){return e.reference}),n={fn:function(i){function o(e){if(s){var t="aria-"+s;e&&!i.props.interactive?l.setAttribute(t,i.popperChildren.tooltip.id):l.removeAttribute(t)}}return{onAfterUpdate:function(e,t){var n=t.aria;void 0!==n&&n!==u&&(r?(r=!0,i.setProps({aria:null}),r=!1):u=n)},onDestroy:function(){a.forEach(function(e){e.enable()})},onMount:function(){o(!0)},onUntrigger:function(){o(!1)},onTrigger:function(e,t){var n=t.currentTarget,r=c.indexOf(n);n!==l&&(l=n,s=u,i.state.isVisible&&o(!0),i.popperInstance.reference=n,i.setContent(a[r].props.content))}}}};return E.tippy(E.div(),E._extends({},e,{plugins:[n].concat(t),aria:null,triggerTarget:c}))},o.delegate=function(e,i,t){void 0===t&&(t=[]),"production"!==d.env.NODE_ENV&&E.errorWhen(!(i&&i.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=i.plugins||t;var o=[],a=[],s=i.target,n=E.removeProperties(i,["target"]),r=E._extends({},n,{plugins:t,trigger:"manual"}),l=E._extends({},n,{plugins:t,showOnCreate:!0}),u=E.tippy(e,r);function c(e){if(e.target){var t=e.target.closest(s);if(t){var n=t.getAttribute("data-tippy-trigger")||i.trigger||E.defaultProps.trigger;if(E.includes(n,p[e.type])){var r=E.tippy(t,l);r&&(a=a.concat(r))}}}}function f(e,t,n,r){void 0===r&&(r=!1),e.addEventListener(t,n,r),o.push({node:e,eventType:t,handler:n,options:r})}return E.normalizeToArray(u).forEach(function(e){var t,n=e.destroy;e.destroy=function(e){void 0===e&&(e=!0),e&&a.forEach(function(e){e.destroy()}),a=[],o.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,i=e.options;t.removeEventListener(n,r,i)}),o=[],n()},f(t=e.reference,"mouseover",c),f(t,"focusin",c),f(t,"click",c)}),u},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}).call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1,s={view:function(e){return(0,r.default)("span",(t=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(t).format("0,0.00")+" GDD"));var t},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}};n.default=s},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,i=(r=e("mithril"))&&r.__esModule?r:{default:r},o={view:function(e){return(0,i.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,i.default)("div.modal-dialog",{role:"document"},(0,i.default)("div.modal-content",[(0,i.default)("p.grid-header",e.attrs.title),(0,i.default)("div.modal-body",e.attrs.body),(0,i.default)("div.modal-footer",[(0,i.default)("button.btn.btn-primary",{type:"button","data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}};n.default=o},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,i=(r=e("mithril"))&&r.__esModule?r:{default:r};function o(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],o="mdi ";if("+"===r)o+=" mdi-check color-primary";else if("-"===r)o+=" mdi-close color-danger";else{if("/"!==r)continue;o+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),s);function s(e){!function(e){if(!(e instanceof s))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=a},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","{{user-transactions-overview}}","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederherstellt.","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Community-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FAILED:"Fehler beim Kopieren",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert"}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}var s={view:function(e){return void 0===g_users?(0,r.default)(""):0"+s.toLocaleTimeString()}var l=!1;t.hasActions()&&(l=t.getRawColor());var u="down";return e.attrs.open&&(u="up"),(0,c.default)("tr",[(0,c.default)("td",!1!==l?(0,c.default)("i.mdi.mdi-menu-"+u+".btn.btn-xs.btn-"+l,{onclick:e.attrs.btnClick}):null),(0,c.default)("td.pr-0",[(0,c.default)("span.text-black.font-weight-medium.d-block",n.name),(0,c.default)((0,p.default)((0,c.default)("span",[(0,c.default)("span.status-indicator.rounded-indicator.small."+r),(0,c.default)("small",i)])),{accountState:t})]),(0,c.default)("td",n.email),(0,c.default)("td",(0,c.default)(d.default,{centAmount:n.balance})),(0,c.default)("td",{title:n.pubkeyhex},o),(0,c.default)("td",c.default.trust(a))])},oninit:function(e){}};n.default=i},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); +!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u=r(e("mithril")),c=r(e("../../model/AccountState")),d=r(e("../../lib/Gradido")),f=r(e("../../lib/Tooltip"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){var t=new c.default(e.attrs.user.indicator.name),n=e.attrs.user,r=t.getColor(),i=t.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(l=new Date(a)).toLocaleDateString()+"
    "+l.toLocaleTimeString());var s=!1;t.hasActions()&&(s=t.getRawColor(),s="primary");var l="down";return e.attrs.open&&(l="up"),(0,u.default)("tr",[(0,u.default)("td",!1!==s?(0,u.default)("i.mdi.mdi-menu-"+l+".btn.btn-xs.btn-"+s,{onclick:e.attrs.btnClick}):null),(0,u.default)("td.pr-0",[(0,u.default)("span.text-black.font-weight-medium.d-block",n.name),(0,u.default)((0,f.default)((0,u.default)("span",[(0,u.default)("span.status-indicator.rounded-indicator.small."+r),(0,u.default)("small",i)])),{accountState:t})]),(0,u.default)("td",n.email),(0,u.default)("td",(0,u.default)(d.default,{centAmount:n.balance})),(0,u.default)("td",{title:n.pubkeyhex},o),(0,u.default)("td",u.default.trust(a))])},oninit:function(e){}}},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); From e2574e36e6da533d11f24d8eacf8c271e6673d31 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 22 Mar 2021 15:00:59 +0000 Subject: [PATCH 44/91] shorten oversize emails and show them in modal dialog --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 5fe24b680..aa4c8978e 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u=r(e("mithril")),c=r(e("../../model/AccountState")),d=r(e("../../lib/Gradido")),f=r(e("../../lib/Tooltip"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){var t=new c.default(e.attrs.user.indicator.name),n=e.attrs.user,r=t.getColor(),i=t.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(l=new Date(a)).toLocaleDateString()+"
    "+l.toLocaleTimeString());var s=!1;t.hasActions()&&(s=t.getRawColor(),s="primary");var l="down";return e.attrs.open&&(l="up"),(0,u.default)("tr",[(0,u.default)("td",!1!==s?(0,u.default)("i.mdi.mdi-menu-"+l+".btn.btn-xs.btn-"+s,{onclick:e.attrs.btnClick}):null),(0,u.default)("td.pr-0",[(0,u.default)("span.text-black.font-weight-medium.d-block",n.name),(0,u.default)((0,f.default)((0,u.default)("span",[(0,u.default)("span.status-indicator.rounded-indicator.small."+r),(0,u.default)("small",i)])),{accountState:t})]),(0,u.default)("td",n.email),(0,u.default)("td",(0,u.default)(d.default,{centAmount:n.balance})),(0,u.default)("td",{title:n.pubkeyhex},o),(0,u.default)("td",u.default.trust(a))])},oninit:function(e){}}},{"../../lib/Gradido":9,"../../lib/Tooltip":10,"../../model/AccountState":12,mithril:1}]},{},[8])}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); +!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Mon, 22 Mar 2021 15:04:08 +0000 Subject: [PATCH 45/91] update oversized size, from 25 to 23 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index aa4c8978e..6a71db82c 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23 Date: Mon, 22 Mar 2021 15:05:07 +0000 Subject: [PATCH 46/91] update oversized size, from 23 to 22 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6a71db82c..6c21eea05 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22 Date: Mon, 22 Mar 2021 15:12:20 +0000 Subject: [PATCH 47/91] update oversized size, from 23 to 25, but subtract additonal 3 char for the points --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6c21eea05..9dd4f94f9 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Mon, 22 Mar 2021 15:00:59 +0000 Subject: [PATCH 48/91] shorten oversize emails and show them in modal dialog --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 9dd4f94f9..aa4c8978e 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Mon, 22 Mar 2021 15:04:08 +0000 Subject: [PATCH 49/91] update oversized size, from 25 to 23 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index aa4c8978e..6a71db82c 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23 Date: Mon, 22 Mar 2021 15:05:07 +0000 Subject: [PATCH 50/91] update oversized size, from 23 to 22 --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6a71db82c..6c21eea05 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 23>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22 Date: Mon, 22 Mar 2021 15:12:20 +0000 Subject: [PATCH 51/91] update oversized size, from 23 to 25, but subtract additonal 3 char for the points --- community_server/webroot/js/userSearch.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/webroot/js/userSearch.min.js b/community_server/webroot/js/userSearch.min.js index 6c21eea05..9dd4f94f9 100644 --- a/community_server/webroot/js/userSearch.min.js +++ b/community_server/webroot/js/userSearch.min.js @@ -1 +1 @@ -!function r(i,o,a){function s(t,e){if(!o[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},i[t][0].call(n.exports,function(e){return s(i[t][1][e]||e)},n,n.exports,r,i,o,a)}return o[t].exports}for(var l="function"==typeof require&&require,e=0;e>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 22>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o=n.clientWidth&&e>=n.clientHeight}),t=(0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),y({},t,n)}};return s.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=E({},u,c[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),t=a?"right":"bottom",i=a?"left":"top",a=a?"width":"height";return n[t]o(r[t])&&(e.offsets.popper[i]=o(r[t])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!U(e.instance.modifiers,"arrow","keepTogether"))return e;var n=t.element;if("string"==typeof n){if(!(n=e.instance.popper.querySelector(n)))return e}else if(!e.instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,a=i.reference,s=-1!==["left","right"].indexOf(r),l=s?"height":"width",u=s?"Top":"Left",c=u.toLowerCase(),t=s?"left":"top",i=s?"bottom":"right",r=A(n)[l];a[i]-ro[i]&&(e.offsets.popper[c]+=a[c]+r-o[i]),e.offsets.popper=x(e.offsets.popper);s=a[c]+a[l]/2-r/2,i=d(e.instance.popper),a=parseFloat(i["margin"+u]),u=parseFloat(i["border"+u+"Width"]),u=s-e.offsets.popper[c]-a-u,u=Math.max(Math.min(o[l]-r,u),0);return e.arrowElement=n,e.offsets.arrow=(y(n={},c,Math.round(u)),y(n,t,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(u,c){if(F(u.instance.modifiers,"inner"))return u;if(u.flipped&&u.placement===u.originalPlacement)return u;var d=C(u.instance.popper,u.instance.reference,c.padding,c.boundariesElement,u.positionFixed),f=u.placement.split("-")[0],p=M(f),m=u.placement.split("-")[1]||"",h=[];switch(c.behavior){case K:h=[f,p];break;case G:h=Y(f);break;case W:h=Y(f,!0);break;default:h=c.behavior}return h.forEach(function(e,t){if(f!==e||h.length===t+1)return u;f=u.placement.split("-")[0],p=M(f);var n=u.offsets.popper,r=u.offsets.reference,i=Math.floor,o="left"===f&&i(n.right)>i(r.left)||"right"===f&&i(n.left)i(r.top)||"bottom"===f&&i(n.top)i(d.right),l=i(n.top)i(d.bottom),r="left"===f&&a||"right"===f&&s||"top"===f&&l||"bottom"===f&&e,n=-1!==["top","bottom"].indexOf(f),i=!!c.flipVariations&&(n&&"start"===m&&a||n&&"end"===m&&s||!n&&"start"===m&&l||!n&&"end"===m&&e),l=!!c.flipVariationsByContent&&(n&&"start"===m&&s||n&&"end"===m&&a||!n&&"start"===m&&e||!n&&"end"===m&&l),l=i||l;(o||r||l)&&(u.flipped=!0,(o||r)&&(f=h[t+1]),l&&(m="end"===m?"start":"start"===m?"end":m),u.placement=f+(m?"-"+m:""),u.offsets.popper=E({},u.offsets.popper,D(u.instance.popper,u.offsets.reference,u.placement)),u=I(u.instance.modifiers,u,"flip"))}),u},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),r=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(r?i[a?"width":"height"]:0),e.placement=M(t),e.offsets.popper=x(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!U(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right or , not
    ","or ."].join(" ")),Ee("showOnInit"===t,"The `showOnInit` prop was renamed to `showOnCreate` in v5."),Ee("arrowType"===t,["The `arrowType` prop was removed in v5 in favor of overloading the `arrow`","prop.","\n\n",'"round" string was replaced with importing the string from the package.',"\n\n","* import {roundArrow} from 'tippy.js'; (ESM version)\n","* const {roundArrow} = tippy; (IIFE CDN version)","\n\n",'Before: {arrow: true, arrowType: "round"}\n',"After: {arrow: roundArrow}`"].join(" ")),Ee("touchHold"===t,["The `touchHold` prop was removed in v5 in favor of overloading the `touch`","prop.","\n\n","Before: {touchHold: true}\n",'After: {touch: "hold"}'].join(" ")),Ee("size"===t,["The `size` prop was removed in v5. Instead, use a theme that specifies","CSS padding and font-size properties."].join(" ")),Ee("theme"===t&&"google"===e,'The included theme "google" was renamed to "material" in v5.'),Ee(n,["Specifying placement in `popperOptions` is not supported. Use the base-level","`placement` prop instead.","\n\n",'Before: {popperOptions: {placement: "bottom"}}\n','After: {placement: "bottom"}'].join(" ")),Ee(r,["`"+t+"`","is not a valid prop. You may have spelled it incorrectly, or if it's a","plugin, forgot to pass it in an array as props.plugins.","\n\n","In v5, the following props were turned into plugins:","\n\n","* animateFill\n","* followCursor\n","* sticky","\n\n","All props: https://atomiks.github.io/tippyjs/all-props/\n","Plugins: https://atomiks.github.io/tippyjs/plugins/"].join(" "))})}var Ce={passive:!0},d="tippy-iOS",Ne="tippy-popper",ke="tippy-tooltip",Ae="tippy-content",f="tippy-arrow",p="tippy-svg-arrow",Me="."+Ne,m="."+ke,h="."+Ae,v="."+f,g="."+p,De={isTouch:!1},b=0;function y(){De.isTouch||(De.isTouch=!0,window.performance&&document.addEventListener("mousemove",w))}function w(){var e=performance.now();e-b<20&&(De.isTouch=!1,document.removeEventListener("mousemove",w)),b=e}function E(){var e,t=document.activeElement;i(t)&&(e=t._tippy,t.blur&&!e.state.isVisible&&t.blur())}var e="undefined"!=typeof window&&"undefined"!=typeof document,T=e?navigator.userAgent:"",Le=/MSIE |Trident\//.test(T),x=e&&/iPhone|iPad|iPod/.test(navigator.platform);function Ie(e){e=e&&x&&De.isTouch;document.body.classList[e?"add":"remove"](d)}function Fe(e){return e.split("-")[0]}function Pe(e){e.setAttribute("data-inertia","")}function Re(e){e.setAttribute("data-interactive","")}function je(e,t){l(t.content)?(n(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(e[t.allowHTML?"innerHTML":"textContent"]=t.content)}function Be(e){return{tooltip:e.querySelector(m),content:e.querySelector(h),arrow:e.querySelector(v)||e.querySelector(g)}}function ze(e){var t=oe();return!0===e?t.className=f:(t.className=p,l(e)?t.appendChild(e):n(t,e)),t}function Ue(e,t,n){var r=Be(e),i=r.tooltip,o=r.content,r=r.arrow;e.style.zIndex=""+n.zIndex,i.setAttribute("data-animation",n.animation),i.style.maxWidth="number"==typeof(e=n.maxWidth)?e+"px":e,n.role?i.setAttribute("role",n.role):i.removeAttribute("role"),t.content!==n.content&&je(o,n),!t.arrow&&n.arrow?(i.appendChild(ze(n.arrow)),i.setAttribute("data-arrow","")):t.arrow&&!n.arrow?(i.removeChild(r),i.removeAttribute("data-arrow")):t.arrow!==n.arrow&&(i.removeChild(r),i.appendChild(ze(n.arrow))),!t.interactive&&n.interactive?Re(i):t.interactive&&!n.interactive&&i.removeAttribute("data-interactive"),!t.inertia&&n.inertia?Pe(i):t.inertia&&!n.inertia&&i.removeAttribute("data-inertia"),t.theme!==n.theme&&(He(i,"remove",t.theme),He(i,"add",n.theme))}function Ve(t,n,r){["transitionend","webkitTransitionEnd"].forEach(function(e){t[n+"EventListener"](e,r)})}function He(t,n,e){pe(e).forEach(function(e){t.classList[n](e+"-theme")})}var Ye=1,Ke=[],Ge=[];function _(l,e){var i,t,n,r=Se(l,Z({},Te,{},_e(e)));if(!r.multiple&&l._tippy)return null;var o,a,s,u,c,d=!1,f=!1,p=!1,m=0,h=[],v=le(H,r.interactiveDebounce),g=ve(r.triggerTarget||l),b=Ye++,y=function(e,t){var n=oe();n.className=Ne,n.style.position="absolute",n.style.top="0",n.style.left="0";var r=oe();return r.className=ke,r.id="tippy-"+e,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1"),He(r,"add",t.theme),(e=oe()).className=Ae,e.setAttribute("data-state","hidden"),t.interactive&&Re(r),t.arrow&&(r.setAttribute("data-arrow",""),r.appendChild(ze(t.arrow))),t.inertia&&Pe(r),je(e,t),r.appendChild(e),n.appendChild(r),Ue(n,t,t),n}(b,r),w=Be(y),E=(c=r.plugins).filter(function(e,t){return c.indexOf(e)===t}),T=w.tooltip,e=w.content,x=[T,e],_={id:b,reference:l,popper:y,popperChildren:w,popperInstance:null,props:r,state:{currentPlacement:null,isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:E,clearDelayTimeouts:function(){clearTimeout(i),clearTimeout(t),cancelAnimationFrame(n)},setProps:function(n){var t,e;"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("setProps")),_.state.isDestroyed||("production"!==We.env.NODE_ENV&&(Oe(n,E),Ee(!!n.plugins&&(n.plugins.length!==E.length||E.some(function(e,t){return!n.plugins||!n.plugins[t]||e!==n.plugins[t]})),"Cannot update plugins")),M("onBeforeUpdate",[_,n]),U(),t=_.props,(e=Se(l,Z({},_.props,{},n,{ignoreAttributes:!0}))).ignoreAttributes=me(n.ignoreAttributes,t.ignoreAttributes),_.props=e,z(),t.interactiveDebounce!==e.interactiveDebounce&&(I(),v=le(H,e.interactiveDebounce)),Ue(y,t,e),_.popperChildren=Be(y),t.triggerTarget&&!e.triggerTarget?he(t.triggerTarget).forEach(function(e){e.removeAttribute("aria-expanded")}):e.triggerTarget&&l.removeAttribute("aria-expanded"),L(),_.popperInstance&&(xe.some(function(e){return Q(n,e)&&n[e]!==t[e]})?(e=_.popperInstance.reference,_.popperInstance.destroy(),W(),_.popperInstance.reference=e,_.state.isVisible&&_.popperInstance.enableEventListeners()):_.popperInstance.update()),M("onAfterUpdate",[_,n]))},setContent:function(e){_.setProps({content:e})},show:function(e){void 0===e&&(e=ee(_.props.duration,0,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("show"));var t=_.state.isVisible,n=_.state.isDestroyed,r=!_.state.isEnabled,i=De.isTouch&&!_.props.touch;t||n||r||i||k().hasAttribute("disabled")||(_.popperInstance||W(),M("onShow",[_],!1),!1!==_.props.onShow(_)&&(P(),y.style.visibility="visible",_.state.isVisible=!0,_.state.isMounted||ae(x.concat(y),0),a=function(){_.state.isVisible&&(ae([y],_.props.updateDuration),ae(x,e),se(x,"visible"),D(),L(),ge(Ge,_),Ie(!0),_.state.isMounted=!0,M("onMount",[_]),j(e,function(){_.state.isShown=!0,M("onShown",[_])}))},function(){m=0;var e=_.props.appendTo,t=k(),n=_.props.interactive&&e===Te.appendTo||"parent"===e?t.parentNode:re(e,[t]);n.contains(y)||n.appendChild(y),"production"!==We.env.NODE_ENV&&Ee(_.props.interactive&&e===Te.appendTo&&t.nextElementSibling!==y,["Interactive tippy element may not be accessible via keyboard navigation","because it is not directly after the reference element in the DOM source","order.","\n\n","Using a wrapper
    or tag around the reference element solves","this by creating a new parentNode context.","\n\n","Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle keyboard","navigation.","\n\n","See: https://atomiks.github.io/tippyjs/accessibility/#interactivity"].join(" ")),ie(_.popperInstance.modifiers,"flip","enabled",_.props.flip),_.popperInstance.enableEventListeners(),_.popperInstance.update()}()))},hide:function(e){void 0===e&&(e=ee(_.props.duration,1,Te.duration)),"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("hide"));var t=!_.state.isVisible&&!d,n=_.state.isDestroyed,r=!_.state.isEnabled&&!d;t||n||r||(M("onHide",[_],!1),!1===_.props.onHide(_)&&!d||(R(),y.style.visibility="hidden",_.state.isVisible=!1,_.state.isShown=!1,ae(x,e),se(x,"hidden"),D(),L(),j(e,function(){!_.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&(_.popperInstance.disableEventListeners(),_.popperInstance.options.placement=_.props.placement,y.parentNode.removeChild(y),0===(Ge=Ge.filter(function(e){return e!==_})).length&&Ie(!1),_.state.isMounted=!1,M("onHidden",[_]))})))},enable:function(){_.state.isEnabled=!0},disable:function(){_.hide(),_.state.isEnabled=!1},destroy:function(){"production"!==We.env.NODE_ENV&&Ee(_.state.isDestroyed,we("destroy")),_.state.isDestroyed||(d=!0,_.clearDelayTimeouts(),_.hide(0),U(),delete l._tippy,_.popperInstance&&_.popperInstance.destroy(),d=!1,_.state.isDestroyed=!0,M("onDestroy",[_]))}};l._tippy=_,y._tippy=_;var S=E.map(function(e){return e.fn(_)}),O=l.hasAttribute("aria-expanded");return z(),L(),r.lazy||W(),M("onCreate",[_]),r.showOnCreate&&$(),y.addEventListener("mouseenter",function(){_.props.interactive&&_.state.isVisible&&_.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(e){_.props.interactive&&fe(_.props.trigger,"mouseenter")&&(v(e),g.addEventListener("mousemove",v))}),_;function C(){var e=_.props.touch;return Array.isArray(e)?e:[e,0]}function N(){return"hold"===C()[0]}function k(){return u||l}function A(e){return _.state.isMounted&&!_.state.isVisible||De.isTouch||o&&"focus"===o.type?0:ee(_.props.delay,e?0:1,Te.delay)}function M(t,n,e){void 0===e&&(e=!0),S.forEach(function(e){Q(e,t)&&e[t].apply(e,n)}),e&&(e=_.props)[t].apply(e,n)}function D(){var n,r,e=_.props.aria;e&&(n="aria-"+e,r=T.id,he(_.props.triggerTarget||l).forEach(function(e){var t=e.getAttribute(n);_.state.isVisible?e.setAttribute(n,t?t+" "+r:r):(t=t&&t.replace(r,"").trim())?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(){O||he(_.props.triggerTarget||l).forEach(function(e){_.props.interactive?e.setAttribute("aria-expanded",_.state.isVisible&&e===k()?"true":"false"):e.removeAttribute("aria-expanded")})}function I(){g.body.removeEventListener("mouseleave",X),g.removeEventListener("mousemove",v),Ke=Ke.filter(function(e){return e!==v})}function F(e){if(!_.props.interactive||!y.contains(e.target)){if(k().contains(e.target)){if(De.isTouch)return;if(_.state.isVisible&&fe(_.props.trigger,"click"))return}!0===_.props.hideOnClick&&(f=!1,_.clearDelayTimeouts(),_.hide(),p=!0,setTimeout(function(){p=!1}),_.state.isMounted||R())}}function P(){g.addEventListener("mousedown",F,!0)}function R(){g.removeEventListener("mousedown",F,!0)}function j(e,t){function n(e){e.target===T&&(Ve(T,"remove",n),t())}if(0===e)return t();Ve(T,"remove",s),Ve(T,"add",n),s=n}function B(t,n,r){void 0===r&&(r=!1),he(_.props.triggerTarget||l).forEach(function(e){e.addEventListener(t,n,r),h.push({node:e,eventType:t,handler:n,options:r})})}function z(){N()&&(B("touchstart",V,Ce),B("touchend",Y,Ce)),pe(_.props.trigger).forEach(function(e){if("manual"!==e)switch(B(e,V),e){case"mouseenter":B("mouseleave",Y);break;case"focus":B(Le?"focusout":"blur",K);break;case"focusin":B("focusout",K)}})}function U(){h.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),h=[]}function V(t){var e,n,r=!1;!_.state.isEnabled||G(t)||p||(u=(o=t).currentTarget,L(),!_.state.isVisible&&ne(t)&&Ke.forEach(function(e){return e(t)}),"click"!==t.type||fe(_.props.trigger,"mouseenter")&&!f||!1===_.props.hideOnClick||!_.state.isVisible?(e=(n=C())[0],n=n[1],De.isTouch&&"hold"===e&&n?i=setTimeout(function(){$(t)},n):$(t)):r=!0,"click"===t.type&&(f=!r),r&&X(t))}function H(e){var a,s,t=de(e.target,function(e){return e===l||e===y});"mousemove"===e.type&&t||(t=ce(y.querySelectorAll(Me)).concat(y).map(function(e){var t=e._tippy,n=t.popperChildren.tooltip,t=t.props.interactiveBorder;return{popperRect:e.getBoundingClientRect(),tooltipRect:n.getBoundingClientRect(),interactiveBorder:t}}),a=e.clientX,s=e.clientY,t.every(function(e){var t=e.popperRect,n=e.tooltipRect,r=e.interactiveBorder,i=Math.min(t.top,n.top),o=Math.max(t.right,n.right),e=Math.max(t.bottom,n.bottom),n=Math.min(t.left,n.left);return r element.cloneNode(true)"].join(" ")));t=t.reduce(function(e,t){t=t&&_(t,a);return t&&e.push(t),e},[]);return l(e)?t[0]:t}S.version="5.2.1",S.defaultProps=Te,S.setDefaultProps=o,S.currentInput=De,C.BACKDROP_CLASS="tippy-backdrop",C.ROUND_ARROW='',C._extends=Z,C.arrayFrom=ce,C.closestCallback=de,C.createTippyWithPlugins=function(r){"production"!==We.env.NODE_ENV&&Ee(!0,["createTippyWithPlugins([...]) has been deprecated.","\n\n","Use tippy.setDefaultProps({plugins: [...]}) instead."].join(" "));function e(e,t,n){return void 0===n&&(n=[]),n=(t=void 0===t?{}:t).plugins||n,S(e,Z({},t,{plugins:[].concat(r,n)}))}return e.version="5.2.1",e.defaultProps=Te,e.setDefaultProps=o,e.currentInput=De,e},C.currentInput=De,C.defaultProps=Te,C.div=oe,C.errorWhen=u,C.getBasePlacement=Fe,C.getOwnerDocument=ve,C.hideAll=function(e){var e=void 0===e?{}:e,n=e.exclude,r=e.duration;Ge.forEach(function(e){var t=!1;(t=n?i(n)?e.reference===n:e.popper===n.popper:t)||e.hide(r)})},C.includes=fe,C.isBrowser=e,C.isMouseEvent=ne,C.normalizeToArray=he,C.removeProperties=a,C.setVisibilityState=se,C.tippy=S,C.useIfDefined=me,C.warnWhen=Ee}.call(this)}.call(this,O("_process"))},{_process:4,"popper.js":3}],7:[function(i,e,o){!function(f){!function(){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var y=i("./tippy.chunk.cjs.js");i("popper.js");var d={mouseover:"mouseenter",focusin:"focus",click:"click"},e={name:"animateFill",defaultValue:!1,fn:function(e){var t=e.popperChildren,n=t.tooltip,r=t.content,i=e.props.animateFill?((t=y.div()).className=y.BACKDROP_CLASS,y.setVisibilityState([t],"hidden"),t):null;function o(){e.popperChildren.backdrop=i}return{onCreate:function(){i&&(o(),n.insertBefore(i,n.firstElementChild),n.setAttribute("data-animatefill",""),n.style.overflow="hidden",e.setProps({animation:"shift-away",arrow:!1}))},onMount:function(){var e,t;i&&(e=n.style.transitionDuration,t=Number(e.replace("ms","")),r.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y.setVisibilityState([i],"visible"),"production"!==f.env.NODE_ENV&&(y.warnWhen("absolute"!==getComputedStyle(i).position,"The `tippy.js/dist/backdrop.css` stylesheet has not been\n imported!\n \n The `animateFill` plugin requires this stylesheet to work."),y.warnWhen("none"===getComputedStyle(n).transform,"The `tippy.js/animations/shift-away.css` stylesheet has not\n been imported!\n \n The `animateFill` plugin requires this stylesheet to work.")))},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y.setVisibilityState([i],"hidden")},onAfterUpdate:function(){o()}}}},t={name:"followCursor",defaultValue:!1,fn:function(c){var d,f=c.reference,p=c.popper,m=null,e=y.getOwnerDocument(c.props.triggerTarget||f),n=null,r=!1,i=c.props;function t(){return"manual"===c.props.trigger.trim()}function o(){var e=!!t()||null!==n&&!(0===n.clientX&&0===n.clientY);return c.props.followCursor&&e}function h(){return y.currentInput.isTouch||"initial"===c.props.followCursor&&c.state.isVisible}function a(){c.popperInstance&&m&&(c.popperInstance.reference=m)}function s(){var e,t;!o()&&c.props.placement===i.placement||(t=(e=i.placement).split("-")[1],r=!0,c.setProps({placement:o()&&t?e.replace(t,"start"===t?"end":"start"):e}),r=!1)}function l(){c.popperInstance&&o()&&h()&&c.popperInstance.disableEventListeners()}function u(){o()?e.addEventListener("mousemove",b):a()}function v(){o()&&b(d)}function g(){e.removeEventListener("mousemove",b)}function b(e){var t,n,r,i,o,a,s=d=e,l=s.clientX,u=s.clientY;c.popperInstance&&c.state.currentPlacement&&(s=y.closestCallback(e.target,function(e){return e===f}),e=c.props.followCursor,t="horizontal"===e,n="vertical"===e,r=y.includes(["top","bottom"],y.getBasePlacement(c.state.currentPlacement)),e={size:e=r?p.offsetWidth:p.offsetHeight,x:r?e:0,y:r?0:e},i=e.size,o=e.x,a=e.y,!s&&c.props.interactive||(null===m&&(m=c.popperInstance.reference),c.popperInstance.reference={referenceNode:f,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){var e=f.getBoundingClientRect();return{width:r?i:0,height:r?0:i,top:(t?e.top:u)-a,bottom:(t?e.bottom:u)+a,left:(n?e.left:l)-o,right:(n?e.right:l)+o}}},c.popperInstance.update()),h()&&g())}return{onAfterUpdate:function(e,t){var n;r||(n=t,Object.keys(n).forEach(function(e){i[e]=y.useIfDefined(n[e],i[e])}),t.placement&&s()),t.placement&&l(),requestAnimationFrame(v)},onMount:function(){v(),l()},onShow:function(){t()&&(d=n={clientX:0,clientY:0},s(),u())},onTrigger:function(e,t){n||(y.isMouseEvent(t)&&(n={clientX:t.clientX,clientY:t.clientY},d=t),s(),u())},onUntrigger:function(){c.state.isVisible||(g(),n=null)},onHidden:function(){g(),a(),n=null}}}},n={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t=e.reference;function n(){return e.props.inlinePositioning}return{onHidden:function(){n()&&(e.popperInstance.reference=t)},onShow:function(){n()&&(e.popperInstance.reference={referenceNode:t,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return function(t,e,n){if(n.length<2||null===t)return e;switch(t){case"top":case"bottom":var r=n[0],i=n[n.length-1],o="top"===t,a=r.top,s=i.bottom,l=(o?r:i).left,i=(o?r:i).right;return{top:a,bottom:s,left:l,right:i,width:i-l,height:s-a};case"left":case"right":var u=Math.min.apply(Math,n.map(function(e){return e.left})),c=Math.max.apply(Math,n.map(function(e){return e.right})),s=n.filter(function(e){return"left"===t?e.left===u:e.right===c}),a=s[0].top,s=s[s.length-1].bottom;return{top:a,bottom:s,left:u,right:c,width:c-u,height:s-a};default:return e}}(e.state.currentPlacement&&y.getBasePlacement(e.state.currentPlacement),t.getBoundingClientRect(),y.arrayFrom(t.getClientRects()))}})}}}},r={name:"sticky",defaultValue:!1,fn:function(n){var r=n.reference,i=n.popper;function o(e){return!0===n.props.sticky||n.props.sticky===e}var a=null,s=null;function l(){var e=o("reference")?(n.popperInstance?n.popperInstance.reference:r).getBoundingClientRect():null,t=o("popper")?i.getBoundingClientRect():null;(e&&u(a,e)||t&&u(s,t))&&n.popperInstance.update(),a=e,s=t,n.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){n.props.sticky&&l()}}}};function u(e,t){return!e||!t||e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}o.createTippyWithPlugins=y.createTippyWithPlugins,o.default=y.tippy,o.hideAll=y.hideAll,o.roundArrow=y.ROUND_ARROW,o.animateFill=e,o.createSingleton=function(o,e,t){void 0===e&&(e={}),void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!Array.isArray(o),["The first argument passed to createSingleton() must be an array of tippy","instances. The passed value was",String(o)].join(" ")),t=e.plugins||t,o.forEach(function(e){e.disable()});var a,s,l=y._extends({},y.defaultProps,{},e).aria,n=!1,u=o.map(function(e){return e.reference}),r={fn:function(r){function i(e){var t;a&&(t="aria-"+a,e&&!r.props.interactive?s.setAttribute(t,r.popperChildren.tooltip.id):s.removeAttribute(t))}return{onAfterUpdate:function(e,t){t=t.aria;void 0!==t&&t!==l&&(n?(n=!0,r.setProps({aria:null}),n=!1):l=t)},onDestroy:function(){o.forEach(function(e){e.enable()})},onMount:function(){i(!0)},onUntrigger:function(){i(!1)},onTrigger:function(e,t){var n=t.currentTarget,t=u.indexOf(n);n!==s&&(s=n,a=l,r.state.isVisible&&i(!0),r.popperInstance.reference=n,r.setContent(o[t].props.content))}}}};return y.tippy(y.div(),y._extends({},e,{plugins:[r].concat(t),aria:null,triggerTarget:u}))},o.delegate=function(e,r,t){void 0===t&&(t=[]),"production"!==f.env.NODE_ENV&&y.errorWhen(!(r&&r.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" ")),t=r.plugins||t;var i=[],o=[],a=r.target,n=y.removeProperties(r,["target"]),s=y._extends({},n,{plugins:t,trigger:"manual"}),l=y._extends({},n,{plugins:t,showOnCreate:!0}),s=y.tippy(e,s);function u(e){var t,n;!e.target||(n=e.target.closest(a))&&(t=n.getAttribute("data-tippy-trigger")||r.trigger||y.defaultProps.trigger,!y.includes(t,d[e.type])||(n=y.tippy(n,l))&&(o=o.concat(n)))}function c(e,t,n,r){e.addEventListener(t,n,r=void 0===r?!1:r),i.push({node:e,eventType:t,handler:n,options:r})}return y.normalizeToArray(s).forEach(function(e){var t=e.destroy;e.destroy=function(e){(e=void 0===e?!0:e)&&o.forEach(function(e){e.destroy()}),o=[],i.forEach(function(e){var t=e.node,n=e.eventType,r=e.handler,e=e.options;t.removeEventListener(n,r,e)}),i=[],t()},c(e=e.reference,"mouseover",u),c(e,"focusin",u),c(e,"click",u)}),s},o.followCursor=t,o.inlinePositioning=n,o.sticky=r}.call(this)}.call(this,i("_process"))},{"./tippy.chunk.cjs.js":6,_process:4,"popper.js":3}],8:[function(e,t,n){"use strict";var r=a(e("mithril")),i=a(e("./view")),o=a(e("./texte/de"));function a(e){return e&&e.__esModule?e:{default:e}}document,window,domIsReady(function(){window.texte=o.default,r.default.mount(window.document.getElementById("gradido-mithril-user-search"),i.default)})},{"./texte/de":13,"./view":14,mithril:1}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=o(e("mithril")),i=o(e("numeral"));function o(e){return e&&e.__esModule?e:{default:e}}var a=!1;n.default={view:function(e){return(0,r.default)("span",(e=e.attrs.centAmount/1e4,i.default.locale("de"),(0,i.default)(e).format("0,0.00")+" GDD"))},oninit:function(e){a||(i.default.register("locale","de",{delimiters:{thousands:".",decimal:","},currency:{symbol:"€"}}),i.default.locale("de"),a=!0)}}},{mithril:1,numeral:2}],10:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){return{oncreate:function(e){(0,r.default)(e.dom,{content:e.attrs.accountState.getTooltipText(),placement:"right-start",theme:"rippleUI-theme",arrow:!1})},onremove:function(){},view:function(){return e}}},i(e("mithril"));var r=i(e("tippy.js"));function i(e){return e&&e.__esModule?e:{default:e}}},{mithril:1,"tippy.js":7}],11:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};n.default={view:function(e){return(0,r.default)("div.modal.visible-modal",{tabindex:"-1",role:"dialog"},(0,r.default)("div.modal-dialog",{role:"document"},(0,r.default)("div.modal-content",[(0,r.default)("p.grid-header",e.attrs.title),(0,r.default)("div.modal-body",e.attrs.body),(0,r.default)("div.modal-footer",[(0,r.default)("button.btn.btn-primary",{type:"button",disabled:e.attrs.btnDisabled,"data-dismiss":"modal",onclick:e.attrs.dismiss},"Ok")])])))},oninit:function(e){}}},{mithril:1}],12:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=(e=e("mithril"))&&e.__esModule?e:{default:e};function i(e,t){for(var n=0;n';if(t+='
    '+e.description.title+"
    ",null!=e.description.lines){for(var n in t+="
      ",e.description.lines){var r=e.description.lines[n],i=window.texte.ACCOUNT_STATES.LINES[n],n="mdi ";if("+"===r)n+=" mdi-check color-primary";else if("-"===r)n+=" mdi-close color-danger";else{if("/"!==r)continue;n+=" mdi-alert-circle-outline color-warning"}t+="
    • ",t+='',t+=" ",t+=""+i.title+": "+i[r]+"",t+="
    • "}t+="
    "}return t+"
    "}}]),e=o;function o(e){!function(e){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this),this.stateName=e,this.texte=window.texte.ACCOUNT_STATES[e]}n.default=e},{mithril:1}],13:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,n.default={ACCOUNT_STATES:{LINES:[{title:"Login-Server","+":"Das Benutzer-Konto liegt auf dem Login-Server!","-":"Das Benutzer-Konto existiert nicht auf dem Login-Server!"},{title:"Konto Aktivierung","+":"Der Benutzer hat sein Konto aktiviert!","-":"Der Benutzer hat noch nicht auf den Link in seiner E-Mail geklickt!"},{title:"Schlüsselpaar","+":"Es wurde bereits ein Schlüsselpaar für den Benutzer erzeugt und ihm eine Passphrase gezeigt!","-":"Es wurden noch keine Schlüssel und Passphrase für den Benutzer erzeugt!"},{title:"Gemeinschafts-Server","+":"Das Benutzer-Konto wurde auf auf den Gemeinschafts-Server kopiert!","-":"Das Benutzer-Konto wurde noch nicht auf den Gemeinschafts-Server kopiert!"},{title:"Gradidos","+":"Es können Gradidos an den Benutzer geschickt werden!","-":"Es können noch keine Gradidos an den Benutzer geschickt werden!","/":"Es können theoretisch Gradidos an den Benutzer geschickt werden, aber es ist nicht sicher ob er sie verwenden kann!"}],"account created":{title:"Konto angelegt",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung.",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account not on login-server":{title:"Konto nicht auf Login-Server",color:"danger",description:{title:"Das Konto existiert nicht (mehr) auf dem Login-Server: ein Fehler oder es wurde nur teilweise gelöscht.",lines:["-","+","+","+","/"]},todo:{title:"Wenn der Benutzer seine Passphrase hat, kann er sein Konto auf dem Login-Server wiederherstellen, ansonsten bleibt eigentlich nur das Konto auf dem Gemeinschafts-Server zu löschen",lines:["Nachdem das Konto auf dem Login-Server kopiert wurde, bekommt der Benutzer automatisch eine E-Mail mit einem Link zur Kontoaktivierung zugeschickt.","{{copy-from-community-to-login-server}}","
    ","Es wird nur der Benutzer gelöscht, nicht seine Transaktionen. Zu diesen hat er wieder Zugriff wenn er sein Konto mit Hilfe seiner Passphrase wiederhergestellt hat.","{{user-transactions-overview}}","{{delete-from-community-server}}"]}},"email activated":{title:"Konto aktiviert",color:"primary",description:{title:"Das Konto wurde vom Benutzer aktiviert und Schlüssel erzeugt, aber noch nicht auf diesen Gemeinschafts-Server kopiert.",lines:["+","+","+","-","-"]},todo:{title:"Das Benutzer Konto müsste vom Login-Server auf den Gemeinschafts-Server kopiert werden.",lines:["{{copy-from-login-to-community-server}}"]}},"account copied to community":{title:"Konto auf Gemeinschafts-Server",color:"success",description:{title:"Das Konto ist vollständig aktiviert und es können Gradidos überwiesen werden.",lines:["+","+","+","+","+"]}},"email not activated":{title:"Konto nicht aktiviert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, vermutlich durch eine elopage-Anmeldung. Es wurde aber noch nicht aktiviert!",lines:["+","-","-","-","-"]},todo:{title:"Als nächstes müsste der Benutzer den Link in seiner E-Mail anklicken und den Anweisungen folgen. ",lines:["Stimmt die E-Mail Adresse? Hat der Benutzer in seinem Spam-Verzeichnis nachgesehen?","{{verification-resend}}","{{mailto-verification-resend}}"]}},"account multiple times on login-server":{title:"Konto mehrfach vorhanden",color:"danger",description:{title:"Das Konto ist auf dem Login-Server mehrfach vorhanden, das sollte nicht sein, auf dem Login-Server muss ein Fehler passiert sein!!"},todo:{title:"Du solltest mit dem Entwickler in Kontakt treten.",lines:["{{mailto-developer}}"]}},"account not on community server":{title:"Konto nicht auf Gemeinschafts-Server",color:"secondary",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber existiert noch nicht auf dem Gemeinschafts-Server!",lines:["+",null,"-","-","-"]},todo:{title:"Das sollte eigentlich nicht passieren, du solltest mit dem Entwickler sprechen.",lines:["{{mailto-developer}}"]}},"no keys":{title:"Keine Schlüssel generiert",color:"warning",description:{title:"Das Konto wurde auf dem Login-Server angelegt, aber es wurden noch keine Schlüssel generiert!",lines:["+","+","-","-","-"]},todo:{title:"Der Benutzer muss sich mit seinen Daten einloggen, dann müsste er automatisch durch die Schlüsselgenerierung/Konto-Wiederherstellung geführt werden",lines:["{{mailto-user-login}}","Wenn der Benutzer sein Passwort vergessen hat, kann er sich auch eine Passwort Reset E-Mail zuschicken lassen.","{{reset-password}}","{{mailto-reset-password}}"]}}},NO_USER_FOUND:"Keine Benutzer gefunden",USER_FOUND:"Benutzer gefunden",NAME:"Name",EMAIL:"E-Mail",BALANCE:"Kontostand",PUBLIC_KEY:"Öffentlicher
    Schlüssel",CREATED:"Erstellt",COPY_FROM_LOGIN_TO_COMMUNITY:"Vom Login-Server zum Gemeinschafts-Server kopieren",COPY_FROM_LOGIN_TO_COMMUNITY_SUCCESS:"Kontodaten wurden erfolgreich vom Login-Server zu diesem Gemeinschafts-Server kopiert!",COPY_FROM_COMMUNITY_TO_LOGIN:"Vom Gemeinschafts-Server zum Login-Server kopieren",COPY_FROM_COMMUNITY_TO_LOGIN_SUCCESS:"Kontodaten wurden erfolgreich vom Gemeinschafts-Server zum Login-Server kopiert!",DELETE_FROM_COMMUNITY:"Benutzer Konto vom Gemeinschafts-Server löschen",DELETE_FROM_COMMUNITY_SUCCESS:"Benutzer Konto vom Gemeinschafts-Server erfolgreich gelöscht",VERIFICATION_EMAIL_RESEND:"Verification Email erneut zusenden",VERIFICATION_EMAIL_RESEND_SUCCESS:"Verification Email wird erneut zugestellt",COPY_FAILED:"Fehler beim Kopieren",DELETE_FAILED:"Fehler beim löschen",RESEND_FAILED:"Senden fehlgeschlagen",AJAX_CRITICAL:"Kritischer Fehler beim Ajax-Request",COPY_IN_PROGRESS:"Wird kopiert",DELETE_IN_PROGRESS:"Wird gelöscht",RESEND_IN_PROGRESS:"Wird gesendet",RECEIVE_TRANSACTIONS_COUNT:"Erhaltene Transaktionen: ",SENDED_TRANSACTIONS_COUNT:"gesendete Transaktionen: ",CREATION_TRANSACTIONS_COUNT:"erhaltende Schöpfungs-Transaktionen: "}},{}],14:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=a(e("mithril")),i=a(e("./userTable")),o=a(e("../model/AccountState"));function a(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(e){return void 0===g_users?(0,r.default)(""):0"===e)return i.default.trust("

    ");if(t){var n=function(){switch(t[1]){case"copy-from-login-to-community-server":return o.default;case"user-transactions-overview":return a.default;case"copy-from-community-to-login-server":return s.default;case"verification-resend":return l.default}return null}();return n?(0,i.default)("li",(0,i.default)(n,{user:r.attrs.user,updateState:r.attrs.updateState,deleteUser:r.attrs.deleteUser})):(0,i.default)("li",e)}return(0,i.default)("li",e)})]):null]))},oninit:function(e){e.state.accountStateTexte=window.texte.ACCOUNT_STATES[e.attrs.user.indicator.name]}}},{"./actions/copyCommunityLogin":16,"./actions/copyLoginCommunity":17,"./actions/deleteCommunityServer":18,"./actions/userTransactionsOverview":19,"./actions/verificationResend":20,mithril:1}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var d=r(e("mithril")),f=r(e("../../model/AccountState")),p=r(e("../../lib/Gradido")),m=r(e("../../lib/Tooltip")),h=r(e("../../lib/dialog"));function r(e){return e&&e.__esModule?e:{default:e}}n.default={view:function(t){var e=new f.default(t.attrs.user.indicator.name),n=t.attrs.user,r=e.getColor(),i=e.getTitle(),o=n.pubkeyhex;""!==o&&(o=n.pubkeyhex.substring(0,10)+"...");var a=n.created;a&&(a=(c=new Date(a)).toLocaleDateString()+"
    "+c.toLocaleTimeString());var s=!1;e.hasActions()&&(s=e.getRawColor(),s="primary");var l="down";t.attrs.open&&(l="up");var u=n.email,c=!1;return 25 Date: Mon, 22 Mar 2021 14:17:34 +0100 Subject: [PATCH 52/91] setup for unit tests in frontend --- frontend/.babelrc | 25 + frontend/.gitignore | 2 + frontend/package.json | 38 +- frontend/src/components/CloseButton.spec.js | 33 + frontend/test/registerContext.js | 2 + frontend/yarn.lock | 1897 ++++++++++++++++++- 6 files changed, 1947 insertions(+), 50 deletions(-) create mode 100644 frontend/.babelrc create mode 100644 frontend/src/components/CloseButton.spec.js create mode 100644 frontend/test/registerContext.js diff --git a/frontend/.babelrc b/frontend/.babelrc new file mode 100644 index 000000000..b05ad522d --- /dev/null +++ b/frontend/.babelrc @@ -0,0 +1,25 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "modules": false + } + ] + ], + "env": { + "test": { + "plugins": ["require-context-hook"], + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "10" + } + } + ] + ] + } + } +} \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore index 82783fce2..fbdbf35b6 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -18,3 +18,5 @@ package-lock.json *.ntvs* *.njsproj *.sln + +*~ \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 5100e736a..e039710fa 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,10 +8,44 @@ "build": "vue-cli-service build", "lint": "vue-cli-service lint", "dev": "yarn run serve", - "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'" + "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'", + "test": "jest" + }, + "jest": { + "verbose": true, + "collectCoverageFrom": [ + "**/*.{js,vue}", + "!**/node_modules/**", + "!**/?(*.)+(spec|test).js?(x)" + ], + "moduleFileExtensions": [ + "js", + "json", + "vue" + ], + "coverageReporters": [ + "lcov" + ], + "moduleNameMapper": { + "^@/(.*)$": "/src/$1" + }, + "transform": { + ".*\\.(vue)$": "vue-jest", + "^.+\\.js$": "babel-jest" + }, + "setupFiles": [ + "/test/registerContext.js" + ], + "testMatch": [ + "**/?(*.)+(spec|test).js?(x)" + ] }, "dependencies": { + "@vue/test-utils": "^1.1.3", "axios": "^0.21.1", + "babel-core": "^7.12.3", + "babel-jest": "^26.6.3", + "babel-plugin-require-context-hook": "^1.0.0", "bootstrap": "4.3.1", "bootstrap-vue": "^2.5.0", "chart.js": "^2.9.3", @@ -27,6 +61,7 @@ "flatpickr": "^4.5.7", "fuse.js": "^3.2.0", "google-maps": "^3.2.1", + "jest": "^26.6.3", "nouislider": "^12.1.0", "particles-bg-vue": "1.2.3", "perfect-scrollbar": "^1.3.0", @@ -44,6 +79,7 @@ "vue-flatpickr-component": "^8.1.2", "vue-good-table": "^2.21.3", "vue-i18n": "^8.22.4", + "vue-jest": "^3.0.7", "vue-moment": "^4.1.0", "vue-qrcode": "^0.3.5", "vue-qrcode-reader": "^2.3.16", diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js new file mode 100644 index 000000000..8ebd17a73 --- /dev/null +++ b/frontend/src/components/CloseButton.spec.js @@ -0,0 +1,33 @@ +import { mount } from '@vue/test-utils' + +import CloseButton from './CloseButton' + +const localVue = global.localVue + +describe('CloseButton', () => { + + let wrapper + let propsData = { + taget: ["Target", 0], + expanded: false, + } + + const Wrapper = () => { + return mount(CloseButton, { localVue, propsData }) + } + + describe('mount', () => { + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('emmits click event', () => { + console.log(wrapper.html()) + wrapper.find('.navbar-toggler').trigger('click') + expect(wrapper.emitted('click')).toBeTruthy() + }) + + }) + +}) diff --git a/frontend/test/registerContext.js b/frontend/test/registerContext.js new file mode 100644 index 000000000..a27ca2f7a --- /dev/null +++ b/frontend/test/registerContext.js @@ -0,0 +1,2 @@ +import registerRequireContextHook from 'babel-plugin-require-context-hook/register' +registerRequireContextHook() diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 06586d16a..6086562f9 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -14,6 +14,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.6.tgz#11972d07db4c2317afdbf41d6feb3a730301ef4e" integrity sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw== +"@babel/compat-data@^7.13.8": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.11.tgz#9c8fe523c206979c9a81b1e12fe50c1254f1aa35" + integrity sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== + "@babel/core@^7.0.0": version "7.13.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.1.tgz#7ddd027176debe40f13bb88bac0c21218c5b1ecf" @@ -36,6 +41,28 @@ semver "7.0.0" source-map "^0.5.0" +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" + integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.13.9" + "@babel/helper-compilation-targets" "^7.13.10" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helpers" "^7.13.10" + "@babel/parser" "^7.13.10" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^6.3.0" + source-map "^0.5.0" + "@babel/generator@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.0.tgz#bd00d4394ca22f220390c56a0b5b85568ec1ec0c" @@ -45,6 +72,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.13.9": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" + integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== + dependencies: + "@babel/types" "^7.13.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" @@ -70,6 +106,16 @@ browserslist "^4.14.5" semver "7.0.0" +"@babel/helper-compilation-targets@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" + integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== + dependencies: + "@babel/compat-data" "^7.13.8" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.13.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.0.tgz#28d04ad9cfbd1ed1d8b988c9ea7b945263365846" @@ -178,7 +224,7 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== @@ -252,6 +298,15 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/helpers@^7.13.10": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8" + integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + "@babel/highlight@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" @@ -261,6 +316,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.13.10": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.11.tgz#f93ebfc99d21c1772afbbaa153f47e7ce2f50b88" + integrity sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== + "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.7.0": version "7.13.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.4.tgz#340211b0da94a351a6f10e63671fa727333d13ab" @@ -325,13 +385,27 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.2.0", "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-decorators@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" @@ -346,7 +420,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== @@ -360,20 +441,55 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" @@ -670,7 +786,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": +"@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== @@ -679,7 +795,7 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.7.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== @@ -703,7 +819,7 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.7.0": +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== @@ -712,6 +828,19 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -753,6 +882,193 @@ cssnano-preset-default "^4.0.0" postcss "^7.0.0" +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -775,6 +1091,20 @@ consola "^2.15.0" node-fetch "^2.6.1" +"@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@soda/friendly-errors-webpack-plugin@^1.7.1": version "1.8.0" resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz#84751d82a93019d5c92c0cf0e45ac59087cd2240" @@ -785,6 +1115,39 @@ string-width "^2.0.0" strip-ansi "^5" +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== + dependencies: + "@babel/types" "^7.3.0" + "@types/chart.js@^2.7.55": version "2.9.30" resolved "https://registry.yarnpkg.com/@types/chart.js/-/chart.js-2.9.30.tgz#34b99897f4f5ef0f74c8fe4ced70ac52b4d752dd" @@ -805,6 +1168,32 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + "@types/json-schema@^7.0.5": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" @@ -825,11 +1214,43 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/prettier@^2.0.0": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" + integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== + "@types/q@^1.5.1": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + "@vue/babel-helper-vue-jsx-merge-props@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" @@ -1070,6 +1491,15 @@ resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== +"@vue/test-utils@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.1.3.tgz#747f5683d8d4633c85a385fe2e02c1bb35bec153" + integrity sha512-BAY1Cwe9JpkJseimC295EW3YlAmgIJI9OPkg2FSP62+PHZooB0B+wceDi9TYyU57oqzL0yLbcP73JKFpKiLc9A== + dependencies: + dom-event-types "^1.0.0" + lodash "^4.17.15" + pretty "^2.0.0" + "@vue/web-component-wrapper@^1.2.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a" @@ -1230,6 +1660,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1243,6 +1678,14 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -1285,6 +1728,11 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.5: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== + address@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -1345,6 +1793,13 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1402,7 +1857,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: +anymatch@^3.0.3, anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -1600,6 +2055,11 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@^7.12.3: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + babel-eslint@^10.0.1, babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -1617,6 +2077,20 @@ babel-helper-vue-jsx-merge-props@^2.0.0: resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-loader@^8.0.5: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -1627,6 +2101,13 @@ babel-loader@^8.0.5: make-dir "^3.1.0" schema-utils "^2.6.5" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + babel-plugin-component@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea" @@ -1641,6 +2122,27 @@ babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.3 dependencies: object.assign "^4.1.0" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + babel-plugin-module-resolver@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" @@ -1676,7 +2178,56 @@ babel-plugin-polyfill-regenerator@^0.1.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.1.2" -babel-runtime@6.x: +babel-plugin-require-context-hook@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.0.tgz#3f0e7cce87c338f53639b948632fd4e73834632d" + integrity sha512-EMZD1563QUqLhzrqcThk759RhuNVX/ZJdrtGK6drwzgvnR+ARjWyXIHPbu+tUNaMGtPz/gQeAM2M6VUw2UiUeA== + +babel-plugin-transform-es2015-modules-commonjs@^6.26.0: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + 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-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -1684,6 +2235,47 @@ babel-runtime@6.x: core-js "^2.4.0" regenerator-runtime "^0.11.0" +babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + 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@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + 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" + +babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1856,7 +2448,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1878,6 +2470,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1950,6 +2547,13 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.70" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" @@ -2161,11 +2765,16 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -2181,6 +2790,13 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz#bacb432b6701f690c8c5f7c680166b9a9f0843d9" integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + case-sensitive-paths-webpack-plugin@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -2219,6 +2835,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -2308,6 +2929,11 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2321,6 +2947,11 @@ circular-json@^0.3.1: resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2404,6 +3035,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2422,16 +3062,16 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone@2.x, clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2451,6 +3091,11 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2516,7 +3161,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.18.0, commander@^2.20.0: +commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2576,6 +3221,23 @@ concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -2620,7 +3282,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.5.1, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -2861,6 +3523,16 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -2941,6 +3613,23 @@ csso@^4.0.2: dependencies: css-tree "^1.1.2" +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + current-script-polyfill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz#f31cf7e4f3e218b0726e738ca92a02d3488ef615" @@ -3243,6 +3932,15 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + datamaps@^0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/datamaps/-/datamaps-0.5.9.tgz#2a775473aaab29b55025208b2245e840ecfd4fe1" @@ -3267,7 +3965,15 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +deasync@^0.1.15: + version "0.1.21" + resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.21.tgz#bb11eabd4466c0d8776f0d82deb8a6126460d30f" + integrity sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w== + dependencies: + bindings "^1.5.0" + node-addon-api "^1.7.1" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3293,6 +3999,11 @@ decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -3320,7 +4031,7 @@ deepmerge@^1.2.0, deepmerge@^1.5.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== -deepmerge@^4.2.0: +deepmerge@^4.2.0, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== @@ -3422,6 +4133,11 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -3432,6 +4148,11 @@ diacriticless@1.0.1: resolved "https://registry.yarnpkg.com/diacriticless/-/diacriticless-1.0.1.tgz#e7dda978c2919609bb48aee1efc5de6a337bd4c3" integrity sha1-592peMKRlgm7SK7h78XeajN71MM= +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -3494,6 +4215,11 @@ dom-converter@^0.2: dependencies: utila "~0.4" +dom-event-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" + integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -3517,6 +4243,13 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -3616,6 +4349,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3656,6 +4399,11 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -3851,6 +4599,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escodegen@^1.11.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -3863,6 +4616,18 @@ escodegen@^1.11.1: optionalDependencies: source-map "~0.6.1" +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@~1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" @@ -4164,6 +4929,11 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exec-sh@^0.3.2: + version "0.3.5" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.5.tgz#1b46bd6bcbf54fdc1e926a4f3d90126d42cec3df" + integrity sha512-0hzpaUazv4mEccxdn3TXC+HWNeVXNKMCJRK6E7Xyg+LwGAYI3yFag6jTkd4injV+kChYDQS1ftqDhnDVWNhU8A== + execa@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" @@ -4206,6 +4976,26 @@ execa@^3.3.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -4219,6 +5009,18 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + express@^4.16.3, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -4314,6 +5116,13 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-from-css@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" + integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= + dependencies: + css "^2.1.0" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4388,6 +5197,13 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -4529,7 +5345,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4665,7 +5481,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1: +fsevents@^2.1.2, fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -4735,6 +5551,11 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -4796,7 +5617,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -4813,6 +5634,11 @@ globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -4871,11 +5697,16 @@ google-maps@^3.2.1: resolved "https://registry.yarnpkg.com/google-maps/-/google-maps-3.3.0.tgz#4432b4715406bc15268ad35b1dd1b04d974956a6" integrity sha512-pj4En0cWKG+lcBvC7qrzu5ItiMsYNTgjG2capsPzAbAM/O8ftugGpUUftTTwdGL8KlNvB4CEZ6IBWwpWYzUEpw== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + gzip-size@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -5048,11 +5879,23 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + html-minifier@^3.2.3: version "3.5.21" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" @@ -5258,6 +6101,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5308,6 +6159,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -5449,6 +6305,13 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -5554,6 +6417,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5621,6 +6489,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-regex@^1.0.4, is-regex@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" @@ -5658,7 +6531,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -5673,6 +6546,11 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5683,7 +6561,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -5722,16 +6600,441 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + javascript-stringify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + js-base64@^2.1.8: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.13.5" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.5.tgz#a08a97890cae55daf1d758d3f6577bd4a64d7014" + integrity sha512-MsXlH6Z/BiRYSkSRW3clNDqDjSpiSNOiG8xYVUBXt4k0LnGvDhlTGOlHX1VFtAdoLmtwjxMG5qiWKy/g+Ipv5w== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "^1.0.4" + nopt "^5.0.0" + js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -5772,6 +7075,38 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom@^16.4.0: + version "16.5.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.1.tgz#4ced6bbd7b77d67fb980e64d9e3e6fb900f97dd6" + integrity sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA== + dependencies: + abab "^2.0.5" + acorn "^8.0.5" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "6.0.1" + request "^2.88.2" + request-promise-native "^1.0.9" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.4.4" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5887,6 +7222,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + launch-editor-middleware@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" @@ -5902,6 +7242,11 @@ launch-editor@^2.2.1: chalk "^2.3.0" shell-quote "^1.6.1" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -6031,6 +7376,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.transform@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" @@ -6078,7 +7428,7 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -6122,13 +7472,20 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -6255,6 +7612,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -6322,7 +7687,7 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -6374,6 +7739,11 @@ mixin-deep@^1.2.0: dependencies: minimist "^1.2.5" +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + moment@^2.10.2, moment@^2.19.2: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" @@ -6492,6 +7862,19 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-addon-api@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-cache@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" + integrity sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A== + dependencies: + clone "2.x" + lodash "^4.17.15" + node-fetch@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -6520,6 +7903,11 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + node-ipc@^9.1.1: version "9.1.3" resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.3.tgz#1df3f069d103184ae9127fa885dbdaea56a4436f" @@ -6558,6 +7946,23 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + node-releases@^1.1.70: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" @@ -6593,6 +7998,13 @@ node-sass@^4.12.0: dependencies: abbrev "1" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -6691,6 +8103,11 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -6899,6 +8316,11 @@ osenv@0: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -7042,16 +8464,16 @@ parse5-htmlparser2-tree-adapter@^6.0.0: dependencies: parse5 "^6.0.1" +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parse5@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -7165,7 +8587,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -7197,6 +8619,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -7218,7 +8647,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -7639,6 +9068,25 @@ pretty-error@^2.0.2: lodash "^4.17.20" renderkid "^2.0.4" +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7659,6 +9107,19 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + proton-engine@^4.1.3: version "4.2.1" resolved "https://registry.yarnpkg.com/proton-engine/-/proton-engine-4.2.1.tgz#db938e4f673ddbd91ac70628b0733283a4571ef7" @@ -7682,7 +9143,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28: +psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -7858,6 +9319,11 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -7866,6 +9332,15 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -7875,7 +9350,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^5.0.0: +read-pkg@^5.0.0, read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== @@ -8055,7 +9530,7 @@ request-promise-core@1.1.4: dependencies: lodash "^4.17.19" -request-promise-native@^1.0.7: +request-promise-native@^1.0.7, request-promise-native@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== @@ -8064,7 +9539,7 @@ request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.0, request@^2.88.0: +request@^2.87.0, request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -8130,6 +9605,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -8145,12 +9627,17 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.5, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.4.0: +resolve@^1.1.5, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.4.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -8215,6 +9702,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + rtcpeerconnection-shim@^1.2.15: version "1.2.15" resolved "https://registry.yarnpkg.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" @@ -8280,6 +9772,21 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sass-graph@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" @@ -8306,6 +9813,13 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -8523,6 +10037,16 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -8535,6 +10059,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -8545,6 +10074,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -8624,7 +10158,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-resolve@^0.5.0: +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -8635,7 +10169,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -8665,6 +10199,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -8760,6 +10299,13 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + stackframe@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" @@ -8854,6 +10400,14 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8972,6 +10526,16 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -8994,7 +10558,7 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -9027,13 +10591,21 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -9063,6 +10635,11 @@ sweetalert2@^9.5.4: resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-9.17.2.tgz#7f33ce157a64c303d2ca98863c9a3f437e5f1187" integrity sha512-HkpPZVMYsnhFUBLdy/LvkU9snggKP3VAuSVnPhVXjxdg02lWbFx0W8H3m7A+WMWw2diXZS1wIa4m67XkNxdvew== +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" @@ -9099,6 +10676,14 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.2.3, terser-webpack-plugin@^1.4.3: version "1.4.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" @@ -9123,6 +10708,15 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -9151,6 +10745,11 @@ thread-loader@^2.1.2: loader-utils "^1.1.0" neo-async "^2.6.0" +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + throttle-debounce@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" @@ -9198,11 +10797,21 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -9270,6 +10879,22 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -9287,6 +10912,16 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -9316,11 +10951,26 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -9339,6 +10989,13 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -9409,7 +11066,7 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -universalify@^0.1.0: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -9536,6 +11193,20 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -9697,6 +11368,23 @@ vue-i18n@^8.17.0, vue-i18n@^8.22.4: resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.23.0.tgz#4a65681a1dfe716d47e1d00ddbd6e0b88ea36735" integrity sha512-mXgniaumwca8tKdp55fmvqIcW658vQQXq0zEyRHp8sgZ6t+Md+Whhu6CCPg9/erVNlvpKzsGsucGjt2N8GrFCA== +vue-jest@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.7.tgz#a6d29758a5cb4d750f5d1242212be39be4296a33" + integrity sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" + chalk "^2.1.0" + deasync "^0.1.15" + extract-from-css "^0.4.4" + find-babel-config "^1.1.0" + js-beautify "^1.6.14" + node-cache "^4.1.1" + object-assign "^4.1.1" + source-map "^0.5.6" + tsconfig "^7.0.0" + vue-template-es2015-compiler "^1.6.0" + vue-loader@^15.7.0: version "15.9.6" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" @@ -9751,7 +11439,7 @@ vue-template-compiler@^2.6.11: de-indent "^1.0.2" he "^1.1.0" -vue-template-es2015-compiler@^1.9.0: +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== @@ -9771,6 +11459,27 @@ vuex@^3.6.0: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -9803,6 +11512,16 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-bundle-analyzer@^3.3.0: version "3.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" @@ -9954,6 +11673,27 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -9966,7 +11706,7 @@ which@1, which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -10006,6 +11746,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -10020,6 +11769,16 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -10041,6 +11800,21 @@ ws@^6.0.0, ws@^6.2.1: dependencies: async-limiter "~1.0.0" +ws@^7.4.4: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10079,6 +11853,14 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2: version "20.2.6" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" @@ -10100,6 +11882,23 @@ yargs@^13.2.2, yargs@^13.2.4, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yargs@^16.0.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From 6404930195ab1b27d00a09277a15fc4b15b0cf28 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 22 Mar 2021 14:24:53 +0100 Subject: [PATCH 53/91] set correct version of babel core --- frontend/package.json | 2 +- frontend/yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index e039710fa..2cc5744db 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -43,7 +43,7 @@ "dependencies": { "@vue/test-utils": "^1.1.3", "axios": "^0.21.1", - "babel-core": "^7.12.3", + "babel-core": "^7.0.0-bridge.0", "babel-jest": "^26.6.3", "babel-plugin-require-context-hook": "^1.0.0", "bootstrap": "4.3.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6086562f9..cf52833bf 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2055,7 +2055,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^7.12.3: +babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== From 1d8cd51132ea2bcfa766863ef07d30b695823260 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 22 Mar 2021 20:15:42 +0100 Subject: [PATCH 54/91] frontend tests to github workflow --- .github/workflows/test.yml | 55 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ed55ced01..fe6999eb5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -214,41 +214,40 @@ jobs: # run: docker-compose exec -T backend yarn test ############################################################################## - # JOB: UNIT TEST WEBAPP ###################################################### + # JOB: UNIT TEST FRONTEND ################################################### ############################################################################## - #unit_test_webapp: - # name: Unit tests - webapp - # runs-on: ubuntu-latest - # needs: [build_test_webapp] - # steps: - # ########################################################################## - # # CHECKOUT CODE ########################################################## - # ########################################################################## - # - name: Checkout code - # uses: actions/checkout@v2 - # ########################################################################## - # # DOWNLOAD DOCKER IMAGES ################################################# - # ########################################################################## - # - name: Download Docker Image (Webapp) - # uses: actions/download-artifact@v2 - # with: - # name: docker-webapp-test - # path: /tmp - # - name: Load Docker Image - # run: docker load < /tmp/webapp.tar - # ########################################################################## - # # UNIT TESTS WEBAPP ##################################################### - # ########################################################################## - # # TODO: Why do we need those .envs? + unit_test_frontend: + name: Unit tests - Frontend + runs-on: ubuntu-latest + needs: [build_test_frontend] + steps: + ########################################################################## + # CHECKOUT CODE ########################################################## + ########################################################################## + - name: Checkout code + uses: actions/checkout@v2 + ########################################################################## + # DOWNLOAD DOCKER IMAGES ################################################# + ########################################################################## + - name: Download Docker Image (Webapp) + uses: actions/download-artifact@v2 + with: + name: docker-frontend-test + path: /tmp + - name: Load Docker Image + run: docker load < /tmp/frontend.tar + ########################################################################## + # UNIT TESTS WEBAPP ##################################################### + ########################################################################## + # TODO: Why do we need those .envs? # - name: backend | copy env files webapp # run: cp webapp/.env.template webapp/.env # - name: backend | copy env files backend # run: cp backend/.env.template backend/.env # - name: backend | docker-compose # run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp - # - name: webapp | Unit tests - # #run: docker run --rm ocelotsocialnetwork/webapp:build yarn run test - # run: docker-compose exec -T webapp yarn test + - name: frontend | Unit tests + run: docker-compose exec -T frontend yarn test #test: # runs-on: ubuntu-latest From 61b6f4f06b09ab3a439c793395fdb859bb735cff Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 22 Mar 2021 20:50:45 +0100 Subject: [PATCH 55/91] fix frontend workflow --- .github/workflows/test.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fe6999eb5..56dc42be7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -237,17 +237,11 @@ jobs: - name: Load Docker Image run: docker load < /tmp/frontend.tar ########################################################################## - # UNIT TESTS WEBAPP ##################################################### + # UNIT TESTS FRONTEND #################################################### ########################################################################## - # TODO: Why do we need those .envs? - # - name: backend | copy env files webapp - # run: cp webapp/.env.template webapp/.env - # - name: backend | copy env files backend - # run: cp backend/.env.template backend/.env - # - name: backend | docker-compose - # run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp - name: frontend | Unit tests - run: docker-compose exec -T frontend yarn test + run: docker run --rm gradido/frontend:test yarn run test + #test: # runs-on: ubuntu-latest From 31a462ca9ed07bde5902456efa545f94ab63b64f Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 23 Mar 2021 08:11:05 +0000 Subject: [PATCH 56/91] update last cases of wrong Transaction session variable --- community_server/src/Controller/StateBalancesController.php | 4 ++-- .../src/Controller/StateUserTransactionsController.php | 2 +- .../src/Controller/TransactionCreationsController.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index bddf35125..4afeabd8b 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -197,7 +197,7 @@ class StateBalancesController extends AppController } uasort($transactions, array($this, 'sortTransactions')); $this->set('transactions', $transactions); - $this->set('transactionExecutingCount', $session->read('Transaction.executing')); + $this->set('transactionExecutingCount', $session->read('Transactions.executing')); $this->set('balance', $session->read('StateUser.balance')); $this->set('timeUsed', microtime(true) - $startTime); $this->set('gdtSum', $gdtSum); @@ -370,7 +370,7 @@ class StateBalancesController extends AppController return $this->returnJson([ 'state' => 'success', 'transactions' => $transactions, - 'transactionExecutingCount' => $session->read('Transaction.executing'), + 'transactionExecutingCount' => $session->read('Transactions.executing'), 'count' => count($transactions), 'gdtSum' => $gdtSum, 'timeUsed' => microtime(true) - $startTime diff --git a/community_server/src/Controller/StateUserTransactionsController.php b/community_server/src/Controller/StateUserTransactionsController.php index 8c252218c..b51dd350f 100644 --- a/community_server/src/Controller/StateUserTransactionsController.php +++ b/community_server/src/Controller/StateUserTransactionsController.php @@ -196,7 +196,7 @@ class StateUserTransactionsController extends AppController return $this->returnJson([ 'state' => 'success', 'transactions' => $transactions, - 'transactionExecutingCount' => $session->read('Transaction.executing'), + 'transactionExecutingCount' => $session->read('Transactions.executing'), 'count' => $all_user_transactions_count, 'timeUsed' => microtime(true) - $startTime ]); diff --git a/community_server/src/Controller/TransactionCreationsController.php b/community_server/src/Controller/TransactionCreationsController.php index 5e29a7997..af7b9a018 100644 --- a/community_server/src/Controller/TransactionCreationsController.php +++ b/community_server/src/Controller/TransactionCreationsController.php @@ -323,7 +323,7 @@ class TransactionCreationsController extends AppController $this->set('firstDayLastMonth', $firstDayLastMonth); $this->set('activeUser', $user); $this->set('creationForm', $creationForm); - $this->set('transactionExecutingCount', $session->read('Transaction.executing')); + $this->set('transactionExecutingCount', $session->read('Transactions.executing')); $this->set('timeUsed', microtime(true) - $startTime); $this->set('countUsers', $countUsers); $this->set('limit', $limit); From 8368fadc1bd00634d3b4cdfb1e9fa3f43188a407 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 23 Mar 2021 09:12:18 +0100 Subject: [PATCH 57/91] remove old notation for transaction counter, commit missing doc update --- docu/login_server.api.md | 28 ++++++++++++++++++- .../src/cpp/JSONInterface/JsonGetLogin.cpp | 6 ++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/docu/login_server.api.md b/docu/login_server.api.md index 49a390c3a..7932ec42e 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -81,4 +81,30 @@ data: {"session_id": -127182} Wenn alles okay ist erhältst du: ```json {"state":"success"} -``` \ No newline at end of file +``` + +## Update User Data +Update first name, last name, user language and enable/disable user +Language currently supported de and en +User will be disabled if he wants a account delete but has transactions. +Until transactions are saved in real blockchain, we need this data because the public key +is in db only saved in state_users so we wenn delete this entry, validating all transactions not longer possible. +Disabled User cannot login and cannot receive transactions. +In update Object only one of the sets needs to be there. + +POST http://localhost/login_api/updateUserInfos +```json +{"session_id": -127182, "email": "max.musterman@gmail.de", "update": { + "User.first_name": "Dario", + "User.last_name" : "Rekowski", + "User.disabled": 0, + "User.language": "de" +}} +``` +also valid +```json +{"session_id": -127182, "email": "max.musterman@gmail.de", "update": { + "User.last_name" : "Rekowski" +}} +``` + \ No newline at end of file diff --git a/login_server/src/cpp/JSONInterface/JsonGetLogin.cpp b/login_server/src/cpp/JSONInterface/JsonGetLogin.cpp index 67d963648..11bdb398e 100644 --- a/login_server/src/cpp/JSONInterface/JsonGetLogin.cpp +++ b/login_server/src/cpp/JSONInterface/JsonGetLogin.cpp @@ -71,15 +71,13 @@ Poco::JSON::Object* JsonGetLogin::handle(Poco::Dynamic::Var params) em->addError(new Error("JsonGetLogin::handle", "generic exception calling userModel->getJson: ")); em->sendErrorsAsEmail(); } - // use both variants for compatibility reasons, but final version is Transactions.pending - result->set("Transaction.pending", session->getProcessingTransactionCount()); + result->set("Transactions.pending", session->getProcessingTransactionCount()); auto executing = observer->getTaskCount(userModel->getEmail(), TASK_OBSERVER_SIGN_TRANSACTION); if (executing < 0) { executing = 0; } - // use both variants for compatibility reasons, but final version is Transactions.executing - result->set("Transaction.executing", executing); + result->set("Transactions.executing", executing); //printf("pending: %d\n", session->getProcessingTransactionCount()); //std::string user_string = userModel->toString(); From 04ed14775edde726ffc7e697ccaf5253099c4815 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 23 Mar 2021 09:48:36 +0100 Subject: [PATCH 58/91] dev-night-meeting --- frontend/src/App.vue | 1 + .../src/components/SidebarPlugin/SideBar.vue | 2 +- frontend/src/locales/en.json | 2 +- frontend/src/views/KontoOverview/GddSent.vue | 5 +---- .../src/views/KontoOverview/GddStatus.vue | 3 ++- frontend/src/views/Layout/ContentFooter.vue | 8 ++++---- frontend/src/views/Pages/Login.vue | 6 +++--- frontend/src/views/Pages/Register.vue | 2 +- .../Pages/UserProfile/EditProfileForm.vue | 4 ++-- .../src/views/Pages/UserProfile/UserCard.vue | 19 ++++--------------- frontend/src/views/Pages/UserProfileCard.vue | 6 +----- 11 files changed, 21 insertions(+), 37 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 2756c5314..69b838249 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -54,6 +54,7 @@ export default { } \ No newline at end of file diff --git a/frontend/src/views/KontoOverview/GddSend.vue b/frontend/src/views/KontoOverview/GddSend.vue new file mode 100644 index 000000000..f716e72a9 --- /dev/null +++ b/frontend/src/views/KontoOverview/GddSend.vue @@ -0,0 +1,204 @@ + + + \ No newline at end of file diff --git a/frontend/src/views/KontoOverview/GddStatus.vue b/frontend/src/views/KontoOverview/GddStatus.vue index c724e33ac..f16631244 100644 --- a/frontend/src/views/KontoOverview/GddStatus.vue +++ b/frontend/src/views/KontoOverview/GddStatus.vue @@ -4,16 +4,14 @@ + class="mb-4 h1"> {{ $n($store.state.user.balance) }} GDD + class="mb-4 h1"> {{ $n($store.state.user.balance_gdt) }} GDT diff --git a/frontend/src/views/KontoOverview/GddTable.vue b/frontend/src/views/KontoOverview/GddTable.vue index c84d9a985..1ddcb3fb3 100644 --- a/frontend/src/views/KontoOverview/GddTable.vue +++ b/frontend/src/views/KontoOverview/GddTable.vue @@ -2,13 +2,13 @@
    - +
    -

    {{ $n((item.balance)/10000) }} GDD

    +

    {{ $n((item.balance/10000)) }} GDD

    {{item.name}}

    - i + i
    @@ -20,16 +20,16 @@ gdd{{item.balance}} memo{{item.memo}}
    - {{$t('transaction.more')}} + {{$t('transaction.more')}} {{item}} - + - + @@ -55,7 +55,11 @@ export default { created() { axios.get("http://localhost/state-balances/ajaxListTransactions/"+ this.$store.state.session_id).then((result) => { - //console.log("result",result) + console.log("result",result) + console.log("transactions.length",result.data.count) + +console.log("this.$route.path", this.$route.path); + //console.log("result.state",result.data.state) //console.log("result.data.state == 'success'",result.data.state == "success") @@ -64,6 +68,7 @@ export default { //console.log("result.transactions",typeof(result.data.transactions)) //commit('transactions', result.data.transactions) this.$store.state.user.balance_gdt = result.data.gdtSum + this.items = result.data.transactions this.count = result.data.count diff --git a/frontend/src/views/Layout/AuthLayout.vue b/frontend/src/views/Layout/AuthLayout.vue index 90b519392..74f0066e7 100755 --- a/frontend/src/views/Layout/AuthLayout.vue +++ b/frontend/src/views/Layout/AuthLayout.vue @@ -47,7 +47,7 @@
    - © {{year}} Gradido Wallet + © {{year}} Gradido-Akademie
    diff --git a/frontend/src/views/Layout/AuthLayout_gdd.vue b/frontend/src/views/Layout/AuthLayout_gdd.vue index 4dee33b6e..daf99a384 100644 --- a/frontend/src/views/Layout/AuthLayout_gdd.vue +++ b/frontend/src/views/Layout/AuthLayout_gdd.vue @@ -42,5 +42,7 @@ import ContentFooter from './ContentFooter.vue'; }; diff --git a/frontend/src/views/Layout/ContentFooter.vue b/frontend/src/views/Layout/ContentFooter.vue index ef9d12074..09bbe1435 100755 --- a/frontend/src/views/Layout/ContentFooter.vue +++ b/frontend/src/views/Layout/ContentFooter.vue @@ -3,7 +3,7 @@
    - © {{year}} Gradido Wallet + © {{year}} Gradido-Akademie
    diff --git a/frontend/src/views/Layout/DashboardLayout.vue b/frontend/src/views/Layout/DashboardLayout.vue index c9a5698c1..90419c9bf 100755 --- a/frontend/src/views/Layout/DashboardLayout.vue +++ b/frontend/src/views/Layout/DashboardLayout.vue @@ -8,6 +8,9 @@ {{ $t('sent')}} + + Transaktionen + {{ $t('site.navbar.my-profil')}} @@ -16,10 +19,12 @@ {{ $t('site.navbar.settings') }} + diff --git a/frontend/src/views/Layout/DashboardNavbar.vue b/frontend/src/views/Layout/DashboardNavbar.vue index ad669c196..addd30e8c 100755 --- a/frontend/src/views/Layout/DashboardNavbar.vue +++ b/frontend/src/views/Layout/DashboardNavbar.vue @@ -25,12 +25,13 @@ title-classes="nav-link pr-0"> - + {{ $store.state.email }} - - + + + + - {{ $store.state.email }} @@ -52,10 +53,12 @@ {{ $t('site.navbar.settings') }} +
    diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index fac1467de..393a1ca61 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -18,7 +18,7 @@ - +
    @@ -47,7 +47,7 @@
    - {{ $t('site.login.signin')}} + {{ $t('site.login.signin')}}
    diff --git a/frontend/src/views/Pages/Password.vue b/frontend/src/views/Pages/Password.vue index 9b0c02813..4925e65cb 100644 --- a/frontend/src/views/Pages/Password.vue +++ b/frontend/src/views/Pages/Password.vue @@ -16,7 +16,7 @@ - + @@ -30,7 +30,7 @@ {{form}}
    - {{ $t('site.password.reset_now')}} + {{ $t('site.password.reset_now')}}
    @@ -39,7 +39,7 @@
    - {{ $t('back')}} + {{ $t('back')}}
    diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index be420a581..6601f85c2 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -19,7 +19,7 @@ - +
    @@ -74,7 +74,7 @@
    - {{ $t('signup')}} + {{ $t('signup')}}
    @@ -83,7 +83,7 @@
    - {{ $t('back')}} + {{ $t('back')}}
    diff --git a/frontend/src/views/Pages/UserProfile/UserCard.vue b/frontend/src/views/Pages/UserProfile/UserCard.vue index da764cfed..3f6e5e273 100755 --- a/frontend/src/views/Pages/UserProfile/UserCard.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard.vue @@ -4,7 +4,7 @@
    - +
    diff --git a/frontend/src/views/Pages/UserProfileActivity.vue b/frontend/src/views/Pages/UserProfileActivity.vue index 236116f39..e09a354fe 100644 --- a/frontend/src/views/Pages/UserProfileActivity.vue +++ b/frontend/src/views/Pages/UserProfileActivity.vue @@ -1,16 +1,7 @@ diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue new file mode 100644 index 000000000..525ea2525 --- /dev/null +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -0,0 +1,24 @@ + + + diff --git a/login_server/src/cpp/model/email/Email.cpp b/login_server/src/cpp/model/email/Email.cpp index 2efa473e4..c04ab417c 100644 --- a/login_server/src/cpp/model/email/Email.cpp +++ b/login_server/src/cpp/model/email/Email.cpp @@ -60,7 +60,7 @@ Dario, Gradido Server Admin\n\ const static char EmailText_adminEmailVerification[] = { u8"\ Hallo [first_name] [last_name],\n\ \n\ -Der Admin hat soeben ein Gradido Konto für dich mit dieser E-Mail angelegt.\n\ +Der Admin hat soeben ein Gradido-Konto für dich mit dieser E-Mail angelegt.\n\ Bitte klicke zur Bestätigung auf den Link: [link]\n\ oder kopiere den obigen Link in Dein Browserfenster.\n\ \n\ @@ -72,7 +72,7 @@ const static char EmailText_adminEmailVerificationResend[] = { u8"\ Hallo [first_name] [last_name],\n\ \n\ Der Admin hat ein erneutes zusenden deiner Bestätigungsemail angefordert. \n\ -Du hast vor einer Weile ein Gradido Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\ +Du hast vor einer Weile ein Gradido-Konto mit dieser E-Mail angelegt, aber es noch nicht bestätigt. \n\ \n\ Bitte klicke zur Bestätigung auf den Link: [link]\n\ oder kopiere den obigen Link in Dein Browserfenster.\n\ From dfe65cacf9d398080b4c6adfd9a16f7d6fced1ed Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 07:13:51 +0100 Subject: [PATCH 66/91] fix-#66 --- frontend/package.json | 1 - .../public/img/icons/icons-translation.png | Bin 0 -> 16591 bytes frontend/src/App.vue | 15 ++++++++++++- .../src/components/SidebarPlugin/SideBar.vue | 2 +- frontend/src/locales/de.json | 6 +---- frontend/src/locales/en.json | 6 +---- frontend/src/views/Layout/ContentFooter.vue | 21 ++---------------- frontend/src/views/Layout/DashboardLayout.vue | 7 +++--- frontend/yarn.lock | 5 ----- 9 files changed, 22 insertions(+), 41 deletions(-) create mode 100644 frontend/public/img/icons/icons-translation.png diff --git a/frontend/package.json b/frontend/package.json index 7f947a8b5..2ebf5c1a2 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -47,7 +47,6 @@ "vue-clickaway": "^2.2.2", "vue-clipboard2": "^0.3.0", "vue-cookies": "^1.7.4", - "vue-country-flag": "^2.0.3", "vue-flatpickr-component": "^8.1.2", "vue-good-table": "^2.21.3", "vue-i18n": "^8.22.4", diff --git a/frontend/public/img/icons/icons-translation.png b/frontend/public/img/icons/icons-translation.png new file mode 100644 index 0000000000000000000000000000000000000000..3f06d06909a3d38fc34298bbb318997ce2c73017 GIT binary patch literal 16591 zcmeHuWmKHYwk_`NPSZFE*0=^~T!RG&5E^LQX&i!kaCc8|hoGUcKuB-jy_Ba;t6neb+WXvhXP>U&QJi<%f=D`!E3QP$0m(NBrf#+oWvjH zhkWD+LzjZvrbYk+_4vSFa7V1{jXjI?UtTve|Ihv zeR0ntc`xhxd0~#5+~>2fHTb)C7uU22Io90``c=EsX>ECvp`<$GX!r8+rxoS3!-Yas ze#Fn?)3BN6Q9n>lJ)L{LzQMnvlp1%klG%-b=SzYmt!3LzTX)Ci2J{nFtCN57aGcL@ zEZwbeoIdgARUR7q5iTUjZTT|b=kX6NfA4#DX}9$2zT7^)?(;WSnZ7roxo=l@t87OX z#*TbGJ+^tNcHqEq#VRSR|JAuW?MC-H_quKQMeK{2wJzdhZn5LFIoOEzCs!lbM|aQV zcePV$;S@i=dDUILG-K;}Ci`V%%oO)q)c5T;?!quqj&Io+LT5Dr^f4V*4p$yix{jSR z`4@39B5lDF^!NR>^xUvGqZN_o`R-`ktCpX9bU~rJwnsI0OhJ{O$~;D6fJe; znQ5&thQS=yQD*F0A57*n9ar|!G(8_&fmt0l&gQH|Tc>xZaNg!+<;v>jl{TB*;an$A z$?+d&jIV?zhl*c`F76RuWxBl1w91_MB>3a&qsPu>+q!zj4wuJ*HBFo9Vy6vD!VEBmLJe7Dl=aMu%Ycq1&%i zuR^xpEgcK#Js%dFLUZFR;h8R4l)C;>c=G5TIfnJs=0PU=Ea>w>5Oo@*p^LDsZ?I+U6rtcK*(VVFXaE#|(j?&y5g6a?*XL!Y1IV!iV68GAFEslR4|h2dwkS|9%O zr)43Cy(M?=rH}-`y>a za!5XIv&%24%=l)%8gph2WfeaLy7@nYoT-TulB(eJW?G7hKdrcp&85uIdA+3e%1k zl$4rI6Hk)GM7xW}SKy2`yX4r=st&<(klj@R602(OtC~0qDMLs8N~9qCihonFkt_Z9 zJ%hh>hd|C7PiumhHa&;* zZayZQg8t;ozP^|Vr33=0v3@`Op6kI%W$jUT&$`ACSS}p)sc7cwEAI%lXzU?GQH^1) zH14ta0ob-Ny$Po6xl<8Upm60H)b-NUlCd}B&Rqje?TQLxw|I@%Xp(-MoFEZMyQfc{ zu3xpTZdX6wl^EBShI}e|jjyGFC~=(<4FqJQqS9|Y1`_CuXm$?0IW^{+qcCm%h<$+$ zp?rR+{!Y&j@bcjCCJq;A93smZMFQcL%{77}?E0_{{OBaE7$NYSKm6?#<^OoX?(9YId0GmEiszsnxf^gyX=h zSl>;xN87RlK_=J=9}x&K3G=WlVw7Ji_g3i>kCDgq6K^)_Rtz5L3MBVJ(e@-W2Qoed z9r<{$+l4*-$^rmMaqx?Jub83~Y1FrQl-Hpjh6+|JJIJ0GgmCHKIQhj;!HmK?Aq<2;?J=P@u^W z#15lhi~{caJ4P}H7$D!JfkH`{cT)bMFle(edJ1gtCx_src#D*X1-G8p=LB} zxpgu$Y5w_KO)O#F*SIC)Q&(Y+Pzl7XuH|_6E?O`b!CIbQ`|;@6-L{4W$oWE+WhLR8 z`)9X!T#gMQm3fO4B}!@nAxSZs^8=>DMff5?r?`9Qvjf|-RZyPMt|tAFA5YU+hHG<@ zN!u7wohV$l10d`h6zF9q8zd=FrHoZbcFDXDQ;8EV`~v61i7@V=^&3|I9 zqecMFJ*%=5ZO-14_@i2^|D5e%976RC2FHnGU;|hT94VGepH|IsCPik_csde9Z3cZ+ z3nYM_5n)cv@c1(No2`Ll*x$W+Ps20qibj-uM)UdD%bAJ*JZhZYuf-ite|r!?!pRmk z?YzoSK!f^bi+t1phWqpEo3c*}h05Itv9qtgFwig*d#qShKj*iJ1vIw8iG!dSi}XDSvM_El#AzZ# zr8<_-97uQF#Z4%~OI3jtj_%u`SLF;lLq3=4XCOm5j@m#9!r%i_JWkGjZ7~jFcePmt z0H9~H0{+O0N1^mdNk#m4Ia^|wHza&Jm{h<+Qo-R9tausWgdHhnUZ-9pl%J|uZ>rL> z!CH{5zF6Hl21_`Kpq6qtJ$5w0i;zoUGg1$Oe^lN>h)8&C$kUj6bIU9dh$ zw!lb`OHC?C=UF_pTQypBKR$_JYiK^4dNI@w?V7c}>>z<6MqHyIE0n&8!iSj0Rr8&~ zeh)oDE3eWwMJPp5Wc)O(=@IhT=X!iPvlRZs7!%9vGt=ioMDUhem0-udPZ9l}(Cp_V zKRj}xO#%aXb7EtpIyY_KN2B)9rO6RCBDB)cQ6>yHyYdsPCi-LX_YVfmq7G-WO#?Tu zwumCp*2H3snzo)3_u-wP6Evau!9)mw*0}J_Q)PN7QFUfEarD(M$<~>;y~=2U1dE-_ zPEoGVlg+PDl$2DRT3#K`Kl%`e%sXb)nJ(nEf{A}!eDx$W@u}GBbjh$R6ig& zGG|hf1cyr{h4@&@8_zSi0N0CPh1Y00=ddD-K!^ghqfNy{KsiaGA*1rOxb0`|$pNCC z8vD3b{~Tf@uNY9s4PXr85<=ESi&OInNeIb4-sgo#h7O|@pn8|L)-TbU48K+&f6W@{@ z#L(VF{oRA(6Q;;y@TSmvmI)Nu*;M{-Ue%L}_T#kFcBJI)0FZ%P=`bUm=nBXylR(KD z*AHizNXLP=-n+sSd79+sXY9$YqOkhpZ5AfA1_qgay>fkQV^+fLA!CDSfSHO{k^IvI zts5$nN}HgUQe?OMXisFM%zXG6dvnSKUNeouOm1-oTvv7!0qL}LG3l9?4 zv0^PfkEB8v3dSs5$o*tlV< zJE?dB#!vx~OhCjJ&xr&fA6w#ASM1$EM|EL0CNE`Uy!Q{D-Bf$anq(d81~h(;3f%lS zcZ?=-NHkUbHhn(zE?mtxb5}8^TBlIlQ?O0AEz$TTT(-kGT2W(CGIeLoy`$YL;t86nm@6s0pCn5HF!peU zIPn%CN^JO~RJ{I3Eo5|~R;Fg-*X8AI%_bk-jg)1@;$>72J%KU3qSVfJ!;g1LCb}+S z3^)oV3feWb*Qn_sHMqw?ZBNCNT?y&r?PaW|ljrKH43+?|9>{+nD5h}Zfj*Vhf0_U6 z0NB}#j(!-eojUO;-7Yx1_}h@r(13B)V4-Fz?YjgD`bDCjs#CaO=a}prY3+6%vOo?diafIFX}KHD@UkptUa)TWDVy0bw!-y(4fkboa`N_u+h7p~5(HgG6ckVvl`iv{75Wsonf6Ur+NpUS-F3LT&nv9lxX>5s4tW#IxITDmjP z0g)8|ucOHQ3US9oDXwjwCIvS~D%7B$GAKrZGLFwI#4yCbyR(DN1+Ry>07wedsy-+|`*EFLuwavjKSnR@=( z!%g4x;&MdcbG;@TU8=5>=0;p5+mpxOk^b1ip*}N?tt}l=u-QIF3_oD8#LoQM+e)1J|V2I~k@6I`cx zjN;-31&+VK`27n>pJo`ckjYS}ixBU9;436~`w-c8R@x?v@*fg%nIVbkm(+7=a{BMZ zb-jBLGmkF&9-D$Eg2@qHeE{PIH?OM`W>op*y_(3%rtMIpL ztg$@xC&d_VQHhkY2Fy}cY6m2Ry{^z`*knlJChyl)LvbNdCM>eSq@#~y`iZJ)UmRn1 zs6_}zdl&b5xV73utOb6Vc%tQH6>`HtyI4(IgEN6tPBv+imDdxULd>6XYwwa2^_&go z3&L?_V#ANgJeKruL|tCxV?J`-68TK(W~o_FeJ}QzCX1LNZeE8wzb_SW{~+lUQ=k&N zwoOkmW+#nSs_-&*ScnJ=Dl20!Qie!KsY*1L2C*)S|*yx1-+KD$`SPz-*bKv)G zLRA%7IjMPrR@DJceG}4)L|~6(x?9BnzSaeRw48>aO?}HQ;*--gh$fn$e4$c-_iN_( zJ(qx9vs%OxnetPhq6uJWsZk}!gbhudC{@Gtu$&NYzWhUG^ODS0WsdSbGQftEhg|7W zGznA2&|4J$UDDhJBupZ#HHan{6ciwC$7fo~hy@grC9O77`mj#8B?19j(o({br2mj|+hH!X|^hb=-Nw8oQkwsn{>a@Wj(dLgxbB56nLdAN3R{U7!l$RHEe-nN}rOV=f*yOXC$@a@H`56$C30 zTDxhsfS2+2d39Kv>^5$F<%zPR;U=YWHK8)yaxe55$732;G@Fd^tWf9_F^rW6G+_+< z!l&YkLAq}M{cuTJodY9328R$8(@R`l3r@dhSUvd!0c%xMWPa8CMtvH)XvSSFR^zGH zOA{|uE$lFLyLyDyl+qm68sUuDB%v0ceD7M<8emYE1d76$cgqgC4YI=PO`wMTvopbL~ zUBn34W06;2LZ1!56Ree$wZ%F{0ZXqhAx$%vC}NN-$rrpvLPkjbZ5j$^#d+(yPiZkI za-qol{5t6LHbZC0ihFNA?=|^%Y^U|DL#iB@!5H%~tYwgxj{v)>FOsDK#XhdL4ooru zw_xG>exZ?7g3%{m)Xs%M&#(N>GXo)L!?Fi#43*^xxibgbh9vpx%ESvUEc(6GO&wV1 z#)~ceKcZXo8;2t$GQuDmgp)o3Z+n%3PHrHwor)M$EBT9oS;9ke$Ow{|;^D~v2S3W! z6)2NbFi)>HTw0Sg?W7WXKJ#Nui=lxlz`-ujJRV7VXcdu*`?6HF?BJR#=5-WKn~aw! zHs03|c)J5_mnXm4%(mEfeNv1Ie~k*(ktK$5&Mw7I6s-xuRWpJ#H=EyS6ft?<%T%xx z$wC$n^%M|7JUlhNjMk8;*>_62cqOzwPYv-abzlun*Bx17x2vgPe~;&kob(Dt{Iw($ z@Q!woq!ejxnjTB&oTai4`!!MMoL*uWiJYvoasuHbV&GG@$+3eMv9?cj$u*wcz_(GF z#}4cTi=^ilDz2|qhb+#+qTj!6AhvjPo>xJtVMT6_O&@MXbeC`-sGs**LK_yxMV=#a zpbkb{mkJ6ccN=u)4u>9pk0JAR*IuW1x=f~UvB){aLRVHRUo2-L{<<8k1Ji(_75-)p zl?pvfHt-1`S#%Yw%&{QUz?^|7*@7hGE`lLvWhL=RMmFd5m*mnE5}l}?Q;!!1h+j5b z-`XH6QoX{|fbA{Ho>gw63F#6Wh`mp|X*g7JU^yQ3tn7A_)2F*>FNEa`%aM)HIlkp- zD}s`Fcv6TLCre9gWDuNR*~^knSxNYvY8>WhznRdgLjInYia4W#0Tu}vE?YBA#&ntO2ZTms*EcsE2?L-$uAkf60ep=jbxfyjbqb#q1OXy z&&*3T{Mb>9!3i%ItaOG1Qvk)A?zME9`xJ?r1EWLNzd0m$6EA-<_0S}~m4cS%$E7H} zXU1Xj(2W}u_@Q`ggA`O3T4J&GsPH!zKcm#p1$%Y*T#5W*M}Ku}Vp;^gW&zoH{4pwpG8FEb>4b zNC-xWdM>q5L&#Mlk;TaTY(`BHaEv+C8^8vU)Ud zXY*+GHo~`_-b7A&`rsYt8edLygFP9AvVo%m9^^qH6#*=&;f(C?o`CC@Q`e34Dc|f3 z&F5k;k^A(9{3y;lf-;8ni#ILs>hCM@zsFSr2!zEIS5zPduh|*n4Rr681JS0^<)?)L zNg4|rEX0K?1h=H0%*XbX>mV^N2)GP$0y(*6o3%Fb=n8#Qj#T5sqfaSta^#3rTxh-C zwl3>DX&ILtabFalsz>aE-?O8QXh>hb<+Xl^)!Q8_eJ)F2#+s{%QAAfS!=K$-R^&6o z@&3)b?_u6Q3Vmqb)mMSEsa>(`e;g6f8Rsxf&Y10Zr zJ_4_8cU2sSf44+3o5@zVGvaALYz;?Boyp@A&B{KVz2;&Rjc$7GT~)k%Twg7DvoM5W zJLY*{$s}FT_OgNj37w@w-vMCnK9T_Ze8A#~OTP9&#n^>6_IbQ!^cN&&P*r1g|C_WH zHkVR78Whk)w5BJM=#~*Ji`?a0WrN$#5NEYL9*{X0OA1U$zeVaX980j8I}eV0=U$f9 zk&5n!6LOV=Jvb%z<|_pY!;b?gbUgnkc`3>IgOST2tO~e*&h;X4lXmxL+IKCo521|x zGpn?=MGGjC@U?JclS?$5> za`BdWP|dj2a}!;Q+&}ll4WXaUG@~0GbIz1X)U9WGZPM}%d`FvC`=T+P`kvHnOa1Ef`bJp zvrciCp)5#K9V!#h_TN$~7um;{MvS3jtZV>HKPsCY_UOfk?KBSbfx&dAP`GM;+Fl4^ z+c;X+df*>#WY(=lsZ$(iuwV){i$flX>o;t)#L$qVO%zGK&YJ$D|LCJ>r{O?BcJ30I z?-Hc7Q1rcN@)}O!vy)6AUlEkix6R(sq<9TBLcP?Gy{tt@X))}`pMdCUNNrgzw|$dN zQ}cA_o&WV@Oh)pD+V>-z6WN*&6l*=!7zK<%r>t+((*tOY`Ult*IQaN8<%E6;I$Uju zU~4e$B;eW3B+x+NIsL+#)KHu?@3urdz*;ZBa!dJu6e<RO*AGY%Zzpfi2kt#x|gNrYa zel@B0m_uH*c*uQ->G0J~D4tt+frOYI;__QjjCNaXYSLH79@=5Er;eRrh;+Fe-j=Bv z6}HNARSiwOvEHP-|O9{n8oVMYiS13MmBh@^pF`1aB8OTx+lq zOV8AzPa`?Y*2Nd0=rb$c-Wu04!}a|yNR!wvq|$(OJh5{Nq|J+v#xlQSO%h?LxfP0< z8d_ARi#0^0mUb9V2q3Uo4}ma1BGFkpb62D`eP&_6dAvwlY|Fw5eQDf-Sl@KKTQscy zqRICWNn$!91AHvDLrDmw7kP*_)?Q1(uFo?M(Ug=aC1Kbk6 z(Psn7HTGq$eUTOK(3^RMuR_3`M*$!Lwo8hjMK&pk9RS>k4xA+u&}@`@+(UDTNbuGm zOv5iUF#;o1!2w8{&S2bL@J4>RoDZ63BwR{?MU%o`+yD|{z_xbN@nzzegWTK6!SC~M z!oFscIO~UH%nnwR!bcYKSwd`_ygOF=EIja=2atQc%0e`rapu6MHjh7Ee9N)dNq^ri zmsI+$RwcTC29H8Z=&5%7g`;pTbi4fkNlT?^R7hntyWkj2iyiG*`5}VtBip(6<=2Zd z!RX{zCSvBSbv~k+)$hqa;RaQ`yDX@(%6n8IxY z;k0_h{U$&!@sZtI2(?TntL_Rx2bn1cN3iAbf;2((u*cW*YQg;Ed|5eL4I*YORP%BJ z3FK?Evs_3LiThB4y@SE7;yeo*MhJGVgoWwA&*V|0HSIa#6!s5ewyRS&_4XtK75zHz z$*DgT9%6tIP-wUd@)qX>zixe8FRZQIc@xk&z788+mT|kC>PJB}(>+5xMj~PoPBzp7 z#G`N)NXT2!x>NW&(KdCN6x_v>e3mBzqjP2nVp+j7!N&-D1*n#E2c%Qd*o;kz&pT?I z3o=d7Ok($IL&*A8jvK&SjU4Z0sv>mDHvF-{(zI(#^kj3b3A*RmW|S&pn3{9u5vaB* znyh1Jb~}oq2}M3&I~vD>>@;znZDVA z*7dOOf2_EuNv0{rx(c3=ZkH*sR&g+T@pVl`$F|5TS4%HM~=2|t7zRIJ&-Xb+AP$hbH-zE4CeV-};U7m%# zHu0zKaATKM|N6UK@7AscEQ;ihNw2rfEB06EKJ(RjP04KVeOytdNhtapPO3d#KjqS~ zF#Wd8Y1LCxk3Z0HGMu2Gq>=Wm@vZyH*n#Uct}AT-OOAV+zVo5@X(K@sXMtd|d`9+k z^M}$DH~Q(i$9EnZ;v371J8!?~7ahn8Da*(hUS>!mDNU{5O;3%qf&BJ_^YBV57;RNP z0gjuO0-Xxo8uJDixiQ(LwPwapj)T1Sbt*N;*X7q_ljJY zL5Y_cSQ61vRz0KRl%9_Z)RFxFxxR5n%3jBr1fl1z^RSiB$`PgIF!usEPnux1`uJm! z0vd0^VcU#)WgfKesQE~6<*5sK+BRq-v98w@0@0_Y*Fh;+rbwV#o!3@}QaU=X_bNUy zayHq#b02?dB|#{_P%#=O7D&5;D?a`W36C~6Zkw)GjF#1T8#J6vBxl}4DjJQ2W4CRY z>Zc3UXHt}S68y?&T9c$=lvjV?5`2CzY%oL5o%nExptm?EQ`C3SSS#lpT|&Vdz49-m zKWkXdemr{}8YjnrqEnQgOCEtX_8VfJe7&hw zz^1X3aF2UqV@`|1dQwD}0MgB+TQqEom7MU9Pz?Xj$G~S8pexbBEdE(2K^*g5lSKW_ zroMMe)O10Y)lEfVHmkkA>DfX0;PZwcY(m_FO?RIngni!?^f&^#68emiyh>-!U2{2y zjir3>7c>?{JeL(NT%%_SES(PXn%WV!tDp1EK`ArxTRsw=D13$8xBe$XACYX{ z^Q~*v?#8_e915>wZ+_9DL8WCl@t&$huR~4R&?(jKG|#qDv%3gclfrno#gXwDaV*kXQslI|*pBp}E<%27t#%}e};f@)9$BAcD zJ2x3|Z!`p!RDRe~AmV)$FDx|PcsA$o_T7f%ffw!T4ytE!%VI;iN`utTySY$I|^P#sshGK2RqkRa2=FnW93`Eyr5e1bN$uAK)L2pCQg^U<5yy|zALZ!7VSh&1aeE>FqW%a6X>6z zG-+rzij7uFxB?FxJE=~JiIWV*wl?BS6y#46mF~I)pvS~$0{XLM(5~fpMXP)eJgm}Ht|1@a!(mQkNu5iFi}bi8DRp-V zhhrc0u|YG-PaC>+f&!+>LA><|ww#NcZh7%Qg}VA-X8#ox-;9B)O8NXj=e0#W4HlQT zH+eCDMMO^3#GH*xzoOpMDW9avXRbY#RxM(IKc$30)>RND5`jNDbY2 z+AgrO_?g(b;)3mZdg2EvLShjSO;@)nz5qd)oy^^!<7+%}$ua4Fsnxi4%Bjmky*6z4Oum^|+%G%K9%aYb)TDkRb% z8YIyz_6wMWhMkjHHEWqy`+g-4KVKXM&Dr1qqvRe-hayl4q&y7@6RxIWXPIouKRd%0 zewkd}~L+|boz$V^w)DlKSd13#<90TJRX{6mDfPTs290fxh`I+I; z3kQU${F1pP!y}BnB{Z&@rL0bLqZ5P)R$~y80@nBiITri}rN1`bUN@@G?DC4?4`F`< z(6sIWny@fRcuY#y$(NIp(Um)ise@DWdQDe&qr=(}0s?-F&BL9#`f948=1vY=5DOd}=mr98EF^%>1k`xcoMoZbHi|y3P;DP| z9djQ$a}f*R6G<#_FVP1A2Pg~z@N%$sbQATG0RH9`efa*Xni~lC4T0H70QJ>00kTf6 zPyjy{KNk!q;$IMdrFH}m7ZZL?W zIrJCR138z?0}nq$kPpfuV!y7 zO(h8+h>PbRHJbJin5C1eg9K33#?jsD9}PM-4p40vbJ?SX%T%G%!9CyU%BzX{JZ{P zETXcmPzcP)RmaK6UIO^5uYg~azf%ez{%5j?sydnfHvA2STKvklKQm4SV#WQtD9-&~ zf&T-OwzZR|c7I=R|uxN4Z$Ld{|SHP3$r{yUS_!&>JCbM;pGZwB?h z;l%$4SH%ZgCs*&k_}7NI{89R2L9(~`EfoOpdl3+YnExTa8^q(!Kzq>fk0x_#h@%zs zVYU4;)&5p*^Phz=p8$kU&;r6~&I9Fp$OImKPKbpNl+yxa$p;dFLPhump}!~i@9b_) zmM~968*Mj=D;feoR za@5pB|0;m^uO&%T=~v`wyE{AE+dy6aS(v{C%KriP7yCbh^1n0xE9?(zStn=jhorTJ zX?QyRm+t=);2#XCHs(-AH>dxq>wks(AnV+sVJA@4w~xw_N{{0{;^D-_iANx&9>u{w46gqwD{fTv-1&VM84se&~5V zoS*e`J1HN|-s_sGI&ugIf%o_Kzt7_Tzu(Z&(ed%|2?z*iX=&-{=^uv7&CSij!}H|H z6DcVv4Gj%VP0bfCUYMGiIyg8uIXO8yI|l>=1O^7i$HylmB;@Dk7ZeoK*4Eb5)pd7w z!{P9;v9a;-@zvGUwY9a=)6=uFvxlLz>Eps5MurH}QrAY1+L?d&cQ68?nTi4!Arh5V z@u7g}tZ3kdfPhW>>xGDrl|%7Ri4IdzlSAJ|ra(i)o+PPPMnFJeQ36ZrSg#x}?k5!k z2oTnWmMoI1aVIij-}7O8z2k1;$O|0zQa#qe4R}qI>=&&z1!fVPg_OhU&ii72?=B(sh|C@^4bT!!B`PM;Bo= zI&{F>R#;Ax@46K%poBDsa02a&qlA1%k@&p|gK3N^3T8QVoJtE}51(|{^f3{sy#Nps z8zbLk0SnA*O~6pcfMG&2RW3Lj0T%@7rweFJd2I)Eg(9F}Orm(mj9ND%fK$$C^y_4H zaE$7}mgmcq9P^A_A>%VHc;In-U^7#11Y@hDjMf-k;mr@ZK*eGFH0P30mnzle59zUr z`7cjRnW*D;d6Rnx%6;7!|zl!-QO*(RYC>WF8bSI878 zR~HX>u|l=g(jCQOm!60aKyudvHMGZW!q^gO%2ZBz0aF0?_ZyYiofg~!lIaO$VvW=r zKesapz8)z@7q<9gk^>oy@qS*2un982(zJESfei63Bxu-~`bRZIZItWRIG0(mgrrFt z@6olb$oBJilv!uI-Sl)~ZY`59KGurV(R|?+QNmIbS6jxGu2ML_?oo|T*eBU4=Zm2$ zH$N`cxEwn%PVe3_j&Vqk!FfTsKN{3N#TIE#fS>zF0_4H+;TA&0^*EtDKVK*QQ&G|P z&Kc<{>AhOf=7PFuh7A#(?Ta$$JHhU!W?KPdiR4uXM)IJ%zDm(v=XRcMGHeV)poQ?5 z;CfgE6kq(bM5zOwfZl%j=7r>9P#Pbh(vJzc=ttU41Vm%sfrFcHl~Q1-|6qPK#Wq0+ zMUvJW!+z=ggieK8eP@z3Vgi;5D#u5omk#CnC8`lCH=nEPyeyfd^y_aGcAmLbhpTd? zlk%2Sa5Lab*XH0Q?~jvA6=N|pZsg>Aa|F{{UGDTO-14$XQLa_9y&PJH+{w=)R289R$~7)hwVW3?Zx zzlS!5T2L-IIBb7yRPLvLhc8by7vv#}whki!Vd>pN8l}KJv%HM9J;S^JQAE6bfL77+v`IdyQ2jA`)y0-wsM&;S4c literal 0 HcmV?d00001 diff --git a/frontend/src/App.vue b/frontend/src/App.vue index cacd67568..dff1e26df 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,6 +1,13 @@ diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 153f68808..cf52833bf 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -11297,11 +11297,6 @@ vue-cookies@^1.7.4: resolved "https://registry.yarnpkg.com/vue-cookies/-/vue-cookies-1.7.4.tgz#d241d0a0431da0795837651d10b4d73e7c8d3e8d" integrity sha512-mOS5Btr8V9zvAtkmQ7/TfqJIropOx7etDAgBywPCmHjvfJl2gFbH2XgoMghleLoyyMTi5eaJss0mPN7arMoslA== -vue-country-flag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vue-country-flag/-/vue-country-flag-2.0.3.tgz#f644d8f5150a97f473f0c13e04622c6ede37d1de" - integrity sha512-QZM3hNNhnGU+G1qnpq1BiICE4Zh91UA++/UpM0go8XbxkVxTiPy4asWY07vL/3PtW8M69YqWVbhwG13rzvNwkA== - vue-eslint-parser@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" From 5d37e67d50ebd2cd57e7f234c9adf2f7807c3df3 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 08:40:09 +0100 Subject: [PATCH 67/91] fix lint --- frontend/src/App.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index dff1e26df..1c4389c91 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -2,11 +2,11 @@
    - + Deusch English - +
    From 44fb453f9c2be64b2985c0ffd7e3c68dcc531065 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 08:43:38 +0100 Subject: [PATCH 68/91] fix lint 2 --- frontend/src/store/store.js | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 0b62468fb..e53dcedb6 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -4,7 +4,6 @@ Vue.use(Vuex) import router from '../routes/router.js' import loginAPI from '../apis/loginAPI' import communityAPI from '../apis/communityAPI' -//import CONFIG from '../config' export const store = new Vuex.Store({ state: { @@ -36,7 +35,6 @@ export const store = new Vuex.Store({ } } }, - // Retrieve a state variable getters: { //isLoggedIn: (state /*, getters */) => { // return state.session_id !== null; @@ -81,24 +79,12 @@ export const store = new Vuex.Store({ // Asyncronous actions - used for api calls actions: { login: async ({ dispatch, commit }, data) => { - // console.log('action: login') - - //axios.post("http://localhost/login_api/unsecureLogin/", - // {"email": data.email, "password":data.password }).then((result) => { - // console.log("store login result", result) - const result = await loginAPI.login(data.email,data.password) - // console.log('result.data.state',result.data.state) - // console.log('result.data.session_id',result.data.session_id) - - if( result.success){ commit('session_id', result.result.data.session_id) commit('email', data.email) $cookies.set('gdd_session_id', result.result.data.session_id); $cookies.set('gdd_u', data.email); - - router.push('/overview') } else { // Register failed, we perform a logout @@ -108,8 +94,6 @@ export const store = new Vuex.Store({ //}, (error) => { // console.log(error); //}); - - }, passwordReset: async (data) => { console.log("<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>", data.email) @@ -151,18 +135,7 @@ export const store = new Vuex.Store({ //console.log('action: ajaxCreate') state.ajaxCreateData.amount = (state.ajaxCreateData.amount)*10000 const result = await communityAPI.create($cookies.get("gdd_session_id", email, amount, memo)) - console.log(result) - //axios.post("http://localhost/transaction-send-coins/ajaxCreate", state.ajaxCreateData).then((result) => { - // //console.log("store ajaxCreate result", result) - // - //if( result.success ){ - // // TODO - //} else { - // //dispatch('logout') - //} - //}, (error) => { - // console.log(error); - //}); + // console.log(result) }, ajaxListTransactions: async ({commit, dispatch, state}) => { // console.log('action: ajaxListTransactions', state.session_id) From f685b93c07f13e28e1890eb06fa24d0fbe35976f Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 10:41:56 +0100 Subject: [PATCH 69/91] fix add-login-fail-message --- frontend/src/components/BaseAlert.vue | 5 ++++ frontend/src/plugins/dashboard-plugin.js | 2 -- frontend/src/store/store.js | 13 ++++++++--- frontend/src/views/Pages/Login.vue | 29 +++++++++++++++++++++--- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/BaseAlert.vue b/frontend/src/components/BaseAlert.vue index a45139aa1..33567682d 100644 --- a/frontend/src/components/BaseAlert.vue +++ b/frontend/src/components/BaseAlert.vue @@ -40,6 +40,9 @@ components: { FadeTransition }, + created() { + console.log("base-alert gesetzt in =>", this.$route.path ) + }, props: { type: { type: String, @@ -64,7 +67,9 @@ }, methods: { dismissAlert() { + console.log("sdddddddddddddddddddddddd") this.visible = false; + this.$store.state.loginfail = false; } } }; diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 67b161292..fc9e5b71d 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -37,7 +37,6 @@ import 'vue-good-table/dist/vue-good-table.css'; import VueMoment from 'vue-moment'; -import CountryFlag from 'vue-country-flag' Object.keys(rules).forEach(rule => { @@ -59,7 +58,6 @@ export default { Vue.use(VueQrcodeReader); Vue.use(VueQrcode); Vue.use(VueFlatPickr); - Vue.use(CountryFlag); configure({ classes: { valid: 'is-valid', diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index e53dcedb6..cc3714fd5 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -12,6 +12,7 @@ export const store = new Vuex.Store({ language: 'en', sizeDE: 'normal', sizeGB: 'big', + loginfail: false, user : { name:"", balance: 0, @@ -55,6 +56,10 @@ export const store = new Vuex.Store({ } }, + loginfail: (state, loginfail) => { + //console.log('mutation: email') + state.loginfail = loginfail + }, email: (state, email) => { //console.log('mutation: email') state.email = email @@ -88,11 +93,13 @@ export const store = new Vuex.Store({ router.push('/overview') } else { // Register failed, we perform a logout - // console.log('action login to logout start') - dispatch('logout') + //alert('>>>>> FAIl LOGIN') + commit('loginfail', true) + + //dispatch('logout') } //}, (error) => { - // console.log(error); + //console.log(error); //}); }, passwordReset: async (data) => { diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 393a1ca61..7ae741057 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -12,7 +12,6 @@
    -
    @@ -20,12 +19,11 @@ -
    {{ $t('login')}}
    - + + + + + + + + Leider konnten wir keinen Account finden mit diesen Daten! + + + +
    + + + +
    +
    +
    +
    +
    +
    +
    {{ $t('site.login.signin')}} @@ -67,6 +86,7 @@
    \ No newline at end of file From 7becc6b74e44318c4de258aee1e4ff48d9fd50ae Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 13:54:49 +0100 Subject: [PATCH 72/91] font size x-large in textarea --- frontend/src/views/KontoOverview/GddSend.vue | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/KontoOverview/GddSend.vue b/frontend/src/views/KontoOverview/GddSend.vue index 6516e3718..bb9730a3b 100644 --- a/frontend/src/views/KontoOverview/GddSend.vue +++ b/frontend/src/views/KontoOverview/GddSend.vue @@ -42,7 +42,9 @@
    - +
    + +

    @@ -105,7 +107,7 @@ - +
    @@ -213,4 +215,10 @@ export default { } } }; - \ No newline at end of file + + \ No newline at end of file From 5cd2675c62bfe5646e452be8d6cce7ba61c39667 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 24 Mar 2021 14:19:12 +0100 Subject: [PATCH 73/91] fix-activity-fix --- frontend/src/App.vue | 2 +- frontend/src/views/Pages/UserProfileActivity.vue | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 1c4389c91..86d8a020b 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -4,7 +4,7 @@ - Deusch + Deutsch English diff --git a/frontend/src/views/Pages/UserProfileActivity.vue b/frontend/src/views/Pages/UserProfileActivity.vue index e09a354fe..4346df68a 100644 --- a/frontend/src/views/Pages/UserProfileActivity.vue +++ b/frontend/src/views/Pages/UserProfileActivity.vue @@ -2,11 +2,22 @@
    + +
    + + +
    + +
    +
    +
    +
    +
    community @@ -45,7 +56,7 @@ From 1f13507eacfd93c2248fb841de5f481c9eb1e6bd Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 24 Mar 2021 17:12:12 +0100 Subject: [PATCH 83/91] setup eslint with tougher rules --- frontend/.eslintignore | 2 + frontend/.eslintrc.js | 31 +- frontend/babel.config.js | 12 +- frontend/intelij.webpack.js | 4 +- frontend/jest.config.js | 61 +- frontend/package.json | 13 +- frontend/server.js | 6 +- frontend/src/App.vue | 163 +- frontend/src/apis/communityAPI.js | 67 +- frontend/src/apis/loginAPI.js | 48 +- frontend/src/components/Badge.vue | 74 +- frontend/src/components/BaseAlert.vue | 87 +- frontend/src/components/BaseButton.vue | 34 +- frontend/src/components/BaseDropdown.vue | 35 +- frontend/src/components/BaseHeader.vue | 25 +- frontend/src/components/BasePagination.vue | 21 +- frontend/src/components/BaseProgress.vue | 122 +- frontend/src/components/BaseSlider.vue | 20 +- frontend/src/components/BaseTable.vue | 25 +- .../src/components/Breadcrumb/Breadcrumb.vue | 13 +- .../components/Breadcrumb/BreadcrumbItem.vue | 4 +- .../components/Breadcrumb/RouteBreadcrumb.vue | 40 +- frontend/src/components/ButtonCheckbox.vue | 49 +- frontend/src/components/ButtonRadioGroup.vue | 79 +- frontend/src/components/Cards/Card.vue | 106 +- frontend/src/components/Cards/StatsCard.vue | 57 +- frontend/src/components/Charts/BarChart.js | 6 +- frontend/src/components/Charts/LineChart.js | 6 +- frontend/src/components/Charts/config.js | 141 +- .../components/Charts/globalOptionsMixin.js | 4 +- .../src/components/Charts/optionHelpers.js | 2 +- .../Charts/roundedCornersExtension.js | 22 +- frontend/src/components/CloseButton.spec.js | 40 +- frontend/src/components/CloseButton.vue | 11 +- frontend/src/components/Collapse/Collapse.vue | 9 +- .../src/components/Collapse/CollapseItem.vue | 12 +- .../src/components/Inputs/BaseCheckbox.vue | 132 +- frontend/src/components/Inputs/BaseInput.vue | 276 +-- frontend/src/components/Inputs/BaseRadio.vue | 89 +- frontend/src/components/LoadingPanel.vue | 4 +- frontend/src/components/Modal-OLD.vue | 209 +-- frontend/src/components/Modal.vue | 154 +- frontend/src/components/Navbar/BaseNav.vue | 59 +- .../components/Navbar/NavbarToggleButton.vue | 2 +- .../src/components/NavbarToggleButton.vue | 6 +- .../NotificationPlugin/Notification.vue | 336 ++-- .../NotificationPlugin/Notifications.vue | 75 +- .../components/NotificationPlugin/index.js | 12 +- frontend/src/components/SearchUser.vue | 142 +- .../src/components/SidebarPlugin/SideBar.vue | 253 +-- .../components/SidebarPlugin/SidebarItem.vue | 32 +- .../src/components/SidebarPlugin/index.js | 12 +- frontend/src/components/Tabs/Tab.vue | 6 +- frontend/src/components/Tabs/Tabs.vue | 36 +- frontend/src/components/index.js | 44 +- frontend/src/config/index.js | 28 +- frontend/src/directives/click-ouside.js | 4 +- frontend/src/i18n.js | 47 +- frontend/src/main.js | 19 +- frontend/src/plugins/dashboard-plugin.js | 48 +- frontend/src/plugins/globalComponents.js | 26 +- frontend/src/plugins/globalDirectives.js | 4 +- frontend/src/routes/router.js | 31 +- frontend/src/routes/routes.js | 85 +- frontend/src/routes/starterRouter.js | 20 +- frontend/src/store/store.js | 178 +- frontend/src/views/AdminOverview.vue | 537 +++--- .../views/AdminOverview/AdminUserCreation.vue | 489 +++-- .../views/AdminOverview/AdminUserSearch.vue | 394 ++-- frontend/src/views/AdminOverview/default.vue | 15 +- frontend/src/views/Dashboard.vue | 204 ++- frontend/src/views/Dashboard/GoodTable.vue | 201 +- .../src/views/Dashboard/PageVisitsTable.vue | 144 +- .../views/Dashboard/SocialTrafficTable.vue | 125 +- frontend/src/views/GoogleMaps.vue | 207 ++- frontend/src/views/Icons.vue | 1302 ++++++++----- frontend/src/views/KontoOverview.vue | 73 +- .../src/views/KontoOverview/GddAddWork.vue | 328 ++-- .../src/views/KontoOverview/GddAddWork2.vue | 416 +++-- frontend/src/views/KontoOverview/GddSend.vue | 430 +++-- .../src/views/KontoOverview/GddStatus.vue | 35 +- frontend/src/views/KontoOverview/GddTable.vue | 205 ++- .../src/views/KontoOverview/GddWorkTable.vue | 94 +- frontend/src/views/KontoOverview/default.vue | 15 +- frontend/src/views/Landing.vue | 205 ++- frontend/src/views/Layout/AdminLayout.vue | 136 +- frontend/src/views/Layout/AuthLayout.vue | 246 +-- frontend/src/views/Layout/AuthLayout_gdd.vue | 67 +- frontend/src/views/Layout/Content.vue | 6 +- frontend/src/views/Layout/ContentFooter.vue | 30 +- frontend/src/views/Layout/DashboardLayout.vue | 125 +- frontend/src/views/Layout/DashboardNavbar.vue | 80 +- frontend/src/views/Maps/API_KEY.js | 2 +- frontend/src/views/NotFoundPage.vue | 1629 +++++++++++++---- frontend/src/views/Pages/Explorer.vue | 19 +- frontend/src/views/Pages/Login.vue | 157 +- frontend/src/views/Pages/Password.vue | 79 +- frontend/src/views/Pages/Register.vue | 181 +- frontend/src/views/Pages/UserProfile.vue | 37 +- .../Pages/UserProfile/EditProfileForm.vue | 77 +- .../Pages/UserProfile/ImageUploaderAvatar.vue | 92 +- .../src/views/Pages/UserProfile/UserCard.vue | 24 +- .../src/views/Pages/UserProfileActivity.vue | 110 +- frontend/src/views/Pages/UserProfileCard.vue | 25 +- frontend/src/views/Pages/UserProfileEdit.vue | 24 +- .../Pages/UserProfileTransactionList.vue | 29 +- frontend/src/views/Pages/thx.vue | 26 +- frontend/src/views/RegularTables.vue | 111 +- .../views/Tables/RegularTables/DarkTable.vue | 189 +- .../views/Tables/RegularTables/LightTable.vue | 193 +- frontend/src/views/Tables/projects.js | 93 +- frontend/src/views/Tables/users.js | 42 +- frontend/src/views/default.vue | 15 +- frontend/vue.config.js | 19 +- frontend/yarn.lock | 486 ++++- 115 files changed, 8149 insertions(+), 5439 deletions(-) create mode 100644 frontend/.eslintignore diff --git a/frontend/.eslintignore b/frontend/.eslintignore new file mode 100644 index 000000000..5033deba2 --- /dev/null +++ b/frontend/.eslintignore @@ -0,0 +1,2 @@ +node_modules +**/*.min.js diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 638b2d891..412341955 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -1,15 +1,30 @@ module.exports = { root: true, env: { - node: true - }, - extends: ['plugin:vue/essential'], - rules: { - // TODO no console! - 'no-console': 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + browser: true, + node: true, + jest: true }, parserOptions: { parser: 'babel-eslint' + }, + extends: [ + 'plugin:vue/essential', + 'plugin:prettier/recommended' + ], + // required to lint *.vue files + plugins: [ + 'vue', + 'prettier', + 'jest' + ], + // add your custom rules here + rules: { + 'no-console': ['error'], + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'vue/component-name-in-template-casing': ['error', 'kebab-case'], + 'prettier/prettier': ['error', { + htmlWhitespaceSensitivity: 'ignore' + }], } -}; +} diff --git a/frontend/babel.config.js b/frontend/babel.config.js index add0e9944..5daca001a 100644 --- a/frontend/babel.config.js +++ b/frontend/babel.config.js @@ -1,14 +1,12 @@ module.exports = { - "presets": [ - "@vue/app" - ], - "plugins": [ + presets: ["@vue/app"], + plugins: [ [ "component", { - "libraryName": "element-ui", - "styleLibraryName": "theme-chalk" + libraryName: "element-ui", + styleLibraryName: "theme-chalk" } ] ] -} +}; diff --git a/frontend/intelij.webpack.js b/frontend/intelij.webpack.js index 2f49f3814..2e604e3c2 100644 --- a/frontend/intelij.webpack.js +++ b/frontend/intelij.webpack.js @@ -1,12 +1,12 @@ // This configuration file is not used anywhere in the code, it's a hack to handle InteliJ relative path imports // Keep in sync with actual webpack aliases -const path = require('path'); +const path = require("path"); module.exports = { resolve: { alias: { - '@': path.resolve(__dirname, 'src') + "@": path.resolve(__dirname, "src") } } }; diff --git a/frontend/jest.config.js b/frontend/jest.config.js index 6f45984ab..a66bab3ff 100644 --- a/frontend/jest.config.js +++ b/frontend/jest.config.js @@ -1,34 +1,29 @@ module.exports = { - verbose: true, - collectCoverageFrom: [ - "**/*.{js,vue}", - "!**/node_modules/**", - "!**/?(*.)+(spec|test).js?(x)" - ], - moduleFileExtensions: [ - 'js', - //'jsx', - 'json', - 'vue', - ], - coverageReporters: [ - "lcov" - ], - moduleNameMapper: { - '^@/(.*)$': '/src/$1' - }, - transform: { - '^.+\\.vue$': 'vue-jest', - // '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', - "^.+\\.(js|jsx)?$": "babel-jest" - }, - //setupFiles: [ - // "/test/registerContext.js" - //], - testMatch: [ - "**/?(*.)+(spec|test).js?(x)" - ], - // snapshotSerializers: ['jest-serializer-vue'], - transformIgnorePatterns: ['/node_modules/'] - }; - \ No newline at end of file + verbose: true, + collectCoverageFrom: [ + "**/*.{js,vue}", + "!**/node_modules/**", + "!**/?(*.)+(spec|test).js?(x)" + ], + moduleFileExtensions: [ + "js", + //'jsx', + "json", + "vue" + ], + coverageReporters: ["lcov"], + moduleNameMapper: { + "^@/(.*)$": "/src/$1" + }, + transform: { + "^.+\\.vue$": "vue-jest", + // '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', + "^.+\\.(js|jsx)?$": "babel-jest" + }, + //setupFiles: [ + // "/test/registerContext.js" + //], + testMatch: ["**/?(*.)+(spec|test).js?(x)"], + // snapshotSerializers: ['jest-serializer-vue'], + transformIgnorePatterns: ["/node_modules/"] +}; diff --git a/frontend/package.json b/frontend/package.json index 2ebf5c1a2..fa0c9bcde 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,7 @@ "start": "node server.js", "serve": "vue-cli-service serve --open", "build": "vue-cli-service build", - "lint": "vue-cli-service lint", + "lint": "eslint --ext .js,.vue .", "dev": "yarn run serve", "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'", "test": "jest" @@ -27,7 +27,16 @@ "element-ui": "2.4.11", "es6-promise": "^4.1.1", "eslint": "^5.16.0", - "eslint-plugin-vue": "^7.5.0", + "eslint-config-prettier": "^8.1.0", + "eslint-config-standard": "^16.0.2", + "eslint-loader": "^4.0.2", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jest": "^24.3.2", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-promise": "^4.3.1", + "eslint-plugin-standard": "^5.0.0", + "eslint-plugin-vue": "^7.8.0", "express": "^4.17.1", "flatpickr": "^4.5.7", "fuse.js": "^3.2.0", diff --git a/frontend/server.js b/frontend/server.js index 7f91163e5..ac73bba13 100644 --- a/frontend/server.js +++ b/frontend/server.js @@ -1,7 +1,7 @@ -var express = require('express'); -var serveStatic = require('serve-static'); +var express = require("express"); +var serveStatic = require("serve-static"); var app = express(); app.use(serveStatic(__dirname + "/dist")); var port = process.env.PORT || 5000; app.listen(port); -// console.log('http://localhost:5000 server started.'); \ No newline at end of file +// console.log('http://localhost:5000 server started.'); diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 86d8a020b..d0aa0307e 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,46 +1,64 @@ diff --git a/frontend/src/apis/communityAPI.js b/frontend/src/apis/communityAPI.js index a1da31707..91ab65504 100644 --- a/frontend/src/apis/communityAPI.js +++ b/frontend/src/apis/communityAPI.js @@ -1,54 +1,63 @@ -import axios from 'axios'; -import CONFIG from '../config' +import axios from "axios"; +import CONFIG from "../config"; -const apiGet = async (url) => { +const apiGet = async url => { try { const result = await axios.get(url); - if(result.status !== 200){ - throw new Error('HTTP Status Error '+result.status) + if (result.status !== 200) { + throw new Error("HTTP Status Error " + result.status); } - if(result.data.state !== 'success'){ - throw new Error(result.data.msg) + if (result.data.state !== "success") { + throw new Error(result.data.msg); } - return { success: true, result } - } catch(error){ - return { success: false, result: error} + return { success: true, result }; + } catch (error) { + return { success: false, result: error }; } -} +}; const apiPost = async (url, payload) => { try { const result = await axios.post(url, payload); - if(result.status !== 200){ - throw new Error('HTTP Status Error '+result.status) + if (result.status !== 200) { + throw new Error("HTTP Status Error " + result.status); } - if(result.data.state !== 'success'){ - throw new Error(result.data.msg) + if (result.data.state !== "success") { + throw new Error(result.data.msg); } - return { success: true, result } - } catch(error){ - return { success: false, result: error} + return { success: true, result }; + } catch (error) { + return { success: false, result: error }; } -} +}; const communityAPI = { - balance: async (session_id) => { - return apiGet(CONFIG.COMMUNITY_API_STATE_BALANCE_URL + 'ajaxGetBalance/' + session_id) + balance: async session_id => { + return apiGet( + CONFIG.COMMUNITY_API_STATE_BALANCE_URL + "ajaxGetBalance/" + session_id + ); }, - transactions: async (session_id) => { - return apiGet(CONFIG.COMMUNITY_API_STATE_BALANCE_URL + 'ajaxListTransactions/' + session_id) + transactions: async session_id => { + return apiGet( + CONFIG.COMMUNITY_API_STATE_BALANCE_URL + + "ajaxListTransactions/" + + session_id + ); }, - create: async (session_id, email, amount, memo, target_date = new Date() ) => { + create: async (session_id, email, amount, memo, target_date = new Date()) => { const payload = { session_id, email, amount, - target_date, + target_date, memo, auto_sign: true - } - return apiPost(CONFIG.COMMUNITY_API_TRANSACTION_CREATION_URL + 'ajaxCreate/', payload) + }; + return apiPost( + CONFIG.COMMUNITY_API_TRANSACTION_CREATION_URL + "ajaxCreate/", + payload + ); } -} +}; -export default communityAPI \ No newline at end of file +export default communityAPI; diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index 8756a6840..3883fd230 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -1,40 +1,40 @@ -import axios from 'axios'; -import CONFIG from '../config' +import axios from "axios"; +import CONFIG from "../config"; // control email-text sended with email verification code const EMAIL_TYPE = { DEFAULT: 2, // if user has registered directly - ADMIN: 5, // if user was registered by an admin -} + ADMIN: 5 // if user was registered by an admin +}; const apiPost = async (url, payload) => { try { const result = await axios.post(url, payload); - if(result.status !== 200){ - throw new Error('HTTP Status Error '+result.status) + if (result.status !== 200) { + throw new Error("HTTP Status Error " + result.status); } - if(result.data.state !== 'success'){ - throw new Error(result.data.msg) + if (result.data.state !== "success") { + throw new Error(result.data.msg); } - return { success: true, result } - } catch(error){ - return { success: false, result: error} + return { success: true, result }; + } catch (error) { + return { success: false, result: error }; } -} +}; const loginAPI = { login: async (email, password) => { const payload = { email, - password, - } - return apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', payload) + password + }; + return apiPost(CONFIG.LOGIN_API_URL + "unsecureLogin", payload); }, - logout: async (session_id) => { - const payload= { session_id } - return apiPost(CONFIG.LOGIN_API_URL + 'logout', payload) + logout: async session_id => { + const payload = { session_id }; + return apiPost(CONFIG.LOGIN_API_URL + "logout", payload); }, - create : async (email, first_name, last_name, password) => { + create: async (email, first_name, last_name, password) => { const payload = { email, first_name, @@ -42,9 +42,9 @@ const loginAPI = { password, emailType: EMAIL_TYPE.DEFAULT, login_after_register: true - } - return apiPost(CONFIG.LOGIN_API_URL + 'createUser', payload) - }, -} + }; + return apiPost(CONFIG.LOGIN_API_URL + "createUser", payload); + } +}; -export default loginAPI \ No newline at end of file +export default loginAPI; diff --git a/frontend/src/components/Badge.vue b/frontend/src/components/Badge.vue index 4dcaca41d..07a6d5ea8 100644 --- a/frontend/src/components/Badge.vue +++ b/frontend/src/components/Badge.vue @@ -3,48 +3,48 @@ :variant="type" :pill="rounded" :size="size" - :class="{'badge-circle': circle }"> + :class="{ 'badge-circle': circle }" + > - + diff --git a/frontend/src/components/BaseAlert.vue b/frontend/src/components/BaseAlert.vue index 33567682d..daeab0289 100644 --- a/frontend/src/components/BaseAlert.vue +++ b/frontend/src/components/BaseAlert.vue @@ -8,7 +8,6 @@ > diff --git a/frontend/src/components/BaseButton.vue b/frontend/src/components/BaseButton.vue index d2f6ed3df..880662ec2 100644 --- a/frontend/src/components/BaseButton.vue +++ b/frontend/src/components/BaseButton.vue @@ -23,7 +23,7 @@ diff --git a/frontend/src/components/BaseDropdown.vue b/frontend/src/components/BaseDropdown.vue index 9c50f40da..ecbaca250 100644 --- a/frontend/src/components/BaseDropdown.vue +++ b/frontend/src/components/BaseDropdown.vue @@ -9,12 +9,13 @@ - {{ title }} + + {{ title }} @@ -32,46 +33,46 @@ - + diff --git a/frontend/src/components/BasePagination.vue b/frontend/src/components/BasePagination.vue index 84d4c7207..b7055d247 100755 --- a/frontend/src/components/BasePagination.vue +++ b/frontend/src/components/BasePagination.vue @@ -1,14 +1,27 @@ - + diff --git a/frontend/src/components/BaseSlider.vue b/frontend/src/components/BaseSlider.vue index 00d9e67b3..3d4e40369 100644 --- a/frontend/src/components/BaseSlider.vue +++ b/frontend/src/components/BaseSlider.vue @@ -2,31 +2,31 @@
    diff --git a/frontend/src/components/ButtonCheckbox.vue b/frontend/src/components/ButtonCheckbox.vue index 1028aa899..42c3ebf13 100644 --- a/frontend/src/components/ButtonCheckbox.vue +++ b/frontend/src/components/ButtonCheckbox.vue @@ -1,39 +1,38 @@ - + diff --git a/frontend/src/components/ButtonRadioGroup.vue b/frontend/src/components/ButtonRadioGroup.vue index 5b8fc6742..eb8e92ca5 100644 --- a/frontend/src/components/ButtonRadioGroup.vue +++ b/frontend/src/components/ButtonRadioGroup.vue @@ -1,47 +1,56 @@ - + diff --git a/frontend/src/components/Cards/Card.vue b/frontend/src/components/Cards/Card.vue index d82e6cc35..d5b3a0038 100644 --- a/frontend/src/components/Cards/Card.vue +++ b/frontend/src/components/Cards/Card.vue @@ -1,18 +1,17 @@ - + diff --git a/frontend/src/components/Cards/StatsCard.vue b/frontend/src/components/Cards/StatsCard.vue index 919384882..929463d04 100644 --- a/frontend/src/components/Cards/StatsCard.vue +++ b/frontend/src/components/Cards/StatsCard.vue @@ -1,57 +1,58 @@ diff --git a/frontend/src/components/Charts/BarChart.js b/frontend/src/components/Charts/BarChart.js index c45092cbc..11068f750 100644 --- a/frontend/src/components/Charts/BarChart.js +++ b/frontend/src/components/Charts/BarChart.js @@ -1,8 +1,8 @@ -import { Bar, mixins } from 'vue-chartjs'; +import { Bar, mixins } from "vue-chartjs"; import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; export default { - name: 'bar-chart', + name: "bar-chart", extends: Bar, mixins: [mixins.reactiveProp, globalOptionsMixin], props: { @@ -18,7 +18,7 @@ export default { }, mounted() { this.$watch( - 'chartData', + "chartData", (newVal, oldVal) => { if (!oldVal) { this.renderChart(this.chartData, this.extraOptions); diff --git a/frontend/src/components/Charts/LineChart.js b/frontend/src/components/Charts/LineChart.js index fffb85571..fa8f561ff 100644 --- a/frontend/src/components/Charts/LineChart.js +++ b/frontend/src/components/Charts/LineChart.js @@ -1,7 +1,7 @@ -import { Line, mixins } from 'vue-chartjs'; +import { Line, mixins } from "vue-chartjs"; import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; export default { - name: 'line-chart', + name: "line-chart", extends: Line, mixins: [mixins.reactiveProp, globalOptionsMixin], props: { @@ -17,7 +17,7 @@ export default { }, mounted() { this.$watch( - 'chartData', + "chartData", (newVal, oldVal) => { if (!oldVal) { this.renderChart(this.chartData, this.extraOptions); diff --git a/frontend/src/components/Charts/config.js b/frontend/src/components/Charts/config.js index c3add6981..12365d4f3 100644 --- a/frontend/src/components/Charts/config.js +++ b/frontend/src/components/Charts/config.js @@ -1,35 +1,35 @@ import { parseOptions } from "@/components/Charts/optionHelpers"; -import Chart from 'chart.js' +import Chart from "chart.js"; export const Charts = { - mode: 'light',//(themeMode) ? themeMode : 'light'; + mode: "light", //(themeMode) ? themeMode : 'light'; fonts: { - base: 'Open Sans' + base: "Open Sans" }, colors: { gray: { - 100: '#f6f9fc', - 200: '#e9ecef', - 300: '#dee2e6', - 400: '#ced4da', - 500: '#adb5bd', - 600: '#8898aa', - 700: '#525f7f', - 800: '#32325d', - 900: '#212529' + 100: "#f6f9fc", + 200: "#e9ecef", + 300: "#dee2e6", + 400: "#ced4da", + 500: "#adb5bd", + 600: "#8898aa", + 700: "#525f7f", + 800: "#32325d", + 900: "#212529" }, theme: { - 'default': '#172b4d', - 'primary': '#5e72e4', - 'secondary': '#f4f5f7', - 'info': '#11cdef', - 'success': '#2dce89', - 'danger': '#f5365c', - 'warning': '#fb6340' + default: "#172b4d", + primary: "#5e72e4", + secondary: "#f4f5f7", + info: "#11cdef", + success: "#2dce89", + danger: "#f5365c", + warning: "#fb6340" }, - black: '#12263F', - white: '#FFFFFF', - transparent: 'transparent', + black: "#12263F", + white: "#FFFFFF", + transparent: "transparent" } }; @@ -41,8 +41,8 @@ function chartOptions() { global: { responsive: true, maintainAspectRatio: false, - defaultColor: (mode === 'dark') ? colors.gray[700] : colors.gray[600], - defaultFontColor: (mode === 'dark') ? colors.gray[700] : colors.gray[600], + defaultColor: mode === "dark" ? colors.gray[700] : colors.gray[600], + defaultFontColor: mode === "dark" ? colors.gray[700] : colors.gray[600], defaultFontFamily: fonts.base, defaultFontSize: 13, layout: { @@ -50,7 +50,7 @@ function chartOptions() { }, legend: { display: false, - position: 'bottom', + position: "bottom", labels: { usePointStyle: true, padding: 16 @@ -59,51 +59,54 @@ function chartOptions() { elements: { point: { radius: 0, - backgroundColor: colors.theme['primary'] + backgroundColor: colors.theme["primary"] }, line: { - tension: .4, + tension: 0.4, borderWidth: 4, - borderColor: colors.theme['primary'], + borderColor: colors.theme["primary"], backgroundColor: colors.transparent, - borderCapStyle: 'rounded' + borderCapStyle: "rounded" }, rectangle: { - backgroundColor: colors.theme['warning'] + backgroundColor: colors.theme["warning"] }, arc: { - backgroundColor: colors.theme['primary'], - borderColor: (mode == 'dark') ? colors.gray[800] : colors.white, + backgroundColor: colors.theme["primary"], + borderColor: mode == "dark" ? colors.gray[800] : colors.white, borderWidth: 4 } }, tooltips: { enabled: true, - mode: 'index', - intersect: false, + mode: "index", + intersect: false } }, pie: { tooltips: { - mode: 'point' + mode: "point" } }, doughnut: { tooltips: { - mode: 'point' + mode: "point" }, cutoutPercentage: 83, - legendCallback: function (chart) { + legendCallback: function(chart) { let data = chart.data; - let content = ''; + let content = ""; - data.labels.forEach(function (label, index) { + data.labels.forEach(function(label, index) { let bgColor = data.datasets[0].backgroundColor[index]; content += ''; - content += ''; + content += + ''; content += label; - content += ''; + content += ""; }); return content; @@ -113,37 +116,37 @@ function chartOptions() { }; // yAxes - Chart.scaleService.updateScaleDefaults('linear', { + Chart.scaleService.updateScaleDefaults("linear", { gridLines: { borderDash: [2], borderDashOffset: [2], - color: (mode === 'dark') ? colors.gray[900] : colors.gray[200], + color: mode === "dark" ? colors.gray[900] : colors.gray[200], drawBorder: false, drawTicks: true, zeroLineWidth: 1, - zeroLineColor: (mode === 'dark') ? colors.gray[900] : colors.gray[200], + zeroLineColor: mode === "dark" ? colors.gray[900] : colors.gray[200], zeroLineBorderDash: [2], zeroLineBorderDashOffset: [2] }, ticks: { beginAtZero: true, padding: 10, - callback: function (value) { + callback: function(value) { if (!(value % 10)) { - return value + return value; } } } }); // xAxes - Chart.scaleService.updateScaleDefaults('category', { + Chart.scaleService.updateScaleDefaults("category", { gridLines: { drawBorder: false, drawOnChartArea: false, drawTicks: false, lineWidth: 1, - zeroLineWidth: 1, + zeroLineWidth: 1 }, ticks: { padding: 20 @@ -152,16 +155,16 @@ function chartOptions() { }); return options; -}; +} -let initialized = false +let initialized = false; export function initGlobalOptions() { if (initialized) { - return + return; } parseOptions(Chart, chartOptions()); - initialized = true + initialized = true; } export const basicOptions = { @@ -173,26 +176,28 @@ export const basicOptions = { }; export let blueChartOptions = { scales: { - yAxes: [{ - gridLines: { - color: Charts.colors.gray[700], - zeroLineColor: Charts.colors.gray[700] + yAxes: [ + { + gridLines: { + color: Charts.colors.gray[700], + zeroLineColor: Charts.colors.gray[700] + } } - }] + ] } }; export let lineChartOptionsBlue = { ...basicOptions, tooltips: { - backgroundColor: '#f5f5f5', - titleFontColor: '#333', - bodyFontColor: '#666', + backgroundColor: "#f5f5f5", + titleFontColor: "#333", + bodyFontColor: "#666", bodySpacing: 4, xPadding: 12, - mode: 'nearest', + mode: "nearest", intersect: 0, - position: 'nearest' + position: "nearest" }, responsive: true, scales: { @@ -201,14 +206,14 @@ export let lineChartOptionsBlue = { barPercentage: 1.6, gridLines: { drawBorder: false, - color: 'rgba(29,140,248,0.0)', - zeroLineColor: 'transparent' + color: "rgba(29,140,248,0.0)", + zeroLineColor: "transparent" }, ticks: { suggestedMin: 60, suggestedMax: 125, padding: 20, - fontColor: '#9e9e9e' + fontColor: "#9e9e9e" } } ], @@ -218,12 +223,12 @@ export let lineChartOptionsBlue = { barPercentage: 1.6, gridLines: { drawBorder: false, - color: 'rgba(29,140,248,0.1)', - zeroLineColor: 'transparent' + color: "rgba(29,140,248,0.1)", + zeroLineColor: "transparent" }, ticks: { padding: 20, - fontColor: '#9e9e9e' + fontColor: "#9e9e9e" } } ] diff --git a/frontend/src/components/Charts/globalOptionsMixin.js b/frontend/src/components/Charts/globalOptionsMixin.js index eebaaca55..1ab0fd6d5 100644 --- a/frontend/src/components/Charts/globalOptionsMixin.js +++ b/frontend/src/components/Charts/globalOptionsMixin.js @@ -1,7 +1,7 @@ import { initGlobalOptions } from "@/components/Charts/config"; -import './roundedCornersExtension' +import "./roundedCornersExtension"; export default { mounted() { initGlobalOptions(); } -} +}; diff --git a/frontend/src/components/Charts/optionHelpers.js b/frontend/src/components/Charts/optionHelpers.js index 227b229e1..fb8f7c712 100644 --- a/frontend/src/components/Charts/optionHelpers.js +++ b/frontend/src/components/Charts/optionHelpers.js @@ -1,7 +1,7 @@ // Parse global options export function parseOptions(parent, options) { for (let item in options) { - if (typeof options[item] !== 'object') { + if (typeof options[item] !== "object") { parent[item] = options[item]; } else { parseOptions(parent[item], options[item]); diff --git a/frontend/src/components/Charts/roundedCornersExtension.js b/frontend/src/components/Charts/roundedCornersExtension.js index b1a91643f..d0325e54e 100644 --- a/frontend/src/components/Charts/roundedCornersExtension.js +++ b/frontend/src/components/Charts/roundedCornersExtension.js @@ -2,9 +2,8 @@ // Chart extension for making the bars rounded // Code from: https://codepen.io/jedtrow/full/ygRYgo // -import Chart from 'chart.js' +import Chart from "chart.js"; Chart.elements.Rectangle.prototype.draw = function() { - let ctx = this._chart.ctx; let vm = this._view; let left, right, top, bottom, signX, signY, borderSkipped, radius; @@ -21,7 +20,7 @@ Chart.elements.Rectangle.prototype.draw = function() { bottom = vm.base; signX = 1; signY = bottom > top ? 1 : -1; - borderSkipped = vm.borderSkipped || 'bottom'; + borderSkipped = vm.borderSkipped || "bottom"; } else { // horizontal bar left = vm.base; @@ -30,7 +29,7 @@ Chart.elements.Rectangle.prototype.draw = function() { bottom = vm.y + vm.height / 2; signX = right > left ? 1 : -1; signY = 1; - borderSkipped = vm.borderSkipped || 'left'; + borderSkipped = vm.borderSkipped || "left"; } // Canvas doesn't allow us to stroke inside the width so we can @@ -41,10 +40,12 @@ Chart.elements.Rectangle.prototype.draw = function() { borderWidth = borderWidth > barSize ? barSize : borderWidth; let halfStroke = borderWidth / 2; // Adjust borderWidth when bar top position is near vm.base(zero). - let borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0); - let borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0); - let borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0); - let borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0); + let borderLeft = left + (borderSkipped !== "left" ? halfStroke * signX : 0); + let borderRight = + right + (borderSkipped !== "right" ? -halfStroke * signX : 0); + let borderTop = top + (borderSkipped !== "top" ? halfStroke * signY : 0); + let borderBottom = + bottom + (borderSkipped !== "bottom" ? -halfStroke * signY : 0); // not become a vertical line? if (borderLeft !== borderRight) { top = borderTop; @@ -73,7 +74,7 @@ Chart.elements.Rectangle.prototype.draw = function() { ]; // Find first (starting) corner with fallback to 'bottom' - let borders = ['bottom', 'left', 'top', 'right']; + let borders = ["bottom", "left", "top", "right"]; let startCorner = borders.indexOf(borderSkipped, 0); if (startCorner === -1) { startCorner = 0; @@ -91,7 +92,7 @@ Chart.elements.Rectangle.prototype.draw = function() { corner = cornerAt(i); let nextCornerId = i + 1; if (nextCornerId == 4) { - nextCornerId = 0 + nextCornerId = 0; } let nextCorner = cornerAt(nextCornerId); @@ -120,7 +121,6 @@ Chart.elements.Rectangle.prototype.draw = function() { ctx.quadraticCurveTo(x, y + height, x, y + height - radius); ctx.lineTo(x, y + radius); ctx.quadraticCurveTo(x, y, x + radius, y); - } ctx.fill(); diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js index 3bf307c28..96a670ad8 100644 --- a/frontend/src/components/CloseButton.spec.js +++ b/frontend/src/components/CloseButton.spec.js @@ -1,32 +1,28 @@ -import { mount } from '@vue/test-utils' +import { mount } from "@vue/test-utils"; -import CloseButton from './CloseButton' +import CloseButton from "./CloseButton"; -const localVue = global.localVue +const localVue = global.localVue; -describe('CloseButton', () => { - - let wrapper +describe("CloseButton", () => { + let wrapper; let propsData = { target: "Target", - expanded: false, - } + expanded: false + }; const Wrapper = () => { - return mount(CloseButton, { localVue, propsData }) - } - - describe('mount', () => { + return mount(CloseButton, { localVue, propsData }); + }; + describe("mount", () => { beforeEach(() => { - wrapper = Wrapper() - }) + wrapper = Wrapper(); + }); - it('emmits click event', () => { - wrapper.find('.navbar-toggler').trigger('click') - expect(wrapper.emitted('click')).toBeTruthy() - }) - - }) - -}) + it("emmits click event", () => { + wrapper.find(".navbar-toggler").trigger("click"); + expect(wrapper.emitted("click")).toBeTruthy(); + }); + }); +}); diff --git a/frontend/src/components/CloseButton.vue b/frontend/src/components/CloseButton.vue index 756c8b6a5..0ee8d25a8 100755 --- a/frontend/src/components/CloseButton.vue +++ b/frontend/src/components/CloseButton.vue @@ -9,25 +9,26 @@ :aria-expanded="expanded" aria-label="Toggle navigation" > - + + diff --git a/frontend/src/components/Inputs/BaseInput.vue b/frontend/src/components/Inputs/BaseInput.vue index 31c075c6f..777b124bf 100644 --- a/frontend/src/components/Inputs/BaseInput.vue +++ b/frontend/src/components/Inputs/BaseInput.vue @@ -1,24 +1,31 @@ - + diff --git a/frontend/src/components/Inputs/BaseRadio.vue b/frontend/src/components/Inputs/BaseRadio.vue index d0d7fd50b..b28e2e595 100755 --- a/frontend/src/components/Inputs/BaseRadio.vue +++ b/frontend/src/components/Inputs/BaseRadio.vue @@ -1,7 +1,8 @@ diff --git a/frontend/src/components/LoadingPanel.vue b/frontend/src/components/LoadingPanel.vue index 41fe2cf72..f3cd275c2 100644 --- a/frontend/src/components/LoadingPanel.vue +++ b/frontend/src/components/LoadingPanel.vue @@ -2,8 +2,8 @@ diff --git a/frontend/src/components/Modal.vue b/frontend/src/components/Modal.vue index cc01518d1..1689fe665 100644 --- a/frontend/src/components/Modal.vue +++ b/frontend/src/components/Modal.vue @@ -1,85 +1,89 @@ diff --git a/frontend/src/components/Navbar/BaseNav.vue b/frontend/src/components/Navbar/BaseNav.vue index 81400f61b..9de33aebe 100644 --- a/frontend/src/components/Navbar/BaseNav.vue +++ b/frontend/src/components/Navbar/BaseNav.vue @@ -20,8 +20,8 @@ - + @click.stop="toggleMenu" + > + v-click-outside="closeMenu" + >
    @@ -37,65 +38,65 @@ diff --git a/frontend/src/components/NavbarToggleButton.vue b/frontend/src/components/NavbarToggleButton.vue index 78b0396ba..266328a3a 100755 --- a/frontend/src/components/NavbarToggleButton.vue +++ b/frontend/src/components/NavbarToggleButton.vue @@ -10,7 +10,7 @@ > - + @@ -19,12 +19,12 @@ export default { props: { target: { type: [String, Number], - description: 'Button target element' + description: "Button target element" }, toggled: { type: Boolean, default: false, - description: 'Whether button is toggled' + description: "Whether button is toggled" } } }; diff --git a/frontend/src/components/NotificationPlugin/Notification.vue b/frontend/src/components/NotificationPlugin/Notification.vue index 6338fa9ea..294d2f388 100644 --- a/frontend/src/components/NotificationPlugin/Notification.vue +++ b/frontend/src/components/NotificationPlugin/Notification.vue @@ -15,16 +15,18 @@ > - - {{ title }}
    + + {{ title }} +
    +
    -
    - diff --git a/frontend/src/components/NotificationPlugin/Notifications.vue b/frontend/src/components/NotificationPlugin/Notifications.vue index 2689cc923..6020ea1ff 100644 --- a/frontend/src/components/NotificationPlugin/Notifications.vue +++ b/frontend/src/components/NotificationPlugin/Notifications.vue @@ -1,55 +1,52 @@ diff --git a/frontend/src/components/NotificationPlugin/index.js b/frontend/src/components/NotificationPlugin/index.js index e871fb6ac..93e9f0038 100644 --- a/frontend/src/components/NotificationPlugin/index.js +++ b/frontend/src/components/NotificationPlugin/index.js @@ -1,12 +1,12 @@ -import Notifications from './Notifications.vue'; +import Notifications from "./Notifications.vue"; const NotificationStore = { state: [], // here the notifications will be added settings: { overlap: false, - verticalAlign: 'top', - horizontalAlign: 'right', - type: 'info', + verticalAlign: "top", + horizontalAlign: "right", + type: "info", timeout: 5000, closeOnClick: true, showClose: true @@ -21,7 +21,7 @@ const NotificationStore = { } }, addNotification(notification) { - if (typeof notification === 'string' || notification instanceof String) { + if (typeof notification === "string" || notification instanceof String) { notification = { message: notification }; } notification.timestamp = new Date(); @@ -56,7 +56,7 @@ const NotificationsPlugin = { }); Vue.prototype.$notify = app.notify; Vue.prototype.$notifications = app.notificationStore; - Vue.component('Notifications', Notifications); + Vue.component("Notifications", Notifications); if (options) { NotificationStore.setOptions(options); } diff --git a/frontend/src/components/SearchUser.vue b/frontend/src/components/SearchUser.vue index 143fcfeac..08fb14f40 100644 --- a/frontend/src/components/SearchUser.vue +++ b/frontend/src/components/SearchUser.vue @@ -1,12 +1,8 @@ \ No newline at end of file + } +}; + diff --git a/frontend/src/components/SidebarPlugin/SideBar.vue b/frontend/src/components/SidebarPlugin/SideBar.vue index 7f2f1e5eb..410c5e673 100755 --- a/frontend/src/components/SidebarPlugin/SideBar.vue +++ b/frontend/src/components/SidebarPlugin/SideBar.vue @@ -1,130 +1,151 @@ diff --git a/frontend/src/components/SidebarPlugin/SidebarItem.vue b/frontend/src/components/SidebarPlugin/SidebarItem.vue index 2699bef25..9ce45193a 100755 --- a/frontend/src/components/SidebarPlugin/SidebarItem.vue +++ b/frontend/src/components/SidebarPlugin/SidebarItem.vue @@ -15,12 +15,16 @@ > @@ -61,10 +65,10 @@ + diff --git a/frontend/src/views/Dashboard/SocialTrafficTable.vue b/frontend/src/views/Dashboard/SocialTrafficTable.vue index bd3eace62..3ce5760dd 100644 --- a/frontend/src/views/Dashboard/SocialTrafficTable.vue +++ b/frontend/src/views/Dashboard/SocialTrafficTable.vue @@ -11,24 +11,27 @@ - + header-row-class-name="thead-light" + > - diff --git a/frontend/src/views/Pages/Password.vue b/frontend/src/views/Pages/Password.vue index a5a257c27..adb85066e 100644 --- a/frontend/src/views/Pages/Password.vue +++ b/frontend/src/views/Pages/Password.vue @@ -5,32 +5,47 @@
    -

    {{ $t('site.password.title')}}

    -

    {{ $t('site.password.subtitle')}}

    +

    {{ $t("site.password.title") }}

    +

    {{ $t("site.password.subtitle") }}

    -
- - - - + + + + - - - {{form}} + :rules="{ required: true, email: true }" + v-model="model.email" + > + {{ form }}
- {{ $t('site.password.reset_now')}} + + {{ $t("site.password.reset_now") }} +
@@ -38,30 +53,30 @@
-
- {{ $t('back')}} -
+
+ {{ $t("back") }} +
diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 3d622066f..29fd6a6f8 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -6,75 +6,103 @@
-

{{ $t('site.signup.title')}}

-

{{ $t('site.signup.subtitle')}}

+

{{ $t("site.signup.title") }}

+

{{ $t("site.signup.subtitle") }}

- - - - + +
- {{ $t('signup')}} + {{ $t("signup") }}
- + - - - - + + - - + - - -
{{ $t('site.signup.strength')}} {{ $t('site.signup.strong')}}
+ +
+ + {{ $t("site.signup.strength") }} + + {{ $t("site.signup.strong") }} + + +
- + - {{ $t('privacy_policy')}} - {{ $t('site.signup.agree')}} + + + {{ $t("privacy_policy") }} + + - {{ $t("site.signup.agree") }} +
- {{ $t('signup')}} + + {{ $t("signup") }} +
@@ -82,39 +110,44 @@
-
- {{ $t('back')}} -
+
+ {{ $t("back") }} +
diff --git a/frontend/src/views/Pages/UserProfile.vue b/frontend/src/views/Pages/UserProfile.vue index c380abc75..4ce873b9c 100755 --- a/frontend/src/views/Pages/UserProfile.vue +++ b/frontend/src/views/Pages/UserProfile.vue @@ -1,14 +1,20 @@ - + diff --git a/frontend/src/views/Pages/UserProfile/EditProfileForm.vue b/frontend/src/views/Pages/UserProfile/EditProfileForm.vue index 7ad1800fa..b27386f55 100755 --- a/frontend/src/views/Pages/UserProfile/EditProfileForm.vue +++ b/frontend/src/views/Pages/UserProfile/EditProfileForm.vue @@ -1,12 +1,8 @@ @@ -119,22 +116,22 @@ export default { data() { return { user: { - company: 'Creative Code Inc.', - username: 'michael23', - email: '', - firstName: 'Mike', - lastName: 'Andrew', - address: 'Bld Mihail Kogalniceanu, nr. 8 Bl 1, Sc 1, Ap 09', - city: 'New York', - country: 'USA', - postalCode: '', + company: "Creative Code Inc.", + username: "michael23", + email: "", + firstName: "Mike", + lastName: "Andrew", + address: "Bld Mihail Kogalniceanu, nr. 8 Bl 1, Sc 1, Ap 09", + city: "New York", + country: "USA", + postalCode: "", aboutMe: `Lamborghini Mercy, Your chick she so thirsty, I'm in that two seat Lambo.` } }; }, methods: { updateProfile() { - alert('Your data: ' + JSON.stringify(this.user)); + alert("Your data: " + JSON.stringify(this.user)); } } }; diff --git a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue index 1e6fa8620..ad5e99c85 100644 --- a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue +++ b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue @@ -5,16 +5,17 @@ - + - {{errorText}} + {{ errorText }} Got it! @@ -24,48 +25,49 @@ diff --git a/frontend/src/views/Pages/UserProfile/UserCard.vue b/frontend/src/views/Pages/UserProfile/UserCard.vue index 3f6e5e273..787d551bd 100755 --- a/frontend/src/views/Pages/UserProfile/UserCard.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard.vue @@ -4,7 +4,10 @@
- +
@@ -12,13 +15,13 @@
-
+
- +
-- @@ -29,7 +32,9 @@ Community
- {{ $n(this.$store.state.user.balance) }} + + {{ $n(this.$store.state.user.balance) }} + GDD
@@ -37,21 +42,20 @@
- {{this.$store.state.email}} + {{ this.$store.state.email }} +
- -
diff --git a/frontend/src/views/Pages/UserProfileActivity.vue b/frontend/src/views/Pages/UserProfileActivity.vue index 4346df68a..e7d37d8dd 100644 --- a/frontend/src/views/Pages/UserProfileActivity.vue +++ b/frontend/src/views/Pages/UserProfileActivity.vue @@ -1,99 +1,91 @@ - + diff --git a/frontend/src/views/Pages/UserProfileCard.vue b/frontend/src/views/Pages/UserProfileCard.vue index b435c2beb..d65a74019 100644 --- a/frontend/src/views/Pages/UserProfileCard.vue +++ b/frontend/src/views/Pages/UserProfileCard.vue @@ -1,9 +1,9 @@ - + diff --git a/frontend/src/views/Pages/UserProfileEdit.vue b/frontend/src/views/Pages/UserProfileEdit.vue index 5f838475d..debc39bfa 100644 --- a/frontend/src/views/Pages/UserProfileEdit.vue +++ b/frontend/src/views/Pages/UserProfileEdit.vue @@ -1,11 +1,11 @@ - + diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 525ea2525..29eb5f65a 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -1,24 +1,25 @@ - + diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index f11e0c8df..f6f64b9b2 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -3,21 +3,29 @@
-
-

{{$t('site.thx.title')}}

-

{{$t('site.thx.subtitle')}}

-
- {{$t('login')}} - +
+

{{ $t("site.thx.title") }}

+

{{ $t("site.thx.subtitle") }}

+
+ {{ $t("login") }}
- - + +
-
diff --git a/frontend/src/views/RegularTables.vue b/frontend/src/views/RegularTables.vue index 72d8fbbb5..3777f0c2c 100755 --- a/frontend/src/views/RegularTables.vue +++ b/frontend/src/views/RegularTables.vue @@ -4,12 +4,13 @@ - - + diff --git a/frontend/src/components/BaseButton.vue b/frontend/src/components/BaseButton.vue index 880662ec2..009add59b 100644 --- a/frontend/src/components/BaseButton.vue +++ b/frontend/src/components/BaseButton.vue @@ -12,7 +12,7 @@ { 'btn-wd': wide }, { 'btn-icon btn-fab': icon }, { 'btn-link': link }, - { disabled: disabled } + { disabled: disabled }, ]" > @@ -23,7 +23,7 @@ diff --git a/frontend/src/components/BasePagination.vue b/frontend/src/components/BasePagination.vue index b7055d247..e5cde8783 100755 --- a/frontend/src/components/BasePagination.vue +++ b/frontend/src/components/BasePagination.vue @@ -29,41 +29,39 @@ diff --git a/frontend/src/components/BaseProgress.vue b/frontend/src/components/BaseProgress.vue index 2157d03d6..d10148e31 100755 --- a/frontend/src/components/BaseProgress.vue +++ b/frontend/src/components/BaseProgress.vue @@ -12,73 +12,68 @@ - + diff --git a/frontend/src/components/BaseSlider.vue b/frontend/src/components/BaseSlider.vue index 3d4e40369..754bea355 100644 --- a/frontend/src/components/BaseSlider.vue +++ b/frontend/src/components/BaseSlider.vue @@ -2,56 +2,55 @@
diff --git a/frontend/src/components/BaseTable.vue b/frontend/src/components/BaseTable.vue index 6a9a065b7..38ecc6039 100644 --- a/frontend/src/components/BaseTable.vue +++ b/frontend/src/components/BaseTable.vue @@ -20,47 +20,47 @@ diff --git a/frontend/src/components/Breadcrumb/Breadcrumb.vue b/frontend/src/components/Breadcrumb/Breadcrumb.vue index a8f0f6c08..795816884 100644 --- a/frontend/src/components/Breadcrumb/Breadcrumb.vue +++ b/frontend/src/components/Breadcrumb/Breadcrumb.vue @@ -7,19 +7,19 @@ diff --git a/frontend/src/components/Breadcrumb/BreadcrumbItem.vue b/frontend/src/components/Breadcrumb/BreadcrumbItem.vue index ca0917cbb..2bf5a8c6c 100644 --- a/frontend/src/components/Breadcrumb/BreadcrumbItem.vue +++ b/frontend/src/components/Breadcrumb/BreadcrumbItem.vue @@ -5,14 +5,14 @@ diff --git a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue b/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue index 5d2a27d8a..b4aaa2ad6 100644 --- a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue +++ b/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue @@ -11,10 +11,7 @@ :active="index === $route.matched.length - 1" style="display:inline-block" > - + {{ route.name }} {{ route.name }} @@ -23,21 +20,21 @@ diff --git a/frontend/src/components/ButtonCheckbox.vue b/frontend/src/components/ButtonCheckbox.vue index 42c3ebf13..e408c69a2 100644 --- a/frontend/src/components/ButtonCheckbox.vue +++ b/frontend/src/components/ButtonCheckbox.vue @@ -8,31 +8,31 @@ diff --git a/frontend/src/components/ButtonRadioGroup.vue b/frontend/src/components/ButtonRadioGroup.vue index eb8e92ca5..c757a50d8 100644 --- a/frontend/src/components/ButtonRadioGroup.vue +++ b/frontend/src/components/ButtonRadioGroup.vue @@ -20,37 +20,36 @@ diff --git a/frontend/src/components/Cards/Card.vue b/frontend/src/components/Cards/Card.vue index d5b3a0038..5ae76922a 100644 --- a/frontend/src/components/Cards/Card.vue +++ b/frontend/src/components/Cards/Card.vue @@ -6,7 +6,7 @@ { shadow: shadow }, { [`shadow-${shadowSize}`]: shadowSize }, { [`bg-gradient-${gradient}`]: gradient }, - { [`bg-${type}`]: type } + { [`bg-${type}`]: type }, ]" > @@ -26,46 +26,46 @@ diff --git a/frontend/src/components/Cards/StatsCard.vue b/frontend/src/components/Cards/StatsCard.vue index 929463d04..8c5c364d0 100644 --- a/frontend/src/components/Cards/StatsCard.vue +++ b/frontend/src/components/Cards/StatsCard.vue @@ -35,24 +35,24 @@ diff --git a/frontend/src/components/Charts/BarChart.js b/frontend/src/components/Charts/BarChart.js index 11068f750..057c31163 100644 --- a/frontend/src/components/Charts/BarChart.js +++ b/frontend/src/components/Charts/BarChart.js @@ -1,30 +1,30 @@ -import { Bar, mixins } from "vue-chartjs"; -import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; +import { Bar, mixins } from 'vue-chartjs' +import globalOptionsMixin from '@/components/Charts/globalOptionsMixin' export default { - name: "bar-chart", + name: 'bar-chart', extends: Bar, mixins: [mixins.reactiveProp, globalOptionsMixin], props: { extraOptions: { type: Object, - default: () => ({}) - } + default: () => ({}), + }, }, data() { return { - ctx: null - }; + ctx: null, + } }, mounted() { this.$watch( - "chartData", + 'chartData', (newVal, oldVal) => { if (!oldVal) { - this.renderChart(this.chartData, this.extraOptions); + this.renderChart(this.chartData, this.extraOptions) } }, - { immediate: true } - ); - } -}; + { immediate: true }, + ) + }, +} diff --git a/frontend/src/components/Charts/LineChart.js b/frontend/src/components/Charts/LineChart.js index fa8f561ff..81452f14d 100644 --- a/frontend/src/components/Charts/LineChart.js +++ b/frontend/src/components/Charts/LineChart.js @@ -1,29 +1,29 @@ -import { Line, mixins } from "vue-chartjs"; -import globalOptionsMixin from "@/components/Charts/globalOptionsMixin"; +import { Line, mixins } from 'vue-chartjs' +import globalOptionsMixin from '@/components/Charts/globalOptionsMixin' export default { - name: "line-chart", + name: 'line-chart', extends: Line, mixins: [mixins.reactiveProp, globalOptionsMixin], props: { extraOptions: { type: Object, - default: () => ({}) - } + default: () => ({}), + }, }, data() { return { - ctx: null - }; + ctx: null, + } }, mounted() { this.$watch( - "chartData", + 'chartData', (newVal, oldVal) => { if (!oldVal) { - this.renderChart(this.chartData, this.extraOptions); + this.renderChart(this.chartData, this.extraOptions) } }, - { immediate: true } - ); - } -}; + { immediate: true }, + ) + }, +} diff --git a/frontend/src/components/Charts/config.js b/frontend/src/components/Charts/config.js index 12365d4f3..c8e422d67 100644 --- a/frontend/src/components/Charts/config.js +++ b/frontend/src/components/Charts/config.js @@ -1,203 +1,201 @@ -import { parseOptions } from "@/components/Charts/optionHelpers"; -import Chart from "chart.js"; +import { parseOptions } from '@/components/Charts/optionHelpers' +import Chart from 'chart.js' export const Charts = { - mode: "light", //(themeMode) ? themeMode : 'light'; + mode: 'light', //(themeMode) ? themeMode : 'light'; fonts: { - base: "Open Sans" + base: 'Open Sans', }, colors: { gray: { - 100: "#f6f9fc", - 200: "#e9ecef", - 300: "#dee2e6", - 400: "#ced4da", - 500: "#adb5bd", - 600: "#8898aa", - 700: "#525f7f", - 800: "#32325d", - 900: "#212529" + 100: '#f6f9fc', + 200: '#e9ecef', + 300: '#dee2e6', + 400: '#ced4da', + 500: '#adb5bd', + 600: '#8898aa', + 700: '#525f7f', + 800: '#32325d', + 900: '#212529', }, theme: { - default: "#172b4d", - primary: "#5e72e4", - secondary: "#f4f5f7", - info: "#11cdef", - success: "#2dce89", - danger: "#f5365c", - warning: "#fb6340" + default: '#172b4d', + primary: '#5e72e4', + secondary: '#f4f5f7', + info: '#11cdef', + success: '#2dce89', + danger: '#f5365c', + warning: '#fb6340', }, - black: "#12263F", - white: "#FFFFFF", - transparent: "transparent" - } -}; + black: '#12263F', + white: '#FFFFFF', + transparent: 'transparent', + }, +} function chartOptions() { - let { colors, mode, fonts } = Charts; + let { colors, mode, fonts } = Charts // Options let options = { defaults: { global: { responsive: true, maintainAspectRatio: false, - defaultColor: mode === "dark" ? colors.gray[700] : colors.gray[600], - defaultFontColor: mode === "dark" ? colors.gray[700] : colors.gray[600], + defaultColor: mode === 'dark' ? colors.gray[700] : colors.gray[600], + defaultFontColor: mode === 'dark' ? colors.gray[700] : colors.gray[600], defaultFontFamily: fonts.base, defaultFontSize: 13, layout: { - padding: 0 + padding: 0, }, legend: { display: false, - position: "bottom", + position: 'bottom', labels: { usePointStyle: true, - padding: 16 - } + padding: 16, + }, }, elements: { point: { radius: 0, - backgroundColor: colors.theme["primary"] + backgroundColor: colors.theme['primary'], }, line: { tension: 0.4, borderWidth: 4, - borderColor: colors.theme["primary"], + borderColor: colors.theme['primary'], backgroundColor: colors.transparent, - borderCapStyle: "rounded" + borderCapStyle: 'rounded', }, rectangle: { - backgroundColor: colors.theme["warning"] + backgroundColor: colors.theme['warning'], }, arc: { - backgroundColor: colors.theme["primary"], - borderColor: mode == "dark" ? colors.gray[800] : colors.white, - borderWidth: 4 - } + backgroundColor: colors.theme['primary'], + borderColor: mode == 'dark' ? colors.gray[800] : colors.white, + borderWidth: 4, + }, }, tooltips: { enabled: true, - mode: "index", - intersect: false - } + mode: 'index', + intersect: false, + }, }, pie: { tooltips: { - mode: "point" - } + mode: 'point', + }, }, doughnut: { tooltips: { - mode: "point" + mode: 'point', }, cutoutPercentage: 83, legendCallback: function(chart) { - let data = chart.data; - let content = ""; + let data = chart.data + let content = '' data.labels.forEach(function(label, index) { - let bgColor = data.datasets[0].backgroundColor[index]; + let bgColor = data.datasets[0].backgroundColor[index] - content += ''; + content += '' content += - ''; - content += label; - content += ""; - }); + '' + content += label + content += '' + }) - return content; - } - } - } - }; + return content + }, + }, + }, + } // yAxes - Chart.scaleService.updateScaleDefaults("linear", { + Chart.scaleService.updateScaleDefaults('linear', { gridLines: { borderDash: [2], borderDashOffset: [2], - color: mode === "dark" ? colors.gray[900] : colors.gray[200], + color: mode === 'dark' ? colors.gray[900] : colors.gray[200], drawBorder: false, drawTicks: true, zeroLineWidth: 1, - zeroLineColor: mode === "dark" ? colors.gray[900] : colors.gray[200], + zeroLineColor: mode === 'dark' ? colors.gray[900] : colors.gray[200], zeroLineBorderDash: [2], - zeroLineBorderDashOffset: [2] + zeroLineBorderDashOffset: [2], }, ticks: { beginAtZero: true, padding: 10, callback: function(value) { if (!(value % 10)) { - return value; + return value } - } - } - }); + }, + }, + }) // xAxes - Chart.scaleService.updateScaleDefaults("category", { + Chart.scaleService.updateScaleDefaults('category', { gridLines: { drawBorder: false, drawOnChartArea: false, drawTicks: false, lineWidth: 1, - zeroLineWidth: 1 + zeroLineWidth: 1, }, ticks: { - padding: 20 + padding: 20, }, - maxBarThickness: 10 - }); + maxBarThickness: 10, + }) - return options; + return options } -let initialized = false; +let initialized = false export function initGlobalOptions() { if (initialized) { - return; + return } - parseOptions(Chart, chartOptions()); - initialized = true; + parseOptions(Chart, chartOptions()) + initialized = true } export const basicOptions = { maintainAspectRatio: false, legend: { - display: false + display: false, }, - responsive: true -}; + responsive: true, +} export let blueChartOptions = { scales: { yAxes: [ { gridLines: { color: Charts.colors.gray[700], - zeroLineColor: Charts.colors.gray[700] - } - } - ] - } -}; + zeroLineColor: Charts.colors.gray[700], + }, + }, + ], + }, +} export let lineChartOptionsBlue = { ...basicOptions, tooltips: { - backgroundColor: "#f5f5f5", - titleFontColor: "#333", - bodyFontColor: "#666", + backgroundColor: '#f5f5f5', + titleFontColor: '#333', + bodyFontColor: '#666', bodySpacing: 4, xPadding: 12, - mode: "nearest", + mode: 'nearest', intersect: 0, - position: "nearest" + position: 'nearest', }, responsive: true, scales: { @@ -206,16 +204,16 @@ export let lineChartOptionsBlue = { barPercentage: 1.6, gridLines: { drawBorder: false, - color: "rgba(29,140,248,0.0)", - zeroLineColor: "transparent" + color: 'rgba(29,140,248,0.0)', + zeroLineColor: 'transparent', }, ticks: { suggestedMin: 60, suggestedMax: 125, padding: 20, - fontColor: "#9e9e9e" - } - } + fontColor: '#9e9e9e', + }, + }, ], xAxes: [ @@ -223,14 +221,14 @@ export let lineChartOptionsBlue = { barPercentage: 1.6, gridLines: { drawBorder: false, - color: "rgba(29,140,248,0.1)", - zeroLineColor: "transparent" + color: 'rgba(29,140,248,0.1)', + zeroLineColor: 'transparent', }, ticks: { padding: 20, - fontColor: "#9e9e9e" - } - } - ] - } -}; + fontColor: '#9e9e9e', + }, + }, + ], + }, +} diff --git a/frontend/src/components/Charts/globalOptionsMixin.js b/frontend/src/components/Charts/globalOptionsMixin.js index 1ab0fd6d5..323ac94e4 100644 --- a/frontend/src/components/Charts/globalOptionsMixin.js +++ b/frontend/src/components/Charts/globalOptionsMixin.js @@ -1,7 +1,7 @@ -import { initGlobalOptions } from "@/components/Charts/config"; -import "./roundedCornersExtension"; +import { initGlobalOptions } from '@/components/Charts/config' +import './roundedCornersExtension' export default { mounted() { - initGlobalOptions(); - } -}; + initGlobalOptions() + }, +} diff --git a/frontend/src/components/Charts/optionHelpers.js b/frontend/src/components/Charts/optionHelpers.js index fb8f7c712..4caa22367 100644 --- a/frontend/src/components/Charts/optionHelpers.js +++ b/frontend/src/components/Charts/optionHelpers.js @@ -1,10 +1,10 @@ // Parse global options export function parseOptions(parent, options) { for (let item in options) { - if (typeof options[item] !== "object") { - parent[item] = options[item]; + if (typeof options[item] !== 'object') { + parent[item] = options[item] } else { - parseOptions(parent[item], options[item]); + parseOptions(parent[item], options[item]) } } } diff --git a/frontend/src/components/Charts/roundedCornersExtension.js b/frontend/src/components/Charts/roundedCornersExtension.js index d0325e54e..8c1c6c8a0 100644 --- a/frontend/src/components/Charts/roundedCornersExtension.js +++ b/frontend/src/components/Charts/roundedCornersExtension.js @@ -2,66 +2,64 @@ // Chart extension for making the bars rounded // Code from: https://codepen.io/jedtrow/full/ygRYgo // -import Chart from "chart.js"; +import Chart from 'chart.js' Chart.elements.Rectangle.prototype.draw = function() { - let ctx = this._chart.ctx; - let vm = this._view; - let left, right, top, bottom, signX, signY, borderSkipped, radius; - let borderWidth = vm.borderWidth; + let ctx = this._chart.ctx + let vm = this._view + let left, right, top, bottom, signX, signY, borderSkipped, radius + let borderWidth = vm.borderWidth // Set Radius Here // If radius is large enough to cause drawing errors a max radius is imposed - let cornerRadius = 6; + let cornerRadius = 6 if (!vm.horizontal) { // bar - left = vm.x - vm.width / 2; - right = vm.x + vm.width / 2; - top = vm.y; - bottom = vm.base; - signX = 1; - signY = bottom > top ? 1 : -1; - borderSkipped = vm.borderSkipped || "bottom"; + left = vm.x - vm.width / 2 + right = vm.x + vm.width / 2 + top = vm.y + bottom = vm.base + signX = 1 + signY = bottom > top ? 1 : -1 + borderSkipped = vm.borderSkipped || 'bottom' } else { // horizontal bar - left = vm.base; - right = vm.x; - top = vm.y - vm.height / 2; - bottom = vm.y + vm.height / 2; - signX = right > left ? 1 : -1; - signY = 1; - borderSkipped = vm.borderSkipped || "left"; + left = vm.base + right = vm.x + top = vm.y - vm.height / 2 + bottom = vm.y + vm.height / 2 + signX = right > left ? 1 : -1 + signY = 1 + borderSkipped = vm.borderSkipped || 'left' } // Canvas doesn't allow us to stroke inside the width so we can // adjust the sizes to fit if we're setting a stroke on the line if (borderWidth) { // borderWidth shold be less than bar width and bar height. - let barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom)); - borderWidth = borderWidth > barSize ? barSize : borderWidth; - let halfStroke = borderWidth / 2; + let barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom)) + borderWidth = borderWidth > barSize ? barSize : borderWidth + let halfStroke = borderWidth / 2 // Adjust borderWidth when bar top position is near vm.base(zero). - let borderLeft = left + (borderSkipped !== "left" ? halfStroke * signX : 0); - let borderRight = - right + (borderSkipped !== "right" ? -halfStroke * signX : 0); - let borderTop = top + (borderSkipped !== "top" ? halfStroke * signY : 0); - let borderBottom = - bottom + (borderSkipped !== "bottom" ? -halfStroke * signY : 0); + let borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0) + let borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0) + let borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0) + let borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0) // not become a vertical line? if (borderLeft !== borderRight) { - top = borderTop; - bottom = borderBottom; + top = borderTop + bottom = borderBottom } // not become a horizontal line? if (borderTop !== borderBottom) { - left = borderLeft; - right = borderRight; + left = borderLeft + right = borderRight } } - ctx.beginPath(); - ctx.fillStyle = vm.backgroundColor; - ctx.strokeStyle = vm.borderColor; - ctx.lineWidth = borderWidth; + ctx.beginPath() + ctx.fillStyle = vm.backgroundColor + ctx.strokeStyle = vm.borderColor + ctx.lineWidth = borderWidth // Corner points, from bottom-left to bottom-right clockwise // | 1 2 | @@ -70,61 +68,61 @@ Chart.elements.Rectangle.prototype.draw = function() { [left, bottom], [left, top], [right, top], - [right, bottom] - ]; + [right, bottom], + ] // Find first (starting) corner with fallback to 'bottom' - let borders = ["bottom", "left", "top", "right"]; - let startCorner = borders.indexOf(borderSkipped, 0); + let borders = ['bottom', 'left', 'top', 'right'] + let startCorner = borders.indexOf(borderSkipped, 0) if (startCorner === -1) { - startCorner = 0; + startCorner = 0 } function cornerAt(index) { - return corners[(startCorner + index) % 4]; + return corners[(startCorner + index) % 4] } // Draw rectangle from 'startCorner' - let corner = cornerAt(0); - ctx.moveTo(corner[0], corner[1]); + let corner = cornerAt(0) + ctx.moveTo(corner[0], corner[1]) for (let i = 1; i < 4; i++) { - corner = cornerAt(i); - let nextCornerId = i + 1; + corner = cornerAt(i) + let nextCornerId = i + 1 if (nextCornerId == 4) { - nextCornerId = 0; + nextCornerId = 0 } - let nextCorner = cornerAt(nextCornerId); + let nextCorner = cornerAt(nextCornerId) - let width = corners[2][0] - corners[1][0]; - let height = corners[0][1] - corners[1][1]; - let x = corners[1][0]; - let y = corners[1][1]; + let width = corners[2][0] - corners[1][0] + let height = corners[0][1] - corners[1][1] + let x = corners[1][0] + let y = corners[1][1] - let radius = cornerRadius; + let radius = cornerRadius // Fix radius being too large if (radius > height / 2) { - radius = height / 2; + radius = height / 2 } if (radius > width / 2) { - radius = width / 2; + radius = width / 2 } - ctx.moveTo(x + radius, y); - ctx.lineTo(x + width - radius, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius); - ctx.lineTo(x + width, y + height - radius); - ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); - ctx.lineTo(x + radius, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius); - ctx.lineTo(x, y + radius); - ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.moveTo(x + radius, y) + ctx.lineTo(x + width - radius, y) + ctx.quadraticCurveTo(x + width, y, x + width, y + radius) + ctx.lineTo(x + width, y + height - radius) + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height) + ctx.lineTo(x + radius, y + height) + ctx.quadraticCurveTo(x, y + height, x, y + height - radius) + ctx.lineTo(x, y + radius) + ctx.quadraticCurveTo(x, y, x + radius, y) } - ctx.fill(); + ctx.fill() if (borderWidth) { - ctx.stroke(); + ctx.stroke() } -}; +} diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js index 96a670ad8..7bf4d52de 100644 --- a/frontend/src/components/CloseButton.spec.js +++ b/frontend/src/components/CloseButton.spec.js @@ -1,28 +1,28 @@ -import { mount } from "@vue/test-utils"; +import { mount } from '@vue/test-utils' -import CloseButton from "./CloseButton"; +import CloseButton from './CloseButton' -const localVue = global.localVue; +const localVue = global.localVue -describe("CloseButton", () => { - let wrapper; +describe('CloseButton', () => { + let wrapper let propsData = { - target: "Target", - expanded: false - }; + target: 'Target', + expanded: false, + } const Wrapper = () => { - return mount(CloseButton, { localVue, propsData }); - }; + return mount(CloseButton, { localVue, propsData }) + } - describe("mount", () => { + describe('mount', () => { beforeEach(() => { - wrapper = Wrapper(); - }); + wrapper = Wrapper() + }) - it("emmits click event", () => { - wrapper.find(".navbar-toggler").trigger("click"); - expect(wrapper.emitted("click")).toBeTruthy(); - }); - }); -}); + it('emmits click event', () => { + wrapper.find('.navbar-toggler').trigger('click') + expect(wrapper.emitted('click')).toBeTruthy() + }) + }) +}) diff --git a/frontend/src/components/CloseButton.vue b/frontend/src/components/CloseButton.vue index 0ee8d25a8..8c61f4f60 100755 --- a/frontend/src/components/CloseButton.vue +++ b/frontend/src/components/CloseButton.vue @@ -15,22 +15,22 @@ diff --git a/frontend/src/components/Collapse/Collapse.vue b/frontend/src/components/Collapse/Collapse.vue index b12fa509f..8ad149fac 100644 --- a/frontend/src/components/Collapse/Collapse.vue +++ b/frontend/src/components/Collapse/Collapse.vue @@ -1,34 +1,28 @@ diff --git a/frontend/src/components/Collapse/CollapseItem.vue b/frontend/src/components/Collapse/CollapseItem.vue index 679981145..4960c7e7f 100644 --- a/frontend/src/components/Collapse/CollapseItem.vue +++ b/frontend/src/components/Collapse/CollapseItem.vue @@ -26,67 +26,67 @@ diff --git a/frontend/src/components/Inputs/BaseCheckbox.vue b/frontend/src/components/Inputs/BaseCheckbox.vue index 45c70fc35..dd2249470 100755 --- a/frontend/src/components/Inputs/BaseCheckbox.vue +++ b/frontend/src/components/Inputs/BaseCheckbox.vue @@ -1,11 +1,7 @@ diff --git a/frontend/src/components/NavbarToggleButton.vue b/frontend/src/components/NavbarToggleButton.vue index 266328a3a..0f539df38 100755 --- a/frontend/src/components/NavbarToggleButton.vue +++ b/frontend/src/components/NavbarToggleButton.vue @@ -19,14 +19,14 @@ export default { props: { target: { type: [String, Number], - description: "Button target element" + description: 'Button target element', }, toggled: { type: Boolean, default: false, - description: "Whether button is toggled" - } - } -}; + description: 'Whether button is toggled', + }, + }, +} diff --git a/frontend/src/components/NotificationPlugin/Notification.vue b/frontend/src/components/NotificationPlugin/Notification.vue index 294d2f388..faf7ea73e 100644 --- a/frontend/src/components/NotificationPlugin/Notification.vue +++ b/frontend/src/components/NotificationPlugin/Notification.vue @@ -3,12 +3,7 @@ @click="tryClose" data-notify="container" class="alert alert-notify alert-dismissible" - :class="[ - { 'alert-with-icon': icon }, - verticalAlign, - horizontalAlign, - alertType - ]" + :class="[{ 'alert-with-icon': icon }, verticalAlign, horizontalAlign, alertType]" role="alert" :style="customPosition" data-notify-position="top-center" @@ -29,20 +24,11 @@ - + - @@ -50,157 +36,148 @@ diff --git a/frontend/src/components/Tabs/Tabs.vue b/frontend/src/components/Tabs/Tabs.vue index ad957f2eb..2a61e6eac 100644 --- a/frontend/src/components/Tabs/Tabs.vue +++ b/frontend/src/components/Tabs/Tabs.vue @@ -4,7 +4,7 @@ :class="[ { 'col-md-4': vertical && !tabNavWrapperClasses }, { 'col-12': centered && !tabNavWrapperClasses }, - tabNavWrapperClasses + tabNavWrapperClasses, ]" > @@ -47,115 +47,109 @@ diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index bf9abd872..a6960c636 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,30 +1,30 @@ -import BaseCheckbox from "./Inputs/BaseCheckbox.vue"; -import BaseAlert from "./BaseAlert.vue"; -import BaseRadio from "./Inputs/BaseRadio.vue"; -import BaseInput from "./Inputs/BaseInput.vue"; -import Badge from "./Badge"; -import BaseProgress from "./BaseProgress.vue"; -import BaseButton from "./BaseButton.vue"; +import BaseCheckbox from './Inputs/BaseCheckbox.vue' +import BaseAlert from './BaseAlert.vue' +import BaseRadio from './Inputs/BaseRadio.vue' +import BaseInput from './Inputs/BaseInput.vue' +import Badge from './Badge' +import BaseProgress from './BaseProgress.vue' +import BaseButton from './BaseButton.vue' -import BaseDropdown from "./BaseDropdown.vue"; -import BaseTable from "./BaseTable.vue"; +import BaseDropdown from './BaseDropdown.vue' +import BaseTable from './BaseTable.vue' -import Card from "./Cards/Card.vue"; -import StatsCard from "./Cards/StatsCard.vue"; -import BaseNav from "./Navbar/BaseNav"; -import NavbarToggleButton from "./Navbar/NavbarToggleButton"; +import Card from './Cards/Card.vue' +import StatsCard from './Cards/StatsCard.vue' +import BaseNav from './Navbar/BaseNav' +import NavbarToggleButton from './Navbar/NavbarToggleButton' -import TabPane from "./Tabs/Tab.vue"; -import Tabs from "./Tabs/Tabs.vue"; -import Collapse from "./Collapse/Collapse.vue"; -import CollapseItem from "./Collapse/CollapseItem.vue"; -import Modal from "./Modal.vue"; -import BaseSlider from "./BaseSlider.vue"; -import LoadingPanel from "./LoadingPanel.vue"; +import TabPane from './Tabs/Tab.vue' +import Tabs from './Tabs/Tabs.vue' +import Collapse from './Collapse/Collapse.vue' +import CollapseItem from './Collapse/CollapseItem.vue' +import Modal from './Modal.vue' +import BaseSlider from './BaseSlider.vue' +import LoadingPanel from './LoadingPanel.vue' -import BasePagination from "./BasePagination.vue"; +import BasePagination from './BasePagination.vue' -import SidebarPlugin from "./SidebarPlugin"; +import SidebarPlugin from './SidebarPlugin' export { BaseCheckbox, @@ -48,5 +48,5 @@ export { BaseButton, Collapse, CollapseItem, - LoadingPanel -}; + LoadingPanel, +} diff --git a/frontend/src/config/index.js b/frontend/src/config/index.js index 44a255380..29a03bed5 100644 --- a/frontend/src/config/index.js +++ b/frontend/src/config/index.js @@ -5,27 +5,24 @@ const environment = { NODE_ENV: process.env.NODE_ENV, - DEBUG: process.env.NODE_ENV !== "production" || false, - PRODUCTION: process.env.NODE_ENV === "production" || false -}; + DEBUG: process.env.NODE_ENV !== 'production' || false, + PRODUCTION: process.env.NODE_ENV === 'production' || false, +} const server = { - LOGIN_API_URL: process.env.LOGIN_API_URL || "http://localhost/login_api/", + LOGIN_API_URL: process.env.LOGIN_API_URL || 'http://localhost/login_api/', COMMUNITY_API_STATE_BALANCE_URL: - process.env.COMMUNITY_API_STATE_BALANCE_URL || - "http://localhost/state-balances/", + process.env.COMMUNITY_API_STATE_BALANCE_URL || 'http://localhost/state-balances/', COMMUNITY_API_TRANSACTION_CREATION_URL: - process.env.COMMUNITY_API_TRANSACTION_CREATION_URL || - "http://localhost/transaction-creations/", + process.env.COMMUNITY_API_TRANSACTION_CREATION_URL || 'http://localhost/transaction-creations/', // TODO is this the right API call? what does it do? COMMUNITY_API_TRANSACTION_SEND_COINS: - process.env.COMMUNITY_API_TRANSACTION_SEND_COINS || - "http://localhost/transaction-send-coins/" -}; + process.env.COMMUNITY_API_TRANSACTION_SEND_COINS || 'http://localhost/transaction-send-coins/', +} const CONFIG = { ...environment, - ...server -}; + ...server, +} -export default CONFIG; +export default CONFIG diff --git a/frontend/src/directives/click-ouside.js b/frontend/src/directives/click-ouside.js index fbec7aa7f..ce912891a 100644 --- a/frontend/src/directives/click-ouside.js +++ b/frontend/src/directives/click-ouside.js @@ -4,12 +4,12 @@ export default { // here I check that click was outside the el and his childrens if (!(el == event.target || el.contains(event.target))) { // and if it did, call method provided in attribute value - vnode.context[binding.expression](event); + vnode.context[binding.expression](event) } - }; - document.body.addEventListener("click", el.clickOutsideEvent); + } + document.body.addEventListener('click', el.clickOutsideEvent) }, unbind: function(el) { - document.body.removeEventListener("click", el.clickOutsideEvent); - } -}; + document.body.removeEventListener('click', el.clickOutsideEvent) + }, +} diff --git a/frontend/src/i18n.js b/frontend/src/i18n.js index 7bfdde77f..21e66861b 100644 --- a/frontend/src/i18n.js +++ b/frontend/src/i18n.js @@ -1,45 +1,41 @@ -import Vue from "vue"; -import VueI18n from "vue-i18n"; +import Vue from 'vue' +import VueI18n from 'vue-i18n' -Vue.use(VueI18n); +Vue.use(VueI18n) function loadLocaleMessages() { - const locales = require.context( - "./locales", - true, - /[A-Za-z0-9-_,\s]+\.json$/i - ); - const messages = {}; + const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i) + const messages = {} locales.keys().forEach(key => { - const matched = key.match(/([A-Za-z0-9-_]+)\./i); + const matched = key.match(/([A-Za-z0-9-_]+)\./i) if (matched && matched.length > 1) { - const locale = matched[1]; - messages[locale] = locales(key); + const locale = matched[1] + messages[locale] = locales(key) } - }); - return messages; + }) + return messages } const numberFormats = { - "en-US": { + 'en-US': { currency: { - style: "currency", - currency: "GDD", - abbreviate: true - } + style: 'currency', + currency: 'GDD', + abbreviate: true, + }, }, - "de-DE": { + 'de-DE': { currency: { - style: "currency", - currency: "GDD", - abbreviate: true - } - } -}; + style: 'currency', + currency: 'GDD', + abbreviate: true, + }, + }, +} export default new VueI18n({ - locale: "en", - fallbackLocale: "en", + locale: 'en', + fallbackLocale: 'en', messages: loadLocaleMessages(), - numberFormats -}); + numberFormats, +}) diff --git a/frontend/src/icon.js b/frontend/src/icon.js index 7f7635ed9..08d13e55d 100644 --- a/frontend/src/icon.js +++ b/frontend/src/icon.js @@ -1 +1 @@ -export default "data:image/png;base64,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ZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9sZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmZmZWIwYjNiLTUxMjYtNDc2Ny1hMjcxLWI3NWVlMTA3NDkzMiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmZjFjMmMzOC1kYTY4LTQ5ZTktYWFjMy0xY2RhYTg0NWVkYzgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphYTAyOGVjYi1mNmYzLTQwOTYtYmI3MC1kNWM2ZjBlOGRmOTEiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0iMTYxMDUxNzIxMjY4MjM3OSIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjIyIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpSZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYmRkMGQ0Yy0yOTA1LTQ1NmUtOWM5OC02MGZiOTkwZGRkZjciCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+pf0g8gAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAa6gAAGuoBKzTQAAAAAAd0SU1FB+UBDQU1INrD8WkAACAASURBVHja7L15rHRrdtb3W++7p5rOfM433OG77e623ca4O7YxQQ04BtvCQAYi2wxJECRRQhJCJJAQDhkkUPJHBiERoiQiigSCSJFJAlIIxMQJsWPaQU4bxcYCbDxgu+93v+mcU8Me3jF/vO+uqu/e242DDLHbe0l1qk6dql1716naz7ue9axnwRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFP8vIVMb8EUU/zCjh/6e98hb9TfIDogVV0KOqiisFHUTAdKKDSKRpSuBQSkIcYAUakYijmimrSlaCXarcL4KAG0BTzBrqPHRO0HCDWWIRBXONuFrYTYdk3UP9rGd37tb4zTf2OKKSZAn2KKKY7ib33uL8i1OlXL2ilUVFpbFdWq1OXlJWpYEdprIteEYYZuHqJWp0R9JpEFxDMkKKR4BChENFKeQdGACKgE34hALIkU+dseBDuAj0QP4ki37S2YNgYXIRJxTwXtif6OGLYEcxeDvRffPSWWPd48j1K9gMWrEHZ3zgwO2/tY16EPZ+HHX+3C137Ft0/gP8UUE6BPMcUXR9zdfY8uY6/LaJTSJzOl9aMY2jdE4lsoeYTIY0QeiPAYVV5FVT4QKUqkVKAVooVYCKh0e/+VHb+2Md+OQMiXSIwBweXffb7PAQ6iQ6Ij4iBGiCDRQ3QQAuCI0SMx5r8H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"; +export default 'data:image/png;base64,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ZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9sZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmZmZWIwYjNiLTUxMjYtNDc2Ny1hMjcxLWI3NWVlMTA3NDkzMiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmZjFjMmMzOC1kYTY4LTQ5ZTktYWFjMy0xY2RhYTg0NWVkYzgiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphYTAyOGVjYi1mNmYzLTQwOTYtYmI3MC1kNWM2ZjBlOGRmOTEiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0iMTYxMDUxNzIxMjY4MjM3OSIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjIyIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmplY3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpSZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYmRkMGQ0Yy0yOTA1LTQ1NmUtOWM5OC02MGZiOTkwZGRkZjciCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VTdXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4KICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+pf0g8gAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAa6gAAGuoBKzTQAAAAAAd0SU1FB+UBDQU1INrD8WkAACAASURBVHja7L15rHRrdtb3W++7p5rOfM433OG77e623ca4O7YxQQ04BtvCQAYi2wxJECRRQhJCJJAQDhkkUPJHBiERoiQiigSCSJFJAlIIxMQJsWPaQU4bxcYCbDxgu+93v+mcU8Me3jF/vO+uqu/e242DDLHbe0l1qk6dql1716naz7ue9axnwRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFNMMcUUU0wxxRRTTDHFFFP8vIVMb8EUU/zCjh/6e98hb9TfIDogVV0KOqiisFHUTAdKKDSKRpSuBQSkIcYAUakYijmimrSlaCXarcL4KAG0BTzBrqPHRO0HCDWWIRBXONuFrYTYdk3UP9rGd37tb4zTf2OKKSZAn2KKKY7ib33uL8i1OlXL2ilUVFpbFdWq1OXlJWpYEdprIteEYYZuHqJWp0R9JpEFxDMkKKR4BChENFKeQdGACKgE34hALIkU+dseBDuAj0QP4ki37S2YNgYXIRJxTwXtif6OGLYEcxeDvRffPSWWPd48j1K9gMWrEHZ3zgwO2/tY16EPZ+HHX+3C137Ft0/gP8UUE6BPMcUXR9zdfY8uY6/LaJTSJzOl9aMY2jdE4lsoeYTIY0QeiPAYVV5FVT4QKUqkVKAVooVYCKh0e/+VHb+2Md+OQMiXSIwBweXffb7PAQ6iQ6Ij4iBGiCDRQ3QQAuCI0SMx5r8H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' diff --git a/frontend/src/main.js b/frontend/src/main.js index 6b50d1555..832809d37 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -1,25 +1,25 @@ -import Vue from "vue"; -import DashboardPlugin from "./plugins/dashboard-plugin"; -import App from "./App.vue"; -import i18n from "./i18n.js"; -import VueCookies from "vue-cookies"; +import Vue from 'vue' +import DashboardPlugin from './plugins/dashboard-plugin' +import App from './App.vue' +import i18n from './i18n.js' +import VueCookies from 'vue-cookies' // store -import { store } from "./store/store"; +import { store } from './store/store' // router setup -import router from "./routes/router"; +import router from './routes/router' // plugin setup -Vue.use(DashboardPlugin); -Vue.config.productionTip = false; -Vue.use(VueCookies); +Vue.use(DashboardPlugin) +Vue.config.productionTip = false +Vue.use(VueCookies) /* eslint-disable no-new */ new Vue({ - el: "#app", + el: '#app', router, store, i18n, - render: h => h(App) -}); + render: h => h(App), +}) diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 2029a3fed..14a4e1d1f 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -1,67 +1,67 @@ // Polyfills for js features used in the Dashboard but not supported in some browsers (mainly IE) -import "@/polyfills"; +import '@/polyfills' // Notifications plugin. Used on Notifications page -import Notifications from "@/components/NotificationPlugin"; +import Notifications from '@/components/NotificationPlugin' // Validation plugin used to validate forms -import { configure } from "vee-validate"; +import { configure } from 'vee-validate' // A plugin file where you could register global components used across the app -import GlobalComponents from "./globalComponents"; +import GlobalComponents from './globalComponents' // A plugin file where you could register global directives -import GlobalDirectives from "./globalDirectives"; +import GlobalDirectives from './globalDirectives' // Sidebar on the right. Used as a local plugin in DashboardLayout.vue -import SideBar from "@/components/SidebarPlugin"; +import SideBar from '@/components/SidebarPlugin' // element ui language configuration -import lang from "element-ui/lib/locale/lang/en"; -import locale from "element-ui/lib/locale"; -locale.use(lang); +import lang from 'element-ui/lib/locale/lang/en' +import locale from 'element-ui/lib/locale' +locale.use(lang) // vue-bootstrap -import { BootstrapVue, IconsPlugin } from "bootstrap-vue"; +import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' // asset imports -import "@/assets/scss/argon.scss"; -import "@/assets/vendor/nucleo/css/nucleo.css"; -import { extend } from "vee-validate"; -import * as rules from "vee-validate/dist/rules"; -import { messages } from "vee-validate/dist/locale/en.json"; +import '@/assets/scss/argon.scss' +import '@/assets/vendor/nucleo/css/nucleo.css' +import { extend } from 'vee-validate' +import * as rules from 'vee-validate/dist/rules' +import { messages } from 'vee-validate/dist/locale/en.json' -import VueQrcodeReader from "vue-qrcode-reader"; -import VueQrcode from "vue-qrcode"; +import VueQrcodeReader from 'vue-qrcode-reader' +import VueQrcode from 'vue-qrcode' -import VueFlatPickr from "vue-flatpickr-component"; +import VueFlatPickr from 'vue-flatpickr-component' -import VueGoodTablePlugin from "vue-good-table"; +import VueGoodTablePlugin from 'vue-good-table' // import the styles -import "vue-good-table/dist/vue-good-table.css"; +import 'vue-good-table/dist/vue-good-table.css' -import VueMoment from "vue-moment"; +import VueMoment from 'vue-moment' Object.keys(rules).forEach(rule => { extend(rule, { ...rules[rule], // copies rule configuration - message: messages[rule] // assign message - }); -}); + message: messages[rule], // assign message + }) +}) export default { install(Vue) { - Vue.use(GlobalComponents); - Vue.use(GlobalDirectives); - Vue.use(SideBar); - Vue.use(Notifications); - Vue.use(BootstrapVue); - Vue.use(IconsPlugin); - Vue.use(VueGoodTablePlugin); - Vue.use(VueMoment); - Vue.use(VueQrcodeReader); - Vue.use(VueQrcode); - Vue.use(VueFlatPickr); + Vue.use(GlobalComponents) + Vue.use(GlobalDirectives) + Vue.use(SideBar) + Vue.use(Notifications) + Vue.use(BootstrapVue) + Vue.use(IconsPlugin) + Vue.use(VueGoodTablePlugin) + Vue.use(VueMoment) + Vue.use(VueQrcodeReader) + Vue.use(VueQrcode) + Vue.use(VueFlatPickr) configure({ classes: { - valid: "is-valid", - invalid: "is-invalid", - dirty: ["is-dirty", "is-dirty"] // multiple classes per flag! - } - }); - } -}; + valid: 'is-valid', + invalid: 'is-invalid', + dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! + }, + }) + }, +} diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 86a886dec..7428dec6b 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,45 +1,45 @@ -import BaseInput from "@/components/Inputs/BaseInput.vue"; -import BaseDropdown from "@/components/BaseDropdown.vue"; -import Card from "@/components/Cards/Card.vue"; -import Modal from "@/components/Modal.vue"; -import StatsCard from "@/components/Cards/StatsCard.vue"; -import BaseButton from "@/components/BaseButton.vue"; -import Badge from "@/components/Badge.vue"; -import BaseCheckbox from "@/components/Inputs/BaseCheckbox.vue"; -import BaseRadio from "@/components/Inputs/BaseRadio"; -import BaseProgress from "@/components/BaseProgress"; -import BasePagination from "@/components/BasePagination"; -import BaseAlert from "@/components/BaseAlert"; -import BaseNav from "@/components/Navbar/BaseNav"; -import BaseHeader from "@/components/BaseHeader"; -import { ValidationProvider, ValidationObserver } from "vee-validate"; -import { Input, Tooltip, Popover } from "element-ui"; +import BaseInput from '@/components/Inputs/BaseInput.vue' +import BaseDropdown from '@/components/BaseDropdown.vue' +import Card from '@/components/Cards/Card.vue' +import Modal from '@/components/Modal.vue' +import StatsCard from '@/components/Cards/StatsCard.vue' +import BaseButton from '@/components/BaseButton.vue' +import Badge from '@/components/Badge.vue' +import BaseCheckbox from '@/components/Inputs/BaseCheckbox.vue' +import BaseRadio from '@/components/Inputs/BaseRadio' +import BaseProgress from '@/components/BaseProgress' +import BasePagination from '@/components/BasePagination' +import BaseAlert from '@/components/BaseAlert' +import BaseNav from '@/components/Navbar/BaseNav' +import BaseHeader from '@/components/BaseHeader' +import { ValidationProvider, ValidationObserver } from 'vee-validate' +import { Input, Tooltip, Popover } from 'element-ui' /** * You can register global components here and use them as a plugin in your main Vue instance */ const GlobalComponents = { install(Vue) { - Vue.component(Badge.name, Badge); - Vue.component(BaseAlert.name, BaseAlert); - Vue.component(BaseButton.name, BaseButton); - Vue.component(BaseCheckbox.name, BaseCheckbox); - Vue.component(BaseHeader.name, BaseHeader); - Vue.component(BaseInput.name, BaseInput); - Vue.component(BaseDropdown.name, BaseDropdown); - Vue.component(BaseNav.name, BaseNav); - Vue.component(BasePagination.name, BasePagination); - Vue.component(BaseProgress.name, BaseProgress); - Vue.component(BaseRadio.name, BaseRadio); - Vue.component(Card.name, Card); - Vue.component(Modal.name, Modal); - Vue.component(StatsCard.name, StatsCard); - Vue.component(Input.name, Input); - Vue.component("validation-provider", ValidationProvider); - Vue.component("validation-observer", ValidationObserver); - Vue.use(Tooltip); - Vue.use(Popover); - } -}; + Vue.component(Badge.name, Badge) + Vue.component(BaseAlert.name, BaseAlert) + Vue.component(BaseButton.name, BaseButton) + Vue.component(BaseCheckbox.name, BaseCheckbox) + Vue.component(BaseHeader.name, BaseHeader) + Vue.component(BaseInput.name, BaseInput) + Vue.component(BaseDropdown.name, BaseDropdown) + Vue.component(BaseNav.name, BaseNav) + Vue.component(BasePagination.name, BasePagination) + Vue.component(BaseProgress.name, BaseProgress) + Vue.component(BaseRadio.name, BaseRadio) + Vue.component(Card.name, Card) + Vue.component(Modal.name, Modal) + Vue.component(StatsCard.name, StatsCard) + Vue.component(Input.name, Input) + Vue.component('validation-provider', ValidationProvider) + Vue.component('validation-observer', ValidationObserver) + Vue.use(Tooltip) + Vue.use(Popover) + }, +} -export default GlobalComponents; +export default GlobalComponents diff --git a/frontend/src/plugins/globalDirectives.js b/frontend/src/plugins/globalDirectives.js index bf50ac4ef..47be32e27 100755 --- a/frontend/src/plugins/globalDirectives.js +++ b/frontend/src/plugins/globalDirectives.js @@ -1,4 +1,4 @@ -import clickOutside from "@/directives/click-ouside.js"; +import clickOutside from '@/directives/click-ouside.js' /** * You can register global directives here and use them as a plugin in your main Vue instance @@ -6,8 +6,8 @@ import clickOutside from "@/directives/click-ouside.js"; const GlobalDirectives = { install(Vue) { - Vue.directive("click-outside", clickOutside); - } -}; + Vue.directive('click-outside', clickOutside) + }, +} -export default GlobalDirectives; +export default GlobalDirectives diff --git a/frontend/src/routes/router.js b/frontend/src/routes/router.js index 28a05b867..0afb54ac4 100644 --- a/frontend/src/routes/router.js +++ b/frontend/src/routes/router.js @@ -1,30 +1,30 @@ -import Vue from "vue"; -import VueRouter from "vue-router"; -import routes from "./routes"; +import Vue from 'vue' +import VueRouter from 'vue-router' +import routes from './routes' -Vue.use(VueRouter); +Vue.use(VueRouter) // configure router const router = new VueRouter({ routes, // short for routes: routes - linkActiveClass: "active", + linkActiveClass: 'active', scrollBehavior: (to, from, savedPosition) => { if (savedPosition) { - return savedPosition; + return savedPosition } if (to.hash) { - return { selector: to.hash }; + return { selector: to.hash } } - return { x: 0, y: 0 }; - } -}); + return { x: 0, y: 0 } + }, +}) router.beforeEach((to, from, next) => { - let language = to.params.lang; + let language = to.params.lang if (!language) { - language = "de"; + language = 'de' } - next(); -}); + next() +}) -export default router; +export default router diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 6f1b80b5e..887c23655 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -1,84 +1,84 @@ -import DashboardLayout from "@/views/Layout/DashboardLayout.vue"; -import AuthLayoutGDD from "@/views/Layout/AuthLayout_gdd.vue"; -import AuthLayout from "@/views/Layout/AuthLayout.vue"; +import DashboardLayout from '@/views/Layout/DashboardLayout.vue' +import AuthLayoutGDD from '@/views/Layout/AuthLayout_gdd.vue' +import AuthLayout from '@/views/Layout/AuthLayout.vue' // import NotFound from '@/views/NotFoundPage.vue' const routes = [ { - path: "/", - redirect: "login", + path: '/', + redirect: 'login', component: AuthLayoutGDD, children: [ { - path: "/login", - component: () => import("../views/Pages/Login.vue") + path: '/login', + component: () => import('../views/Pages/Login.vue'), }, { - path: "/thx", - component: () => import("../views/Pages/thx.vue") + path: '/thx', + component: () => import('../views/Pages/thx.vue'), }, { - path: "/register", - component: () => import("../views/Pages/Register.vue") + path: '/register', + component: () => import('../views/Pages/Register.vue'), }, { - path: "/password", - component: () => import("../views/Pages/Password.vue") + path: '/password', + component: () => import('../views/Pages/Password.vue'), }, { - path: "/explorer", - name: "Explorer", - component: () => import("../views/Pages/Explorer.vue") - } - ] + path: '/explorer', + name: 'Explorer', + component: () => import('../views/Pages/Explorer.vue'), + }, + ], }, { - path: "/", - redirect: "overview", + path: '/', + redirect: 'overview', component: DashboardLayout, children: [ { - path: "/overview", - component: () => import("../views/KontoOverview.vue"), + path: '/overview', + component: () => import('../views/KontoOverview.vue'), meta: { - requiresAuth: true - } + requiresAuth: true, + }, }, { - path: "/profile", - component: () => import("../views/Pages/UserProfileCard.vue") + path: '/profile', + component: () => import('../views/Pages/UserProfileCard.vue'), }, { - path: "/profileedit", - component: () => import("../views/Pages/UserProfileEdit.vue") + path: '/profileedit', + component: () => import('../views/Pages/UserProfileEdit.vue'), }, { - path: "/activity", - component: () => import("../views/Pages/UserProfileActivity.vue") + path: '/activity', + component: () => import('../views/Pages/UserProfileActivity.vue'), }, { - path: "/transactions", - component: () => import("../views/Pages/UserProfileTransactionList.vue") - } - ] + path: '/transactions', + component: () => import('../views/Pages/UserProfileTransactionList.vue'), + }, + ], }, , { - path: "/", - redirect: "AdminOverview", + path: '/', + redirect: 'AdminOverview', component: AuthLayout, children: [ { - path: "/AdminOverview", - name: "Adminübersicht", - component: () => import("../views/AdminOverview.vue"), + path: '/AdminOverview', + name: 'Adminübersicht', + component: () => import('../views/AdminOverview.vue'), meta: { - requiresAuth: true - } - } - ] - } -]; + requiresAuth: true, + }, + }, + ], + }, +] -export default routes; +export default routes diff --git a/frontend/src/routes/starterRouter.js b/frontend/src/routes/starterRouter.js index 16869176e..15cf360a9 100644 --- a/frontend/src/routes/starterRouter.js +++ b/frontend/src/routes/starterRouter.js @@ -1,33 +1,33 @@ -import Vue from "vue"; -import Router from "vue-router"; -import DashboardLayout from "../views/Starter/SampleLayout.vue"; -import Starter from "../views/Starter/SamplePage.vue"; +import Vue from 'vue' +import Router from 'vue-router' +import DashboardLayout from '../views/Starter/SampleLayout.vue' +import Starter from '../views/Starter/SamplePage.vue' -Vue.use(Router); +Vue.use(Router) export default new Router({ routes: [ { - path: "/", - name: "home", - redirect: "/dashboard", + path: '/', + name: 'home', + redirect: '/dashboard', component: DashboardLayout, children: [ { - path: "dashboard", - name: "dashboard", - components: { default: Starter } - } - ] - } + path: 'dashboard', + name: 'dashboard', + components: { default: Starter }, + }, + ], + }, ], scrollBehavior: (to, from, savedPosition) => { if (savedPosition) { - return savedPosition; + return savedPosition } if (to.hash) { - return { selector: to.hash }; + return { selector: to.hash } } - return { x: 0, y: 0 }; - } -}); + return { x: 0, y: 0 } + }, +}) diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 90df10050..24718cf71 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -1,40 +1,40 @@ -import Vue from "vue"; -import Vuex from "vuex"; -Vue.use(Vuex); -import router from "../routes/router.js"; -import loginAPI from "../apis/loginAPI"; -import communityAPI from "../apis/communityAPI"; +import Vue from 'vue' +import Vuex from 'vuex' +Vue.use(Vuex) +import router from '../routes/router.js' +import loginAPI from '../apis/loginAPI' +import communityAPI from '../apis/communityAPI' export const store = new Vuex.Store({ state: { session_id: null, email: null, - language: "en", - sizeDE: "normal", - sizeGB: "big", + language: 'en', + sizeDE: 'normal', + sizeGB: 'big', loginfail: false, user: { - name: "", + name: '', balance: 0, - balance_gdt: 0 + balance_gdt: 0, }, ajaxCreateData: { - session_id: "", - email: "", + session_id: '', + email: '', amount: 0, - target_date: "2021-02-19T13:25:36+00:00", - memo: "", - auto_sign: true + target_date: '2021-02-19T13:25:36+00:00', + memo: '', + auto_sign: true, }, transactions: [], modals: false, optionAxios: { headers: { - "Content-Type": "application/x-www-form-urlencoded", - "Access-Control-Allow-Origin": "*", - "Access-Control-Allow-Credentials": "true" - } - } + 'Content-Type': 'application/x-www-form-urlencoded', + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Credentials': 'true', + }, + }, }, getters: { //isLoggedIn: (state /*, getters */) => { @@ -44,62 +44,62 @@ export const store = new Vuex.Store({ // Syncronous mutation of the state mutations: { language: (state, language) => { - console.log("mutation: language", language); - state.language = language; - $cookies.set("gdd_lang", language); - if (state.language == "de") { - state.sizeDE = "big"; - state.sizeGB = "normal"; + console.log('mutation: language', language) + state.language = language + $cookies.set('gdd_lang', language) + if (state.language == 'de') { + state.sizeDE = 'big' + state.sizeGB = 'normal' } else { - state.sizeDE = "normal"; - state.sizeGB = "big"; + state.sizeDE = 'normal' + state.sizeGB = 'big' } }, loginfail: (state, loginfail) => { //console.log('mutation: email') - state.loginfail = loginfail; + state.loginfail = loginfail }, email: (state, email) => { //console.log('mutation: email') - state.email = email; + state.email = email }, session_id: (state, session_id) => { //console.log('mutation: session_id') - state.session_id = session_id; + state.session_id = session_id }, user_balance: (state, balance) => { - console.log("mutation: user_balance"); - state.user.balance = balance / 10000; + console.log('mutation: user_balance') + state.user.balance = balance / 10000 }, user_balance_gdt: (state, balance) => { //console.log('mutation: user_balance_gdt') - state.user.balance_gdt = balance / 10000; + state.user.balance_gdt = balance / 10000 }, transactions: (state, transactions) => { //console.log('mutation: transactions') - state.transactions = transactions; - } + state.transactions = transactions + }, }, // Asyncronous actions - used for api calls actions: { login: async ({ dispatch, commit }, data) => { - const result = await loginAPI.login(data.email, data.password); + const result = await loginAPI.login(data.email, data.password) if (result.success) { - commit("session_id", result.result.data.session_id); - commit("email", data.email); - $cookies.set("gdd_session_id", result.result.data.session_id); - $cookies.set("gdd_u", data.email); - router.push("/overview"); + commit('session_id', result.result.data.session_id) + commit('email', data.email) + $cookies.set('gdd_session_id', result.result.data.session_id) + $cookies.set('gdd_u', data.email) + router.push('/overview') } else { // Register failed, we perform a logout //alert('>>>>> FAIl LOGIN') - commit("loginfail", true); + commit('loginfail', true) //dispatch('logout') } }, passwordReset: async data => { - console.log("<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>", data.email); + console.log('<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>', data.email) }, schoepfen: async data => { // http://localhost/transaction-creations/ajaxCreate @@ -110,63 +110,61 @@ export const store = new Vuex.Store({ data.email, data.first_name, data.last_name, - data.password - ); + data.password, + ) if (result.success) { - commit("session_id", result.result.data.session_id); - commit("email", data.email); - $cookies.set("gdd_session_id", result.result.data.session_id); - $cookies.set("gdd_u", data.email); - router.push("/overview"); + commit('session_id', result.result.data.session_id) + commit('email', data.email) + $cookies.set('gdd_session_id', result.result.data.session_id) + $cookies.set('gdd_u', data.email) + router.push('/overview') } else { // Register failed, we perform a logout // console.log('action createUser to logout start') - dispatch("logout"); + dispatch('logout') } }, logout: async ({ commit, state }) => { - console.log("action: logout"); + console.log('action: logout') // Are we actually logged in? if (state.session_id) { - const result = await loginAPI.logout(state.session_id); + const result = await loginAPI.logout(state.session_id) // The result can be error, but thats ok with us } - commit("session_id", null); - commit("email", null); - $cookies.remove("gdd_session_id"); - $cookies.remove("gdd_u"); - $cookies.remove("gdd_lang"); - router.push("/Login"); + commit('session_id', null) + commit('email', null) + $cookies.remove('gdd_session_id') + $cookies.remove('gdd_u') + $cookies.remove('gdd_lang') + router.push('/Login') }, ajaxCreate: async ({ dispatch, state }) => { //console.log('action: ajaxCreate') - state.ajaxCreateData.amount = state.ajaxCreateData.amount * 10000; - const result = await communityAPI.create( - $cookies.get("gdd_session_id", email, amount, memo) - ); - console.log(result); + state.ajaxCreateData.amount = state.ajaxCreateData.amount * 10000 + const result = await communityAPI.create($cookies.get('gdd_session_id', email, amount, memo)) + console.log(result) }, ajaxListTransactions: async ({ commit, dispatch, state }) => { // console.log('action: ajaxListTransactions', state.session_id) // const result = await communityAPI.transactions(state.session_id) }, accountBalance: async ({ commit, dispatch, state }) => { - console.log("action: accountBalance"); + console.log('action: accountBalance') // console.log('action: dispatch', dispatch) // console.log('action: state.session_id', state.session_id) // console.log(" action: $cookies.get('gdd_session_id') ", $cookies.get("gdd_session_id") ) // commit('session_id', $cookies.get("gdd_session_id")) // commit('email', $cookies.get("gdd_u")) - const result = await communityAPI.balance($cookies.get("gdd_session_id")); - console.log("accountBalance result", result); - console.log("aresult.result.data.balance", result.result.data.balance); + const result = await communityAPI.balance($cookies.get('gdd_session_id')) + console.log('accountBalance result', result) + console.log('aresult.result.data.balance', result.result.data.balance) if (result.success) { - commit("user_balance", result.result.data.balance); + commit('user_balance', result.result.data.balance) } else { - console.log("action accountBalance to logout start"); - dispatch("logout"); + console.log('action accountBalance to logout start') + dispatch('logout') } - } - } -}); + }, + }, +}) diff --git a/frontend/src/util/throttle.js b/frontend/src/util/throttle.js index 9f115248b..d035cb748 100644 --- a/frontend/src/util/throttle.js +++ b/frontend/src/util/throttle.js @@ -4,12 +4,12 @@ * @param [timeout] the throttle interval */ export function throttle(handlerFunc, timeout = 66) { - let resizeTimeout; + let resizeTimeout if (!resizeTimeout) { resizeTimeout = setTimeout(() => { - resizeTimeout = null; - handlerFunc(); + resizeTimeout = null + handlerFunc() // The actualResizeHandler will execute at a rate of 15fps - }, timeout); + }, timeout) } } diff --git a/frontend/src/views/AdminOverview.vue b/frontend/src/views/AdminOverview.vue index f8dd96706..78e6b247b 100644 --- a/frontend/src/views/AdminOverview.vue +++ b/frontend/src/views/AdminOverview.vue @@ -13,7 +13,7 @@
@@ -29,7 +29,7 @@
@@ -45,7 +45,7 @@ @@ -61,7 +61,7 @@ @@ -135,11 +135,7 @@
- +
@@ -215,21 +211,21 @@ diff --git a/frontend/src/views/Dashboard/SocialTrafficTable.vue b/frontend/src/views/Dashboard/SocialTrafficTable.vue index 3ce5760dd..735f6a03f 100644 --- a/frontend/src/views/Dashboard/SocialTrafficTable.vue +++ b/frontend/src/views/Dashboard/SocialTrafficTable.vue @@ -11,22 +11,14 @@
- + - + diff --git a/frontend/src/views/GoogleMaps.vue b/frontend/src/views/GoogleMaps.vue index 25c1d0551..3bc93f478 100755 --- a/frontend/src/views/GoogleMaps.vue +++ b/frontend/src/views/GoogleMaps.vue @@ -66,11 +66,7 @@ -
+
@@ -78,10 +74,10 @@ diff --git a/frontend/src/views/Icons.vue b/frontend/src/views/Icons.vue index ccb205726..598c7c8a8 100644 --- a/frontend/src/views/Icons.vue +++ b/frontend/src/views/Icons.vue @@ -1592,24 +1592,24 @@ diff --git a/frontend/src/views/KontoOverview.vue b/frontend/src/views/KontoOverview.vue index 270e60e2c..91cfc88b6 100644 --- a/frontend/src/views/KontoOverview.vue +++ b/frontend/src/views/KontoOverview.vue @@ -25,25 +25,25 @@ diff --git a/frontend/src/views/Layout/AuthLayout.vue b/frontend/src/views/Layout/AuthLayout.vue index 3894e4722..22c9f4935 100755 --- a/frontend/src/views/Layout/AuthLayout.vue +++ b/frontend/src/views/Layout/AuthLayout.vue @@ -22,11 +22,7 @@ - @@ -48,26 +44,17 @@
© {{ year }} - + Gradido-Akademie
- + Gradido - + Impressum @@ -81,19 +68,19 @@ diff --git a/frontend/src/views/Layout/ContentFooter.vue b/frontend/src/views/Layout/ContentFooter.vue index 74c1ca07d..b49040097 100755 --- a/frontend/src/views/Layout/ContentFooter.vue +++ b/frontend/src/views/Layout/ContentFooter.vue @@ -17,13 +17,10 @@ Gradido - {{ $t("imprint") }} + {{ $t('imprint') }} - - {{ $t("privacy_policy") }} + + {{ $t('privacy_policy') }}
  • - +
  • @@ -40,10 +35,7 @@ - + @@ -51,19 +43,19 @@ diff --git a/frontend/src/views/Pages/Password.vue b/frontend/src/views/Pages/Password.vue index adb85066e..ac4e7ed56 100644 --- a/frontend/src/views/Pages/Password.vue +++ b/frontend/src/views/Pages/Password.vue @@ -5,8 +5,8 @@
    -

    {{ $t("site.password.title") }}

    -

    {{ $t("site.password.subtitle") }}

    +

    {{ $t('site.password.title') }}

    +

    {{ $t('site.password.subtitle') }}

    @@ -15,16 +15,9 @@ - + - + - {{ $t("site.password.reset_now") }} + {{ $t('site.password.reset_now') }} @@ -54,29 +47,29 @@
    - {{ $t("back") }} + {{ $t('back') }}
    diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 29fd6a6f8..d5643c012 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -6,8 +6,8 @@
    -

    {{ $t("site.signup.title") }}

    -

    {{ $t("site.signup.subtitle") }}

    +

    {{ $t('site.signup.title') }}

    +

    {{ $t('site.signup.subtitle') }}

    @@ -18,19 +18,12 @@ - +
    - {{ $t("signup") }} + {{ $t('signup') }}
    - +
    - {{ $t("site.signup.strength") }} + {{ $t('site.signup.strength') }} - {{ $t("site.signup.strong") }} + {{ $t('site.signup.strong') }}
    @@ -87,13 +80,10 @@ > - - {{ $t("privacy_policy") }} + + {{ $t('privacy_policy') }} - - {{ $t("site.signup.agree") }} + - {{ $t('site.signup.agree') }} @@ -101,7 +91,7 @@
    - {{ $t("signup") }} + {{ $t('signup') }}
    @@ -111,43 +101,43 @@
    - {{ $t("back") }} + {{ $t('back') }}
    diff --git a/frontend/src/views/Pages/UserProfile.vue b/frontend/src/views/Pages/UserProfile.vue index 4ce873b9c..6c64222f3 100755 --- a/frontend/src/views/Pages/UserProfile.vue +++ b/frontend/src/views/Pages/UserProfile.vue @@ -8,12 +8,10 @@ -

    - Hello {{ this.$store.state.email }} -

    +

    Hello {{ this.$store.state.email }}

    - This is your profile page. You can see the progress you've made - with your work and manage your projects or assigned tasks + This is your profile page. You can see the progress you've made with your work and + manage your projects or assigned tasks

    Edit profile
    @@ -35,14 +33,14 @@ diff --git a/frontend/src/views/Pages/UserProfile/EditProfileForm.vue b/frontend/src/views/Pages/UserProfile/EditProfileForm.vue index b27386f55..e8981f8e8 100755 --- a/frontend/src/views/Pages/UserProfile/EditProfileForm.vue +++ b/frontend/src/views/Pages/UserProfile/EditProfileForm.vue @@ -116,24 +116,24 @@ export default { data() { return { user: { - company: "Creative Code Inc.", - username: "michael23", - email: "", - firstName: "Mike", - lastName: "Andrew", - address: "Bld Mihail Kogalniceanu, nr. 8 Bl 1, Sc 1, Ap 09", - city: "New York", - country: "USA", - postalCode: "", - aboutMe: `Lamborghini Mercy, Your chick she so thirsty, I'm in that two seat Lambo.` - } - }; + company: 'Creative Code Inc.', + username: 'michael23', + email: '', + firstName: 'Mike', + lastName: 'Andrew', + address: 'Bld Mihail Kogalniceanu, nr. 8 Bl 1, Sc 1, Ap 09', + city: 'New York', + country: 'USA', + postalCode: '', + aboutMe: `Lamborghini Mercy, Your chick she so thirsty, I'm in that two seat Lambo.`, + }, + } }, methods: { updateProfile() { - alert("Your data: " + JSON.stringify(this.user)); - } - } -}; + alert('Your data: ' + JSON.stringify(this.user)) + }, + }, +} diff --git a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue index ad5e99c85..a27dff44a 100644 --- a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue +++ b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue @@ -26,48 +26,47 @@ diff --git a/frontend/src/views/Pages/UserProfile/UserCard.vue b/frontend/src/views/Pages/UserProfile/UserCard.vue index 787d551bd..dacc25605 100755 --- a/frontend/src/views/Pages/UserProfile/UserCard.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard.vue @@ -4,10 +4,7 @@
    - +
    @@ -50,13 +47,13 @@ diff --git a/frontend/src/views/Pages/UserProfileActivity.vue b/frontend/src/views/Pages/UserProfileActivity.vue index e7d37d8dd..10e6a9533 100644 --- a/frontend/src/views/Pages/UserProfileActivity.vue +++ b/frontend/src/views/Pages/UserProfileActivity.vue @@ -28,18 +28,12 @@
    - +
    - +
    @@ -47,12 +41,12 @@ diff --git a/frontend/src/views/Pages/UserProfileCard.vue b/frontend/src/views/Pages/UserProfileCard.vue index d65a74019..161bb30a0 100644 --- a/frontend/src/views/Pages/UserProfileCard.vue +++ b/frontend/src/views/Pages/UserProfileCard.vue @@ -1,8 +1,6 @@ diff --git a/frontend/src/views/Pages/UserProfileEdit.vue b/frontend/src/views/Pages/UserProfileEdit.vue index debc39bfa..1fb1d220f 100644 --- a/frontend/src/views/Pages/UserProfileEdit.vue +++ b/frontend/src/views/Pages/UserProfileEdit.vue @@ -1,8 +1,6 @@ diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 29eb5f65a..7df808b40 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -14,12 +14,12 @@ diff --git a/frontend/src/views/Pages/thx.vue b/frontend/src/views/Pages/thx.vue index f6f64b9b2..1a5a7112b 100644 --- a/frontend/src/views/Pages/thx.vue +++ b/frontend/src/views/Pages/thx.vue @@ -4,10 +4,10 @@
    -

    {{ $t("site.thx.title") }}

    -

    {{ $t("site.thx.subtitle") }}

    +

    {{ $t('site.thx.title') }}

    +

    {{ $t('site.thx.subtitle') }}


    - {{ $t("login") }} + {{ $t('login') }}
    @@ -19,10 +19,7 @@ version="1.1" xmlns="http://www.w3.org/2000/svg" > - +
    diff --git a/frontend/src/views/RegularTables.vue b/frontend/src/views/RegularTables.vue index 3777f0c2c..69a493337 100755 --- a/frontend/src/views/RegularTables.vue +++ b/frontend/src/views/RegularTables.vue @@ -73,17 +73,11 @@ From 83fc483eafed1b8d2e89e92bcaa48df72efa1ac2 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 24 Mar 2021 19:42:17 +0100 Subject: [PATCH 90/91] added prettier package --- frontend/.eslintignore | 1 + frontend/package.json | 1 + frontend/src/App.vue | 8 ++--- frontend/src/apis/communityAPI.js | 6 ++-- frontend/src/apis/loginAPI.js | 2 +- frontend/src/components/BasePagination.vue | 2 +- frontend/src/components/BaseProgress.vue | 2 +- .../components/Breadcrumb/RouteBreadcrumb.vue | 2 +- frontend/src/components/Charts/config.js | 6 ++-- .../Charts/roundedCornersExtension.js | 2 +- frontend/src/components/Collapse/Collapse.vue | 2 +- .../src/components/Inputs/BaseCheckbox.vue | 4 +-- frontend/src/components/Inputs/BaseInput.vue | 2 +- frontend/src/components/Inputs/BaseRadio.vue | 4 +-- .../NotificationPlugin/Notification.vue | 12 ++++---- .../NotificationPlugin/Notifications.vue | 2 +- .../components/NotificationPlugin/index.js | 4 +-- .../src/components/SidebarPlugin/SideBar.vue | 8 ++--- .../components/SidebarPlugin/SidebarItem.vue | 4 +-- frontend/src/components/Tabs/Tabs.vue | 6 ++-- frontend/src/directives/click-ouside.js | 6 ++-- frontend/src/i18n.js | 2 +- frontend/src/main.js | 2 +- frontend/src/plugins/dashboard-plugin.js | 2 +- frontend/src/store/store.js | 4 +-- frontend/src/views/AdminOverview.vue | 28 ++++++++--------- .../views/AdminOverview/AdminUserCreation.vue | 4 +-- .../views/AdminOverview/AdminUserSearch.vue | 20 ++++--------- frontend/src/views/AdminOverview/default.vue | 4 +-- frontend/src/views/Dashboard/GoodTable.vue | 4 +-- frontend/src/views/GoogleMaps.vue | 6 ++-- .../src/views/KontoOverview/GddAddWork.vue | 2 +- .../src/views/KontoOverview/GddAddWork2.vue | 20 +++++-------- frontend/src/views/KontoOverview/GddSend.vue | 30 +++++++------------ frontend/src/views/KontoOverview/GddTable.vue | 6 ++-- .../src/views/KontoOverview/GddWorkTable.vue | 4 +-- frontend/src/views/KontoOverview/default.vue | 4 +-- frontend/src/views/Landing.vue | 20 ++++--------- frontend/src/views/Layout/AuthLayout.vue | 6 ++-- frontend/src/views/Layout/ContentFooter.vue | 4 +-- frontend/src/views/Layout/DashboardNavbar.vue | 2 +- frontend/src/views/Pages/Explorer.vue | 4 +-- frontend/src/views/Pages/Login.vue | 2 +- frontend/src/views/Pages/Password.vue | 2 +- frontend/src/views/Pages/Register.vue | 4 +-- frontend/src/views/Pages/UserProfile.vue | 7 ++++- .../Pages/UserProfile/ImageUploaderAvatar.vue | 2 +- .../src/views/Pages/UserProfileActivity.vue | 2 +- .../Pages/UserProfileTransactionList.vue | 2 +- frontend/src/views/default.vue | 4 +-- frontend/yarn.lock | 5 ++++ 51 files changed, 124 insertions(+), 170 deletions(-) diff --git a/frontend/.eslintignore b/frontend/.eslintignore index 5033deba2..f6b255e92 100644 --- a/frontend/.eslintignore +++ b/frontend/.eslintignore @@ -1,2 +1,3 @@ node_modules **/*.min.js +build \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 73689b5fa..2a470f312 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,7 @@ "nouislider": "^12.1.0", "particles-bg-vue": "1.2.3", "perfect-scrollbar": "^1.3.0", + "prettier": "^2.2.1", "qrcode": "^1.4.4", "quill": "^1.3.6", "sweetalert2": "^9.5.4", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 2127f2631..2b0449c88 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -10,12 +10,8 @@ class="m-md-2" > - - Deutsch - - - English - + Deutsch + English
    diff --git a/frontend/src/apis/communityAPI.js b/frontend/src/apis/communityAPI.js index 8a8a4ce88..9c8b502ff 100644 --- a/frontend/src/apis/communityAPI.js +++ b/frontend/src/apis/communityAPI.js @@ -1,7 +1,7 @@ import axios from 'axios' import CONFIG from '../config' -const apiGet = async url => { +const apiGet = async (url) => { try { const result = await axios.get(url) if (result.status !== 200) { @@ -32,10 +32,10 @@ const apiPost = async (url, payload) => { } const communityAPI = { - balance: async session_id => { + balance: async (session_id) => { return apiGet(CONFIG.COMMUNITY_API_STATE_BALANCE_URL + 'ajaxGetBalance/' + session_id) }, - transactions: async session_id => { + transactions: async (session_id) => { return apiGet(CONFIG.COMMUNITY_API_STATE_BALANCE_URL + 'ajaxListTransactions/' + session_id) }, create: async (session_id, email, amount, memo, target_date = new Date()) => { diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index ba3a69147..e10a19c3f 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -30,7 +30,7 @@ const loginAPI = { } return apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', payload) }, - logout: async session_id => { + logout: async (session_id) => { const payload = { session_id } return apiPost(CONFIG.LOGIN_API_URL + 'logout', payload) }, diff --git a/frontend/src/components/BasePagination.vue b/frontend/src/components/BasePagination.vue index e5cde8783..9fc633481 100755 --- a/frontend/src/components/BasePagination.vue +++ b/frontend/src/components/BasePagination.vue @@ -6,7 +6,7 @@ :per-page="perPage" :size="size" :value="value" - @change="val => $emit('change', val)" + @change="(val) => $emit('change', val)" :align="align" :total-rows="total" > diff --git a/frontend/src/components/BaseProgress.vue b/frontend/src/components/BaseProgress.vue index d10148e31..c2f44bf2c 100755 --- a/frontend/src/components/BaseProgress.vue +++ b/frontend/src/components/BaseProgress.vue @@ -59,7 +59,7 @@ export default { value: { type: Number, default: 0, - validator: value => { + validator: (value) => { return value >= 0 && value <= 100 }, description: 'Progress value', diff --git a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue b/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue index b4aaa2ad6..bd378f312 100644 --- a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue +++ b/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue @@ -9,7 +9,7 @@ v-for="(route, index) in $route.matched.slice()" :key="route.name" :active="index === $route.matched.length - 1" - style="display:inline-block" + style="display: inline-block" > {{ route.name }} diff --git a/frontend/src/components/Charts/config.js b/frontend/src/components/Charts/config.js index c8e422d67..5da4578f0 100644 --- a/frontend/src/components/Charts/config.js +++ b/frontend/src/components/Charts/config.js @@ -93,11 +93,11 @@ function chartOptions() { mode: 'point', }, cutoutPercentage: 83, - legendCallback: function(chart) { + legendCallback: function (chart) { let data = chart.data let content = '' - data.labels.forEach(function(label, index) { + data.labels.forEach(function (label, index) { let bgColor = data.datasets[0].backgroundColor[index] content += '' @@ -129,7 +129,7 @@ function chartOptions() { ticks: { beginAtZero: true, padding: 10, - callback: function(value) { + callback: function (value) { if (!(value % 10)) { return value } diff --git a/frontend/src/components/Charts/roundedCornersExtension.js b/frontend/src/components/Charts/roundedCornersExtension.js index 8c1c6c8a0..ae7f84ce8 100644 --- a/frontend/src/components/Charts/roundedCornersExtension.js +++ b/frontend/src/components/Charts/roundedCornersExtension.js @@ -3,7 +3,7 @@ // Code from: https://codepen.io/jedtrow/full/ygRYgo // import Chart from 'chart.js' -Chart.elements.Rectangle.prototype.draw = function() { +Chart.elements.Rectangle.prototype.draw = function () { let ctx = this._chart.ctx let vm = this._view let left, right, top, bottom, signX, signY, borderSkipped, radius diff --git a/frontend/src/components/Collapse/Collapse.vue b/frontend/src/components/Collapse/Collapse.vue index 8ad149fac..e0ea57945 100644 --- a/frontend/src/components/Collapse/Collapse.vue +++ b/frontend/src/components/Collapse/Collapse.vue @@ -53,7 +53,7 @@ export default { } }, deactivateAll() { - this.items.forEach(item => { + this.items.forEach((item) => { item.active = false }) }, diff --git a/frontend/src/components/Inputs/BaseCheckbox.vue b/frontend/src/components/Inputs/BaseCheckbox.vue index dd2249470..2aaa06fba 100755 --- a/frontend/src/components/Inputs/BaseCheckbox.vue +++ b/frontend/src/components/Inputs/BaseCheckbox.vue @@ -72,9 +72,7 @@ export default { }, }, created() { - this.cbId = Math.random() - .toString(16) - .slice(2) + this.cbId = Math.random().toString(16).slice(2) }, } diff --git a/frontend/src/components/Inputs/BaseInput.vue b/frontend/src/components/Inputs/BaseInput.vue index 469327f5c..c4e323696 100644 --- a/frontend/src/components/Inputs/BaseInput.vue +++ b/frontend/src/components/Inputs/BaseInput.vue @@ -58,7 +58,7 @@ -
    +
    {{ errors[0] }}
    diff --git a/frontend/src/components/Inputs/BaseRadio.vue b/frontend/src/components/Inputs/BaseRadio.vue index 358b50997..697812698 100755 --- a/frontend/src/components/Inputs/BaseRadio.vue +++ b/frontend/src/components/Inputs/BaseRadio.vue @@ -58,9 +58,7 @@ export default { }, }, created() { - this.cbId = Math.random() - .toString(16) - .slice(2) + this.cbId = Math.random().toString(16).slice(2) }, } diff --git a/frontend/src/components/NotificationPlugin/Notification.vue b/frontend/src/components/NotificationPlugin/Notification.vue index faf7ea73e..20251d9fa 100644 --- a/frontend/src/components/NotificationPlugin/Notification.vue +++ b/frontend/src/components/NotificationPlugin/Notification.vue @@ -40,7 +40,7 @@ export default { components: { contentRender: { props: ['component'], - render: function(createElement) { + render: function (createElement) { return createElement(this.component) }, }, @@ -58,7 +58,7 @@ export default { verticalAlign: { type: String, default: 'top', - validator: value => { + validator: (value) => { let acceptedValues = ['top', 'bottom'] return acceptedValues.indexOf(value) !== -1 }, @@ -67,7 +67,7 @@ export default { horizontalAlign: { type: String, default: 'right', - validator: value => { + validator: (value) => { let acceptedValues = ['left', 'center', 'right'] return acceptedValues.indexOf(value) !== -1 }, @@ -76,7 +76,7 @@ export default { type: { type: String, default: 'info', - validator: value => { + validator: (value) => { let acceptedValues = ['default', 'info', 'primary', 'danger', 'warning', 'success'] return acceptedValues.indexOf(value) !== -1 }, @@ -86,7 +86,7 @@ export default { timeout: { type: Number, default: 5000, - validator: value => { + validator: (value) => { return value >= 0 }, description: 'Notification timeout (closes after X milliseconds). Default is 5000 (5s)', @@ -131,7 +131,7 @@ export default { customPosition() { let initialMargin = 20 let alertHeight = this.elmHeight + 10 - let sameAlertsCount = this.$notifications.state.filter(alert => { + let sameAlertsCount = this.$notifications.state.filter((alert) => { return ( alert.horizontalAlign === this.horizontalAlign && alert.verticalAlign === this.verticalAlign && diff --git a/frontend/src/components/NotificationPlugin/Notifications.vue b/frontend/src/components/NotificationPlugin/Notifications.vue index 3a1d18730..f180a7f37 100644 --- a/frontend/src/components/NotificationPlugin/Notifications.vue +++ b/frontend/src/components/NotificationPlugin/Notifications.vue @@ -44,7 +44,7 @@ export default { this.$notifications.settings.overlap = this.overlap }, watch: { - overlap: function(newVal) { + overlap: function (newVal) { this.$notifications.settings.overlap = newVal }, }, diff --git a/frontend/src/components/NotificationPlugin/index.js b/frontend/src/components/NotificationPlugin/index.js index b036cd2d7..fbf48d214 100644 --- a/frontend/src/components/NotificationPlugin/index.js +++ b/frontend/src/components/NotificationPlugin/index.js @@ -15,7 +15,7 @@ const NotificationStore = { this.settings = Object.assign(this.settings, options) }, removeNotification(timestamp) { - const indexToDelete = this.state.findIndex(n => n.timestamp === timestamp) + const indexToDelete = this.state.findIndex((n) => n.timestamp === timestamp) if (indexToDelete !== -1) { this.state.splice(indexToDelete, 1) } @@ -33,7 +33,7 @@ const NotificationStore = { }, notify(notification) { if (Array.isArray(notification)) { - notification.forEach(notificationInstance => { + notification.forEach((notificationInstance) => { this.addNotification(notificationInstance) }) } else { diff --git a/frontend/src/components/SidebarPlugin/SideBar.vue b/frontend/src/components/SidebarPlugin/SideBar.vue index 1c9be5b93..3c4b17b7f 100755 --- a/frontend/src/components/SidebarPlugin/SideBar.vue +++ b/frontend/src/components/SidebarPlugin/SideBar.vue @@ -27,15 +27,15 @@ {{ $t('site.overview.account_overview') }} - + {{ $t('site.navbar.my-profil') }} - + {{ $t('site.navbar.settings') }} - + Transactions @@ -46,7 +46,7 @@ -->
    -
    +
    {{ $t('logout') }}
    diff --git a/frontend/src/components/SidebarPlugin/SidebarItem.vue b/frontend/src/components/SidebarPlugin/SidebarItem.vue index ab9aec64e..84a722aa3 100755 --- a/frontend/src/components/SidebarPlugin/SidebarItem.vue +++ b/frontend/src/components/SidebarPlugin/SidebarItem.vue @@ -111,7 +111,7 @@ export default { linkPrefix() { if (this.link.name) { let words = this.link.name.split(' ') - return words.map(word => word.substring(0, 1)).join('') + return words.map((word) => word.substring(0, 1)).join('') } return '' }, @@ -120,7 +120,7 @@ export default { }, isActive() { if (this.$route && this.$route.path) { - let matchingRoute = this.children.find(c => this.$route.path.startsWith(c.link.path)) + let matchingRoute = this.children.find((c) => this.$route.path.startsWith(c.link.path)) if (matchingRoute !== undefined) { return true } diff --git a/frontend/src/components/Tabs/Tabs.vue b/frontend/src/components/Tabs/Tabs.vue index 2a61e6eac..7ba788329 100644 --- a/frontend/src/components/Tabs/Tabs.vue +++ b/frontend/src/components/Tabs/Tabs.vue @@ -66,7 +66,7 @@ export default { type: { type: String, default: 'primary', - validator: value => { + validator: (value) => { let acceptedValues = ['primary', 'info', 'success', 'warning', 'danger'] return acceptedValues.indexOf(value) !== -1 }, @@ -102,7 +102,7 @@ export default { }, methods: { findAndActivateTab(title) { - let tabToActivate = this.tabs.find(t => t.title === title) + let tabToActivate = this.tabs.find((t) => t.title === title) if (tabToActivate) { this.activateTab(tabToActivate) } @@ -115,7 +115,7 @@ export default { tab.active = true }, deactivateTabs() { - this.tabs.forEach(tab => { + this.tabs.forEach((tab) => { tab.active = false }) }, diff --git a/frontend/src/directives/click-ouside.js b/frontend/src/directives/click-ouside.js index ce912891a..9661a4e16 100644 --- a/frontend/src/directives/click-ouside.js +++ b/frontend/src/directives/click-ouside.js @@ -1,6 +1,6 @@ export default { - bind: function(el, binding, vnode) { - el.clickOutsideEvent = function(event) { + bind: function (el, binding, vnode) { + el.clickOutsideEvent = function (event) { // here I check that click was outside the el and his childrens if (!(el == event.target || el.contains(event.target))) { // and if it did, call method provided in attribute value @@ -9,7 +9,7 @@ export default { } document.body.addEventListener('click', el.clickOutsideEvent) }, - unbind: function(el) { + unbind: function (el) { document.body.removeEventListener('click', el.clickOutsideEvent) }, } diff --git a/frontend/src/i18n.js b/frontend/src/i18n.js index b5f9a3864..20d578e75 100644 --- a/frontend/src/i18n.js +++ b/frontend/src/i18n.js @@ -9,7 +9,7 @@ Vue.use(VueI18n) function loadLocaleMessages() { const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i) const messages = {} - locales.keys().forEach(key => { + locales.keys().forEach((key) => { const matched = key.match(/([A-Za-z0-9-_]+)\./i) if (matched && matched.length > 1) { const locale = matched[1] diff --git a/frontend/src/main.js b/frontend/src/main.js index 85c64610b..9b5ff9cba 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -22,5 +22,5 @@ new Vue({ router, store, i18n, - render: h => h(App), + render: (h) => h(App), }) diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 14a4e1d1f..9b6e350dc 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -37,7 +37,7 @@ import 'vue-good-table/dist/vue-good-table.css' import VueMoment from 'vue-moment' -Object.keys(rules).forEach(rule => { +Object.keys(rules).forEach((rule) => { extend(rule, { ...rules[rule], // copies rule configuration message: messages[rule], // assign message diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 80ff3035c..5dd321aac 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -98,10 +98,10 @@ export const store = new Vuex.Store({ //dispatch('logout') } }, - passwordReset: async data => { + passwordReset: async (data) => { //console.log('<<<<<<<<<<< PASSWORT RESET TODO >>>>>>>>>>>', data.email) }, - schoepfen: async data => { + schoepfen: async (data) => { // http://localhost/transaction-creations/ajaxCreate }, createUser: async ({ commit, dispatch }, data) => { diff --git a/frontend/src/views/AdminOverview.vue b/frontend/src/views/AdminOverview.vue index d26de42c6..c7c3ef6aa 100644 --- a/frontend/src/views/AdminOverview.vue +++ b/frontend/src/views/AdminOverview.vue @@ -291,77 +291,77 @@ export default { methods: { TransienceList() { axios.get('/json-example/admin_transience_list.json').then( - d => { + (d) => { //console.log(d); this.transiencelist = d.data }, - error => { + (error) => { //console.log(error) }, ) }, TransactionList() { axios.get('/json-example/admin_transaction_list.json').then( - d => { + (d) => { //console.log(d); this.transactionlist = d.data }, - error => { + (error) => { //console.log(error) }, ) }, UserList() { axios.get('/json-example/admin_userlist.json').then( - d => { + (d) => { //console.log(d); this.userlist = d.data }, - error => { + (error) => { //console.log(error) }, ) }, CommunityStatistic() { axios.get('/json-example/admin_community_statistic.json').then( - d => { + (d) => { //console.log(d); this.communitystatistic = d.data }, - error => { + (error) => { //console.log(error) }, ) }, ChartsStatistic() { axios.get('/json-example/admin_charts_statistic.json').then( - d => { + (d) => { //console.log(d); this.chartsstatistic = d.data }, - error => { + (error) => { //console.log(error) }, ) }, CardStatistic() { axios.get('/json-example/admin_card_statistic.json').then( - d => { + (d) => { //console.log(d); this.cardstatistic = d.data }, - error => { + (error) => { //console.log(error) }, ) }, StatisticDatas() { axios.get('/json-example/admin_statisticdatas.json').then( - d => { + (d) => { //console.log(d); this.userdata = d.data }, - error => { + (error) => { //console.log(error) }, ) diff --git a/frontend/src/views/AdminOverview/AdminUserCreation.vue b/frontend/src/views/AdminOverview/AdminUserCreation.vue index d88525bca..c99ced14d 100644 --- a/frontend/src/views/AdminOverview/AdminUserCreation.vue +++ b/frontend/src/views/AdminOverview/AdminUserCreation.vue @@ -26,9 +26,7 @@ mode: 'pages', }" > -
    - Einträge suchen . -
    +
    Einträge suchen .
    diff --git a/frontend/src/views/AdminOverview/AdminUserSearch.vue b/frontend/src/views/AdminOverview/AdminUserSearch.vue index 693da1df1..a06d85766 100644 --- a/frontend/src/views/AdminOverview/AdminUserSearch.vue +++ b/frontend/src/views/AdminOverview/AdminUserSearch.vue @@ -25,9 +25,7 @@ mode: 'pages', }" > -
    - Mitglieder suchen . -
    +
    Mitglieder suchen .
    @@ -46,9 +44,7 @@
    - + @@ -66,9 +62,7 @@ - + @@ -99,9 +93,7 @@ - + @@ -120,9 +112,7 @@ - + diff --git a/frontend/src/views/AdminOverview/default.vue b/frontend/src/views/AdminOverview/default.vue index d75fd53dd..dd4639ab9 100644 --- a/frontend/src/views/AdminOverview/default.vue +++ b/frontend/src/views/AdminOverview/default.vue @@ -1,7 +1,5 @@