Version Description
Download this release
Release Info
Developer | devowl |
Plugin | Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent |
Version | 3.0.0 |
Comparing to | |
See all releases |
Code changes from version 2.18.2 to 3.0.0
- CHANGELOG.md +37 -0
- README.txt +3 -3
- inc/Assets.php +0 -1
- inc/Core.php +13 -8
- inc/IpHandler.php +1 -1
- inc/Utils.php +13 -1
- inc/base/others/cachebuster-lib.php +1 -1
- inc/base/others/cachebuster.php +41 -41
- inc/comp/migration/AbstractDashboardTileMigration.php +87 -5
- inc/comp/migration/DashboardTileMigrationMajor2.php +3 -30
- inc/comp/migration/DashboardTileMigrationMajor3.php +436 -0
- inc/comp/migration/DashboardTileTcfV2IllegalUsage.php +1 -2
- inc/presets/BlockerPresets.php +0 -37
- inc/presets/CookiePresets.php +0 -37
- inc/presets/Presets.php +3 -3
- inc/presets/free/GoogleFontsPreset.php +10 -4
- inc/presets/free/WordPressCommentsPreset.php +10 -4
- inc/presets/free/WordPressEmojisPreset.php +11 -1
- inc/presets/free/YoutubePreset.php +15 -4
- inc/presets/pro/blocker/TypeformPreset.php +6 -1
- inc/rest/Config.php +1 -1
- inc/scanner/AutomaticScanStarter.php +17 -11
- inc/scanner/Scanner.php +2 -2
- inc/settings/CookieGroup.php +1 -1
- inc/settings/General.php +0 -29
- inc/settings/Revision.php +0 -1
- inc/view/blocker/Plugin.php +13 -1
- inc/view/navmenu/NavMenuLinks.php +1 -0
- inc/view/shortcode/HistoryUuidsShortcode.php +1 -1
- index.php +1 -1
- languages/real-cookie-banner-de_AT.mo +0 -0
- languages/real-cookie-banner-de_AT.po +404 -16
- languages/real-cookie-banner-de_CH.mo +0 -0
- languages/real-cookie-banner-de_CH.po +404 -16
- languages/real-cookie-banner-de_CH_informal.mo +0 -0
- languages/real-cookie-banner-de_CH_informal.po +404 -16
- languages/real-cookie-banner-de_DE.mo +0 -0
- languages/real-cookie-banner-de_DE.po +404 -16
- languages/real-cookie-banner-de_DE_formal.mo +0 -0
- languages/real-cookie-banner-de_DE_formal.po +405 -16
- languages/real-cookie-banner.pot +173 -3
- public/dist/18.lite.js +2 -0
- public/dist/18.lite.js.map +1 -0
- public/dist/191.lite.js +0 -2
- public/dist/191.lite.js.map +0 -1
- public/dist/276.lite.js +0 -2
- public/dist/276.lite.js.map +0 -1
- public/dist/548.lite.js +0 -2
- public/dist/548.lite.js.map +0 -1
- public/dist/673.lite.js +2 -0
- public/dist/673.lite.js.map +1 -0
CHANGELOG.md
CHANGED
@@ -3,6 +3,43 @@
|
|
3 |
All notable changes to this project will be documented in this file.
|
4 |
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
## 2.18.2 (2022-06-08)
|
7 |
|
8 |
|
3 |
All notable changes to this project will be documented in this file.
|
4 |
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5 |
|
6 |
+
# 3.0.0 (2022-06-13)
|
7 |
+
|
8 |
+
|
9 |
+
### chore
|
10 |
+
|
11 |
+
* add updated blog links to different services (CU-2fjkw82)
|
12 |
+
* rebase conflicts (CU-2jm1m37)
|
13 |
+
* remove unnecessery update client third-party scripts in free version (CU-2kat97y)
|
14 |
+
* update README.txt title and remove WordPress wording (CU-2kat97y)
|
15 |
+
* update WordPress.org assets (banner, screenshots, CU-2kat97y)
|
16 |
+
|
17 |
+
|
18 |
+
### feat
|
19 |
+
|
20 |
+
* provide wizard for v3 features (CU-2fjk49z)
|
21 |
+
|
22 |
+
|
23 |
+
### fix
|
24 |
+
|
25 |
+
* compatibility content blocker with latest Typeform embed (CU-2kgpkcb)
|
26 |
+
* compatibility with Podigee podcast player (CU-2kawh0f)
|
27 |
+
* sanitize input fields where needed (CU-2kat97y)
|
28 |
+
|
29 |
+
|
30 |
+
### refactor
|
31 |
+
|
32 |
+
* remove deprecated renderings and options (CU-2k54e7h)
|
33 |
+
|
34 |
+
|
35 |
+
### BREAKING CHANGE
|
36 |
+
|
37 |
+
* we now offer a wizard for all important changes from v2 onwards
|
38 |
+
|
39 |
+
|
40 |
+
|
41 |
+
|
42 |
+
|
43 |
## 2.18.2 (2022-06-08)
|
44 |
|
45 |
|
README.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
===
|
2 |
Contributors: devowl, mguenter, jankarres, mrguenter
|
3 |
Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
|
4 |
-
Stable tag:
|
5 |
Requires at least: 5.2
|
6 |
Requires PHP: 7.2.0
|
7 |
Tested up to: 6.0
|
@@ -221,7 +221,7 @@ The PRO Version offers you many additional features like Google Tag Manager and
|
|
221 |
|
222 |
You can view the changelog and release notes [here](https://devowl.io/wordpress-real-cookie-banner/changelog/).
|
223 |
|
224 |
-
Real Cookie Banner 2.18.
|
225 |
|
226 |
== Upgrade Notice ==
|
227 |
|
1 |
+
=== Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent ===
|
2 |
Contributors: devowl, mguenter, jankarres, mrguenter
|
3 |
Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
|
4 |
+
Stable tag: 3.0.0
|
5 |
Requires at least: 5.2
|
6 |
Requires PHP: 7.2.0
|
7 |
Tested up to: 6.0
|
221 |
|
222 |
You can view the changelog and release notes [here](https://devowl.io/wordpress-real-cookie-banner/changelog/).
|
223 |
|
224 |
+
Real Cookie Banner 2.18.2 or older had an XSS vulnerability. It could be exploited by logged in WordPress users with permissions to manage options (mostly administrators). We strongly recommend to install updates to 2.18.2 or newer!
|
225 |
|
226 |
== Upgrade Notice ==
|
227 |
|
inc/Assets.php
CHANGED
@@ -407,7 +407,6 @@ class Assets {
|
|
407 |
'isPreventPreDecision' => $banner->isPreventPreDecision(),
|
408 |
'isAcceptAllForBots' => $consentSettings->isAcceptAllForBots(),
|
409 |
'isRespectDoNotTrack' => $consentSettings->isRespectDoNotTrack(),
|
410 |
-
'isRefreshSiteAfterConsent' => $generalSettings->isRefreshSiteAfterConsent(),
|
411 |
'isEPrivacyUSA' => $consentSettings->isEPrivacyUSAEnabled(),
|
412 |
'isAgeNotice' => $consentSettings->isAgeNoticeEnabled(),
|
413 |
'isListServicesNotice' => $consentSettings->isListServicesNoticeEnabled(),
|
407 |
'isPreventPreDecision' => $banner->isPreventPreDecision(),
|
408 |
'isAcceptAllForBots' => $consentSettings->isAcceptAllForBots(),
|
409 |
'isRespectDoNotTrack' => $consentSettings->isRespectDoNotTrack(),
|
|
|
410 |
'isEPrivacyUSA' => $consentSettings->isEPrivacyUSAEnabled(),
|
411 |
'isAgeNotice' => $consentSettings->isAgeNoticeEnabled(),
|
412 |
'isListServicesNotice' => $consentSettings->isListServicesNoticeEnabled(),
|
inc/Core.php
CHANGED
@@ -11,6 +11,7 @@ use DevOwl\RealCookieBanner\Vendor\DevOwl\RealQueue\Core as RealQueue;
|
|
11 |
use DevOwl\RealCookieBanner\base\Core as BaseCore;
|
12 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
13 |
use DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2;
|
|
|
14 |
use DevOwl\RealCookieBanner\comp\migration\DashboardTileTcfV2IllegalUsage;
|
15 |
use DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations;
|
16 |
use DevOwl\RealCookieBanner\lite\Core as LiteCore;
|
@@ -549,6 +550,18 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
549 |
10,
|
550 |
2
|
551 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
552 |
add_filter('nav_menu_link_attributes', [$navMenuLinks, 'nav_menu_link_attributes'], 10, 2);
|
553 |
add_filter('wp_setup_nav_menu_item', [$navMenuLinks, 'wp_setup_nav_menu_item']);
|
554 |
add_filter('customize_nav_menu_available_item_types', [
|
@@ -577,14 +590,6 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
577 |
10,
|
578 |
2
|
579 |
);
|
580 |
-
add_filter('RCB/Revision/Current', [
|
581 |
-
new \DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2(),
|
582 |
-
'revisionCurrent'
|
583 |
-
]);
|
584 |
-
add_filter('RCB/Revision/Current', [
|
585 |
-
new \DevOwl\RealCookieBanner\comp\migration\DashboardTileTcfV2IllegalUsage(),
|
586 |
-
'revisionCurrent'
|
587 |
-
]);
|
588 |
add_filter('RCB/Revision/Current', [$scannerQuery, 'revisionCurrent']);
|
589 |
add_filter('RCB/Revision/Array', [\DevOwl\RealCookieBanner\settings\Blocker::getInstance(), 'revisionArray']);
|
590 |
add_filter(
|
11 |
use DevOwl\RealCookieBanner\base\Core as BaseCore;
|
12 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
13 |
use DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2;
|
14 |
+
use DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor3;
|
15 |
use DevOwl\RealCookieBanner\comp\migration\DashboardTileTcfV2IllegalUsage;
|
16 |
use DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations;
|
17 |
use DevOwl\RealCookieBanner\lite\Core as LiteCore;
|
550 |
10,
|
551 |
2
|
552 |
);
|
553 |
+
add_action('RCB/Migration/RegisterActions', [
|
554 |
+
new \DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2(),
|
555 |
+
'actions'
|
556 |
+
]);
|
557 |
+
add_action('RCB/Migration/RegisterActions', [
|
558 |
+
new \DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor3(),
|
559 |
+
'actions'
|
560 |
+
]);
|
561 |
+
add_action('RCB/Migration/RegisterActions', [
|
562 |
+
new \DevOwl\RealCookieBanner\comp\migration\DashboardTileTcfV2IllegalUsage(),
|
563 |
+
'actions'
|
564 |
+
]);
|
565 |
add_filter('nav_menu_link_attributes', [$navMenuLinks, 'nav_menu_link_attributes'], 10, 2);
|
566 |
add_filter('wp_setup_nav_menu_item', [$navMenuLinks, 'wp_setup_nav_menu_item']);
|
567 |
add_filter('customize_nav_menu_available_item_types', [
|
590 |
10,
|
591 |
2
|
592 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
add_filter('RCB/Revision/Current', [$scannerQuery, 'revisionCurrent']);
|
594 |
add_filter('RCB/Revision/Array', [\DevOwl\RealCookieBanner\settings\Blocker::getInstance(), 'revisionArray']);
|
595 |
add_filter(
|
inc/IpHandler.php
CHANGED
@@ -90,7 +90,7 @@ class IpHandler {
|
|
90 |
*/
|
91 |
public function persistIp() {
|
92 |
$saveIp = \DevOwl\RealCookieBanner\settings\Consent::getInstance()->isSaveIpEnabled();
|
93 |
-
$ip =
|
94 |
$ipVersion = \strpos($ip, ':') === \false ? 4 : 6;
|
95 |
$ipDel = $ipVersion === 6 ? ':' : '.';
|
96 |
// Truncate plain IP for annonymous hashing
|
90 |
*/
|
91 |
public function persistIp() {
|
92 |
$saveIp = \DevOwl\RealCookieBanner\settings\Consent::getInstance()->isSaveIpEnabled();
|
93 |
+
$ip = \DevOwl\RealCookieBanner\Utils::getIpAddress();
|
94 |
$ipVersion = \strpos($ip, ':') === \false ? 4 : 6;
|
95 |
$ipDel = $ipVersion === 6 ? ':' : '.';
|
96 |
// Truncate plain IP for annonymous hashing
|
inc/Utils.php
CHANGED
@@ -35,6 +35,18 @@ class Utils {
|
|
35 |
*/
|
36 |
const HOST_TYPE_CURRENT_WITH_ALL_SUBDOMAINS = 'current+subdomains';
|
37 |
const PREINSTALLED_ENV_IONOS = 'ionos';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
/**
|
39 |
* Always create a clone of the post cause we need to force the `post_status` to get the valid permalink.
|
40 |
* This also returns a valid permalink even for trashed or draft posts.
|
@@ -661,6 +673,6 @@ class Utils {
|
|
661 |
$requested_url = is_ssl() ? 'https://' : 'http://';
|
662 |
$requested_url .= $_SERVER['HTTP_HOST'];
|
663 |
$requested_url .= $_SERVER['REQUEST_URI'];
|
664 |
-
return $requested_url;
|
665 |
}
|
666 |
}
|
35 |
*/
|
36 |
const HOST_TYPE_CURRENT_WITH_ALL_SUBDOMAINS = 'current+subdomains';
|
37 |
const PREINSTALLED_ENV_IONOS = 'ionos';
|
38 |
+
/**
|
39 |
+
* Join an array of strings together with comma and the last one with `and`.
|
40 |
+
*
|
41 |
+
* @param string[] $array
|
42 |
+
* @param string $andSeparator
|
43 |
+
*/
|
44 |
+
public static function joinWithAndSeparator($array, $andSeparator) {
|
45 |
+
if (\count($array) > 1) {
|
46 |
+
\array_splice($array, \count($array) - 1, 0, ['{{andSeparator}}']);
|
47 |
+
}
|
48 |
+
return \str_replace(', {{andSeparator}}, ', $andSeparator, \join(', ', $array));
|
49 |
+
}
|
50 |
/**
|
51 |
* Always create a clone of the post cause we need to force the `post_status` to get the valid permalink.
|
52 |
* This also returns a valid permalink even for trashed or draft posts.
|
673 |
$requested_url = is_ssl() ? 'https://' : 'http://';
|
674 |
$requested_url .= $_SERVER['HTTP_HOST'];
|
675 |
$requested_url .= $_SERVER['REQUEST_URI'];
|
676 |
+
return esc_url_raw($requested_url);
|
677 |
}
|
678 |
}
|
inc/base/others/cachebuster-lib.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
/* This file was automatically generated (
|
3 |
return [
|
4 |
'animate.css' => '4.1.1',
|
5 |
'mobx' => '4.15.7',
|
1 |
<?php
|
2 |
+
/* This file was automatically generated (Mon Jun 13 2022 08:13:19 GMT+0000 (Coordinated Universal Time)). */
|
3 |
return [
|
4 |
'animate.css' => '4.1.1',
|
5 |
'mobx' => '4.15.7',
|
inc/base/others/cachebuster.php
CHANGED
@@ -1,68 +1,68 @@
|
|
1 |
<?php
|
2 |
-
/* This file was automatically generated (
|
3 |
return [
|
4 |
'src/public/dist/13.pro.js' => '6866a22bfe639345873e9415ddeca7f4',
|
5 |
-
'src/public/dist/
|
6 |
-
'src/public/dist/
|
7 |
'src/public/dist/193.lite.js' => 'd7a0722155f835c915b08b6c93a9208d',
|
8 |
'src/public/dist/193.pro.js' => 'd71177a05a4f8e8252c7a480e8a2842b',
|
9 |
'src/public/dist/237.pro.js' => 'f9476a3430b5d3f70591de78f8af5e0c',
|
10 |
-
'src/public/dist/276.lite.js' => 'b658a312356b0e71ec521276a45587b0',
|
11 |
-
'src/public/dist/276.pro.js' => '7f80575a91b2b090999dce05c53d7571',
|
12 |
-
'src/public/dist/317.pro.js' => '871f267ac07cadaa44044ac228575826',
|
13 |
'src/public/dist/348.lite.js' => 'b10e5a1b4ed020083d9b90e354362967',
|
14 |
'src/public/dist/348.pro.js' => 'e161c26a84fd4aa4dd792c78d8126c02',
|
15 |
'src/public/dist/418.lite.js' => 'e67dca2dbaa4c6f9fd77a2a546069d67',
|
16 |
'src/public/dist/418.pro.js' => 'fbfddcc807d91362e42c82e1d16f96ff',
|
17 |
'src/public/dist/440.lite.js' => '507b1d1d30a2155478e54f9c41e43d3b',
|
18 |
'src/public/dist/440.pro.js' => 'be0305e357c4bec403a16175006c8fd8',
|
19 |
-
'src/public/dist/
|
20 |
-
'src/public/dist/
|
21 |
-
'src/public/dist/
|
22 |
-
'src/public/dist/
|
|
|
23 |
'src/public/dist/756.lite.js' => 'a33fd915f84e6f8be48f0e54138e39f2',
|
24 |
'src/public/dist/756.pro.js' => '0f18eab40b089c103d9f598326bcdf15',
|
25 |
'src/public/dist/795.lite.js' => 'f24c07d99365d028468d9a8eef40ca37',
|
26 |
'src/public/dist/795.pro.js' => '0f2c5c70d9be03caab24126e536c3c3d',
|
27 |
-
'src/public/dist/
|
28 |
-
'src/public/dist/
|
29 |
-
'src/public/dist/
|
30 |
'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
|
31 |
'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
|
32 |
-
'src/public/dist/
|
33 |
-
'src/public/dist/
|
34 |
'src/public/dist/954.lite.js' => 'eaaae2e681627767c86add5ebd61aaf6',
|
35 |
'src/public/dist/954.pro.js' => 'faf328b7bd41817fcb3693740adbc496',
|
36 |
-
'src/public/dist/
|
37 |
-
'src/public/dist/
|
38 |
-
'src/public/dist/
|
39 |
-
'src/public/dist/
|
40 |
-
'src/public/dist/
|
41 |
-
'src/public/dist/
|
42 |
-
'src/public/dist/
|
43 |
-
'src/public/dist/
|
44 |
-
'src/public/dist/
|
45 |
-
'src/public/dist/
|
46 |
-
'src/public/dist/chunk-config-tab-
|
47 |
-
'src/public/dist/chunk-config-tab-
|
48 |
-
'src/public/dist/chunk-config-tab-
|
49 |
-
'src/public/dist/chunk-config-tab-
|
50 |
-
'src/public/dist/chunk-config-tab-
|
51 |
-
'src/public/dist/chunk-config-tab-
|
|
|
|
|
52 |
'src/public/dist/chunk-config-tab-import.lite.js' => '724795aaa805d4ed3db5c60f574a2734',
|
53 |
'src/public/dist/chunk-config-tab-import.pro.js' => '4eb0ca8d93565a722931b5c5772456e1',
|
54 |
-
'src/public/dist/chunk-config-tab-licensing.lite.js' => '
|
55 |
-
'src/public/dist/chunk-config-tab-licensing.pro.js' => '
|
56 |
-
'src/public/dist/chunk-config-tab-scanner.lite.js' => '
|
57 |
-
'src/public/dist/chunk-config-tab-scanner.pro.js' => '
|
58 |
-
'src/public/dist/chunk-config-tab-settings.lite.js' => '
|
59 |
-
'src/public/dist/chunk-config-tab-settings.pro.js' => '
|
60 |
'src/public/dist/chunk-config-tab-tcf.lite.js' => '0adcbf2f3ea0f9ab7ebc49bbdd415813',
|
61 |
'src/public/dist/chunk-config-tab-tcf.pro.js' => '7e87bb493095bd8024163e00e140e746',
|
62 |
-
'src/public/dist/customize_banner.lite.js' => '
|
63 |
-
'src/public/dist/customize_banner.pro.js' => '
|
64 |
-
'src/public/dist/customize.lite.js' => '
|
65 |
-
'src/public/dist/customize.pro.js' => '
|
66 |
'src/public/dist/queue.lite.js' => '7b9c552c5049e1b529155a7c01b25aef',
|
67 |
'src/public/dist/queue.pro.js' => '352f65e78294e1be38b2cc3a8c9f4a8e',
|
68 |
'src/public/dist/vendor-admin.lite.js' => 'f1c19a085c135d0f8d34f8678f9737df',
|
1 |
<?php
|
2 |
+
/* This file was automatically generated (Mon Jun 13 2022 08:13:19 GMT+0000 (Coordinated Universal Time)). */
|
3 |
return [
|
4 |
'src/public/dist/13.pro.js' => '6866a22bfe639345873e9415ddeca7f4',
|
5 |
+
'src/public/dist/18.lite.js' => 'ac7161e6dcd33daecfd4f83e56b0cf00',
|
6 |
+
'src/public/dist/18.pro.js' => '88485eb3e913e045f0c67d72a9b69068',
|
7 |
'src/public/dist/193.lite.js' => 'd7a0722155f835c915b08b6c93a9208d',
|
8 |
'src/public/dist/193.pro.js' => 'd71177a05a4f8e8252c7a480e8a2842b',
|
9 |
'src/public/dist/237.pro.js' => 'f9476a3430b5d3f70591de78f8af5e0c',
|
|
|
|
|
|
|
10 |
'src/public/dist/348.lite.js' => 'b10e5a1b4ed020083d9b90e354362967',
|
11 |
'src/public/dist/348.pro.js' => 'e161c26a84fd4aa4dd792c78d8126c02',
|
12 |
'src/public/dist/418.lite.js' => 'e67dca2dbaa4c6f9fd77a2a546069d67',
|
13 |
'src/public/dist/418.pro.js' => 'fbfddcc807d91362e42c82e1d16f96ff',
|
14 |
'src/public/dist/440.lite.js' => '507b1d1d30a2155478e54f9c41e43d3b',
|
15 |
'src/public/dist/440.pro.js' => 'be0305e357c4bec403a16175006c8fd8',
|
16 |
+
'src/public/dist/575.pro.js' => '16d10904bf3a4e0ae5992e701f5d54bf',
|
17 |
+
'src/public/dist/609.pro.js' => '49f744702345764e42cb83ff3a887bdc',
|
18 |
+
'src/public/dist/673.lite.js' => 'a92738ff483095186475850d0ee63929',
|
19 |
+
'src/public/dist/702.lite.js' => 'b4df6c31edc938c93f1556fde2b5124f',
|
20 |
+
'src/public/dist/702.pro.js' => 'ca094316644e1e99cdd2a26473f8883e',
|
21 |
'src/public/dist/756.lite.js' => 'a33fd915f84e6f8be48f0e54138e39f2',
|
22 |
'src/public/dist/756.pro.js' => '0f18eab40b089c103d9f598326bcdf15',
|
23 |
'src/public/dist/795.lite.js' => 'f24c07d99365d028468d9a8eef40ca37',
|
24 |
'src/public/dist/795.pro.js' => '0f2c5c70d9be03caab24126e536c3c3d',
|
25 |
+
'src/public/dist/812.lite.js' => '2b4a36a5d4162172ec25662893748524',
|
26 |
+
'src/public/dist/836.lite.js' => 'd896b66d63bfe9ef41031dcf1cc1271f',
|
27 |
+
'src/public/dist/861.pro.js' => 'd723fe756b406692185fd91e70de10b9',
|
28 |
'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
|
29 |
'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
|
30 |
+
'src/public/dist/933.lite.js' => 'e24ccdc9754ba2f74ef5394f29bf42f6',
|
31 |
+
'src/public/dist/933.pro.js' => '07289adf5a3672b0c52c85482ee1299c',
|
32 |
'src/public/dist/954.lite.js' => 'eaaae2e681627767c86add5ebd61aaf6',
|
33 |
'src/public/dist/954.pro.js' => 'faf328b7bd41817fcb3693740adbc496',
|
34 |
+
'src/public/dist/995.lite.js' => '4f9f4bd3e0ad7939ef90bc7e049d0ede',
|
35 |
+
'src/public/dist/995.pro.js' => 'dbe57fe203f1b050ddb42490c9589efa',
|
36 |
+
'src/public/dist/admin.lite.js' => '26b0bc016ef23056be3339d615e626f2',
|
37 |
+
'src/public/dist/admin.pro.js' => '0d1fc0a99afbffe530155bacbfcdad51',
|
38 |
+
'src/public/dist/banner_tcf.pro.js' => 'd479940cc745eb3c49886857ebf591da',
|
39 |
+
'src/public/dist/banner.lite.js' => '3b7672055d449e2b7388236a7c2f55b2',
|
40 |
+
'src/public/dist/banner.pro.js' => '7a6ca1a03acc07ad296575064805e7c0',
|
41 |
+
'src/public/dist/blocker_tcf.pro.js' => '0e8821bce07e81b066e9618a08131a21',
|
42 |
+
'src/public/dist/blocker.lite.js' => 'fa36986cf8a86cfbc0b54f3004104a0f',
|
43 |
+
'src/public/dist/blocker.pro.js' => 'bf67d9b483d9af8b837f698fac489354',
|
44 |
+
'src/public/dist/chunk-config-tab-blocker.lite.js' => '5cb105a818b285e48a57b59bc61ab5fa',
|
45 |
+
'src/public/dist/chunk-config-tab-blocker.pro.js' => '8b792453095e244c7dc64721c2f3ad0b',
|
46 |
+
'src/public/dist/chunk-config-tab-consent.lite.js' => '88c1c6ee015eb350b9a296d5c86d0951',
|
47 |
+
'src/public/dist/chunk-config-tab-consent.pro.js' => '9361749550fc48331b5543e63534e21f',
|
48 |
+
'src/public/dist/chunk-config-tab-cookies.lite.js' => 'bb2781128dcd96923011cc45cf44a87b',
|
49 |
+
'src/public/dist/chunk-config-tab-cookies.pro.js' => '987209b0473b106357bfe1cbab4f6310',
|
50 |
+
'src/public/dist/chunk-config-tab-dashboard.lite.js' => '470e5e758f452c37d430d813b53fcd0e',
|
51 |
+
'src/public/dist/chunk-config-tab-dashboard.pro.js' => '4b930d0a07157e6fb413a157c331f5ac',
|
52 |
'src/public/dist/chunk-config-tab-import.lite.js' => '724795aaa805d4ed3db5c60f574a2734',
|
53 |
'src/public/dist/chunk-config-tab-import.pro.js' => '4eb0ca8d93565a722931b5c5772456e1',
|
54 |
+
'src/public/dist/chunk-config-tab-licensing.lite.js' => 'e15e77f532b3a1a23e4dac3cad201b3a',
|
55 |
+
'src/public/dist/chunk-config-tab-licensing.pro.js' => 'c197a4fb4a40ff1676bc25f5cb188fe0',
|
56 |
+
'src/public/dist/chunk-config-tab-scanner.lite.js' => '272798cd0d3c8996d10584c3a9dd6926',
|
57 |
+
'src/public/dist/chunk-config-tab-scanner.pro.js' => '48e7da1ca2c4427e7bae8e81fa1c3750',
|
58 |
+
'src/public/dist/chunk-config-tab-settings.lite.js' => 'ebb0daf9fcef8f863be119112010ae1c',
|
59 |
+
'src/public/dist/chunk-config-tab-settings.pro.js' => '0727d7ef8d5f8fc66869d3fb39062a46',
|
60 |
'src/public/dist/chunk-config-tab-tcf.lite.js' => '0adcbf2f3ea0f9ab7ebc49bbdd415813',
|
61 |
'src/public/dist/chunk-config-tab-tcf.pro.js' => '7e87bb493095bd8024163e00e140e746',
|
62 |
+
'src/public/dist/customize_banner.lite.js' => 'c71401f58a1d6e64668452d08d3b27bb',
|
63 |
+
'src/public/dist/customize_banner.pro.js' => 'dd3f8d57e9d0dac55f7e7f3d06d1fc2c',
|
64 |
+
'src/public/dist/customize.lite.js' => '74eea56813259c0dec291e20466fe0bc',
|
65 |
+
'src/public/dist/customize.pro.js' => 'b873769232874d709740555ca1fad624',
|
66 |
'src/public/dist/queue.lite.js' => '7b9c552c5049e1b529155a7c01b25aef',
|
67 |
'src/public/dist/queue.pro.js' => '352f65e78294e1be38b2cc3a8c9f4a8e',
|
68 |
'src/public/dist/vendor-admin.lite.js' => 'f1c19a085c135d0f8d34f8678f9737df',
|
inc/comp/migration/AbstractDashboardTileMigration.php
CHANGED
@@ -2,9 +2,11 @@
|
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\comp\migration;
|
4 |
|
5 |
-
use DevOwl\RealCookieBanner\
|
6 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
7 |
use DevOwl\RealCookieBanner\Core;
|
|
|
|
|
8 |
// @codeCoverageIgnoreStart
|
9 |
\defined('ABSPATH') or die('No script kiddies please!');
|
10 |
// Avoid direct file request
|
@@ -41,6 +43,8 @@ abstract class AbstractDashboardTileMigration {
|
|
41 |
}
|
42 |
// Allow to dismiss this via action
|
43 |
add_action('RCB/Migration/Dismiss/' . $this->getId(), [$this, 'dismiss']);
|
|
|
|
|
44 |
// Initially create this option
|
45 |
add_option(self::OPTION_NAME_CLICKED_ACTIONS, []);
|
46 |
}
|
@@ -68,6 +72,12 @@ abstract class AbstractDashboardTileMigration {
|
|
68 |
* @return boolean
|
69 |
*/
|
70 |
abstract public function isActive();
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/**
|
72 |
* Dismiss this migration.
|
73 |
*
|
@@ -91,10 +101,14 @@ abstract class AbstractDashboardTileMigration {
|
|
91 |
public function addAction($id, $title, $description, $args = []) {
|
92 |
$args = wp_parse_args($args, [
|
93 |
'linkText' => null,
|
|
|
94 |
'linkDisabled' => \false,
|
95 |
'confirmText' => null,
|
96 |
'callback' => null,
|
97 |
-
'previewImage' => null
|
|
|
|
|
|
|
98 |
]);
|
99 |
$this->actions[$id] = \array_merge(
|
100 |
[
|
@@ -105,20 +119,37 @@ abstract class AbstractDashboardTileMigration {
|
|
105 |
],
|
106 |
$args
|
107 |
);
|
|
|
|
|
|
|
108 |
if (\is_callable($args['callback'])) {
|
109 |
add_filter('RCB/Migration/' . $this->getId() . '/' . $id, function ($result) use ($args, $id) {
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
$result = $args['callback']($result);
|
111 |
// Save that this action was performed by this user
|
112 |
if ($result['success']) {
|
113 |
-
$
|
114 |
-
$clickedActions[$this->getId() . '-' . $id] = mysql2date('c', current_time('mysql'), \false);
|
115 |
-
update_option(self::OPTION_NAME_CLICKED_ACTIONS, $clickedActions);
|
116 |
}
|
117 |
return $result;
|
118 |
});
|
119 |
}
|
120 |
return $this;
|
121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
/**
|
123 |
* Get the migration as plain array so it can be consumed in the frontend.
|
124 |
*
|
@@ -126,6 +157,7 @@ abstract class AbstractDashboardTileMigration {
|
|
126 |
*/
|
127 |
public function revisionCurrent($array) {
|
128 |
if ($this->isActive()) {
|
|
|
129 |
$array['dashboard_migration'] = [
|
130 |
'id' => $this->getId(),
|
131 |
'headline' => $this->getHeadline(),
|
@@ -177,6 +209,43 @@ abstract class AbstractDashboardTileMigration {
|
|
177 |
return \intval(\explode('.', $v)[0]) !== $majorVersion;
|
178 |
});
|
179 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
/**
|
181 |
* Dismiss a migration by ID.
|
182 |
*
|
@@ -191,6 +260,18 @@ abstract class AbstractDashboardTileMigration {
|
|
191 |
*/
|
192 |
do_action('RCB/Migration/Dismiss/' . $migrationId);
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
/**
|
195 |
* Start a given migration by ID.
|
196 |
*
|
@@ -198,6 +279,7 @@ abstract class AbstractDashboardTileMigration {
|
|
198 |
* @param string $actionId
|
199 |
*/
|
200 |
public static function doAction($migrationId, $actionId) {
|
|
|
201 |
/**
|
202 |
* Start a given migration by ID and action ID.
|
203 |
*
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\comp\migration;
|
4 |
|
5 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin;
|
6 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
7 |
use DevOwl\RealCookieBanner\Core;
|
8 |
+
use DevOwl\RealCookieBanner\Utils;
|
9 |
+
use WP_Error;
|
10 |
// @codeCoverageIgnoreStart
|
11 |
\defined('ABSPATH') or die('No script kiddies please!');
|
12 |
// Avoid direct file request
|
43 |
}
|
44 |
// Allow to dismiss this via action
|
45 |
add_action('RCB/Migration/Dismiss/' . $this->getId(), [$this, 'dismiss']);
|
46 |
+
// Make the migration available in revision
|
47 |
+
add_filter('RCB/Revision/Current', [$this, 'revisionCurrent']);
|
48 |
// Initially create this option
|
49 |
add_option(self::OPTION_NAME_CLICKED_ACTIONS, []);
|
50 |
}
|
72 |
* @return boolean
|
73 |
*/
|
74 |
abstract public function isActive();
|
75 |
+
/**
|
76 |
+
* `addAction()` your actions here.
|
77 |
+
*
|
78 |
+
* @return void
|
79 |
+
*/
|
80 |
+
abstract public function actions();
|
81 |
/**
|
82 |
* Dismiss this migration.
|
83 |
*
|
101 |
public function addAction($id, $title, $description, $args = []) {
|
102 |
$args = wp_parse_args($args, [
|
103 |
'linkText' => null,
|
104 |
+
'linkClasses' => 'button',
|
105 |
'linkDisabled' => \false,
|
106 |
'confirmText' => null,
|
107 |
'callback' => null,
|
108 |
+
'previewImage' => null,
|
109 |
+
'forceShowPerformedLabel' => \false,
|
110 |
+
'needsPro' => \false,
|
111 |
+
'info' => null
|
112 |
]);
|
113 |
$this->actions[$id] = \array_merge(
|
114 |
[
|
119 |
],
|
120 |
$args
|
121 |
);
|
122 |
+
if ($args['needsPro'] && !$this->isPro()) {
|
123 |
+
$this->actions[$id]['linkDisabled'] = \true;
|
124 |
+
}
|
125 |
if (\is_callable($args['callback'])) {
|
126 |
add_filter('RCB/Migration/' . $this->getId() . '/' . $id, function ($result) use ($args, $id) {
|
127 |
+
if ($args['needsPro'] && !$this->isPro()) {
|
128 |
+
return new \WP_Error(
|
129 |
+
'rcb_migration_only_pro',
|
130 |
+
__('Migration is only available in PRO version!', RCB_TD)
|
131 |
+
);
|
132 |
+
}
|
133 |
$result = $args['callback']($result);
|
134 |
// Save that this action was performed by this user
|
135 |
if ($result['success']) {
|
136 |
+
$this->saveActionPerformed($id);
|
|
|
|
|
137 |
}
|
138 |
return $result;
|
139 |
});
|
140 |
}
|
141 |
return $this;
|
142 |
}
|
143 |
+
/**
|
144 |
+
* Save an action as "performed" so we can show this in the UI.
|
145 |
+
*
|
146 |
+
* @param string $id
|
147 |
+
*/
|
148 |
+
public function saveActionPerformed($id) {
|
149 |
+
$clickedActions = get_option(self::OPTION_NAME_CLICKED_ACTIONS, []);
|
150 |
+
$clickedActions[$this->getId() . '-' . $id] = mysql2date('c', current_time('mysql'), \false);
|
151 |
+
update_option(self::OPTION_NAME_CLICKED_ACTIONS, $clickedActions);
|
152 |
+
}
|
153 |
/**
|
154 |
* Get the migration as plain array so it can be consumed in the frontend.
|
155 |
*
|
157 |
*/
|
158 |
public function revisionCurrent($array) {
|
159 |
if ($this->isActive()) {
|
160 |
+
do_action('RCB/Migration/RegisterActions');
|
161 |
$array['dashboard_migration'] = [
|
162 |
'id' => $this->getId(),
|
163 |
'headline' => $this->getHeadline(),
|
209 |
return \intval(\explode('.', $v)[0]) !== $majorVersion;
|
210 |
});
|
211 |
}
|
212 |
+
/**
|
213 |
+
* Delete customizer texts for given languages and option keys.
|
214 |
+
*
|
215 |
+
* @param string[] $languages
|
216 |
+
* @param string[] $ids
|
217 |
+
* @return string[] Deleted option keys
|
218 |
+
*/
|
219 |
+
public function deleteCustomizerTexts($languages, $ids) {
|
220 |
+
$compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
|
221 |
+
// Prepare a list of all languages so we can also consider `LanguageDependingOption` options
|
222 |
+
$suffixes = [];
|
223 |
+
if ($compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin) {
|
224 |
+
foreach ($compLanguage->getActiveLanguages() as $locale) {
|
225 |
+
foreach ($languages as $langToDelete) {
|
226 |
+
if (\DevOwl\RealCookieBanner\Utils::startsWith(\strtolower($locale), $langToDelete)) {
|
227 |
+
$suffixes[] = '-' . $locale;
|
228 |
+
// See `LanguageDependingOption::getOptionName`
|
229 |
+
continue;
|
230 |
+
}
|
231 |
+
}
|
232 |
+
}
|
233 |
+
}
|
234 |
+
// Delete customizer options
|
235 |
+
$deletedOptionsTexts = [];
|
236 |
+
foreach ($ids as $optionName) {
|
237 |
+
if (delete_option($optionName)) {
|
238 |
+
$deletedOptionsTexts[] = $optionName;
|
239 |
+
}
|
240 |
+
foreach ($suffixes as $suffix) {
|
241 |
+
$suffixOptionName = $optionName . $suffix;
|
242 |
+
if (delete_option($suffixOptionName)) {
|
243 |
+
$deletedOptionsTexts[] = $suffixOptionName;
|
244 |
+
}
|
245 |
+
}
|
246 |
+
}
|
247 |
+
return $deletedOptionsTexts;
|
248 |
+
}
|
249 |
/**
|
250 |
* Dismiss a migration by ID.
|
251 |
*
|
260 |
*/
|
261 |
do_action('RCB/Migration/Dismiss/' . $migrationId);
|
262 |
}
|
263 |
+
/**
|
264 |
+
* Register all actions with `AbstractDashboardTileMigration#actions()` method.
|
265 |
+
*/
|
266 |
+
public static function doRegisterActions() {
|
267 |
+
/**
|
268 |
+
* Register all actions with `AbstractDashboardTileMigration#actions()` method.
|
269 |
+
*
|
270 |
+
* @hook RCB/Migration/RegisterActions
|
271 |
+
* @since 3.0.0
|
272 |
+
*/
|
273 |
+
return do_action('RCB/Migration/RegisterActions');
|
274 |
+
}
|
275 |
/**
|
276 |
* Start a given migration by ID.
|
277 |
*
|
279 |
* @param string $actionId
|
280 |
*/
|
281 |
public static function doAction($migrationId, $actionId) {
|
282 |
+
self::doRegisterActions();
|
283 |
/**
|
284 |
* Start a given migration by ID and action ID.
|
285 |
*
|
inc/comp/migration/DashboardTileMigrationMajor2.php
CHANGED
@@ -3,7 +3,6 @@
|
|
3 |
namespace DevOwl\RealCookieBanner\comp\migration;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin;
|
6 |
-
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
7 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
8 |
use DevOwl\RealCookieBanner\Core;
|
9 |
use DevOwl\RealCookieBanner\settings\CookieGroup;
|
@@ -46,8 +45,7 @@ class DashboardTileMigrationMajor2 extends \DevOwl\RealCookieBanner\comp\migrati
|
|
46 |
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_HIDE_MORE
|
47 |
];
|
48 |
// Documented in AbstractDashboardTileMigration
|
49 |
-
public function
|
50 |
-
parent::__construct();
|
51 |
$isTcfActive = \DevOwl\RealCookieBanner\settings\TCF::getInstance()->isActive();
|
52 |
$isCountryBypassActive = \DevOwl\RealCookieBanner\settings\CountryBypass::getInstance()->isActive();
|
53 |
$core = \DevOwl\RealCookieBanner\Core::getInstance();
|
@@ -149,34 +147,9 @@ class DashboardTileMigrationMajor2 extends \DevOwl\RealCookieBanner\comp\migrati
|
|
149 |
*/
|
150 |
public function applyNewTexts($result) {
|
151 |
if (!is_wp_error($result)) {
|
152 |
-
$
|
153 |
-
// Prepare a list of all languages so we can also consider `LanguageDependingOption` options
|
154 |
-
$suffixes = [];
|
155 |
-
if ($compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin) {
|
156 |
-
foreach ($compLanguage->getActiveLanguages() as $locale) {
|
157 |
-
foreach (self::DELETE_LANGUAGES as $langToDelete) {
|
158 |
-
if (\DevOwl\RealCookieBanner\Utils::startsWith(\strtolower($locale), $langToDelete)) {
|
159 |
-
$suffixes[] = '-' . $locale;
|
160 |
-
// See `LanguageDependingOption::getOptionName`
|
161 |
-
continue;
|
162 |
-
}
|
163 |
-
}
|
164 |
-
}
|
165 |
-
}
|
166 |
-
// Delete customizer options
|
167 |
-
$deletedOptionsTexts = [];
|
168 |
-
foreach (self::DELETE_OPTIONS_TEXTS as $optionName) {
|
169 |
-
if (delete_option($optionName)) {
|
170 |
-
$deletedOptionsTexts[] = $optionName;
|
171 |
-
}
|
172 |
-
foreach ($suffixes as $suffix) {
|
173 |
-
$suffixOptionName = $optionName . $suffix;
|
174 |
-
if (delete_option($suffixOptionName)) {
|
175 |
-
$deletedOptionsTexts[] = $suffixOptionName;
|
176 |
-
}
|
177 |
-
}
|
178 |
-
}
|
179 |
// Update group texts
|
|
|
180 |
if ($compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin) {
|
181 |
// Only sync-plugins create clones of terms
|
182 |
$compLanguage->iterateAllLanguagesContext(function ($locale) {
|
3 |
namespace DevOwl\RealCookieBanner\comp\migration;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin;
|
|
|
6 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
7 |
use DevOwl\RealCookieBanner\Core;
|
8 |
use DevOwl\RealCookieBanner\settings\CookieGroup;
|
45 |
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_HIDE_MORE
|
46 |
];
|
47 |
// Documented in AbstractDashboardTileMigration
|
48 |
+
public function actions() {
|
|
|
49 |
$isTcfActive = \DevOwl\RealCookieBanner\settings\TCF::getInstance()->isActive();
|
50 |
$isCountryBypassActive = \DevOwl\RealCookieBanner\settings\CountryBypass::getInstance()->isActive();
|
51 |
$core = \DevOwl\RealCookieBanner\Core::getInstance();
|
147 |
*/
|
148 |
public function applyNewTexts($result) {
|
149 |
if (!is_wp_error($result)) {
|
150 |
+
$deletedOptionsTexts = $this->deleteCustomizerTexts(self::DELETE_LANGUAGES, self::DELETE_OPTIONS_TEXTS);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
// Update group texts
|
152 |
+
$compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
|
153 |
if ($compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin) {
|
154 |
// Only sync-plugins create clones of terms
|
155 |
$compLanguage->iterateAllLanguagesContext(function ($locale) {
|
inc/comp/migration/DashboardTileMigrationMajor3.php
ADDED
@@ -0,0 +1,436 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DevOwl\RealCookieBanner\comp\migration;
|
4 |
+
|
5 |
+
use DevOwl\RealCookieBanner\Core;
|
6 |
+
use DevOwl\RealCookieBanner\presets\BlockerPresets;
|
7 |
+
use DevOwl\RealCookieBanner\scanner\AutomaticScanStarter;
|
8 |
+
use DevOwl\RealCookieBanner\settings\Blocker;
|
9 |
+
use DevOwl\RealCookieBanner\settings\Consent;
|
10 |
+
use DevOwl\RealCookieBanner\Utils;
|
11 |
+
use DevOwl\RealCookieBanner\view\customize\banner\BasicLayout;
|
12 |
+
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
13 |
+
use DevOwl\RealCookieBanner\view\customize\banner\Decision;
|
14 |
+
use DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton;
|
15 |
+
use DevOwl\RealCookieBanner\view\customize\banner\individual\Texts as IndividualTexts;
|
16 |
+
use DevOwl\RealCookieBanner\view\customize\banner\Mobile;
|
17 |
+
use DevOwl\RealCookieBanner\view\customize\banner\Texts;
|
18 |
+
// @codeCoverageIgnoreStart
|
19 |
+
\defined('ABSPATH') or die('No script kiddies please!');
|
20 |
+
// Avoid direct file request
|
21 |
+
// @codeCoverageIgnoreEnd
|
22 |
+
/**
|
23 |
+
* Migration for Major version 3.
|
24 |
+
*
|
25 |
+
* @see https://app.clickup.com/t/2fjk49z
|
26 |
+
*/
|
27 |
+
class DashboardTileMigrationMajor3 extends \DevOwl\RealCookieBanner\comp\migration\AbstractDashboardTileMigration {
|
28 |
+
const TRANSIENT_CACHE_KEY_BLOCKERS_WITH_BETTER_POTENTIAL_VISUAL_TYPE =
|
29 |
+
RCB_OPT_PREFIX . '-blockers-with-better-potential-visual-type';
|
30 |
+
const DELETE_LANGUAGES = ['de', 'en'];
|
31 |
+
const DELETE_OPTIONS_TEXTS = [
|
32 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_HEADLINE,
|
33 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_DESCRIPTION,
|
34 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_EPRIVACY_USA,
|
35 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_AGE_NOTICE,
|
36 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_AGE_NOTICE_BLOCKER,
|
37 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_LIST_SERVICES_NOTICE,
|
38 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_CONSENT_FORWARDING,
|
39 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_ACCEPT_ALL,
|
40 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_ACCEPT_ESSENTIALS,
|
41 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_ACCEPT_INDIVIDUAL,
|
42 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_POWERED_BY_TEXT,
|
43 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_BLOCKER_HEADLINE,
|
44 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_BLOCKER_LINK_SHOW_MISSING,
|
45 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_BLOCKER_LOAD_BUTTON,
|
46 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Texts::SETTING_BLOCKER_ACCEPT_INFO,
|
47 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_HEADLINE,
|
48 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_DESCRIPTION,
|
49 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_SAVE,
|
50 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_SHOW_MORE,
|
51 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SETTING_HIDE_MORE
|
52 |
+
];
|
53 |
+
/**
|
54 |
+
* Initialize hooks and listen to saves to content blockers so we can update the transient of `fetchBlockersWithBetterPotentialVisualType`.
|
55 |
+
*/
|
56 |
+
public function init() {
|
57 |
+
parent::init();
|
58 |
+
add_action(
|
59 |
+
'save_post_' . \DevOwl\RealCookieBanner\settings\Blocker::CPT_NAME,
|
60 |
+
[$this, 'save_post_blocker'],
|
61 |
+
10,
|
62 |
+
3
|
63 |
+
);
|
64 |
+
}
|
65 |
+
/**
|
66 |
+
* A blocker was saved.
|
67 |
+
*
|
68 |
+
* @param int $post_ID
|
69 |
+
* @param WP_Post $post
|
70 |
+
* @param boolean $update
|
71 |
+
*/
|
72 |
+
public function save_post_blocker($post_ID, $post, $update) {
|
73 |
+
if ($update) {
|
74 |
+
$transientValue = get_transient(self::TRANSIENT_CACHE_KEY_BLOCKERS_WITH_BETTER_POTENTIAL_VISUAL_TYPE);
|
75 |
+
if ($this->isPro() && \is_array($transientValue) && isset($transientValue[$post_ID])) {
|
76 |
+
unset($transientValue[$post_ID]);
|
77 |
+
set_transient(self::TRANSIENT_CACHE_KEY_BLOCKERS_WITH_BETTER_POTENTIAL_VISUAL_TYPE, $transientValue);
|
78 |
+
if (\count($transientValue) === 0) {
|
79 |
+
$this->saveActionPerformed('visual-content-blocker');
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
83 |
+
}
|
84 |
+
// Documented in AbstractDashboardTileMigration
|
85 |
+
public function actions() {
|
86 |
+
$core = \DevOwl\RealCookieBanner\Core::getInstance();
|
87 |
+
$isMobileExperienceEnabled = \boolval(
|
88 |
+
get_option(\DevOwl\RealCookieBanner\view\customize\banner\Mobile::SETTING_ENABLED)
|
89 |
+
);
|
90 |
+
$blockersWithBetterPotentialVisualType = $this->fetchBlockersWithBetterPotentialVisualType();
|
91 |
+
$this->addAction(
|
92 |
+
'ttdsg',
|
93 |
+
__('Legal adjustments to texts and design in cookie banner', RCB_TD),
|
94 |
+
\join('<br /><br/ >', [
|
95 |
+
// translators:
|
96 |
+
__(
|
97 |
+
'In recent months, more clarity has been created about what consent management on websites should look like - and what it shouldn\'t. In particular, through the <a href="https://www.gesetze-im-internet.de/ttdsg/" target="_blank">TTDSG</a> (Telecommunications Telemedia Data Protection Act; Germany) and <a href="https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf" target="_blank">Guidance of the Conference of Independent Data Protection Authorities for cookie banners</a> (coordinated legal interpretation of all German data protection authorities; in German), there are now clearer rules that further interpret or complement the EU-wide applicable <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A32009L0136" target="_blank">ePrivacy Directive</a> and <a href="https://gdpr-info.eu/" target="_blank">GDPR</a>. Furthermore, there were important decisions such as the evaluation of <a href="https://www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-n-21-2022-english.pdf" target="_blank">TCF by ADP (Belgium)</a>, the <a href="https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf" target="_blank">Google Analytics decision by dsb (Austria)</a> and the <a href="https://www.cnil.fr/sites/default/files/atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf" target="_blank">position on Google Analytics by CNIL</a>.',
|
98 |
+
RCB_TD
|
99 |
+
),
|
100 |
+
__(
|
101 |
+
'We have adapted the texts and design suggestions for the cookie banner accordingly. <strong>We strongly advise you to adopt the new texts and design suggestions for your website!</strong>',
|
102 |
+
RCB_TD
|
103 |
+
),
|
104 |
+
__(
|
105 |
+
'If you want to keep your individual Cookie Banner Design, please make sure that the choices ("Accept all", "Continue without consent" and "Set privacy settings individually") are displayed equally and all services are named in the first view of your cookie banner.',
|
106 |
+
RCB_TD
|
107 |
+
)
|
108 |
+
]),
|
109 |
+
[
|
110 |
+
'linkText' => __('Apply new texts and important design changes', RCB_TD),
|
111 |
+
'confirmText' => __(
|
112 |
+
'We will overwrite all texts in your cookie banner with new text suggestions. Also, we name all services in the first view of the cookie banner instead of a bullet list of service groups, equalize the appearance of "Accept all" and "Continue without consent", and highlight "Set privacy settings individually" in your cookie banner. Please check afterwards if all adjustments are correct for your individual requirements and reconfigure your cookie banner yourself if necessary. Are you sure you want to apply the changes?',
|
113 |
+
RCB_TD
|
114 |
+
),
|
115 |
+
'callback' => [$this, 'applyNewTextsAndImportantDesignChanges'],
|
116 |
+
'previewImage' => $core->getBaseAssetsUrl(__('cookie-banner-frontend.png', RCB_TD))
|
117 |
+
]
|
118 |
+
)
|
119 |
+
->addAction(
|
120 |
+
'legal-links',
|
121 |
+
__('Place legal links on each subpage', RCB_TD),
|
122 |
+
\join('<br /><br/ >', [
|
123 |
+
// translators:
|
124 |
+
__(
|
125 |
+
'In accordance with the requirements of the "<a href="https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf" target="_blank">Guidance of the Conference of Independent Data Protection Authorities for cookie banners</a>", the possibility to view, modify and revoke consent must be directly accessible on every sub-page of your website.',
|
126 |
+
RCB_TD
|
127 |
+
),
|
128 |
+
__(
|
129 |
+
'This means you can no longer "hide" the links/buttons in your privacy policy. <strong>We recommend placing the option in the footer of each subpage.</strong>',
|
130 |
+
RCB_TD
|
131 |
+
),
|
132 |
+
__(
|
133 |
+
'You can now place the legal links not only as shortcodes, but also in WordPress menus as menu items.',
|
134 |
+
RCB_TD
|
135 |
+
)
|
136 |
+
]),
|
137 |
+
[
|
138 |
+
'linkText' => __('Place legal links', RCB_TD),
|
139 |
+
'linkClasses' => 'button button-link',
|
140 |
+
'callback' => $this->getConfigUrl('/consent/legal')
|
141 |
+
]
|
142 |
+
)
|
143 |
+
->addAction(
|
144 |
+
'visual-content-blocker',
|
145 |
+
__('Visual content blocker in pretty: Looks like without content blocker!', RCB_TD),
|
146 |
+
\join(
|
147 |
+
'<br /><br/ >',
|
148 |
+
\array_filter([
|
149 |
+
// translators:
|
150 |
+
__(
|
151 |
+
'Visual content blockers replace, for example, YouTube videos on the website if the visitor has not given consent to YouTube loading in the cookie banner. Until now, these were very text-heavy to display all the legally necessary requirements.',
|
152 |
+
RCB_TD
|
153 |
+
),
|
154 |
+
__(
|
155 |
+
'Hero and Wrapped Content Blockers are trying to do that better. Hero Content Blocker mimic maps, video players, audio players, and various types of social media feeds in a privacy-compliant way, so it looks like the original element is still embedded. Consent is obtained in a modal when the visitor tries to start the video, for example. <strong>Reconfigure your content blockers now!</strong>',
|
156 |
+
RCB_TD
|
157 |
+
)
|
158 |
+
])
|
159 |
+
),
|
160 |
+
[
|
161 |
+
'needsPro' => \true,
|
162 |
+
'linkText' => __('Reconfigure Content Blocker', RCB_TD),
|
163 |
+
'callback' => $this->getConfigUrl('/blocker'),
|
164 |
+
'info' =>
|
165 |
+
\count($blockersWithBetterPotentialVisualType) > 0
|
166 |
+
? \sprintf(
|
167 |
+
// translators:
|
168 |
+
__(
|
169 |
+
'We recommend for <strong>%s</strong> to change the design to a more and better visual Content Blocker.',
|
170 |
+
RCB_TD
|
171 |
+
),
|
172 |
+
\DevOwl\RealCookieBanner\Utils::joinWithAndSeparator(
|
173 |
+
\array_values($blockersWithBetterPotentialVisualType),
|
174 |
+
__(' and ', RCB_TD)
|
175 |
+
)
|
176 |
+
)
|
177 |
+
: null,
|
178 |
+
'previewImage' => $core->getBaseAssetsUrl(__('pro-modal/visual-content-blocker.webp', RCB_TD))
|
179 |
+
]
|
180 |
+
)
|
181 |
+
->addAction(
|
182 |
+
'scanner',
|
183 |
+
__('Scan your website for services that require consent', RCB_TD),
|
184 |
+
\join('<br /><br/ >', [
|
185 |
+
__(
|
186 |
+
'The service scanner crawls every subpage of your website, all plugins and other technical indicators of your website to find services on your website that require consent. This allows you to collect all the consent you need from your website visitors.',
|
187 |
+
RCB_TD
|
188 |
+
),
|
189 |
+
__(
|
190 |
+
'If you last fully scanned your website before Februrary 2022, we recommend that you scan your website again. The scanner will now detect even more services!',
|
191 |
+
RCB_TD
|
192 |
+
)
|
193 |
+
]),
|
194 |
+
['linkText' => __('Scan website (again)', RCB_TD), 'callback' => [$this, 'scanWebsiteAgain']]
|
195 |
+
)
|
196 |
+
->addAction(
|
197 |
+
'mobile-experience',
|
198 |
+
__('Cookie banner optimizations for mobile devices', RCB_TD),
|
199 |
+
__(
|
200 |
+
'We provide additional options for optimized display of the cookie banner on mobile devices. These make the cookie banner easier to use on smartphones by optimizing it to the normal hand position of users. Also, the cookie banner is no longer Largest Contentfull Paint (LCP) as defined by Google\'s Web Vitals and thus the optimizations will increase your PageSpeed score for mobile devices.',
|
201 |
+
RCB_TD
|
202 |
+
),
|
203 |
+
[
|
204 |
+
'needsPro' => \true,
|
205 |
+
'linkText' => __('Activate optimizations', RCB_TD),
|
206 |
+
'forceShowPerformedLabel' => $isMobileExperienceEnabled,
|
207 |
+
'linkDisabled' => $isMobileExperienceEnabled,
|
208 |
+
'callback' => [$this, 'applyMobileOptimizations'],
|
209 |
+
'previewImage' => $core->getBaseAssetsUrl(__('pro-modal/mobile-optimization.png', RCB_TD))
|
210 |
+
]
|
211 |
+
);
|
212 |
+
}
|
213 |
+
/**
|
214 |
+
* Start the scanner and redirect to scanner tab.
|
215 |
+
*
|
216 |
+
* @param array $result
|
217 |
+
*/
|
218 |
+
public function applyMobileOptimizations($result) {
|
219 |
+
if (!is_wp_error($result)) {
|
220 |
+
update_option(\DevOwl\RealCookieBanner\view\customize\banner\Mobile::SETTING_ENABLED, '1');
|
221 |
+
update_option(
|
222 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BasicLayout::SETTING_ANIMATION_IN,
|
223 |
+
'slideInUp'
|
224 |
+
);
|
225 |
+
update_option(
|
226 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BasicLayout::SETTING_ANIMATION_IN_DURATION,
|
227 |
+
500
|
228 |
+
);
|
229 |
+
$result['success'] = \true;
|
230 |
+
$result['redirect'] = add_query_arg(
|
231 |
+
[
|
232 |
+
'autofocus[section]' => \DevOwl\RealCookieBanner\view\customize\banner\Mobile::SECTION,
|
233 |
+
'return' => wp_get_raw_referer()
|
234 |
+
],
|
235 |
+
admin_url('customize.php')
|
236 |
+
);
|
237 |
+
}
|
238 |
+
return $result;
|
239 |
+
}
|
240 |
+
/**
|
241 |
+
* Start the scanner and redirect to scanner tab.
|
242 |
+
*
|
243 |
+
* @param array $result
|
244 |
+
*/
|
245 |
+
public function scanWebsiteAgain($result) {
|
246 |
+
if (!is_wp_error($result)) {
|
247 |
+
\DevOwl\RealCookieBanner\scanner\AutomaticScanStarter::instance()->addJobToQueue();
|
248 |
+
$result['success'] = \true;
|
249 |
+
$result['redirect'] = $this->getConfigUrl('/scanner');
|
250 |
+
}
|
251 |
+
return $result;
|
252 |
+
}
|
253 |
+
/**
|
254 |
+
* Apply new customizer texts and important design changes and overwrite existing ones.
|
255 |
+
*
|
256 |
+
* @param array $result
|
257 |
+
*/
|
258 |
+
public function applyNewTextsAndImportantDesignChanges($result) {
|
259 |
+
if (!is_wp_error($result)) {
|
260 |
+
$bannerCustomize = \DevOwl\RealCookieBanner\Core::getInstance()
|
261 |
+
->getBanner()
|
262 |
+
->getCustomize();
|
263 |
+
$deletedOptionsTexts = $this->deleteCustomizerTexts(self::DELETE_LANGUAGES, self::DELETE_OPTIONS_TEXTS);
|
264 |
+
update_option(\DevOwl\RealCookieBanner\settings\Consent::SETTING_LIST_SERVICES_NOTICE, '1');
|
265 |
+
update_option(\DevOwl\RealCookieBanner\view\customize\banner\Decision::SETTING_SHOW_GROUPS, '');
|
266 |
+
update_option(
|
267 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL,
|
268 |
+
'1'
|
269 |
+
);
|
270 |
+
update_option(
|
271 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton::SETTING_USE_ACCEPT_ALL,
|
272 |
+
'1'
|
273 |
+
);
|
274 |
+
// Update "Set privacy settings individually" button and adjust colors to the current design
|
275 |
+
$buttonType = $bannerCustomize->getSetting(
|
276 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Decision::SETTING_ACCEPT_INDIVIDUAL
|
277 |
+
);
|
278 |
+
$acceptAllBg = $bannerCustomize->getSetting(
|
279 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_BG
|
280 |
+
);
|
281 |
+
$acceptAllBgHover = $bannerCustomize->getSetting(
|
282 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG
|
283 |
+
);
|
284 |
+
if ($buttonType === 'link' || $buttonType === 'hidden') {
|
285 |
+
delete_option(
|
286 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE
|
287 |
+
);
|
288 |
+
update_option(
|
289 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Decision::SETTING_ACCEPT_INDIVIDUAL,
|
290 |
+
'link'
|
291 |
+
);
|
292 |
+
// always reactivate `hidden` button
|
293 |
+
update_option(
|
294 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR,
|
295 |
+
$acceptAllBg
|
296 |
+
);
|
297 |
+
update_option(
|
298 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR,
|
299 |
+
$acceptAllBgHover
|
300 |
+
);
|
301 |
+
} elseif ($buttonType === 'button') {
|
302 |
+
// Reset the button style completely and use the style of "Accept all"
|
303 |
+
update_option(
|
304 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_PADDING,
|
305 |
+
$bannerCustomize->getSetting(
|
306 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_PADDING
|
307 |
+
)
|
308 |
+
);
|
309 |
+
update_option(
|
310 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_BG,
|
311 |
+
$acceptAllBg
|
312 |
+
);
|
313 |
+
update_option(
|
314 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_TEXT_ALIGN,
|
315 |
+
$bannerCustomize->getSetting(
|
316 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_TEXT_ALIGN
|
317 |
+
)
|
318 |
+
);
|
319 |
+
update_option(
|
320 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE,
|
321 |
+
$bannerCustomize->getSetting(
|
322 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_FONT_SIZE
|
323 |
+
)
|
324 |
+
);
|
325 |
+
update_option(
|
326 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR,
|
327 |
+
$bannerCustomize->getSetting(
|
328 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_FONT_COLOR
|
329 |
+
)
|
330 |
+
);
|
331 |
+
update_option(
|
332 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT,
|
333 |
+
$bannerCustomize->getSetting(
|
334 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_FONT_WEIGHT
|
335 |
+
)
|
336 |
+
);
|
337 |
+
update_option(
|
338 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH,
|
339 |
+
$bannerCustomize->getSetting(
|
340 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_BORDER_WIDTH
|
341 |
+
)
|
342 |
+
);
|
343 |
+
update_option(
|
344 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_BORDER_COLOR,
|
345 |
+
$bannerCustomize->getSetting(
|
346 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_BORDER_COLOR
|
347 |
+
)
|
348 |
+
);
|
349 |
+
update_option(
|
350 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BG,
|
351 |
+
$acceptAllBgHover
|
352 |
+
);
|
353 |
+
update_option(
|
354 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BORDER_COLOR,
|
355 |
+
$bannerCustomize->getSetting(
|
356 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BORDER_COLOR
|
357 |
+
)
|
358 |
+
);
|
359 |
+
update_option(
|
360 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR,
|
361 |
+
$bannerCustomize->getSetting(
|
362 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_FONT_COLOR
|
363 |
+
)
|
364 |
+
);
|
365 |
+
}
|
366 |
+
$result['success'] = \true;
|
367 |
+
$result['deleted_options_texts'] = $deletedOptionsTexts;
|
368 |
+
$result['redirect'] = $bannerCustomize->getUrl();
|
369 |
+
}
|
370 |
+
return $result;
|
371 |
+
}
|
372 |
+
/**
|
373 |
+
* Calculate existing blockers with potential visual type other than `default` from the templates
|
374 |
+
* and cache the result to a transient to avoid the calculation again.
|
375 |
+
*
|
376 |
+
* @return string[]
|
377 |
+
*/
|
378 |
+
protected function fetchBlockersWithBetterPotentialVisualType() {
|
379 |
+
if (!$this->isPro()) {
|
380 |
+
return [];
|
381 |
+
}
|
382 |
+
$result = get_transient(self::TRANSIENT_CACHE_KEY_BLOCKERS_WITH_BETTER_POTENTIAL_VISUAL_TYPE);
|
383 |
+
if (!\is_array($result)) {
|
384 |
+
$result = [];
|
385 |
+
$blockerPresets = new \DevOwl\RealCookieBanner\presets\BlockerPresets();
|
386 |
+
$blockers = $blockerPresets->getBlockerWithPreset();
|
387 |
+
if (!is_wp_error($blockers)) {
|
388 |
+
foreach ($blockers as $blocker) {
|
389 |
+
if (!$blocker->metas['visual'] || $blocker->metas['visualType'] !== 'default') {
|
390 |
+
// Already configured as non-default visual or visually deactivated
|
391 |
+
continue;
|
392 |
+
}
|
393 |
+
$presetWithAttributes = $blockerPresets->getWithAttributes($blocker->metas['presetId']);
|
394 |
+
if ($presetWithAttributes === \false || !isset($presetWithAttributes['attributes']['visualType'])) {
|
395 |
+
continue;
|
396 |
+
}
|
397 |
+
$visualType = $presetWithAttributes['attributes']['visualType'];
|
398 |
+
if ($visualType !== 'default') {
|
399 |
+
$result[$blocker->ID] = $blocker->post_title;
|
400 |
+
}
|
401 |
+
}
|
402 |
+
}
|
403 |
+
set_transient(self::TRANSIENT_CACHE_KEY_BLOCKERS_WITH_BETTER_POTENTIAL_VISUAL_TYPE, $result);
|
404 |
+
}
|
405 |
+
return $result;
|
406 |
+
}
|
407 |
+
// Documented in AbstractDashboardTileMigration
|
408 |
+
public function getId() {
|
409 |
+
return 'v3';
|
410 |
+
}
|
411 |
+
// Documented in AbstractDashboardTileMigration
|
412 |
+
public function getHeadline() {
|
413 |
+
return __('Updates in v3.0: You should act to be safe!', RCB_TD);
|
414 |
+
}
|
415 |
+
// Documented in AbstractDashboardTileMigration
|
416 |
+
public function getDescription() {
|
417 |
+
return \join('<br /><br/ >', [
|
418 |
+
__(
|
419 |
+
'With Real Cookie Banner 3.0 we have released a major update, in which we have implemented, among other things, current legal adjustments. Read more about the changes in our <a href="https://devowl.io/2022/real-cookie-banner-3-0/" target="_blank">blog post</a>.',
|
420 |
+
RCB_TD
|
421 |
+
),
|
422 |
+
__(
|
423 |
+
'<strong>You should definitely take a look at the following points, because we have adjusted the behavior of the cookie banner.</strong> All changes can be optionally activated or ignored. We will not fundamentally change your cookie banner without your consent.',
|
424 |
+
RCB_TD
|
425 |
+
)
|
426 |
+
]);
|
427 |
+
}
|
428 |
+
// Documented in AbstractDashboardTileMigration
|
429 |
+
public function isActive() {
|
430 |
+
return $this->hasMajorPreviouslyInstalled(2);
|
431 |
+
}
|
432 |
+
// Documented in AbstractDashboardTileMigration
|
433 |
+
public function dismiss() {
|
434 |
+
return $this->removeMajorVersionFromPreviouslyInstalled(2);
|
435 |
+
}
|
436 |
+
}
|
inc/comp/migration/DashboardTileTcfV2IllegalUsage.php
CHANGED
@@ -16,8 +16,7 @@ use DevOwl\RealCookieBanner\settings\TCF;
|
|
16 |
class DashboardTileTcfV2IllegalUsage extends \DevOwl\RealCookieBanner\comp\migration\AbstractDashboardTileMigration {
|
17 |
const EXPECTED_VERSION = '2.14.2';
|
18 |
// Documented in AbstractDashboardTileMigration
|
19 |
-
public function
|
20 |
-
parent::__construct();
|
21 |
$this->addAction(
|
22 |
'paragraph1',
|
23 |
'',
|
16 |
class DashboardTileTcfV2IllegalUsage extends \DevOwl\RealCookieBanner\comp\migration\AbstractDashboardTileMigration {
|
17 |
const EXPECTED_VERSION = '2.14.2';
|
18 |
// Documented in AbstractDashboardTileMigration
|
19 |
+
public function actions() {
|
|
|
20 |
$this->addAction(
|
21 |
'paragraph1',
|
22 |
'',
|
inc/presets/BlockerPresets.php
CHANGED
@@ -202,10 +202,6 @@ class BlockerPresets extends \DevOwl\RealCookieBanner\presets\Presets {
|
|
202 |
$result[$id] = $preset;
|
203 |
}
|
204 |
$this->applyMiddleware($existingCookies, $existingBlockers, $result);
|
205 |
-
// Iterate again to apply middleware
|
206 |
-
foreach ($result as &$preset) {
|
207 |
-
$this->applyLegacyMiddleware($preset, $existingCookies, $existingBlockers, $result);
|
208 |
-
}
|
209 |
foreach ($result as &$preset) {
|
210 |
unset($preset['instance']);
|
211 |
}
|
@@ -242,39 +238,6 @@ class BlockerPresets extends \DevOwl\RealCookieBanner\presets\Presets {
|
|
242 |
}
|
243 |
}
|
244 |
}
|
245 |
-
/**
|
246 |
-
* See filter `RCB/Presets/Blocker/Middleware`.
|
247 |
-
*
|
248 |
-
* @param array $preset
|
249 |
-
* @param WP_Post[] $existingCookies
|
250 |
-
* @param WP_Post[] $existingBlockers
|
251 |
-
* @param array $result
|
252 |
-
* @deprecated Will be removed with Real Cookie Banner v3
|
253 |
-
*/
|
254 |
-
public function applyLegacyMiddleware(&$preset, $existingCookies, $existingBlockers, &$result) {
|
255 |
-
/**
|
256 |
-
* Inject some middleware directly to the content blocker preset. This can be useful to
|
257 |
-
* enhance the preset with functionalities like `extends`.
|
258 |
-
*
|
259 |
-
* @hook RCB/Presets/Blocker/Middleware
|
260 |
-
* @param {array} $preset The preset passed as reference
|
261 |
-
* @param {AbstractCookiePreset} $instance Preset instance
|
262 |
-
* @param {WP_Post[]} $existingBlockers
|
263 |
-
* @param {WP_Post[]} $existingCookies
|
264 |
-
* @param {array[]} $result All collected presets (since 2.6.0); when requesting a single preset attributes, this can be of size 1
|
265 |
-
* @param {Presets} $presetsInstance
|
266 |
-
* @deprecated Will be removed with Real Cookie Banner v3; use `RCB/Presets/Blocker/MiddlewareCallbacks` instead
|
267 |
-
* @returns {array}
|
268 |
-
*/
|
269 |
-
$preset = apply_filters_ref_array('RCB/Presets/Blocker/Middleware', [
|
270 |
-
&$preset,
|
271 |
-
$preset['instance'] ?? null,
|
272 |
-
$existingBlockers,
|
273 |
-
$existingCookies,
|
274 |
-
&$result,
|
275 |
-
$this
|
276 |
-
]);
|
277 |
-
}
|
278 |
/**
|
279 |
* Get all available blocker with a preset.
|
280 |
*/
|
202 |
$result[$id] = $preset;
|
203 |
}
|
204 |
$this->applyMiddleware($existingCookies, $existingBlockers, $result);
|
|
|
|
|
|
|
|
|
205 |
foreach ($result as &$preset) {
|
206 |
unset($preset['instance']);
|
207 |
}
|
238 |
}
|
239 |
}
|
240 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
/**
|
242 |
* Get all available blocker with a preset.
|
243 |
*/
|
inc/presets/CookiePresets.php
CHANGED
@@ -179,10 +179,6 @@ class CookiePresets extends \DevOwl\RealCookieBanner\presets\Presets {
|
|
179 |
$result[$id] = $preset;
|
180 |
}
|
181 |
$this->applyMiddleware($existingCookies, $existingBlockers, $result);
|
182 |
-
// Iterate again to apply middleware
|
183 |
-
foreach ($result as &$preset) {
|
184 |
-
$this->applyLegacyMiddleware($preset, $existingCookies, $existingBlockers, $result);
|
185 |
-
}
|
186 |
foreach ($result as &$preset) {
|
187 |
unset($preset['instance']);
|
188 |
}
|
@@ -219,39 +215,6 @@ class CookiePresets extends \DevOwl\RealCookieBanner\presets\Presets {
|
|
219 |
}
|
220 |
}
|
221 |
}
|
222 |
-
/**
|
223 |
-
* See filter `RCB/Presets/Cookies/Middleware`.
|
224 |
-
*
|
225 |
-
* @param array $preset
|
226 |
-
* @param WP_Post[] $existingCookies
|
227 |
-
* @param WP_Post[] $existingBlockers
|
228 |
-
* @param array $result
|
229 |
-
* @deprecated Will be removed with Real Cookie Banner v3
|
230 |
-
*/
|
231 |
-
public function applyLegacyMiddleware(&$preset, $existingCookies, $existingBlockers, &$result) {
|
232 |
-
/**
|
233 |
-
* Inject some middleware directly to the cookie preset. This can be useful to
|
234 |
-
* enhance the preset with functionalities like `extends`.
|
235 |
-
*
|
236 |
-
* @hook RCB/Presets/Cookies/Middleware
|
237 |
-
* @param {array} $preset The preset passed as reference
|
238 |
-
* @param {AbstractCookiePreset} $instance Preset instance
|
239 |
-
* @param {WP_Post[]} $existingCookies
|
240 |
-
* @param {WP_Post[]} $existingBlocker
|
241 |
-
* @param {array[]} $result All collected presets (since 2.6.0); when requesting a single preset attributes, this can be of size 1
|
242 |
-
* @param {Presets} $presetsInstance
|
243 |
-
* @deprecated Will be removed with Real Cookie Banner v3; use `RCB/Presets/Cookies/MiddlewareCallbacks` instead
|
244 |
-
* @returns {array}
|
245 |
-
*/
|
246 |
-
$preset = apply_filters_ref_array('RCB/Presets/Cookies/Middleware', [
|
247 |
-
&$preset,
|
248 |
-
$preset['instance'] ?? null,
|
249 |
-
$existingCookies,
|
250 |
-
$existingBlockers,
|
251 |
-
&$result,
|
252 |
-
$this
|
253 |
-
]);
|
254 |
-
}
|
255 |
/**
|
256 |
* Get all available cookies with a preset.
|
257 |
*/
|
179 |
$result[$id] = $preset;
|
180 |
}
|
181 |
$this->applyMiddleware($existingCookies, $existingBlockers, $result);
|
|
|
|
|
|
|
|
|
182 |
foreach ($result as &$preset) {
|
183 |
unset($preset['instance']);
|
184 |
}
|
215 |
}
|
216 |
}
|
217 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
/**
|
219 |
* Get all available cookies with a preset.
|
220 |
*/
|
inc/presets/Presets.php
CHANGED
@@ -292,9 +292,9 @@ abstract class Presets {
|
|
292 |
* Get the context key for cache. Presets should be saved per-language.
|
293 |
*/
|
294 |
public static function getContextKey() {
|
295 |
-
$language =
|
296 |
-
$_GET['_dataLocale']
|
297 |
-
\DevOwl\RealCookieBanner\Core::getInstance()
|
298 |
->getCompLanguage()
|
299 |
->getCurrentLanguage();
|
300 |
// Fallback to blog language
|
292 |
* Get the context key for cache. Presets should be saved per-language.
|
293 |
*/
|
294 |
public static function getContextKey() {
|
295 |
+
$language = isset($_GET['_dataLocale'])
|
296 |
+
? sanitize_text_field($_GET['_dataLocale'])
|
297 |
+
: \DevOwl\RealCookieBanner\Core::getInstance()
|
298 |
->getCompLanguage()
|
299 |
->getCurrentLanguage();
|
300 |
// Fallback to blog language
|
inc/presets/free/GoogleFontsPreset.php
CHANGED
@@ -84,10 +84,16 @@ class GoogleFontsPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookieP
|
|
84 |
'provider' => 'Google Ireland Limited',
|
85 |
'providerPrivacyPolicy' => 'https://policies.google.com/privacy',
|
86 |
'noTechnicalDefinitions' => \true,
|
87 |
-
'technicalHandlingNotice' =>
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
'codeOnPageLoad' => self::WEB_FONT_LOADER_ON_PAGE_LOAD,
|
92 |
'ePrivacyUSA' => \true
|
93 |
]
|
84 |
'provider' => 'Google Ireland Limited',
|
85 |
'providerPrivacyPolicy' => 'https://policies.google.com/privacy',
|
86 |
'noTechnicalDefinitions' => \true,
|
87 |
+
'technicalHandlingNotice' => \join('<br /><br />', [
|
88 |
+
__(
|
89 |
+
'When loading Google Fonts, personal data of your visitors is transferred to Google, which is why you need consent. Real Cookie Banner has to check the consent before loading Google Fonts (if there is a consent), which takes a few milliseconds per page view. As a result, you will inevitably notice a small flickering effect (font replacement after a few milliseconds) on your website.',
|
90 |
+
RCB_TD
|
91 |
+
),
|
92 |
+
__(
|
93 |
+
'We therefore recommend <a href="https://devowl.io/2022/google-fonts-wordpress-gdpr/" target="_blank">replacing Google Fonts with locally hosted fonts</a> when possible, rather than asking for consent. We explained how this works in our blog!',
|
94 |
+
RCB_TD
|
95 |
+
)
|
96 |
+
]),
|
97 |
'codeOnPageLoad' => self::WEB_FONT_LOADER_ON_PAGE_LOAD,
|
98 |
'ePrivacyUSA' => \true
|
99 |
]
|
inc/presets/free/WordPressCommentsPreset.php
CHANGED
@@ -63,10 +63,16 @@ class WordPressCommentsPreset extends \DevOwl\RealCookieBanner\presets\AbstractC
|
|
63 |
'sessionDuration' => \false
|
64 |
]
|
65 |
],
|
66 |
-
'technicalHandlingNotice' =>
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
'codeOptIn' => '<script>
|
71 |
var checkboxId = "wp-comment-cookies-consent";
|
72 |
var checkbox = document.querySelector(\'[name="\' + checkboxId + \'"]\');
|
63 |
'sessionDuration' => \false
|
64 |
]
|
65 |
],
|
66 |
+
'technicalHandlingNotice' => \join('<br /><br />', [
|
67 |
+
__(
|
68 |
+
'Please note that if this service is enabled, the "Save my name, email, and website in this browser for the next time I comment." checkbox in the comment form will disappear. Real Cookie Banner handles the consent to set the cookies as part of the overall cookie consent. The commentary system uses the Gravatar service to display avatars of commentators. You must also create a service for Gravatar as well.',
|
69 |
+
RCB_TD
|
70 |
+
),
|
71 |
+
__(
|
72 |
+
'Do you want to use the comment feature on your website at all? If not, we explain in our blog <a href="https://devowl.io/2022/deactivate-wordpress-comments/" target="_blank"> how to disable comments in WordPress</a>. Then you can also avoid this consent!',
|
73 |
+
RCB_TD
|
74 |
+
)
|
75 |
+
]),
|
76 |
'codeOptIn' => '<script>
|
77 |
var checkboxId = "wp-comment-cookies-consent";
|
78 |
var checkbox = document.querySelector(\'[name="\' + checkboxId + \'"]\');
|
inc/presets/free/WordPressEmojisPreset.php
CHANGED
@@ -36,7 +36,17 @@ class WordPressEmojisPreset extends \DevOwl\RealCookieBanner\presets\AbstractCoo
|
|
36 |
'https://wordpress.org/about/privacy/',
|
37 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
38 |
),
|
39 |
-
'ePrivacyUSA' => \true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
]
|
41 |
];
|
42 |
}
|
36 |
'https://wordpress.org/about/privacy/',
|
37 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
38 |
),
|
39 |
+
'ePrivacyUSA' => \true,
|
40 |
+
'technicalHandlingNotice' => \join('<br /><br />', [
|
41 |
+
__(
|
42 |
+
'Almost all browsers and operating systems released after 2015 can easily display emojis without the WordPressa Emoji Script (for which you must obtain this consent).',
|
43 |
+
RCB_TD
|
44 |
+
),
|
45 |
+
__(
|
46 |
+
'Unless you need to support particularly old browsers and operating systems, we recommend that you <a href="https://devowl.io/2022/disable-emojis-wordpress/" target="_blank">disable the WordPress emoji script</a> rather than asking for consent. How to do that, we have explained in our blog!',
|
47 |
+
RCB_TD
|
48 |
+
)
|
49 |
+
])
|
50 |
]
|
51 |
];
|
52 |
}
|
inc/presets/free/YoutubePreset.php
CHANGED
@@ -379,10 +379,21 @@ class YoutubePreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePrese
|
|
379 |
'sessionDuration' => \false
|
380 |
]
|
381 |
],
|
382 |
-
'technicalHandlingNotice' =>
|
383 |
-
|
384 |
-
|
385 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
'codeOptOutDelete' => \false,
|
387 |
'ePrivacyUSA' => \true
|
388 |
]
|
379 |
'sessionDuration' => \false
|
380 |
]
|
381 |
],
|
382 |
+
'technicalHandlingNotice' => \join('<br /><br />', [
|
383 |
+
__(
|
384 |
+
'There is no need for an opt-in script because the YouTube content is usually loaded in an iframe. You must create a content blocker that will block YouTube until the user gives consent to load it.',
|
385 |
+
RCB_TD
|
386 |
+
),
|
387 |
+
\sprintf(
|
388 |
+
// translators:
|
389 |
+
__(
|
390 |
+
'What do you have to consider when integrating %1$s into your website? <a href="%2$s" target="_blank">Learn more about it in our blog!</a>',
|
391 |
+
RCB_TD
|
392 |
+
),
|
393 |
+
$name,
|
394 |
+
esc_attr(__('https://devowl.io/2022/youtube-website-gdpr/', RCB_TD))
|
395 |
+
)
|
396 |
+
]),
|
397 |
'codeOptOutDelete' => \false,
|
398 |
'ePrivacyUSA' => \true
|
399 |
]
|
inc/presets/pro/blocker/TypeformPreset.php
CHANGED
@@ -23,7 +23,12 @@ class TypeformPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPre
|
|
23 |
'version' => self::VERSION,
|
24 |
'name' => $name,
|
25 |
'attributes' => [
|
26 |
-
'hosts' => [
|
|
|
|
|
|
|
|
|
|
|
27 |
],
|
28 |
'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/typeform.png')
|
29 |
];
|
23 |
'version' => self::VERSION,
|
24 |
'name' => $name,
|
25 |
'attributes' => [
|
26 |
+
'hosts' => [
|
27 |
+
'*wp-content/plugins/typeform/*',
|
28 |
+
'*typeform.com/to/*',
|
29 |
+
'*embed.typeform.com*',
|
30 |
+
'div[data-tf-widget]'
|
31 |
+
]
|
32 |
],
|
33 |
'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/typeform.png')
|
34 |
];
|
inc/rest/Config.php
CHANGED
@@ -394,7 +394,7 @@ class Config {
|
|
394 |
return $result;
|
395 |
}
|
396 |
if ($result['success'] !== \true) {
|
397 |
-
return new \WP_Error('rcb_migration_failed');
|
398 |
}
|
399 |
return $result;
|
400 |
}
|
394 |
return $result;
|
395 |
}
|
396 |
if ($result['success'] !== \true) {
|
397 |
+
return new \WP_Error('rcb_migration_failed', null, ['result' => $result]);
|
398 |
}
|
399 |
return $result;
|
400 |
}
|
inc/scanner/AutomaticScanStarter.php
CHANGED
@@ -48,20 +48,26 @@ class AutomaticScanStarter {
|
|
48 |
$isLicensed = !empty($licenseActivation->getCode());
|
49 |
// Check if the plugin is licensed (the user has accepted the privacy policy)
|
50 |
if ($isLicensed) {
|
51 |
-
|
52 |
-
$queue = \DevOwl\RealCookieBanner\Core::getInstance()->getRealQueue();
|
53 |
-
$persist = $queue->getPersist();
|
54 |
-
$persist->startTransaction();
|
55 |
-
$job = new \DevOwl\RealCookieBanner\Vendor\DevOwl\RealQueue\queue\Job($queue);
|
56 |
-
$job->worker = \DevOwl\RealCookieBanner\Vendor\DevOwl\RealQueue\queue\Job::WORKER_CLIENT;
|
57 |
-
$job->type = self::REAL_QUEUE_TYPE;
|
58 |
-
$job->data = new \stdClass();
|
59 |
-
$job->retries = 1;
|
60 |
-
$persist->addJob($job);
|
61 |
update_option(self::OPTION_NAME, self::STATUS_INITIALIZED);
|
62 |
-
$persist->commit();
|
63 |
}
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
/**
|
66 |
* Get the status of the automatic scan process.
|
67 |
*
|
48 |
$isLicensed = !empty($licenseActivation->getCode());
|
49 |
// Check if the plugin is licensed (the user has accepted the privacy policy)
|
50 |
if ($isLicensed) {
|
51 |
+
$this->addJobToQueue();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
update_option(self::OPTION_NAME, self::STATUS_INITIALIZED);
|
|
|
53 |
}
|
54 |
}
|
55 |
+
/**
|
56 |
+
* Add the job to start the scanner to the `real-queue`.
|
57 |
+
*/
|
58 |
+
public function addJobToQueue() {
|
59 |
+
// Add client job to start the scan process
|
60 |
+
$queue = \DevOwl\RealCookieBanner\Core::getInstance()->getRealQueue();
|
61 |
+
$persist = $queue->getPersist();
|
62 |
+
$persist->startTransaction();
|
63 |
+
$job = new \DevOwl\RealCookieBanner\Vendor\DevOwl\RealQueue\queue\Job($queue);
|
64 |
+
$job->worker = \DevOwl\RealCookieBanner\Vendor\DevOwl\RealQueue\queue\Job::WORKER_CLIENT;
|
65 |
+
$job->type = self::REAL_QUEUE_TYPE;
|
66 |
+
$job->data = new \stdClass();
|
67 |
+
$job->retries = 1;
|
68 |
+
$persist->addJob($job);
|
69 |
+
$persist->commit();
|
70 |
+
}
|
71 |
/**
|
72 |
* Get the status of the automatic scan process.
|
73 |
*
|
inc/scanner/Scanner.php
CHANGED
@@ -64,7 +64,7 @@ class Scanner {
|
|
64 |
public function teardown() {
|
65 |
$query = $this->getQuery();
|
66 |
// Get Job for this scan process
|
67 |
-
$jobId = $_GET[self::QUERY_ARG_JOB_ID] ??
|
68 |
$job =
|
69 |
$jobId > 0
|
70 |
? \DevOwl\RealCookieBanner\Core::getInstance()
|
@@ -538,6 +538,6 @@ class Scanner {
|
|
538 |
\DevOwl\RealCookieBanner\Utils::getRequestUrl()
|
539 |
);
|
540 |
$result = remove_query_arg(\DevOwl\RealCookieBanner\scanner\Scanner::QUERY_ARG_JOB_ID, $result);
|
541 |
-
return
|
542 |
}
|
543 |
}
|
64 |
public function teardown() {
|
65 |
$query = $this->getQuery();
|
66 |
// Get Job for this scan process
|
67 |
+
$jobId = \intval($_GET[self::QUERY_ARG_JOB_ID] ?? 0);
|
68 |
$job =
|
69 |
$jobId > 0
|
70 |
? \DevOwl\RealCookieBanner\Core::getInstance()
|
538 |
\DevOwl\RealCookieBanner\Utils::getRequestUrl()
|
539 |
);
|
540 |
$result = remove_query_arg(\DevOwl\RealCookieBanner\scanner\Scanner::QUERY_ARG_JOB_ID, $result);
|
541 |
+
return $result;
|
542 |
}
|
543 |
}
|
inc/settings/CookieGroup.php
CHANGED
@@ -248,7 +248,7 @@ class CookieGroup {
|
|
248 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
249 |
)
|
250 |
];
|
251 |
-
//
|
252 |
$statisticKey = $localizedKeys
|
253 |
? __('Statistic', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED)
|
254 |
: 'statistic';
|
248 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
249 |
)
|
250 |
];
|
251 |
+
// Keep this for backwards-compatibility
|
252 |
$statisticKey = $localizedKeys
|
253 |
? __('Statistic', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED)
|
254 |
: 'statistic';
|
inc/settings/General.php
CHANGED
@@ -22,12 +22,6 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
22 |
const OPTION_GROUP = 'options';
|
23 |
const SETTING_BANNER_ACTIVE = RCB_OPT_PREFIX . '-banner-active';
|
24 |
const SETTING_BLOCKER_ACTIVE = RCB_OPT_PREFIX . '-blocker-active';
|
25 |
-
/**
|
26 |
-
* Refresh site after consent.
|
27 |
-
*
|
28 |
-
* @deprecated See #m9dey3
|
29 |
-
*/
|
30 |
-
const SETTING_REFRESH_SITE_AFTER_CONSENT = RCB_OPT_PREFIX . '-refresh-site-after-consent';
|
31 |
const SETTING_IMPRINT_ID = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT;
|
32 |
const SETTING_IMPRINT_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT_EXTERNAL_URL;
|
33 |
const SETTING_IMPRINT_IS_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT_IS_EXTERNAL_URL;
|
@@ -38,12 +32,6 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
38 |
const SETTING_SET_COOKIES_VIA_MANAGER = RCB_OPT_PREFIX . '-set-cookies-via-manager';
|
39 |
const DEFAULT_BANNER_ACTIVE = \false;
|
40 |
const DEFAULT_BLOCKER_ACTIVE = \true;
|
41 |
-
/**
|
42 |
-
* Refresh site after consent.
|
43 |
-
*
|
44 |
-
* @deprecated See #m9dey3
|
45 |
-
*/
|
46 |
-
const DEFAULT_REFRESH_SITE_AFTER_CONSENT = \false;
|
47 |
const DEFAULT_IMPRINT_ID = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT;
|
48 |
const DEFAULT_IMPRINT_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT_EXTERNAL_URL;
|
49 |
const DEFAULT_IMPRINT_IS_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT_IS_EXTERNAL_URL;
|
@@ -70,11 +58,6 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
70 |
public function enableOptionsAutoload() {
|
71 |
self::enableOptionAutoload(self::SETTING_BANNER_ACTIVE, self::DEFAULT_BANNER_ACTIVE, 'boolval');
|
72 |
self::enableOptionAutoload(self::SETTING_BLOCKER_ACTIVE, self::DEFAULT_BLOCKER_ACTIVE, 'boolval');
|
73 |
-
self::enableOptionAutoload(
|
74 |
-
self::SETTING_REFRESH_SITE_AFTER_CONSENT,
|
75 |
-
self::DEFAULT_REFRESH_SITE_AFTER_CONSENT,
|
76 |
-
'boolval'
|
77 |
-
);
|
78 |
self::enableOptionAutoload(self::SETTING_IMPRINT_ID, self::DEFAULT_IMPRINT_ID, 'intval');
|
79 |
self::enableOptionAutoload(self::SETTING_IMPRINT_EXTERNAL_URL, self::DEFAULT_IMPRINT_EXTERNAL_URL);
|
80 |
self::enableOptionAutoload(
|
@@ -106,10 +89,6 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
106 |
'type' => 'boolean',
|
107 |
'show_in_rest' => \true
|
108 |
]);
|
109 |
-
register_setting(self::OPTION_GROUP, self::SETTING_REFRESH_SITE_AFTER_CONSENT, [
|
110 |
-
'type' => 'boolean',
|
111 |
-
'show_in_rest' => \true
|
112 |
-
]);
|
113 |
register_setting(self::OPTION_GROUP, self::SETTING_IMPRINT_ID, ['type' => 'number', 'show_in_rest' => \true]);
|
114 |
register_setting(self::OPTION_GROUP, self::SETTING_IMPRINT_EXTERNAL_URL, [
|
115 |
'type' => 'string',
|
@@ -149,14 +128,6 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
149 |
public function isBlockerActive() {
|
150 |
return get_option(self::SETTING_BLOCKER_ACTIVE);
|
151 |
}
|
152 |
-
/**
|
153 |
-
* Should the page refresh after consent?
|
154 |
-
*
|
155 |
-
* @return boolean
|
156 |
-
*/
|
157 |
-
public function isRefreshSiteAfterConsent() {
|
158 |
-
return get_option(self::SETTING_REFRESH_SITE_AFTER_CONSENT);
|
159 |
-
}
|
160 |
/**
|
161 |
* Get the imprint page URL.
|
162 |
*
|
22 |
const OPTION_GROUP = 'options';
|
23 |
const SETTING_BANNER_ACTIVE = RCB_OPT_PREFIX . '-banner-active';
|
24 |
const SETTING_BLOCKER_ACTIVE = RCB_OPT_PREFIX . '-blocker-active';
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
const SETTING_IMPRINT_ID = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT;
|
26 |
const SETTING_IMPRINT_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT_EXTERNAL_URL;
|
27 |
const SETTING_IMPRINT_IS_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::SETTING_IMPRINT_IS_EXTERNAL_URL;
|
32 |
const SETTING_SET_COOKIES_VIA_MANAGER = RCB_OPT_PREFIX . '-set-cookies-via-manager';
|
33 |
const DEFAULT_BANNER_ACTIVE = \false;
|
34 |
const DEFAULT_BLOCKER_ACTIVE = \true;
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
const DEFAULT_IMPRINT_ID = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT;
|
36 |
const DEFAULT_IMPRINT_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT_EXTERNAL_URL;
|
37 |
const DEFAULT_IMPRINT_IS_EXTERNAL_URL = \DevOwl\RealCookieBanner\view\customize\banner\Legal::DEFAULT_IMPRINT_IS_EXTERNAL_URL;
|
58 |
public function enableOptionsAutoload() {
|
59 |
self::enableOptionAutoload(self::SETTING_BANNER_ACTIVE, self::DEFAULT_BANNER_ACTIVE, 'boolval');
|
60 |
self::enableOptionAutoload(self::SETTING_BLOCKER_ACTIVE, self::DEFAULT_BLOCKER_ACTIVE, 'boolval');
|
|
|
|
|
|
|
|
|
|
|
61 |
self::enableOptionAutoload(self::SETTING_IMPRINT_ID, self::DEFAULT_IMPRINT_ID, 'intval');
|
62 |
self::enableOptionAutoload(self::SETTING_IMPRINT_EXTERNAL_URL, self::DEFAULT_IMPRINT_EXTERNAL_URL);
|
63 |
self::enableOptionAutoload(
|
89 |
'type' => 'boolean',
|
90 |
'show_in_rest' => \true
|
91 |
]);
|
|
|
|
|
|
|
|
|
92 |
register_setting(self::OPTION_GROUP, self::SETTING_IMPRINT_ID, ['type' => 'number', 'show_in_rest' => \true]);
|
93 |
register_setting(self::OPTION_GROUP, self::SETTING_IMPRINT_EXTERNAL_URL, [
|
94 |
'type' => 'string',
|
128 |
public function isBlockerActive() {
|
129 |
return get_option(self::SETTING_BLOCKER_ACTIVE);
|
130 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
/**
|
132 |
* Get the imprint page URL.
|
133 |
*
|
inc/settings/Revision.php
CHANGED
@@ -32,7 +32,6 @@ class Revision {
|
|
32 |
const INDEPENDENT_OPTIONS = [
|
33 |
\DevOwl\RealCookieBanner\settings\General::SETTING_BANNER_ACTIVE,
|
34 |
\DevOwl\RealCookieBanner\settings\General::SETTING_BLOCKER_ACTIVE,
|
35 |
-
\DevOwl\RealCookieBanner\settings\General::SETTING_REFRESH_SITE_AFTER_CONSENT,
|
36 |
\DevOwl\RealCookieBanner\settings\General::SETTING_HIDE_PAGE_IDS,
|
37 |
\DevOwl\RealCookieBanner\settings\Consent::SETTING_RESPECT_DO_NOT_TRACK,
|
38 |
\DevOwl\RealCookieBanner\settings\Consent::SETTING_SAVE_IP
|
32 |
const INDEPENDENT_OPTIONS = [
|
33 |
\DevOwl\RealCookieBanner\settings\General::SETTING_BANNER_ACTIVE,
|
34 |
\DevOwl\RealCookieBanner\settings\General::SETTING_BLOCKER_ACTIVE,
|
|
|
35 |
\DevOwl\RealCookieBanner\settings\General::SETTING_HIDE_PAGE_IDS,
|
36 |
\DevOwl\RealCookieBanner\settings\Consent::SETTING_RESPECT_DO_NOT_TRACK,
|
37 |
\DevOwl\RealCookieBanner\settings\Consent::SETTING_SAVE_IP
|
inc/view/blocker/Plugin.php
CHANGED
@@ -82,7 +82,19 @@ class Plugin extends \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlock
|
|
82 |
// [Plugin Comp] Ultimate Video (WP Bakery Page Builder)
|
83 |
'ultv-video__play' => ['data-src'],
|
84 |
// [Plugin Comp] Elementor Video Widget
|
85 |
-
'elementor-widget-video' => ['data-settings']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
]);
|
87 |
$cb->addVisualParentIfClass([
|
88 |
// [Theme Comp] FloThemes
|
82 |
// [Plugin Comp] Ultimate Video (WP Bakery Page Builder)
|
83 |
'ultv-video__play' => ['data-src'],
|
84 |
// [Plugin Comp] Elementor Video Widget
|
85 |
+
'elementor-widget-video' => ['data-settings'],
|
86 |
+
// If you include two Podigee players, the 1st script podigee-podcast-player.js
|
87 |
+
// will be executed directly when unblocking, and will also process the 2nd script
|
88 |
+
// right away. At this point of the 1st unblocking, data-configuration of the 2nd script
|
89 |
+
// is not yet unblocked consent-original-data-configuration. Podigee throws a
|
90 |
+
// corresponding error here.
|
91 |
+
// 2x `<p>
|
92 |
+
// <script class="podigee-podcast-player"
|
93 |
+
// src="https://player.podigee-cdn.net/podcast-player/javascripts/podigee-podcast-player.js"
|
94 |
+
// data-configuration="https://bundesrechtsanwaltskammer.podigee.io/31-folge_30/embed?context=external"
|
95 |
+
// ></script>
|
96 |
+
// </p>`
|
97 |
+
'podigee-podcast-player' => ['data-configuration']
|
98 |
]);
|
99 |
$cb->addVisualParentIfClass([
|
100 |
// [Theme Comp] FloThemes
|
inc/view/navmenu/NavMenuLinks.php
CHANGED
@@ -180,6 +180,7 @@ class NavMenuLinks {
|
|
180 |
public function wp_update_nav_menu_item($menu_id, $menu_item_db_id) {
|
181 |
$successMessage = $_POST[self::META_SUCCESS_MESSAGE_FIELD_ID][$menu_item_db_id] ?? null;
|
182 |
if ($successMessage !== null) {
|
|
|
183 |
update_post_meta($menu_item_db_id, self::META_SUCCESS_MESSAGE_META_NAME, $successMessage);
|
184 |
}
|
185 |
}
|
180 |
public function wp_update_nav_menu_item($menu_id, $menu_item_db_id) {
|
181 |
$successMessage = $_POST[self::META_SUCCESS_MESSAGE_FIELD_ID][$menu_item_db_id] ?? null;
|
182 |
if ($successMessage !== null) {
|
183 |
+
$successMessage = sanitize_text_field($successMessage);
|
184 |
update_post_meta($menu_item_db_id, self::META_SUCCESS_MESSAGE_META_NAME, $successMessage);
|
185 |
}
|
186 |
}
|
inc/view/shortcode/HistoryUuidsShortcode.php
CHANGED
@@ -17,7 +17,7 @@ class HistoryUuidsShortcode {
|
|
17 |
* Real Cookie Banner v2 had only one UUID in their consent. It does not change any behavior,
|
18 |
* but the name changed accordingly.
|
19 |
*
|
20 |
-
* @deprecated
|
21 |
*/
|
22 |
const DEPRECATED_TAG = 'rcb-consent-print-uuid';
|
23 |
/**
|
17 |
* Real Cookie Banner v2 had only one UUID in their consent. It does not change any behavior,
|
18 |
* but the name changed accordingly.
|
19 |
*
|
20 |
+
* @deprecated Remove in v4
|
21 |
*/
|
22 |
const DEPRECATED_TAG = 'rcb-consent-print-uuid';
|
23 |
/**
|
index.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Description: Obtain GDPR (DSGVO) and ePrivacy (EU cookie law) compliant opt-in consent. Find cookies and fill all legal information in your cookie banner. More than just a cookie notice!
|
9 |
* Author: devowl.io
|
10 |
* Author URI: https://devowl.io
|
11 |
-
* Version:
|
12 |
* Text Domain: real-cookie-banner
|
13 |
* Domain Path: /languages
|
14 |
*/
|
8 |
* Description: Obtain GDPR (DSGVO) and ePrivacy (EU cookie law) compliant opt-in consent. Find cookies and fill all legal information in your cookie banner. More than just a cookie notice!
|
9 |
* Author: devowl.io
|
10 |
* Author URI: https://devowl.io
|
11 |
+
* Version: 3.0.0
|
12 |
* Text Domain: real-cookie-banner
|
13 |
* Domain Path: /languages
|
14 |
*/
|
languages/real-cookie-banner-de_AT.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_AT.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-06-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
@@ -328,7 +328,7 @@ msgid "Product license not for production use!"
|
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
-
#: inc/Assets.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
@@ -374,6 +374,10 @@ msgstr ""
|
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
|
|
|
|
|
|
|
|
377 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
378 |
msgid "Updated texts (German, English)"
|
379 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
@@ -594,14 +598,14 @@ msgstr "Funktional"
|
|
594 |
msgid "Statistics"
|
595 |
msgstr "Statistik"
|
596 |
|
597 |
-
#. translators:
|
598 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
599 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
600 |
#: inc/settings/CookieGroup.php:1
|
601 |
msgid "Statistic"
|
602 |
msgstr "Statistik"
|
603 |
|
604 |
-
#. translators:
|
605 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
606 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
607 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -677,6 +681,291 @@ msgstr ""
|
|
677 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
678 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
679 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
681 |
msgid ""
|
682 |
"Briefly summarized, consents according to TCF are considered too non-"
|
@@ -2071,9 +2360,9 @@ msgid ""
|
|
2071 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2072 |
"instead uses the consent collected by Real Cookie Banner."
|
2073 |
msgstr ""
|
2074 |
-
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https"
|
2075 |
-
"
|
2076 |
-
"
|
2077 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2078 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2079 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
@@ -2355,6 +2644,23 @@ msgstr ""
|
|
2355 |
msgid "Facebook Pixel ID"
|
2356 |
msgstr "Facebook Pixel ID"
|
2357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2358 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2359 |
msgid ""
|
2360 |
"Facebook allows embedding content posted on facebook.com directly into "
|
@@ -3076,6 +3382,10 @@ msgstr ""
|
|
3076 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3077 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3078 |
|
|
|
|
|
|
|
|
|
3079 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3080 |
msgid ""
|
3081 |
"Intercom is a customer service tool that provides live chat for websites. "
|
@@ -4132,6 +4442,10 @@ msgstr ""
|
|
4132 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4133 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4134 |
|
|
|
|
|
|
|
|
|
4135 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4136 |
msgid ""
|
4137 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
@@ -4173,6 +4487,10 @@ msgstr ""
|
|
4173 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4174 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4175 |
|
|
|
|
|
|
|
|
|
4176 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4177 |
msgid ""
|
4178 |
"Stripe is an online payment service with which payments can be made in this "
|
@@ -5550,16 +5868,33 @@ msgstr ""
|
|
5550 |
|
5551 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5552 |
msgid ""
|
5553 |
-
"
|
5554 |
-
"
|
5555 |
-
"
|
5556 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5557 |
msgstr ""
|
5558 |
-
"
|
5559 |
-
"
|
5560 |
-
"
|
5561 |
-
"
|
5562 |
-
"
|
5563 |
|
5564 |
#: inc/presets/free/GravatarPreset.php:1
|
5565 |
msgid ""
|
@@ -5729,6 +6064,19 @@ msgstr ""
|
|
5729 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
5730 |
"muss ein Service angelegt werden."
|
5731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5732 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
5733 |
msgid ""
|
5734 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
@@ -5747,6 +6095,29 @@ msgstr ""
|
|
5747 |
msgid "https://wordpress.org/about/privacy/"
|
5748 |
msgstr "https://de.wordpress.org/about/privacy/"
|
5749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5750 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
5751 |
msgid ""
|
5752 |
"WordPress.org allows to display further and latest information about plugins "
|
@@ -5821,6 +6192,10 @@ msgstr ""
|
|
5821 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
5822 |
"Nutzer seine Einwilligung zum Laden gibt."
|
5823 |
|
|
|
|
|
|
|
|
|
5824 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
5825 |
msgid "Load content"
|
5826 |
msgstr "Inhalt laden"
|
@@ -7718,6 +8093,19 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7718 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7719 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7720 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7721 |
#~ msgid ""
|
7722 |
#~ "We use cookies and similar technologies on our website and process your "
|
7723 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-06-13 06:58+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
+
#: inc/Assets.php:1 inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
377 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
378 |
+
msgid "Migration is only available in PRO version!"
|
379 |
+
msgstr "Die Migration ist nur in der PRO-Version verfügbar!"
|
380 |
+
|
381 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
382 |
msgid "Updated texts (German, English)"
|
383 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
598 |
msgid "Statistics"
|
599 |
msgstr "Statistik"
|
600 |
|
601 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
602 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
603 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
604 |
#: inc/settings/CookieGroup.php:1
|
605 |
msgid "Statistic"
|
606 |
msgstr "Statistik"
|
607 |
|
608 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
609 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
610 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
611 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
681 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
682 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
683 |
|
684 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
685 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
686 |
+
msgstr "Rechtliche Anpassungen von Texten und Design im Cookie Banner"
|
687 |
+
|
688 |
+
#. translators:
|
689 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
690 |
+
msgid ""
|
691 |
+
"In recent months, more clarity has been created about what consent "
|
692 |
+
"management on websites should look like - and what it shouldn't. In "
|
693 |
+
"particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/"
|
694 |
+
"\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection "
|
695 |
+
"Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
696 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference "
|
697 |
+
"of Independent Data Protection Authorities for cookie banners</a> "
|
698 |
+
"(coordinated legal interpretation of all German data protection authorities; "
|
699 |
+
"in German), there are now clearer rules that further interpret or complement "
|
700 |
+
"the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/"
|
701 |
+
"TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and "
|
702 |
+
"<a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, "
|
703 |
+
"there were important decisions such as the evaluation of <a href=\"https://"
|
704 |
+
"www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-"
|
705 |
+
"n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a "
|
706 |
+
"href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google"
|
707 |
+
"%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by "
|
708 |
+
"dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/"
|
709 |
+
"atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" "
|
710 |
+
"target=\"_blank\">position on Google Analytics by CNIL</a>."
|
711 |
+
msgstr ""
|
712 |
+
"In den letzten Monaten wurde mehr Klarheit darüber geschaffen, wie das "
|
713 |
+
"Einwilligungsmanagement auf Websites aussehen sollte - und wie es nicht "
|
714 |
+
"aussehen sollte. Insbesondere durch das <a href=\"https://www.gesetze-im-"
|
715 |
+
"internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telekommunikation-"
|
716 |
+
"Telemedien-Datenschutz-Gesetz) und die <a href=\"https://www."
|
717 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
718 |
+
"\"_blank\">Orientierungshilfe der Konferenz der unabhängigen "
|
719 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder</a> (koordinierte "
|
720 |
+
"Rechtsauslegung aller deutschen Datenschutzbehörden) gibt es jetzt klarere "
|
721 |
+
"Regeln, welche die EU-weit geltende <a href=\"https://eur-lex.europa.eu/"
|
722 |
+
"legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy-"
|
723 |
+
"Richtlinie</a> und <a href=\"https://dsgvo-gesetz.de/\" target=\"_blank\""
|
724 |
+
">DSGVO</a> weiter auslegen oder ergänzen. Außerdem gab es wichtige "
|
725 |
+
"Entscheidungen wie die Bewertung von <a href=\"https://www."
|
726 |
+
"autoriteprotectiondonnees.be/publications/decision-quant-au-"
|
727 |
+
"fond-n-21-2022-english.pdf\" target=\"_blank\">TCF durch ADP (Belgien)</a>, "
|
728 |
+
"die <a href=\"https://noyb.eu/sites/default/files/2022-01/"
|
729 |
+
"E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google "
|
730 |
+
"Analytics Entscheidung von dsb (Österreich)</a> und die <a href=\"https://www"
|
731 |
+
".cnil.fr/sites/default/files/atoms/files/"
|
732 |
+
"decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target="
|
733 |
+
"\"_blank\">Stellungnahme zu Google Analytics von CNIL</a>."
|
734 |
+
|
735 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
736 |
+
msgid ""
|
737 |
+
"We have adapted the texts and design suggestions for the cookie banner "
|
738 |
+
"accordingly. <strong>We strongly advise you to adopt the new texts and "
|
739 |
+
"design suggestions for your website!</strong>"
|
740 |
+
msgstr ""
|
741 |
+
"Wir haben die Texte und Design-Vorschläge für das Cookie Banner entsprechend "
|
742 |
+
"angepasst. <strong>Wir raten dir dringend, die neuen Texte und Design-"
|
743 |
+
"Vorschläge für deine Website zu übernehmen!</strong>"
|
744 |
+
|
745 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
746 |
+
msgid ""
|
747 |
+
"If you want to keep your individual Cookie Banner Design, please make sure "
|
748 |
+
"that the choices (\"Accept all\", \"Continue without consent\" and \"Set "
|
749 |
+
"privacy settings individually\") are displayed equally and all services are "
|
750 |
+
"named in the first view of your cookie banner."
|
751 |
+
msgstr ""
|
752 |
+
"Wenn du dein individuelles Cookie Banner Design beibehalten möchtest, achte "
|
753 |
+
"bitte darauf, dass die Auswahlmöglichkeiten (\"Alle akzeptieren\", \"Weiter "
|
754 |
+
"ohne Einwilligung\", \"Privatsphäre-Einstellungen individuell festlegen\") "
|
755 |
+
"gleichwertig angezeigt werden und alle Services in der ersten Ansicht deines "
|
756 |
+
"Cookie Banners benannt werden."
|
757 |
+
|
758 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
759 |
+
msgid "Apply new texts and important design changes"
|
760 |
+
msgstr "Neue Texte und wichtige Design-Änderungen anwenden"
|
761 |
+
|
762 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
763 |
+
msgid ""
|
764 |
+
"We will overwrite all texts in your cookie banner with new text suggestions. "
|
765 |
+
"Also, we name all services in the first view of the cookie banner instead of "
|
766 |
+
"a bullet list of service groups, equalize the appearance of \"Accept all\" "
|
767 |
+
"and \"Continue without consent\", and highlight \"Set privacy settings "
|
768 |
+
"individually\" in your cookie banner. Please check afterwards if all "
|
769 |
+
"adjustments are correct for your individual requirements and reconfigure "
|
770 |
+
"your cookie banner yourself if necessary. Are you sure you want to apply the "
|
771 |
+
"changes?"
|
772 |
+
msgstr ""
|
773 |
+
"Wir überschreiben alle Texte in deinem Cookie Banner mit neuen "
|
774 |
+
"Textvorschlägen. Außerdem benennen wir alle Services in der ersten Ansicht "
|
775 |
+
"des Cookie Banners anstelle einer Aufzählung von Service-Gruppen, gleichen "
|
776 |
+
"das Aussehen von \"Alle akzeptieren\" und \"Weiter ohne Einwilligung\" an "
|
777 |
+
"und heben \"Privatsphäre-Einstellungen individuell festlegen\" in deinem "
|
778 |
+
"Cookie Banner hervor. Bitte überprüfe anschließend, ob alle Anpassungen für "
|
779 |
+
"deine individuellen Anforderungen richtig sind und konfiguriere dein Cookie "
|
780 |
+
"Banner bei Bedarf selbst um. Bist du sicher, dass du die Änderungen "
|
781 |
+
"übernehmen willst?"
|
782 |
+
|
783 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
784 |
+
msgid "cookie-banner-frontend.png"
|
785 |
+
msgstr "de/cookie-banner-frontend.png"
|
786 |
+
|
787 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
788 |
+
msgid "Place legal links on each subpage"
|
789 |
+
msgstr "Rechtliche Links auf jeder Unterseite platzieren"
|
790 |
+
|
791 |
+
#. translators:
|
792 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
793 |
+
msgid ""
|
794 |
+
"In accordance with the requirements of the "<a href=\"https://www."
|
795 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
796 |
+
"\"_blank\">Guidance of the Conference of Independent Data Protection "
|
797 |
+
"Authorities for cookie banners</a>", the possibility to view, modify "
|
798 |
+
"and revoke consent must be directly accessible on every sub-page of your "
|
799 |
+
"website."
|
800 |
+
msgstr ""
|
801 |
+
"Gemäß den Anforderungen des <a href=\"https://www.datenschutzkonferenz-online"
|
802 |
+
".de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">"
|
803 |
+
"\"Orientierungshilfe der Konferenz der unabhängigen "
|
804 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder\"</a> muss die "
|
805 |
+
"Möglichkeit, die Einwilligung einzusehen, zu ändern und zu widerrufen, auf "
|
806 |
+
"jeder Unterseite deiner Website direkt zugänglich sein."
|
807 |
+
|
808 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
809 |
+
msgid ""
|
810 |
+
"This means you can no longer \"hide\" the links/buttons in your privacy "
|
811 |
+
"policy. <strong>We recommend placing the option in the footer of each "
|
812 |
+
"subpage.</strong>"
|
813 |
+
msgstr ""
|
814 |
+
"Das bedeutet, dass du die Links/Buttons in deiner Datenschutzerklärung nicht "
|
815 |
+
"mehr \"verstecken\" kannst. <strong>Wir empfehlen, die Option in im Footer "
|
816 |
+
"(Fußzeile) jeder Unterseite deiner Website zu platzieren.</strong>"
|
817 |
+
|
818 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
819 |
+
msgid ""
|
820 |
+
"You can now place the legal links not only as shortcodes, but also in "
|
821 |
+
"WordPress menus as menu items."
|
822 |
+
msgstr ""
|
823 |
+
"Du kannst die rechtlichen Links jetzt nicht nur als Shortcodes, sondern auch "
|
824 |
+
"in WordPress-Menüs als Menüpunkte platzieren."
|
825 |
+
|
826 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
827 |
+
msgid "Place legal links"
|
828 |
+
msgstr "Rechtliche Links platzieren"
|
829 |
+
|
830 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
831 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
832 |
+
msgstr ""
|
833 |
+
"Visueller Content Blocker in hübsch: Sieht aus wie ohne Content Blocker!"
|
834 |
+
|
835 |
+
#. translators:
|
836 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
837 |
+
msgid ""
|
838 |
+
"Visual content blockers replace, for example, YouTube videos on the website "
|
839 |
+
"if the visitor has not given consent to YouTube loading in the cookie "
|
840 |
+
"banner. Until now, these were very text-heavy to display all the legally "
|
841 |
+
"necessary requirements."
|
842 |
+
msgstr ""
|
843 |
+
"Visuelle Content Blocker ersetzen z.B. YouTube-Videos auf der Website, wenn "
|
844 |
+
"der Besucher im Cookie Banner keine Einwilligung zum Laden von YouTube "
|
845 |
+
"gegeben hat. Bisher waren diese sehr textlastig, um alle rechtlich "
|
846 |
+
"notwendigen Anforderungen anzuzeigen."
|
847 |
+
|
848 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
849 |
+
msgid ""
|
850 |
+
"Hero and Wrapped Content Blockers are trying to do that better. Hero Content "
|
851 |
+
"Blocker mimic maps, video players, audio players, and various types of "
|
852 |
+
"social media feeds in a privacy-compliant way, so it looks like the original "
|
853 |
+
"element is still embedded. Consent is obtained in a modal when the visitor "
|
854 |
+
"tries to start the video, for example. <strong>Reconfigure your content "
|
855 |
+
"blockers now!</strong>"
|
856 |
+
msgstr ""
|
857 |
+
"Hero und Wrapped Content Blocker versuchen, das besser zu machen. Hero "
|
858 |
+
"Content Blocker imitieren Karten, Videoplayer, Audioplayer und verschiedene "
|
859 |
+
"Arten von Social Media Feeds auf datenschutzkonforme Weise, sodass es so "
|
860 |
+
"aussieht, als wäre das ursprüngliche Element noch eingebettet. Die "
|
861 |
+
"Einwilligung wird in einem Modal eingeholt, wenn der Besucher z. B. "
|
862 |
+
"versucht, das Video zu starten. <strong>Konfiguriere deine Content Blocker "
|
863 |
+
"jetzt um!</strong>"
|
864 |
+
|
865 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
866 |
+
msgid "Reconfigure Content Blocker"
|
867 |
+
msgstr "Content Blocker umkonfigurieren"
|
868 |
+
|
869 |
+
#. translators:
|
870 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
871 |
+
msgid ""
|
872 |
+
"We recommend for <strong>%s</strong> to change the design to a more and "
|
873 |
+
"better visual Content Blocker."
|
874 |
+
msgstr ""
|
875 |
+
"Wir empfehlen für <strong>%s</strong>, das Design in Hero Content Blocker zu "
|
876 |
+
"ändern."
|
877 |
+
|
878 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
879 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
880 |
+
msgstr "pro-modal/de/visual-content-blocker.webp"
|
881 |
+
|
882 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
883 |
+
msgid "Scan your website for services that require consent"
|
884 |
+
msgstr "Scanne deine Website nach einwilligungspflichtigen Services"
|
885 |
+
|
886 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
887 |
+
msgid ""
|
888 |
+
"The service scanner crawls every subpage of your website, all plugins and "
|
889 |
+
"other technical indicators of your website to find services on your website "
|
890 |
+
"that require consent. This allows you to collect all the consent you need "
|
891 |
+
"from your website visitors."
|
892 |
+
msgstr ""
|
893 |
+
"Der Service Scanner durchsucht jede Unterseite deiner Website, alle Plugins "
|
894 |
+
"und andere technische Indikatoren deiner Website, um Services auf deiner "
|
895 |
+
"Website zu finden, die eine Einwilligung erfordern. So kannst du alle "
|
896 |
+
"Einwilligungen einholen, die du von deinen Besuchern brauchst."
|
897 |
+
|
898 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
899 |
+
msgid ""
|
900 |
+
"If you last fully scanned your website before Februrary 2022, we recommend "
|
901 |
+
"that you scan your website again. The scanner will now detect even more "
|
902 |
+
"services!"
|
903 |
+
msgstr ""
|
904 |
+
"Wenn du deine Website zuletzt vor Februar 2022 vollständig gescannt hast, "
|
905 |
+
"empfehlen wir dir, deine Website erneut zu scannen. Der Scanner erkennt "
|
906 |
+
"jetzt noch mehr Services!"
|
907 |
+
|
908 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
909 |
+
msgid "Scan website (again)"
|
910 |
+
msgstr "Website (erneut) scannen"
|
911 |
+
|
912 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
913 |
+
msgid "Cookie banner optimizations for mobile devices"
|
914 |
+
msgstr "Cookie Banner Optimierungen für mobile Endgeräte"
|
915 |
+
|
916 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
917 |
+
msgid ""
|
918 |
+
"We provide additional options for optimized display of the cookie banner on "
|
919 |
+
"mobile devices. These make the cookie banner easier to use on smartphones by "
|
920 |
+
"optimizing it to the normal hand position of users. Also, the cookie banner "
|
921 |
+
"is no longer Largest Contentfull Paint (LCP) as defined by Google's Web "
|
922 |
+
"Vitals and thus the optimizations will increase your PageSpeed score for "
|
923 |
+
"mobile devices."
|
924 |
+
msgstr ""
|
925 |
+
"Wir bieten zusätzliche Optionen für die optimierte Anzeige des Cookie "
|
926 |
+
"Banners auf mobilen Geräten. Diese erleichtern die Nutzung des Cookie "
|
927 |
+
"Banners auf Smartphones, indem es für die normale Handhaltung der Nutzer "
|
928 |
+
"optimiert wurde. Außerdem ist das Cookie Banner nicht mehr das größte "
|
929 |
+
"Largest Contentfull Paint (LCP), wie es von Googles Web Vitals definiert "
|
930 |
+
"wird, sodass die Optimierungen deinen PageSpeed Score für mobile Geräte "
|
931 |
+
"erhöhen."
|
932 |
+
|
933 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
934 |
+
msgid "Activate optimizations"
|
935 |
+
msgstr "Optimierungen aktivieren"
|
936 |
+
|
937 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
938 |
+
msgid "pro-modal/mobile-optimization.png"
|
939 |
+
msgstr "pro-modal/de/mobile-optimization.png"
|
940 |
+
|
941 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
942 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
943 |
+
msgstr "Updates in v3.0: Du solltest handeln, um sicher zu sein!"
|
944 |
+
|
945 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
946 |
+
msgid ""
|
947 |
+
"With Real Cookie Banner 3.0 we have released a major update, in which we "
|
948 |
+
"have implemented, among other things, current legal adjustments. Read more "
|
949 |
+
"about the changes in our <a href=\"https://devowl.io/2022/real-cookie-"
|
950 |
+
"banner-3-0/\" target=\"_blank\">blog post</a>."
|
951 |
+
msgstr ""
|
952 |
+
"Mit Real Cookie Banner 3.0 haben wir ein großes Update veröffentlicht, in "
|
953 |
+
"dem wir u.a. aktuelle rechtliche Anpassungen vorgenommen haben. Mehr zu den "
|
954 |
+
"Änderungen erfährst du in unserem <a href=\"https://devowl.io/de/2022/"
|
955 |
+
"real-cookie-banner-3-0/\" target=\"_blank\">Blogbeitrag.</a>."
|
956 |
+
|
957 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
958 |
+
msgid ""
|
959 |
+
"<strong>You should definitely take a look at the following points, because "
|
960 |
+
"we have adjusted the behavior of the cookie banner.</strong> All changes can "
|
961 |
+
"be optionally activated or ignored. We will not fundamentally change your "
|
962 |
+
"cookie banner without your consent."
|
963 |
+
msgstr ""
|
964 |
+
"<strong>Du solltest unbedingt einen Blick auf die folgenden Punkte werfen, "
|
965 |
+
"denn wir haben das Verhalten des Cookie Banners angepasst.</strong> Alle "
|
966 |
+
"Änderungen können wahlweise aktiviert oder ignoriert werden. Ohne deine "
|
967 |
+
"Einwilligung werden wir deinen Cookie Banner nicht grundlegend verändern."
|
968 |
+
|
969 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
970 |
msgid ""
|
971 |
"Briefly summarized, consents according to TCF are considered too non-"
|
2360 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2361 |
"instead uses the consent collected by Real Cookie Banner."
|
2362 |
msgstr ""
|
2363 |
+
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https://"
|
2364 |
+
"newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü (oben "
|
2365 |
+
"links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
|
2366 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2367 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2368 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
2644 |
msgid "Facebook Pixel ID"
|
2645 |
msgstr "Facebook Pixel ID"
|
2646 |
|
2647 |
+
#. translators:
|
2648 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2649 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
2650 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2651 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2652 |
+
#: inc/presets/free/YoutubePreset.php:1
|
2653 |
+
msgid ""
|
2654 |
+
"What do you have to consider when integrating %1$s into your website? <a "
|
2655 |
+
"href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
2656 |
+
msgstr ""
|
2657 |
+
"Was musst du beachten, wenn du %1$s in deine Website integrierst? <a href=\""
|
2658 |
+
"%2$s\" target=\"_blank\">Erfahre mehr darüber in unserem Blog!</a>"
|
2659 |
+
|
2660 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2661 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
2662 |
+
msgstr "https://devowl.io/de/2022/facebook-pixel-einbinden-dsgvo/"
|
2663 |
+
|
2664 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2665 |
msgid ""
|
2666 |
"Facebook allows embedding content posted on facebook.com directly into "
|
3382 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3383 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3384 |
|
3385 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
3386 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
3387 |
+
msgstr "https://devowl.io/de/2022/instagram-einbinden-website-dsgvo/"
|
3388 |
+
|
3389 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3390 |
msgid ""
|
3391 |
"Intercom is a customer service tool that provides live chat for websites. "
|
4442 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4443 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4444 |
|
4445 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
4446 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
4447 |
+
msgstr "https://devowl.io/de/2022/sendinblue-integration-wordpress/"
|
4448 |
+
|
4449 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4450 |
msgid ""
|
4451 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
4487 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4488 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4489 |
|
4490 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
4491 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
4492 |
+
msgstr "https://devowl.io/de/2022/spotify-wordpress-dsgvo/"
|
4493 |
+
|
4494 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4495 |
msgid ""
|
4496 |
"Stripe is an online payment service with which payments can be made in this "
|
5868 |
|
5869 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5870 |
msgid ""
|
5871 |
+
"When loading Google Fonts, personal data of your visitors is transferred to "
|
5872 |
+
"Google, which is why you need consent. Real Cookie Banner has to check the "
|
5873 |
+
"consent before loading Google Fonts (if there is a consent), which takes a "
|
5874 |
+
"few milliseconds per page view. As a result, you will inevitably notice a "
|
5875 |
+
"small flickering effect (font replacement after a few milliseconds) on your "
|
5876 |
+
"website."
|
5877 |
+
msgstr ""
|
5878 |
+
"Beim Laden von Google Fonts werden persönliche Daten deiner Besucher an "
|
5879 |
+
"Google übertragen, weshalb du eine Einwilligung benötigst. Real Cookie "
|
5880 |
+
"Banner muss die Einwilligung vor dem Laden von Google Fonts prüfen (falls "
|
5881 |
+
"eine Einwilligung vorliegt), was einige Millisekunden pro Seitenaufruf "
|
5882 |
+
"dauert. Daher wirst du unweigerlich einen kleinen Flackereffekt ("
|
5883 |
+
"Schriftartwechsel nach ein paar Millisekunden) auf deiner Website "
|
5884 |
+
"feststellen."
|
5885 |
+
|
5886 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
5887 |
+
msgid ""
|
5888 |
+
"We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-"
|
5889 |
+
"wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally "
|
5890 |
+
"hosted fonts</a> when possible, rather than asking for consent. We explained "
|
5891 |
+
"how this works in our blog!"
|
5892 |
msgstr ""
|
5893 |
+
"Wir empfehlen daher, <a href=\"https://devowl.io/de/2022/"
|
5894 |
+
"google-fonts-wordpress-dsgvo/\" target=\"_blank\">Google Fonts wenn möglich "
|
5895 |
+
"durch lokal gehostete Schriftarten zu ersetzen</a>, anstatt nach einer "
|
5896 |
+
"Einwilligung zu fragen. Wie das funktioniert, haben wir in unserem Blog "
|
5897 |
+
"erklärt!"
|
5898 |
|
5899 |
#: inc/presets/free/GravatarPreset.php:1
|
5900 |
msgid ""
|
6064 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
6065 |
"muss ein Service angelegt werden."
|
6066 |
|
6067 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
6068 |
+
msgid ""
|
6069 |
+
"Do you want to use the comment feature on your website at all? If not, we "
|
6070 |
+
"explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-"
|
6071 |
+
"comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. "
|
6072 |
+
"Then you can also avoid this consent!"
|
6073 |
+
msgstr ""
|
6074 |
+
"Willst du die Kommentarfunktion auf deiner Website überhaupt nutzen? Wenn "
|
6075 |
+
"nicht, erklären wir in unserem Blog, <a href=\"https://devowl.io/de/2022/"
|
6076 |
+
"wordpress-kommentare-deaktivieren/\" target=\"_blank\">wie du Kommentare in "
|
6077 |
+
"WordPress deaktivieren kannst</a>. Dann kannst du dir die Einwilligung auch "
|
6078 |
+
"sparen!"
|
6079 |
+
|
6080 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6081 |
msgid ""
|
6082 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
6095 |
msgid "https://wordpress.org/about/privacy/"
|
6096 |
msgstr "https://de.wordpress.org/about/privacy/"
|
6097 |
|
6098 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6099 |
+
msgid ""
|
6100 |
+
"Almost all browsers and operating systems released after 2015 can easily "
|
6101 |
+
"display emojis without the WordPressa Emoji Script (for which you must "
|
6102 |
+
"obtain this consent)."
|
6103 |
+
msgstr ""
|
6104 |
+
"Fast alle Browser und Betriebssysteme, die nach 2015 veröffentlicht wurden, "
|
6105 |
+
"können Emojis problemlos ohne das WordPressa-Emoji-Script anzeigen (für das "
|
6106 |
+
"du diese Einwilligung einholen musst)."
|
6107 |
+
|
6108 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6109 |
+
msgid ""
|
6110 |
+
"Unless you need to support particularly old browsers and operating systems, "
|
6111 |
+
"we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-"
|
6112 |
+
"wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather "
|
6113 |
+
"than asking for consent. How to do that, we have explained in our blog!"
|
6114 |
+
msgstr ""
|
6115 |
+
"Sofern du nicht besonders alte Browser und Betriebssysteme unterstützen "
|
6116 |
+
"musst, empfehlen wir dir, das <a href=\"https://devowl.io/de/2022/"
|
6117 |
+
"wordpress-emojis-deaktivieren/\" target=\"_blank\">WordPress-Emoji-Script zu "
|
6118 |
+
"deaktivieren</a>, anstatt nach einer Einwilligung zu fragen. Wie du das "
|
6119 |
+
"machst, haben wir in unserem Blog erklärt!"
|
6120 |
+
|
6121 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
6122 |
msgid ""
|
6123 |
"WordPress.org allows to display further and latest information about plugins "
|
6192 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
6193 |
"Nutzer seine Einwilligung zum Laden gibt."
|
6194 |
|
6195 |
+
#: inc/presets/free/YoutubePreset.php:1
|
6196 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
6197 |
+
msgstr "https://devowl.io/de/2022/youtube-website-dsgvo/"
|
6198 |
+
|
6199 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
6200 |
msgid "Load content"
|
6201 |
msgstr "Inhalt laden"
|
8093 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
8094 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
8095 |
|
8096 |
+
#~ msgid ""
|
8097 |
+
#~ "An opt-in script is not required, as this service is probably already "
|
8098 |
+
#~ "integrated via e.g. your theme. In addition to this service, please "
|
8099 |
+
#~ "create a content blocker that automatically blocks the integration of "
|
8100 |
+
#~ "Google Fonts (from e.g. your theme) before you have the consent of your "
|
8101 |
+
#~ "users."
|
8102 |
+
#~ msgstr ""
|
8103 |
+
#~ "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service "
|
8104 |
+
#~ "wahrscheinlich bereits z. B. über dein Theme integriert ist. Zusätzlich "
|
8105 |
+
#~ "zu diesem Service kannst du einen Content Blocker einrichten, der die "
|
8106 |
+
#~ "Integration von Google Fonts (z. B. in deinem Theme) automatisch "
|
8107 |
+
#~ "blockiert, bevor du die Zustimmung deiner Nutzer hast."
|
8108 |
+
|
8109 |
#~ msgid ""
|
8110 |
#~ "We use cookies and similar technologies on our website and process your "
|
8111 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
languages/real-cookie-banner-de_CH.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_CH.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-06-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
@@ -328,7 +328,7 @@ msgid "Product license not for production use!"
|
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
-
#: inc/Assets.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
@@ -374,6 +374,10 @@ msgstr ""
|
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
|
|
|
|
|
|
|
|
377 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
378 |
msgid "Updated texts (German, English)"
|
379 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
@@ -594,14 +598,14 @@ msgstr "Funktional"
|
|
594 |
msgid "Statistics"
|
595 |
msgstr "Statistik"
|
596 |
|
597 |
-
#. translators:
|
598 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
599 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
600 |
#: inc/settings/CookieGroup.php:1
|
601 |
msgid "Statistic"
|
602 |
msgstr "Statistik"
|
603 |
|
604 |
-
#. translators:
|
605 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
606 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
607 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -677,6 +681,291 @@ msgstr ""
|
|
677 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
678 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
679 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
681 |
msgid ""
|
682 |
"Briefly summarized, consents according to TCF are considered too non-"
|
@@ -2071,9 +2360,9 @@ msgid ""
|
|
2071 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2072 |
"instead uses the consent collected by Real Cookie Banner."
|
2073 |
msgstr ""
|
2074 |
-
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https"
|
2075 |
-
"
|
2076 |
-
"
|
2077 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2078 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2079 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
@@ -2355,6 +2644,23 @@ msgstr ""
|
|
2355 |
msgid "Facebook Pixel ID"
|
2356 |
msgstr "Facebook Pixel ID"
|
2357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2358 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2359 |
msgid ""
|
2360 |
"Facebook allows embedding content posted on facebook.com directly into "
|
@@ -3076,6 +3382,10 @@ msgstr ""
|
|
3076 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3077 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3078 |
|
|
|
|
|
|
|
|
|
3079 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3080 |
msgid ""
|
3081 |
"Intercom is a customer service tool that provides live chat for websites. "
|
@@ -4132,6 +4442,10 @@ msgstr ""
|
|
4132 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4133 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4134 |
|
|
|
|
|
|
|
|
|
4135 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4136 |
msgid ""
|
4137 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
@@ -4173,6 +4487,10 @@ msgstr ""
|
|
4173 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4174 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4175 |
|
|
|
|
|
|
|
|
|
4176 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4177 |
msgid ""
|
4178 |
"Stripe is an online payment service with which payments can be made in this "
|
@@ -5550,16 +5868,33 @@ msgstr ""
|
|
5550 |
|
5551 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5552 |
msgid ""
|
5553 |
-
"
|
5554 |
-
"
|
5555 |
-
"
|
5556 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5557 |
msgstr ""
|
5558 |
-
"
|
5559 |
-
"
|
5560 |
-
"
|
5561 |
-
"
|
5562 |
-
"
|
5563 |
|
5564 |
#: inc/presets/free/GravatarPreset.php:1
|
5565 |
msgid ""
|
@@ -5729,6 +6064,19 @@ msgstr ""
|
|
5729 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
5730 |
"muss ein Service angelegt werden."
|
5731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5732 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
5733 |
msgid ""
|
5734 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
@@ -5747,6 +6095,29 @@ msgstr ""
|
|
5747 |
msgid "https://wordpress.org/about/privacy/"
|
5748 |
msgstr "https://de.wordpress.org/about/privacy/"
|
5749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5750 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
5751 |
msgid ""
|
5752 |
"WordPress.org allows to display further and latest information about plugins "
|
@@ -5821,6 +6192,10 @@ msgstr ""
|
|
5821 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
5822 |
"Nutzer seine Einwilligung zum Laden gibt."
|
5823 |
|
|
|
|
|
|
|
|
|
5824 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
5825 |
msgid "Load content"
|
5826 |
msgstr "Inhalt laden"
|
@@ -7718,6 +8093,19 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7718 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7719 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7720 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7721 |
#~ msgid ""
|
7722 |
#~ "We use cookies and similar technologies on our website and process your "
|
7723 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-06-13 06:58+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
+
#: inc/Assets.php:1 inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
377 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
378 |
+
msgid "Migration is only available in PRO version!"
|
379 |
+
msgstr "Die Migration ist nur in der PRO-Version verfügbar!"
|
380 |
+
|
381 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
382 |
msgid "Updated texts (German, English)"
|
383 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
598 |
msgid "Statistics"
|
599 |
msgstr "Statistik"
|
600 |
|
601 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
602 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
603 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
604 |
#: inc/settings/CookieGroup.php:1
|
605 |
msgid "Statistic"
|
606 |
msgstr "Statistik"
|
607 |
|
608 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
609 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
610 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
611 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
681 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
682 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
683 |
|
684 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
685 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
686 |
+
msgstr "Rechtliche Anpassungen von Texten und Design im Cookie Banner"
|
687 |
+
|
688 |
+
#. translators:
|
689 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
690 |
+
msgid ""
|
691 |
+
"In recent months, more clarity has been created about what consent "
|
692 |
+
"management on websites should look like - and what it shouldn't. In "
|
693 |
+
"particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/"
|
694 |
+
"\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection "
|
695 |
+
"Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
696 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference "
|
697 |
+
"of Independent Data Protection Authorities for cookie banners</a> "
|
698 |
+
"(coordinated legal interpretation of all German data protection authorities; "
|
699 |
+
"in German), there are now clearer rules that further interpret or complement "
|
700 |
+
"the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/"
|
701 |
+
"TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and "
|
702 |
+
"<a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, "
|
703 |
+
"there were important decisions such as the evaluation of <a href=\"https://"
|
704 |
+
"www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-"
|
705 |
+
"n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a "
|
706 |
+
"href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google"
|
707 |
+
"%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by "
|
708 |
+
"dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/"
|
709 |
+
"atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" "
|
710 |
+
"target=\"_blank\">position on Google Analytics by CNIL</a>."
|
711 |
+
msgstr ""
|
712 |
+
"In den letzten Monaten wurde mehr Klarheit darüber geschaffen, wie das "
|
713 |
+
"Einwilligungsmanagement auf Websites aussehen sollte - und wie es nicht "
|
714 |
+
"aussehen sollte. Insbesondere durch das <a href=\"https://www.gesetze-im-"
|
715 |
+
"internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telekommunikation-"
|
716 |
+
"Telemedien-Datenschutz-Gesetz) und die <a href=\"https://www."
|
717 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
718 |
+
"\"_blank\">Orientierungshilfe der Konferenz der unabhängigen "
|
719 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder</a> (koordinierte "
|
720 |
+
"Rechtsauslegung aller deutschen Datenschutzbehörden) gibt es jetzt klarere "
|
721 |
+
"Regeln, welche die EU-weit geltende <a href=\"https://eur-lex.europa.eu/"
|
722 |
+
"legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy-"
|
723 |
+
"Richtlinie</a> und <a href=\"https://dsgvo-gesetz.de/\" target=\"_blank\""
|
724 |
+
">DSGVO</a> weiter auslegen oder ergänzen. Außerdem gab es wichtige "
|
725 |
+
"Entscheidungen wie die Bewertung von <a href=\"https://www."
|
726 |
+
"autoriteprotectiondonnees.be/publications/decision-quant-au-"
|
727 |
+
"fond-n-21-2022-english.pdf\" target=\"_blank\">TCF durch ADP (Belgien)</a>, "
|
728 |
+
"die <a href=\"https://noyb.eu/sites/default/files/2022-01/"
|
729 |
+
"E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google "
|
730 |
+
"Analytics Entscheidung von dsb (Österreich)</a> und die <a href=\"https://www"
|
731 |
+
".cnil.fr/sites/default/files/atoms/files/"
|
732 |
+
"decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target="
|
733 |
+
"\"_blank\">Stellungnahme zu Google Analytics von CNIL</a>."
|
734 |
+
|
735 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
736 |
+
msgid ""
|
737 |
+
"We have adapted the texts and design suggestions for the cookie banner "
|
738 |
+
"accordingly. <strong>We strongly advise you to adopt the new texts and "
|
739 |
+
"design suggestions for your website!</strong>"
|
740 |
+
msgstr ""
|
741 |
+
"Wir haben die Texte und Design-Vorschläge für das Cookie Banner entsprechend "
|
742 |
+
"angepasst. <strong>Wir raten dir dringend, die neuen Texte und Design-"
|
743 |
+
"Vorschläge für deine Website zu übernehmen!</strong>"
|
744 |
+
|
745 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
746 |
+
msgid ""
|
747 |
+
"If you want to keep your individual Cookie Banner Design, please make sure "
|
748 |
+
"that the choices (\"Accept all\", \"Continue without consent\" and \"Set "
|
749 |
+
"privacy settings individually\") are displayed equally and all services are "
|
750 |
+
"named in the first view of your cookie banner."
|
751 |
+
msgstr ""
|
752 |
+
"Wenn du dein individuelles Cookie Banner Design beibehalten möchtest, achte "
|
753 |
+
"bitte darauf, dass die Auswahlmöglichkeiten (\"Alle akzeptieren\", \"Weiter "
|
754 |
+
"ohne Einwilligung\", \"Privatsphäre-Einstellungen individuell festlegen\") "
|
755 |
+
"gleichwertig angezeigt werden und alle Services in der ersten Ansicht deines "
|
756 |
+
"Cookie Banners benannt werden."
|
757 |
+
|
758 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
759 |
+
msgid "Apply new texts and important design changes"
|
760 |
+
msgstr "Neue Texte und wichtige Design-Änderungen anwenden"
|
761 |
+
|
762 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
763 |
+
msgid ""
|
764 |
+
"We will overwrite all texts in your cookie banner with new text suggestions. "
|
765 |
+
"Also, we name all services in the first view of the cookie banner instead of "
|
766 |
+
"a bullet list of service groups, equalize the appearance of \"Accept all\" "
|
767 |
+
"and \"Continue without consent\", and highlight \"Set privacy settings "
|
768 |
+
"individually\" in your cookie banner. Please check afterwards if all "
|
769 |
+
"adjustments are correct for your individual requirements and reconfigure "
|
770 |
+
"your cookie banner yourself if necessary. Are you sure you want to apply the "
|
771 |
+
"changes?"
|
772 |
+
msgstr ""
|
773 |
+
"Wir überschreiben alle Texte in deinem Cookie Banner mit neuen "
|
774 |
+
"Textvorschlägen. Außerdem benennen wir alle Services in der ersten Ansicht "
|
775 |
+
"des Cookie Banners anstelle einer Aufzählung von Service-Gruppen, gleichen "
|
776 |
+
"das Aussehen von \"Alle akzeptieren\" und \"Weiter ohne Einwilligung\" an "
|
777 |
+
"und heben \"Privatsphäre-Einstellungen individuell festlegen\" in deinem "
|
778 |
+
"Cookie Banner hervor. Bitte überprüfe anschließend, ob alle Anpassungen für "
|
779 |
+
"deine individuellen Anforderungen richtig sind und konfiguriere dein Cookie "
|
780 |
+
"Banner bei Bedarf selbst um. Bist du sicher, dass du die Änderungen "
|
781 |
+
"übernehmen willst?"
|
782 |
+
|
783 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
784 |
+
msgid "cookie-banner-frontend.png"
|
785 |
+
msgstr "de/cookie-banner-frontend.png"
|
786 |
+
|
787 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
788 |
+
msgid "Place legal links on each subpage"
|
789 |
+
msgstr "Rechtliche Links auf jeder Unterseite platzieren"
|
790 |
+
|
791 |
+
#. translators:
|
792 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
793 |
+
msgid ""
|
794 |
+
"In accordance with the requirements of the "<a href=\"https://www."
|
795 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
796 |
+
"\"_blank\">Guidance of the Conference of Independent Data Protection "
|
797 |
+
"Authorities for cookie banners</a>", the possibility to view, modify "
|
798 |
+
"and revoke consent must be directly accessible on every sub-page of your "
|
799 |
+
"website."
|
800 |
+
msgstr ""
|
801 |
+
"Gemäß den Anforderungen des <a href=\"https://www.datenschutzkonferenz-online"
|
802 |
+
".de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">"
|
803 |
+
"\"Orientierungshilfe der Konferenz der unabhängigen "
|
804 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder\"</a> muss die "
|
805 |
+
"Möglichkeit, die Einwilligung einzusehen, zu ändern und zu widerrufen, auf "
|
806 |
+
"jeder Unterseite deiner Website direkt zugänglich sein."
|
807 |
+
|
808 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
809 |
+
msgid ""
|
810 |
+
"This means you can no longer \"hide\" the links/buttons in your privacy "
|
811 |
+
"policy. <strong>We recommend placing the option in the footer of each "
|
812 |
+
"subpage.</strong>"
|
813 |
+
msgstr ""
|
814 |
+
"Das bedeutet, dass du die Links/Buttons in deiner Datenschutzerklärung nicht "
|
815 |
+
"mehr \"verstecken\" kannst. <strong>Wir empfehlen, die Option in im Footer "
|
816 |
+
"(Fußzeile) jeder Unterseite deiner Website zu platzieren.</strong>"
|
817 |
+
|
818 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
819 |
+
msgid ""
|
820 |
+
"You can now place the legal links not only as shortcodes, but also in "
|
821 |
+
"WordPress menus as menu items."
|
822 |
+
msgstr ""
|
823 |
+
"Du kannst die rechtlichen Links jetzt nicht nur als Shortcodes, sondern auch "
|
824 |
+
"in WordPress-Menüs als Menüpunkte platzieren."
|
825 |
+
|
826 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
827 |
+
msgid "Place legal links"
|
828 |
+
msgstr "Rechtliche Links platzieren"
|
829 |
+
|
830 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
831 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
832 |
+
msgstr ""
|
833 |
+
"Visueller Content Blocker in hübsch: Sieht aus wie ohne Content Blocker!"
|
834 |
+
|
835 |
+
#. translators:
|
836 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
837 |
+
msgid ""
|
838 |
+
"Visual content blockers replace, for example, YouTube videos on the website "
|
839 |
+
"if the visitor has not given consent to YouTube loading in the cookie "
|
840 |
+
"banner. Until now, these were very text-heavy to display all the legally "
|
841 |
+
"necessary requirements."
|
842 |
+
msgstr ""
|
843 |
+
"Visuelle Content Blocker ersetzen z.B. YouTube-Videos auf der Website, wenn "
|
844 |
+
"der Besucher im Cookie Banner keine Einwilligung zum Laden von YouTube "
|
845 |
+
"gegeben hat. Bisher waren diese sehr textlastig, um alle rechtlich "
|
846 |
+
"notwendigen Anforderungen anzuzeigen."
|
847 |
+
|
848 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
849 |
+
msgid ""
|
850 |
+
"Hero and Wrapped Content Blockers are trying to do that better. Hero Content "
|
851 |
+
"Blocker mimic maps, video players, audio players, and various types of "
|
852 |
+
"social media feeds in a privacy-compliant way, so it looks like the original "
|
853 |
+
"element is still embedded. Consent is obtained in a modal when the visitor "
|
854 |
+
"tries to start the video, for example. <strong>Reconfigure your content "
|
855 |
+
"blockers now!</strong>"
|
856 |
+
msgstr ""
|
857 |
+
"Hero und Wrapped Content Blocker versuchen, das besser zu machen. Hero "
|
858 |
+
"Content Blocker imitieren Karten, Videoplayer, Audioplayer und verschiedene "
|
859 |
+
"Arten von Social Media Feeds auf datenschutzkonforme Weise, sodass es so "
|
860 |
+
"aussieht, als wäre das ursprüngliche Element noch eingebettet. Die "
|
861 |
+
"Einwilligung wird in einem Modal eingeholt, wenn der Besucher z. B. "
|
862 |
+
"versucht, das Video zu starten. <strong>Konfiguriere deine Content Blocker "
|
863 |
+
"jetzt um!</strong>"
|
864 |
+
|
865 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
866 |
+
msgid "Reconfigure Content Blocker"
|
867 |
+
msgstr "Content Blocker umkonfigurieren"
|
868 |
+
|
869 |
+
#. translators:
|
870 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
871 |
+
msgid ""
|
872 |
+
"We recommend for <strong>%s</strong> to change the design to a more and "
|
873 |
+
"better visual Content Blocker."
|
874 |
+
msgstr ""
|
875 |
+
"Wir empfehlen für <strong>%s</strong>, das Design in Hero Content Blocker zu "
|
876 |
+
"ändern."
|
877 |
+
|
878 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
879 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
880 |
+
msgstr "pro-modal/de/visual-content-blocker.webp"
|
881 |
+
|
882 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
883 |
+
msgid "Scan your website for services that require consent"
|
884 |
+
msgstr "Scanne deine Website nach einwilligungspflichtigen Services"
|
885 |
+
|
886 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
887 |
+
msgid ""
|
888 |
+
"The service scanner crawls every subpage of your website, all plugins and "
|
889 |
+
"other technical indicators of your website to find services on your website "
|
890 |
+
"that require consent. This allows you to collect all the consent you need "
|
891 |
+
"from your website visitors."
|
892 |
+
msgstr ""
|
893 |
+
"Der Service Scanner durchsucht jede Unterseite deiner Website, alle Plugins "
|
894 |
+
"und andere technische Indikatoren deiner Website, um Services auf deiner "
|
895 |
+
"Website zu finden, die eine Einwilligung erfordern. So kannst du alle "
|
896 |
+
"Einwilligungen einholen, die du von deinen Besuchern brauchst."
|
897 |
+
|
898 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
899 |
+
msgid ""
|
900 |
+
"If you last fully scanned your website before Februrary 2022, we recommend "
|
901 |
+
"that you scan your website again. The scanner will now detect even more "
|
902 |
+
"services!"
|
903 |
+
msgstr ""
|
904 |
+
"Wenn du deine Website zuletzt vor Februar 2022 vollständig gescannt hast, "
|
905 |
+
"empfehlen wir dir, deine Website erneut zu scannen. Der Scanner erkennt "
|
906 |
+
"jetzt noch mehr Services!"
|
907 |
+
|
908 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
909 |
+
msgid "Scan website (again)"
|
910 |
+
msgstr "Website (erneut) scannen"
|
911 |
+
|
912 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
913 |
+
msgid "Cookie banner optimizations for mobile devices"
|
914 |
+
msgstr "Cookie Banner Optimierungen für mobile Endgeräte"
|
915 |
+
|
916 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
917 |
+
msgid ""
|
918 |
+
"We provide additional options for optimized display of the cookie banner on "
|
919 |
+
"mobile devices. These make the cookie banner easier to use on smartphones by "
|
920 |
+
"optimizing it to the normal hand position of users. Also, the cookie banner "
|
921 |
+
"is no longer Largest Contentfull Paint (LCP) as defined by Google's Web "
|
922 |
+
"Vitals and thus the optimizations will increase your PageSpeed score for "
|
923 |
+
"mobile devices."
|
924 |
+
msgstr ""
|
925 |
+
"Wir bieten zusätzliche Optionen für die optimierte Anzeige des Cookie "
|
926 |
+
"Banners auf mobilen Geräten. Diese erleichtern die Nutzung des Cookie "
|
927 |
+
"Banners auf Smartphones, indem es für die normale Handhaltung der Nutzer "
|
928 |
+
"optimiert wurde. Außerdem ist das Cookie Banner nicht mehr das größte "
|
929 |
+
"Largest Contentfull Paint (LCP), wie es von Googles Web Vitals definiert "
|
930 |
+
"wird, sodass die Optimierungen deinen PageSpeed Score für mobile Geräte "
|
931 |
+
"erhöhen."
|
932 |
+
|
933 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
934 |
+
msgid "Activate optimizations"
|
935 |
+
msgstr "Optimierungen aktivieren"
|
936 |
+
|
937 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
938 |
+
msgid "pro-modal/mobile-optimization.png"
|
939 |
+
msgstr "pro-modal/de/mobile-optimization.png"
|
940 |
+
|
941 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
942 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
943 |
+
msgstr "Updates in v3.0: Du solltest handeln, um sicher zu sein!"
|
944 |
+
|
945 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
946 |
+
msgid ""
|
947 |
+
"With Real Cookie Banner 3.0 we have released a major update, in which we "
|
948 |
+
"have implemented, among other things, current legal adjustments. Read more "
|
949 |
+
"about the changes in our <a href=\"https://devowl.io/2022/real-cookie-"
|
950 |
+
"banner-3-0/\" target=\"_blank\">blog post</a>."
|
951 |
+
msgstr ""
|
952 |
+
"Mit Real Cookie Banner 3.0 haben wir ein großes Update veröffentlicht, in "
|
953 |
+
"dem wir u.a. aktuelle rechtliche Anpassungen vorgenommen haben. Mehr zu den "
|
954 |
+
"Änderungen erfährst du in unserem <a href=\"https://devowl.io/de/2022/"
|
955 |
+
"real-cookie-banner-3-0/\" target=\"_blank\">Blogbeitrag.</a>."
|
956 |
+
|
957 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
958 |
+
msgid ""
|
959 |
+
"<strong>You should definitely take a look at the following points, because "
|
960 |
+
"we have adjusted the behavior of the cookie banner.</strong> All changes can "
|
961 |
+
"be optionally activated or ignored. We will not fundamentally change your "
|
962 |
+
"cookie banner without your consent."
|
963 |
+
msgstr ""
|
964 |
+
"<strong>Du solltest unbedingt einen Blick auf die folgenden Punkte werfen, "
|
965 |
+
"denn wir haben das Verhalten des Cookie Banners angepasst.</strong> Alle "
|
966 |
+
"Änderungen können wahlweise aktiviert oder ignoriert werden. Ohne deine "
|
967 |
+
"Einwilligung werden wir deinen Cookie Banner nicht grundlegend verändern."
|
968 |
+
|
969 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
970 |
msgid ""
|
971 |
"Briefly summarized, consents according to TCF are considered too non-"
|
2360 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2361 |
"instead uses the consent collected by Real Cookie Banner."
|
2362 |
msgstr ""
|
2363 |
+
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https://"
|
2364 |
+
"newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü (oben "
|
2365 |
+
"links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
|
2366 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2367 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2368 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
2644 |
msgid "Facebook Pixel ID"
|
2645 |
msgstr "Facebook Pixel ID"
|
2646 |
|
2647 |
+
#. translators:
|
2648 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2649 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
2650 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2651 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2652 |
+
#: inc/presets/free/YoutubePreset.php:1
|
2653 |
+
msgid ""
|
2654 |
+
"What do you have to consider when integrating %1$s into your website? <a "
|
2655 |
+
"href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
2656 |
+
msgstr ""
|
2657 |
+
"Was musst du beachten, wenn du %1$s in deine Website integrierst? <a href=\""
|
2658 |
+
"%2$s\" target=\"_blank\">Erfahre mehr darüber in unserem Blog!</a>"
|
2659 |
+
|
2660 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2661 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
2662 |
+
msgstr "https://devowl.io/de/2022/facebook-pixel-einbinden-dsgvo/"
|
2663 |
+
|
2664 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2665 |
msgid ""
|
2666 |
"Facebook allows embedding content posted on facebook.com directly into "
|
3382 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3383 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3384 |
|
3385 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
3386 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
3387 |
+
msgstr "https://devowl.io/de/2022/instagram-einbinden-website-dsgvo/"
|
3388 |
+
|
3389 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3390 |
msgid ""
|
3391 |
"Intercom is a customer service tool that provides live chat for websites. "
|
4442 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4443 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4444 |
|
4445 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
4446 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
4447 |
+
msgstr "https://devowl.io/de/2022/sendinblue-integration-wordpress/"
|
4448 |
+
|
4449 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4450 |
msgid ""
|
4451 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
4487 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4488 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4489 |
|
4490 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
4491 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
4492 |
+
msgstr "https://devowl.io/de/2022/spotify-wordpress-dsgvo/"
|
4493 |
+
|
4494 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4495 |
msgid ""
|
4496 |
"Stripe is an online payment service with which payments can be made in this "
|
5868 |
|
5869 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5870 |
msgid ""
|
5871 |
+
"When loading Google Fonts, personal data of your visitors is transferred to "
|
5872 |
+
"Google, which is why you need consent. Real Cookie Banner has to check the "
|
5873 |
+
"consent before loading Google Fonts (if there is a consent), which takes a "
|
5874 |
+
"few milliseconds per page view. As a result, you will inevitably notice a "
|
5875 |
+
"small flickering effect (font replacement after a few milliseconds) on your "
|
5876 |
+
"website."
|
5877 |
+
msgstr ""
|
5878 |
+
"Beim Laden von Google Fonts werden persönliche Daten deiner Besucher an "
|
5879 |
+
"Google übertragen, weshalb du eine Einwilligung benötigst. Real Cookie "
|
5880 |
+
"Banner muss die Einwilligung vor dem Laden von Google Fonts prüfen (falls "
|
5881 |
+
"eine Einwilligung vorliegt), was einige Millisekunden pro Seitenaufruf "
|
5882 |
+
"dauert. Daher wirst du unweigerlich einen kleinen Flackereffekt ("
|
5883 |
+
"Schriftartwechsel nach ein paar Millisekunden) auf deiner Website "
|
5884 |
+
"feststellen."
|
5885 |
+
|
5886 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
5887 |
+
msgid ""
|
5888 |
+
"We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-"
|
5889 |
+
"wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally "
|
5890 |
+
"hosted fonts</a> when possible, rather than asking for consent. We explained "
|
5891 |
+
"how this works in our blog!"
|
5892 |
msgstr ""
|
5893 |
+
"Wir empfehlen daher, <a href=\"https://devowl.io/de/2022/"
|
5894 |
+
"google-fonts-wordpress-dsgvo/\" target=\"_blank\">Google Fonts wenn möglich "
|
5895 |
+
"durch lokal gehostete Schriftarten zu ersetzen</a>, anstatt nach einer "
|
5896 |
+
"Einwilligung zu fragen. Wie das funktioniert, haben wir in unserem Blog "
|
5897 |
+
"erklärt!"
|
5898 |
|
5899 |
#: inc/presets/free/GravatarPreset.php:1
|
5900 |
msgid ""
|
6064 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
6065 |
"muss ein Service angelegt werden."
|
6066 |
|
6067 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
6068 |
+
msgid ""
|
6069 |
+
"Do you want to use the comment feature on your website at all? If not, we "
|
6070 |
+
"explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-"
|
6071 |
+
"comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. "
|
6072 |
+
"Then you can also avoid this consent!"
|
6073 |
+
msgstr ""
|
6074 |
+
"Willst du die Kommentarfunktion auf deiner Website überhaupt nutzen? Wenn "
|
6075 |
+
"nicht, erklären wir in unserem Blog, <a href=\"https://devowl.io/de/2022/"
|
6076 |
+
"wordpress-kommentare-deaktivieren/\" target=\"_blank\">wie du Kommentare in "
|
6077 |
+
"WordPress deaktivieren kannst</a>. Dann kannst du dir die Einwilligung auch "
|
6078 |
+
"sparen!"
|
6079 |
+
|
6080 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6081 |
msgid ""
|
6082 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
6095 |
msgid "https://wordpress.org/about/privacy/"
|
6096 |
msgstr "https://de.wordpress.org/about/privacy/"
|
6097 |
|
6098 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6099 |
+
msgid ""
|
6100 |
+
"Almost all browsers and operating systems released after 2015 can easily "
|
6101 |
+
"display emojis without the WordPressa Emoji Script (for which you must "
|
6102 |
+
"obtain this consent)."
|
6103 |
+
msgstr ""
|
6104 |
+
"Fast alle Browser und Betriebssysteme, die nach 2015 veröffentlicht wurden, "
|
6105 |
+
"können Emojis problemlos ohne das WordPressa-Emoji-Script anzeigen (für das "
|
6106 |
+
"du diese Einwilligung einholen musst)."
|
6107 |
+
|
6108 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6109 |
+
msgid ""
|
6110 |
+
"Unless you need to support particularly old browsers and operating systems, "
|
6111 |
+
"we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-"
|
6112 |
+
"wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather "
|
6113 |
+
"than asking for consent. How to do that, we have explained in our blog!"
|
6114 |
+
msgstr ""
|
6115 |
+
"Sofern du nicht besonders alte Browser und Betriebssysteme unterstützen "
|
6116 |
+
"musst, empfehlen wir dir, das <a href=\"https://devowl.io/de/2022/"
|
6117 |
+
"wordpress-emojis-deaktivieren/\" target=\"_blank\">WordPress-Emoji-Script zu "
|
6118 |
+
"deaktivieren</a>, anstatt nach einer Einwilligung zu fragen. Wie du das "
|
6119 |
+
"machst, haben wir in unserem Blog erklärt!"
|
6120 |
+
|
6121 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
6122 |
msgid ""
|
6123 |
"WordPress.org allows to display further and latest information about plugins "
|
6192 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
6193 |
"Nutzer seine Einwilligung zum Laden gibt."
|
6194 |
|
6195 |
+
#: inc/presets/free/YoutubePreset.php:1
|
6196 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
6197 |
+
msgstr "https://devowl.io/de/2022/youtube-website-dsgvo/"
|
6198 |
+
|
6199 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
6200 |
msgid "Load content"
|
6201 |
msgstr "Inhalt laden"
|
8093 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
8094 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
8095 |
|
8096 |
+
#~ msgid ""
|
8097 |
+
#~ "An opt-in script is not required, as this service is probably already "
|
8098 |
+
#~ "integrated via e.g. your theme. In addition to this service, please "
|
8099 |
+
#~ "create a content blocker that automatically blocks the integration of "
|
8100 |
+
#~ "Google Fonts (from e.g. your theme) before you have the consent of your "
|
8101 |
+
#~ "users."
|
8102 |
+
#~ msgstr ""
|
8103 |
+
#~ "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service "
|
8104 |
+
#~ "wahrscheinlich bereits z. B. über dein Theme integriert ist. Zusätzlich "
|
8105 |
+
#~ "zu diesem Service kannst du einen Content Blocker einrichten, der die "
|
8106 |
+
#~ "Integration von Google Fonts (z. B. in deinem Theme) automatisch "
|
8107 |
+
#~ "blockiert, bevor du die Zustimmung deiner Nutzer hast."
|
8108 |
+
|
8109 |
#~ msgid ""
|
8110 |
#~ "We use cookies and similar technologies on our website and process your "
|
8111 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
languages/real-cookie-banner-de_CH_informal.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_CH_informal.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-06-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
@@ -328,7 +328,7 @@ msgid "Product license not for production use!"
|
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
-
#: inc/Assets.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
@@ -374,6 +374,10 @@ msgstr ""
|
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
|
|
|
|
|
|
|
|
377 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
378 |
msgid "Updated texts (German, English)"
|
379 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
@@ -594,14 +598,14 @@ msgstr "Funktional"
|
|
594 |
msgid "Statistics"
|
595 |
msgstr "Statistik"
|
596 |
|
597 |
-
#. translators:
|
598 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
599 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
600 |
#: inc/settings/CookieGroup.php:1
|
601 |
msgid "Statistic"
|
602 |
msgstr "Statistik"
|
603 |
|
604 |
-
#. translators:
|
605 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
606 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
607 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -677,6 +681,291 @@ msgstr ""
|
|
677 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
678 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
679 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
681 |
msgid ""
|
682 |
"Briefly summarized, consents according to TCF are considered too non-"
|
@@ -2071,9 +2360,9 @@ msgid ""
|
|
2071 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2072 |
"instead uses the consent collected by Real Cookie Banner."
|
2073 |
msgstr ""
|
2074 |
-
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https"
|
2075 |
-
"
|
2076 |
-
"
|
2077 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2078 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2079 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
@@ -2355,6 +2644,23 @@ msgstr ""
|
|
2355 |
msgid "Facebook Pixel ID"
|
2356 |
msgstr "Facebook Pixel ID"
|
2357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2358 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2359 |
msgid ""
|
2360 |
"Facebook allows embedding content posted on facebook.com directly into "
|
@@ -3076,6 +3382,10 @@ msgstr ""
|
|
3076 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3077 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3078 |
|
|
|
|
|
|
|
|
|
3079 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3080 |
msgid ""
|
3081 |
"Intercom is a customer service tool that provides live chat for websites. "
|
@@ -4132,6 +4442,10 @@ msgstr ""
|
|
4132 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4133 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4134 |
|
|
|
|
|
|
|
|
|
4135 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4136 |
msgid ""
|
4137 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
@@ -4173,6 +4487,10 @@ msgstr ""
|
|
4173 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4174 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4175 |
|
|
|
|
|
|
|
|
|
4176 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4177 |
msgid ""
|
4178 |
"Stripe is an online payment service with which payments can be made in this "
|
@@ -5550,16 +5868,33 @@ msgstr ""
|
|
5550 |
|
5551 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5552 |
msgid ""
|
5553 |
-
"
|
5554 |
-
"
|
5555 |
-
"
|
5556 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5557 |
msgstr ""
|
5558 |
-
"
|
5559 |
-
"
|
5560 |
-
"
|
5561 |
-
"
|
5562 |
-
"
|
5563 |
|
5564 |
#: inc/presets/free/GravatarPreset.php:1
|
5565 |
msgid ""
|
@@ -5729,6 +6064,19 @@ msgstr ""
|
|
5729 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
5730 |
"muss ein Service angelegt werden."
|
5731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5732 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
5733 |
msgid ""
|
5734 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
@@ -5747,6 +6095,29 @@ msgstr ""
|
|
5747 |
msgid "https://wordpress.org/about/privacy/"
|
5748 |
msgstr "https://de.wordpress.org/about/privacy/"
|
5749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5750 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
5751 |
msgid ""
|
5752 |
"WordPress.org allows to display further and latest information about plugins "
|
@@ -5821,6 +6192,10 @@ msgstr ""
|
|
5821 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
5822 |
"Nutzer seine Einwilligung zum Laden gibt."
|
5823 |
|
|
|
|
|
|
|
|
|
5824 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
5825 |
msgid "Load content"
|
5826 |
msgstr "Inhalt laden"
|
@@ -7718,6 +8093,19 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7718 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7719 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7720 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7721 |
#~ msgid ""
|
7722 |
#~ "We use cookies and similar technologies on our website and process your "
|
7723 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-06-13 06:58+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
+
#: inc/Assets.php:1 inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
377 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
378 |
+
msgid "Migration is only available in PRO version!"
|
379 |
+
msgstr "Die Migration ist nur in der PRO-Version verfügbar!"
|
380 |
+
|
381 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
382 |
msgid "Updated texts (German, English)"
|
383 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
598 |
msgid "Statistics"
|
599 |
msgstr "Statistik"
|
600 |
|
601 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
602 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
603 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
604 |
#: inc/settings/CookieGroup.php:1
|
605 |
msgid "Statistic"
|
606 |
msgstr "Statistik"
|
607 |
|
608 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
609 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
610 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
611 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
681 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
682 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
683 |
|
684 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
685 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
686 |
+
msgstr "Rechtliche Anpassungen von Texten und Design im Cookie Banner"
|
687 |
+
|
688 |
+
#. translators:
|
689 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
690 |
+
msgid ""
|
691 |
+
"In recent months, more clarity has been created about what consent "
|
692 |
+
"management on websites should look like - and what it shouldn't. In "
|
693 |
+
"particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/"
|
694 |
+
"\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection "
|
695 |
+
"Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
696 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference "
|
697 |
+
"of Independent Data Protection Authorities for cookie banners</a> "
|
698 |
+
"(coordinated legal interpretation of all German data protection authorities; "
|
699 |
+
"in German), there are now clearer rules that further interpret or complement "
|
700 |
+
"the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/"
|
701 |
+
"TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and "
|
702 |
+
"<a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, "
|
703 |
+
"there were important decisions such as the evaluation of <a href=\"https://"
|
704 |
+
"www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-"
|
705 |
+
"n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a "
|
706 |
+
"href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google"
|
707 |
+
"%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by "
|
708 |
+
"dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/"
|
709 |
+
"atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" "
|
710 |
+
"target=\"_blank\">position on Google Analytics by CNIL</a>."
|
711 |
+
msgstr ""
|
712 |
+
"In den letzten Monaten wurde mehr Klarheit darüber geschaffen, wie das "
|
713 |
+
"Einwilligungsmanagement auf Websites aussehen sollte - und wie es nicht "
|
714 |
+
"aussehen sollte. Insbesondere durch das <a href=\"https://www.gesetze-im-"
|
715 |
+
"internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telekommunikation-"
|
716 |
+
"Telemedien-Datenschutz-Gesetz) und die <a href=\"https://www."
|
717 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
718 |
+
"\"_blank\">Orientierungshilfe der Konferenz der unabhängigen "
|
719 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder</a> (koordinierte "
|
720 |
+
"Rechtsauslegung aller deutschen Datenschutzbehörden) gibt es jetzt klarere "
|
721 |
+
"Regeln, welche die EU-weit geltende <a href=\"https://eur-lex.europa.eu/"
|
722 |
+
"legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy-"
|
723 |
+
"Richtlinie</a> und <a href=\"https://dsgvo-gesetz.de/\" target=\"_blank\""
|
724 |
+
">DSGVO</a> weiter auslegen oder ergänzen. Außerdem gab es wichtige "
|
725 |
+
"Entscheidungen wie die Bewertung von <a href=\"https://www."
|
726 |
+
"autoriteprotectiondonnees.be/publications/decision-quant-au-"
|
727 |
+
"fond-n-21-2022-english.pdf\" target=\"_blank\">TCF durch ADP (Belgien)</a>, "
|
728 |
+
"die <a href=\"https://noyb.eu/sites/default/files/2022-01/"
|
729 |
+
"E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google "
|
730 |
+
"Analytics Entscheidung von dsb (Österreich)</a> und die <a href=\"https://www"
|
731 |
+
".cnil.fr/sites/default/files/atoms/files/"
|
732 |
+
"decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target="
|
733 |
+
"\"_blank\">Stellungnahme zu Google Analytics von CNIL</a>."
|
734 |
+
|
735 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
736 |
+
msgid ""
|
737 |
+
"We have adapted the texts and design suggestions for the cookie banner "
|
738 |
+
"accordingly. <strong>We strongly advise you to adopt the new texts and "
|
739 |
+
"design suggestions for your website!</strong>"
|
740 |
+
msgstr ""
|
741 |
+
"Wir haben die Texte und Design-Vorschläge für das Cookie Banner entsprechend "
|
742 |
+
"angepasst. <strong>Wir raten dir dringend, die neuen Texte und Design-"
|
743 |
+
"Vorschläge für deine Website zu übernehmen!</strong>"
|
744 |
+
|
745 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
746 |
+
msgid ""
|
747 |
+
"If you want to keep your individual Cookie Banner Design, please make sure "
|
748 |
+
"that the choices (\"Accept all\", \"Continue without consent\" and \"Set "
|
749 |
+
"privacy settings individually\") are displayed equally and all services are "
|
750 |
+
"named in the first view of your cookie banner."
|
751 |
+
msgstr ""
|
752 |
+
"Wenn du dein individuelles Cookie Banner Design beibehalten möchtest, achte "
|
753 |
+
"bitte darauf, dass die Auswahlmöglichkeiten (\"Alle akzeptieren\", \"Weiter "
|
754 |
+
"ohne Einwilligung\", \"Privatsphäre-Einstellungen individuell festlegen\") "
|
755 |
+
"gleichwertig angezeigt werden und alle Services in der ersten Ansicht deines "
|
756 |
+
"Cookie Banners benannt werden."
|
757 |
+
|
758 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
759 |
+
msgid "Apply new texts and important design changes"
|
760 |
+
msgstr "Neue Texte und wichtige Design-Änderungen anwenden"
|
761 |
+
|
762 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
763 |
+
msgid ""
|
764 |
+
"We will overwrite all texts in your cookie banner with new text suggestions. "
|
765 |
+
"Also, we name all services in the first view of the cookie banner instead of "
|
766 |
+
"a bullet list of service groups, equalize the appearance of \"Accept all\" "
|
767 |
+
"and \"Continue without consent\", and highlight \"Set privacy settings "
|
768 |
+
"individually\" in your cookie banner. Please check afterwards if all "
|
769 |
+
"adjustments are correct for your individual requirements and reconfigure "
|
770 |
+
"your cookie banner yourself if necessary. Are you sure you want to apply the "
|
771 |
+
"changes?"
|
772 |
+
msgstr ""
|
773 |
+
"Wir überschreiben alle Texte in deinem Cookie Banner mit neuen "
|
774 |
+
"Textvorschlägen. Außerdem benennen wir alle Services in der ersten Ansicht "
|
775 |
+
"des Cookie Banners anstelle einer Aufzählung von Service-Gruppen, gleichen "
|
776 |
+
"das Aussehen von \"Alle akzeptieren\" und \"Weiter ohne Einwilligung\" an "
|
777 |
+
"und heben \"Privatsphäre-Einstellungen individuell festlegen\" in deinem "
|
778 |
+
"Cookie Banner hervor. Bitte überprüfe anschließend, ob alle Anpassungen für "
|
779 |
+
"deine individuellen Anforderungen richtig sind und konfiguriere dein Cookie "
|
780 |
+
"Banner bei Bedarf selbst um. Bist du sicher, dass du die Änderungen "
|
781 |
+
"übernehmen willst?"
|
782 |
+
|
783 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
784 |
+
msgid "cookie-banner-frontend.png"
|
785 |
+
msgstr "de/cookie-banner-frontend.png"
|
786 |
+
|
787 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
788 |
+
msgid "Place legal links on each subpage"
|
789 |
+
msgstr "Rechtliche Links auf jeder Unterseite platzieren"
|
790 |
+
|
791 |
+
#. translators:
|
792 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
793 |
+
msgid ""
|
794 |
+
"In accordance with the requirements of the "<a href=\"https://www."
|
795 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
796 |
+
"\"_blank\">Guidance of the Conference of Independent Data Protection "
|
797 |
+
"Authorities for cookie banners</a>", the possibility to view, modify "
|
798 |
+
"and revoke consent must be directly accessible on every sub-page of your "
|
799 |
+
"website."
|
800 |
+
msgstr ""
|
801 |
+
"Gemäß den Anforderungen des <a href=\"https://www.datenschutzkonferenz-online"
|
802 |
+
".de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">"
|
803 |
+
"\"Orientierungshilfe der Konferenz der unabhängigen "
|
804 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder\"</a> muss die "
|
805 |
+
"Möglichkeit, die Einwilligung einzusehen, zu ändern und zu widerrufen, auf "
|
806 |
+
"jeder Unterseite deiner Website direkt zugänglich sein."
|
807 |
+
|
808 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
809 |
+
msgid ""
|
810 |
+
"This means you can no longer \"hide\" the links/buttons in your privacy "
|
811 |
+
"policy. <strong>We recommend placing the option in the footer of each "
|
812 |
+
"subpage.</strong>"
|
813 |
+
msgstr ""
|
814 |
+
"Das bedeutet, dass du die Links/Buttons in deiner Datenschutzerklärung nicht "
|
815 |
+
"mehr \"verstecken\" kannst. <strong>Wir empfehlen, die Option in im Footer "
|
816 |
+
"(Fußzeile) jeder Unterseite deiner Website zu platzieren.</strong>"
|
817 |
+
|
818 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
819 |
+
msgid ""
|
820 |
+
"You can now place the legal links not only as shortcodes, but also in "
|
821 |
+
"WordPress menus as menu items."
|
822 |
+
msgstr ""
|
823 |
+
"Du kannst die rechtlichen Links jetzt nicht nur als Shortcodes, sondern auch "
|
824 |
+
"in WordPress-Menüs als Menüpunkte platzieren."
|
825 |
+
|
826 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
827 |
+
msgid "Place legal links"
|
828 |
+
msgstr "Rechtliche Links platzieren"
|
829 |
+
|
830 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
831 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
832 |
+
msgstr ""
|
833 |
+
"Visueller Content Blocker in hübsch: Sieht aus wie ohne Content Blocker!"
|
834 |
+
|
835 |
+
#. translators:
|
836 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
837 |
+
msgid ""
|
838 |
+
"Visual content blockers replace, for example, YouTube videos on the website "
|
839 |
+
"if the visitor has not given consent to YouTube loading in the cookie "
|
840 |
+
"banner. Until now, these were very text-heavy to display all the legally "
|
841 |
+
"necessary requirements."
|
842 |
+
msgstr ""
|
843 |
+
"Visuelle Content Blocker ersetzen z.B. YouTube-Videos auf der Website, wenn "
|
844 |
+
"der Besucher im Cookie Banner keine Einwilligung zum Laden von YouTube "
|
845 |
+
"gegeben hat. Bisher waren diese sehr textlastig, um alle rechtlich "
|
846 |
+
"notwendigen Anforderungen anzuzeigen."
|
847 |
+
|
848 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
849 |
+
msgid ""
|
850 |
+
"Hero and Wrapped Content Blockers are trying to do that better. Hero Content "
|
851 |
+
"Blocker mimic maps, video players, audio players, and various types of "
|
852 |
+
"social media feeds in a privacy-compliant way, so it looks like the original "
|
853 |
+
"element is still embedded. Consent is obtained in a modal when the visitor "
|
854 |
+
"tries to start the video, for example. <strong>Reconfigure your content "
|
855 |
+
"blockers now!</strong>"
|
856 |
+
msgstr ""
|
857 |
+
"Hero und Wrapped Content Blocker versuchen, das besser zu machen. Hero "
|
858 |
+
"Content Blocker imitieren Karten, Videoplayer, Audioplayer und verschiedene "
|
859 |
+
"Arten von Social Media Feeds auf datenschutzkonforme Weise, sodass es so "
|
860 |
+
"aussieht, als wäre das ursprüngliche Element noch eingebettet. Die "
|
861 |
+
"Einwilligung wird in einem Modal eingeholt, wenn der Besucher z. B. "
|
862 |
+
"versucht, das Video zu starten. <strong>Konfiguriere deine Content Blocker "
|
863 |
+
"jetzt um!</strong>"
|
864 |
+
|
865 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
866 |
+
msgid "Reconfigure Content Blocker"
|
867 |
+
msgstr "Content Blocker umkonfigurieren"
|
868 |
+
|
869 |
+
#. translators:
|
870 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
871 |
+
msgid ""
|
872 |
+
"We recommend for <strong>%s</strong> to change the design to a more and "
|
873 |
+
"better visual Content Blocker."
|
874 |
+
msgstr ""
|
875 |
+
"Wir empfehlen für <strong>%s</strong>, das Design in Hero Content Blocker zu "
|
876 |
+
"ändern."
|
877 |
+
|
878 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
879 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
880 |
+
msgstr "pro-modal/de/visual-content-blocker.webp"
|
881 |
+
|
882 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
883 |
+
msgid "Scan your website for services that require consent"
|
884 |
+
msgstr "Scanne deine Website nach einwilligungspflichtigen Services"
|
885 |
+
|
886 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
887 |
+
msgid ""
|
888 |
+
"The service scanner crawls every subpage of your website, all plugins and "
|
889 |
+
"other technical indicators of your website to find services on your website "
|
890 |
+
"that require consent. This allows you to collect all the consent you need "
|
891 |
+
"from your website visitors."
|
892 |
+
msgstr ""
|
893 |
+
"Der Service Scanner durchsucht jede Unterseite deiner Website, alle Plugins "
|
894 |
+
"und andere technische Indikatoren deiner Website, um Services auf deiner "
|
895 |
+
"Website zu finden, die eine Einwilligung erfordern. So kannst du alle "
|
896 |
+
"Einwilligungen einholen, die du von deinen Besuchern brauchst."
|
897 |
+
|
898 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
899 |
+
msgid ""
|
900 |
+
"If you last fully scanned your website before Februrary 2022, we recommend "
|
901 |
+
"that you scan your website again. The scanner will now detect even more "
|
902 |
+
"services!"
|
903 |
+
msgstr ""
|
904 |
+
"Wenn du deine Website zuletzt vor Februar 2022 vollständig gescannt hast, "
|
905 |
+
"empfehlen wir dir, deine Website erneut zu scannen. Der Scanner erkennt "
|
906 |
+
"jetzt noch mehr Services!"
|
907 |
+
|
908 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
909 |
+
msgid "Scan website (again)"
|
910 |
+
msgstr "Website (erneut) scannen"
|
911 |
+
|
912 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
913 |
+
msgid "Cookie banner optimizations for mobile devices"
|
914 |
+
msgstr "Cookie Banner Optimierungen für mobile Endgeräte"
|
915 |
+
|
916 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
917 |
+
msgid ""
|
918 |
+
"We provide additional options for optimized display of the cookie banner on "
|
919 |
+
"mobile devices. These make the cookie banner easier to use on smartphones by "
|
920 |
+
"optimizing it to the normal hand position of users. Also, the cookie banner "
|
921 |
+
"is no longer Largest Contentfull Paint (LCP) as defined by Google's Web "
|
922 |
+
"Vitals and thus the optimizations will increase your PageSpeed score for "
|
923 |
+
"mobile devices."
|
924 |
+
msgstr ""
|
925 |
+
"Wir bieten zusätzliche Optionen für die optimierte Anzeige des Cookie "
|
926 |
+
"Banners auf mobilen Geräten. Diese erleichtern die Nutzung des Cookie "
|
927 |
+
"Banners auf Smartphones, indem es für die normale Handhaltung der Nutzer "
|
928 |
+
"optimiert wurde. Außerdem ist das Cookie Banner nicht mehr das größte "
|
929 |
+
"Largest Contentfull Paint (LCP), wie es von Googles Web Vitals definiert "
|
930 |
+
"wird, sodass die Optimierungen deinen PageSpeed Score für mobile Geräte "
|
931 |
+
"erhöhen."
|
932 |
+
|
933 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
934 |
+
msgid "Activate optimizations"
|
935 |
+
msgstr "Optimierungen aktivieren"
|
936 |
+
|
937 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
938 |
+
msgid "pro-modal/mobile-optimization.png"
|
939 |
+
msgstr "pro-modal/de/mobile-optimization.png"
|
940 |
+
|
941 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
942 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
943 |
+
msgstr "Updates in v3.0: Du solltest handeln, um sicher zu sein!"
|
944 |
+
|
945 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
946 |
+
msgid ""
|
947 |
+
"With Real Cookie Banner 3.0 we have released a major update, in which we "
|
948 |
+
"have implemented, among other things, current legal adjustments. Read more "
|
949 |
+
"about the changes in our <a href=\"https://devowl.io/2022/real-cookie-"
|
950 |
+
"banner-3-0/\" target=\"_blank\">blog post</a>."
|
951 |
+
msgstr ""
|
952 |
+
"Mit Real Cookie Banner 3.0 haben wir ein großes Update veröffentlicht, in "
|
953 |
+
"dem wir u.a. aktuelle rechtliche Anpassungen vorgenommen haben. Mehr zu den "
|
954 |
+
"Änderungen erfährst du in unserem <a href=\"https://devowl.io/de/2022/"
|
955 |
+
"real-cookie-banner-3-0/\" target=\"_blank\">Blogbeitrag.</a>."
|
956 |
+
|
957 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
958 |
+
msgid ""
|
959 |
+
"<strong>You should definitely take a look at the following points, because "
|
960 |
+
"we have adjusted the behavior of the cookie banner.</strong> All changes can "
|
961 |
+
"be optionally activated or ignored. We will not fundamentally change your "
|
962 |
+
"cookie banner without your consent."
|
963 |
+
msgstr ""
|
964 |
+
"<strong>Du solltest unbedingt einen Blick auf die folgenden Punkte werfen, "
|
965 |
+
"denn wir haben das Verhalten des Cookie Banners angepasst.</strong> Alle "
|
966 |
+
"Änderungen können wahlweise aktiviert oder ignoriert werden. Ohne deine "
|
967 |
+
"Einwilligung werden wir deinen Cookie Banner nicht grundlegend verändern."
|
968 |
+
|
969 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
970 |
msgid ""
|
971 |
"Briefly summarized, consents according to TCF are considered too non-"
|
2360 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2361 |
"instead uses the consent collected by Real Cookie Banner."
|
2362 |
msgstr ""
|
2363 |
+
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https://"
|
2364 |
+
"newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü (oben "
|
2365 |
+
"links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
|
2366 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2367 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2368 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
2644 |
msgid "Facebook Pixel ID"
|
2645 |
msgstr "Facebook Pixel ID"
|
2646 |
|
2647 |
+
#. translators:
|
2648 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2649 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
2650 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2651 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2652 |
+
#: inc/presets/free/YoutubePreset.php:1
|
2653 |
+
msgid ""
|
2654 |
+
"What do you have to consider when integrating %1$s into your website? <a "
|
2655 |
+
"href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
2656 |
+
msgstr ""
|
2657 |
+
"Was musst du beachten, wenn du %1$s in deine Website integrierst? <a href=\""
|
2658 |
+
"%2$s\" target=\"_blank\">Erfahre mehr darüber in unserem Blog!</a>"
|
2659 |
+
|
2660 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2661 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
2662 |
+
msgstr "https://devowl.io/de/2022/facebook-pixel-einbinden-dsgvo/"
|
2663 |
+
|
2664 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2665 |
msgid ""
|
2666 |
"Facebook allows embedding content posted on facebook.com directly into "
|
3382 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3383 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3384 |
|
3385 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
3386 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
3387 |
+
msgstr "https://devowl.io/de/2022/instagram-einbinden-website-dsgvo/"
|
3388 |
+
|
3389 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3390 |
msgid ""
|
3391 |
"Intercom is a customer service tool that provides live chat for websites. "
|
4442 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4443 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4444 |
|
4445 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
4446 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
4447 |
+
msgstr "https://devowl.io/de/2022/sendinblue-integration-wordpress/"
|
4448 |
+
|
4449 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4450 |
msgid ""
|
4451 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
4487 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4488 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4489 |
|
4490 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
4491 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
4492 |
+
msgstr "https://devowl.io/de/2022/spotify-wordpress-dsgvo/"
|
4493 |
+
|
4494 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4495 |
msgid ""
|
4496 |
"Stripe is an online payment service with which payments can be made in this "
|
5868 |
|
5869 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5870 |
msgid ""
|
5871 |
+
"When loading Google Fonts, personal data of your visitors is transferred to "
|
5872 |
+
"Google, which is why you need consent. Real Cookie Banner has to check the "
|
5873 |
+
"consent before loading Google Fonts (if there is a consent), which takes a "
|
5874 |
+
"few milliseconds per page view. As a result, you will inevitably notice a "
|
5875 |
+
"small flickering effect (font replacement after a few milliseconds) on your "
|
5876 |
+
"website."
|
5877 |
+
msgstr ""
|
5878 |
+
"Beim Laden von Google Fonts werden persönliche Daten deiner Besucher an "
|
5879 |
+
"Google übertragen, weshalb du eine Einwilligung benötigst. Real Cookie "
|
5880 |
+
"Banner muss die Einwilligung vor dem Laden von Google Fonts prüfen (falls "
|
5881 |
+
"eine Einwilligung vorliegt), was einige Millisekunden pro Seitenaufruf "
|
5882 |
+
"dauert. Daher wirst du unweigerlich einen kleinen Flackereffekt ("
|
5883 |
+
"Schriftartwechsel nach ein paar Millisekunden) auf deiner Website "
|
5884 |
+
"feststellen."
|
5885 |
+
|
5886 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
5887 |
+
msgid ""
|
5888 |
+
"We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-"
|
5889 |
+
"wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally "
|
5890 |
+
"hosted fonts</a> when possible, rather than asking for consent. We explained "
|
5891 |
+
"how this works in our blog!"
|
5892 |
msgstr ""
|
5893 |
+
"Wir empfehlen daher, <a href=\"https://devowl.io/de/2022/"
|
5894 |
+
"google-fonts-wordpress-dsgvo/\" target=\"_blank\">Google Fonts wenn möglich "
|
5895 |
+
"durch lokal gehostete Schriftarten zu ersetzen</a>, anstatt nach einer "
|
5896 |
+
"Einwilligung zu fragen. Wie das funktioniert, haben wir in unserem Blog "
|
5897 |
+
"erklärt!"
|
5898 |
|
5899 |
#: inc/presets/free/GravatarPreset.php:1
|
5900 |
msgid ""
|
6064 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
6065 |
"muss ein Service angelegt werden."
|
6066 |
|
6067 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
6068 |
+
msgid ""
|
6069 |
+
"Do you want to use the comment feature on your website at all? If not, we "
|
6070 |
+
"explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-"
|
6071 |
+
"comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. "
|
6072 |
+
"Then you can also avoid this consent!"
|
6073 |
+
msgstr ""
|
6074 |
+
"Willst du die Kommentarfunktion auf deiner Website überhaupt nutzen? Wenn "
|
6075 |
+
"nicht, erklären wir in unserem Blog, <a href=\"https://devowl.io/de/2022/"
|
6076 |
+
"wordpress-kommentare-deaktivieren/\" target=\"_blank\">wie du Kommentare in "
|
6077 |
+
"WordPress deaktivieren kannst</a>. Dann kannst du dir die Einwilligung auch "
|
6078 |
+
"sparen!"
|
6079 |
+
|
6080 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6081 |
msgid ""
|
6082 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
6095 |
msgid "https://wordpress.org/about/privacy/"
|
6096 |
msgstr "https://de.wordpress.org/about/privacy/"
|
6097 |
|
6098 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6099 |
+
msgid ""
|
6100 |
+
"Almost all browsers and operating systems released after 2015 can easily "
|
6101 |
+
"display emojis without the WordPressa Emoji Script (for which you must "
|
6102 |
+
"obtain this consent)."
|
6103 |
+
msgstr ""
|
6104 |
+
"Fast alle Browser und Betriebssysteme, die nach 2015 veröffentlicht wurden, "
|
6105 |
+
"können Emojis problemlos ohne das WordPressa-Emoji-Script anzeigen (für das "
|
6106 |
+
"du diese Einwilligung einholen musst)."
|
6107 |
+
|
6108 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6109 |
+
msgid ""
|
6110 |
+
"Unless you need to support particularly old browsers and operating systems, "
|
6111 |
+
"we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-"
|
6112 |
+
"wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather "
|
6113 |
+
"than asking for consent. How to do that, we have explained in our blog!"
|
6114 |
+
msgstr ""
|
6115 |
+
"Sofern du nicht besonders alte Browser und Betriebssysteme unterstützen "
|
6116 |
+
"musst, empfehlen wir dir, das <a href=\"https://devowl.io/de/2022/"
|
6117 |
+
"wordpress-emojis-deaktivieren/\" target=\"_blank\">WordPress-Emoji-Script zu "
|
6118 |
+
"deaktivieren</a>, anstatt nach einer Einwilligung zu fragen. Wie du das "
|
6119 |
+
"machst, haben wir in unserem Blog erklärt!"
|
6120 |
+
|
6121 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
6122 |
msgid ""
|
6123 |
"WordPress.org allows to display further and latest information about plugins "
|
6192 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
6193 |
"Nutzer seine Einwilligung zum Laden gibt."
|
6194 |
|
6195 |
+
#: inc/presets/free/YoutubePreset.php:1
|
6196 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
6197 |
+
msgstr "https://devowl.io/de/2022/youtube-website-dsgvo/"
|
6198 |
+
|
6199 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
6200 |
msgid "Load content"
|
6201 |
msgstr "Inhalt laden"
|
8093 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
8094 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
8095 |
|
8096 |
+
#~ msgid ""
|
8097 |
+
#~ "An opt-in script is not required, as this service is probably already "
|
8098 |
+
#~ "integrated via e.g. your theme. In addition to this service, please "
|
8099 |
+
#~ "create a content blocker that automatically blocks the integration of "
|
8100 |
+
#~ "Google Fonts (from e.g. your theme) before you have the consent of your "
|
8101 |
+
#~ "users."
|
8102 |
+
#~ msgstr ""
|
8103 |
+
#~ "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service "
|
8104 |
+
#~ "wahrscheinlich bereits z. B. über dein Theme integriert ist. Zusätzlich "
|
8105 |
+
#~ "zu diesem Service kannst du einen Content Blocker einrichten, der die "
|
8106 |
+
#~ "Integration von Google Fonts (z. B. in deinem Theme) automatisch "
|
8107 |
+
#~ "blockiert, bevor du die Zustimmung deiner Nutzer hast."
|
8108 |
+
|
8109 |
#~ msgid ""
|
8110 |
#~ "We use cookies and similar technologies on our website and process your "
|
8111 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
languages/real-cookie-banner-de_DE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_DE.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-06-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
@@ -328,7 +328,7 @@ msgid "Product license not for production use!"
|
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
-
#: inc/Assets.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
@@ -374,6 +374,10 @@ msgstr ""
|
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
|
|
|
|
|
|
|
|
377 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
378 |
msgid "Updated texts (German, English)"
|
379 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
@@ -594,14 +598,14 @@ msgstr "Funktional"
|
|
594 |
msgid "Statistics"
|
595 |
msgstr "Statistik"
|
596 |
|
597 |
-
#. translators:
|
598 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
599 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
600 |
#: inc/settings/CookieGroup.php:1
|
601 |
msgid "Statistic"
|
602 |
msgstr "Statistik"
|
603 |
|
604 |
-
#. translators:
|
605 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
606 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
607 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -677,6 +681,291 @@ msgstr ""
|
|
677 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
678 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
679 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
680 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
681 |
msgid ""
|
682 |
"Briefly summarized, consents according to TCF are considered too non-"
|
@@ -2071,9 +2360,9 @@ msgid ""
|
|
2071 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2072 |
"instead uses the consent collected by Real Cookie Banner."
|
2073 |
msgstr ""
|
2074 |
-
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https"
|
2075 |
-
"
|
2076 |
-
"
|
2077 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2078 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2079 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
@@ -2355,6 +2644,23 @@ msgstr ""
|
|
2355 |
msgid "Facebook Pixel ID"
|
2356 |
msgstr "Facebook Pixel ID"
|
2357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2358 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2359 |
msgid ""
|
2360 |
"Facebook allows embedding content posted on facebook.com directly into "
|
@@ -3076,6 +3382,10 @@ msgstr ""
|
|
3076 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3077 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3078 |
|
|
|
|
|
|
|
|
|
3079 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3080 |
msgid ""
|
3081 |
"Intercom is a customer service tool that provides live chat for websites. "
|
@@ -4132,6 +4442,10 @@ msgstr ""
|
|
4132 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4133 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4134 |
|
|
|
|
|
|
|
|
|
4135 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4136 |
msgid ""
|
4137 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
@@ -4173,6 +4487,10 @@ msgstr ""
|
|
4173 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4174 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4175 |
|
|
|
|
|
|
|
|
|
4176 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4177 |
msgid ""
|
4178 |
"Stripe is an online payment service with which payments can be made in this "
|
@@ -5550,16 +5868,33 @@ msgstr ""
|
|
5550 |
|
5551 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5552 |
msgid ""
|
5553 |
-
"
|
5554 |
-
"
|
5555 |
-
"
|
5556 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5557 |
msgstr ""
|
5558 |
-
"
|
5559 |
-
"
|
5560 |
-
"
|
5561 |
-
"
|
5562 |
-
"
|
5563 |
|
5564 |
#: inc/presets/free/GravatarPreset.php:1
|
5565 |
msgid ""
|
@@ -5729,6 +6064,19 @@ msgstr ""
|
|
5729 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
5730 |
"muss ein Service angelegt werden."
|
5731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5732 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
5733 |
msgid ""
|
5734 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
@@ -5747,6 +6095,29 @@ msgstr ""
|
|
5747 |
msgid "https://wordpress.org/about/privacy/"
|
5748 |
msgstr "https://de.wordpress.org/about/privacy/"
|
5749 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5750 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
5751 |
msgid ""
|
5752 |
"WordPress.org allows to display further and latest information about plugins "
|
@@ -5821,6 +6192,10 @@ msgstr ""
|
|
5821 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
5822 |
"Nutzer seine Einwilligung zum Laden gibt."
|
5823 |
|
|
|
|
|
|
|
|
|
5824 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
5825 |
msgid "Load content"
|
5826 |
msgstr "Inhalt laden"
|
@@ -7718,6 +8093,19 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7718 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7719 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7720 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7721 |
#~ msgid ""
|
7722 |
#~ "We use cookies and similar technologies on our website and process your "
|
7723 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-06-13 06:58+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/"
|
8 |
"wordpress-real-cookie-banner-backend-php/develop/de/>\n"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
#. translators:
|
331 |
+
#: inc/Assets.php:1 inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
332 |
msgid " and "
|
333 |
msgstr " und "
|
334 |
|
374 |
msgid "Language"
|
375 |
msgstr "Sprache"
|
376 |
|
377 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
378 |
+
msgid "Migration is only available in PRO version!"
|
379 |
+
msgstr "Die Migration ist nur in der PRO-Version verfügbar!"
|
380 |
+
|
381 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
382 |
msgid "Updated texts (German, English)"
|
383 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
598 |
msgid "Statistics"
|
599 |
msgstr "Statistik"
|
600 |
|
601 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
602 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
603 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
604 |
#: inc/settings/CookieGroup.php:1
|
605 |
msgid "Statistic"
|
606 |
msgstr "Statistik"
|
607 |
|
608 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
609 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
610 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
611 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
681 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
682 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
683 |
|
684 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
685 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
686 |
+
msgstr "Rechtliche Anpassungen von Texten und Design im Cookie Banner"
|
687 |
+
|
688 |
+
#. translators:
|
689 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
690 |
+
msgid ""
|
691 |
+
"In recent months, more clarity has been created about what consent "
|
692 |
+
"management on websites should look like - and what it shouldn't. In "
|
693 |
+
"particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/"
|
694 |
+
"\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection "
|
695 |
+
"Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
696 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference "
|
697 |
+
"of Independent Data Protection Authorities for cookie banners</a> "
|
698 |
+
"(coordinated legal interpretation of all German data protection authorities; "
|
699 |
+
"in German), there are now clearer rules that further interpret or complement "
|
700 |
+
"the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/"
|
701 |
+
"TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and "
|
702 |
+
"<a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, "
|
703 |
+
"there were important decisions such as the evaluation of <a href=\"https://"
|
704 |
+
"www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-"
|
705 |
+
"n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a "
|
706 |
+
"href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google"
|
707 |
+
"%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by "
|
708 |
+
"dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/"
|
709 |
+
"atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" "
|
710 |
+
"target=\"_blank\">position on Google Analytics by CNIL</a>."
|
711 |
+
msgstr ""
|
712 |
+
"In den letzten Monaten wurde mehr Klarheit darüber geschaffen, wie das "
|
713 |
+
"Einwilligungsmanagement auf Websites aussehen sollte - und wie es nicht "
|
714 |
+
"aussehen sollte. Insbesondere durch das <a href=\"https://www.gesetze-im-"
|
715 |
+
"internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telekommunikation-"
|
716 |
+
"Telemedien-Datenschutz-Gesetz) und die <a href=\"https://www."
|
717 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
718 |
+
"\"_blank\">Orientierungshilfe der Konferenz der unabhängigen "
|
719 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder</a> (koordinierte "
|
720 |
+
"Rechtsauslegung aller deutschen Datenschutzbehörden) gibt es jetzt klarere "
|
721 |
+
"Regeln, welche die EU-weit geltende <a href=\"https://eur-lex.europa.eu/"
|
722 |
+
"legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy-"
|
723 |
+
"Richtlinie</a> und <a href=\"https://dsgvo-gesetz.de/\" target=\"_blank\""
|
724 |
+
">DSGVO</a> weiter auslegen oder ergänzen. Außerdem gab es wichtige "
|
725 |
+
"Entscheidungen wie die Bewertung von <a href=\"https://www."
|
726 |
+
"autoriteprotectiondonnees.be/publications/decision-quant-au-"
|
727 |
+
"fond-n-21-2022-english.pdf\" target=\"_blank\">TCF durch ADP (Belgien)</a>, "
|
728 |
+
"die <a href=\"https://noyb.eu/sites/default/files/2022-01/"
|
729 |
+
"E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google "
|
730 |
+
"Analytics Entscheidung von dsb (Österreich)</a> und die <a href=\"https://www"
|
731 |
+
".cnil.fr/sites/default/files/atoms/files/"
|
732 |
+
"decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target="
|
733 |
+
"\"_blank\">Stellungnahme zu Google Analytics von CNIL</a>."
|
734 |
+
|
735 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
736 |
+
msgid ""
|
737 |
+
"We have adapted the texts and design suggestions for the cookie banner "
|
738 |
+
"accordingly. <strong>We strongly advise you to adopt the new texts and "
|
739 |
+
"design suggestions for your website!</strong>"
|
740 |
+
msgstr ""
|
741 |
+
"Wir haben die Texte und Design-Vorschläge für das Cookie Banner entsprechend "
|
742 |
+
"angepasst. <strong>Wir raten dir dringend, die neuen Texte und Design-"
|
743 |
+
"Vorschläge für deine Website zu übernehmen!</strong>"
|
744 |
+
|
745 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
746 |
+
msgid ""
|
747 |
+
"If you want to keep your individual Cookie Banner Design, please make sure "
|
748 |
+
"that the choices (\"Accept all\", \"Continue without consent\" and \"Set "
|
749 |
+
"privacy settings individually\") are displayed equally and all services are "
|
750 |
+
"named in the first view of your cookie banner."
|
751 |
+
msgstr ""
|
752 |
+
"Wenn du dein individuelles Cookie Banner Design beibehalten möchtest, achte "
|
753 |
+
"bitte darauf, dass die Auswahlmöglichkeiten (\"Alle akzeptieren\", \"Weiter "
|
754 |
+
"ohne Einwilligung\", \"Privatsphäre-Einstellungen individuell festlegen\") "
|
755 |
+
"gleichwertig angezeigt werden und alle Services in der ersten Ansicht deines "
|
756 |
+
"Cookie Banners benannt werden."
|
757 |
+
|
758 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
759 |
+
msgid "Apply new texts and important design changes"
|
760 |
+
msgstr "Neue Texte und wichtige Design-Änderungen anwenden"
|
761 |
+
|
762 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
763 |
+
msgid ""
|
764 |
+
"We will overwrite all texts in your cookie banner with new text suggestions. "
|
765 |
+
"Also, we name all services in the first view of the cookie banner instead of "
|
766 |
+
"a bullet list of service groups, equalize the appearance of \"Accept all\" "
|
767 |
+
"and \"Continue without consent\", and highlight \"Set privacy settings "
|
768 |
+
"individually\" in your cookie banner. Please check afterwards if all "
|
769 |
+
"adjustments are correct for your individual requirements and reconfigure "
|
770 |
+
"your cookie banner yourself if necessary. Are you sure you want to apply the "
|
771 |
+
"changes?"
|
772 |
+
msgstr ""
|
773 |
+
"Wir überschreiben alle Texte in deinem Cookie Banner mit neuen "
|
774 |
+
"Textvorschlägen. Außerdem benennen wir alle Services in der ersten Ansicht "
|
775 |
+
"des Cookie Banners anstelle einer Aufzählung von Service-Gruppen, gleichen "
|
776 |
+
"das Aussehen von \"Alle akzeptieren\" und \"Weiter ohne Einwilligung\" an "
|
777 |
+
"und heben \"Privatsphäre-Einstellungen individuell festlegen\" in deinem "
|
778 |
+
"Cookie Banner hervor. Bitte überprüfe anschließend, ob alle Anpassungen für "
|
779 |
+
"deine individuellen Anforderungen richtig sind und konfiguriere dein Cookie "
|
780 |
+
"Banner bei Bedarf selbst um. Bist du sicher, dass du die Änderungen "
|
781 |
+
"übernehmen willst?"
|
782 |
+
|
783 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
784 |
+
msgid "cookie-banner-frontend.png"
|
785 |
+
msgstr "de/cookie-banner-frontend.png"
|
786 |
+
|
787 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
788 |
+
msgid "Place legal links on each subpage"
|
789 |
+
msgstr "Rechtliche Links auf jeder Unterseite platzieren"
|
790 |
+
|
791 |
+
#. translators:
|
792 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
793 |
+
msgid ""
|
794 |
+
"In accordance with the requirements of the "<a href=\"https://www."
|
795 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
796 |
+
"\"_blank\">Guidance of the Conference of Independent Data Protection "
|
797 |
+
"Authorities for cookie banners</a>", the possibility to view, modify "
|
798 |
+
"and revoke consent must be directly accessible on every sub-page of your "
|
799 |
+
"website."
|
800 |
+
msgstr ""
|
801 |
+
"Gemäß den Anforderungen des <a href=\"https://www.datenschutzkonferenz-online"
|
802 |
+
".de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">"
|
803 |
+
"\"Orientierungshilfe der Konferenz der unabhängigen "
|
804 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder\"</a> muss die "
|
805 |
+
"Möglichkeit, die Einwilligung einzusehen, zu ändern und zu widerrufen, auf "
|
806 |
+
"jeder Unterseite deiner Website direkt zugänglich sein."
|
807 |
+
|
808 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
809 |
+
msgid ""
|
810 |
+
"This means you can no longer \"hide\" the links/buttons in your privacy "
|
811 |
+
"policy. <strong>We recommend placing the option in the footer of each "
|
812 |
+
"subpage.</strong>"
|
813 |
+
msgstr ""
|
814 |
+
"Das bedeutet, dass du die Links/Buttons in deiner Datenschutzerklärung nicht "
|
815 |
+
"mehr \"verstecken\" kannst. <strong>Wir empfehlen, die Option in im Footer "
|
816 |
+
"(Fußzeile) jeder Unterseite deiner Website zu platzieren.</strong>"
|
817 |
+
|
818 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
819 |
+
msgid ""
|
820 |
+
"You can now place the legal links not only as shortcodes, but also in "
|
821 |
+
"WordPress menus as menu items."
|
822 |
+
msgstr ""
|
823 |
+
"Du kannst die rechtlichen Links jetzt nicht nur als Shortcodes, sondern auch "
|
824 |
+
"in WordPress-Menüs als Menüpunkte platzieren."
|
825 |
+
|
826 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
827 |
+
msgid "Place legal links"
|
828 |
+
msgstr "Rechtliche Links platzieren"
|
829 |
+
|
830 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
831 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
832 |
+
msgstr ""
|
833 |
+
"Visueller Content Blocker in hübsch: Sieht aus wie ohne Content Blocker!"
|
834 |
+
|
835 |
+
#. translators:
|
836 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
837 |
+
msgid ""
|
838 |
+
"Visual content blockers replace, for example, YouTube videos on the website "
|
839 |
+
"if the visitor has not given consent to YouTube loading in the cookie "
|
840 |
+
"banner. Until now, these were very text-heavy to display all the legally "
|
841 |
+
"necessary requirements."
|
842 |
+
msgstr ""
|
843 |
+
"Visuelle Content Blocker ersetzen z.B. YouTube-Videos auf der Website, wenn "
|
844 |
+
"der Besucher im Cookie Banner keine Einwilligung zum Laden von YouTube "
|
845 |
+
"gegeben hat. Bisher waren diese sehr textlastig, um alle rechtlich "
|
846 |
+
"notwendigen Anforderungen anzuzeigen."
|
847 |
+
|
848 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
849 |
+
msgid ""
|
850 |
+
"Hero and Wrapped Content Blockers are trying to do that better. Hero Content "
|
851 |
+
"Blocker mimic maps, video players, audio players, and various types of "
|
852 |
+
"social media feeds in a privacy-compliant way, so it looks like the original "
|
853 |
+
"element is still embedded. Consent is obtained in a modal when the visitor "
|
854 |
+
"tries to start the video, for example. <strong>Reconfigure your content "
|
855 |
+
"blockers now!</strong>"
|
856 |
+
msgstr ""
|
857 |
+
"Hero und Wrapped Content Blocker versuchen, das besser zu machen. Hero "
|
858 |
+
"Content Blocker imitieren Karten, Videoplayer, Audioplayer und verschiedene "
|
859 |
+
"Arten von Social Media Feeds auf datenschutzkonforme Weise, sodass es so "
|
860 |
+
"aussieht, als wäre das ursprüngliche Element noch eingebettet. Die "
|
861 |
+
"Einwilligung wird in einem Modal eingeholt, wenn der Besucher z. B. "
|
862 |
+
"versucht, das Video zu starten. <strong>Konfiguriere deine Content Blocker "
|
863 |
+
"jetzt um!</strong>"
|
864 |
+
|
865 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
866 |
+
msgid "Reconfigure Content Blocker"
|
867 |
+
msgstr "Content Blocker umkonfigurieren"
|
868 |
+
|
869 |
+
#. translators:
|
870 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
871 |
+
msgid ""
|
872 |
+
"We recommend for <strong>%s</strong> to change the design to a more and "
|
873 |
+
"better visual Content Blocker."
|
874 |
+
msgstr ""
|
875 |
+
"Wir empfehlen für <strong>%s</strong>, das Design in Hero Content Blocker zu "
|
876 |
+
"ändern."
|
877 |
+
|
878 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
879 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
880 |
+
msgstr "pro-modal/de/visual-content-blocker.webp"
|
881 |
+
|
882 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
883 |
+
msgid "Scan your website for services that require consent"
|
884 |
+
msgstr "Scanne deine Website nach einwilligungspflichtigen Services"
|
885 |
+
|
886 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
887 |
+
msgid ""
|
888 |
+
"The service scanner crawls every subpage of your website, all plugins and "
|
889 |
+
"other technical indicators of your website to find services on your website "
|
890 |
+
"that require consent. This allows you to collect all the consent you need "
|
891 |
+
"from your website visitors."
|
892 |
+
msgstr ""
|
893 |
+
"Der Service Scanner durchsucht jede Unterseite deiner Website, alle Plugins "
|
894 |
+
"und andere technische Indikatoren deiner Website, um Services auf deiner "
|
895 |
+
"Website zu finden, die eine Einwilligung erfordern. So kannst du alle "
|
896 |
+
"Einwilligungen einholen, die du von deinen Besuchern brauchst."
|
897 |
+
|
898 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
899 |
+
msgid ""
|
900 |
+
"If you last fully scanned your website before Februrary 2022, we recommend "
|
901 |
+
"that you scan your website again. The scanner will now detect even more "
|
902 |
+
"services!"
|
903 |
+
msgstr ""
|
904 |
+
"Wenn du deine Website zuletzt vor Februar 2022 vollständig gescannt hast, "
|
905 |
+
"empfehlen wir dir, deine Website erneut zu scannen. Der Scanner erkennt "
|
906 |
+
"jetzt noch mehr Services!"
|
907 |
+
|
908 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
909 |
+
msgid "Scan website (again)"
|
910 |
+
msgstr "Website (erneut) scannen"
|
911 |
+
|
912 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
913 |
+
msgid "Cookie banner optimizations for mobile devices"
|
914 |
+
msgstr "Cookie Banner Optimierungen für mobile Endgeräte"
|
915 |
+
|
916 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
917 |
+
msgid ""
|
918 |
+
"We provide additional options for optimized display of the cookie banner on "
|
919 |
+
"mobile devices. These make the cookie banner easier to use on smartphones by "
|
920 |
+
"optimizing it to the normal hand position of users. Also, the cookie banner "
|
921 |
+
"is no longer Largest Contentfull Paint (LCP) as defined by Google's Web "
|
922 |
+
"Vitals and thus the optimizations will increase your PageSpeed score for "
|
923 |
+
"mobile devices."
|
924 |
+
msgstr ""
|
925 |
+
"Wir bieten zusätzliche Optionen für die optimierte Anzeige des Cookie "
|
926 |
+
"Banners auf mobilen Geräten. Diese erleichtern die Nutzung des Cookie "
|
927 |
+
"Banners auf Smartphones, indem es für die normale Handhaltung der Nutzer "
|
928 |
+
"optimiert wurde. Außerdem ist das Cookie Banner nicht mehr das größte "
|
929 |
+
"Largest Contentfull Paint (LCP), wie es von Googles Web Vitals definiert "
|
930 |
+
"wird, sodass die Optimierungen deinen PageSpeed Score für mobile Geräte "
|
931 |
+
"erhöhen."
|
932 |
+
|
933 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
934 |
+
msgid "Activate optimizations"
|
935 |
+
msgstr "Optimierungen aktivieren"
|
936 |
+
|
937 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
938 |
+
msgid "pro-modal/mobile-optimization.png"
|
939 |
+
msgstr "pro-modal/de/mobile-optimization.png"
|
940 |
+
|
941 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
942 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
943 |
+
msgstr "Updates in v3.0: Du solltest handeln, um sicher zu sein!"
|
944 |
+
|
945 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
946 |
+
msgid ""
|
947 |
+
"With Real Cookie Banner 3.0 we have released a major update, in which we "
|
948 |
+
"have implemented, among other things, current legal adjustments. Read more "
|
949 |
+
"about the changes in our <a href=\"https://devowl.io/2022/real-cookie-"
|
950 |
+
"banner-3-0/\" target=\"_blank\">blog post</a>."
|
951 |
+
msgstr ""
|
952 |
+
"Mit Real Cookie Banner 3.0 haben wir ein großes Update veröffentlicht, in "
|
953 |
+
"dem wir u.a. aktuelle rechtliche Anpassungen vorgenommen haben. Mehr zu den "
|
954 |
+
"Änderungen erfährst du in unserem <a href=\"https://devowl.io/de/2022/"
|
955 |
+
"real-cookie-banner-3-0/\" target=\"_blank\">Blogbeitrag.</a>."
|
956 |
+
|
957 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
958 |
+
msgid ""
|
959 |
+
"<strong>You should definitely take a look at the following points, because "
|
960 |
+
"we have adjusted the behavior of the cookie banner.</strong> All changes can "
|
961 |
+
"be optionally activated or ignored. We will not fundamentally change your "
|
962 |
+
"cookie banner without your consent."
|
963 |
+
msgstr ""
|
964 |
+
"<strong>Du solltest unbedingt einen Blick auf die folgenden Punkte werfen, "
|
965 |
+
"denn wir haben das Verhalten des Cookie Banners angepasst.</strong> Alle "
|
966 |
+
"Änderungen können wahlweise aktiviert oder ignoriert werden. Ohne deine "
|
967 |
+
"Einwilligung werden wir deinen Cookie Banner nicht grundlegend verändern."
|
968 |
+
|
969 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
970 |
msgid ""
|
971 |
"Briefly summarized, consents according to TCF are considered too non-"
|
2360 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2361 |
"instead uses the consent collected by Real Cookie Banner."
|
2362 |
msgstr ""
|
2363 |
+
"Damit die Einwilligung berücksichtigt wird, musst du via <a href=\"https://"
|
2364 |
+
"newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü (oben "
|
2365 |
+
"links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
|
2366 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2367 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2368 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
2644 |
msgid "Facebook Pixel ID"
|
2645 |
msgstr "Facebook Pixel ID"
|
2646 |
|
2647 |
+
#. translators:
|
2648 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2649 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
2650 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2651 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2652 |
+
#: inc/presets/free/YoutubePreset.php:1
|
2653 |
+
msgid ""
|
2654 |
+
"What do you have to consider when integrating %1$s into your website? <a "
|
2655 |
+
"href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
2656 |
+
msgstr ""
|
2657 |
+
"Was musst du beachten, wenn du %1$s in deine Website integrierst? <a href=\""
|
2658 |
+
"%2$s\" target=\"_blank\">Erfahre mehr darüber in unserem Blog!</a>"
|
2659 |
+
|
2660 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2661 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
2662 |
+
msgstr "https://devowl.io/de/2022/facebook-pixel-einbinden-dsgvo/"
|
2663 |
+
|
2664 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2665 |
msgid ""
|
2666 |
"Facebook allows embedding content posted on facebook.com directly into "
|
3382 |
"Du musst einen Content Blocker erstellen, der Instagram blockiert, bis der "
|
3383 |
"Nutzer seine Einwilligung zum Laden gibt."
|
3384 |
|
3385 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
3386 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
3387 |
+
msgstr "https://devowl.io/de/2022/instagram-einbinden-website-dsgvo/"
|
3388 |
+
|
3389 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3390 |
msgid ""
|
3391 |
"Intercom is a customer service tool that provides live chat for websites. "
|
4442 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4443 |
msgstr "https://de.sendinblue.com/legal/privacypolicy/"
|
4444 |
|
4445 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
4446 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
4447 |
+
msgstr "https://devowl.io/de/2022/sendinblue-integration-wordpress/"
|
4448 |
+
|
4449 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4450 |
msgid ""
|
4451 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
4487 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4488 |
msgstr "https://www.spotify.com/de/legal/privacy-policy/"
|
4489 |
|
4490 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
4491 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
4492 |
+
msgstr "https://devowl.io/de/2022/spotify-wordpress-dsgvo/"
|
4493 |
+
|
4494 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4495 |
msgid ""
|
4496 |
"Stripe is an online payment service with which payments can be made in this "
|
5868 |
|
5869 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5870 |
msgid ""
|
5871 |
+
"When loading Google Fonts, personal data of your visitors is transferred to "
|
5872 |
+
"Google, which is why you need consent. Real Cookie Banner has to check the "
|
5873 |
+
"consent before loading Google Fonts (if there is a consent), which takes a "
|
5874 |
+
"few milliseconds per page view. As a result, you will inevitably notice a "
|
5875 |
+
"small flickering effect (font replacement after a few milliseconds) on your "
|
5876 |
+
"website."
|
5877 |
+
msgstr ""
|
5878 |
+
"Beim Laden von Google Fonts werden persönliche Daten deiner Besucher an "
|
5879 |
+
"Google übertragen, weshalb du eine Einwilligung benötigst. Real Cookie "
|
5880 |
+
"Banner muss die Einwilligung vor dem Laden von Google Fonts prüfen (falls "
|
5881 |
+
"eine Einwilligung vorliegt), was einige Millisekunden pro Seitenaufruf "
|
5882 |
+
"dauert. Daher wirst du unweigerlich einen kleinen Flackereffekt ("
|
5883 |
+
"Schriftartwechsel nach ein paar Millisekunden) auf deiner Website "
|
5884 |
+
"feststellen."
|
5885 |
+
|
5886 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
5887 |
+
msgid ""
|
5888 |
+
"We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-"
|
5889 |
+
"wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally "
|
5890 |
+
"hosted fonts</a> when possible, rather than asking for consent. We explained "
|
5891 |
+
"how this works in our blog!"
|
5892 |
msgstr ""
|
5893 |
+
"Wir empfehlen daher, <a href=\"https://devowl.io/de/2022/"
|
5894 |
+
"google-fonts-wordpress-dsgvo/\" target=\"_blank\">Google Fonts wenn möglich "
|
5895 |
+
"durch lokal gehostete Schriftarten zu ersetzen</a>, anstatt nach einer "
|
5896 |
+
"Einwilligung zu fragen. Wie das funktioniert, haben wir in unserem Blog "
|
5897 |
+
"erklärt!"
|
5898 |
|
5899 |
#: inc/presets/free/GravatarPreset.php:1
|
5900 |
msgid ""
|
6064 |
"Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für diesen Dienst "
|
6065 |
"muss ein Service angelegt werden."
|
6066 |
|
6067 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
6068 |
+
msgid ""
|
6069 |
+
"Do you want to use the comment feature on your website at all? If not, we "
|
6070 |
+
"explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-"
|
6071 |
+
"comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. "
|
6072 |
+
"Then you can also avoid this consent!"
|
6073 |
+
msgstr ""
|
6074 |
+
"Willst du die Kommentarfunktion auf deiner Website überhaupt nutzen? Wenn "
|
6075 |
+
"nicht, erklären wir in unserem Blog, <a href=\"https://devowl.io/de/2022/"
|
6076 |
+
"wordpress-kommentare-deaktivieren/\" target=\"_blank\">wie du Kommentare in "
|
6077 |
+
"WordPress deaktivieren kannst</a>. Dann kannst du dir die Einwilligung auch "
|
6078 |
+
"sparen!"
|
6079 |
+
|
6080 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6081 |
msgid ""
|
6082 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
6095 |
msgid "https://wordpress.org/about/privacy/"
|
6096 |
msgstr "https://de.wordpress.org/about/privacy/"
|
6097 |
|
6098 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6099 |
+
msgid ""
|
6100 |
+
"Almost all browsers and operating systems released after 2015 can easily "
|
6101 |
+
"display emojis without the WordPressa Emoji Script (for which you must "
|
6102 |
+
"obtain this consent)."
|
6103 |
+
msgstr ""
|
6104 |
+
"Fast alle Browser und Betriebssysteme, die nach 2015 veröffentlicht wurden, "
|
6105 |
+
"können Emojis problemlos ohne das WordPressa-Emoji-Script anzeigen (für das "
|
6106 |
+
"du diese Einwilligung einholen musst)."
|
6107 |
+
|
6108 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6109 |
+
msgid ""
|
6110 |
+
"Unless you need to support particularly old browsers and operating systems, "
|
6111 |
+
"we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-"
|
6112 |
+
"wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather "
|
6113 |
+
"than asking for consent. How to do that, we have explained in our blog!"
|
6114 |
+
msgstr ""
|
6115 |
+
"Sofern du nicht besonders alte Browser und Betriebssysteme unterstützen "
|
6116 |
+
"musst, empfehlen wir dir, das <a href=\"https://devowl.io/de/2022/"
|
6117 |
+
"wordpress-emojis-deaktivieren/\" target=\"_blank\">WordPress-Emoji-Script zu "
|
6118 |
+
"deaktivieren</a>, anstatt nach einer Einwilligung zu fragen. Wie du das "
|
6119 |
+
"machst, haben wir in unserem Blog erklärt!"
|
6120 |
+
|
6121 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
6122 |
msgid ""
|
6123 |
"WordPress.org allows to display further and latest information about plugins "
|
6192 |
"Du musst einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
6193 |
"Nutzer seine Einwilligung zum Laden gibt."
|
6194 |
|
6195 |
+
#: inc/presets/free/YoutubePreset.php:1
|
6196 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
6197 |
+
msgstr "https://devowl.io/de/2022/youtube-website-dsgvo/"
|
6198 |
+
|
6199 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
6200 |
msgid "Load content"
|
6201 |
msgstr "Inhalt laden"
|
8093 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
8094 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
8095 |
|
8096 |
+
#~ msgid ""
|
8097 |
+
#~ "An opt-in script is not required, as this service is probably already "
|
8098 |
+
#~ "integrated via e.g. your theme. In addition to this service, please "
|
8099 |
+
#~ "create a content blocker that automatically blocks the integration of "
|
8100 |
+
#~ "Google Fonts (from e.g. your theme) before you have the consent of your "
|
8101 |
+
#~ "users."
|
8102 |
+
#~ msgstr ""
|
8103 |
+
#~ "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service "
|
8104 |
+
#~ "wahrscheinlich bereits z. B. über dein Theme integriert ist. Zusätzlich "
|
8105 |
+
#~ "zu diesem Service kannst du einen Content Blocker einrichten, der die "
|
8106 |
+
#~ "Integration von Google Fonts (z. B. in deinem Theme) automatisch "
|
8107 |
+
#~ "blockiert, bevor du die Zustimmung deiner Nutzer hast."
|
8108 |
+
|
8109 |
#~ msgid ""
|
8110 |
#~ "We use cookies and similar technologies on our website and process your "
|
8111 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
languages/real-cookie-banner-de_DE_formal.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_DE_formal.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: n/a\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"POT-Creation-Date: n/a\n"
|
8 |
-
"PO-Revision-Date: 2022-06-
|
9 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
10 |
"Language-Team: German (formal) <https://translate.devowl.io/projects/"
|
11 |
"wordpress-real-cookie-banner-backend-php/develop/de@formal/>\n"
|
@@ -332,7 +332,7 @@ msgid "Product license not for production use!"
|
|
332 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
333 |
|
334 |
#. translators:
|
335 |
-
#: inc/Assets.php:1
|
336 |
msgid " and "
|
337 |
msgstr " und "
|
338 |
|
@@ -377,6 +377,10 @@ msgstr ""
|
|
377 |
msgid "Language"
|
378 |
msgstr "Sprache"
|
379 |
|
|
|
|
|
|
|
|
|
380 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
381 |
msgid "Updated texts (German, English)"
|
382 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
@@ -597,14 +601,14 @@ msgstr "Funktional"
|
|
597 |
msgid "Statistics"
|
598 |
msgstr "Statistiken"
|
599 |
|
600 |
-
#. translators:
|
601 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
602 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
603 |
#: inc/settings/CookieGroup.php:1
|
604 |
msgid "Statistic"
|
605 |
msgstr "Statistik"
|
606 |
|
607 |
-
#. translators:
|
608 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
609 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
610 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -680,6 +684,291 @@ msgstr ""
|
|
680 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
681 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
682 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
683 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
684 |
msgid ""
|
685 |
"Briefly summarized, consents according to TCF are considered too non-"
|
@@ -2079,9 +2368,9 @@ msgid ""
|
|
2079 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2080 |
"instead uses the consent collected by Real Cookie Banner."
|
2081 |
msgstr ""
|
2082 |
-
"Damit die Einwilligung berücksichtigt wird, müssen Sie via <a href=\"https"
|
2083 |
-
"
|
2084 |
-
"
|
2085 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2086 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2087 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
@@ -2364,6 +2653,24 @@ msgstr ""
|
|
2364 |
msgid "Facebook Pixel ID"
|
2365 |
msgstr "Facebook Pixel ID"
|
2366 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2367 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2368 |
msgid ""
|
2369 |
"Facebook allows embedding content posted on facebook.com directly into "
|
@@ -3088,6 +3395,10 @@ msgstr ""
|
|
3088 |
"wird. Sie müssen einen Inhaltsblocker erstellen, der Instagram so lange "
|
3089 |
"blockiert, bis der Nutzer sein Einverständnis zum Laden des Inhalts gibt."
|
3090 |
|
|
|
|
|
|
|
|
|
3091 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3092 |
msgid ""
|
3093 |
"Intercom is a customer service tool that provides live chat for websites. "
|
@@ -4138,6 +4449,10 @@ msgstr ""
|
|
4138 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4139 |
msgstr "https://www.sendinblue.com/legal/privacypolicy/"
|
4140 |
|
|
|
|
|
|
|
|
|
4141 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4142 |
msgid ""
|
4143 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
@@ -4181,6 +4496,10 @@ msgstr ""
|
|
4181 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4182 |
msgstr "https://www.spotify.com/uk/legal/privacy-policy/"
|
4183 |
|
|
|
|
|
|
|
|
|
4184 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4185 |
msgid ""
|
4186 |
"Stripe is an online payment service with which payments can be made in this "
|
@@ -5566,16 +5885,33 @@ msgstr ""
|
|
5566 |
|
5567 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5568 |
msgid ""
|
5569 |
-
"
|
5570 |
-
"
|
5571 |
-
"
|
5572 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5573 |
msgstr ""
|
5574 |
-
"
|
5575 |
-
"
|
5576 |
-
"
|
5577 |
-
"
|
5578 |
-
"
|
5579 |
|
5580 |
#: inc/presets/free/GravatarPreset.php:1
|
5581 |
msgid ""
|
@@ -5745,6 +6081,19 @@ msgstr ""
|
|
5745 |
"Dienst Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für Gravatar "
|
5746 |
"müssen Sie einen Service definieren."
|
5747 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5748 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
5749 |
msgid ""
|
5750 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
@@ -5763,6 +6112,29 @@ msgstr ""
|
|
5763 |
msgid "https://wordpress.org/about/privacy/"
|
5764 |
msgstr "https://de.wordpress.org/about/privacy/"
|
5765 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5766 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
5767 |
msgid ""
|
5768 |
"WordPress.org allows to display further and latest information about plugins "
|
@@ -5837,6 +6209,10 @@ msgstr ""
|
|
5837 |
"Sie müssen einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
5838 |
"Nutzer seine Einwilligung zum Laden gibt."
|
5839 |
|
|
|
|
|
|
|
|
|
5840 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
5841 |
msgid "Load content"
|
5842 |
msgstr "Inhalt laden"
|
@@ -7735,6 +8111,19 @@ msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
|
7735 |
msgstr ""
|
7736 |
"Bitte geben Sie in Ihrem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7737 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7738 |
#~ msgid ""
|
7739 |
#~ "We use cookies and similar technologies on our website and process your "
|
7740 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
5 |
"Project-Id-Version: n/a\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"POT-Creation-Date: n/a\n"
|
8 |
+
"PO-Revision-Date: 2022-06-13 06:58+0000\n"
|
9 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
10 |
"Language-Team: German (formal) <https://translate.devowl.io/projects/"
|
11 |
"wordpress-real-cookie-banner-backend-php/develop/de@formal/>\n"
|
332 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
333 |
|
334 |
#. translators:
|
335 |
+
#: inc/Assets.php:1 inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
336 |
msgid " and "
|
337 |
msgstr " und "
|
338 |
|
377 |
msgid "Language"
|
378 |
msgstr "Sprache"
|
379 |
|
380 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
381 |
+
msgid "Migration is only available in PRO version!"
|
382 |
+
msgstr "Die Migration ist nur in der PRO-Version verfügbar!"
|
383 |
+
|
384 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
385 |
msgid "Updated texts (German, English)"
|
386 |
msgstr "Aktualisierte Texte (Deutsch, Englisch)"
|
601 |
msgid "Statistics"
|
602 |
msgstr "Statistiken"
|
603 |
|
604 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
605 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
606 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
607 |
#: inc/settings/CookieGroup.php:1
|
608 |
msgid "Statistic"
|
609 |
msgstr "Statistik"
|
610 |
|
611 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
612 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
613 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
614 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
684 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
685 |
msgstr "https://devowl.io/de/2021/real-cookie-banner-2-0-cookie-consent/"
|
686 |
|
687 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
688 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
689 |
+
msgstr "Rechtliche Anpassungen von Texten und Design im Cookie Banner"
|
690 |
+
|
691 |
+
#. translators:
|
692 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
693 |
+
msgid ""
|
694 |
+
"In recent months, more clarity has been created about what consent "
|
695 |
+
"management on websites should look like - and what it shouldn't. In "
|
696 |
+
"particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/"
|
697 |
+
"\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection "
|
698 |
+
"Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
699 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference "
|
700 |
+
"of Independent Data Protection Authorities for cookie banners</a> "
|
701 |
+
"(coordinated legal interpretation of all German data protection authorities; "
|
702 |
+
"in German), there are now clearer rules that further interpret or complement "
|
703 |
+
"the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/"
|
704 |
+
"TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and "
|
705 |
+
"<a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, "
|
706 |
+
"there were important decisions such as the evaluation of <a href=\"https://"
|
707 |
+
"www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-"
|
708 |
+
"n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a "
|
709 |
+
"href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google"
|
710 |
+
"%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by "
|
711 |
+
"dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/"
|
712 |
+
"atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" "
|
713 |
+
"target=\"_blank\">position on Google Analytics by CNIL</a>."
|
714 |
+
msgstr ""
|
715 |
+
"In den letzten Monaten wurde mehr Klarheit darüber geschaffen, wie das "
|
716 |
+
"Einwilligungsmanagement auf Websites aussehen sollte - und wie es nicht "
|
717 |
+
"aussehen sollte. Insbesondere durch das <a href=\"https://www.gesetze-im-"
|
718 |
+
"internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telekommunikation-"
|
719 |
+
"Telemedien-Datenschutz-Gesetz) und die <a href=\"https://www."
|
720 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
721 |
+
"\"_blank\">Orientierungshilfe der Konferenz der unabhängigen "
|
722 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder</a> (koordinierte "
|
723 |
+
"Rechtsauslegung aller deutschen Datenschutzbehörden) gibt es jetzt klarere "
|
724 |
+
"Regeln, welche die EU-weit geltende <a href=\"https://eur-lex.europa.eu/"
|
725 |
+
"legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy-"
|
726 |
+
"Richtlinie</a> und <a href=\"https://dsgvo-gesetz.de/\" target=\"_blank\""
|
727 |
+
">DSGVO</a> weiter auslegen oder ergänzen. Außerdem gab es wichtige "
|
728 |
+
"Entscheidungen wie die Bewertung von <a href=\"https://www."
|
729 |
+
"autoriteprotectiondonnees.be/publications/decision-quant-au-"
|
730 |
+
"fond-n-21-2022-english.pdf\" target=\"_blank\">TCF durch ADP (Belgien)</a>, "
|
731 |
+
"die <a href=\"https://noyb.eu/sites/default/files/2022-01/"
|
732 |
+
"E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google "
|
733 |
+
"Analytics Entscheidung von dsb (Österreich)</a> und die <a href=\"https://www"
|
734 |
+
".cnil.fr/sites/default/files/atoms/files/"
|
735 |
+
"decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target="
|
736 |
+
"\"_blank\">Stellungnahme zu Google Analytics von CNIL</a>."
|
737 |
+
|
738 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
739 |
+
msgid ""
|
740 |
+
"We have adapted the texts and design suggestions for the cookie banner "
|
741 |
+
"accordingly. <strong>We strongly advise you to adopt the new texts and "
|
742 |
+
"design suggestions for your website!</strong>"
|
743 |
+
msgstr ""
|
744 |
+
"Wir haben die Texte und Design-Vorschläge für das Cookie Banner entsprechend "
|
745 |
+
"angepasst. <strong>Wir raten Ihnen dringend, die neuen Texte und Design-"
|
746 |
+
"Vorschläge für deine Website zu übernehmen!</strong>"
|
747 |
+
|
748 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
749 |
+
msgid ""
|
750 |
+
"If you want to keep your individual Cookie Banner Design, please make sure "
|
751 |
+
"that the choices (\"Accept all\", \"Continue without consent\" and \"Set "
|
752 |
+
"privacy settings individually\") are displayed equally and all services are "
|
753 |
+
"named in the first view of your cookie banner."
|
754 |
+
msgstr ""
|
755 |
+
"Wenn Sie ihre individuelles Cookie Banner Design beibehalten möchten, achten "
|
756 |
+
"Sie bitte darauf, dass die Auswahlmöglichkeiten (\"Alle akzeptieren\", "
|
757 |
+
"\"Weiter ohne Einwilligung\", \"Privatsphäre-Einstellungen individuell "
|
758 |
+
"festlegen\") gleichwertig angezeigt werden und alle Services in der ersten "
|
759 |
+
"Ansicht deines Cookie Banners benannt werden."
|
760 |
+
|
761 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
762 |
+
msgid "Apply new texts and important design changes"
|
763 |
+
msgstr "Neue Texte und wichtige Design-Änderungen anwenden"
|
764 |
+
|
765 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
766 |
+
msgid ""
|
767 |
+
"We will overwrite all texts in your cookie banner with new text suggestions. "
|
768 |
+
"Also, we name all services in the first view of the cookie banner instead of "
|
769 |
+
"a bullet list of service groups, equalize the appearance of \"Accept all\" "
|
770 |
+
"and \"Continue without consent\", and highlight \"Set privacy settings "
|
771 |
+
"individually\" in your cookie banner. Please check afterwards if all "
|
772 |
+
"adjustments are correct for your individual requirements and reconfigure "
|
773 |
+
"your cookie banner yourself if necessary. Are you sure you want to apply the "
|
774 |
+
"changes?"
|
775 |
+
msgstr ""
|
776 |
+
"Wir überschreiben alle Texte in Ihrem Cookie Banner mit neuen "
|
777 |
+
"Textvorschlägen. Außerdem benennen wir alle Services in der ersten Ansicht "
|
778 |
+
"des Cookie Banners anstelle einer Aufzählung von Service-Gruppen, gleichen "
|
779 |
+
"das Aussehen von \"Alle akzeptieren\" und \"Weiter ohne Einwilligung\" an "
|
780 |
+
"und heben \"Privatsphäre-Einstellungen individuell festlegen\" in Ihrem "
|
781 |
+
"Cookie Banner hervor. Bitte überprüfen Sie anschließend, ob alle Anpassungen "
|
782 |
+
"für Ihre individuellen Anforderungen richtig sind und konfiguriere Sie den "
|
783 |
+
"Cookie Banner bei Bedarf selbst um. Sind Sie sicher, dass Sie die Änderungen "
|
784 |
+
"übernehmen wollen?"
|
785 |
+
|
786 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
787 |
+
msgid "cookie-banner-frontend.png"
|
788 |
+
msgstr "de/cookie-banner-frontend.png"
|
789 |
+
|
790 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
791 |
+
msgid "Place legal links on each subpage"
|
792 |
+
msgstr "Rechtliche Links auf jeder Unterseite platzieren"
|
793 |
+
|
794 |
+
#. translators:
|
795 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
796 |
+
msgid ""
|
797 |
+
"In accordance with the requirements of the "<a href=\"https://www."
|
798 |
+
"datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target="
|
799 |
+
"\"_blank\">Guidance of the Conference of Independent Data Protection "
|
800 |
+
"Authorities for cookie banners</a>", the possibility to view, modify "
|
801 |
+
"and revoke consent must be directly accessible on every sub-page of your "
|
802 |
+
"website."
|
803 |
+
msgstr ""
|
804 |
+
"Gemäß den Anforderungen des <a href=\"https://www.datenschutzkonferenz-online"
|
805 |
+
".de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">"
|
806 |
+
"\"Orientierungshilfe der Konferenz der unabhängigen "
|
807 |
+
"Datenschutzaufsichtsbehörden des Bundes und der Länder\"</a> muss die "
|
808 |
+
"Möglichkeit, die Einwilligung einzusehen, zu ändern und zu widerrufen, auf "
|
809 |
+
"jeder Unterseite deiner Website direkt zugänglich sein."
|
810 |
+
|
811 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
812 |
+
msgid ""
|
813 |
+
"This means you can no longer \"hide\" the links/buttons in your privacy "
|
814 |
+
"policy. <strong>We recommend placing the option in the footer of each "
|
815 |
+
"subpage.</strong>"
|
816 |
+
msgstr ""
|
817 |
+
"Das bedeutet, dass Sie die Links/Buttons in Ihrer Datenschutzerklärung nicht "
|
818 |
+
"mehr \"verstecken\" können. <strong>Wir empfehlen, die Option in im Footer "
|
819 |
+
"(Fußzeile) jeder Unterseite deiner Website zu platzieren.</strong>"
|
820 |
+
|
821 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
822 |
+
msgid ""
|
823 |
+
"You can now place the legal links not only as shortcodes, but also in "
|
824 |
+
"WordPress menus as menu items."
|
825 |
+
msgstr ""
|
826 |
+
"Sie können die rechtlichen Links jetzt nicht nur als Shortcodes, sondern "
|
827 |
+
"auch in WordPress-Menüs als Menüpunkte platzieren."
|
828 |
+
|
829 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
830 |
+
msgid "Place legal links"
|
831 |
+
msgstr "Rechtliche Links platzieren"
|
832 |
+
|
833 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
834 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
835 |
+
msgstr ""
|
836 |
+
"Visueller Content Blocker in hübsch: Sieht aus wie ohne Content Blocker!"
|
837 |
+
|
838 |
+
#. translators:
|
839 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
840 |
+
msgid ""
|
841 |
+
"Visual content blockers replace, for example, YouTube videos on the website "
|
842 |
+
"if the visitor has not given consent to YouTube loading in the cookie "
|
843 |
+
"banner. Until now, these were very text-heavy to display all the legally "
|
844 |
+
"necessary requirements."
|
845 |
+
msgstr ""
|
846 |
+
"Visuelle Content Blocker ersetzen z.B. YouTube-Videos auf der Website, wenn "
|
847 |
+
"der Besucher im Cookie Banner keine Einwilligung zum Laden von YouTube "
|
848 |
+
"gegeben hat. Bisher waren diese sehr textlastig, um alle rechtlich "
|
849 |
+
"notwendigen Anforderungen anzuzeigen."
|
850 |
+
|
851 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
852 |
+
msgid ""
|
853 |
+
"Hero and Wrapped Content Blockers are trying to do that better. Hero Content "
|
854 |
+
"Blocker mimic maps, video players, audio players, and various types of "
|
855 |
+
"social media feeds in a privacy-compliant way, so it looks like the original "
|
856 |
+
"element is still embedded. Consent is obtained in a modal when the visitor "
|
857 |
+
"tries to start the video, for example. <strong>Reconfigure your content "
|
858 |
+
"blockers now!</strong>"
|
859 |
+
msgstr ""
|
860 |
+
"Hero und Wrapped Content Blocker versuchen, das besser zu machen. Hero "
|
861 |
+
"Content Blocker imitieren Karten, Videoplayer, Audioplayer und verschiedene "
|
862 |
+
"Arten von Social Media Feeds auf datenschutzkonforme Weise, sodass es so "
|
863 |
+
"aussieht, als wäre das ursprüngliche Element noch eingebettet. Die "
|
864 |
+
"Einwilligung wird in einem Modal eingeholt, wenn der Besucher z. B. "
|
865 |
+
"versucht, das Video zu starten. <strong>Konfigurieren Sie Ihre Content "
|
866 |
+
"Blocker jetzt um!</strong>"
|
867 |
+
|
868 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
869 |
+
msgid "Reconfigure Content Blocker"
|
870 |
+
msgstr "Content Blocker umkonfigurieren"
|
871 |
+
|
872 |
+
#. translators:
|
873 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
874 |
+
msgid ""
|
875 |
+
"We recommend for <strong>%s</strong> to change the design to a more and "
|
876 |
+
"better visual Content Blocker."
|
877 |
+
msgstr ""
|
878 |
+
"Wir empfehlen für <strong>%s</strong>, das Design in Hero Content Blocker zu "
|
879 |
+
"ändern."
|
880 |
+
|
881 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
882 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
883 |
+
msgstr "pro-modal/de/visual-content-blocker.webp"
|
884 |
+
|
885 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
886 |
+
msgid "Scan your website for services that require consent"
|
887 |
+
msgstr "Scannen Sie Ihre Website nach einwilligungspflichtigen Services"
|
888 |
+
|
889 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
890 |
+
msgid ""
|
891 |
+
"The service scanner crawls every subpage of your website, all plugins and "
|
892 |
+
"other technical indicators of your website to find services on your website "
|
893 |
+
"that require consent. This allows you to collect all the consent you need "
|
894 |
+
"from your website visitors."
|
895 |
+
msgstr ""
|
896 |
+
"Der Service Scanner durchsucht jede Unterseite Ihrer Website, alle Plugins "
|
897 |
+
"und andere technische Indikatoren deiner Website, um Services auf deiner "
|
898 |
+
"Website zu finden, die eine Einwilligung erfordern. So können Sie alle "
|
899 |
+
"Einwilligungen einholen, die Sie von Ihren Besuchern brauchen."
|
900 |
+
|
901 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
902 |
+
msgid ""
|
903 |
+
"If you last fully scanned your website before Februrary 2022, we recommend "
|
904 |
+
"that you scan your website again. The scanner will now detect even more "
|
905 |
+
"services!"
|
906 |
+
msgstr ""
|
907 |
+
"Wenn Sie Ihre Website zuletzt vor Februar 2022 vollständig gescannt haben, "
|
908 |
+
"empfehlen wir Ihnen, Ihre Website erneut zu scannen. Der Scanner erkennt "
|
909 |
+
"jetzt noch mehr Services!"
|
910 |
+
|
911 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
912 |
+
msgid "Scan website (again)"
|
913 |
+
msgstr "Website (erneut) scannen"
|
914 |
+
|
915 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
916 |
+
msgid "Cookie banner optimizations for mobile devices"
|
917 |
+
msgstr "Cookie Banner Optimierungen für mobile Endgeräte"
|
918 |
+
|
919 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
920 |
+
msgid ""
|
921 |
+
"We provide additional options for optimized display of the cookie banner on "
|
922 |
+
"mobile devices. These make the cookie banner easier to use on smartphones by "
|
923 |
+
"optimizing it to the normal hand position of users. Also, the cookie banner "
|
924 |
+
"is no longer Largest Contentfull Paint (LCP) as defined by Google's Web "
|
925 |
+
"Vitals and thus the optimizations will increase your PageSpeed score for "
|
926 |
+
"mobile devices."
|
927 |
+
msgstr ""
|
928 |
+
"Wir bieten zusätzliche Optionen für die optimierte Anzeige des Cookie "
|
929 |
+
"Banners auf mobilen Geräten. Diese erleichtern die Nutzung des Cookie "
|
930 |
+
"Banners auf Smartphones, indem es für die normale Handhaltung der Nutzer "
|
931 |
+
"optimiert wurde. Außerdem ist das Cookie Banner nicht mehr das größte "
|
932 |
+
"Largest Contentfull Paint (LCP), wie es von Googles Web Vitals definiert "
|
933 |
+
"wird, sodass die Optimierungen Ihren PageSpeed Score für mobile Geräte "
|
934 |
+
"erhöhen."
|
935 |
+
|
936 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
937 |
+
msgid "Activate optimizations"
|
938 |
+
msgstr "Optimierungen aktivieren"
|
939 |
+
|
940 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
941 |
+
msgid "pro-modal/mobile-optimization.png"
|
942 |
+
msgstr "pro-modal/de/mobile-optimization.png"
|
943 |
+
|
944 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
945 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
946 |
+
msgstr "Updates in v3.0: Sie sollten handeln, um sicher zu sein!"
|
947 |
+
|
948 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
949 |
+
msgid ""
|
950 |
+
"With Real Cookie Banner 3.0 we have released a major update, in which we "
|
951 |
+
"have implemented, among other things, current legal adjustments. Read more "
|
952 |
+
"about the changes in our <a href=\"https://devowl.io/2022/real-cookie-"
|
953 |
+
"banner-3-0/\" target=\"_blank\">blog post</a>."
|
954 |
+
msgstr ""
|
955 |
+
"Mit Real Cookie Banner 3.0 haben wir ein großes Update veröffentlicht, in "
|
956 |
+
"dem wir u.a. aktuelle rechtliche Anpassungen vorgenommen haben. Mehr zu den "
|
957 |
+
"Änderungen erfahren Sie in unserem <a href=\"https://devowl.io/de/2022/"
|
958 |
+
"real-cookie-banner-3-0/\" target=\"_blank\">Blogbeitrag.</a>."
|
959 |
+
|
960 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
961 |
+
msgid ""
|
962 |
+
"<strong>You should definitely take a look at the following points, because "
|
963 |
+
"we have adjusted the behavior of the cookie banner.</strong> All changes can "
|
964 |
+
"be optionally activated or ignored. We will not fundamentally change your "
|
965 |
+
"cookie banner without your consent."
|
966 |
+
msgstr ""
|
967 |
+
"<strong>Sie sollten unbedingt einen Blick auf die folgenden Punkte werfen, "
|
968 |
+
"denn wir haben das Verhalten des Cookie Banners angepasst.</strong> Alle "
|
969 |
+
"Änderungen können wahlweise aktiviert oder ignoriert werden. Ohne Ihre "
|
970 |
+
"Einwilligung werden wir Ihren Cookie Banner nicht grundlegend verändern."
|
971 |
+
|
972 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
973 |
msgid ""
|
974 |
"Briefly summarized, consents according to TCF are considered too non-"
|
2368 |
"\"own Opt-In\" so that etracker does not display its own consent dialog, but "
|
2369 |
"instead uses the consent collected by Real Cookie Banner."
|
2370 |
msgstr ""
|
2371 |
+
"Damit die Einwilligung berücksichtigt wird, müssen Sie via <a href=\"https://"
|
2372 |
+
"newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü (oben "
|
2373 |
+
"links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
|
2374 |
"Zustimmung</i> den Toggle \"Opt-In aktiv\" aktivieren und anschließend auf "
|
2375 |
"\"eigenes Opt-In\" umstellen. Damit wird etracker keinen eigenen "
|
2376 |
"Einwilligungsdialog anzeigen, sondern die Einwilligung, erhoben von Real "
|
2653 |
msgid "Facebook Pixel ID"
|
2654 |
msgstr "Facebook Pixel ID"
|
2655 |
|
2656 |
+
#. translators:
|
2657 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2658 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
2659 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2660 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2661 |
+
#: inc/presets/free/YoutubePreset.php:1
|
2662 |
+
msgid ""
|
2663 |
+
"What do you have to consider when integrating %1$s into your website? <a "
|
2664 |
+
"href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
2665 |
+
msgstr ""
|
2666 |
+
"Was müssen Sie bei der Integration von %1$s in Ihre Website beachten? <a "
|
2667 |
+
"href=\"%2$s\" target=\"_blank\">Erfahren Sie mehr darüber in unserem "
|
2668 |
+
"Blog!</a>"
|
2669 |
+
|
2670 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
2671 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
2672 |
+
msgstr "https://devowl.io/de/2022/facebook-pixel-einbinden-dsgvo/"
|
2673 |
+
|
2674 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
2675 |
msgid ""
|
2676 |
"Facebook allows embedding content posted on facebook.com directly into "
|
3395 |
"wird. Sie müssen einen Inhaltsblocker erstellen, der Instagram so lange "
|
3396 |
"blockiert, bis der Nutzer sein Einverständnis zum Laden des Inhalts gibt."
|
3397 |
|
3398 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
3399 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
3400 |
+
msgstr "https://devowl.io/de/2022/instagram-einbinden-website-dsgvo/"
|
3401 |
+
|
3402 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
3403 |
msgid ""
|
3404 |
"Intercom is a customer service tool that provides live chat for websites. "
|
4449 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
4450 |
msgstr "https://www.sendinblue.com/legal/privacypolicy/"
|
4451 |
|
4452 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
4453 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
4454 |
+
msgstr "https://devowl.io/de/2022/sendinblue-integration-wordpress/"
|
4455 |
+
|
4456 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
4457 |
msgid ""
|
4458 |
"SoundCloud allows embedding content posted on soundcloud.com directly into "
|
4496 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
4497 |
msgstr "https://www.spotify.com/uk/legal/privacy-policy/"
|
4498 |
|
4499 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
4500 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
4501 |
+
msgstr "https://devowl.io/de/2022/spotify-wordpress-dsgvo/"
|
4502 |
+
|
4503 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
4504 |
msgid ""
|
4505 |
"Stripe is an online payment service with which payments can be made in this "
|
5885 |
|
5886 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
5887 |
msgid ""
|
5888 |
+
"When loading Google Fonts, personal data of your visitors is transferred to "
|
5889 |
+
"Google, which is why you need consent. Real Cookie Banner has to check the "
|
5890 |
+
"consent before loading Google Fonts (if there is a consent), which takes a "
|
5891 |
+
"few milliseconds per page view. As a result, you will inevitably notice a "
|
5892 |
+
"small flickering effect (font replacement after a few milliseconds) on your "
|
5893 |
+
"website."
|
5894 |
+
msgstr ""
|
5895 |
+
"Beim Laden von Google Fonts werden persönliche Daten Ihrer Besucher an "
|
5896 |
+
"Google übertragen, weshalb Sie eine Einwilligung benötigen. Real Cookie "
|
5897 |
+
"Banner muss vor dem Laden von Google Fonts die Einwilligung überprüfen ("
|
5898 |
+
"sofern eine Einwilligung vorliegt), was einige Millisekunden pro "
|
5899 |
+
"Seitenaufruf dauert. Daher werden Sie auf Ihrer Website unweigerlich einen "
|
5900 |
+
"kleinen Flackereffekt (Austausch der Schrift nach einigen Millisekunden) "
|
5901 |
+
"feststellen."
|
5902 |
+
|
5903 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
5904 |
+
msgid ""
|
5905 |
+
"We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-"
|
5906 |
+
"wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally "
|
5907 |
+
"hosted fonts</a> when possible, rather than asking for consent. We explained "
|
5908 |
+
"how this works in our blog!"
|
5909 |
msgstr ""
|
5910 |
+
"Wir empfehlen daher, <a href=\"https://devowl.io/de/2022/"
|
5911 |
+
"google-fonts-wordpress-dsgvo/\" target=\"_blank\">Google Fonts wenn möglich "
|
5912 |
+
"durch lokal gehostete Schriftarten zu ersetzen</a>, anstatt nach einer "
|
5913 |
+
"Einwilligung zu fragen. Wie das funktioniert, haben wir in unserem Blog "
|
5914 |
+
"erklärt!"
|
5915 |
|
5916 |
#: inc/presets/free/GravatarPreset.php:1
|
5917 |
msgid ""
|
6081 |
"Dienst Gravatar, um Avatare von Kommentatoren anzuzeigen. Auch für Gravatar "
|
6082 |
"müssen Sie einen Service definieren."
|
6083 |
|
6084 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
6085 |
+
msgid ""
|
6086 |
+
"Do you want to use the comment feature on your website at all? If not, we "
|
6087 |
+
"explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-"
|
6088 |
+
"comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. "
|
6089 |
+
"Then you can also avoid this consent!"
|
6090 |
+
msgstr ""
|
6091 |
+
"Möchten Sie die Kommentarfunktion auf Ihrer Website überhaupt nutzen? Wenn "
|
6092 |
+
"nicht, erklären wir in unserem Blog, <a href=\"https://devowl.io/de/2022/"
|
6093 |
+
"wordpress-kommentare-deaktivieren/\" target=\"_blank\">wie Sie Kommentare in "
|
6094 |
+
"WordPress deaktivieren können</a>. Dann können Sie sich diese Einwilligung "
|
6095 |
+
"auch sparen!"
|
6096 |
+
|
6097 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6098 |
msgid ""
|
6099 |
"WordPress Emoji is an emoji set that is loaded from wordpress.org. No "
|
6112 |
msgid "https://wordpress.org/about/privacy/"
|
6113 |
msgstr "https://de.wordpress.org/about/privacy/"
|
6114 |
|
6115 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6116 |
+
msgid ""
|
6117 |
+
"Almost all browsers and operating systems released after 2015 can easily "
|
6118 |
+
"display emojis without the WordPressa Emoji Script (for which you must "
|
6119 |
+
"obtain this consent)."
|
6120 |
+
msgstr ""
|
6121 |
+
"Fast alle Browser und Betriebssysteme, die nach 2015 veröffentlicht wurden, "
|
6122 |
+
"können Emojis ohne das WordPressa Emoji Script (für das Sie diese "
|
6123 |
+
"Einwilligung einholen müssen) problemlos anzeigen."
|
6124 |
+
|
6125 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
6126 |
+
msgid ""
|
6127 |
+
"Unless you need to support particularly old browsers and operating systems, "
|
6128 |
+
"we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-"
|
6129 |
+
"wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather "
|
6130 |
+
"than asking for consent. How to do that, we have explained in our blog!"
|
6131 |
+
msgstr ""
|
6132 |
+
"Sofern Sie nicht besonders alte Browser und Betriebssysteme unterstützen "
|
6133 |
+
"müssen, empfehlen wir Ihnen, das <a href=\"https://devowl.io/de/2022/"
|
6134 |
+
"wordpress-emojis-deaktivieren/\" target=\"_blank\">WordPress-Emoji-Script zu "
|
6135 |
+
"deaktivieren</a>, anstatt nach einer Einwilligung zu fragen. Wie Sie das "
|
6136 |
+
"machen, haben wir in unserem Blog erklärt!"
|
6137 |
+
|
6138 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
6139 |
msgid ""
|
6140 |
"WordPress.org allows to display further and latest information about plugins "
|
6209 |
"Sie müssen einen Content Blocker erstellen, der YouTube blockiert, bis der "
|
6210 |
"Nutzer seine Einwilligung zum Laden gibt."
|
6211 |
|
6212 |
+
#: inc/presets/free/YoutubePreset.php:1
|
6213 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
6214 |
+
msgstr "https://devowl.io/de/2022/youtube-website-dsgvo/"
|
6215 |
+
|
6216 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
6217 |
msgid "Load content"
|
6218 |
msgstr "Inhalt laden"
|
8111 |
msgstr ""
|
8112 |
"Bitte geben Sie in Ihrem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
8113 |
|
8114 |
+
#~ msgid ""
|
8115 |
+
#~ "An opt-in script is not required, as this service is probably already "
|
8116 |
+
#~ "integrated via e.g. your theme. In addition to this service, please "
|
8117 |
+
#~ "create a content blocker that automatically blocks the integration of "
|
8118 |
+
#~ "Google Fonts (from e.g. your theme) before you have the consent of your "
|
8119 |
+
#~ "users."
|
8120 |
+
#~ msgstr ""
|
8121 |
+
#~ "Ein Opt-in Script ist nicht erforderlich, weil dieser Service "
|
8122 |
+
#~ "wahrscheinlich schon über Ihr Theme o.ä. integriert wird. Ergänzend zu "
|
8123 |
+
#~ "diesem Service sollten Sie einen Content Blocker erstellen, der "
|
8124 |
+
#~ "automatisch die Integration von Google Fonts (z.B. durch Ihr Theme) "
|
8125 |
+
#~ "blockiert, bevor Sie die Einwilligung Ihrer Benutzer haben."
|
8126 |
+
|
8127 |
#~ msgid ""
|
8128 |
#~ "We use cookies and similar technologies on our website and process your "
|
8129 |
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
languages/real-cookie-banner.pot
CHANGED
@@ -274,6 +274,7 @@ msgstr ""
|
|
274 |
|
275 |
#. translators:
|
276 |
#: inc/Assets.php:1
|
|
|
277 |
msgid " and "
|
278 |
msgstr ""
|
279 |
|
@@ -307,6 +308,10 @@ msgstr ""
|
|
307 |
msgid "Language"
|
308 |
msgstr ""
|
309 |
|
|
|
|
|
|
|
|
|
310 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
311 |
msgid "Updated texts (German, English)"
|
312 |
msgstr ""
|
@@ -478,14 +483,14 @@ msgstr ""
|
|
478 |
msgid "Statistics"
|
479 |
msgstr ""
|
480 |
|
481 |
-
#. translators:
|
482 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
483 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
484 |
#: inc/settings/CookieGroup.php:1
|
485 |
msgid "Statistic"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#. translators:
|
489 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
490 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
491 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
@@ -551,6 +556,126 @@ msgstr ""
|
|
551 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
552 |
msgstr ""
|
553 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
555 |
msgid "Briefly summarized, consents according to TCF are considered too non-transparent, not understandable for the website visitor and therefore invalid. IAB Europe, publisher of TCF, is required to redesign the standard within six months so that it collects legally effective consents. At the same time, IAB Europe is taking legal action against the decision of the data protection authority."
|
556 |
msgstr ""
|
@@ -1310,6 +1435,19 @@ msgstr ""
|
|
1310 |
msgid "Facebook Pixel ID"
|
1311 |
msgstr ""
|
1312 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1313 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
1314 |
msgid "Facebook allows embedding content posted on facebook.com directly into websites. The cookies are used to collect visited websites and detailed statistics about the user behaviour. This data can be linked to the data of users registered on facebook.com."
|
1315 |
msgstr ""
|
@@ -1612,6 +1750,10 @@ msgstr ""
|
|
1612 |
msgid "There is no need for an opt-in script, because the Instagram content is normally loaded by a code in a post or page. You must create a content blocker that will block Instagram until the user gives consent to load it."
|
1613 |
msgstr ""
|
1614 |
|
|
|
|
|
|
|
|
|
1615 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
1616 |
msgid "Intercom is a customer service tool that provides live chat for websites. The cookies are used to identify the user, associate previous messages with their chat history and collect detailed statistics on his/her behavior."
|
1617 |
msgstr ""
|
@@ -2010,6 +2152,10 @@ msgstr ""
|
|
2010 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
2011 |
msgstr ""
|
2012 |
|
|
|
|
|
|
|
|
|
2013 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
2014 |
msgid "SoundCloud allows embedding content posted on soundcloud.com directly into websites. The cookies are used to collect visited websites and detailed statistics about the user behaviour. This data can be linked to the data of users registered on soundcloud.com."
|
2015 |
msgstr ""
|
@@ -2026,6 +2172,10 @@ msgstr ""
|
|
2026 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
2027 |
msgstr ""
|
2028 |
|
|
|
|
|
|
|
|
|
2029 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
2030 |
msgid "Stripe is an online payment service with which payments can be made in this online store, e.g. by credit card. Payment data is collected directly by or transmitted to Stripe, but never stored by the operator of the online store itself. Customer data is shared with Stripe for the purpose of processing orders. Cookies are used for fraud prevention and detection."
|
2031 |
msgstr ""
|
@@ -2811,7 +2961,11 @@ msgid "Google Fonts is a service that downloads fonts that are not installed on
|
|
2811 |
msgstr ""
|
2812 |
|
2813 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
2814 |
-
msgid "
|
|
|
|
|
|
|
|
|
2815 |
msgstr ""
|
2816 |
|
2817 |
#: inc/presets/free/GravatarPreset.php:1
|
@@ -2859,6 +3013,10 @@ msgstr ""
|
|
2859 |
msgid "Please note that if this service is enabled, the \"Save my name, email, and website in this browser for the next time I comment.\" checkbox in the comment form will disappear. Real Cookie Banner handles the consent to set the cookies as part of the overall cookie consent. The commentary system uses the Gravatar service to display avatars of commentators. You must also create a service for Gravatar as well."
|
2860 |
msgstr ""
|
2861 |
|
|
|
|
|
|
|
|
|
2862 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
2863 |
msgid "WordPress Emoji is an emoji set that is loaded from wordpress.org. No cookies in the technical sense are set on the client of the user, but technical and personal data such as the IP address will be transmitted from the client to the server of the service provider to make the use of the service possible."
|
2864 |
msgstr ""
|
@@ -2867,6 +3025,14 @@ msgstr ""
|
|
2867 |
msgid "https://wordpress.org/about/privacy/"
|
2868 |
msgstr ""
|
2869 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2870 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
2871 |
msgid "WordPress.org allows to display further and latest information about plugins published on wordpress.org. No cookies in the technical sense are set on the client of the user, but technical and personal data such as the IP address will be transmitted from the client to the server of the service provider to make the use of the service possible."
|
2872 |
msgstr ""
|
@@ -2891,6 +3057,10 @@ msgstr ""
|
|
2891 |
msgid "There is no need for an opt-in script because the YouTube content is usually loaded in an iframe. You must create a content blocker that will block YouTube until the user gives consent to load it."
|
2892 |
msgstr ""
|
2893 |
|
|
|
|
|
|
|
|
|
2894 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
2895 |
msgid "Load content"
|
2896 |
msgstr ""
|
274 |
|
275 |
#. translators:
|
276 |
#: inc/Assets.php:1
|
277 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
278 |
msgid " and "
|
279 |
msgstr ""
|
280 |
|
308 |
msgid "Language"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: inc/comp/migration/AbstractDashboardTileMigration.php:1
|
312 |
+
msgid "Migration is only available in PRO version!"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
316 |
msgid "Updated texts (German, English)"
|
317 |
msgstr ""
|
483 |
msgid "Statistics"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
487 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
488 |
#: inc/presets/middleware/CookieGroupNamesBackwardsCompatibleMiddleware.php:1
|
489 |
#: inc/settings/CookieGroup.php:1
|
490 |
msgid "Statistic"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#. translators: Keep this for backwards-compatibility (usually it is "Statistics")
|
494 |
#: inc/comp/migration/DashboardTileMigrationMajor2.php:1
|
495 |
#: inc/overrides/pro/presets/ActiveCampaignSiteTrackingPreset.php:1
|
496 |
#: inc/overrides/pro/presets/AddThisPreset.php:1
|
556 |
msgid "https://devowl.io/2021/real-cookie-banner-2-0-cookie-consent/"
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
560 |
+
msgid "Legal adjustments to texts and design in cookie banner"
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#. translators:
|
564 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
565 |
+
msgid "In recent months, more clarity has been created about what consent management on websites should look like - and what it shouldn't. In particular, through the <a href=\"https://www.gesetze-im-internet.de/ttdsg/\" target=\"_blank\">TTDSG</a> (Telecommunications Telemedia Data Protection Act; Germany) and <a href=\"https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference of Independent Data Protection Authorities for cookie banners</a> (coordinated legal interpretation of all German data protection authorities; in German), there are now clearer rules that further interpret or complement the EU-wide applicable <a href=\"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A32009L0136\" target=\"_blank\">ePrivacy Directive</a> and <a href=\"https://gdpr-info.eu/\" target=\"_blank\">GDPR</a>. Furthermore, there were important decisions such as the evaluation of <a href=\"https://www.autoriteprotectiondonnees.be/publications/decision-quant-au-fond-n-21-2022-english.pdf\" target=\"_blank\">TCF by ADP (Belgium)</a>, the <a href=\"https://noyb.eu/sites/default/files/2022-01/E-DSB%20-%20Google%20Analytics_DE_bk_0.pdf\" target=\"_blank\">Google Analytics decision by dsb (Austria)</a> and the <a href=\"https://www.cnil.fr/sites/default/files/atoms/files/decision_ordering_to_comply_anonymised_-_google_analytics.pdf\" target=\"_blank\">position on Google Analytics by CNIL</a>."
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
569 |
+
msgid "We have adapted the texts and design suggestions for the cookie banner accordingly. <strong>We strongly advise you to adopt the new texts and design suggestions for your website!</strong>"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
573 |
+
msgid "If you want to keep your individual Cookie Banner Design, please make sure that the choices (\"Accept all\", \"Continue without consent\" and \"Set privacy settings individually\") are displayed equally and all services are named in the first view of your cookie banner."
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
577 |
+
msgid "Apply new texts and important design changes"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
581 |
+
msgid "We will overwrite all texts in your cookie banner with new text suggestions. Also, we name all services in the first view of the cookie banner instead of a bullet list of service groups, equalize the appearance of \"Accept all\" and \"Continue without consent\", and highlight \"Set privacy settings individually\" in your cookie banner. Please check afterwards if all adjustments are correct for your individual requirements and reconfigure your cookie banner yourself if necessary. Are you sure you want to apply the changes?"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
585 |
+
msgid "cookie-banner-frontend.png"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
589 |
+
msgid "Place legal links on each subpage"
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#. translators:
|
593 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
594 |
+
msgid "In accordance with the requirements of the "<a href=\"https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Guidance of the Conference of Independent Data Protection Authorities for cookie banners</a>", the possibility to view, modify and revoke consent must be directly accessible on every sub-page of your website."
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
598 |
+
msgid "This means you can no longer \"hide\" the links/buttons in your privacy policy. <strong>We recommend placing the option in the footer of each subpage.</strong>"
|
599 |
+
msgstr ""
|
600 |
+
|
601 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
602 |
+
msgid "You can now place the legal links not only as shortcodes, but also in WordPress menus as menu items."
|
603 |
+
msgstr ""
|
604 |
+
|
605 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
606 |
+
msgid "Place legal links"
|
607 |
+
msgstr ""
|
608 |
+
|
609 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
610 |
+
msgid "Visual content blocker in pretty: Looks like without content blocker!"
|
611 |
+
msgstr ""
|
612 |
+
|
613 |
+
#. translators:
|
614 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
615 |
+
msgid "Visual content blockers replace, for example, YouTube videos on the website if the visitor has not given consent to YouTube loading in the cookie banner. Until now, these were very text-heavy to display all the legally necessary requirements."
|
616 |
+
msgstr ""
|
617 |
+
|
618 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
619 |
+
msgid "Hero and Wrapped Content Blockers are trying to do that better. Hero Content Blocker mimic maps, video players, audio players, and various types of social media feeds in a privacy-compliant way, so it looks like the original element is still embedded. Consent is obtained in a modal when the visitor tries to start the video, for example. <strong>Reconfigure your content blockers now!</strong>"
|
620 |
+
msgstr ""
|
621 |
+
|
622 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
623 |
+
msgid "Reconfigure Content Blocker"
|
624 |
+
msgstr ""
|
625 |
+
|
626 |
+
#. translators:
|
627 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
628 |
+
msgid "We recommend for <strong>%s</strong> to change the design to a more and better visual Content Blocker."
|
629 |
+
msgstr ""
|
630 |
+
|
631 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
632 |
+
msgid "pro-modal/visual-content-blocker.webp"
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
636 |
+
msgid "Scan your website for services that require consent"
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
640 |
+
msgid "The service scanner crawls every subpage of your website, all plugins and other technical indicators of your website to find services on your website that require consent. This allows you to collect all the consent you need from your website visitors."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
644 |
+
msgid "If you last fully scanned your website before Februrary 2022, we recommend that you scan your website again. The scanner will now detect even more services!"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
648 |
+
msgid "Scan website (again)"
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
652 |
+
msgid "Cookie banner optimizations for mobile devices"
|
653 |
+
msgstr ""
|
654 |
+
|
655 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
656 |
+
msgid "We provide additional options for optimized display of the cookie banner on mobile devices. These make the cookie banner easier to use on smartphones by optimizing it to the normal hand position of users. Also, the cookie banner is no longer Largest Contentfull Paint (LCP) as defined by Google's Web Vitals and thus the optimizations will increase your PageSpeed score for mobile devices."
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
660 |
+
msgid "Activate optimizations"
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
664 |
+
msgid "pro-modal/mobile-optimization.png"
|
665 |
+
msgstr ""
|
666 |
+
|
667 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
668 |
+
msgid "Updates in v3.0: You should act to be safe!"
|
669 |
+
msgstr ""
|
670 |
+
|
671 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
672 |
+
msgid "With Real Cookie Banner 3.0 we have released a major update, in which we have implemented, among other things, current legal adjustments. Read more about the changes in our <a href=\"https://devowl.io/2022/real-cookie-banner-3-0/\" target=\"_blank\">blog post</a>."
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: inc/comp/migration/DashboardTileMigrationMajor3.php:1
|
676 |
+
msgid "<strong>You should definitely take a look at the following points, because we have adjusted the behavior of the cookie banner.</strong> All changes can be optionally activated or ignored. We will not fundamentally change your cookie banner without your consent."
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
#: inc/comp/migration/DashboardTileTcfV2IllegalUsage.php:1
|
680 |
msgid "Briefly summarized, consents according to TCF are considered too non-transparent, not understandable for the website visitor and therefore invalid. IAB Europe, publisher of TCF, is required to redesign the standard within six months so that it collects legally effective consents. At the same time, IAB Europe is taking legal action against the decision of the data protection authority."
|
681 |
msgstr ""
|
1435 |
msgid "Facebook Pixel ID"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
+
#. translators:
|
1439 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
1440 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
1441 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
1442 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
1443 |
+
#: inc/presets/free/YoutubePreset.php:1
|
1444 |
+
msgid "What do you have to consider when integrating %1$s into your website? <a href=\"%2$s\" target=\"_blank\">Learn more about it in our blog!</a>"
|
1445 |
+
msgstr ""
|
1446 |
+
|
1447 |
+
#: inc/overrides/pro/presets/FacebookPixelPreset.php:1
|
1448 |
+
msgid "https://devowl.io/2022/facebook-pixel-wordpress-gdpr/"
|
1449 |
+
msgstr ""
|
1450 |
+
|
1451 |
#: inc/overrides/pro/presets/FacebookPostPreset.php:1
|
1452 |
msgid "Facebook allows embedding content posted on facebook.com directly into websites. The cookies are used to collect visited websites and detailed statistics about the user behaviour. This data can be linked to the data of users registered on facebook.com."
|
1453 |
msgstr ""
|
1750 |
msgid "There is no need for an opt-in script, because the Instagram content is normally loaded by a code in a post or page. You must create a content blocker that will block Instagram until the user gives consent to load it."
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: inc/overrides/pro/presets/InstagramPostPreset.php:1
|
1754 |
+
msgid "https://devowl.io/2022/instagram-website-gdpr/"
|
1755 |
+
msgstr ""
|
1756 |
+
|
1757 |
#: inc/overrides/pro/presets/IntercomChatPreset.php:1
|
1758 |
msgid "Intercom is a customer service tool that provides live chat for websites. The cookies are used to identify the user, associate previous messages with their chat history and collect detailed statistics on his/her behavior."
|
1759 |
msgstr ""
|
2152 |
msgid "https://www.sendinblue.com/legal/privacypolicy/"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: inc/overrides/pro/presets/SendinbluePreset.php:1
|
2156 |
+
msgid "https://devowl.io/2022/sendinblue-integration-wordpress/"
|
2157 |
+
msgstr ""
|
2158 |
+
|
2159 |
#: inc/overrides/pro/presets/SoundCloudPreset.php:1
|
2160 |
msgid "SoundCloud allows embedding content posted on soundcloud.com directly into websites. The cookies are used to collect visited websites and detailed statistics about the user behaviour. This data can be linked to the data of users registered on soundcloud.com."
|
2161 |
msgstr ""
|
2172 |
msgid "https://www.spotify.com/uk/legal/privacy-policy/"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
+
#: inc/overrides/pro/presets/SpotifyPreset.php:1
|
2176 |
+
msgid "https://devowl.io/2022/spotify-gdpr-website/"
|
2177 |
+
msgstr ""
|
2178 |
+
|
2179 |
#: inc/overrides/pro/presets/StripePreset.php:1
|
2180 |
msgid "Stripe is an online payment service with which payments can be made in this online store, e.g. by credit card. Payment data is collected directly by or transmitted to Stripe, but never stored by the operator of the online store itself. Customer data is shared with Stripe for the purpose of processing orders. Cookies are used for fraud prevention and detection."
|
2181 |
msgstr ""
|
2961 |
msgstr ""
|
2962 |
|
2963 |
#: inc/presets/free/GoogleFontsPreset.php:1
|
2964 |
+
msgid "When loading Google Fonts, personal data of your visitors is transferred to Google, which is why you need consent. Real Cookie Banner has to check the consent before loading Google Fonts (if there is a consent), which takes a few milliseconds per page view. As a result, you will inevitably notice a small flickering effect (font replacement after a few milliseconds) on your website."
|
2965 |
+
msgstr ""
|
2966 |
+
|
2967 |
+
#: inc/presets/free/GoogleFontsPreset.php:1
|
2968 |
+
msgid "We therefore recommend <a href=\"https://devowl.io/2022/google-fonts-wordpress-gdpr/\" target=\"_blank\">replacing Google Fonts with locally hosted fonts</a> when possible, rather than asking for consent. We explained how this works in our blog!"
|
2969 |
msgstr ""
|
2970 |
|
2971 |
#: inc/presets/free/GravatarPreset.php:1
|
3013 |
msgid "Please note that if this service is enabled, the \"Save my name, email, and website in this browser for the next time I comment.\" checkbox in the comment form will disappear. Real Cookie Banner handles the consent to set the cookies as part of the overall cookie consent. The commentary system uses the Gravatar service to display avatars of commentators. You must also create a service for Gravatar as well."
|
3014 |
msgstr ""
|
3015 |
|
3016 |
+
#: inc/presets/free/WordPressCommentsPreset.php:1
|
3017 |
+
msgid "Do you want to use the comment feature on your website at all? If not, we explain in our blog <a href=\"https://devowl.io/2022/deactivate-wordpress-comments/\" target=\"_blank\"> how to disable comments in WordPress</a>. Then you can also avoid this consent!"
|
3018 |
+
msgstr ""
|
3019 |
+
|
3020 |
#: inc/presets/free/WordPressEmojisPreset.php:1
|
3021 |
msgid "WordPress Emoji is an emoji set that is loaded from wordpress.org. No cookies in the technical sense are set on the client of the user, but technical and personal data such as the IP address will be transmitted from the client to the server of the service provider to make the use of the service possible."
|
3022 |
msgstr ""
|
3025 |
msgid "https://wordpress.org/about/privacy/"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
3029 |
+
msgid "Almost all browsers and operating systems released after 2015 can easily display emojis without the WordPressa Emoji Script (for which you must obtain this consent)."
|
3030 |
+
msgstr ""
|
3031 |
+
|
3032 |
+
#: inc/presets/free/WordPressEmojisPreset.php:1
|
3033 |
+
msgid "Unless you need to support particularly old browsers and operating systems, we recommend that you <a href=\"https://devowl.io/2022/disable-emojis-wordpress/\" target=\"_blank\">disable the WordPress emoji script</a> rather than asking for consent. How to do that, we have explained in our blog!"
|
3034 |
+
msgstr ""
|
3035 |
+
|
3036 |
#: inc/presets/free/WordPressPluginEmbed.php:1
|
3037 |
msgid "WordPress.org allows to display further and latest information about plugins published on wordpress.org. No cookies in the technical sense are set on the client of the user, but technical and personal data such as the IP address will be transmitted from the client to the server of the service provider to make the use of the service possible."
|
3038 |
msgstr ""
|
3057 |
msgid "There is no need for an opt-in script because the YouTube content is usually loaded in an iframe. You must create a content blocker that will block YouTube until the user gives consent to load it."
|
3058 |
msgstr ""
|
3059 |
|
3060 |
+
#: inc/presets/free/YoutubePreset.php:1
|
3061 |
+
msgid "https://devowl.io/2022/youtube-website-gdpr/"
|
3062 |
+
msgstr ""
|
3063 |
+
|
3064 |
#: inc/presets/middleware/BlockerContentTypeButtonTextMiddleware.php:1
|
3065 |
msgid "Load content"
|
3066 |
msgstr ""
|
public/dist/18.lite.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[18],{5235:function(e,t,n){n.d(t,{C:function(){return P}});var r=n(4741),a=n(63),c=n(3429),o=n(7228),l=n(7363),i=n(2286),s=n.n(i),f=n(4707),u=n(5643),d=n(4178),m=n(7139),p=n(5e3),v=n(5806),h=l.createContext("default"),y=function(e){var t=e.children,n=e.size;return l.createElement(h.Consumer,null,(function(e){return l.createElement(h.Provider,{value:n||e},t)}))},b=h,g=function(e,t){var n,i,h=l.useContext(b),y=l.useState(1),g=(0,o.Z)(y,2),E=g[0],Z=g[1],O=l.useState(!1),C=(0,o.Z)(O,2),x=C[0],N=C[1],P=l.useState(!0),w=(0,o.Z)(P,2),z=w[0],k=w[1],S=l.useRef(),j=l.useRef(),R=(0,u.sQ)(t,S),T=l.useContext(d.E_).getPrefixCls,W=function(){if(j.current&&S.current){var t=j.current.offsetWidth,n=S.current.offsetWidth;if(0!==t&&0!==n){var r=e.gap,a=void 0===r?4:r;2*a<n&&Z(n-2*a<t?(n-2*a)/t:1)}}};l.useEffect((function(){N(!0)}),[]),l.useEffect((function(){k(!0),Z(1)}),[e.src]),l.useEffect((function(){W()}),[e.gap]);var H=e.prefixCls,_=e.shape,B=e.size,K=e.src,A=e.srcSet,I=e.icon,M=e.className,U=e.alt,D=e.draggable,L=e.children,V=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["prefixCls","shape","size","src","srcSet","icon","className","alt","draggable","children"]),F="default"===B?h:B,G=(0,v.Z)(),Q=l.useMemo((function(){if("object"!==(0,c.Z)(F))return{};var e=p.c4.find((function(e){return G[e]})),t=F[e];return t?{width:t,height:t,lineHeight:"".concat(t,"px"),fontSize:I?t/2:18}:{}}),[G,F]);(0,m.Z)(!("string"==typeof I&&I.length>2),"Avatar","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(I,"` at https://ant.design/components/icon"));var X,Y=T("avatar",H),q=s()((n={},(0,a.Z)(n,"".concat(Y,"-lg"),"large"===F),(0,a.Z)(n,"".concat(Y,"-sm"),"small"===F),n)),J=l.isValidElement(K),$=s()(Y,q,(i={},(0,a.Z)(i,"".concat(Y,"-").concat(_),!!_),(0,a.Z)(i,"".concat(Y,"-image"),J||K&&z),(0,a.Z)(i,"".concat(Y,"-icon"),!!I),i),M),ee="number"==typeof F?{width:F,height:F,lineHeight:"".concat(F,"px"),fontSize:I?F/2:18}:{};if("string"==typeof K&&z)X=l.createElement("img",{src:K,draggable:D,srcSet:A,onError:function(){var t=e.onError;!1!==(t?t():void 0)&&k(!1)},alt:U});else if(J)X=K;else if(I)X=I;else if(x||1!==E){var te="scale(".concat(E,") translateX(-50%)"),ne={msTransform:te,WebkitTransform:te,transform:te},re="number"==typeof F?{lineHeight:"".concat(F,"px")}:{};X=l.createElement(f.Z,{onResize:W},l.createElement("span",{className:"".concat(Y,"-string"),ref:function(e){j.current=e},style:(0,r.Z)((0,r.Z)({},re),ne)},L))}else X=l.createElement("span",{className:"".concat(Y,"-string"),style:{opacity:0},ref:function(e){j.current=e}},L);return delete V.onError,delete V.gap,l.createElement("span",(0,r.Z)({},V,{style:(0,r.Z)((0,r.Z)((0,r.Z)({},ee),Q),V.style),className:$,ref:R}),X)},E=l.forwardRef(g);E.displayName="Avatar",E.defaultProps={shape:"circle",size:"default"};var Z=E,O=n(4237),C=n(8929),x=n(7109),N=Z;N.Group=function(e){var t=l.useContext(d.E_),n=t.getPrefixCls,r=t.direction,c=e.prefixCls,o=e.className,i=void 0===o?"":o,f=e.maxCount,u=e.maxStyle,m=e.size,p=n("avatar-group",c),v=s()(p,(0,a.Z)({},"".concat(p,"-rtl"),"rtl"===r),i),h=e.children,b=e.maxPopoverPlacement,g=void 0===b?"top":b,E=(0,O.Z)(h).map((function(e,t){return(0,C.Tm)(e,{key:"avatar-key-".concat(t)})})),N=E.length;if(f&&f<N){var P=E.slice(0,f),w=E.slice(f,N);return P.push(l.createElement(x.Z,{key:"avatar-popover-key",content:w,trigger:"hover",placement:g,overlayClassName:"".concat(p,"-popover")},l.createElement(Z,{style:u},"+".concat(N-f)))),l.createElement(y,{size:m},l.createElement("div",{className:v,style:e.style},P))}return l.createElement(y,{size:m},l.createElement("div",{className:v,style:e.style},E))};var P=N},3735:function(e,t,n){n.d(t,{Z:function(){return h}});var r=n(63),a=n(4741),c=n(7363),o=n(2286),l=n.n(o),i=n(733),s=n(4178),f=function(e){var t=e.prefixCls,n=e.className,o=e.hoverable,i=void 0===o||o,f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["prefixCls","className","hoverable"]);return c.createElement(s.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),s=l()("".concat(o,"-grid"),n,(0,r.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,a.Z)({},f,{className:s}))}))},u=n(9440),d=n(5489),m=n(8503),p=n(8533),v=function(e){var t,n,o,v=c.useContext(s.E_),h=v.getPrefixCls,y=v.direction,b=c.useContext(p.Z),g=e.prefixCls,E=e.className,Z=e.extra,O=e.headStyle,C=void 0===O?{}:O,x=e.bodyStyle,N=void 0===x?{}:x,P=e.title,w=e.loading,z=e.bordered,k=void 0===z||z,S=e.size,j=e.type,R=e.cover,T=e.actions,W=e.tabList,H=e.children,_=e.activeTabKey,B=e.defaultActiveTabKey,K=e.tabBarExtraContent,A=e.hoverable,I=e.tabProps,M=void 0===I?{}:I,U=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),D=h("card",g),L=0===N.padding||"0px"===N.padding?{padding:24}:void 0,V=c.createElement("div",{className:"".concat(D,"-loading-block")}),F=c.createElement("div",{className:"".concat(D,"-loading-content"),style:L},c.createElement(d.Z,{gutter:8},c.createElement(m.Z,{span:22},V)),c.createElement(d.Z,{gutter:8},c.createElement(m.Z,{span:8},V),c.createElement(m.Z,{span:15},V)),c.createElement(d.Z,{gutter:8},c.createElement(m.Z,{span:6},V),c.createElement(m.Z,{span:18},V)),c.createElement(d.Z,{gutter:8},c.createElement(m.Z,{span:13},V),c.createElement(m.Z,{span:9},V)),c.createElement(d.Z,{gutter:8},c.createElement(m.Z,{span:4},V),c.createElement(m.Z,{span:3},V),c.createElement(m.Z,{span:16},V))),G=void 0!==_,Q=(0,a.Z)((0,a.Z)({},M),(t={},(0,r.Z)(t,G?"activeKey":"defaultActiveKey",G?_:B),(0,r.Z)(t,"tabBarExtraContent",K),t)),X=W&&W.length?c.createElement(u.Z,(0,a.Z)({size:"large"},Q,{className:"".concat(D,"-head-tabs"),onChange:function(t){var n;null===(n=e.onTabChange)||void 0===n||n.call(e,t)}}),W.map((function(e){return c.createElement(u.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(P||Z||X)&&(o=c.createElement("div",{className:"".concat(D,"-head"),style:C},c.createElement("div",{className:"".concat(D,"-head-wrapper")},P&&c.createElement("div",{className:"".concat(D,"-head-title")},P),Z&&c.createElement("div",{className:"".concat(D,"-extra")},Z)),X));var Y,q=R?c.createElement("div",{className:"".concat(D,"-cover")},R):null,J=c.createElement("div",{className:"".concat(D,"-body"),style:N},w?F:H),$=T&&T.length?c.createElement("ul",{className:"".concat(D,"-actions")},function(e){return e.map((function(t,n){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},c.createElement("span",null,t))}))}(T)):null,ee=(0,i.Z)(U,["onTabChange"]),te=S||b,ne=l()(D,(n={},(0,r.Z)(n,"".concat(D,"-loading"),w),(0,r.Z)(n,"".concat(D,"-bordered"),k),(0,r.Z)(n,"".concat(D,"-hoverable"),A),(0,r.Z)(n,"".concat(D,"-contain-grid"),(c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===f&&(Y=!0)})),Y)),(0,r.Z)(n,"".concat(D,"-contain-tabs"),W&&W.length),(0,r.Z)(n,"".concat(D,"-").concat(te),te),(0,r.Z)(n,"".concat(D,"-type-").concat(j),!!j),(0,r.Z)(n,"".concat(D,"-rtl"),"rtl"===y),n),E);return c.createElement("div",(0,a.Z)({},ee,{className:ne}),o,q,J,$)};v.Grid=f,v.Meta=function(e){return c.createElement(s.C,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,o=e.className,i=e.avatar,s=e.title,f=e.description,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["prefixCls","className","avatar","title","description"]),d=n("card",r),m=l()("".concat(d,"-meta"),o),p=i?c.createElement("div",{className:"".concat(d,"-meta-avatar")},i):null,v=s?c.createElement("div",{className:"".concat(d,"-meta-title")},s):null,h=f?c.createElement("div",{className:"".concat(d,"-meta-description")},f):null,y=v||h?c.createElement("div",{className:"".concat(d,"-meta-detail")},v,h):null;return c.createElement("div",(0,a.Z)({},u,{className:m}),p,y)}))};var h=v},5806:function(e,t,n){var r=n(7228),a=n(7363),c=n(5e3);t.Z=function(){var e=(0,a.useState)({}),t=(0,r.Z)(e,2),n=t[0],o=t[1];return(0,a.useEffect)((function(){var e=c.ZP.subscribe((function(e){o(e)}));return function(){return c.ZP.unsubscribe(e)}}),[]),n}},7109:function(e,t,n){var r=n(4741),a=n(7363),c=n(1857),o=n(4178),l=n(5266),i=n(5670),s=a.forwardRef((function(e,t){var n=e.prefixCls,s=e.title,f=e.content,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(e,["prefixCls","title","content"]),d=a.useContext(o.E_).getPrefixCls,m=d("popover",n),p=d();return a.createElement(c.Z,(0,r.Z)({},u,{prefixCls:m,ref:t,overlay:function(e){return a.createElement(a.Fragment,null,s&&a.createElement("div",{className:"".concat(e,"-title")},(0,l.Z)(s)),a.createElement("div",{className:"".concat(e,"-inner-content")},(0,l.Z)(f)))}(m),transitionName:(0,i.m)(p,"zoom-big",u.transitionName)}))}));s.displayName="Popover",s.defaultProps={placement:"top",trigger:"hover",mouseEnterDelay:.1,mouseLeaveDelay:.1,overlayStyle:{}},t.Z=s},4707:function(e,t,n){var r=n(2711),a=n(6762),c=n(3340),o=n(3841),l=n(5952),i=n(7363),s=n(8369),f=n(4237),u=n(1894),d=n(5643),m=n(7410),p=function(e){(0,o.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,a.Z)(this,n),(e=t.apply(this,arguments)).resizeObserver=null,e.childNode=null,e.currentElement=null,e.state={width:0,height:0,offsetHeight:0,offsetWidth:0},e.onResize=function(t){var n=e.props.onResize,a=t[0].target,c=a.getBoundingClientRect(),o=c.width,l=c.height,i=a.offsetWidth,s=a.offsetHeight,f=Math.floor(o),u=Math.floor(l);if(e.state.width!==f||e.state.height!==u||e.state.offsetWidth!==i||e.state.offsetHeight!==s){var d={width:f,height:u,offsetWidth:i,offsetHeight:s};e.setState(d),n&&Promise.resolve().then((function(){n((0,r.Z)((0,r.Z)({},d),{},{offsetWidth:i,offsetHeight:s}),a)}))}},e.setChildNode=function(t){e.childNode=t},e}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.onComponentUpdated()}},{key:"componentDidUpdate",value:function(){this.onComponentUpdated()}},{key:"componentWillUnmount",value:function(){this.destroyObserver()}},{key:"onComponentUpdated",value:function(){if(this.props.disabled)this.destroyObserver();else{var e=(0,s.Z)(this.childNode||this);e!==this.currentElement&&(this.destroyObserver(),this.currentElement=e),!this.resizeObserver&&e&&(this.resizeObserver=new m.Z(this.onResize),this.resizeObserver.observe(e))}}},{key:"destroyObserver",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"render",value:function(){var e=this.props.children,t=(0,f.Z)(e);if(t.length>1)(0,u.ZP)(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===t.length)return(0,u.ZP)(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var n=t[0];if(i.isValidElement(n)&&(0,d.Yr)(n)){var r=n.ref;t[0]=i.cloneElement(n,{ref:(0,d.sQ)(r,this.setChildNode)})}return 1===t.length?t[0]:t.map((function(e,t){return!i.isValidElement(e)||"key"in e&&null!==e.key?e:i.cloneElement(e,{key:"".concat("rc-observer-key","-").concat(t)})}))}}]),n}(i.Component);p.displayName="ResizeObserver",t.Z=p}}]);
|
2 |
+
//# sourceMappingURL=18.lite.js.map?ver=bbe976f46f8c4fbf81dd
|
public/dist/18.lite.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"file":"18.lite.js?ver=bbe976f46f8c4fbf81dd","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/avatar/SizeContext.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/avatar/avatar.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/avatar/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/avatar/group.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Grid.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Meta.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/popover/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/node_modules/rc-resize-observer/es/index.js"],"sourcesContent":["import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext('default');\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport devWarning from '../_util/devWarning';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport SizeContext from './SizeContext';\n\nvar InternalAvatar = function InternalAvatar(props, ref) {\n var _classNames, _classNames2;\n\n var groupSize = React.useContext(SizeContext);\n\n var _React$useState = React.useState(1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n scale = _React$useState2[0],\n setScale = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n\n var _React$useState5 = React.useState(true),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n isImgExist = _React$useState6[0],\n setIsImgExist = _React$useState6[1];\n\n var avatarNodeRef = React.useRef();\n var avatarChildrenRef = React.useRef();\n var avatarNodeMergeRef = composeRef(ref, avatarNodeRef);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var setScaleParam = function setScaleParam() {\n if (!avatarChildrenRef.current || !avatarNodeRef.current) {\n return;\n }\n\n var childrenWidth = avatarChildrenRef.current.offsetWidth; // offsetWidth avoid affecting be transform scale\n\n var nodeWidth = avatarNodeRef.current.offsetWidth; // denominator is 0 is no meaning\n\n if (childrenWidth !== 0 && nodeWidth !== 0) {\n var _props$gap = props.gap,\n gap = _props$gap === void 0 ? 4 : _props$gap;\n\n if (gap * 2 < nodeWidth) {\n setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);\n }\n }\n };\n\n React.useEffect(function () {\n setMounted(true);\n }, []);\n React.useEffect(function () {\n setIsImgExist(true);\n setScale(1);\n }, [props.src]);\n React.useEffect(function () {\n setScaleParam();\n }, [props.gap]);\n\n var handleImgLoadError = function handleImgLoadError() {\n var onError = props.onError;\n var errorFlag = onError ? onError() : undefined;\n\n if (errorFlag !== false) {\n setIsImgExist(false);\n }\n };\n\n var customizePrefixCls = props.prefixCls,\n shape = props.shape,\n customSize = props.size,\n src = props.src,\n srcSet = props.srcSet,\n icon = props.icon,\n className = props.className,\n alt = props.alt,\n draggable = props.draggable,\n children = props.children,\n others = __rest(props, [\"prefixCls\", \"shape\", \"size\", \"src\", \"srcSet\", \"icon\", \"className\", \"alt\", \"draggable\", \"children\"]);\n\n var size = customSize === 'default' ? groupSize : customSize;\n var screens = useBreakpoint();\n var responsiveSizeStyle = React.useMemo(function () {\n if (_typeof(size) !== 'object') {\n return {};\n }\n\n var currentBreakpoint = responsiveArray.find(function (screen) {\n return screens[screen];\n });\n var currentSize = size[currentBreakpoint];\n return currentSize ? {\n width: currentSize,\n height: currentSize,\n lineHeight: \"\".concat(currentSize, \"px\"),\n fontSize: icon ? currentSize / 2 : 18\n } : {};\n }, [screens, size]);\n devWarning(!(typeof icon === 'string' && icon.length > 2), 'Avatar', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\"));\n var prefixCls = getPrefixCls('avatar', customizePrefixCls);\n var sizeCls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-lg\"), size === 'large'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-sm\"), size === 'small'), _classNames));\n var hasImageElement = /*#__PURE__*/React.isValidElement(src);\n var classString = classNames(prefixCls, sizeCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(shape), !!shape), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-image\"), hasImageElement || src && isImgExist), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-icon\"), !!icon), _classNames2), className);\n var sizeStyle = typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: \"\".concat(size, \"px\"),\n fontSize: icon ? size / 2 : 18\n } : {};\n var childrenToRender;\n\n if (typeof src === 'string' && isImgExist) {\n childrenToRender = /*#__PURE__*/React.createElement(\"img\", {\n src: src,\n draggable: draggable,\n srcSet: srcSet,\n onError: handleImgLoadError,\n alt: alt\n });\n } else if (hasImageElement) {\n childrenToRender = src;\n } else if (icon) {\n childrenToRender = icon;\n } else if (mounted || scale !== 1) {\n var transformString = \"scale(\".concat(scale, \") translateX(-50%)\");\n var childrenStyle = {\n msTransform: transformString,\n WebkitTransform: transformString,\n transform: transformString\n };\n var sizeChildrenStyle = typeof size === 'number' ? {\n lineHeight: \"\".concat(size, \"px\")\n } : {};\n childrenToRender = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: setScaleParam\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n ref: function ref(node) {\n avatarChildrenRef.current = node;\n },\n style: _extends(_extends({}, sizeChildrenStyle), childrenStyle)\n }, children));\n } else {\n childrenToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-string\"),\n style: {\n opacity: 0\n },\n ref: function ref(node) {\n avatarChildrenRef.current = node;\n }\n }, children);\n } // The event is triggered twice from bubbling up the DOM tree.\n // see https://codesandbox.io/s/kind-snow-9lidz\n\n\n delete others.onError;\n delete others.gap;\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, others, {\n style: _extends(_extends(_extends({}, sizeStyle), responsiveSizeStyle), others.style),\n className: classString,\n ref: avatarNodeMergeRef\n }), childrenToRender);\n};\n\nvar Avatar = /*#__PURE__*/React.forwardRef(InternalAvatar);\nAvatar.displayName = 'Avatar';\nAvatar.defaultProps = {\n shape: 'circle',\n size: 'default'\n};\nexport default Avatar;","import InternalAvatar from './avatar';\nimport Group from './group';\nvar Avatar = InternalAvatar;\nAvatar.Group = Group;\nexport { Group };\nexport default Avatar;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Avatar from './avatar';\nimport Popover from '../popover';\nimport { SizeContextProvider } from './SizeContext';\n\nvar Group = function Group(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n maxCount = props.maxCount,\n maxStyle = props.maxStyle,\n size = props.size;\n var prefixCls = getPrefixCls('avatar-group', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var children = props.children,\n _props$maxPopoverPlac = props.maxPopoverPlacement,\n maxPopoverPlacement = _props$maxPopoverPlac === void 0 ? 'top' : _props$maxPopoverPlac;\n var childrenWithProps = toArray(children).map(function (child, index) {\n return cloneElement(child, {\n key: \"avatar-key-\".concat(index)\n });\n });\n var numOfChildren = childrenWithProps.length;\n\n if (maxCount && maxCount < numOfChildren) {\n var childrenShow = childrenWithProps.slice(0, maxCount);\n var childrenHidden = childrenWithProps.slice(maxCount, numOfChildren);\n childrenShow.push( /*#__PURE__*/React.createElement(Popover, {\n key: \"avatar-popover-key\",\n content: childrenHidden,\n trigger: \"hover\",\n placement: maxPopoverPlacement,\n overlayClassName: \"\".concat(prefixCls, \"-popover\")\n }, /*#__PURE__*/React.createElement(Avatar, {\n style: maxStyle\n }, \"+\".concat(numOfChildren - maxCount))));\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenShow));\n }\n\n return /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: props.style\n }, childrenWithProps));\n};\n\nexport default Group;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\n\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\n\nvar Card = function Card(props) {\n var _extends2, _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var onTabChange = function onTabChange(key) {\n var _a;\n\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {\n padding: 24\n } : undefined;\n var block = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-block\")\n });\n var loadingBlock = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-content\"),\n style: loadingBlockStyle\n }, /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 22\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 8\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 15\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 6\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 18\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 13\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 9\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 4\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 3\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 16\n }, block)));\n var hasActiveTabKey = activeTabKey !== undefined;\n\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange\n }), tabList.map(function (item) {\n return /*#__PURE__*/React.createElement(Tabs.TabPane, {\n tab: item.tab,\n disabled: item.disabled,\n key: item.key\n });\n })) : null;\n\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n};\n\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\n\nexport default Meta;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport Tooltip from '../tooltip';\nimport { ConfigContext } from '../config-provider';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nvar Popover = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n title = _a.title,\n content = _a.content,\n otherProps = __rest(_a, [\"prefixCls\", \"title\", \"content\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var getOverlay = function getOverlay(prefixCls) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, getRenderPropValue(content)));\n };\n\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, otherProps, {\n prefixCls: prefixCls,\n ref: ref,\n overlay: getOverlay(prefixCls),\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName)\n }));\n});\nPopover.displayName = 'Popover';\nPopover.defaultProps = {\n placement: 'top',\n trigger: 'hover',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n overlayStyle: {}\n};\nexport default Popover;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport ResizeObserver from 'resize-observer-polyfill';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n var _super = _createSuper(ReactResizeObserver);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0,\n offsetHeight: 0,\n offsetWidth: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight || _this.state.offsetWidth !== offsetWidth || _this.state.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(_objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n }), target);\n });\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray(children);\n\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if ( /*#__PURE__*/React.isValidElement(childNode) && supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return /*#__PURE__*/React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n}(React.Component);\n\nReactResizeObserver.displayName = 'ResizeObserver';\nexport default ReactResizeObserver;"],"names":["SizeContext","SizeContextProvider","_ref","children","size","Consumer","originSize","Provider","value","InternalAvatar","props","ref","_classNames","_classNames2","groupSize","_React$useState","_React$useState2","scale","setScale","_React$useState3","_React$useState4","mounted","setMounted","_React$useState5","_React$useState6","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergeRef","getPrefixCls","setScaleParam","current","childrenWidth","offsetWidth","nodeWidth","_props$gap","gap","src","customizePrefixCls","prefixCls","shape","customSize","srcSet","icon","className","alt","draggable","others","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","screens","useBreakpoint","responsiveSizeStyle","currentBreakpoint","screen","currentSize","width","height","lineHeight","concat","fontSize","devWarning","childrenToRender","sizeCls","hasImageElement","classString","sizeStyle","onError","undefined","transformString","childrenStyle","msTransform","WebkitTransform","transform","sizeChildrenStyle","onResize","node","style","opacity","Avatar","displayName","defaultProps","Group","_React$useContext","direction","_props$className","maxCount","maxStyle","cls","_props$maxPopoverPlac","maxPopoverPlacement","childrenWithProps","toArray","map","child","index","key","numOfChildren","childrenShow","slice","childrenHidden","push","content","trigger","placement","overlayClassName","_a","_a$hoverable","hoverable","C","prefix","Card","_extends2","head","extra","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","title","loading","_props$bordered","bordered","customizeSize","type","cover","actions","tabList","activeTabKey","defaultActiveTabKey","tabBarExtraContent","_props$tabProps","tabProps","loadingBlockStyle","padding","block","loadingBlock","gutter","span","hasActiveTabKey","extraProps","tabs","onChange","onTabChange","item","tab","disabled","containGrid","coverDom","body","actionDom","action","getAction","divProps","omit","mergedSize","element","Grid","Meta","avatar","description","avatarDom","titleDom","descriptionDom","MetaDetail","_useState","useState","_useState2","setScreens","useEffect","token","supportScreens","Popover","otherProps","rootPrefixCls","overlay","getOverlay","transitionName","mouseEnterDelay","mouseLeaveDelay","overlayStyle","ReactResizeObserver","_React$Component","_super","_this","this","apply","arguments","resizeObserver","childNode","currentElement","state","offsetHeight","entries","target","_target$getBoundingCl","getBoundingClientRect","fixedWidth","Math","floor","fixedHeight","setState","Promise","resolve","then","setChildNode","onComponentUpdated","destroyObserver","observe","disconnect","childNodes"],"sourceRoot":""}
|
public/dist/191.lite.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[191],{8122:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="LeftOutlined";var l=a.forwardRef(o)},4632:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="RightOutlined";var l=a.forwardRef(o)},3735:function(e,t,n){n.d(t,{Z:function(){return g}});var a=n(63),r=n(4741),c=n(7363),o=n(2286),l=n.n(o),i=n(733),s=n(4178),u=function(e){var t=e.prefixCls,n=e.className,o=e.hoverable,i=void 0===o||o,u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","hoverable"]);return c.createElement(s.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),s=l()("".concat(o,"-grid"),n,(0,a.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,r.Z)({},u,{className:s}))}))},p=n(9440),m=n(5489),d=n(8503),h=n(8533),f=function(e){var t,n,o,f=c.useContext(s.E_),g=f.getPrefixCls,v=f.direction,y=c.useContext(h.Z),b=e.prefixCls,x=e.className,E=e.extra,C=e.headStyle,N=void 0===C?{}:C,Z=e.bodyStyle,P=void 0===Z?{}:Z,S=e.title,O=e.loading,k=e.bordered,I=void 0===k||k,w=e.size,z=e.type,j=e.cover,T=e.actions,_=e.tabList,K=e.children,V=e.activeTabKey,L=e.defaultActiveTabKey,M=e.tabBarExtraContent,B=e.hoverable,J=e.tabProps,R=void 0===J?{}:J,D=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),G=g("card",b),U=0===P.padding||"0px"===P.padding?{padding:24}:void 0,A=c.createElement("div",{className:"".concat(G,"-loading-block")}),q=c.createElement("div",{className:"".concat(G,"-loading-content"),style:U},c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:22},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:8},A),c.createElement(d.Z,{span:15},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:6},A),c.createElement(d.Z,{span:18},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:13},A),c.createElement(d.Z,{span:9},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:4},A),c.createElement(d.Z,{span:3},A),c.createElement(d.Z,{span:16},A))),H=void 0!==V,Q=(0,r.Z)((0,r.Z)({},R),(t={},(0,a.Z)(t,H?"activeKey":"defaultActiveKey",H?V:L),(0,a.Z)(t,"tabBarExtraContent",M),t)),W=_&&_.length?c.createElement(p.Z,(0,r.Z)({size:"large"},Q,{className:"".concat(G,"-head-tabs"),onChange:function(t){var n;null===(n=e.onTabChange)||void 0===n||n.call(e,t)}}),_.map((function(e){return c.createElement(p.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(S||E||W)&&(o=c.createElement("div",{className:"".concat(G,"-head"),style:N},c.createElement("div",{className:"".concat(G,"-head-wrapper")},S&&c.createElement("div",{className:"".concat(G,"-head-title")},S),E&&c.createElement("div",{className:"".concat(G,"-extra")},E)),W));var F,Y=j?c.createElement("div",{className:"".concat(G,"-cover")},j):null,X=c.createElement("div",{className:"".concat(G,"-body"),style:P},O?q:K),$=T&&T.length?c.createElement("ul",{className:"".concat(G,"-actions")},function(e){return e.map((function(t,n){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},c.createElement("span",null,t))}))}(T)):null,ee=(0,i.Z)(D,["onTabChange"]),te=w||y,ne=l()(G,(n={},(0,a.Z)(n,"".concat(G,"-loading"),O),(0,a.Z)(n,"".concat(G,"-bordered"),I),(0,a.Z)(n,"".concat(G,"-hoverable"),B),(0,a.Z)(n,"".concat(G,"-contain-grid"),(c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===u&&(F=!0)})),F)),(0,a.Z)(n,"".concat(G,"-contain-tabs"),_&&_.length),(0,a.Z)(n,"".concat(G,"-").concat(te),te),(0,a.Z)(n,"".concat(G,"-type-").concat(z),!!z),(0,a.Z)(n,"".concat(G,"-rtl"),"rtl"===v),n),x);return c.createElement("div",(0,r.Z)({},ee,{className:ne}),o,Y,X,$)};f.Grid=u,f.Meta=function(e){return c.createElement(s.C,null,(function(t){var n=t.getPrefixCls,a=e.prefixCls,o=e.className,i=e.avatar,s=e.title,u=e.description,p=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","avatar","title","description"]),m=n("card",a),d=l()("".concat(m,"-meta"),o),h=i?c.createElement("div",{className:"".concat(m,"-meta-avatar")},i):null,f=s?c.createElement("div",{className:"".concat(m,"-meta-title")},s):null,g=u?c.createElement("div",{className:"".concat(m,"-meta-description")},u):null,v=f||g?c.createElement("div",{className:"".concat(m,"-meta-detail")},f,g):null;return c.createElement("div",(0,r.Z)({},p,{className:d}),h,v)}))};var g=f},5806:function(e,t,n){var a=n(7228),r=n(7363),c=n(5e3);t.Z=function(){var e=(0,r.useState)({}),t=(0,a.Z)(e,2),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=c.ZP.subscribe((function(e){o(e)}));return function(){return c.ZP.unsubscribe(e)}}),[]),n}},9455:function(e,t,n){n.d(t,{ZM:function(){return C},ZP:function(){return Z}});var a=n(7870),r=n(4741),c=n(63),o=n(7228),l=n(3429),i=n(7363),s=n(2286),u=n.n(s),p=n(9591),m=n(5806),d=n(5e3),h=n(4178),f=n(754),g=n(9388),v=n(2275),y=n(8929),b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},x=function(e){var t,n=e.prefixCls,a=e.children,o=e.actions,l=e.extra,s=e.className,p=e.colStyle,m=b(e,["prefixCls","children","actions","extra","className","colStyle"]),d=i.useContext(C),f=d.grid,g=d.itemLayout,x=(0,i.useContext(h.E_).getPrefixCls)("list",n),E=o&&o.length>0&&i.createElement("ul",{className:"".concat(x,"-item-action"),key:"actions"},o.map((function(e,t){return i.createElement("li",{key:"".concat(x,"-item-action-").concat(t)},e,t!==o.length-1&&i.createElement("em",{className:"".concat(x,"-item-action-split")}))}))),N=f?"div":"li",Z=i.createElement(N,(0,r.Z)({},m,{className:u()("".concat(x,"-item"),(0,c.Z)({},"".concat(x,"-item-no-flex"),!("vertical"===g?l:(i.Children.forEach(a,(function(e){"string"==typeof e&&(t=!0)})),!(t&&i.Children.count(a)>1)))),s)}),"vertical"===g&&l?[i.createElement("div",{className:"".concat(x,"-item-main"),key:"content"},a,E),i.createElement("div",{className:"".concat(x,"-item-extra"),key:"extra"},l)]:[a,E,(0,y.Tm)(l,{key:"extra"})]);return f?i.createElement(v.Z,{flex:1,style:p},Z):Z};x.Meta=function(e){var t=e.prefixCls,n=e.className,a=e.avatar,c=e.title,o=e.description,l=b(e,["prefixCls","className","avatar","title","description"]),s=(0,i.useContext(h.E_).getPrefixCls)("list",t),p=u()("".concat(s,"-item-meta"),n),m=i.createElement("div",{className:"".concat(s,"-item-meta-content")},c&&i.createElement("h4",{className:"".concat(s,"-item-meta-title")},c),o&&i.createElement("div",{className:"".concat(s,"-item-meta-description")},o));return i.createElement("div",(0,r.Z)({},l,{className:p}),a&&i.createElement("div",{className:"".concat(s,"-item-meta-avatar")},a),(c||o)&&m)};var E=x,C=i.createContext({});function N(e){var t,n=e.pagination,s=void 0!==n&&n,v=e.prefixCls,y=e.bordered,b=void 0!==y&&y,x=e.split,E=void 0===x||x,N=e.className,Z=e.children,P=e.itemLayout,S=e.loadMore,O=e.grid,k=e.dataSource,I=void 0===k?[]:k,w=e.size,z=e.header,j=e.footer,T=e.loading,_=void 0!==T&&T,K=e.rowKey,V=e.renderItem,L=e.locale,M=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["pagination","prefixCls","bordered","split","className","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),B=s&&"object"===(0,l.Z)(s)?s:{},J=i.useState(B.defaultCurrent||1),R=(0,o.Z)(J,2),D=R[0],G=R[1],U=i.useState(B.defaultPageSize||10),A=(0,o.Z)(U,2),q=A[0],H=A[1],Q=i.useContext(h.E_),W=Q.getPrefixCls,F=Q.renderEmpty,Y=Q.direction,X={},$=function(e){return function(t,n){G(t),H(n),s&&s[e]&&s[e](t,n)}},ee=$("onChange"),te=$("onShowSizeChange"),ne=W("list",v),ae=_;"boolean"==typeof ae&&(ae={spinning:ae});var re=ae&&ae.spinning,ce="";switch(w){case"large":ce="lg";break;case"small":ce="sm"}var oe=u()(ne,(t={},(0,c.Z)(t,"".concat(ne,"-vertical"),"vertical"===P),(0,c.Z)(t,"".concat(ne,"-").concat(ce),ce),(0,c.Z)(t,"".concat(ne,"-split"),E),(0,c.Z)(t,"".concat(ne,"-bordered"),b),(0,c.Z)(t,"".concat(ne,"-loading"),re),(0,c.Z)(t,"".concat(ne,"-grid"),!!O),(0,c.Z)(t,"".concat(ne,"-something-after-last-item"),!!(S||s||j)),(0,c.Z)(t,"".concat(ne,"-rtl"),"rtl"===Y),t),N),le=(0,r.Z)((0,r.Z)((0,r.Z)({},{current:1,total:0}),{total:I.length,current:D,pageSize:q}),s||{}),ie=Math.ceil(le.total/le.pageSize);le.current>ie&&(le.current=ie);var se=s?i.createElement("div",{className:"".concat(ne,"-pagination")},i.createElement(f.Z,(0,r.Z)({},le,{onChange:ee,onShowSizeChange:te}))):null,ue=(0,a.Z)(I);s&&I.length>(le.current-1)*le.pageSize&&(ue=(0,a.Z)(I).splice((le.current-1)*le.pageSize,le.pageSize));var pe=(0,m.Z)(),me=i.useMemo((function(){for(var e=0;e<d.c4.length;e+=1){var t=d.c4[e];if(pe[t])return t}}),[pe]),de=i.useMemo((function(){if(O){var e=me&&O[me]?O[me]:O.column;return e?{width:"".concat(100/e,"%"),maxWidth:"".concat(100/e,"%")}:void 0}}),[null==O?void 0:O.column,me]),he=re&&i.createElement("div",{style:{minHeight:53}});if(ue.length>0){var fe=ue.map((function(e,t){return function(e,t){return V?((n="function"==typeof K?K(e):"string"==typeof K?e[K]:e.key)||(n="list-item-".concat(t)),X[t]=n,V(e,t)):null;var n}(e,t)})),ge=i.Children.map(fe,(function(e,t){return i.createElement("div",{key:X[t],style:de},e)}));he=O?i.createElement(g.Z,{gutter:O.gutter},ge):i.createElement("ul",{className:"".concat(ne,"-items")},fe)}else Z||re||(he=function(e,t){return i.createElement("div",{className:"".concat(e,"-empty-text")},L&&L.emptyText||t("List"))}(ne,F));var ve=le.position||"bottom";return i.createElement(C.Provider,{value:{grid:O,itemLayout:P}},i.createElement("div",(0,r.Z)({className:oe},M),("top"===ve||"both"===ve)&&se,z&&i.createElement("div",{className:"".concat(ne,"-header")},z),i.createElement(p.Z,ae,he,Z),j&&i.createElement("div",{className:"".concat(ne,"-footer")},j),S||("bottom"===ve||"both"===ve)&&se))}C.Consumer,N.Item=E;var Z=N},754:function(e,t,n){n.d(t,{Z:function(){return L}});var a=n(63),r=n(4741),c=n(7363),o=n.n(c),l=n(2711),i=n(6762),s=n(3340),u=n(3841),p=n(5952),m=n(2286),d=n.n(m),h=function(e){var t,n="".concat(e.rootPrefixCls,"-item"),r=d()(n,"".concat(n,"-").concat(e.page),(t={},(0,a.Z)(t,"".concat(n,"-active"),e.active),(0,a.Z)(t,e.className,!!e.className),(0,a.Z)(t,"".concat(n,"-disabled"),!e.page),t));return o().createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:function(){e.onClick(e.page)},onKeyPress:function(t){e.onKeyPress(t,e.onClick,e.page)},tabIndex:"0"},e.itemRender(e.page,"page",o().createElement("a",{rel:"nofollow"},e.page)))},f=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var a=arguments.length,r=new Array(a),c=0;c<a;c++)r[c]=arguments[c];return(e=t.call.apply(t,[this].concat(r))).state={goInputText:""},e.buildOptionText=function(t){return"".concat(t," ").concat(e.props.locale.items_per_page)},e.changeSize=function(t){e.props.changeSize(Number(t))},e.handleChange=function(t){e.setState({goInputText:t.target.value})},e.handleBlur=function(t){var n=e.props,a=n.goButton,r=n.quickGo,c=n.rootPrefixCls,o=e.state.goInputText;a||""===o||(e.setState({goInputText:""}),t.relatedTarget&&(t.relatedTarget.className.indexOf("".concat(c,"-item-link"))>=0||t.relatedTarget.className.indexOf("".concat(c,"-item"))>=0)||r(e.getValidValue()))},e.go=function(t){""!==e.state.goInputText&&(13!==t.keyCode&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return(0,s.Z)(n,[{key:"getValidValue",value:function(){var e=this.state.goInputText;return!e||isNaN(e)?void 0:Number(e)}},{key:"getPageSizeOptions",value:function(){var e=this.props,t=e.pageSize,n=e.pageSizeOptions;return n.some((function(e){return e.toString()===t.toString()}))?n:n.concat([t.toString()]).sort((function(e,t){return(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,a=t.locale,r=t.rootPrefixCls,c=t.changeSize,l=t.quickGo,i=t.goButton,s=t.selectComponentClass,u=t.buildOptionText,p=t.selectPrefixCls,m=t.disabled,d=this.state.goInputText,h="".concat(r,"-options"),f=s,g=null,v=null,y=null;if(!c&&!l)return null;var b=this.getPageSizeOptions();if(c&&f){var x=b.map((function(t,n){return o().createElement(f.Option,{key:n,value:t.toString()},(u||e.buildOptionText)(t))}));g=o().createElement(f,{disabled:m,prefixCls:p,showSearch:!1,className:"".concat(h,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||b[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},x)}return l&&(i&&(y="boolean"==typeof i?o().createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:m,className:"".concat(h,"-quick-jumper-button")},a.jump_to_confirm):o().createElement("span",{onClick:this.go,onKeyUp:this.go},i)),v=o().createElement("div",{className:"".concat(h,"-quick-jumper")},a.jump_to,o().createElement("input",{disabled:m,type:"text",value:d,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),a.page,y)),o().createElement("li",{className:"".concat(h)},g,v)}}]),n}(o().Component);f.defaultProps={pageSizeOptions:["10","20","50","100"]};var g=f;function v(){}function y(e,t,n){var a=void 0===e?t.pageSize:e;return Math.floor((n.total-1)/a)+1}var b=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(e){var a;(0,i.Z)(this,n),(a=t.call(this,e)).getJumpPrevPage=function(){return Math.max(1,a.state.current-(a.props.showLessItems?3:5))},a.getJumpNextPage=function(){return Math.min(y(void 0,a.state,a.props),a.state.current+(a.props.showLessItems?3:5))},a.getItemIcon=function(e,t){var n=a.props.prefixCls,r=e||o().createElement("button",{type:"button","aria-label":t,className:"".concat(n,"-item-link")});return"function"==typeof e&&(r=o().createElement(e,(0,l.Z)({},a.props))),r},a.savePaginationNode=function(e){a.paginationNode=e},a.isValid=function(e){return"number"==typeof(t=e)&&isFinite(t)&&Math.floor(t)===t&&e!==a.state.current;var t},a.shouldDisplayQuickJumper=function(){var e=a.props,t=e.showQuickJumper,n=e.pageSize;return!(e.total<=n)&&t},a.handleKeyDown=function(e){38!==e.keyCode&&40!==e.keyCode||e.preventDefault()},a.handleKeyUp=function(e){var t=a.getValidValue(e);t!==a.state.currentInputValue&&a.setState({currentInputValue:t}),13===e.keyCode?a.handleChange(t):38===e.keyCode?a.handleChange(t-1):40===e.keyCode&&a.handleChange(t+1)},a.changePageSize=function(e){var t=a.state.current,n=y(e,a.state,a.props);t=t>n?n:t,0===n&&(t=a.state.current),"number"==typeof e&&("pageSize"in a.props||a.setState({pageSize:e}),"current"in a.props||a.setState({current:t,currentInputValue:t})),a.props.onShowSizeChange(t,e),"onChange"in a.props&&a.props.onChange&&a.props.onChange(t,e)},a.handleChange=function(e){var t=a.props.disabled,n=e;if(a.isValid(n)&&!t){var r=y(void 0,a.state,a.props);n>r?n=r:n<1&&(n=1),"current"in a.props||a.setState({current:n,currentInputValue:n});var c=a.state.pageSize;return a.props.onChange(n,c),n}return a.state.current},a.prev=function(){a.hasPrev()&&a.handleChange(a.state.current-1)},a.next=function(){a.hasNext()&&a.handleChange(a.state.current+1)},a.jumpPrev=function(){a.handleChange(a.getJumpPrevPage())},a.jumpNext=function(){a.handleChange(a.getJumpNextPage())},a.hasPrev=function(){return a.state.current>1},a.hasNext=function(){return a.state.current<y(void 0,a.state,a.props)},a.runIfEnter=function(e,t){if("Enter"===e.key||13===e.charCode){for(var n=arguments.length,a=new Array(n>2?n-2:0),r=2;r<n;r++)a[r-2]=arguments[r];t.apply(void 0,a)}},a.runIfEnterPrev=function(e){a.runIfEnter(e,a.prev)},a.runIfEnterNext=function(e){a.runIfEnter(e,a.next)},a.runIfEnterJumpPrev=function(e){a.runIfEnter(e,a.jumpPrev)},a.runIfEnterJumpNext=function(e){a.runIfEnter(e,a.jumpNext)},a.handleGoTO=function(e){13!==e.keyCode&&"click"!==e.type||a.handleChange(a.state.currentInputValue)};var r=e.onChange!==v;"current"in e&&!r&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var c=e.defaultCurrent;"current"in e&&(c=e.current);var s=e.defaultPageSize;return"pageSize"in e&&(s=e.pageSize),c=Math.min(c,y(s,void 0,e)),a.state={current:c,currentInputValue:c,pageSize:s},a}return(0,s.Z)(n,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var a=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));a&&document.activeElement===a&&a.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=y(void 0,this.state,this.props),a=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?a:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,a=e.totalBoundaryShowSizeChanger;return void 0!==t?t:n>a}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,a=(0,t.itemRender)(e,"prev",this.getItemIcon(n,"prev page")),r=!this.hasPrev();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,a=(0,t.itemRender)(e,"next",this.getItemIcon(n,"next page")),r=!this.hasNext();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,l=t.className,i=t.style,s=t.disabled,u=t.hideOnSinglePage,p=t.total,m=t.locale,f=t.showQuickJumper,v=t.showLessItems,b=t.showTitle,x=t.showTotal,E=t.simple,C=t.itemRender,N=t.showPrevNextJumpers,Z=t.jumpPrevIcon,P=t.jumpNextIcon,S=t.selectComponentClass,O=t.selectPrefixCls,k=t.pageSizeOptions,I=this.state,w=I.current,z=I.pageSize,j=I.currentInputValue;if(!0===u&&p<=z)return null;var T=y(void 0,this.state,this.props),_=[],K=null,V=null,L=null,M=null,B=null,J=f&&f.goButton,R=v?1:2,D=w-1>0?w-1:0,G=w+1<T?w+1:T,U=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{});if(E)return J&&(B="boolean"==typeof J?o().createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},m.jump_to_confirm):o().createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},J),B=o().createElement("li",{title:b?"".concat(m.jump_to).concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},B)),o().createElement("ul",(0,r.Z)({className:d()(n,"".concat(n,"-simple"),(0,a.Z)({},"".concat(n,"-disabled"),s),l),style:i,ref:this.savePaginationNode},U),o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},this.renderPrev(D)),o().createElement("li",{title:b?"".concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},o().createElement("input",{type:"text",value:j,disabled:s,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:"3"}),o().createElement("span",{className:"".concat(n,"-slash")},"/"),T),o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(G)),B);if(T<=3+2*R){var A={locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:b,itemRender:C};T||_.push(o().createElement(h,(0,r.Z)({},A,{key:"noPager",page:T,className:"".concat(n,"-disabled")})));for(var q=1;q<=T;q+=1){var H=w===q;_.push(o().createElement(h,(0,r.Z)({},A,{key:q,page:q,active:H})))}}else{var Q=v?m.prev_3:m.prev_5,W=v?m.next_3:m.next_5;N&&(K=o().createElement("li",{title:b?Q:null,key:"prev",onClick:this.jumpPrev,tabIndex:"0",onKeyPress:this.runIfEnterJumpPrev,className:d()("".concat(n,"-jump-prev"),(0,a.Z)({},"".concat(n,"-jump-prev-custom-icon"),!!Z))},C(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(Z,"prev page"))),V=o().createElement("li",{title:b?W:null,key:"next",tabIndex:"0",onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:d()("".concat(n,"-jump-next"),(0,a.Z)({},"".concat(n,"-jump-next-custom-icon"),!!P))},C(this.getJumpNextPage(),"jump-next",this.getItemIcon(P,"next page")))),M=o().createElement(h,{locale:m,last:!0,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:T,page:T,active:!1,showTitle:b,itemRender:C}),L=o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:b,itemRender:C});var F=Math.max(1,w-R),Y=Math.min(w+R,T);w-1<=R&&(Y=1+2*R),T-w<=R&&(F=T-2*R);for(var X=F;X<=Y;X+=1){var $=w===X;_.push(o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:X,page:X,active:$,showTitle:b,itemRender:C}))}w-1>=2*R&&3!==w&&(_[0]=(0,c.cloneElement)(_[0],{className:"".concat(n,"-item-after-jump-prev")}),_.unshift(K)),T-w>=2*R&&w!==T-2&&(_[_.length-1]=(0,c.cloneElement)(_[_.length-1],{className:"".concat(n,"-item-before-jump-next")}),_.push(V)),1!==F&&_.unshift(L),Y!==T&&_.push(M)}var ee=null;x&&(ee=o().createElement("li",{className:"".concat(n,"-total-text")},x(p,[0===p?0:(w-1)*z+1,w*z>p?p:w*z])));var te=!this.hasPrev()||!T,ne=!this.hasNext()||!T;return o().createElement("ul",(0,r.Z)({className:d()(n,l,(0,a.Z)({},"".concat(n,"-disabled"),s)),style:i,unselectable:"unselectable",ref:this.savePaginationNode},U),ee,o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:te?null:0,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),te)),"aria-disabled":te},this.renderPrev(D)),_,o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:ne?null:0,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),ne)),"aria-disabled":ne},this.renderNext(G)),o().createElement(g,{disabled:s,locale:m,rootPrefixCls:n,selectComponentClass:S,selectPrefixCls:O,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:w,pageSize:z,pageSizeOptions:k,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:J}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var a=t.current,r=y(e.pageSize,t,e);a=a>r?r:a,"current"in e||(n.current=a,n.currentInputValue=a),n.pageSize=e.pageSize}return n}}]),n}(o().Component);b.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:v,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:v,locale:{items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"},style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var x=b,E=n(2191),C=n(8122),N=n(4632),Z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},P=n(3751),S=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:Z}))};S.displayName="DoubleLeftOutlined";var O=c.forwardRef(S),k={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},I=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:k}))};I.displayName="DoubleRightOutlined";var w=c.forwardRef(I),z=n(3828),j=function(e){return c.createElement(z.Z,(0,r.Z)({size:"small"},e))};j.Option=z.Z.Option;var T=j,_=n(7416),K=n(4178),V=n(5806),L=function(e){var t=e.prefixCls,n=e.selectPrefixCls,o=e.className,l=e.size,i=e.locale,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","selectPrefixCls","className","size","locale"]),u=(0,V.Z)().xs,p=c.useContext(K.E_),m=p.getPrefixCls,h=p.direction,f=m("pagination",t),g=function(e){var t=(0,r.Z)((0,r.Z)({},e),i),p="small"===l||!(!u||l||!s.responsive),g=m("select",n),v=d()((0,a.Z)({mini:p},"".concat(f,"-rtl"),"rtl"===h),o);return c.createElement(x,(0,r.Z)({},s,{prefixCls:f,selectPrefixCls:g},function(){var e=c.createElement("span",{className:"".concat(f,"-item-ellipsis")},"•••"),t=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(C.Z,null)),n=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(N.Z,null)),a=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(O,{className:"".concat(f,"-item-link-icon")}),e)),r=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(w,{className:"".concat(f,"-item-link-icon")}),e));if("rtl"===h){var o=[n,t];t=o[0],n=o[1];var l=[r,a];a=l[0],r=l[1]}return{prevIcon:t,nextIcon:n,jumpPrevIcon:a,jumpNextIcon:r}}(),{className:v,selectComponentClass:p?T:z.Z,locale:t}))};return c.createElement(_.Z,{componentName:"Pagination",defaultLocale:E.Z},g)}}}]);
|
2 |
-
//# sourceMappingURL=191.lite.js.map?ver=59d6c6957751262b22aa
|
|
|
|
public/dist/191.lite.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"file":"191.lite.js?ver=59d6c6957751262b22aa","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Grid.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Meta.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/Item.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pager.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Options.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/KeyCode.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pagination.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/MiniSelect.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/Pagination.js"],"sourcesContent":["// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\n\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\n\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\n\nvar Card = function Card(props) {\n var _extends2, _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var onTabChange = function onTabChange(key) {\n var _a;\n\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {\n padding: 24\n } : undefined;\n var block = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-block\")\n });\n var loadingBlock = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-content\"),\n style: loadingBlockStyle\n }, /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 22\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 8\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 15\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 6\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 18\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 13\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 9\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 4\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 3\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 16\n }, block)));\n var hasActiveTabKey = activeTabKey !== undefined;\n\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange\n }), tabList.map(function (item) {\n return /*#__PURE__*/React.createElement(Tabs.TabPane, {\n tab: item.tab,\n disabled: item.disabled,\n key: item.key\n });\n })) : null;\n\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n};\n\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\n\nexport default Meta;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ListContext } from './index';\nimport { Col } from '../grid';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nexport var Meta = function Meta(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n avatar = _a.avatar,\n title = _a.title,\n description = _a.description,\n others = __rest(_a, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-item-meta\"), className);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-content\")\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: \"\".concat(prefixCls, \"-item-meta-title\")\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-description\")\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-avatar\")\n }, avatar), (title || description) && content);\n};\n\nvar Item = function Item(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n actions = _a.actions,\n extra = _a.extra,\n className = _a.className,\n colStyle = _a.colStyle,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\", \"colStyle\"]);\n\n var _React$useContext2 = React.useContext(ListContext),\n grid = _React$useContext2.grid,\n itemLayout = _React$useContext2.itemLayout;\n\n var _React$useContext3 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext3.getPrefixCls;\n\n var isItemContainsTextNodeAndNotSingular = function isItemContainsTextNodeAndNotSingular() {\n var result;\n React.Children.forEach(children, function (element) {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && React.Children.count(children) > 1;\n };\n\n var isFlexMode = function isFlexMode() {\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n\n return !isItemContainsTextNodeAndNotSingular();\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var actionsContent = actions && actions.length > 0 && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-item-action\"),\n key: \"actions\"\n }, actions.map(function (action, i) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: \"\".concat(prefixCls, \"-item-action-\").concat(i)\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: \"\".concat(prefixCls, \"-item-action-split\")\n }))\n );\n }));\n var Element = grid ? 'div' : 'li';\n var itemChildren = /*#__PURE__*/React.createElement(Element, _extends({}, others, {\n // `li` element `onCopy` prop args is not same as `div`\n className: classNames(\"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-no-flex\"), !isFlexMode()), className)\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-main\"),\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-extra\"),\n key: \"extra\"\n }, extra)] : [children, actionsContent, cloneElement(extra, {\n key: 'extra'\n })]);\n return grid ? /*#__PURE__*/React.createElement(Col, {\n flex: 1,\n style: colStyle\n }, itemChildren) : itemChildren;\n};\n\nItem.Meta = Meta;\nexport default Item;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Spin from '../spin';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport { ConfigContext } from '../config-provider';\nimport Pagination from '../pagination';\nimport { Row } from '../grid';\nimport Item from './Item';\nexport var ListContext = /*#__PURE__*/React.createContext({});\nexport var ListConsumer = ListContext.Consumer;\n\nfunction List(_a) {\n var _classNames;\n\n var _a$pagination = _a.pagination,\n pagination = _a$pagination === void 0 ? false : _a$pagination,\n customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$split = _a.split,\n split = _a$split === void 0 ? true : _a$split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n _a$loading = _a.loading,\n loading = _a$loading === void 0 ? false : _a$loading,\n rowKey = _a.rowKey,\n renderItem = _a.renderItem,\n locale = _a.locale,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n\n var _React$useState = React.useState(paginationObj.defaultCurrent || 1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n paginationCurrent = _React$useState2[0],\n setPaginationCurrent = _React$useState2[1];\n\n var _React$useState3 = React.useState(paginationObj.defaultPageSize || 10),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n paginationSize = _React$useState4[0],\n setPaginationSize = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n\n var defaultPaginationProps = {\n current: 1,\n total: 0\n };\n var keys = {};\n\n var triggerPaginationEvent = function triggerPaginationEvent(eventName) {\n return function (page, pageSize) {\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n };\n\n var onPaginationChange = triggerPaginationEvent('onChange');\n var onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n\n var renderInnerItem = function renderInnerItem(item, index) {\n if (!renderItem) return null;\n var key;\n\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (typeof rowKey === 'string') {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n\n keys[index] = key;\n return renderItem(item, index);\n };\n\n var isSomethingAfterLastItem = function isSomethingAfterLastItem() {\n return !!(loadMore || pagination || footer);\n };\n\n var renderEmptyFunc = function renderEmptyFunc(prefixCls, renderEmptyHandler) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmptyHandler('List'));\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n\n var isLoading = loadingProp && loadingProp.spinning; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-split\"), split), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), isLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-grid\"), !!grid), _defineProperty(_classNames, \"\".concat(prefixCls, \"-something-after-last-item\"), isSomethingAfterLastItem()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n var paginationProps = _extends(_extends(_extends({}, defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n\n var paginationContent = pagination ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n }))) : null;\n\n var splitDataSource = _toConsumableArray(dataSource);\n\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n\n var screens = useBreakpoint();\n var currentBreakpoint = React.useMemo(function () {\n for (var i = 0; i < responsiveArray.length; i += 1) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n\n return undefined;\n }, [screens]);\n var colStyle = React.useMemo(function () {\n if (!grid) {\n return undefined;\n }\n\n var columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n\n if (columnCount) {\n return {\n width: \"\".concat(100 / columnCount, \"%\"),\n maxWidth: \"\".concat(100 / columnCount, \"%\")\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n var childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return renderInnerItem(item, index);\n });\n var childrenList = React.Children.map(items, function (child, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: keys[index],\n style: colStyle\n }, child);\n });\n childrenContent = grid ? /*#__PURE__*/React.createElement(Row, {\n gutter: grid.gutter\n }, childrenList) : /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, items);\n } else if (!children && !isLoading) {\n childrenContent = renderEmptyFunc(prefixCls, renderEmpty);\n }\n\n var paginationPosition = paginationProps.position || 'bottom';\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: {\n grid: grid,\n itemLayout: itemLayout\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(Spin, loadingProp, childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent));\n}\n\nList.Item = Item;\nexport default List;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Pager = function Pager(props) {\n var _classNames;\n\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _classNames));\n\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\n\nexport default Pager;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\n\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n\n var _super = _createSuper(Options);\n\n function Options() {\n var _this;\n\n _classCallCheck(this, Options);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n\n if (goButton || goInputText === '') {\n return;\n }\n\n _this.setState({\n goInputText: ''\n });\n\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n\n quickGo(_this.getValidValue());\n };\n\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n\n if (goInputText === '') {\n return;\n }\n\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n\n _this.props.quickGo(_this.getValidValue());\n }\n };\n\n return _this;\n }\n\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText; // eslint-disable-next-line no-restricted-globals\n\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a); // eslint-disable-next-line no-restricted-globals\n\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n var pageSizeOptions = this.getPageSizeOptions();\n\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n }\n }, options);\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur\n }), locale.page, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n\n return Options;\n}(React.Component);\n\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\n\nfunction noop() {}\n\nfunction isInteger(value) {\n return (// eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n );\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n var _super = _createSuper(Pagination);\n\n function Pagination(props) {\n var _this;\n\n _classCallCheck(this, Pagination);\n\n _this = _super.call(this, props);\n\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n\n return iconNode;\n };\n\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n\n _this.isValid = function (page) {\n return isInteger(page) && page !== _this.state.current;\n };\n\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n pageSize = _this$props.pageSize,\n total = _this$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n\n return showQuickJumper;\n };\n\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n\n var currentInputValue = _this.state.currentInputValue;\n\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current; // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n\n _this.props.onShowSizeChange(current, size);\n\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n\n _this.handleChange = function (p) {\n var disabled = _this.props.disabled;\n var page = p;\n\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: page,\n currentInputValue: page\n });\n }\n\n var pageSize = _this.state.pageSize;\n\n _this.props.onChange(page, pageSize);\n\n return page;\n }\n\n return _this.state.current;\n };\n\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(void 0, restParams);\n }\n };\n\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n\n var _current = props.defaultCurrent;\n\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n\n var _pageSize = props.defaultPageSize;\n\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n\n if (inputValue === '') {\n value = inputValue; // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props2 = this.props,\n showSizeChanger = _this$props2.showSizeChanger,\n total = _this$props2.total,\n totalBoundaryShowSizeChanger = _this$props2.totalBoundaryShowSizeChanger;\n\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props3 = this.props,\n prevIcon = _this$props3.prevIcon,\n itemRender = _this$props3.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props4 = this.props,\n nextIcon = _this$props4.nextIcon,\n itemRender = _this$props4.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n className = _this$props5.className,\n style = _this$props5.style,\n disabled = _this$props5.disabled,\n hideOnSinglePage = _this$props5.hideOnSinglePage,\n total = _this$props5.total,\n locale = _this$props5.locale,\n showQuickJumper = _this$props5.showQuickJumper,\n showLessItems = _this$props5.showLessItems,\n showTitle = _this$props5.showTitle,\n showTotal = _this$props5.showTotal,\n simple = _this$props5.simple,\n itemRender = _this$props5.itemRender,\n showPrevNextJumpers = _this$props5.showPrevNextJumpers,\n jumpPrevIcon = _this$props5.jumpPrevIcon,\n jumpNextIcon = _this$props5.jumpNextIcon,\n selectComponentClass = _this$props5.selectComponentClass,\n selectPrefixCls = _this$props5.selectPrefixCls,\n pageSizeOptions = _this$props5.pageSizeOptions;\n var _this$state = this.state,\n current = _this$state.current,\n pageSize = _this$state.pageSize,\n currentInputValue = _this$state.currentInputValue; // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n\n return prev;\n }, {});\n\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: allPages,\n className: \"\".concat(prefixCls, \"-disabled\")\n })));\n }\n\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (showTotal) {\n totalText = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n }\n\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n unselectable: \"unselectable\",\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n\n if ('current' in props) {\n newState.current = props.current;\n\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n\n newState.pageSize = props.pageSize;\n }\n\n return newState;\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\n\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\n\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\n\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({\n size: \"small\"\n }, props));\n};\n\nMiniSelect.Option = Select.Option;\nexport default MiniSelect;","import Pagination from './Pagination';\nexport default Pagination;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport classNames from 'classnames';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport MiniSelect from './MiniSelect';\nimport Select from '../select';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\n\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\"]);\n\n var _useBreakpoint = useBreakpoint(),\n xs = _useBreakpoint.xs;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis)); // change arrows direction in right-to-left direction\n\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n\n var renderPagination = function renderPagination(contextLocale) {\n var locale = _extends(_extends({}, contextLocale), customLocale);\n\n var isSmall = size === 'small' || !!(xs && !size && restProps.responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames(_defineProperty({\n mini: isSmall\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls\n }, getIconsProps(), {\n className: extendedClassName,\n selectComponentClass: isSmall ? MiniSelect : Select,\n locale: locale\n }));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, renderPagination);\n};\n\nexport default Pagination;"],"names":["props","ref","AntdIcon","Object","assign","icon","displayName","_a","prefixCls","className","_a$hoverable","hoverable","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","C","_ref","prefix","getPrefixCls","classString","concat","Card","_extends2","_classNames","head","_React$useContext","direction","size","SizeContext","customizePrefixCls","extra","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","title","loading","_props$bordered","bordered","customizeSize","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","_props$tabProps","tabProps","others","loadingBlockStyle","padding","undefined","block","loadingBlock","style","gutter","span","hasActiveTabKey","extraProps","tabs","onChange","key","onTabChange","map","item","tab","disabled","containGrid","coverDom","body","actionDom","action","index","width","getAction","divProps","omit","mergedSize","element","Grid","Meta","avatar","description","avatarDom","titleDom","descriptionDom","MetaDetail","_useState","useState","_useState2","screens","setScreens","useEffect","token","supportScreens","Item","result","colStyle","_React$useContext2","ListContext","grid","itemLayout","actionsContent","Element","itemChildren","flex","content","List","_a$pagination","pagination","_a$bordered","_a$split","split","loadMore","_a$dataSource","dataSource","header","footer","_a$loading","rowKey","renderItem","locale","rest","paginationObj","_React$useState","defaultCurrent","_React$useState2","paginationCurrent","setPaginationCurrent","_React$useState3","defaultPageSize","_React$useState4","paginationSize","setPaginationSize","renderEmpty","keys","triggerPaginationEvent","eventName","page","pageSize","onPaginationChange","onPaginationShowSizeChange","loadingProp","spinning","isLoading","sizeCls","paginationProps","current","total","largestPage","Math","ceil","paginationContent","onShowSizeChange","splitDataSource","splice","useBreakpoint","currentBreakpoint","breakpoint","columnCount","column","maxWidth","childrenContent","minHeight","items","renderInnerItem","childrenList","child","renderEmptyHandler","emptyText","renderEmptyFunc","paginationPosition","position","Provider","value","Consumer","rootPrefixCls","cls","active","showTitle","onClick","onKeyPress","tabIndex","itemRender","rel","Options","_React$Component","_super","_this","this","_len","arguments","args","Array","_key","apply","state","goInputText","buildOptionText","items_per_page","changeSize","Number","handleChange","setState","target","handleBlur","_this$props","goButton","quickGo","relatedTarget","getValidValue","go","keyCode","isNaN","_this$props2","pageSizeOptions","some","option","toString","sort","a","b","_this2","_this$props3","selectComponentClass","selectPrefixCls","Select","changeSelect","goInput","gotoButton","getPageSizeOptions","options","opt","Option","showSearch","optionLabelProp","dropdownMatchSelectWidth","getPopupContainer","triggerNode","parentNode","onKeyUp","jump_to_confirm","jump_to","onBlur","defaultProps","noop","calculatePage","floor","Pagination","getJumpPrevPage","max","showLessItems","getJumpNextPage","min","getItemIcon","label","iconNode","savePaginationNode","node","paginationNode","isValid","isFinite","shouldDisplayQuickJumper","showQuickJumper","handleKeyDown","preventDefault","handleKeyUp","currentInputValue","changePageSize","newCurrent","currentPage","prev","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","event","callback","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","console","warn","_current","_pageSize","prevProps","prevState","lastCurrentNode","querySelector","document","activeElement","blur","inputValue","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","isValidElement","cloneElement","nextPage","_this$props4","nextIcon","nextButton","_this$props5","hideOnSinglePage","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","_this$state","pagerList","firstPager","lastPager","pageBufferSize","dataOrAriaAttributeProps","reduce","substr","prev_page","renderPrev","onKeyDown","next_page","renderNext","pagerProps","push","prevItemTitle","prev_3","prev_5","nextItemTitle","next_3","next_5","last","left","right","_i","_active","unshift","totalText","prevDisabled","nextDisabled","unselectable","getShowSizeChanger","newState","MiniSelect","customizeSelectPrefixCls","customLocale","restProps","xs","renderPagination","contextLocale","isSmall","responsive","extendedClassName","mini","ellipsis","LeftOutlined","RightOutlined","_ref2","getIconsProps","LocaleReceiver","componentName","defaultLocale"],"sourceRoot":""}
|
|
public/dist/276.lite.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[276],{8276:function(e,t,n){n.d(t,{Z:function(){return Xe}});var o=n(3429),r=n(63),i=n(4741),a=n(7228),s=n(7363),u=n.n(s),l=n(2711),c=n(6762),p=n(3340),f=n(3841),d=n(5952),v=n(1894),h=function(e){var t,n,o=e.className,i=e.included,a=e.vertical,s=e.style,c=e.length,p=e.offset,f=e.reverse;c<0&&(f=!f,c=Math.abs(c),p=100-p);var d=a?(t={},(0,r.Z)(t,f?"top":"bottom","".concat(p,"%")),(0,r.Z)(t,f?"bottom":"top","auto"),(0,r.Z)(t,"height","".concat(c,"%")),t):(n={},(0,r.Z)(n,f?"right":"left","".concat(p,"%")),(0,r.Z)(n,f?"left":"right","auto"),(0,r.Z)(n,"width","".concat(c,"%")),n),v=(0,l.Z)((0,l.Z)({},s),d);return i?u().createElement("div",{className:o,style:v}):null},m=n(4115),g=n(7870),y=n(3071),b=n(8067),k=n(5905),C=n(2286),Z=n.n(C),x=function(e){var t=e.prefixCls,n=e.vertical,o=e.reverse,i=e.marks,a=e.dots,s=e.step,c=e.included,p=e.lowerBound,f=e.upperBound,d=e.max,h=e.min,m=e.dotStyle,g=e.activeDotStyle,y=d-h,b=function(e,t,n,o,r,i){(0,v.ZP)(!n||o>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var a=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&o)for(var s=r;s<=i;s+=o)-1===a.indexOf(s)&&a.push(s);return a}(0,i,a,s,h,d).map((function(e){var i,a="".concat(Math.abs(e-h)/y*100,"%"),s=!c&&e===f||c&&e<=f&&e>=p,d=n?(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},o?"top":"bottom",a)):(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},o?"right":"left",a));s&&(d=(0,l.Z)((0,l.Z)({},d),g));var v=Z()((i={},(0,r.Z)(i,"".concat(t,"-dot"),!0),(0,r.Z)(i,"".concat(t,"-dot-active"),s),(0,r.Z)(i,"".concat(t,"-dot-reverse"),o),i));return u().createElement("span",{className:v,style:d,key:e})}));return u().createElement("div",{className:"".concat(t,"-step")},b)},M=function(e){var t=e.className,n=e.vertical,i=e.reverse,a=e.marks,s=e.included,c=e.upperBound,p=e.lowerBound,f=e.max,d=e.min,v=e.onClickLabel,h=Object.keys(a),m=f-d,g=h.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var f,h=a[e],g="object"===(0,o.Z)(h)&&!u().isValidElement(h),y=g?h.label:h;if(!y&&0!==y)return null;var b=!s&&e===c||s&&e<=c&&e>=p,k=Z()((f={},(0,r.Z)(f,"".concat(t,"-text"),!0),(0,r.Z)(f,"".concat(t,"-text-active"),b),f)),C=(0,r.Z)({marginBottom:"-50%"},i?"top":"bottom","".concat((e-d)/m*100,"%")),x=(0,r.Z)({transform:"translateX(".concat(i?"50%":"-50%",")"),msTransform:"translateX(".concat(i?"50%":"-50%",")")},i?"right":"left","".concat((e-d)/m*100,"%")),M=n?C:x,T=g?(0,l.Z)((0,l.Z)({},M),h.style):M;return u().createElement("span",{className:k,style:T,key:e,onMouseDown:function(t){return v(t,e)},onTouchStart:function(t){return v(t,e)}},y)}));return u().createElement("div",{className:t},g)},T=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.apply(this,arguments)).state={clickFocused:!1},e.setHandleRef=function(t){e.handle=t},e.handleMouseUp=function(){document.activeElement===e.handle&&e.setClickFocus(!0)},e.handleMouseDown=function(t){t.preventDefault(),e.focus()},e.handleBlur=function(){e.setClickFocus(!1)},e.handleKeyDown=function(){e.setClickFocus(!1)},e}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.onMouseUpListener=(0,k.Z)(document,"mouseup",this.handleMouseUp)}},{key:"componentWillUnmount",value:function(){this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"setClickFocus",value:function(e){this.setState({clickFocused:e})}},{key:"clickFocus",value:function(){this.setClickFocus(!0),this.focus()}},{key:"focus",value:function(){this.handle.focus()}},{key:"blur",value:function(){this.handle.blur()}},{key:"render",value:function(){var e,t,n,o=this.props,a=o.prefixCls,s=o.vertical,c=o.reverse,p=o.offset,f=o.style,d=o.disabled,v=o.min,h=o.max,g=o.value,y=o.tabIndex,b=o.ariaLabel,k=o.ariaLabelledBy,C=o.ariaValueTextFormatter,x=(0,m.Z)(o,["prefixCls","vertical","reverse","offset","style","disabled","min","max","value","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter"]),M=Z()(this.props.className,(0,r.Z)({},"".concat(a,"-handle-click-focused"),this.state.clickFocused)),T=s?(e={},(0,r.Z)(e,c?"top":"bottom","".concat(p,"%")),(0,r.Z)(e,c?"bottom":"top","auto"),(0,r.Z)(e,"transform",c?null:"translateY(+50%)"),e):(t={},(0,r.Z)(t,c?"right":"left","".concat(p,"%")),(0,r.Z)(t,c?"left":"right","auto"),(0,r.Z)(t,"transform","translateX(".concat(c?"+":"-","50%)")),t),w=(0,l.Z)((0,l.Z)({},f),T),P=y||0;return(d||null===y)&&(P=null),C&&(n=C(g)),u().createElement("div",(0,i.Z)({ref:this.setHandleRef,tabIndex:P},x,{className:M,style:w,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,role:"slider","aria-valuemin":v,"aria-valuemax":h,"aria-valuenow":g,"aria-disabled":!!d,"aria-label":b,"aria-labelledby":k,"aria-valuetext":n}))}}]),n}(u().Component),w=n(1533),P=n.n(w),E=n(5065);function D(e,t){try{return Object.keys(t).some((function(n){return e.target===(0,w.findDOMNode)(t[n])}))}catch(e){return!1}}function S(e,t){var n=t.min,o=t.max;return e<n||e>o}function O(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function N(e,t){var n=t.marks,o=t.step,r=t.min,i=t.max,a=Object.keys(n).map(parseFloat);if(null!==o){var s=Math.pow(10,V(o)),u=Math.floor((i*s-r*s)/(o*s)),l=Math.min((e-r)/o,u),c=Math.round(l)*o+r;a.push(c)}var p=a.map((function(t){return Math.abs(e-t)}));return a[p.indexOf(Math.min.apply(Math,(0,g.Z)(p)))]}function V(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}function R(e,t){return e?t.clientY:t.pageX}function H(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function L(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function B(e,t){var n=t.max,o=t.min;return e<=o?o:e>=n?n:e}function A(e,t){var n=t.step,o=isFinite(N(e,t))?N(e,t):0;return null===n?o:parseFloat(o.toFixed(V(n)))}function F(e){e.stopPropagation(),e.preventDefault()}function I(e,t,n){var o="increase",r="decrease",i=o;switch(e.keyCode){case E.Z.UP:i=t&&n?r:o;break;case E.Z.RIGHT:i=!t&&n?r:o;break;case E.Z.DOWN:i=t&&n?o:r;break;case E.Z.LEFT:i=!t&&n?o:r;break;case E.Z.END:return function(e,t){return t.max};case E.Z.HOME:return function(e,t){return t.min};case E.Z.PAGE_UP:return function(e,t){return e+2*t.step};case E.Z.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var o={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},r=o[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),i=Object.keys(n.marks)[r];return n.step?o[e](t,n.step):Object.keys(n.marks).length&&n.marks[i]?n.marks[i]:t}(i,e,t)}}function U(){}function j(e){var t;return t=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).onDown=function(e,t){var n=t,r=o.props,i=r.draggableTrack,a=r.vertical,s=o.state.bounds,u=i&&o.positionGetValue&&o.positionGetValue(n)||[],l=D(e,o.handlesRefs);if(o.dragTrack=i&&s.length>=2&&!l&&!u.map((function(e,t){var n=!!t||e>=s[t];return t===u.length-1?e<=s[t]:n})).some((function(e){return!e})),o.dragTrack)o.dragOffset=n,o.startBounds=(0,g.Z)(s);else{if(l){var c=L(a,e.target);o.dragOffset=n-c,n=c}else o.dragOffset=0;o.onStart(n)}},o.onMouseDown=function(e){if(0===e.button){o.removeDocumentEvents();var t=R(o.props.vertical,e);o.onDown(e,t),o.addDocumentMouseEvents()}},o.onTouchStart=function(e){if(!O(e)){var t=H(o.props.vertical,e);o.onDown(e,t),o.addDocumentTouchEvents(),F(e)}},o.onFocus=function(e){var t=o.props,n=t.onFocus,r=t.vertical;if(D(e,o.handlesRefs)&&!o.dragTrack){var i=L(r,e.target);o.dragOffset=0,o.onStart(i),F(e),n&&n(e)}},o.onBlur=function(e){var t=o.props.onBlur;o.dragTrack||o.onEnd(),t&&t(e)},o.onMouseUp=function(){o.handlesRefs[o.prevMovedHandleIndex]&&o.handlesRefs[o.prevMovedHandleIndex].clickFocus()},o.onMouseMove=function(e){if(o.sliderRef){var t=R(o.props.vertical,e);o.onMove(e,t-o.dragOffset,o.dragTrack,o.startBounds)}else o.onEnd()},o.onTouchMove=function(e){if(!O(e)&&o.sliderRef){var t=H(o.props.vertical,e);o.onMove(e,t-o.dragOffset,o.dragTrack,o.startBounds)}else o.onEnd()},o.onKeyDown=function(e){o.sliderRef&&D(e,o.handlesRefs)&&o.onKeyboard(e)},o.onClickMarkLabel=function(e,t){e.stopPropagation(),o.onChange({value:t}),o.setState({value:t},(function(){return o.onEnd(!0)}))},o.saveSlider=function(e){o.sliderRef=e};var r=e.step,i=e.max,a=e.min,s=!isFinite(i-a)||(i-a)%r==0;return(0,v.ZP)(!r||Math.floor(r)!==r||s,"Slider[max] - Slider[min] (".concat(i-a,") should be a multiple of Slider[step] (").concat(r,")")),o.handlesRefs={},o}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){(0,y.Z)((0,b.Z)(n.prototype),"componentWillUnmount",this)&&(0,y.Z)((0,b.Z)(n.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,o=t.reverse,r=e.getBoundingClientRect();return n?o?r.bottom:r.top:window.pageXOffset+(o?r.right:r.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=(0,k.Z)(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=(0,k.Z)(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=(0,k.Z)(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=(0,k.Z)(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){var e;this.props.disabled||null===(e=this.handlesRefs[0])||void 0===e||e.focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){var n,o;null===(n=e.handlesRefs[t])||void 0===n||null===(o=n.blur)||void 0===o||o.call(n)}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,o=t.min,r=t.max,i=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-i)*(r-o)+o:i*(r-o)+o}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min,o=(e-n)/(t.max-n);return Math.max(0,100*o)}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,t=this.props,o=t.prefixCls,i=t.className,a=t.marks,s=t.dots,c=t.step,p=t.included,f=t.disabled,d=t.vertical,v=t.reverse,h=t.min,m=t.max,g=t.children,k=t.maximumTrackStyle,C=t.style,T=t.railStyle,w=t.dotStyle,P=t.activeDotStyle,E=(0,y.Z)((0,b.Z)(n.prototype),"render",this).call(this),D=E.tracks,S=E.handles,O=Z()(o,(e={},(0,r.Z)(e,"".concat(o,"-with-marks"),Object.keys(a).length),(0,r.Z)(e,"".concat(o,"-disabled"),f),(0,r.Z)(e,"".concat(o,"-vertical"),d),(0,r.Z)(e,i,i),e));return u().createElement("div",{ref:this.saveSlider,className:O,onTouchStart:f?U:this.onTouchStart,onMouseDown:f?U:this.onMouseDown,onMouseUp:f?U:this.onMouseUp,onKeyDown:f?U:this.onKeyDown,onFocus:f?U:this.onFocus,onBlur:f?U:this.onBlur,style:C},u().createElement("div",{className:"".concat(o,"-rail"),style:(0,l.Z)((0,l.Z)({},k),T)}),D,u().createElement(x,{prefixCls:o,vertical:d,reverse:v,marks:a,dots:s,step:c,included:p,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,dotStyle:w,activeDotStyle:P}),S,u().createElement(M,{className:"".concat(o,"-mark"),onClickLabel:f?U:this.onClickMarkLabel,vertical:d,marks:a,included:p,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,reverse:v}),g)}}]),n}(e),t.displayName="ComponentEnhancer(".concat(e.displayName,")"),t.defaultProps=(0,l.Z)((0,l.Z)({},e.defaultProps),{},{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=(0,m.Z)(e,["index"]);return delete n.dragging,null===n.value?null:u().createElement(T,(0,i.Z)({},n,{key:t}))},onBeforeChange:U,onChange:U,onAfterChange:U,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),t}var X=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).positionGetValue=function(e){return[]},o.onEnd=function(e){var t=o.state.dragging;o.removeDocumentEvents(),(t||e)&&o.props.onAfterChange(o.getValue()),o.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,i=void 0!==e.value?e.value:r;return o.state={value:o.trimAlignValue(i),dragging:!1},(0,v.ZP)(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),(0,v.ZP)(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),o}return(0,p.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,o=n.min,r=n.max,i=n.value,a=n.onChange;if("min"in this.props||"max"in this.props){var s=void 0!==i?i:t.value,u=this.trimAlignValue(s,this.props);u!==t.value&&(this.setState({value:u}),o===e.min&&r===e.max||!S(s,this.props)||a(u))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),o=e.value>this.props.max?(0,l.Z)((0,l.Z)({},e),{},{value:this.props.max}):e;n&&this.setState(o);var r=o.value;t.onChange(r)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e,o!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:o}))}},{key:"onMove",value:function(e,t){F(e);var n=this.state.value,o=this.calcValueByPos(t);o!==n&&this.onChange({value:o})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,o=I(e,t.vertical,n);if(o){F(e);var r=this.state.value,i=o(r,this.props),a=this.trimAlignValue(i);if(a===r)return;this.onChange({value:a}),this.props.onAfterChange(a),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){var e=this.props.startPoint||this.props.min;return this.state.value>e?e:this.state.value}},{key:"getUpperBound",value:function(){return this.state.value<this.props.startPoint?this.props.startPoint:this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=(0,l.Z)((0,l.Z)({},this.props),t),o=B(e,n);return A(o,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,o=t.vertical,r=t.included,i=t.disabled,a=t.minimumTrackStyle,s=t.trackStyle,c=t.handleStyle,p=t.tabIndex,f=t.ariaLabelForHandle,d=t.ariaLabelledByForHandle,v=t.ariaValueTextFormatterForHandle,m=t.min,g=t.max,y=t.startPoint,b=t.reverse,k=t.handle,C=this.state,Z=C.value,x=C.dragging,M=this.calcOffset(Z),T=k({className:"".concat(n,"-handle"),prefixCls:n,vertical:o,offset:M,value:Z,dragging:x,disabled:i,min:m,max:g,reverse:b,index:0,tabIndex:p,ariaLabel:f,ariaLabelledBy:d,ariaValueTextFormatter:v,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),w=void 0!==y?this.calcOffset(y):0,P=s[0]||s;return{tracks:u().createElement(h,{className:"".concat(n,"-track"),vertical:o,included:r,offset:w,reverse:b,length:M-w,style:(0,l.Z)((0,l.Z)({},a),P)}),handles:T}}}]),n}(u().Component),W=j(X),Y=function(e){var t=e.value,n=e.handle,o=e.bounds,r=e.props,i=r.allowCross,a=r.pushable,s=Number(a),u=B(t,r),l=u;return i||null==n||void 0===o||(n>0&&u<=o[n-1]+s&&(l=o[n-1]+s),n<o.length-1&&u>=o[n+1]-s&&(l=o[n+1]-s)),A(l,r)},z=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).positionGetValue=function(e){var t=o.getValue(),n=o.calcValueByPos(e),r=o.getClosestBound(n),i=o.getBoundNeedMoving(n,r);if(n===t[i])return null;var a=(0,g.Z)(t);return a[i]=n,a},o.onEnd=function(e){var t=o.state.handle;o.removeDocumentEvents(),t||(o.dragTrack=!1),(null!==t||e)&&o.props.onAfterChange(o.getValue()),o.setState({handle:null})};var r=e.count,i=e.min,a=e.max,s=Array.apply(void 0,(0,g.Z)(Array(r+1))).map((function(){return i})),u="defaultValue"in e?e.defaultValue:s,l=(void 0!==e.value?e.value:u).map((function(t,n){return Y({value:t,handle:n,props:e})})),p=l[0]===a?0:l.length-1;return o.state={handle:null,recent:p,bounds:l},o}return(0,p.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"getSliderLength",value:function(){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this,o=this.props,r=o.onChange,i=o.value,a=o.min,s=o.max;if(("min"in this.props||"max"in this.props)&&(a!==e.min||s!==e.max)){var u=i||t.bounds;u.some((function(e){return S(e,n.props)}))&&r(u.map((function(e){return B(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if("value"in t){var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}else this.setState(e);var o=(0,l.Z)((0,l.Z)({},this.state),e).bounds;t.onChange(o)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,o=this.getValue();t.onBeforeChange(o);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e;var i=this.getClosestBound(r);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(r,i),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),r!==o[this.prevMovedHandleIndex]){var a=(0,g.Z)(n.bounds);a[this.prevMovedHandleIndex]=r,this.onChange({bounds:a})}}},{key:"onMove",value:function(e,t,n,o){F(e);var r=this.state,i=this.props,a=i.max||100,s=i.min||0;if(n){var u=i.vertical?-t:t;u=i.reverse?-u:u;var l=a-Math.max.apply(Math,(0,g.Z)(o)),c=s-Math.min.apply(Math,(0,g.Z)(o)),p=Math.min(Math.max(u/(this.getSliderLength()/100),c),l),f=o.map((function(e){return Math.floor(Math.max(Math.min(e+p,a),s))}));r.bounds.map((function(e,t){return e===f[t]})).some((function(e){return!e}))&&this.onChange({bounds:f})}else{var d=this.calcValueByPos(t);d!==r.bounds[r.handle]&&this.moveTo(d)}}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,o=I(e,t.vertical,n);if(o){F(e);var r=this.state,i=this.props,a=r.bounds,s=r.handle,u=a[null===s?r.recent:s],l=o(u,i),c=Y({value:l,handle:s,bounds:r.bounds,props:i});if(c===u)return;this.moveTo(c,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,o=1;o<t.length-1;o+=1)e>=t[o]&&(n=o);return Math.abs(t[n+1]-e)<Math.abs(t[n]-e)&&(n+=1),n}},{key:"getBoundNeedMoving",value:function(e,t){var n=this.state,o=n.bounds,r=n.recent,i=t,a=o[t+1]===o[t];return a&&o[r]===o[t]&&(i=r),a&&e!==o[t+1]&&(i=e<o[t+1]?t:t+1),i}},{key:"getLowerBound",value:function(){return this.state.bounds[0]}},{key:"getUpperBound",value:function(){var e=this.state.bounds;return e[e.length-1]}},{key:"getPoints",value:function(){var e=this.props,t=e.marks,n=e.step,o=e.min,r=e.max,i=this.internalPointsCache;if(!i||i.marks!==t||i.step!==n){var a=(0,l.Z)({},t);if(null!==n)for(var s=o;s<=r;s+=n)a[s]=s;var u=Object.keys(a).map(parseFloat);u.sort((function(e,t){return e-t})),this.internalPointsCache={marks:t,step:n,points:u}}return this.internalPointsCache.points}},{key:"moveTo",value:function(e,t){var n=this,o=this.state,r=this.props,i=(0,g.Z)(o.bounds),a=null===o.handle?o.recent:o.handle;i[a]=e;var s=a;!1!==r.pushable?this.pushSurroundingHandles(i,s):r.allowCross&&(i.sort((function(e,t){return e-t})),s=i.indexOf(e)),this.onChange({recent:s,handle:s,bounds:i}),t&&(this.props.onAfterChange(i),this.setState({},(function(){n.handlesRefs[s].focus()})),this.onEnd())}},{key:"pushSurroundingHandles",value:function(e,t){var n=e[t],o=this.props.pushable,r=Number(o),i=0;if(e[t+1]-n<r&&(i=1),n-e[t-1]<r&&(i=-1),0!==i){var a=t+i,s=i*(e[a]-n);this.pushHandle(e,a,i,r-s)||(e[t]=e[a]-i*r)}}},{key:"pushHandle",value:function(e,t,n,o){for(var r=e[t],i=e[t];n*(i-r)<o;){if(!this.pushHandleOnePoint(e,t,n))return e[t]=r,!1;i=e[t]}return!0}},{key:"pushHandleOnePoint",value:function(e,t,n){var o=this.getPoints(),r=o.indexOf(e[t])+n;if(r>=o.length||r<0)return!1;var i=t+n,a=o[r],s=this.props.pushable,u=Number(s),l=n*(e[i]-a);return!!this.pushHandle(e,i,n,u-l)&&(e[t]=a,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,o=t.bounds;return Y({value:e,handle:n,bounds:o,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,o=t.bounds,i=this.props,a=i.prefixCls,s=i.vertical,l=i.included,c=i.disabled,p=i.min,f=i.max,d=i.reverse,v=i.handle,m=i.trackStyle,g=i.handleStyle,y=i.tabIndex,b=i.ariaLabelGroupForHandles,k=i.ariaLabelledByGroupForHandles,C=i.ariaValueTextFormatterGroupForHandles,x=o.map((function(t){return e.calcOffset(t)})),M="".concat(a,"-handle"),T=o.map((function(t,o){var i,u=y[o]||0;(c||null===y[o])&&(u=null);var l=n===o;return v({className:Z()((i={},(0,r.Z)(i,M,!0),(0,r.Z)(i,"".concat(M,"-").concat(o+1),!0),(0,r.Z)(i,"".concat(M,"-dragging"),l),i)),prefixCls:a,vertical:s,dragging:l,offset:x[o],value:t,index:o,tabIndex:u,min:p,max:f,reverse:d,disabled:c,style:g[o],ref:function(t){return e.saveHandle(o,t)},ariaLabel:b[o],ariaLabelledBy:k[o],ariaValueTextFormatter:C[o]})}));return{tracks:o.slice(0,-1).map((function(e,t){var n,o=t+1,i=Z()((n={},(0,r.Z)(n,"".concat(a,"-track"),!0),(0,r.Z)(n,"".concat(a,"-track-").concat(o),!0),n));return u().createElement(h,{className:i,vertical:s,reverse:d,included:l,offset:x[o-1],length:x[o]-x[o-1],style:m[t],key:o})})),handles:T}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(!("value"in e||"min"in e||"max"in e))return null;var n=e.value||t.bounds,o=n.map((function(n,o){return Y({value:n,handle:o,bounds:t.bounds,props:e})}));if(t.bounds.length===o.length){if(o.every((function(e,n){return e===t.bounds[n]})))return null}else o=n.map((function(t,n){return Y({value:t,handle:n,props:e})}));return(0,l.Z)((0,l.Z)({},t),{},{bounds:o})}}]),n}(u().Component);z.displayName="Range",z.defaultProps={count:1,allowCross:!0,pushable:!1,draggableTrack:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var G=j(z),K=n(5558),_=n(6871),Q=n(7384),J=n(8369),q=n(5643),$=n(505);function ee(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var te=n(4511),ne=n(9064);function oe(e){var t=e.prefixCls,n=e.motion,o=e.animation,r=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:r?{motionName:r}:null)}function re(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,r=e.mask,a=e.maskMotion,u=e.maskAnimation,c=e.maskTransitionName;if(!r)return null;var p={};return(a||c||u)&&(p=(0,l.Z)({motionAppear:!0},oe({motion:a,prefixCls:t,transitionName:c,animation:u}))),s.createElement(ne.Z,(0,i.Z)({},p,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return s.createElement("div",{style:{zIndex:o},className:Z()("".concat(t,"-mask"),n)})}))}var ie=n(4001),ae=n(3493),se=n(7410);function ue(e,t){var n=null,o=null,r=new se.Z((function(e){var r=(0,a.Z)(e,1)[0].target;if(document.documentElement.contains(r)){var i=r.getBoundingClientRect(),s=i.width,u=i.height,l=Math.floor(s),c=Math.floor(u);n===l&&o===c||Promise.resolve().then((function(){t({width:l,height:c})})),n=l,o=c}}));return e&&r.observe(e),function(){r.disconnect()}}function le(e){return"function"!=typeof e?null:e()}function ce(e){return"object"===(0,o.Z)(e)&&e?e:null}var pe=u().forwardRef((function(e,t){var n=e.children,o=e.disabled,r=e.target,i=e.align,s=e.onAlign,l=e.monitorWindowResize,c=e.monitorBufferTime,p=void 0===c?0:c,f=u().useRef({}),d=u().useRef(),v=u().Children.only(n),h=u().useRef({});h.current.disabled=o,h.current.target=r,h.current.onAlign=s;var m=function(e,t){var n=u().useRef(!1),o=u().useRef(null);function r(){window.clearTimeout(o.current)}return[function e(a){if(n.current&&!0!==a)r(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=h.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var r,a=d.current,s=le(n),u=ce(n);f.current.element=s,f.current.point=u;var l=document.activeElement;return s&&(0,ie.Z)(s)?r=(0,ae.E3)(a,s,i):u&&(r=(0,ae.zy)(a,u,i)),function(e,t){e!==document.activeElement&&(0,Q.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,a),o&&r&&o(a,r),!0}return!1}())return;n.current=!0,r(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,r()}]}(0,p),g=(0,a.Z)(m,2),y=g[0],b=g[1],C=u().useRef({cancel:function(){}}),Z=u().useRef({cancel:function(){}});u().useEffect((function(){var e,t,n=le(r),o=ce(r);d.current!==Z.current.element&&(Z.current.cancel(),Z.current.element=d.current,Z.current.cancel=ue(d.current,y)),f.current.element===n&&((e=f.current.point)===(t=o)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))||(y(),C.current.element!==n&&(C.current.cancel(),C.current.element=n,C.current.cancel=ue(n,y)))})),u().useEffect((function(){o?b():y()}),[o]);var x=u().useRef(null);return u().useEffect((function(){l?x.current||(x.current=(0,k.Z)(window,"resize",y)):x.current&&(x.current.remove(),x.current=null)}),[l]),u().useEffect((function(){return function(){C.current.cancel(),Z.current.cancel(),x.current&&x.current.remove(),b()}}),[]),u().useImperativeHandle(t,(function(){return{forceAlign:function(){return y(!0)}}})),u().isValidElement(v)&&(v=u().cloneElement(v,{ref:(0,q.sQ)(v.ref,d)})),v}));pe.displayName="Align";var fe=pe,de=n(5450),ve=n.n(de),he=n(7938),me=["measure","align",null,"motion"],ge=s.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,u=e.style,c=e.children,p=e.zIndex,f=e.stretch,d=e.destroyPopupOnHide,v=e.forceRender,h=e.align,m=e.point,g=e.getRootDomNode,y=e.getClassNameFromAlign,b=e.onAlign,k=e.onMouseEnter,C=e.onMouseLeave,x=e.onMouseDown,M=e.onTouchStart,T=(0,s.useRef)(),w=(0,s.useRef)(),P=(0,s.useState)(),E=(0,a.Z)(P,2),D=E[0],S=E[1],O=function(e){var t=s.useState({width:0,height:0}),n=(0,a.Z)(t,2),o=n[0],r=n[1];return[s.useMemo((function(){var t={};if(e){var n=o.width,r=o.height;-1!==e.indexOf("height")&&r?t.height=r:-1!==e.indexOf("minHeight")&&r&&(t.minHeight=r),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,o]),function(e){r({width:e.offsetWidth,height:e.offsetHeight})}]}(f),N=(0,a.Z)(O,2),V=N[0],R=N[1],H=function(e,t){var n=(0,s.useState)(null),o=(0,a.Z)(n,2),r=o[0],i=o[1],u=(0,s.useRef)(),l=(0,s.useRef)(!1);function c(e){l.current||i(e)}function p(){_.Z.cancel(u.current)}return(0,s.useEffect)((function(){c("measure")}),[e]),(0,s.useEffect)((function(){"measure"===r&&(f&&R(g())),r&&(u.current=(0,_.Z)((0,he.Z)(ve().mark((function e(){var t,n;return ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=me.indexOf(r),(n=me[t+1])&&-1!==t&&c(n);case 3:case"end":return e.stop()}}),e)})))))}),[r]),(0,s.useEffect)((function(){return function(){l.current=!0,p()}}),[]),[r,function(e){p(),u.current=(0,_.Z)((function(){c((function(e){switch(r){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),L=(0,a.Z)(H,2),B=L[0],A=L[1],F=(0,s.useRef)();function I(){var e;null===(e=T.current)||void 0===e||e.forceAlign()}function U(e,t){if("align"===B){var n=y(t);S(n),D!==n?Promise.resolve().then((function(){I()})):A((function(){var e;null===(e=F.current)||void 0===e||e.call(F)})),null==b||b(e,t)}}var j=(0,l.Z)({},oe(e));function X(){return new Promise((function(e){F.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=j[e];j[e]=function(e,n){return A(),null==t?void 0:t(e,n)}})),s.useEffect((function(){j.motionName||"motion"!==B||A()}),[j.motionName,B]),s.useImperativeHandle(t,(function(){return{forceAlign:I,getElement:function(){return w.current}}}));var W=(0,l.Z)((0,l.Z)((0,l.Z)({},V),{},{zIndex:p},u),{},{opacity:"motion"!==B&&"stable"!==B&&n?0:void 0,pointerEvents:"stable"===B?void 0:"none"}),Y=!0;!(null==h?void 0:h.points)||"align"!==B&&"stable"!==B||(Y=!1);var z=c;return s.Children.count(c)>1&&(z=s.createElement("div",{className:"".concat(o,"-content")},c)),s.createElement(ne.Z,(0,i.Z)({visible:n,ref:w,leavedClassName:"".concat(o,"-hidden")},j,{onAppearPrepare:X,onEnterPrepare:X,removeOnLeave:d,forceRender:v}),(function(e,t){var n=e.className,i=e.style,a=Z()(o,r,D,n);return s.createElement(fe,{target:m||g,key:"popup",ref:T,monitorWindowResize:!0,disabled:Y,align:h,onAlign:U},s.createElement("div",{ref:t,className:a,onMouseEnter:k,onMouseLeave:C,onMouseDownCapture:x,onTouchStartCapture:M,style:(0,l.Z)((0,l.Z)({},i),W)},z))}))}));ge.displayName="PopupInner";var ye=ge,be=s.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,r=e.zIndex,a=e.children,u=e.mobile,c=(u=void 0===u?{}:u).popupClassName,p=u.popupStyle,f=u.popupMotion,d=void 0===f?{}:f,v=u.popupRender,h=s.useRef();s.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return h.current}}}));var m=(0,l.Z)({zIndex:r},p),g=a;return s.Children.count(a)>1&&(g=s.createElement("div",{className:"".concat(n,"-content")},a)),v&&(g=v(g)),s.createElement(ne.Z,(0,i.Z)({visible:o,ref:h,removeOnLeave:!0},d),(function(e,t){var o=e.className,r=e.style,i=Z()(n,c,o);return s.createElement("div",{ref:t,className:i,style:(0,l.Z)((0,l.Z)({},r),m)},g)}))}));be.displayName="MobilePopupInner";var ke=be,Ce=s.forwardRef((function(e,t){var n=e.visible,o=e.mobile,r=(0,m.Z)(e,["visible","mobile"]),u=(0,s.useState)(n),c=(0,a.Z)(u,2),p=c[0],f=c[1],d=(0,s.useState)(!1),v=(0,a.Z)(d,2),h=v[0],g=v[1],y=(0,l.Z)((0,l.Z)({},r),{},{visible:p});(0,s.useEffect)((function(){f(n),n&&o&&g((0,te.Z)())}),[n,o]);var b=h?s.createElement(ke,(0,i.Z)({},y,{mobile:o,ref:t})):s.createElement(ye,(0,i.Z)({},y,{ref:t}));return s.createElement("div",null,s.createElement(re,y),b)}));Ce.displayName="Popup";var Ze=Ce,xe=s.createContext(null);function Me(){}var Te,we,Pe=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],Ee=(Te=$.Z,we=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o,r;return(0,c.Z)(this,n),(o=t.call(this,e)).popupRef=s.createRef(),o.triggerRef=s.createRef(),o.onMouseEnter=function(e){var t=o.props.mouseEnterDelay;o.fireEvents("onMouseEnter",e),o.delaySetPopupVisible(!0,t,t?null:e)},o.onMouseMove=function(e){o.fireEvents("onMouseMove",e),o.setPoint(e)},o.onMouseLeave=function(e){o.fireEvents("onMouseLeave",e),o.delaySetPopupVisible(!1,o.props.mouseLeaveDelay)},o.onPopupMouseEnter=function(){o.clearDelayTimer()},o.onPopupMouseLeave=function(e){var t;e.relatedTarget&&!e.relatedTarget.setTimeout&&(0,Q.Z)(null===(t=o.popupRef.current)||void 0===t?void 0:t.getElement(),e.relatedTarget)||o.delaySetPopupVisible(!1,o.props.mouseLeaveDelay)},o.onFocus=function(e){o.fireEvents("onFocus",e),o.clearDelayTimer(),o.isFocusToShow()&&(o.focusTime=Date.now(),o.delaySetPopupVisible(!0,o.props.focusDelay))},o.onMouseDown=function(e){o.fireEvents("onMouseDown",e),o.preClickTime=Date.now()},o.onTouchStart=function(e){o.fireEvents("onTouchStart",e),o.preTouchTime=Date.now()},o.onBlur=function(e){o.fireEvents("onBlur",e),o.clearDelayTimer(),o.isBlurToHide()&&o.delaySetPopupVisible(!1,o.props.blurDelay)},o.onContextMenu=function(e){e.preventDefault(),o.fireEvents("onContextMenu",e),o.setPopupVisible(!0,e)},o.onContextMenuClose=function(){o.isContextMenuToShow()&&o.close()},o.onClick=function(e){if(o.fireEvents("onClick",e),o.focusTime){var t;if(o.preClickTime&&o.preTouchTime?t=Math.min(o.preClickTime,o.preTouchTime):o.preClickTime?t=o.preClickTime:o.preTouchTime&&(t=o.preTouchTime),Math.abs(t-o.focusTime)<20)return;o.focusTime=0}o.preClickTime=0,o.preTouchTime=0,o.isClickToShow()&&(o.isClickToHide()||o.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var n=!o.state.popupVisible;(o.isClickToHide()&&!n||n&&o.isClickToShow())&&o.setPopupVisible(!o.state.popupVisible,e)},o.onPopupMouseDown=function(){var e;o.hasPopupMouseDown=!0,clearTimeout(o.mouseDownTimeout),o.mouseDownTimeout=window.setTimeout((function(){o.hasPopupMouseDown=!1}),0),o.context&&(e=o.context).onPopupMouseDown.apply(e,arguments)},o.onDocumentClick=function(e){if(!o.props.mask||o.props.maskClosable){var t=e.target,n=o.getRootDomNode(),r=o.getPopupDomNode();(0,Q.Z)(n,t)&&!o.isContextMenuOnly()||(0,Q.Z)(r,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,J.Z)(o.triggerRef.current);if(t)return t}catch(e){}return P().findDOMNode((0,K.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,r=n.popupPlacement,i=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return r&&i&&t.push(function(e,t,n,o){for(var r=n.points,i=Object.keys(e),a=0;a<i.length;a+=1){var s=i[a];if(ee(e[s].points,r,o))return"".concat(t,"-placement-").concat(s)}return""}(i,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,r=e.popupClassName,a=e.onPopupAlign,u=e.popupMotion,l=e.popupAnimation,c=e.popupTransitionName,p=e.popupStyle,f=e.mask,d=e.maskAnimation,v=e.maskTransitionName,h=e.maskMotion,m=e.zIndex,g=e.popup,y=e.stretch,b=e.alignPoint,k=e.mobile,C=e.forceRender,Z=o.state,x=Z.popupVisible,M=Z.point,T=o.getPopupAlign(),w={};return o.isMouseEnterToShow()&&(w.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(w.onMouseLeave=o.onPopupMouseLeave),w.onMouseDown=o.onPopupMouseDown,w.onTouchStart=o.onPopupMouseDown,s.createElement(Ze,(0,i.Z)({prefixCls:t,destroyPopupOnHide:n,visible:x,point:b&&M,className:r,align:T,onAlign:a,animation:l,getClassNameFromAlign:o.getPopupClassNameFromAlign},w,{stretch:y,getRootDomNode:o.getRootDomNode,style:p,mask:f,zIndex:m,transitionName:c,maskAnimation:d,maskTransitionName:v,maskMotion:h,ref:o.popupRef,motion:u,mobile:k,forceRender:C}),"function"==typeof g?g():g)},o.attachParent=function(e){_.Z.cancel(o.attachId);var t,n=o.props,r=n.getPopupContainer,i=n.getDocument,a=o.getRootDomNode();r?(a||0===r.length)&&(t=r(a)):t=i(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,_.Z)((function(){o.attachParent(e)}))},o.getContainer=function(){var e=(0,o.props.getDocument)(o.getRootDomNode()).createElement("div");return e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",o.attachParent(e),e},o.setPoint=function(e){o.props.alignPoint&&e&&o.setState({point:{pageX:e.pageX,pageY:e.pageY}})},o.handlePortalUpdate=function(){o.state.prevPopupVisible!==o.state.popupVisible&&o.props.afterPopupVisibleChange(o.state.popupVisible)},r="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:r,popupVisible:r},Pe.forEach((function(e){o["fire".concat(e)]=function(t){o.fireEvents(e,t)}})),o}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e,t=this.props;if(this.state.popupVisible)return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(e=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=(0,k.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,k.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,k.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,k.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),_.Z.cancel(this.attachId)}},{key:"getPopupDomNode",value:function(){var e;return(null===(e=this.popupRef.current)||void 0===e?void 0:e.getElement())||null}},{key:"getPopupAlign",value:function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,o=e.builtinPlacements;return t&&o?function(e,t,n){var o=e[t]||{};return(0,l.Z)((0,l.Z)({},o),n)}(o,t,n):n}},{key:"setPopupVisible",value:function(e,t){var n=this.props.alignPoint,o=this.state.popupVisible;this.clearDelayTimer(),o!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:o}),this.props.onPopupVisibleChange(e)),n&&t&&e&&this.setPoint(t)}},{key:"delaySetPopupVisible",value:function(e,t,n){var o=this,r=1e3*t;if(this.clearDelayTimer(),r){var i=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,i),o.clearDelayTimer()}),r)}else this.setPopupVisible(e,n)}},{key:"clearDelayTimer",value:function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)}},{key:"clearOutsideHandler",value:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)}},{key:"createTwoChains",value:function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire".concat(e)]:t[e]||n[e]}},{key:"isClickToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isContextMenuOnly",value:function(){var e=this.props.action;return"contextMenu"===e||1===e.length&&"contextMenu"===e[0]}},{key:"isContextMenuToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")}},{key:"isClickToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isMouseEnterToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")}},{key:"isMouseLeaveToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")}},{key:"isFocusToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")}},{key:"isBlurToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")}},{key:"forcePopupAlign",value:function(){var e;this.state.popupVisible&&(null===(e=this.popupRef.current)||void 0===e||e.forceAlign())}},{key:"fireEvents",value:function(e,t){var n=this.props.children.props[e];n&&n(t);var o=this.props[e];o&&o(t)}},{key:"close",value:function(){this.setPopupVisible(!1)}},{key:"render",value:function(){var e=this.state.popupVisible,t=this.props,n=t.children,o=t.forceRender,r=t.alignPoint,i=t.className,a=t.autoDestroy,u=s.Children.only(n),c={key:"trigger"};this.isContextMenuToShow()?c.onContextMenu=this.onContextMenu:c.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(c.onClick=this.onClick,c.onMouseDown=this.onMouseDown,c.onTouchStart=this.onTouchStart):(c.onClick=this.createTwoChains("onClick"),c.onMouseDown=this.createTwoChains("onMouseDown"),c.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(c.onMouseEnter=this.onMouseEnter,r&&(c.onMouseMove=this.onMouseMove)):c.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?c.onMouseLeave=this.onMouseLeave:c.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(c.onFocus=this.onFocus,c.onBlur=this.onBlur):(c.onFocus=this.createTwoChains("onFocus"),c.onBlur=this.createTwoChains("onBlur"));var p=Z()(u&&u.props&&u.props.className,i);p&&(c.className=p);var f=(0,l.Z)({},c);(0,q.Yr)(u)&&(f.ref=(0,q.sQ)(this.triggerRef,u.ref));var d,v=s.cloneElement(u,f);return(e||this.popupRef.current||o)&&(d=s.createElement(Te,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&a&&(d=null),s.createElement(xe.Provider,{value:{onPopupMouseDown:this.onPopupMouseDown}},v,d)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.popupVisible,o={};return void 0!==n&&t.popupVisible!==n&&(o.popupVisible=n,o.prevPopupVisible=t.popupVisible),o}}]),n}(s.Component),we.contextType=xe,we.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:Me,afterPopupVisibleChange:Me,onPopupAlign:Me,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},we),De={adjustX:1,adjustY:1},Se=[0,0],Oe={left:{points:["cr","cl"],overflow:De,offset:[-4,0],targetOffset:Se},right:{points:["cl","cr"],overflow:De,offset:[4,0],targetOffset:Se},top:{points:["bc","tc"],overflow:De,offset:[0,-4],targetOffset:Se},bottom:{points:["tc","bc"],overflow:De,offset:[0,4],targetOffset:Se},topLeft:{points:["bl","tl"],overflow:De,offset:[0,-4],targetOffset:Se},leftTop:{points:["tr","tl"],overflow:De,offset:[-4,0],targetOffset:Se},topRight:{points:["br","tr"],overflow:De,offset:[0,-4],targetOffset:Se},rightTop:{points:["tl","tr"],overflow:De,offset:[4,0],targetOffset:Se},bottomRight:{points:["tr","br"],overflow:De,offset:[0,4],targetOffset:Se},rightBottom:{points:["bl","br"],overflow:De,offset:[4,0],targetOffset:Se},bottomLeft:{points:["tl","bl"],overflow:De,offset:[0,4],targetOffset:Se},leftBottom:{points:["br","bl"],overflow:De,offset:[-4,0],targetOffset:Se}},Ne=function(e){var t=e.overlay,n=e.prefixCls,o=e.id,r=e.overlayInnerStyle;return s.createElement("div",{className:"".concat(n,"-inner"),id:o,role:"tooltip",style:r},"function"==typeof t?t():t)},Ve=function(e,t){var n=e.overlayClassName,r=e.trigger,a=void 0===r?["hover"]:r,u=e.mouseEnterDelay,c=void 0===u?0:u,p=e.mouseLeaveDelay,f=void 0===p?.1:p,d=e.overlayStyle,v=e.prefixCls,h=void 0===v?"rc-tooltip":v,g=e.children,y=e.onVisibleChange,b=e.afterVisibleChange,k=e.transitionName,C=e.animation,Z=e.motion,x=e.placement,M=void 0===x?"right":x,T=e.align,w=void 0===T?{}:T,P=e.destroyTooltipOnHide,E=void 0!==P&&P,D=e.defaultVisible,S=e.getTooltipContainer,O=e.overlayInnerStyle,N=(0,m.Z)(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle"]),V=(0,s.useRef)(null);(0,s.useImperativeHandle)(t,(function(){return V.current}));var R=(0,l.Z)({},N);"visible"in e&&(R.popupVisible=e.visible);var H=!1,L=!1;if("boolean"==typeof E)H=E;else if(E&&"object"===(0,o.Z)(E)){var B=E.keepParent;H=!0===B,L=!1===B}return s.createElement(Ee,(0,i.Z)({popupClassName:n,prefixCls:h,popup:function(){var t=e.arrowContent,n=void 0===t?null:t,o=e.overlay,r=e.id;return[s.createElement("div",{className:"".concat(h,"-arrow"),key:"arrow"},n),s.createElement(Ne,{key:"content",prefixCls:h,id:r,overlay:o,overlayInnerStyle:O})]},action:a,builtinPlacements:Oe,popupPlacement:M,ref:V,popupAlign:w,getPopupContainer:S,onPopupVisibleChange:y,afterPopupVisibleChange:b,popupTransitionName:k,popupAnimation:C,popupMotion:Z,defaultPopupVisible:D,destroyPopupOnHide:H,autoDestroy:L,mouseLeaveDelay:f,popupStyle:d,mouseEnterDelay:c},R),g)},Re=(0,s.forwardRef)(Ve),He=s.forwardRef((function(e,t){var n=e.visible,o=e.overlay,r=s.useRef(null),a=(0,q.sQ)(t,r),u=s.useRef(null);function l(){_.Z.cancel(u.current)}return s.useEffect((function(){return n?u.current=(0,_.Z)((function(){var e;null===(e=r.current)||void 0===e||e.forcePopupAlign()})):l(),l}),[n,o]),s.createElement(Re,(0,i.Z)({ref:a},e))})),Le=W;Le.Range=G,Le.Handle=T,Le.createSliderWithTooltip=function(e){var t;return t=function(t){(0,f.Z)(o,t);var n=(0,d.Z)(o);function o(){var e;return(0,c.Z)(this,o),(e=n.apply(this,arguments)).state={visibles:{}},e.handleTooltipVisibleChange=function(t,n){e.setState((function(e){return{visibles:(0,l.Z)((0,l.Z)({},e.visibles),{},(0,r.Z)({},t,n))}}))},e.handleWithTooltip=function(t){var n,o=t.value,r=t.dragging,a=t.index,s=t.disabled,c=(0,m.Z)(t,["value","dragging","index","disabled"]),p=e.props,f=p.tipFormatter,d=p.tipProps,v=p.handleStyle,h=p.getTooltipContainer,g=d.prefixCls,y=void 0===g?"rc-slider-tooltip":g,b=d.overlay,k=void 0===b?f(o):b,C=d.placement,Z=void 0===C?"top":C,x=d.visible,M=void 0!==x&&x,w=(0,m.Z)(d,["prefixCls","overlay","placement","visible"]);return n=Array.isArray(v)?v[a]||v[0]:v,u().createElement(He,(0,i.Z)({},w,{getTooltipContainer:h,prefixCls:y,overlay:k,placement:Z,visible:!s&&(e.state.visibles[a]||r)||M,key:a}),u().createElement(T,(0,i.Z)({},c,{style:(0,l.Z)({},n),value:o,onMouseEnter:function(){return e.handleTooltipVisibleChange(a,!0)},onMouseLeave:function(){return e.handleTooltipVisibleChange(a,!1)}})))},e}return(0,p.Z)(o,[{key:"render",value:function(){return u().createElement(e,(0,i.Z)({},this.props,{handle:this.handleWithTooltip}))}}]),o}(u().Component),t.defaultProps={tipFormatter:function(e){return e},handleStyle:[{}],tipProps:{},getTooltipContainer:function(e){return e.parentNode}},t};var Be=Le,Ae=n(1857),Fe=s.forwardRef((function(e,t){var n=e.visible,o=(0,s.useRef)(null),r=(0,s.useRef)(null);function a(){_.Z.cancel(r.current),r.current=null}return s.useEffect((function(){return n?r.current=(0,_.Z)((function(){var e;null===(e=o.current)||void 0===e||e.forcePopupAlign(),r.current=null})):a(),a}),[n,e.title]),s.createElement(Ae.Z,(0,i.Z)({ref:(0,q.sQ)(o,t)},e))})),Ie=n(4178),Ue=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n},je=s.forwardRef((function(e,t){var n,u=s.useContext(Ie.E_),l=u.getPrefixCls,c=u.direction,p=u.getPopupContainer,f=s.useState({}),d=(0,a.Z)(f,2),v=d[0],h=d[1],m=function(e,t){h((function(n){return(0,i.Z)((0,i.Z)({},n),(0,r.Z)({},e,t))}))},g=function(e,t){return e||(t?"rtl"===c?"left":"right":"top")},y=function(t){var n=t.tooltipPrefixCls,o=t.prefixCls,r=t.info,a=r.value,u=r.dragging,c=r.index,f=Ue(r,["value","dragging","index"]),d=e.tipFormatter,h=e.tooltipVisible,y=e.tooltipPlacement,b=e.getTooltipPopupContainer,k=e.vertical,C=!!d&&(v[c]||u),Z=h||void 0===h&&C,x=l();return s.createElement(Fe,{prefixCls:n,title:d?d(a):"",visible:Z,placement:g(y,k),transitionName:"".concat(x,"-zoom-down"),key:c,overlayClassName:"".concat(o,"-tooltip"),getPopupContainer:b||p},s.createElement(T,(0,i.Z)({},f,{value:a,onMouseEnter:function(){return m(c,!0)},onMouseLeave:function(){return m(c,!1)}})))},b=e.prefixCls,k=e.tooltipPrefixCls,C=e.range,x=e.className,M=Ue(e,["prefixCls","tooltipPrefixCls","range","className"]),w=l("slider",b),P=l("tooltip",k),E=Z()(x,(0,r.Z)({},"".concat(w,"-rtl"),"rtl"===c));return"rtl"!==c||M.vertical||(M.reverse=!M.reverse),"object"===(0,o.Z)(C)&&(n=C.draggableTrack),C?s.createElement(G,(0,i.Z)({},M,{step:M.step,draggableTrack:n,className:E,ref:t,handle:function(e){return y({tooltipPrefixCls:P,prefixCls:w,info:e})},prefixCls:w})):s.createElement(Be,(0,i.Z)({},M,{step:M.step,className:E,ref:t,handle:function(e){return y({tooltipPrefixCls:P,prefixCls:w,info:e})},prefixCls:w}))}));je.displayName="Slider",je.defaultProps={tipFormatter:function(e){return"number"==typeof e?e.toString():""}};var Xe=je}}]);
|
2 |
-
//# sourceMappingURL=276.lite.js.map?ver=af4e20fa8568e0fd55dd
|
|
|
|
public/dist/276.lite.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"file":"276.lite.js?ver=af4e20fa8568e0fd55dd","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Track.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Steps.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Marks.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Handle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/utils.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/createSlider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Slider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Range.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/Mask.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/util.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/Align.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/hooks/useBuffer.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/context.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/placements.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/Content.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/Tooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/SliderTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/createSliderWithTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/slider/SliderTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/slider/index.js"],"sourcesContent":["import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n style = props.style;\n var length = props.length,\n offset = props.offset,\n reverse = props.reverse;\n\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"height\", \"\".concat(length, \"%\")), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"width\", \"\".concat(length, \"%\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positonStyle);\n\n return included ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: elStyle\n }) : null;\n};\n\nexport default Track;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = \"\".concat(Math.abs(point - min) / range * 100, \"%\");\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'right' : 'left', offset));\n\n if (isActived) {\n style = _objectSpread(_objectSpread({}, style), activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-active\"), isActived), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-reverse\"), reverse), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: pointClassName,\n style: style,\n key: point\n });\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, elements);\n};\n\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n var marksKeys = Object.keys(marks);\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = _typeof(markPoint) === 'object' && ! /*#__PURE__*/React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-text\"), true), _defineProperty(_classNames, \"\".concat(className, \"-text-active\"), isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', \"\".concat((point - min) / range * 100, \"%\"));\n\n var leftStyle = _defineProperty({\n transform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\"),\n msTransform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\")\n }, reverse ? 'right' : 'left', \"\".concat((point - min) / range * 100, \"%\"));\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _objectSpread(_objectSpread({}, style), markPoint.style) : style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n }, markLabel);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, elements);\n};\n\nexport default Marks;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\n\nvar Handle = /*#__PURE__*/function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n var _super = _createSuper(Handle);\n\n function Handle() {\n var _this;\n\n _classCallCheck(this, Handle);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n clickFocused: false\n };\n\n _this.setHandleRef = function (node) {\n _this.handle = node;\n };\n\n _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n };\n\n _this.handleMouseDown = function (e) {\n // avoid selecting text during drag\n // https://github.com/ant-design/ant-design/issues/25010\n e.preventDefault(); // fix https://github.com/ant-design/ant-design/issues/15324\n\n _this.focus();\n };\n\n _this.handleBlur = function () {\n _this.setClickFocus(false);\n };\n\n _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n };\n\n return _this;\n }\n\n _createClass(Handle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: \"setClickFocus\",\n value: function setClickFocus(focused) {\n this.setState({\n clickFocused: focused\n });\n }\n }, {\n key: \"clickFocus\",\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _ref, _ref2;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n vertical = _this$props.vertical,\n reverse = _this$props.reverse,\n offset = _this$props.offset,\n style = _this$props.style,\n disabled = _this$props.disabled,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n tabIndex = _this$props.tabIndex,\n ariaLabel = _this$props.ariaLabel,\n ariaLabelledBy = _this$props.ariaLabelledBy,\n ariaValueTextFormatter = _this$props.ariaValueTextFormatter,\n restProps = _objectWithoutProperties(_this$props, [\"prefixCls\", \"vertical\", \"reverse\", \"offset\", \"style\", \"disabled\", \"min\", \"max\", \"value\", \"tabIndex\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaValueTextFormatter\"]);\n\n var className = classNames(this.props.className, _defineProperty({}, \"\".concat(prefixCls, \"-handle-click-focused\"), this.state.clickFocused));\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"transform\", reverse ? null : \"translateY(+50%)\"), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"transform\", \"translateX(\".concat(reverse ? '+' : '-', \"50%)\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positionStyle);\n\n var mergedTabIndex = tabIndex || 0;\n\n if (disabled || tabIndex === null) {\n mergedTabIndex = null;\n }\n\n var ariaValueText;\n\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setHandleRef,\n tabIndex: mergedTabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown // aria attribute\n ,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": !!disabled,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport { Handle as default };","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { findDOMNode } from 'react-dom';\nimport keyCode from \"rc-util/es/KeyCode\";\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n var points = Object.keys(marks).map(parseFloat);\n\n if (step !== null) {\n var baseNum = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n\n if (val >= max) {\n return max;\n }\n\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n }\n\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _get from \"@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n var _super = _createSuper(ComponentEnhancer);\n\n function ComponentEnhancer(props) {\n var _this;\n\n _classCallCheck(this, ComponentEnhancer);\n\n _this = _super.call(this, props);\n\n _this.onDown = function (e, position) {\n var p = position;\n var _this$props = _this.props,\n draggableTrack = _this$props.draggableTrack,\n isVertical = _this$props.vertical;\n var bounds = _this.state.bounds;\n var value = draggableTrack && _this.positionGetValue ? _this.positionGetValue(p) || [] : [];\n var inPoint = utils.isEventFromHandle(e, _this.handlesRefs);\n _this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map(function (n, i) {\n var v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(function (c) {\n return !c;\n });\n\n if (_this.dragTrack) {\n _this.dragOffset = p;\n _this.startBounds = _toConsumableArray(bounds);\n } else {\n if (!inPoint) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n\n _this.onStart(p);\n }\n };\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n _this.removeDocumentEvents();\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentTouchEvents();\n\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props2 = _this.props,\n onFocus = _this$props2.onFocus,\n vertical = _this$props2.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs) && !_this.dragTrack) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n\n _this.onStart(handlePosition);\n\n utils.pauseEvent(e);\n\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n if (!_this.dragTrack) {\n _this.onEnd();\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getMousePosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n\n _this.onChange({\n value: value\n }); // eslint-disable-next-line react/no-unused-state\n\n\n _this.setState({\n value: value\n }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, \"Slider[max] - Slider[min] (\".concat(max - min, \") should be a multiple of Slider[step] (\").concat(step, \")\"));\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n var _this$props3 = this.props,\n autoFocus = _this$props3.autoFocus,\n disabled = _this$props3.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (_get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this)) _get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: \"getSliderStart\",\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n reverse = _this$props4.reverse;\n var rect = slider.getBoundingClientRect();\n\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n var slider = this.sliderRef;\n\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: \"addDocumentTouchEvents\",\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: \"addDocumentMouseEvents\",\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {\n /* eslint-disable @typescript-eslint/no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var _this$handlesRefs$;\n\n if (this.props.disabled) {\n return;\n }\n\n (_this$handlesRefs$ = this.handlesRefs[0]) === null || _this$handlesRefs$ === void 0 ? void 0 : _this$handlesRefs$.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n Object.keys(this.handlesRefs).forEach(function (key) {\n var _this2$handlesRefs$ke, _this2$handlesRefs$ke2;\n\n (_this2$handlesRefs$ke = _this2.handlesRefs[key]) === null || _this2$handlesRefs$ke === void 0 ? void 0 : (_this2$handlesRefs$ke2 = _this2$handlesRefs$ke.blur) === null || _this2$handlesRefs$ke2 === void 0 ? void 0 : _this2$handlesRefs$ke2.call(_this2$handlesRefs$ke);\n });\n }\n }, {\n key: \"calcValue\",\n value: function calcValue(offset) {\n var _this$props5 = this.props,\n vertical = _this$props5.vertical,\n min = _this$props5.min,\n max = _this$props5.max;\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: \"calcValueByPos\",\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n var _this$props6 = this.props,\n min = _this$props6.min,\n max = _this$props6.max;\n var ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props7 = this.props,\n prefixCls = _this$props7.prefixCls,\n className = _this$props7.className,\n marks = _this$props7.marks,\n dots = _this$props7.dots,\n step = _this$props7.step,\n included = _this$props7.included,\n disabled = _this$props7.disabled,\n vertical = _this$props7.vertical,\n reverse = _this$props7.reverse,\n min = _this$props7.min,\n max = _this$props7.max,\n children = _this$props7.children,\n maximumTrackStyle = _this$props7.maximumTrackStyle,\n style = _this$props7.style,\n railStyle = _this$props7.railStyle,\n dotStyle = _this$props7.dotStyle,\n activeDotStyle = _this$props7.activeDotStyle;\n\n var _get$call = _get(_getPrototypeOf(ComponentEnhancer.prototype), \"render\", this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), Object.keys(marks).length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, className, className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: _objectSpread(_objectSpread({}, maximumTrackStyle), railStyle)\n }), tracks, /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }), handles, /*#__PURE__*/React.createElement(Marks, {\n className: \"\".concat(prefixCls, \"-mark\"),\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }), children);\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _a.displayName = \"ComponentEnhancer(\".concat(Component.displayName, \")\"), _a.defaultProps = _objectSpread(_objectSpread({}, Component.defaultProps), {}, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(props) {\n var index = props.index,\n restProps = _objectWithoutProperties(props, [\"index\"]);\n\n delete restProps.dragging;\n\n if (restProps.value === null) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n key: index\n }));\n },\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _a;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n /* eslint-enable */\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n return [];\n };\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n dragging: false\n });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Slider, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props = this.props,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n onChange = _this$props.onChange;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n\n if (nextValue === prevState.value) {\n return;\n } // eslint-disable-next-line\n\n\n this.setState({\n value: nextValue\n });\n\n if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _objectSpread(_objectSpread({}, state), {}, {\n value: this.props.max\n }) : state;\n\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n this.setState({\n dragging: true\n });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === prevValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n var minPoint = this.props.startPoint || this.props.min;\n return this.state.value > minPoint ? minPoint : this.state.value;\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n if (this.state.value < this.props.startPoint) {\n return this.props.startPoint;\n }\n\n return this.state.value;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _objectSpread(_objectSpread({}, this.props), nextProps);\n\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n vertical = _this$props3.vertical,\n included = _this$props3.included,\n disabled = _this$props3.disabled,\n minimumTrackStyle = _this$props3.minimumTrackStyle,\n trackStyle = _this$props3.trackStyle,\n handleStyle = _this$props3.handleStyle,\n tabIndex = _this$props3.tabIndex,\n ariaLabelForHandle = _this$props3.ariaLabelForHandle,\n ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,\n min = _this$props3.min,\n max = _this$props3.max,\n startPoint = _this$props3.startPoint,\n reverse = _this$props3.reverse,\n handleGenerator = _this$props3.handle;\n var _this$state = this.state,\n value = _this$state.value,\n dragging = _this$state.dragging;\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: \"\".concat(prefixCls, \"-handle\"),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n var mergedTrackStyle = trackStyle[0] || trackStyle;\n var track = /*#__PURE__*/React.createElement(Track, {\n className: \"\".concat(prefixCls, \"-track\"),\n vertical: vertical,\n included: included,\n offset: trackOffset,\n reverse: reverse,\n length: offset - trackOffset,\n style: _objectSpread(_objectSpread({}, minimumTrackStyle), mergedTrackStyle)\n });\n return {\n tracks: track,\n handles: handle\n };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default createSlider(Slider);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n _inherits(Range, _React$Component);\n\n var _super = _createSuper(Range);\n\n function Range(props) {\n var _this;\n\n _classCallCheck(this, Range);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n var bounds = _this.getValue();\n\n var value = _this.calcValueByPos(position);\n\n var closestBound = _this.getClosestBound(value);\n\n var index = _this.getBoundNeedMoving(value, closestBound);\n\n var prevValue = bounds[index];\n if (value === prevValue) return null;\n\n var nextBounds = _toConsumableArray(bounds);\n\n nextBounds[index] = value;\n return nextBounds;\n };\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (!handle) {\n _this.dragTrack = false;\n }\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Range, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n value = _this$props.value,\n min = _this$props.min,\n max = _this$props.max;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n if (min === prevProps.min && max === prevProps.max) {\n return;\n }\n\n var currentValue = value || prevState.bounds;\n\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _objectSpread(_objectSpread({}, this.state), state);\n\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n var props = this.props,\n state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var maxValue = props.max || 100;\n var minValue = props.min || 0;\n\n if (dragTrack) {\n var pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n var max = maxValue - Math.max.apply(Math, _toConsumableArray(startBounds));\n var min = minValue - Math.min.apply(Math, _toConsumableArray(startBounds));\n var ratio = Math.min(Math.max(pos / (this.getSliderLength() / 100), min), max);\n var nextBounds = startBounds.map(function (v) {\n return Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue));\n });\n\n if (state.bounds.map(function (c, i) {\n return c === nextBounds[i];\n }).some(function (c) {\n return !c;\n })) {\n this.onChange({\n bounds: nextBounds\n });\n }\n\n return;\n }\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n this.moveTo(value);\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: \"getClosestBound\",\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n var closestBound = 0;\n\n for (var i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n\n return closestBound;\n }\n }, {\n key: \"getBoundNeedMoving\",\n value: function getBoundNeedMoving(value, closestBound) {\n var _this$state = this.state,\n bounds = _this$state.bounds,\n recent = _this$state.recent;\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n\n return boundNeedMoving;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n return bounds[bounds.length - 1];\n }\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var _this$props3 = this.props,\n marks = _this$props3.marks,\n step = _this$props3.step,\n min = _this$props3.min,\n max = _this$props3.max;\n var cache = this.internalPointsCache;\n\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _objectSpread({}, marks);\n\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this.internalPointsCache = {\n marks: marks,\n step: step,\n points: points\n };\n }\n\n return this.internalPointsCache.points;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: \"pushSurroundingHandles\",\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var direction = 0;\n\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: \"pushHandle\",\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = originalValue;\n return false;\n }\n\n currentValue = bounds[handle];\n } // the handle was pushed enough to create the needed `amount` gap\n\n\n return true;\n }\n }, {\n key: \"pushHandleOnePoint\",\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n } // push the handle\n // eslint-disable-next-line no-param-reassign\n\n\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(value) {\n var _this$state2 = this.state,\n handle = _this$state2.handle,\n bounds = _this$state2.bounds;\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$state3 = this.state,\n handle = _this$state3.handle,\n bounds = _this$state3.bounds;\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n vertical = _this$props4.vertical,\n included = _this$props4.included,\n disabled = _this$props4.disabled,\n min = _this$props4.min,\n max = _this$props4.max,\n reverse = _this$props4.reverse,\n handleGenerator = _this$props4.handle,\n trackStyle = _this$props4.trackStyle,\n handleStyle = _this$props4.handleStyle,\n tabIndex = _this$props4.tabIndex,\n ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n var handleClassName = \"\".concat(prefixCls, \"-handle\");\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var mergedTabIndex = tabIndex[i] || 0;\n\n if (disabled || tabIndex[i] === null) {\n mergedTabIndex = null;\n }\n\n var dragging = handle === i;\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n dragging: dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabIndex: mergedTabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n },\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n return /*#__PURE__*/React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n return {\n tracks: tracks,\n handles: handles\n };\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (!('value' in props || 'min' in props || 'max' in props)) {\n return null;\n }\n\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n\n if (state.bounds.length === nextBounds.length) {\n if (nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n } else {\n nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n bounds: nextBounds\n });\n }\n }]);\n\n return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n draggableTrack: false,\n tabIndex: [],\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","// export this package's api\nimport Align from './Align';\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex\n }, style), {}, {\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from 'rc-tooltip';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n overlay = props.overlay;\n var innerRef = React.useRef(null);\n var tooltipRef = composeRef(ref, innerRef);\n var rafRef = React.useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _innerRef$current;\n\n (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.forcePopupAlign();\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, overlay]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: tooltipRef\n }, props));\n});\nexport default SliderTooltip;","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\nimport SliderTooltip from './common/SliderTooltip';\nvar InternalSlider = Slider;\nInternalSlider.Range = Range;\nInternalSlider.Handle = Handle;\nInternalSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default InternalSlider;\nexport { Range, Handle, createSliderWithTooltip, SliderTooltip };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport Tooltip from './common/SliderTooltip';\nimport Handle from './Handle';\nexport default function createSliderWithTooltip(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n var _super = _createSuper(ComponentWrapper);\n\n function ComponentWrapper() {\n var _this;\n\n _classCallCheck(this, ComponentWrapper);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visibles: {}\n };\n\n _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _objectSpread(_objectSpread({}, prevState.visibles), {}, _defineProperty({}, index, visible))\n };\n });\n };\n\n _this.handleWithTooltip = function (_ref) {\n var value = _ref.value,\n dragging = _ref.dragging,\n index = _ref.index,\n disabled = _ref.disabled,\n restProps = _objectWithoutProperties(_ref, [\"value\", \"dragging\", \"index\", \"disabled\"]);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle,\n getTooltipContainer = _this$props.getTooltipContainer;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === void 0 ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === void 0 ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === void 0 ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === void 0 ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, [\"prefixCls\", \"overlay\", \"placement\", \"visible\"]);\n\n var handleStyleWithIndex;\n\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps, {\n getTooltipContainer: getTooltipContainer,\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }), /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n style: _objectSpread({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n })));\n };\n\n return _this;\n }\n\n _createClass(ComponentWrapper, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n handle: this.handleWithTooltip\n }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _a.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return value;\n },\n handleStyle: [{}],\n tipProps: {},\n getTooltipContainer: function getTooltipContainer(node) {\n return node.parentNode;\n }\n }, _a;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nimport Tooltip from '../tooltip';\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible;\n var innerRef = useRef(null);\n var rafRef = useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n rafRef.current = null;\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _a;\n\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.forcePopupAlign();\n rafRef.current = null;\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, props.title]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: composeRef(innerRef, ref)\n }, props));\n});\nexport default SliderTooltip;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcSlider, { Range as RcRange, Handle as RcHandle } from 'rc-slider';\nimport classNames from 'classnames';\nimport SliderTooltip from './SliderTooltip';\nimport { ConfigContext } from '../config-provider';\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n getPopupContainer = _React$useContext.getPopupContainer;\n\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visibles = _React$useState2[0],\n setVisibles = _React$useState2[1];\n\n var toggleTooltipVisible = function toggleTooltipVisible(index, visible) {\n setVisibles(function (prev) {\n return _extends(_extends({}, prev), _defineProperty({}, index, visible));\n });\n };\n\n var getTooltipPlacement = function getTooltipPlacement(tooltipPlacement, vertical) {\n if (tooltipPlacement) {\n return tooltipPlacement;\n }\n\n if (!vertical) {\n return 'top';\n }\n\n return direction === 'rtl' ? 'left' : 'right';\n };\n\n var handleWithTooltip = function handleWithTooltip(_a) {\n var tooltipPrefixCls = _a.tooltipPrefixCls,\n prefixCls = _a.prefixCls,\n _b = _a.info,\n value = _b.value,\n dragging = _b.dragging,\n index = _b.index,\n restProps = __rest(_b, [\"value\", \"dragging\", \"index\"]);\n\n var tipFormatter = props.tipFormatter,\n tooltipVisible = props.tooltipVisible,\n tooltipPlacement = props.tooltipPlacement,\n getTooltipPopupContainer = props.getTooltipPopupContainer,\n vertical = props.vertical;\n var isTipFormatter = tipFormatter ? visibles[index] || dragging : false;\n var visible = tooltipVisible || tooltipVisible === undefined && isTipFormatter;\n var rootPrefixCls = getPrefixCls();\n return /*#__PURE__*/React.createElement(SliderTooltip, {\n prefixCls: tooltipPrefixCls,\n title: tipFormatter ? tipFormatter(value) : '',\n visible: visible,\n placement: getTooltipPlacement(tooltipPlacement, vertical),\n transitionName: \"\".concat(rootPrefixCls, \"-zoom-down\"),\n key: index,\n overlayClassName: \"\".concat(prefixCls, \"-tooltip\"),\n getPopupContainer: getTooltipPopupContainer || getPopupContainer\n }, /*#__PURE__*/React.createElement(RcHandle, _extends({}, restProps, {\n value: value,\n onMouseEnter: function onMouseEnter() {\n return toggleTooltipVisible(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return toggleTooltipVisible(index, false);\n }\n })));\n };\n\n var customizePrefixCls = props.prefixCls,\n customizeTooltipPrefixCls = props.tooltipPrefixCls,\n range = props.range,\n className = props.className,\n restProps = __rest(props, [\"prefixCls\", \"tooltipPrefixCls\", \"range\", \"className\"]);\n\n var prefixCls = getPrefixCls('slider', customizePrefixCls);\n var tooltipPrefixCls = getPrefixCls('tooltip', customizeTooltipPrefixCls);\n var cls = classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl')); // make reverse default on rtl direction\n\n if (direction === 'rtl' && !restProps.vertical) {\n restProps.reverse = !restProps.reverse;\n } // extrack draggableTrack from range={{ ... }}\n\n\n var draggableTrack;\n\n if (_typeof(range) === 'object') {\n draggableTrack = range.draggableTrack;\n }\n\n if (range) {\n return /*#__PURE__*/React.createElement(RcRange, _extends({}, restProps, {\n step: restProps.step,\n draggableTrack: draggableTrack,\n className: cls,\n ref: ref,\n handle: function handle(info) {\n return handleWithTooltip({\n tooltipPrefixCls: tooltipPrefixCls,\n prefixCls: prefixCls,\n info: info\n });\n },\n prefixCls: prefixCls\n }));\n }\n\n return /*#__PURE__*/React.createElement(RcSlider, _extends({}, restProps, {\n step: restProps.step,\n className: cls,\n ref: ref,\n handle: function handle(info) {\n return handleWithTooltip({\n tooltipPrefixCls: tooltipPrefixCls,\n prefixCls: prefixCls,\n info: info\n });\n },\n prefixCls: prefixCls\n }));\n});\nSlider.displayName = 'Slider';\nSlider.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return typeof value === 'number' ? value.toString() : '';\n }\n};\nexport default Slider;"],"names":["props","_ref","_ref2","className","included","vertical","style","length","offset","reverse","Math","abs","positonStyle","concat","elStyle","prefixCls","marks","dots","step","lowerBound","upperBound","max","min","dotStyle","activeDotStyle","range","elements","warning","points","Object","keys","map","parseFloat","sort","a","b","i","indexOf","push","calcPoints","point","_classNames","isActived","pointClassName","key","onClickLabel","marksKeys","markPoint","markPointIsObject","markLabel","label","isActive","markClassName","bottomStyle","marginBottom","leftStyle","transform","msTransform","markStyle","onMouseDown","e","onTouchStart","Handle","_React$Component","_super","_this","this","apply","arguments","state","clickFocused","setHandleRef","node","handle","handleMouseUp","document","activeElement","setClickFocus","handleMouseDown","preventDefault","focus","handleBlur","handleKeyDown","value","onMouseUpListener","addEventListener","remove","focused","setState","blur","ariaValueText","_this$props","disabled","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","restProps","positionStyle","mergedTabIndex","ref","onBlur","onKeyDown","role","isEventFromHandle","handles","some","target","findDOMNode","error","isValueOutOfRange","isNotTouchEvent","touches","type","toLowerCase","getClosestPoint","val","baseNum","pow","getPrecision","maxSteps","floor","steps","closestStep","round","diffs","stepString","toString","precision","getMousePosition","clientY","pageX","getTouchPosition","getHandleCenterPosition","coords","getBoundingClientRect","top","height","window","pageXOffset","left","width","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","isFinite","toFixed","pauseEvent","stopPropagation","getKeyboardValueMutator","increase","decrease","method","keyCode","func","operations","indexToGet","JSON","stringify","keyToGet","calculateNextValue","noop","createSlider","Component","_a","_Component","ComponentEnhancer","call","onDown","position","p","draggableTrack","isVertical","bounds","positionGetValue","inPoint","handlesRefs","dragTrack","n","v","c","dragOffset","startBounds","handlePosition","onStart","button","removeDocumentEvents","addDocumentMouseEvents","addDocumentTouchEvents","onFocus","_this$props2","onEnd","onMouseUp","prevMovedHandleIndex","clickFocus","onMouseMove","sliderRef","onMove","onTouchMove","onKeyboard","onClickMarkLabel","onChange","saveSlider","slider","isPointDiffEven","ownerDocument","_this$props3","autoFocus","prototype","_this$props4","rect","bottom","right","onTouchMoveListener","onTouchUpListener","onMouseMoveListener","_this$handlesRefs$","_this2","forEach","_this2$handlesRefs$ke","_this2$handlesRefs$ke2","_this$props5","ratio","getSliderLength","pixelOffset","getSliderStart","trimAlignValue","calcValue","_this$props6","index","_this$props7","children","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","getLowerBound","getUpperBound","displayName","defaultProps","dragging","onBeforeChange","onAfterChange","trackStyle","handleStyle","Slider","force","getValue","defaultValue","undefined","h","prevProps","prevState","theValue","nextValue","isNotControlled","nextState","changedValue","prevValue","calcValueByPos","startValue","startPosition","oldValue","valueMutator","mutatedValue","minPoint","startPoint","nextProps","mergedProps","minimumTrackStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handleGenerator","_this$state","calcOffset","saveHandle","trackOffset","mergedTrackStyle","_trimAlignValue","allowCross","pushable","thershold","Number","valInRange","valNotConflict","Range","closestBound","getClosestBound","getBoundNeedMoving","nextBounds","count","initialValue","Array","recent","currentValue","controlledState","item","maxValue","minValue","pos","moveTo","boundNeedMoving","isAtTheSamePoint","cache","internalPointsCache","pointsObject","isFromKeyboardEvent","_this3","nextHandle","pushSurroundingHandles","threshold","direction","diffToNext","pushHandle","amount","originalValue","pushHandleOnePoint","getPoints","nextPointIndex","_this$state2","_this4","_this$state3","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","offsets","handleClassName","slice","_","_classNames2","trackClassName","every","isPointsEq","a1","a2","isAlignPoint","getMotion","motion","animation","transitionName","motionName","Mask","visible","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","motionAppear","removeOnLeave","monitorResize","element","callback","prevWidth","prevHeight","resizeObserver","documentElement","contains","_target$getBoundingCl","fixedWidth","fixedHeight","Promise","resolve","then","observe","disconnect","getElement","getPoint","RefAlign","align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","nodeRef","childNode","forceAlignPropsRef","current","_useBuffer","buffer","calledRef","timeoutRef","cancelTrigger","clearTimeout","trigger","setTimeout","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","result","source","isVisible","container","restoreFocus","useBuffer","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","cancel","sourceResizeMonitor","prev","next","pageY","clientX","winResizeRef","forceAlign","StatusQueue","PopupInner","stretch","destroyPopupOnHide","forceRender","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","alignRef","useRef","elementRef","_useState","useState","_useState2","alignedClassName","setAlignedClassName","_useStretchStyle","_React$useState","_React$useState2","targetSize","setTargetSize","sizeStyle","minHeight","minWidth","offsetWidth","offsetHeight","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","status","setInternalStatus","rafRef","destroyRef","setStatus","nextStatus","cancelRaf","raf","useEffect","_callee","_context","stop","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","eventName","originHandler","event","mergedStyle","opacity","pointerEvents","alignDisabled","leavedClassName","onAppearPrepare","onEnterPrepare","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","innerVisible","serInnerVisible","_useState3","_useState4","inMobile","setInMobile","cloneProps","isMobile","popupNode","PortalComponent","Trigger","ALL_HANDLERS","Portal","popupVisible","popupRef","triggerRef","mouseEnterDelay","fireEvents","delaySetPopupVisible","setPoint","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","isFocusToShow","focusTime","Date","now","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","onContextMenu","setPopupVisible","onContextMenuClose","isContextMenuToShow","close","onClick","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","context","onDocumentClick","maskClosable","root","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","domNode","err","getPopupClassNameFromAlign","popupPlacement","builtinPlacements","alignPoint","placements","placement","getAlignPopupClassName","join","getComponent","onPopupAlign","popupAnimation","popupTransitionName","popup","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","attachId","mountNode","getPopupContainer","getDocument","body","appendChild","getContainer","createElement","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","componentDidUpdate","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","baseAlign","getAlignFromPlacement","onPopupVisibleChange","delayS","delay","delayTimer","childPros","action","showAction","hideAction","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","createTwoChains","childrenClassName","portal","didUpdate","newState","contextType","autoAdjustOverflow","adjustX","adjustY","targetOffset","overflow","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","overlay","id","overlayInnerStyle","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","domRef","useImperativeHandle","extraProps","destroyTooltip","keepParent","_props$arrowContent","arrowContent","forwardRef","innerRef","tooltipRef","cancelKeepAlign","_innerRef$current","forcePopupAlign","InternalSlider","createSliderWithTooltip","ComponentWrapper","visibles","handleTooltipVisibleChange","handleWithTooltip","handleStyleWithIndex","tipFormatter","tipProps","_tipProps$prefixCls","_tipProps$overlay","_tipProps$placement","_tipProps$visible","restTooltipProps","isArray","parentNode","title","__rest","s","t","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","_React$useContext","getPrefixCls","setVisibles","toggleTooltipVisible","getTooltipPlacement","tooltipPlacement","tooltipPrefixCls","_b","info","tooltipVisible","getTooltipPopupContainer","isTipFormatter","rootPrefixCls","customizePrefixCls","customizeTooltipPrefixCls","cls"],"sourceRoot":""}
|
|
public/dist/548.lite.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[548],{8261:function(e,t,a){function n(){return{http:{name:"HTTP Cookie",abbr:"HTTP",backgroundColor:"black"},local:{name:"Local Storage",abbr:"Local",backgroundColor:"#b3983c"},session:{name:"Session Storage",abbr:"Session",backgroundColor:"#3c99b3"},flash:{name:"Flash Local Shared Object",abbr:"Flash",backgroundColor:"#b33c3c"},indexedDb:{name:"IndexedDB",abbr:"I-DB",backgroundColor:"#4ab33c"}}}a.d(t,{X:function(){return n}}),a(7363)},6586:function(e,t,a){a.d(t,{ZG:function(){return ne},PS:function(){return te},y$:function(){return ae}});var n=a(9591),o=a(4741),r=a(3828),i=a(3306),c=a(6142),l=a(8782),s=a(2711),u=a(4115),d=a(7938),m=a(7870),p=a(6315),g=a(7228),h=a(5450),v=a.n(h),f=a(7363),y=a(3554),E=a(6926);function R(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode(parseInt(t,16))})))}function b(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var t="àáäâèéëêìíïîòóöôùúüûñç·/_,:;",a=0,n=t.length;a<n;a++)e=e.replace(new RegExp(t.charAt(a),"g"),"aaaaeeeeiiiioooouuuunc------".charAt(a));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}var _=a(7819),k=a(8630),w=a(4163),Z=a(6711),I=a(8909),N=function(){var e=(0,I.R)(),t=e.group,a=(0,Z.useRouteMatch)().params,n=isNaN(+a.cookie)?0:+a.cookie,o=!!a.cookie,r=t.cookies.entries.get(+a.cookie)||new E.U(t.cookies,{id:0});return{routeGroup:e,cookie:r,id:n,queried:o,fetched:0!==r.key}},O=a(6478),T=a(8920),M=a(2519),S=a(1629),P=a(5893),C=a(7943),D=function(e){var t=e.notices;return React.createElement(React.Fragment,null,null==t?void 0:t.map((function(e){var t=e.message,a=e.severity;return t?React.createElement("div",{className:"notice notice-".concat(a," below-h2 notice-alt"),key:t},React.createElement("p",{dangerouslySetInnerHTML:{__html:t}})):null})))},x=a(2388),F=(0,y.Pi)((function(e){var t,a,n=e.showNoticePresetGroupNotFound,o=void 0!==n&&n,i=e.groupNotices,c=e.providerPrivacyPolicyNotices,l=(0,w.m)(),s=l.cookieStore,u=s.groups,m=s.essentialGroup,g=l.optionStore,h=g.ePrivacyUSA,y=g.consentForwarding,E=N(),R=E.cookie,_=E.fetched,Z="real-cookie-banner"===(null===(t=R.presetModel)||void 0===t||null===(a=t.data)||void 0===a?void 0:a.identifier),I=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,S.W)({location:x.V,params:{slug:t}});case 3:return e.abrupt("return",e.sent.filter((function(e){return e.ID!==R.key}))[0]);case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",void 0);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t){return e.apply(this,arguments)}}(),[R.key]),F=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t,a){var n,o,r,i;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(t);case 2:if(!(n=e.sent)){e.next=19;break}if(a){e.next=8;break}throw(0,k.__)("A service with the same unique name already exists.");case 8:o=n.metas.consentForwardingUniqueName,r=/^(.*)-(\d+)$/,i=n;case 11:if(!i){e.next=18;break}return o=o.match(r)?o.replace(r,(function(e,t,a){return"".concat(t,"-").concat(+a+1)})):"".concat(o,"-1"),e.next=15,I(o);case 15:i=e.sent,e.next=11;break;case 18:a(o);case 19:case"end":return e.stop()}}),e)})));return function(t,a){return e.apply(this,arguments)}}(),[I]);return React.createElement(React.Fragment,null,React.createElement(P.C,{offset:te.labelCol.span},(0,k.__)("General service configuration")," ",React.createElement(C.r,{url:(0,k.__)("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(p.Z.Item,{label:(0,k.__)("Name"),required:!0},React.createElement(p.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide a name!")}]},React.createElement(M.Z,null)),React.createElement("p",{className:"description"},(0,k.__)('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".'))),React.createElement(p.Z.Item,{label:(0,k.__)("Status"),required:!0},React.createElement(p.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please choose a status!")}]},React.createElement(T.ZP.Group,null,React.createElement(T.ZP.Button,{value:"publish"},(0,k.__)("Enabled")),React.createElement(T.ZP.Button,{value:"private"},(0,k.__)("Disabled")),React.createElement(T.ZP.Button,{value:"draft"},(0,k.__)("Draft")))),React.createElement("p",{className:"description"},(0,k.__)('Services with the status "Draft" or "Disabled" are not visible to the public. In addition, a draft will be highlighted in the service table so that you do not forget to configure it.'))),React.createElement(p.Z.Item,{label:(0,k.__)("Group"),required:!0},React.createElement(p.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide a group!")}]},React.createElement(r.Z,null,u.sortedGroups.map((function(e){var t=e.data,a=t.id,n=t.name;return React.createElement(r.Z.Option,{key:a,value:a},n)})))),React.createElement("p",{className:"description"},(0,k.__)("Each service must be assigned to a group. All services that do not belong to the group of essential services can (but do not have to) be accepted by visitors. According to the ePrivacy Directive, only services without which the website would not work are considered as essential services if the visitor has explicitly requested the service used. A possible economic interest of the website operator in using a tool, e.g. Google Analytics, is irrelevant.")),!1!==o&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",o))),React.createElement(D,{notices:i})),React.createElement(p.Z.Item,{label:(0,k.__)("Provider"),required:!0},React.createElement(p.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please name a provider!")}]},React.createElement(M.Z,null)),React.createElement("p",{className:"description"},(0,k.__)('A service always has an "owner", who processes collected data or information saved in cookies etc. Please specify which provider creates cookies and processes personal data, e.g. "Google Ireland Limited". If you are the provider, please enter your legal name.'))),React.createElement(p.Z.Item,{label:(0,k.__)("Purpose")},React.createElement(p.Z.Item,{name:"purpose",noStyle:!0},React.createElement(M.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},(0,k._i)((0,k.__)("The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how {{a}}personal data{{/a}} is collected and how cookies are used for this purpose."),{a:React.createElement("a",{href:(0,k.__)("https://devowl.io/2021/personal-data-gdpr/"),target:"_blank",rel:"noreferrer"})}))),React.createElement(p.Z.Item,{label:(0,k.__)("Privacy policy of the provider"),required:!0},React.createElement(p.Z.Item,{name:"providerPrivacyPolicy",noStyle:!0,rules:[{required:!0,type:"url",message:(0,k.__)("Please provide a valid URL!")}]},React.createElement(M.Z,null)),React.createElement("p",{className:"description"},(0,k.__)("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),React.createElement(D,{notices:c})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group||e.name!==t.name}},(function(e){var t,a=e.getFieldValue,n=e.setFieldsValue,o=a("group")===m.key;return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{label:(0,k.__)("Consent Forwarding Unique Name"),style:{display:y?void 0:"none"}},React.createElement(p.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:(t=(0,d.Z)(v().mark((function e(t,o){var r;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=!y||!o,e.abrupt("return",F(o||b(a("name")),r?function(e){return n({consentForwardingUniqueName:e})}:void 0));case 2:case"end":return e.stop()}}),e)}))),function(e,a){return t.apply(this,arguments)})}]},React.createElement(M.Z,{placeholder:_?"":b(a("name"))})),React.createElement("p",{className:"description"},(0,k.__)("Consent Forwarding is active. This means that all services on all available instances must be identified by a unique name in order to correctly set consent for a service.")),o&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You can define a unique name, but essential services are automatically accepted when a consent is forwarded.")))),React.createElement(p.Z.Item,{label:(0,k.__)("Legal basis"),required:!0},React.createElement(p.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(T.ZP.Group,{disabled:o},React.createElement(T.ZP.Button,{value:"consent"},(0,k.__)("Consent (Opt-in)")),React.createElement(T.ZP.Button,{value:"legitimate-interest"},(0,k.__)("Legitimate interest (Opt-out)")),Z&&React.createElement(T.ZP.Button,{value:"legal-requirement"},(0,k.__)("Compliance with a legal obligation")))),React.createElement("div",{style:{margin:"5px 0px 0px"}},React.createElement(C.r,{url:(0,k.__)("https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/")})),React.createElement("p",{className:"description"},(0,k._i)((0,k.__)('Services can be used on various legal bases according to Art. 6 GDPR. "Consent" means that the user must explicitly agree to the service (opt-in). "Legitimate interest" means that your interest as a website operator prevails to use the service and the user must explicitly disagree (opt-out). Unless it is an essential service. Then an objection is not possible. {{strong}}A legitimate interest exists only in rare cases and only for data processing. If you are not sure, it is better to obtain consent to be on the safe side.{{/strong}}'),{strong:React.createElement("strong",null)})),o&&!Z&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k.__)('Your service is currently grouped as "Essential". This group implies the legitimate interest, with the only difference that this service cannot be opted out.')))))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group||e.ePrivacyUSA!==t.ePrivacyUSA}},(function(e){var t=e.getFieldValue;return React.createElement(p.Z.Item,{label:(0,k.__)("US data processing"),style:{display:h?void 0:"none"}},React.createElement(p.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("This service processes data in the USA or transfers data to US companies or servers")),t("ePrivacyUSA")&&t("group")===m.key&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("If you use this service declaration only as a notice and the corresponding service is already embedded outside the cookie banner on the first visit to the website, it is possible that the service used in the USA is already processing data before the user has agreed to this. From a data protection perspective, the use of such services should be avoided, or the service should be embedded in the opt-in code (execution after consent). In practice, this will not always be possible."))))})),React.createElement(p.Z.Item,{label:(0,k.__)("No technical definitions")},React.createElement(p.Z.Item,{name:"noTechnicalDefinitions",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script."))))})),A=a(1857),B=a(1562),U=a(7088),G=a(4290),q=a(9033),L=a(3137),V=a(657),H=a(8261),j={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},K=(0,y.Pi)((function(){var e=(0,H.X)(),t=(0,f.useRef)(),a=(0,f.useMemo)((function(){return{DragHandle:(0,V.W6)((function(){return React.createElement(B.Z,{style:{cursor:"grab",color:"#999",marginTop:5},className:"button button-small button-link"})})),SortableItem:(0,V.W8)((function(e){return React.createElement("tr",e)})),SortableBody:(0,V.JN)((function(e){return React.createElement("tbody",(0,o.Z)({ref:t},e))}))}}),[]),n=a.DragHandle,c=a.SortableItem,l=a.SortableBody,s=(0,f.useCallback)((function(e){var t=e.node,a=e.helper;t.childNodes.forEach((function(e,t){a.childNodes[t].style.width="".concat(e.offsetWidth,"px")}))}),[]);return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions||e.technicalDefinitions.length!==t.technicalDefinitions.length}},(function(a){return(0,a.getFieldValue)("noTechnicalDefinitions")?null:React.createElement(p.Z.List,{name:"technicalDefinitions"},(function(a,u){var d=u.add,m=u.remove,g=u.move;return React.createElement(React.Fragment,null,React.createElement(P.C,{offset:te.labelCol.span,description:(0,k.__)("For each service you use, you should specify all cookies that are used by it. You can find this out in the developer console of your browser. Please note that there are several types of cookies and that the law requires that you inform your visitors not only about (HTTP) cookies, but also about cookie-like information.")},(0,k.__)("Technical cookie information")),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list",style:{marginBottom:25}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("td",{width:45,align:"right"}," "),React.createElement("td",{width:150},(0,k.__)("Cookie type")),React.createElement("td",null,React.createElement(A.Z,{title:(0,k._i)((0,k.__)("Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder)."),{code:React.createElement("code",null)})},React.createElement("span",null,(0,k.__)("Technical cookie name")," ",React.createElement(U.Z,null)))),React.createElement("td",null,React.createElement(A.Z,{title:(0,k.__)("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,(0,k.__)("Technical cookie host")," ",React.createElement(U.Z,null)))),React.createElement("td",{width:250},React.createElement(A.Z,{title:(0,k.__)("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,(0,k.__)("Cookie duration")," ",React.createElement(U.Z,null)))),React.createElement("td",null,React.createElement(A.Z,{title:(0,k.__)("Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.")},React.createElement("span",null,(0,k.__)("Purpose")," ",React.createElement(U.Z,null)))),React.createElement("td",{width:70,align:"right"}," "))),React.createElement(l,{useDragHandle:!0,onSortEnd:function(e){var t=e.oldIndex,a=e.newIndex;return g(t,a)},onSortStart:s,helperContainer:function(){return t.current}},a.map((function(t,l){return React.createElement(c,{key:t.key,index:l},React.createElement("td",null,a.length>1?React.createElement(n,null):void 0),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,j,{fieldKey:[t.fieldKey,"type"],name:[t.name,"type"],rules:[{required:!0,message:(0,k.__)("Please provide a cookie type!")}]}),React.createElement(r.Z,null,Object.keys(e).map((function(t){return React.createElement(r.Z.Option,{key:t,value:t,style:{display:"flash"===t?"none":void 0}},e[t].name)}))))),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,j,{fieldKey:[t.fieldKey,"name"],name:[t.name,"name"],rules:[{required:!0,message:(0,k.__)("Please provide a technical cookie name!")}]}),React.createElement(M.Z,null)),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.name)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.name)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"name"]);return[/\[/gm,[/([{]+)/gm,function(e){return 1===e.length}],/\(/gm].filter((function(e){return Array.isArray(e)?e[0].test(a)&&a.match(e[0]).filter(e[1]).length>0:e.test(a)})).length>0&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,k._i)((0,k.__)("Are you sure this is the name of the cookie? It seems like you are using a placeholder that is not supported. Please use an asterisk ({{code}}*{{/code}}) as a placeholder if the cookie name is dynamically composed."),{code:React.createElement("code",null)})))}))),React.createElement("td",null,React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.type)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.type)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"type"]);return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,(0,o.Z)({},t,j,{fieldKey:[t.fieldKey,"host"],name:[t.name,"host"],rules:[{validator:function(e,t){return(["local","session","indexedDb"].indexOf(a)>-1?(0,L.C)(t):/^\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(t))||""===t&&"http"!==a?Promise.resolve():Promise.reject((0,k.__)("Please provide a valid hostname!"))}}]}),React.createElement(M.Z,null)),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.host)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.host)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"host"]);return a.startsWith("*.")&&a.length>2&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,k._i)((0,k.__)("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",a.substr(2)),{code:React.createElement("code",null)})))})))}))),React.createElement("td",null,React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.type)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.type)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"type"]);return["local","session","indexedDb","flash"].indexOf(a)>-1?null:React.createElement(React.Fragment,null,React.createElement(p.Z.Item,(0,o.Z)({},t,{fieldKey:[t.fieldKey,"sessionDuration"],name:[t.name,"sessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(i.Z,{style:{float:"left",marginTop:5}},React.createElement(A.Z,{title:(0,k.__)("This cookie is active as long as the session is active")},React.createElement("span",null,(0,k.__)("Session"))))),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.sessionDuration)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.sessionDuration)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"sessionDuration"]);return React.createElement(p.Z.Item,(0,o.Z)({},t,j,{fieldKey:[t.fieldKey,"duration"],name:[t.name,"duration"],rules:[{required:!a,message:(0,k.__)("Please provide a valid duration!")}]}),React.createElement(M.Z,{min:"0",addonAfter:React.createElement(p.Z.Item,{name:[t.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide an unit!")}]},React.createElement(r.Z,null,React.createElement(r.Z.Option,{value:"s"},(0,k.__)("second(s)")),React.createElement(r.Z.Option,{value:"m"},(0,k.__)("minute(s)")," "),React.createElement(r.Z.Option,{value:"h"},(0,k.__)("hour(s)")," "),React.createElement(r.Z.Option,{value:"d"},(0,k.__)("day(s)")," "),React.createElement(r.Z.Option,{value:"mo"},(0,k.__)("month(s)")," "),React.createElement(r.Z.Option,{value:"y"},(0,k.__)("year(s)")," "))),type:"number",style:{maxWidth:200,display:a?"none":void 0}}))})))}))),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,j,{fieldKey:[t.fieldKey,"purpose"],name:[t.name,"purpose"]}),React.createElement(M.Z.TextArea,{rows:1,autoSize:{maxRows:3}}))),React.createElement("td",null,a.length>1?React.createElement("a",{className:"button button-small",onClick:function(){m(t.name)}},React.createElement(G.Z,null)):null))}))),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:7,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:function(){d(ae)}},React.createElement(q.Z,null)," ",(0,k.__)("Add another cookie definition")))))))}))}))})),Y=a(4148),$=a(5283),J=(0,y.Pi)((function(e){var t=e.manager,a=e.onlyWhenManagerIs,n=e.hasManagerAttributeName,o=e.thisIsManagerAttributeName,r=e.inEventNameAttributeName,i=e.outEventNameAttributeName,c=(0,w.m)(),l=c.cookieStore,s=c.optionStore,u=s.setCookiesViaManager,d=s[n],m=s.others.isPro,g=l.essentialGroup,h=N().cookie;return u===a&&m&&React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement(A.Z,{title:d&&h.key!==d?(0,k.__)("You have already defined a %s service.",t):""},React.createElement("span",null,React.createElement(p.Z.Item,{name:o,valuePropName:"checked",noStyle:!0},React.createElement(O.Z,{disabled:d&&h.key!==d})),React.createElement("span",null," ",(0,k.__)("Opt-in script below loads %s",t))))),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e[o]!==t[o]||e.group!==t.group}},(function(e){var a=e.getFieldValue,n=a(o),r=a("group");return n&&r!==g.key&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You have defined %1$s in a non-essential service group. In our legal opinion, this is the only way to use %1$s legally. However, please note that if a user doesn't consent to load %1$s, opt-in and opt-out events will not be sent to %1$s. Real Cookie Banner offers you the possibility to specify a fallback HTML/JavaScript for this case.",t))))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e[o]!==t[o]||e[r]!==t[r]||e[i]!==t[i]}},(function(e){var a=e.getFieldValue,n=a(o),c=a(r),l=a(i);return!n&&React.createElement(p.Z.Item,{label:(0,k.__)("Event names for %s",t)},React.createElement(p.Z.Item,{name:r,noStyle:!0},React.createElement(M.Z,{addonBefore:(0,k.__)("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(p.Z.Item,{name:i,noStyle:!0},React.createElement(M.Z,{addonBefore:(0,k.__)("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("div",null,React.createElement(C.r,{url:(0,k.__)("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),(c.length>0||l.length>0)&&!d&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You have not yet defined a %s service. To use event names, you must create a %s service.",t,t))))})))})),W=/{{([A-Za-z0-9_]+)}}/gm,z=["codeOptIn","codeOptOut","codeOnPageLoad"],X=(0,y.Pi)((function(e){var t=e.dynamicFields;return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return z.map((function(a){return e[a]!==t[a]})).filter(Boolean).length>0}},(function(e){var a=e.getFieldValue,n=z.map((function(e){return a(e)})).join(""),o=Array.from(n.matchAll(W)).map((function(e){return(0,g.Z)(e,2)[1]})),r=[];return o?o.map((function(e){var a=["codeDynamics",e],n=(null==t?void 0:t[e])||{},o=n.label,i=n.invalidMessage,c=void 0===i?(0,k.__)("Please fill in a value!"):i,l=n.example,s=n.expression,u=n.hint;return r.indexOf(e)>-1?null:(r.push(e),React.createElement(p.Z.Item,{key:e,label:o||React.createElement("code",null,e),required:!0},React.createElement(p.Z.Item,{noStyle:!0,name:a,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(M.Z,{placeholder:l?"".concat((0,k.__)("e. g.")," ").concat(l):void 0})),!!u&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{margin:"10px 0 5px"}},React.createElement("p",{dangerouslySetInnerHTML:{__html:u}}))))})):null}))})),Q=(0,y.Pi)((function(e){var t=e.name,a=(0,w.m)().optionStore.others.activePlugins,n=(0,f.useMemo)((function(){return Object.keys(a)}),[a]);return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){return e[t]!==a[t]}},(function(e){var o=(0,e.getFieldValue)(t),r=(0,m.Z)(o.matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)).map((function(e){return(0,g.Z)(e,3)[2].split(",").filter((function(e){return n.indexOf(e)>-1}))})).flat(),i=r.filter((function(e,t){return r.indexOf(e)===t}));return 0===i.length?null:React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k._i)((0,k.__)("The code above contains HTML tags that are skipped when one of the following plugins is active: {{strong/}}. {{i}}What does this mean for me?{{/i}} In most cases, another plugin will take over the execution of the technical code, and you have to create a corresponding content blocker."),{strong:React.createElement("strong",null,i.map((function(e){return a[e]})).join(", ")),i:React.createElement("i",null)})))}))})),ee=(0,y.Pi)((function(e){var t=e.notices,a=e.dynamicFields,n=(0,w.m)(),o=n.cookieStore,r=n.optionStore,i=r.setCookiesViaManager,c=r.others.isPro,l=o.essentialGroup,s=(0,f.useCallback)((function(e){return{opacity:e?void 0:0,height:e?void 0:0,margin:e?void 0:0}}),[]);return React.createElement(React.Fragment,null,React.createElement(P.C,{offset:te.labelCol.span,description:"none"===i?(0,k.__)("Define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service or when a page is loaded. It is important to define the executed code correctly, as this ensures that scripts are executed and cookies are set only after the user's consent."):(0,k.__)("Define the %1$s event that should be thrown in the data layer when a visitor decides to accept or reject this service. The event can be used as a trigger in %1$s. For users who do not allow to use %1$s a fallback can be defined. You can define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service, or when a page is loaded. It is important to define the event names and executed code correctly, as this will ensure that scripts are executed and cookies are only set with the user's consent.","googleTagManager"===i?$.Gh:$.Ki)},(0,k.__)("Technical handling")),React.createElement(J,{manager:$.Gh,onlyWhenManagerIs:"googleTagManager",hasManagerAttributeName:"hasGTM",thisIsManagerAttributeName:"thisIsGoogleTagManager",inEventNameAttributeName:"googleTagManagerInEventName",outEventNameAttributeName:"googleTagManagerOutEventName"}),React.createElement(J,{manager:$.Ki,onlyWhenManagerIs:"matomoTagManager",hasManagerAttributeName:"hasMTM",thisIsManagerAttributeName:"thisIsMatomoTagManager",inEventNameAttributeName:"matomoTagManagerInEventName",outEventNameAttributeName:"matomoTagManagerOutEventName"}),React.createElement(X,{dynamicFields:a}),(null==t?void 0:t.length)>0&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span,span:te.wrapperCol.span}},React.createElement(D,{notices:t})),React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on opt-in")},"googleTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsGoogleTagManager!==t.thisIsGoogleTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsGoogleTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptInNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",$.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsMatomoTagManager!==t.thisIsMatomoTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsMatomoTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptInNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",$.Ki),{u:React.createElement("u",null)})))})),React.createElement(p.Z.Item,{name:"codeOptIn",noStyle:!0},React.createElement(Y.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOptIn"})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on opt-out"),style:s(t("group")!==l.key)},React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions}},(function(e){return(0,e.getFieldValue)("noTechnicalDefinitions")?null:React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutDelete",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.")))})),"googleTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsGoogleTagManager!==t.thisIsGoogleTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsGoogleTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",$.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsMatomoTagManager!==t.thisIsMatomoTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsMatomoTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",$.Ki),{u:React.createElement("u",null)})))})),React.createElement(p.Z.Item,{name:"codeOptOut",noStyle:!0},React.createElement(Y.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOptOut"})))})),React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on page load")},React.createElement(p.Z.Item,{name:"codeOnPageLoad",noStyle:!0},React.createElement(Y.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOnPageLoad"})))})),te={labelCol:{span:6},wrapperCol:{span:16}},ae={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",sessionDuration:!1,purpose:""},ne=(0,y.Pi)((function(e){var t,a,h,y,I,O,T=e.preset,M=e.attributes,S=e.navigateAfterCreation,P=void 0===S||S,D=e.scrollToTop,x=void 0===D||D,A=e.onCreated,B=N(),U=B.routeGroup,G=U.group,q=U.link,L=B.cookie,V=B.id,H=B.queried,j=B.fetched,Y=p.Z.useForm(),$=(0,g.Z)(Y,1)[0],J=(0,f.useState)(!1),W=(0,g.Z)(J,2),z=W[0],X=W[1],Q=(0,f.useState)(!1),ne=(0,g.Z)(Q,2),oe=ne[0],re=ne[1],ie=(0,Z.useHistory)(),ce=(0,w.m)(),le=ce.cookieStore,se=ce.optionStore.others.useEncodedStringForScriptInputs,ue=le.essentialGroup,de=(null==L?void 0:L.presetModel)||le.presetsCookie.get(null==T?void 0:T.identifier),me=M?M.group?(null===(t=le.groups.sortedGroups.filter((function(e){return e.data.name===M.group})))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.key)||"preset-group-not-found":void 0:G.key,pe=Object.keys((null==T?void 0:T.contentBlockerPresets)||[]).length>0,ge=(null==M?void 0:M.createContentBlockerNotice)||(null==de||null===(h=de.attributes)||void 0===h?void 0:h.createContentBlockerNotice),he=!(null==de||!de.data.scanned||null===(y=de.attributes)||void 0===y||!y.codeOptIn||-1!==["wordpress-comments"].indexOf(de.data.identifier)),ve=j?{name:L.data.title.raw,status:L.data.status,group:G.key||void 0,purpose:L.data.content.raw,provider:L.data.meta.provider,providerPrivacyPolicy:L.data.meta.providerPrivacyPolicy,consentForwardingUniqueName:L.data.meta.consentForwardingUniqueName||L.data.slug,noTechnicalDefinitions:L.data.meta.noTechnicalDefinitions,legalBasis:L.data.meta.legalBasis,ePrivacyUSA:L.data.meta.ePrivacyUSA,technicalDefinitions:JSON.parse(JSON.stringify(L.technicalDefinitions||"[]")),codeDynamics:JSON.parse(JSON.stringify(L.codeDynamics||"{}")),thisIsGoogleTagManager:L.data.meta.thisIsGoogleTagManager,googleTagManagerInEventName:L.data.meta.googleTagManagerInEventName,googleTagManagerOutEventName:L.data.meta.googleTagManagerOutEventName,thisIsMatomoTagManager:L.data.meta.thisIsMatomoTagManager,matomoTagManagerInEventName:L.data.meta.matomoTagManagerInEventName,matomoTagManagerOutEventName:L.data.meta.matomoTagManagerOutEventName,codeOptIn:L.data.meta.codeOptIn,codeOptInNoGoogleTagManager:L.data.meta.codeOptInNoGoogleTagManager,codeOptInNoMatomoTagManager:L.data.meta.codeOptInNoMatomoTagManager,codeOptOut:L.data.meta.codeOptOut,codeOptOutNoGoogleTagManager:L.data.meta.codeOptOutNoGoogleTagManager,codeOptOutNoMatomoTagManager:L.data.meta.codeOptOutNoMatomoTagManager,codeOnPageLoad:L.data.meta.codeOnPageLoad,codeOptOutDelete:L.data.meta.codeOptOutDelete}:{name:(null==M?void 0:M.name)||"",status:"publish",group:"number"==typeof me&&me||void 0,purpose:(null==M?void 0:M.purpose)||"",provider:(null==M?void 0:M.provider)||"",providerPrivacyPolicy:(null==M?void 0:M.providerPrivacyPolicy)||"",consentForwardingUniqueName:(null==M?void 0:M.consentForwardingUniqueName)||(null==T?void 0:T.identifier)||"",noTechnicalDefinitions:(null==M?void 0:M.noTechnicalDefinitions)||!1,legalBasis:(null==M?void 0:M.legalBasis)||"consent",ePrivacyUSA:(null==M?void 0:M.ePrivacyUSA)||!1,technicalDefinitions:null!=M&&M.technicalDefinitions?JSON.parse(JSON.stringify(M.technicalDefinitions)):[ae],codeDynamics:(null==M?void 0:M.codeDynamics)||{},thisIsGoogleTagManager:(null==M?void 0:M.thisIsGoogleTagManager)||!1,googleTagManagerInEventName:(null==M?void 0:M.googleTagManagerInEventName)||"",googleTagManagerOutEventName:(null==M?void 0:M.googleTagManagerOutEventName)||"",thisIsMatomoTagManager:(null==M?void 0:M.thisIsMatomoTagManager)||!1,matomoTagManagerInEventName:(null==M?void 0:M.matomoTagManagerInEventName)||"",matomoTagManagerOutEventName:(null==M?void 0:M.matomoTagManagerOutEventName)||"",codeOptIn:(null==M?void 0:M.codeOptIn)||"",codeOptInNoGoogleTagManager:(null==M?void 0:M.codeOptInNoGoogleTagManager)||!1,codeOptInNoMatomoTagManager:(null==M?void 0:M.codeOptInNoMatomoTagManager)||!1,codeOptOut:(null==M?void 0:M.codeOptOut)||"",codeOnPageLoad:(null==M?void 0:M.codeOnPageLoad)||"",codeOptOutNoGoogleTagManager:(null==M?void 0:M.codeOptOutNoGoogleTagManager)||!1,codeOptOutNoMatomoTagManager:(null==M?void 0:M.codeOptOutNoMatomoTagManager)||!1,codeOptOutDelete:(null==M?void 0:M.codeOptOutDelete)||!1,createContentBlocker:"boolean"==typeof(null==M?void 0:M.createContentBlocker)?M.createContentBlocker:pe&&!(null!=M&&M.deactivateAutomaticContentBlockerCreation),createContentBlockerId:null==M?void 0:M.createContentBlockerId,presetCheck:!T};(0,f.useEffect)((function(){H&&!j&&((0,m.Z)(le.groups.entries.values()).filter((function(e){return e.cookies.entries.get(V)}))[0]||G).cookies.getSingle({params:{id:V,context:"edit"}})}),[H,j]),(0,f.useEffect)((function(){de&&!de.attributes&&de.fetchAttributes()}),[de]),(0,f.useEffect)((function(){x&&(0,_.X)(0)}),[]);var fe=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){var a,n,o,r,i,c,d,m,p,g,h,f,y,_,w,Z,I,N,O,M,S;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n=function(e){return se?"encodedScript:".concat(R(e)):e},o=t.name,r=t.status,i=t.purpose,c=t.noTechnicalDefinitions,d=t.technicalDefinitions,m=t.group,p=t.codeDynamics,g=t.createContentBlocker,h=t.createContentBlockerId,f=t.consentForwardingUniqueName,y=t.codeOptIn,_=t.codeOptOut,w=t.codeOnPageLoad,Z=(0,u.Z)(t,["name","status","purpose","noTechnicalDefinitions","technicalDefinitions","group","codeDynamics","createContentBlocker","createContentBlockerId","consentForwardingUniqueName","codeOptIn","codeOptOut","codeOnPageLoad"]),delete(I=(0,s.Z)((0,s.Z)({},Z),{},{codeOptIn:n(y),codeOptOut:n(_),codeOnPageLoad:n(w),noTechnicalDefinitions:c,codeDynamics:JSON.stringify(p),technicalDefinitions:JSON.stringify(c?ve.technicalDefinitions:d),consentForwardingUniqueName:f||b(o)})).presetCheck,!H){e.next=15;break}return L.setName(o),L.setStatus(r),L.setPurpose(i),L.setMeta(I),L.setGroup(m),e.next=13,L.patch();case 13:e.next=20;break;case 15:return N=le.groups.entries.get(m),O=new E.U(N.cookies,{title:{rendered:o},content:{rendered:i,protected:!1},status:r,meta:(0,s.Z)((0,s.Z)({},I),{},{presetId:null==T?void 0:T.identifier,presetVersion:null==T?void 0:T.version})}),e.next=19,O.persist();case 19:null==A||A(O);case 20:re(!1),l.ZP.success((0,k.__)("You have successfully saved the service.")+(g?" ".concat((0,k.__)("Continue with the corresponding Content Blocker!")):"")),M="#rcb-services-with-empty-privacy-policy-notice",null===(a=document.querySelector("".concat(M,' li[data-id="').concat(V,'"]')))||void 0===a||a.classList.add("hidden"),document.querySelectorAll("".concat(M," > ul > li:not(.hidden)")).length||null===(S=document.querySelector(M))||void 0===S||S.remove(),P&&setTimeout((function(){return g?ie.push("/blocker/new?force=".concat(h||T.identifier,"&cookieCreationPrompt=1").concat("string"==typeof P?"&navigateAfterCreation=".concat(encodeURIComponent(P)):"")):"string"==typeof P?window.location.href=P:ie.push("".concat(q.slice(1),"/").concat(m))}),0),e.next=32;break;case 28:throw e.prev=28,e.t0=e.catch(0),l.ZP.error(e.t0.responseJSON.message),e.t0;case 32:case"end":return e.stop()}}),e,null,[[0,28]])})));return function(t){return e.apply(this,arguments)}}(),[H,L,le,se]),ye=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return X(!0),e.prev=1,e.next=4,fe(t);case 4:e.next=8;break;case 6:e.prev=6,e.t0=e.catch(1);case 8:return e.prev=8,X(!1),e.finish(8);case 11:case"end":return e.stop()}}),e,null,[[1,6,8,11]])})));return function(t){return e.apply(this,arguments)}}(),[$,fe]),Ee=(0,f.useCallback)((function(e){l.ZP.error((0,k.__)("The service could not be saved due to missing/invalid form values.")),e.errorFields.length&&$.getFieldInstance(e.errorFields[0].name).parentElement.scrollIntoView({behavior:"smooth",block:"center"})}),[]),Re=(0,f.useCallback)((function(){return!oe||(0,k.__)('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}),[$,ve]);return H&&!j?React.createElement(c.Z,{active:!0,paragraph:{rows:8}}):React.createElement(n.Z,{spinning:z||(null==de?void 0:de.busy)||!1},React.createElement(Z.Prompt,{message:Re}),React.createElement(p.Z,(0,o.Z)({name:"cookie-".concat(G.key,"-").concat(V),form:$},te,{initialValues:ve,onFinish:ye,onFinishFailed:Ee,onValuesChange:function(e){var t=e.technicalDefinitions;re(!0);var a=(t||[]).filter(Boolean);if(1===a.length){var n=Object.keys(a[0]);1===n.length&&["sessionDuration","type"].indexOf(n[0])>-1&&setTimeout((function(){return $.validateFields()}),100)}}}),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t,a=e.getFieldValue;return React.createElement(F,{groupNotices:[{message:de&&"number"==typeof me&&a("group")!==me?(0,k.__)("The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?"):void 0,severity:"warning"},{message:(null==M?void 0:M.groupNotice)||(null==de||null===(t=de.attributes)||void 0===t?void 0:t.groupNotice),severity:"info"}],providerPrivacyPolicyNotices:[{message:j||null==de||!de.attributes||ve.providerPrivacyPolicy?void 0:(0,k.__)('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href="%s" target="_blank">set the corresponding page in your settings.</a>',"#/settings"),severity:"warning"}],showNoticePresetGroupNotFound:"preset-group-not-found"===me&&M.group})})),React.createElement(K,null),React.createElement(ee,{dynamicFields:(null==M?void 0:M.dynamicFields)||(null==de||null===(I=de.attributes)||void 0===I?void 0:I.dynamicFields),notices:[{message:(null==M?void 0:M.technicalHandlingNotice)||(null==de||null===(O=de.attributes)||void 0===O?void 0:O.technicalHandlingNotice),severity:"info"},{message:he&&!pe&&(0,k.__)("If you have already used %s before creating this service, please deactivate the script/plugin with which the service was loaded so far. The opt-in script will now take care of the correct integration.",de.data.attributes_name),severity:"warning"},{message:he&&pe&&(0,k.__)('You are currently embedding "%1$s" outside of Real Cookie Banner. You can have it blocked via a content blocker before consenting. Alternatively, you can use the following opt-in script to load %1$s directly into Real Cookie Banner.<br /><br />If you want to embed "%1$s" via Real Cookie Banner, you have to deactivate the content blocker at the end of the form and remove "%1$s" outside Real Cookie Banner.<br /><br />If you prefer to keep the current integration, you only have to delete the opt-in script in this form.',de.data.attributes_name),severity:"warning"}].filter((function(e){return e.message}))}),!!T&&React.createElement(React.Fragment,null,pe&&P&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(p.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:function(e,a){return t("group")===ue.key&&a?Promise.reject((0,k.__)('Services that should be associated with a content blocker cannot be in the "Essential" group, because it cannot be rejected.')):Promise.resolve()}}]},React.createElement(i.Z,null,(0,k.__)("Create content blocker for this service.")))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.createContentBlocker!==t.createContentBlocker}},(function(e){var t=e.getFieldValue;return React.createElement(React.Fragment,null,t("createContentBlocker")&&React.createElement(React.Fragment,null,Object.keys(T.contentBlockerPresets).length>1&&React.createElement(p.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:(0,k.__)("Please select a template for the Content Blocker!")}]},React.createElement(r.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:(0,k.__)("Select Content Blocker template...")},Object.keys(T.contentBlockerPresets).map((function(e){return React.createElement(r.Z.Option,{key:e,value:e},T.contentBlockerPresets[e])})))),React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{marginTop:10}},React.createElement("p",null,(0,k.__)("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.")))),!!ge&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:ge}})))}))),React.createElement(p.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:function(e){return e||void 0},message:(0,k.__)("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:te.labelCol.span}},React.createElement(i.Z,null,(0,k.__)("I have checked the information in the service template myself and added any missing information or corrected any information that does not fit to my use case.")," ",React.createElement(C.r,{url:(0,k.__)("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))),React.createElement(p.Z.Item,{className:"rcb-form-sticky-submit"},React.createElement("span",null,React.createElement("input",{type:"submit",className:"button button-primary right",value:(0,k.__)("Save")})))))}))},5893:function(e,t,a){a.d(t,{C:function(){return o}});var n=a(6315),o=function(e){var t=e.children,a=e.description,o=e.offset;return React.createElement(n.Z.Item,{wrapperCol:{offset:o},style:{borderBottom:"1px solid #e7e7e7"}},React.createElement("h3",{style:{margin:"0 0 ".concat(a?3:15,"px 0")}},t),!!a&&React.createElement("p",{className:"description",style:{marginBottom:15}},a))}},7325:function(e,t,a){a.d(t,{y:function(){return r}});var n=a(6711),o=a(8700);function r(){return new o.Url("/".concat((0,n.useLocation)().search),!0).query}},8909:function(e,t,a){a.d(t,{R:function(){return c}});var n=a(6711),o=a(4163),r=a(7363),i=a(5706),c=function(){var e=(0,n.useRouteMatch)().params.cookieGroup,t=(0,o.m)().cookieStore,a=isNaN(+e)?0:+e,c=!!e,l=t.groups.entries.get(a)||new i.O(t.groups,{id:0}),s=(0,r.useCallback)((function(e){var t=e.key;return"#/cookies/".concat(l.key,"/edit/").concat(t)}),[l]),u="#/cookies/".concat(l.key,"/new");return{group:l,id:a,queried:c,fetched:0!==l.key,link:"#/cookies",editLink:s,addCookieLink:u}}}}]);
|
2 |
-
//# sourceMappingURL=548.lite.js.map?ver=52f0a1d264ca2f3d2fd1
|
|
|
|
public/dist/548.lite.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"file":"548.lite.js?ver=52f0a1d264ca2f3d2fd1","mappings":"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","sources":["webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///./src/public/ts/utils/base64EncodeUnicodeSafe.tsx","webpack:///./src/public/ts/utils/slugify.tsx","webpack:///./src/public/ts/hooks/useRouteCookie.tsx","webpack:///./src/public/ts/components/notices.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/general.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/technical.tsx","webpack:///./src/public/ts/utils/isHost.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/manager.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/codeDynamics.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/noticeFormItemContainsSkipIfActiveAttribute.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/handling.tsx","webpack:///./src/public/ts/components/config/cookies/form.tsx","webpack:///./src/public/ts/components/formHeadline.tsx","webpack:///./src/public/ts/hooks/useLocationQuery.tsx","webpack:///./src/public/ts/hooks/useRouteCookieGroup.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { CookieProperty } from \".\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\n\nvar CookiePropertyList = function CookiePropertyList(_ref) {\n var _ref$cookie = _ref.cookie,\n purpose = _ref$cookie.purpose,\n provider = _ref$cookie.provider,\n providerPrivacyPolicy = _ref$cookie.providerPrivacyPolicy,\n legalBasis = _ref$cookie.legalBasis,\n ePrivacyUSA = _ref$cookie.ePrivacyUSA,\n noTechnicalDefinitions = _ref$cookie.noTechnicalDefinitions,\n technicalDefinitions = _ref$cookie.technicalDefinitions,\n codeDynamics = _ref$cookie.codeDynamics,\n isEssentialGroup = _ref.isEssentialGroup;\n\n var _useBannerOrBlocker = useBannerOrBlocker(),\n i18n = _useBannerOrBlocker.i18n,\n ePrivacyUSAEnabled = _useBannerOrBlocker.ePrivacyUSA;\n\n var types = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(Fragment, null, !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicy && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.providerPrivacyPolicy,\n value: providerPrivacyPolicy\n }), !!ePrivacyUSAEnabled && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.ePrivacyUSA,\n value: ePrivacyUSA,\n printValueAs: \"boolean\"\n }), !noTechnicalDefinitions && technicalDefinitions.map(function (_ref2) {\n var type = _ref2.type,\n name = _ref2.name,\n host = _ref2.host,\n duration = _ref2.duration,\n durationUnit = _ref2.durationUnit,\n sessionDuration = _ref2.sessionDuration,\n purpose = _ref2.purpose;\n return /*#__PURE__*/React.createElement(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.host,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.duration,\n value: [\"local\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? i18n.noExpiration : sessionDuration || type === \"session\" ? \"Session\" : \"\".concat(duration, \" \").concat(i18n.durationUnit[durationUnit])\n }));\n }));\n};\n\nfunction getCookieTypeLocalizationMap() {\n return {\n http: {\n name: \"HTTP Cookie\",\n abbr: \"HTTP\",\n backgroundColor: \"black\"\n },\n local: {\n name: \"Local Storage\",\n abbr: \"Local\",\n backgroundColor: \"#b3983c\"\n },\n session: {\n name: \"Session Storage\",\n abbr: \"Session\",\n backgroundColor: \"#3c99b3\"\n },\n flash: {\n name: \"Flash Local Shared Object\",\n abbr: \"Flash\",\n backgroundColor: \"#b33c3c\"\n },\n indexedDb: {\n name: \"IndexedDB\",\n abbr: \"I-DB\",\n backgroundColor: \"#4ab33c\"\n }\n };\n}\n\nexport { CookiePropertyList, getCookieTypeLocalizationMap };","/**\n * Unicode-safe base64 encoding.\n *\n * @see https://stackoverflow.com/a/30106551/5506547\n */\nfunction base64EncodeUnicodeSafe(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n }));\n}\n\nexport { base64EncodeUnicodeSafe };","/**\n * Slugify a given text.\n *\n * @see https://gist.github.com/codeguy/6684588\n */\nfunction slugify(str) {\n str = str.replace(/^\\s+|\\s+$/g, \"\"); // trim\n\n str = str.toLowerCase(); // remove accents, swap ñ for n, etc\n\n var from = \"àáäâèéëêìíïîòóöôùúüûñç·/_,:;\";\n var to = \"aaaaeeeeiiiioooouuuunc------\";\n\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), \"g\"), to.charAt(i));\n }\n\n str = str.replace(/[^a-z0-9 -]/g, \"\") // remove invalid chars\n .replace(/\\s+/g, \"-\") // collapse whitespace and replace by -\n .replace(/-+/g, \"-\"); // collapse dashes\n\n return str;\n}\n\nexport { slugify };","import { useRouteMatch } from \"react-router-dom\";\nimport { CookieModel } from \"../models\";\nimport { useRouteCookieGroup } from \".\";\n\nvar useRouteCookie = function useRouteCookie() {\n var routeGroup = useRouteCookieGroup();\n var group = routeGroup.group;\n\n var _useRouteMatch = useRouteMatch(),\n params = _useRouteMatch.params; // Get cookie or return draft object\n\n\n var id = isNaN(+params.cookie) ? 0 : +params.cookie;\n var queried = !!params.cookie;\n var cookie = group.cookies.entries.get(+params.cookie) || new CookieModel(group.cookies, {\n id: 0\n });\n return {\n routeGroup: routeGroup,\n cookie: cookie,\n id: id,\n queried: queried,\n fetched: cookie.key !== 0\n };\n};\n\nexport { useRouteCookie };","var Notices = function Notices(_ref) {\n var notices = _ref.notices;\n return /*#__PURE__*/React.createElement(React.Fragment, null, notices === null || notices === void 0 ? void 0 : notices.map(function (_ref2) {\n var message = _ref2.message,\n severity = _ref2.severity;\n return message ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-\".concat(severity, \" below-h2 notice-alt\"),\n key: message\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: message\n }\n })) : null;\n }));\n};\n\nexport { Notices };","import _Switch from \"antd/es/switch\";\nimport _Select from \"antd/es/select\";\nimport _Radio from \"antd/es/radio\";\nimport _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { useCallback } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { _i, __, request, slugify } from \"../../../../utils\";\nimport { useStores } from \"../../../../store\";\nimport { FormHeadline, LearnMoreTag, Notices } from \"../../..\";\nimport { CookieEditFormLayout } from \"..\";\nimport { locationRestForwardCookieGet } from \"../../../../wp-api\";\nimport { useRouteCookie } from \"../../../../hooks\";\nvar CookieEditFormGeneralFields = observer(function (_ref) {\n var _cookie$presetModel, _cookie$presetModel$d;\n\n var _ref$showNoticePreset = _ref.showNoticePresetGroupNotFound,\n showNoticePresetGroupNotFound = _ref$showNoticePreset === void 0 ? false : _ref$showNoticePreset,\n groupNotices = _ref.groupNotices,\n providerPrivacyPolicyNotices = _ref.providerPrivacyPolicyNotices;\n\n var _useStores = useStores(),\n _useStores$cookieStor = _useStores.cookieStore,\n groups = _useStores$cookieStor.groups,\n essentialGroup = _useStores$cookieStor.essentialGroup,\n _useStores$optionStor = _useStores.optionStore,\n ePrivacyUSA = _useStores$optionStor.ePrivacyUSA,\n consentForwarding = _useStores$optionStor.consentForwarding;\n\n var _useRouteCookie = useRouteCookie(),\n cookie = _useRouteCookie.cookie,\n fetched = _useRouteCookie.fetched;\n\n var isRealCookieBannerPreset = ((_cookie$presetModel = cookie.presetModel) === null || _cookie$presetModel === void 0 ? void 0 : (_cookie$presetModel$d = _cookie$presetModel.data) === null || _cookie$presetModel$d === void 0 ? void 0 : _cookie$presetModel$d.identifier) === \"real-cookie-banner\";\n var findByUniqueCookieName = useCallback( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(slug) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return request({\n location: locationRestForwardCookieGet,\n params: {\n slug: slug\n }\n });\n\n case 3:\n return _context.abrupt(\"return\", _context.sent.filter(function (d) {\n return d.ID !== cookie.key;\n })[0]);\n\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\", undefined);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 6]]);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [cookie.key]);\n var validateUniqueCookieName = useCallback( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(slug, allowOverwrite) {\n var found, _consentForwardingUniqueName, matchRegexp, foundGenerated;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return findByUniqueCookieName(slug);\n\n case 2:\n found = _context2.sent;\n\n if (!found) {\n _context2.next = 19;\n break;\n }\n\n if (allowOverwrite) {\n _context2.next = 8;\n break;\n }\n\n throw __(\"A service with the same unique name already exists.\");\n\n case 8:\n // Consent Forwarding is deactivated, so we need to generate an unique name for the user\n _consentForwardingUniqueName = found.metas.consentForwardingUniqueName;\n matchRegexp = /^(.*)-(\\d+)$/;\n foundGenerated = found;\n\n case 11:\n if (!foundGenerated) {\n _context2.next = 18;\n break;\n }\n\n _consentForwardingUniqueName = _consentForwardingUniqueName.match(matchRegexp) ? _consentForwardingUniqueName.replace(matchRegexp, function (_, g1, g2) {\n return \"\".concat(g1, \"-\").concat(+g2 + 1);\n }) : \"\".concat(_consentForwardingUniqueName, \"-1\");\n _context2.next = 15;\n return findByUniqueCookieName(_consentForwardingUniqueName);\n\n case 15:\n foundGenerated = _context2.sent;\n _context2.next = 11;\n break;\n\n case 18:\n // Overwrite in form\n allowOverwrite(_consentForwardingUniqueName);\n\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n }(), [findByUniqueCookieName]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span\n }, __(\"General service configuration\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/\")\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Name\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"name\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide a name!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('Each service used should have a descriptive name that is understandable to a non-professional user. Example: \"Google Analytics\".'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Status\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"status\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please choose a status!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, null, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"publish\"\n }, __(\"Enabled\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"private\"\n }, __(\"Disabled\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"draft\"\n }, __(\"Draft\")))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('Services with the status \"Draft\" or \"Disabled\" are not visible to the public. In addition, a draft will be highlighted in the service table so that you do not forget to configure it.'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Group\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"group\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide a group!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, null, groups.sortedGroups.map(function (_ref4) {\n var _ref4$data = _ref4.data,\n id = _ref4$data.id,\n name = _ref4$data.name;\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name);\n }))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Each service must be assigned to a group. All services that do not belong to the group of essential services can (but do not have to) be accepted by visitors. According to the ePrivacy Directive, only services without which the website would not work are considered as essential services if the visitor has explicitly requested the service used. A possible economic interest of the website operator in using a tool, e.g. Google Analytics, is irrelevant.\")), showNoticePresetGroupNotFound !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.\", showNoticePresetGroupNotFound))), /*#__PURE__*/React.createElement(Notices, {\n notices: groupNotices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"provider\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please name a provider!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('A service always has an \"owner\", who processes collected data or information saved in cookies etc. Please specify which provider creates cookies and processes personal data, e.g. \"Google Ireland Limited\". If you are the provider, please enter your legal name.'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Purpose\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"purpose\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how {{a}}personal data{{/a}} is collected and how cookies are used for this purpose.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/2021/personal-data-gdpr/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n }))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicy\",\n noStyle: true,\n rules: [{\n required: true,\n type: \"url\",\n message: __(\"Please provide a valid URL!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).\")), /*#__PURE__*/React.createElement(Notices, {\n notices: providerPrivacyPolicyNotices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group || prevValues.name !== nextValues.name;\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue,\n setFieldsValue = _ref5.setFieldsValue;\n var isEssentialGroup = getFieldValue(\"group\") === essentialGroup.key;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Consent Forwarding Unique Name\"),\n style: {\n display: consentForwarding ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"consentForwardingUniqueName\",\n noStyle: true,\n validateTrigger: \"onBlur\",\n rules: [{\n validator: function () {\n var _validator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rules, value) {\n var allowOverwrite;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n allowOverwrite = consentForwarding ? !value : true;\n return _context3.abrupt(\"return\", validateUniqueCookieName(value || slugify(getFieldValue(\"name\")), allowOverwrite ? function (consentForwardingUniqueName) {\n return setFieldsValue({\n consentForwardingUniqueName: consentForwardingUniqueName\n });\n } : undefined));\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function validator(_x4, _x5) {\n return _validator.apply(this, arguments);\n }\n\n return validator;\n }()\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: fetched ? \"\" : slugify(getFieldValue(\"name\"))\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Consent Forwarding is active. This means that all services on all available instances must be identified by a unique name in order to correctly set consent for a service.\")), isEssentialGroup && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You can define a unique name, but essential services are automatically accepted when a consent is forwarded.\")))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Legal basis\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"legalBasis\",\n noStyle: true,\n rules: [{\n required: true\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n disabled: isEssentialGroup\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"consent\"\n }, __(\"Consent (Opt-in)\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legitimate-interest\"\n }, __(\"Legitimate interest (Opt-out)\")), isRealCookieBannerPreset && /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legal-requirement\"\n }, __(\"Compliance with a legal obligation\")))), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"5px 0px 0px\"\n }\n }, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/\")\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__('Services can be used on various legal bases according to Art. 6 GDPR. \"Consent\" means that the user must explicitly agree to the service (opt-in). \"Legitimate interest\" means that your interest as a website operator prevails to use the service and the user must explicitly disagree (opt-out). Unless it is an essential service. Then an objection is not possible. {{strong}}A legitimate interest exists only in rare cases and only for data processing. If you are not sure, it is better to obtain consent to be on the safe side.{{/strong}}'), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), isEssentialGroup && !isRealCookieBannerPreset && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __('Your service is currently grouped as \"Essential\". This group implies the legitimate interest, with the only difference that this service cannot be opted out.')))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group || prevValues.ePrivacyUSA !== nextValues.ePrivacyUSA;\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"US data processing\"),\n style: {\n display: ePrivacyUSA ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"ePrivacyUSA\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"This service processes data in the USA or transfers data to US companies or servers\")), getFieldValue(\"ePrivacyUSA\") && getFieldValue(\"group\") === essentialGroup.key && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"If you use this service declaration only as a notice and the corresponding service is already embedded outside the cookie banner on the first visit to the website, it is possible that the service used in the USA is already processing data before the user has agreed to this. From a data protection perspective, the use of such services should be avoided, or the service should be embedded in the opt-in code (execution after consent). In practice, this will not always be possible.\"))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"No technical definitions\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"noTechnicalDefinitions\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.\"))));\n});\nexport { CookieEditFormGeneralFields };","import _Checkbox from \"antd/es/checkbox\";\nimport _Input from \"antd/es/input\";\nimport _Form from \"antd/es/form\";\nimport _Select from \"antd/es/select\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, isHost } from \"../../../../utils\";\nimport { PlusOutlined, QuestionCircleFilled, DeleteOutlined, MenuOutlined } from \"@ant-design/icons\";\nimport { FormHeadline } from \"../../..\";\nimport { CookieEditFormLayout, technicalDefinitionDefaults } from \"..\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { SortableHandle, SortableElement, SortableContainer } from \"react-sortable-hoc\";\nimport { getCookieTypeLocalizationMap } from \"@devowl-wp/react-cookie-banner\";\nvar WP_LIST_TABLE_FORM_ITEM_PROPS = {\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n },\n style: {\n margin: 0\n }\n};\nvar CookieEditFormTechnicalFields = observer(function () {\n var cookieTypeLocalized = getCookieTypeLocalizationMap();\n var tbodyRef = useRef();\n\n var _useMemo = useMemo(function () {\n return {\n DragHandle: SortableHandle(function () {\n return /*#__PURE__*/React.createElement(MenuOutlined, {\n style: {\n cursor: \"grab\",\n color: \"#999\",\n marginTop: 5\n },\n className: \"button button-small button-link\"\n });\n }),\n SortableItem: SortableElement(function (props) {\n return /*#__PURE__*/React.createElement(\"tr\", props);\n }),\n SortableBody: SortableContainer(function (props) {\n return /*#__PURE__*/React.createElement(\"tbody\", _extends({\n ref: tbodyRef\n }, props));\n })\n };\n }, []),\n DragHandle = _useMemo.DragHandle,\n SortableItem = _useMemo.SortableItem,\n SortableBody = _useMemo.SortableBody;\n\n var handleSortStart = useCallback(function (_ref) {\n var node = _ref.node,\n helper = _ref.helper;\n node.childNodes.forEach(function (td, index) {\n helper.childNodes[index].style.width = \"\".concat(td.offsetWidth, \"px\");\n });\n }, []);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.noTechnicalDefinitions !== nextValues.noTechnicalDefinitions || prevValues.technicalDefinitions.length !== nextValues.technicalDefinitions.length;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, function (fields, _ref3) {\n var add = _ref3.add,\n remove = _ref3.remove,\n move = _ref3.move;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span,\n description: __(\"For each service you use, you should specify all cookies that are used by it. You can find this out in the developer console of your browser. Please note that there are several types of cookies and that the law requires that you inform your visitors not only about (HTTP) cookies, but also about cookie-like information.\")\n }, __(\"Technical cookie information\")), /*#__PURE__*/React.createElement(\"table\", {\n className: \"wp-list-table widefat fixed striped table-view-list\",\n style: {\n marginBottom: 25\n }\n }, /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n width: 45,\n align: \"right\"\n }, \"\\xA0\"), /*#__PURE__*/React.createElement(\"td\", {\n width: 150\n }, __(\"Cookie type\")), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: _i(__(\"Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie name\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Every cookie is associated to a domain or hostname.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie host\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 250\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Cookie duration\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Purpose\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 70,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(SortableBody, {\n useDragHandle: true,\n onSortEnd: function onSortEnd(_ref4) {\n var oldIndex = _ref4.oldIndex,\n newIndex = _ref4.newIndex;\n return move(oldIndex, newIndex);\n },\n onSortStart: handleSortStart,\n helperContainer: function helperContainer() {\n return tbodyRef.current;\n }\n }, fields.map(function (field, index) {\n return /*#__PURE__*/React.createElement(SortableItem, {\n key: field.key,\n index: index\n }, /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 ? /*#__PURE__*/React.createElement(DragHandle, null) : undefined), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"type\"],\n name: [field.name, \"type\"],\n rules: [{\n required: true,\n message: __(\"Please provide a cookie type!\")\n }]\n }), /*#__PURE__*/React.createElement(_Select, null, Object.keys(cookieTypeLocalized).map(function (key) {\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key,\n style: {\n display: key === \"flash\" ? \"none\" : undefined\n }\n }, cookieTypeLocalized[key].name);\n })))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"name\"],\n name: [field.name, \"name\"],\n rules: [{\n required: true,\n message: __(\"Please provide a technical cookie name!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical, _nextValues$technical;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.name) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.name);\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue;\n var cookieName = getFieldValue([\"technicalDefinitions\", field.name, \"name\"]);\n var notSupportedCookieNamePlaceholders = [/\\[/gm, [/([{]+)/gm, function (match) {\n return match.length === 1;\n }], /\\(/gm];\n return notSupportedCookieNamePlaceholders.filter(function (r) {\n return Array.isArray(r) ? r[0].test(cookieName) && cookieName.match(r[0]).filter(r[1]).length > 0 : r.test(cookieName);\n }).length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning inline below-h2 notice-alt\",\n style: {\n margin: \"10px 0 0 0\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"Are you sure this is the name of the cookie? It seems like you are using a placeholder that is not supported. Please use an asterisk ({{code}}*{{/code}}) as a placeholder if the cookie name is dynamically composed.\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.type) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.type);\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n var type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"host\"],\n name: [field.name, \"host\"],\n rules: [{\n validator: function validator(_, value) {\n return ([\"local\", \"session\", \"indexedDb\"].indexOf(type) > -1 ? isUrl(value) : isHost(value)) || value === \"\" && type !== \"http\" ? Promise.resolve() : Promise.reject(__(\"Please provide a valid hostname!\"));\n }\n }]\n }), /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical3, _nextValues$technical3;\n\n return ((_prevValues$technical3 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical3 === void 0 ? void 0 : _prevValues$technical3.host) !== ((_nextValues$technical3 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical3 === void 0 ? void 0 : _nextValues$technical3.host);\n }\n }, function (_ref7) {\n var getFieldValue = _ref7.getFieldValue;\n var host = getFieldValue([\"technicalDefinitions\", field.name, \"host\"]);\n return host.startsWith(\"*.\") && host.length > 2 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning inline below-h2 notice-alt\",\n style: {\n margin: \"10px 0 0 0\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.\", host.substr(2)), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })));\n }));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical4, _nextValues$technical4;\n\n return ((_prevValues$technical4 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical4 === void 0 ? void 0 : _prevValues$technical4.type) !== ((_nextValues$technical4 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical4 === void 0 ? void 0 : _nextValues$technical4.type);\n }\n }, function (_ref8) {\n var getFieldValue = _ref8.getFieldValue;\n var type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n return [\"local\", \"session\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? null : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {\n fieldKey: [field.fieldKey, \"sessionDuration\"],\n name: [field.name, \"sessionDuration\"],\n noStyle: true,\n valuePropName: \"checked\"\n }), /*#__PURE__*/React.createElement(_Checkbox, {\n style: {\n float: \"left\",\n marginTop: 5\n }\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"This cookie is active as long as the session is active\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Session\"))))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical5, _nextValues$technical5;\n\n return ((_prevValues$technical5 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical5 === void 0 ? void 0 : _prevValues$technical5.sessionDuration) !== ((_nextValues$technical5 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical5 === void 0 ? void 0 : _nextValues$technical5.sessionDuration);\n }\n }, function (_ref9) {\n var getFieldValue = _ref9.getFieldValue;\n var sessionDuration = getFieldValue([\"technicalDefinitions\", field.name, \"sessionDuration\"]);\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"duration\"],\n name: [field.name, \"duration\"],\n rules: [{\n required: !sessionDuration,\n message: __(\"Please provide a valid duration!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n min: \"0\",\n addonAfter: /*#__PURE__*/React.createElement(_Form.Item, {\n name: [field.name, \"durationUnit\"],\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide an unit!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, null, /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"s\"\n }, __(\"second(s)\")), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"m\"\n }, __(\"minute(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"h\"\n }, __(\"hour(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"d\"\n }, __(\"day(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"mo\"\n }, __(\"month(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"y\"\n }, __(\"year(s)\"), \" \"))),\n type: \"number\",\n style: {\n maxWidth: 200,\n display: sessionDuration ? \"none\" : undefined\n }\n }));\n }));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"purpose\"],\n name: [field.name, \"purpose\"]\n }), /*#__PURE__*/React.createElement(_Input.TextArea, {\n rows: 1,\n autoSize: {\n maxRows: 3\n }\n }))), /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 ? /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-small\",\n onClick: function onClick() {\n remove(field.name);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)) : null));\n })), /*#__PURE__*/React.createElement(\"tfoot\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: 7,\n align: \"right\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: function onClick() {\n add(technicalDefinitionDefaults);\n }\n }, /*#__PURE__*/React.createElement(PlusOutlined, null), \" \", __(\"Add another cookie definition\")))))));\n });\n });\n});\nexport { CookieEditFormTechnicalFields };","/**\n * Is a passed host string valid?\n *\n * @param url\n * @see https://stackoverflow.com/a/106223/5506547\n */\nfunction isHost(url) {\n return /^\\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(url);\n}\n\nexport { isHost };","import _Input from \"antd/es/input\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { observer } from \"mobx-react\";\nimport { CookieEditFormLayout } from \"..\";\nimport { __ } from \"../../../../utils\";\nimport { useStores } from \"../../../../store\";\nimport { useRouteCookie } from \"../../../../hooks\";\nimport { LearnMoreTag } from \"../../..\";\n/**\n * Common manager form items. It provides fields for \"This is manger XY\" and in/out events.\n * If you add another manager, please also consider to add the meta fields to REST and initial values\n * of the cookie form itself.\n */\n\nvar CookieEditFormManagerFields = observer(function (_ref) {\n var manager = _ref.manager,\n onlyWhenManagerIs = _ref.onlyWhenManagerIs,\n hasManagerAttributeName = _ref.hasManagerAttributeName,\n thisIsManagerAttributeName = _ref.thisIsManagerAttributeName,\n inEventNameAttributeName = _ref.inEventNameAttributeName,\n outEventNameAttributeName = _ref.outEventNameAttributeName;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n _useStores$optionStor = _useStores.optionStore,\n setCookiesViaManager = _useStores$optionStor.setCookiesViaManager,\n hasManager = _useStores$optionStor[hasManagerAttributeName],\n isPro = _useStores$optionStor.others.isPro;\n\n var essentialGroup = cookieStore.essentialGroup;\n\n var _useRouteCookie = useRouteCookie(),\n cookie = _useRouteCookie.cookie;\n\n return setCookiesViaManager === onlyWhenManagerIs && isPro && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: hasManager && cookie.key !== hasManager ? __(\"You have already defined a %s service.\", manager) : \"\"\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: thisIsManagerAttributeName,\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, {\n disabled: hasManager && cookie.key !== hasManager\n })), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Opt-in script below loads %s\", manager))))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, curValues) {\n return prevValues[thisIsManagerAttributeName] !== curValues[thisIsManagerAttributeName] || prevValues.group !== curValues.group;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var isActive = getFieldValue(thisIsManagerAttributeName);\n var group = getFieldValue(\"group\");\n return isActive && group !== essentialGroup.key && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You have defined %1$s in a non-essential service group. In our legal opinion, this is the only way to use %1$s legally. However, please note that if a user doesn't consent to load %1$s, opt-in and opt-out events will not be sent to %1$s. Real Cookie Banner offers you the possibility to specify a fallback HTML/JavaScript for this case.\", manager))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, curValues) {\n return prevValues[thisIsManagerAttributeName] !== curValues[thisIsManagerAttributeName] || prevValues[inEventNameAttributeName] !== curValues[inEventNameAttributeName] || prevValues[outEventNameAttributeName] !== curValues[outEventNameAttributeName];\n }\n }, function (_ref3) {\n var getFieldValue = _ref3.getFieldValue;\n var active = getFieldValue(thisIsManagerAttributeName);\n var inEventName = getFieldValue(inEventNameAttributeName);\n var outEventName = getFieldValue(outEventNameAttributeName);\n return !active && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Event names for %s\", manager)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: inEventNameAttributeName,\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, {\n addonBefore: __(\"Opt-in\"),\n style: {\n maxWidth: 400,\n marginRight: 10,\n marginBottom: 5\n }\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n name: outEventNameAttributeName,\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, {\n addonBefore: __(\"Opt-out\"),\n style: {\n maxWidth: 400,\n marginRight: 10,\n marginBottom: 5\n }\n })), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/\")\n })), (inEventName.length > 0 || outEventName.length > 0) && !hasManager && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You have not yet defined a %s service. To use event names, you must create a %s service.\", manager, manager))));\n }));\n});\nexport { CookieEditFormManagerFields };","var DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\n/**\n * Takes any string and replaces `{{myVariable}}` with the value of the passed `dynamics` map.\n */\n\nfunction applyDynamicsToHtml(src, dynamics) {\n return src.replace(DYNAMICS_VARIABLE_REGEXP, function (fullMatch, variableName) {\n return Object.prototype.hasOwnProperty.call(dynamics, variableName) ? dynamics[variableName] : fullMatch;\n });\n}\n\nexport { applyDynamicsToHtml, DYNAMICS_VARIABLE_REGEXP };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../../../utils\";\nimport { DYNAMICS_VARIABLE_REGEXP } from \"@devowl-wp/headless-content-unblocker\";\nvar DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\n\n/**\n * Provide dynamic variables in `codeOptIn`, `codeOptOut` and `codeOnPageLoad`.\n */\nvar CookieEditFormCodeDynamics = observer(function (_ref) {\n var dynamicFields = _ref.dynamicFields;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return DYNAMICS_SEARCH_IN.map(function (k) {\n return prevValues[k] !== nextValues[k];\n }).filter(Boolean).length > 0;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var searchInResolved = DYNAMICS_SEARCH_IN.map(function (k) {\n return getFieldValue(k);\n }).join(\"\");\n var matches = Array.from(searchInResolved.matchAll(DYNAMICS_VARIABLE_REGEXP)).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n m = _ref4[1];\n\n return m;\n });\n var added = [];\n return matches ? matches.map(function (name) {\n var formName = [\"codeDynamics\", name];\n\n var _ref5 = (dynamicFields === null || dynamicFields === void 0 ? void 0 : dynamicFields[name]) || {},\n label = _ref5.label,\n _ref5$invalidMessage = _ref5.invalidMessage,\n invalidMessage = _ref5$invalidMessage === void 0 ? __(\"Please fill in a value!\") : _ref5$invalidMessage,\n example = _ref5.example,\n expression = _ref5.expression,\n hint = _ref5.hint;\n\n if (added.indexOf(name) > -1) {\n return null;\n }\n\n added.push(name);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n key: name,\n label: label || /*#__PURE__*/React.createElement(\"code\", null, name),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: formName,\n rules: [{\n required: true,\n pattern: expression ? new RegExp(expression) : undefined,\n message: invalidMessage\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: example ? \"\".concat(__(\"e. g.\"), \" \").concat(example) : undefined\n })), !!hint && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\",\n style: {\n margin: \"10px 0 5px\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: hint\n }\n })));\n }) : null;\n });\n});\nexport { CookieEditFormCodeDynamics };","import _Form from \"antd/es/form\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { useMemo } from \"react\";\nimport { _i, __ } from \"../../../../utils\";\nimport { observer } from \"mobx-react\";\nimport { useStores } from \"../../../../store\";\nvar NoticeFormItemContainsSkipIfActiveAttribute = observer(function (_ref) {\n var name = _ref.name;\n\n var _useStores = useStores(),\n activePlugins = _useStores.optionStore.others.activePlugins;\n\n var activePluginKeys = useMemo(function () {\n return Object.keys(activePlugins);\n }, [activePlugins]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues[name] !== nextValues[name];\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var value = getFieldValue(name); // Find `skip-if-active` and their active plugins\n\n var matches = _toConsumableArray(value.matchAll(/\\s+(skip-if-active=\")([^\"]+)(\")/gm)).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 3),\n plugins = _ref4[2];\n\n return plugins.split(\",\").filter(function (plugin) {\n return activePluginKeys.indexOf(plugin) > -1;\n });\n }).flat();\n\n var uniq = matches.filter(function (plugin, i) {\n return matches.indexOf(plugin) === i;\n });\n\n if (uniq.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"The code above contains HTML tags that are skipped when one of the following plugins is active: {{strong/}}. {{i}}What does this mean for me?{{/i}} In most cases, another plugin will take over the execution of the technical code, and you have to create a corresponding content blocker.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null, uniq.map(function (plugin) {\n return activePlugins[plugin];\n }).join(\", \")),\n i: /*#__PURE__*/React.createElement(\"i\", null)\n })));\n });\n});\nexport { NoticeFormItemContainsSkipIfActiveAttribute };","import _Switch from \"antd/es/switch\";\nimport _Form from \"antd/es/form\";\nimport { useCallback } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { FormHeadline, CodeMirror, Notices } from \"../../..\";\nimport { CookieEditFormLayout } from \"..\";\nimport { __, _i } from \"../../../../utils\";\nimport { MANAGER_GTM_LABEL, MANAGER_MTM_LABEL } from \"../..\";\nimport { useStores } from \"../../../../store\";\nimport { CookieEditFormManagerFields, CookieEditFormCodeDynamics, NoticeFormItemContainsSkipIfActiveAttribute } from \".\";\nvar CookieEditFormHandlingFields = observer(function (_ref) {\n var notices = _ref.notices,\n dynamicFields = _ref.dynamicFields;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n _useStores$optionStor = _useStores.optionStore,\n setCookiesViaManager = _useStores$optionStor.setCookiesViaManager,\n isPro = _useStores$optionStor.others.isPro;\n\n var essentialGroup = cookieStore.essentialGroup; // CodeMirror does not support \"display:none;\", we need to hide it in a hacky way\n\n var createHiddenFormItemsWithCodeMirror = useCallback(function (visible) {\n return {\n opacity: visible ? undefined : 0,\n height: visible ? undefined : 0,\n margin: visible ? undefined : 0\n };\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span,\n description: setCookiesViaManager === \"none\" ? __(\"Define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service or when a page is loaded. It is important to define the executed code correctly, as this ensures that scripts are executed and cookies are set only after the user's consent.\") : __(\"Define the %1$s event that should be thrown in the data layer when a visitor decides to accept or reject this service. The event can be used as a trigger in %1$s. For users who do not allow to use %1$s a fallback can be defined. You can define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service, or when a page is loaded. It is important to define the event names and executed code correctly, as this will ensure that scripts are executed and cookies are only set with the user's consent.\", setCookiesViaManager === \"googleTagManager\" ? MANAGER_GTM_LABEL : MANAGER_MTM_LABEL)\n }, __(\"Technical handling\")), /*#__PURE__*/React.createElement(CookieEditFormManagerFields, {\n manager: MANAGER_GTM_LABEL,\n onlyWhenManagerIs: \"googleTagManager\",\n hasManagerAttributeName: \"hasGTM\",\n thisIsManagerAttributeName: \"thisIsGoogleTagManager\",\n inEventNameAttributeName: \"googleTagManagerInEventName\",\n outEventNameAttributeName: \"googleTagManagerOutEventName\"\n }), /*#__PURE__*/React.createElement(CookieEditFormManagerFields, {\n manager: MANAGER_MTM_LABEL,\n onlyWhenManagerIs: \"matomoTagManager\",\n hasManagerAttributeName: \"hasMTM\",\n thisIsManagerAttributeName: \"thisIsMatomoTagManager\",\n inEventNameAttributeName: \"matomoTagManagerInEventName\",\n outEventNameAttributeName: \"matomoTagManagerOutEventName\"\n }), /*#__PURE__*/React.createElement(CookieEditFormCodeDynamics, {\n dynamicFields: dynamicFields\n }), (notices === null || notices === void 0 ? void 0 : notices.length) > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span,\n span: CookieEditFormLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: notices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-in\")\n }, setCookiesViaManager === \"googleTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsGoogleTagManager !== nextValues.thisIsGoogleTagManager;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n return !getFieldValue(\"thisIsGoogleTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptInNoGoogleTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_GTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), setCookiesViaManager === \"matomoTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsMatomoTagManager !== nextValues.thisIsMatomoTagManager;\n }\n }, function (_ref3) {\n var getFieldValue = _ref3.getFieldValue;\n return !getFieldValue(\"thisIsMatomoTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptInNoMatomoTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_MTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptIn\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOptIn\"\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref4) {\n var getFieldValue = _ref4.getFieldValue;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-out\"),\n style: createHiddenFormItemsWithCodeMirror(getFieldValue(\"group\") !== essentialGroup.key)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.noTechnicalDefinitions !== nextValues.noTechnicalDefinitions;\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutDelete\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.\")));\n }), setCookiesViaManager === \"googleTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsGoogleTagManager !== nextValues.thisIsGoogleTagManager;\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n return !getFieldValue(\"thisIsGoogleTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutNoGoogleTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_GTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), setCookiesViaManager === \"matomoTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsMatomoTagManager !== nextValues.thisIsMatomoTagManager;\n }\n }, function (_ref7) {\n var getFieldValue = _ref7.getFieldValue;\n return !getFieldValue(\"thisIsMatomoTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutNoMatomoTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_MTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOut\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOptOut\"\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on page load\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOnPageLoad\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOnPageLoad\"\n })));\n});\nexport { CookieEditFormHandlingFields };","import _Spin from \"antd/es/spin\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport _message from \"antd/es/message\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _Form from \"antd/es/form\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { CookieModel } from \"../../../models\";\nimport { __, scrollTo, slugify, base64EncodeUnicodeSafe } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { useHistory, Prompt } from \"react-router-dom\";\nimport { useRouteCookie } from \"../../../hooks\";\nimport { CookieEditFormGeneralFields, CookieEditFormTechnicalFields, CookieEditFormHandlingFields } from \".\";\nimport { LearnMoreTag } from \"../..\";\nvar CookieEditFormLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nvar technicalDefinitionDefaults = {\n type: \"http\",\n name: \"\",\n host: \"\",\n duration: undefined,\n durationUnit: \"y\",\n sessionDuration: false,\n purpose: \"\"\n};\nvar CookieEditForm = observer(function (_ref) {\n var _cookieStore$groups$s, _cookieStore$groups$s2, _presetModel$attribut, _presetModel$attribut2, _presetModel$attribut4, _presetModel$attribut5;\n\n var preset = _ref.preset,\n attributes = _ref.attributes,\n _ref$navigateAfterCre = _ref.navigateAfterCreation,\n navigateAfterCreation = _ref$navigateAfterCre === void 0 ? true : _ref$navigateAfterCre,\n _ref$scrollToTop = _ref.scrollToTop,\n scrollToTop = _ref$scrollToTop === void 0 ? true : _ref$scrollToTop,\n onCreated = _ref.onCreated;\n\n var _useRouteCookie = useRouteCookie(),\n _useRouteCookie$route = _useRouteCookie.routeGroup,\n group = _useRouteCookie$route.group,\n link = _useRouteCookie$route.link,\n cookie = _useRouteCookie.cookie,\n id = _useRouteCookie.id,\n queried = _useRouteCookie.queried,\n fetched = _useRouteCookie.fetched;\n\n var _Form$useForm = _Form.useForm(),\n _Form$useForm2 = _slicedToArray(_Form$useForm, 1),\n form = _Form$useForm2[0];\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isBusy = _useState2[0],\n setIsBusy = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n hasChanges = _useState4[0],\n setHasChanges = _useState4[1];\n\n var history = useHistory();\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n useEncodedStringForScriptInputs = _useStores.optionStore.others.useEncodedStringForScriptInputs;\n\n var essentialGroup = cookieStore.essentialGroup;\n var presetModel = (cookie === null || cookie === void 0 ? void 0 : cookie.presetModel) || cookieStore.presetsCookie.get(preset === null || preset === void 0 ? void 0 : preset.identifier); // Determine the group to use for a given preset, otherwise use current opened group tab\n\n var useGroup = attributes ? attributes.group ? ((_cookieStore$groups$s = cookieStore.groups.sortedGroups.filter(function (_ref2) {\n var name = _ref2.data.name;\n return name === attributes.group;\n })) === null || _cookieStore$groups$s === void 0 ? void 0 : (_cookieStore$groups$s2 = _cookieStore$groups$s[0]) === null || _cookieStore$groups$s2 === void 0 ? void 0 : _cookieStore$groups$s2.key) || \"preset-group-not-found\" : undefined : group.key;\n var allowContentBlockerCreation = Object.keys((preset === null || preset === void 0 ? void 0 : preset.contentBlockerPresets) || []).length > 0;\n var createContentBlockerNotice = (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut = presetModel.attributes) === null || _presetModel$attribut === void 0 ? void 0 : _presetModel$attribut.createContentBlockerNotice);\n var showOptInNoticeScanned = !!(presetModel !== null && presetModel !== void 0 && presetModel.data.scanned && (_presetModel$attribut2 = presetModel.attributes) !== null && _presetModel$attribut2 !== void 0 && _presetModel$attribut2.codeOptIn && [\"wordpress-comments\"].indexOf(presetModel.data.identifier) === -1);\n var initialValues = fetched ? {\n name: cookie.data.title.raw,\n status: cookie.data.status,\n group: group.key || undefined,\n // Can be `0`, so fallback to no selection (e.g. Cookie form modal in Content Blocker)\n purpose: cookie.data.content.raw,\n provider: cookie.data.meta.provider,\n providerPrivacyPolicy: cookie.data.meta.providerPrivacyPolicy,\n consentForwardingUniqueName: cookie.data.meta.consentForwardingUniqueName || cookie.data.slug,\n noTechnicalDefinitions: cookie.data.meta.noTechnicalDefinitions,\n legalBasis: cookie.data.meta.legalBasis,\n ePrivacyUSA: cookie.data.meta.ePrivacyUSA,\n technicalDefinitions: JSON.parse(JSON.stringify(cookie.technicalDefinitions || \"[]\")),\n codeDynamics: JSON.parse(JSON.stringify(cookie.codeDynamics || \"{}\")),\n thisIsGoogleTagManager: cookie.data.meta.thisIsGoogleTagManager,\n googleTagManagerInEventName: cookie.data.meta.googleTagManagerInEventName,\n googleTagManagerOutEventName: cookie.data.meta.googleTagManagerOutEventName,\n thisIsMatomoTagManager: cookie.data.meta.thisIsMatomoTagManager,\n matomoTagManagerInEventName: cookie.data.meta.matomoTagManagerInEventName,\n matomoTagManagerOutEventName: cookie.data.meta.matomoTagManagerOutEventName,\n codeOptIn: cookie.data.meta.codeOptIn,\n codeOptInNoGoogleTagManager: cookie.data.meta.codeOptInNoGoogleTagManager,\n codeOptInNoMatomoTagManager: cookie.data.meta.codeOptInNoMatomoTagManager,\n codeOptOut: cookie.data.meta.codeOptOut,\n codeOptOutNoGoogleTagManager: cookie.data.meta.codeOptOutNoGoogleTagManager,\n codeOptOutNoMatomoTagManager: cookie.data.meta.codeOptOutNoMatomoTagManager,\n codeOnPageLoad: cookie.data.meta.codeOnPageLoad,\n codeOptOutDelete: cookie.data.meta.codeOptOutDelete\n } : {\n name: (attributes === null || attributes === void 0 ? void 0 : attributes.name) || \"\",\n status: \"publish\",\n group: typeof useGroup === \"number\" ? // Can be `0`, so fallback to no selection (e.g. Cookie form modal in Content Blocker)\n useGroup || undefined : undefined,\n purpose: (attributes === null || attributes === void 0 ? void 0 : attributes.purpose) || \"\",\n provider: (attributes === null || attributes === void 0 ? void 0 : attributes.provider) || \"\",\n providerPrivacyPolicy: (attributes === null || attributes === void 0 ? void 0 : attributes.providerPrivacyPolicy) || \"\",\n consentForwardingUniqueName: (attributes === null || attributes === void 0 ? void 0 : attributes.consentForwardingUniqueName) || (preset === null || preset === void 0 ? void 0 : preset.identifier) || \"\",\n noTechnicalDefinitions: (attributes === null || attributes === void 0 ? void 0 : attributes.noTechnicalDefinitions) || false,\n legalBasis: (attributes === null || attributes === void 0 ? void 0 : attributes.legalBasis) || \"consent\",\n ePrivacyUSA: (attributes === null || attributes === void 0 ? void 0 : attributes.ePrivacyUSA) || false,\n technicalDefinitions: attributes !== null && attributes !== void 0 && attributes.technicalDefinitions ? JSON.parse(JSON.stringify(attributes.technicalDefinitions)) : [technicalDefinitionDefaults],\n codeDynamics: (attributes === null || attributes === void 0 ? void 0 : attributes.codeDynamics) || {},\n thisIsGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.thisIsGoogleTagManager) || false,\n googleTagManagerInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.googleTagManagerInEventName) || \"\",\n googleTagManagerOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.googleTagManagerOutEventName) || \"\",\n thisIsMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.thisIsMatomoTagManager) || false,\n matomoTagManagerInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.matomoTagManagerInEventName) || \"\",\n matomoTagManagerOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.matomoTagManagerOutEventName) || \"\",\n codeOptIn: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptIn) || \"\",\n codeOptInNoGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptInNoGoogleTagManager) || false,\n codeOptInNoMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptInNoMatomoTagManager) || false,\n codeOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOut) || \"\",\n codeOnPageLoad: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOnPageLoad) || \"\",\n codeOptOutNoGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutNoGoogleTagManager) || false,\n codeOptOutNoMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutNoMatomoTagManager) || false,\n codeOptOutDelete: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutDelete) || false,\n createContentBlocker: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlocker) === \"boolean\" ? attributes.createContentBlocker : allowContentBlockerCreation && !(attributes !== null && attributes !== void 0 && attributes.deactivateAutomaticContentBlockerCreation),\n createContentBlockerId: attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerId,\n presetCheck: !preset\n }; // Initially load the cookie if not yet done\n\n useEffect(function () {\n if (queried && !fetched) {\n // Fetch the cookie within the correct group collection so it gets removed\n // from the original cookie group when it got moved to another cookie group.\n var groupToFetch = _toConsumableArray(cookieStore.groups.entries.values()).filter(function (_ref3) {\n var cookies = _ref3.cookies;\n return cookies.entries.get(id);\n })[0] || group;\n groupToFetch.cookies.getSingle({\n params: {\n id: id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]); // Lazy load attributes of preset model\n\n useEffect(function () {\n if (presetModel && !presetModel.attributes) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(function () {\n if (scrollToTop) {\n scrollTo(0);\n }\n }, []);\n var handleSave = useCallback( /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {\n var _document$querySelect, codeToBase64, name, status, purpose, noTechnicalDefinitions, technicalDefinitions, _group, codeDynamics, createContentBlocker, createContentBlockerId, consentForwardingUniqueName, codeOptIn, codeOptOut, codeOnPageLoad, meta, newMeta, _useGroup, draft, noticeId, _document$querySelect2;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n\n // Pass as base64-encoded string to avoid Cloudflare XSS issues\n codeToBase64 = function codeToBase64(str) {\n return useEncodedStringForScriptInputs ? \"encodedScript:\".concat(base64EncodeUnicodeSafe(str)) : str;\n };\n\n name = values.name, status = values.status, purpose = values.purpose, noTechnicalDefinitions = values.noTechnicalDefinitions, technicalDefinitions = values.technicalDefinitions, _group = values.group, codeDynamics = values.codeDynamics, createContentBlocker = values.createContentBlocker, createContentBlockerId = values.createContentBlockerId, consentForwardingUniqueName = values.consentForwardingUniqueName, codeOptIn = values.codeOptIn, codeOptOut = values.codeOptOut, codeOnPageLoad = values.codeOnPageLoad, meta = _objectWithoutProperties(values, [\"name\", \"status\", \"purpose\", \"noTechnicalDefinitions\", \"technicalDefinitions\", \"group\", \"codeDynamics\", \"createContentBlocker\", \"createContentBlockerId\", \"consentForwardingUniqueName\", \"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"]);\n newMeta = _objectSpread(_objectSpread({}, meta), {}, {\n codeOptIn: codeToBase64(codeOptIn),\n codeOptOut: codeToBase64(codeOptOut),\n codeOnPageLoad: codeToBase64(codeOnPageLoad),\n noTechnicalDefinitions: noTechnicalDefinitions,\n codeDynamics: JSON.stringify(codeDynamics),\n // Still hold the data of `technicalDefinitions` in database so it is not cleared when activating this option\n technicalDefinitions: JSON.stringify(noTechnicalDefinitions ? initialValues.technicalDefinitions : technicalDefinitions),\n consentForwardingUniqueName: consentForwardingUniqueName || slugify(name)\n });\n delete newMeta.presetCheck;\n\n if (!queried) {\n _context.next = 15;\n break;\n }\n\n cookie.setName(name);\n cookie.setStatus(status);\n cookie.setPurpose(purpose);\n cookie.setMeta(newMeta);\n cookie.setGroup(_group);\n _context.next = 13;\n return cookie.patch();\n\n case 13:\n _context.next = 20;\n break;\n\n case 15:\n _useGroup = cookieStore.groups.entries.get(_group);\n draft = new CookieModel(_useGroup.cookies, {\n title: {\n rendered: name\n },\n content: {\n rendered: purpose,\n protected: false\n },\n status: status,\n meta: _objectSpread(_objectSpread({}, newMeta), {}, {\n presetId: preset === null || preset === void 0 ? void 0 : preset.identifier,\n presetVersion: preset === null || preset === void 0 ? void 0 : preset.version\n })\n });\n _context.next = 19;\n return draft.persist();\n\n case 19:\n onCreated === null || onCreated === void 0 ? void 0 : onCreated(draft);\n\n case 20:\n setHasChanges(false);\n\n _message.success(__(\"You have successfully saved the service.\") + (createContentBlocker ? \" \".concat(__(\"Continue with the corresponding Content Blocker!\")) : \"\")); // Remove the item from the \"Services with empty privacy policy\" global notice\n\n\n noticeId = \"#rcb-services-with-empty-privacy-policy-notice\";\n (_document$querySelect = document.querySelector(\"\".concat(noticeId, \" li[data-id=\\\"\").concat(id, \"\\\"]\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.classList.add(\"hidden\");\n\n if (!document.querySelectorAll(\"\".concat(noticeId, \" > ul > li:not(.hidden)\")).length) {\n (_document$querySelect2 = document.querySelector(noticeId)) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.remove();\n } // Navigate back after creation\n\n\n navigateAfterCreation && setTimeout(function () {\n return createContentBlocker ? // Navigate to content blocker form and forward `navigateAfterCreation` if given\n history.push(\"/blocker/new?force=\".concat(createContentBlockerId || preset.identifier, \"&cookieCreationPrompt=1\").concat(typeof navigateAfterCreation === \"string\" ? \"&navigateAfterCreation=\".concat(encodeURIComponent(navigateAfterCreation)) : \"\")) : // Navigate back to overview or custom link\n typeof navigateAfterCreation === \"string\" ? window.location.href = navigateAfterCreation : history.push(\"\".concat(link.slice(1), \"/\").concat(_group));\n }, 0);\n _context.next = 32;\n break;\n\n case 28:\n _context.prev = 28;\n _context.t0 = _context[\"catch\"](0);\n\n _message.error(_context.t0.responseJSON.message);\n\n throw _context.t0;\n\n case 32:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 28]]);\n }));\n\n return function (_x) {\n return _ref4.apply(this, arguments);\n };\n }(), [queried, cookie, cookieStore, useEncodedStringForScriptInputs]);\n var onFinish = useCallback( /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n setIsBusy(true);\n _context2.prev = 1;\n _context2.next = 4;\n return handleSave(values);\n\n case 4:\n _context2.next = 8;\n break;\n\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](1);\n\n case 8:\n _context2.prev = 8;\n setIsBusy(false);\n return _context2.finish(8);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[1, 6, 8, 11]]);\n }));\n\n return function (_x2) {\n return _ref5.apply(this, arguments);\n };\n }(), [form, handleSave]);\n var onFinishFailed = useCallback(function (errorInfo) {\n _message.error(__(\"The service could not be saved due to missing/invalid form values.\"));\n\n if (errorInfo.errorFields.length) {\n var instance = form.getFieldInstance(errorInfo.errorFields[0].name);\n instance.parentElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n }, []);\n var handleBeforeUnload = useCallback(function () {\n if (!hasChanges) {\n return true;\n }\n\n return __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.');\n }, [form, initialValues]);\n\n if (queried && !fetched) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: handleBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"cookie-\".concat(group.key, \"-\").concat(id),\n form: form\n }, CookieEditFormLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: function onValuesChange(_ref6) {\n var technicalDefinitions = _ref6.technicalDefinitions;\n setHasChanges(true); // Listen to `sessionDuration` changes and validate the `required` field\n // Listen to `type` changes and validate the technical host field\n\n var td = (technicalDefinitions || []).filter(Boolean);\n\n if (td.length === 1) {\n var tdChangedKeys = Object.keys(td[0]);\n\n if (tdChangedKeys.length === 1 && [\"sessionDuration\", \"type\"].indexOf(tdChangedKeys[0]) > -1) {\n setTimeout(function () {\n return form.validateFields();\n }, 100); // wait a bit so there are not false-positives\n }\n }\n }\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref7) {\n var _presetModel$attribut3;\n\n var getFieldValue = _ref7.getFieldValue;\n return /*#__PURE__*/React.createElement(CookieEditFormGeneralFields, {\n groupNotices: [{\n message: presetModel && typeof useGroup === \"number\" && getFieldValue(\"group\") !== useGroup ? __(\"The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?\") : undefined,\n severity: \"warning\"\n }, {\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.groupNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut3 = presetModel.attributes) === null || _presetModel$attribut3 === void 0 ? void 0 : _presetModel$attribut3.groupNotice),\n severity: \"info\"\n }],\n providerPrivacyPolicyNotices: [{\n message: !fetched && presetModel !== null && presetModel !== void 0 && presetModel.attributes && !initialValues.providerPrivacyPolicy ? __('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href=\"%s\" target=\"_blank\">set the corresponding page in your settings.</a>', \"#/settings\") : undefined,\n severity: \"warning\"\n }],\n showNoticePresetGroupNotFound: useGroup === \"preset-group-not-found\" ? attributes.group : false\n });\n }), /*#__PURE__*/React.createElement(CookieEditFormTechnicalFields, null), /*#__PURE__*/React.createElement(CookieEditFormHandlingFields, {\n dynamicFields: (attributes === null || attributes === void 0 ? void 0 : attributes.dynamicFields) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut4 = presetModel.attributes) === null || _presetModel$attribut4 === void 0 ? void 0 : _presetModel$attribut4.dynamicFields),\n notices: [{\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.technicalHandlingNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut5 = presetModel.attributes) === null || _presetModel$attribut5 === void 0 ? void 0 : _presetModel$attribut5.technicalHandlingNotice),\n severity: \"info\"\n }, {\n // Example: Hotjar (hidden content blocker)\n message: showOptInNoticeScanned && !allowContentBlockerCreation && __(\"If you have already used %s before creating this service, please deactivate the script/plugin with which the service was loaded so far. The opt-in script will now take care of the correct integration.\", presetModel.data.attributes_name),\n severity: \"warning\"\n }, {\n // Example: Google Analytics (scanned, found in custom script (e.g. `functions.php`))\n message: showOptInNoticeScanned && allowContentBlockerCreation && __('You are currently embedding \"%1$s\" outside of Real Cookie Banner. You can have it blocked via a content blocker before consenting. Alternatively, you can use the following opt-in script to load %1$s directly into Real Cookie Banner.<br /><br />If you want to embed \"%1$s\" via Real Cookie Banner, you have to deactivate the content blocker at the end of the form and remove \"%1$s\" outside Real Cookie Banner.<br /><br />If you prefer to keep the current integration, you only have to delete the opt-in script in this form.', presetModel.data.attributes_name),\n severity: \"warning\"\n }].filter(function (_ref8) {\n var message = _ref8.message;\n return message;\n })\n }), !!preset && /*#__PURE__*/React.createElement(React.Fragment, null, allowContentBlockerCreation && navigateAfterCreation && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref9) {\n var getFieldValue = _ref9.getFieldValue;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlocker\",\n valuePropName: \"checked\",\n dependencies: [\"group\"],\n rules: [{\n validator: function validator(_, value) {\n return getFieldValue(\"group\") === essentialGroup.key && value ? Promise.reject(__('Services that should be associated with a content blocker cannot be in the \"Essential\" group, because it cannot be rejected.')) : Promise.resolve();\n }\n }]\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"Create content blocker for this service.\")));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.createContentBlocker !== nextValues.createContentBlocker;\n }\n }, function (_ref10) {\n var getFieldValue = _ref10.getFieldValue;\n return /*#__PURE__*/React.createElement(React.Fragment, null, getFieldValue(\"createContentBlocker\") && /*#__PURE__*/React.createElement(React.Fragment, null, Object.keys(preset.contentBlockerPresets).length > 1 && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlockerId\",\n rules: [{\n required: true,\n message: __(\"Please select a template for the Content Blocker!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, {\n style: {\n maxWidth: 500,\n marginTop: 10,\n display: \"block\"\n },\n placeholder: __(\"Select Content Blocker template...\")\n }, Object.keys(preset.contentBlockerPresets).map(function (contentBlockerId) {\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: contentBlockerId,\n value: contentBlockerId\n }, preset.contentBlockerPresets[contentBlockerId]);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\",\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.\")))), !!createContentBlockerNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: createContentBlockerNotice\n }\n })));\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: function transform(value) {\n return value || undefined;\n },\n message: __(\"Please confirm that you have checked the contents of the service.\")\n }],\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"I have checked the information in the service template myself and added any missing information or corrected any information that does not fit to my use case.\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/\")\n })))), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\"\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary right\",\n value: __(\"Save\")\n })))));\n});\nexport { CookieEditFormLayout, technicalDefinitionDefaults, CookieEditForm };","import _Form from \"antd/es/form\";\n\nvar FormHeadline = function FormHeadline(_ref) {\n var children = _ref.children,\n description = _ref.description,\n offset = _ref.offset;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: offset\n },\n style: {\n borderBottom: \"1px solid #e7e7e7\"\n }\n }, /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n margin: \"0 0 \".concat(description ? 3 : 15, \"px 0\")\n }\n }, children), !!description && /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n style: {\n marginBottom: 15\n }\n }, description));\n};\n\nexport { FormHeadline };","import { useLocation } from \"react-router-dom\";\nimport { Url } from \"@devowl-wp/utils\";\n/**\n * Allows to parse query arguments from the `react-router` string.\n */\n\nfunction useLocationQuery() {\n return new Url(\"/\".concat(useLocation().search), true).query;\n}\n\nexport { useLocationQuery };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { CookieGroupModel } from \"../models\";\n\nvar useRouteCookieGroup = function useRouteCookieGroup() {\n var _useRouteMatch = useRouteMatch(),\n cookieGroup = _useRouteMatch.params.cookieGroup;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore; // Get cookie group or return draft object\n\n\n var id = isNaN(+cookieGroup) ? 0 : +cookieGroup;\n var queried = !!cookieGroup;\n var group = cookieStore.groups.entries.get(id) || new CookieGroupModel(cookieStore.groups, {\n id: 0\n });\n var link = \"#/cookies\";\n var editLink = useCallback(function (_ref) {\n var key = _ref.key;\n return \"#/cookies/\".concat(group.key, \"/edit/\").concat(key);\n }, [group]);\n var addCookieLink = \"#/cookies/\".concat(group.key, \"/new\");\n return {\n group: group,\n id: id,\n queried: queried,\n fetched: group.key !== 0,\n link: link,\n editLink: editLink,\n addCookieLink: addCookieLink\n };\n};\n\nexport { useRouteCookieGroup };"],"names":["getCookieTypeLocalizationMap","http","name","abbr","backgroundColor","local","session","flash","indexedDb","base64EncodeUnicodeSafe","str","btoa","encodeURIComponent","replace","match","p1","String","fromCharCode","parseInt","slugify","toLowerCase","from","i","l","length","RegExp","charAt","useRouteCookie","routeGroup","useRouteCookieGroup","group","params","useRouteMatch","id","isNaN","cookie","queried","cookies","entries","get","fetched","key","Notices","_ref","notices","React","createElement","Fragment","map","_ref2","message","severity","className","concat","dangerouslySetInnerHTML","__html","CookieEditFormGeneralFields","_cookie$presetModel","_cookie$presetModel$d","_ref$showNoticePreset","showNoticePresetGroupNotFound","groupNotices","providerPrivacyPolicyNotices","_useStores","_useStores$cookieStor","cookieStore","groups","essentialGroup","_useStores$optionStor","optionStore","ePrivacyUSA","consentForwarding","_useRouteCookie","isRealCookieBannerPreset","presetModel","data","identifier","findByUniqueCookieName","useCallback","_callee","slug","_context","prev","next","request","location","abrupt","sent","filter","d","ID","t0","undefined","stop","_x","apply","this","arguments","validateUniqueCookieName","_ref3","_callee2","allowOverwrite","found","_consentForwardingUniqueName","matchRegexp","foundGenerated","_context2","__","metas","consentForwardingUniqueName","_","g1","g2","_x2","_x3","offset","CookieEditFormLayout","labelCol","span","url","label","required","noStyle","rules","value","sortedGroups","_ref4","_ref4$data","autoSize","minRows","_i","a","href","target","rel","type","shouldUpdate","prevValues","nextValues","_ref5","_validator","getFieldValue","setFieldsValue","isEssentialGroup","style","display","validateTrigger","validator","_callee3","_context3","_x4","_x5","placeholder","disabled","margin","strong","_ref6","valuePropName","WP_LIST_TABLE_FORM_ITEM_PROPS","wrapperCol","CookieEditFormTechnicalFields","cookieTypeLocalized","tbodyRef","useRef","_useMemo","useMemo","DragHandle","MenuOutlined","cursor","color","marginTop","SortableItem","props","SortableBody","ref","handleSortStart","node","helper","childNodes","forEach","td","index","width","offsetWidth","noTechnicalDefinitions","technicalDefinitions","fields","add","remove","move","description","marginBottom","align","title","code","QuestionCircleFilled","useDragHandle","onSortEnd","oldIndex","newIndex","onSortStart","helperContainer","current","field","fieldKey","Object","keys","_prevValues$technical","_nextValues$technical","cookieName","r","Array","isArray","test","_prevValues$technical2","_nextValues$technical2","indexOf","isUrl","Promise","resolve","reject","_prevValues$technical3","_nextValues$technical3","host","_ref7","startsWith","substr","_prevValues$technical4","_nextValues$technical4","_ref8","float","_prevValues$technical5","_nextValues$technical5","sessionDuration","_ref9","min","addonAfter","maxWidth","rows","maxRows","onClick","DeleteOutlined","colSpan","technicalDefinitionDefaults","PlusOutlined","CookieEditFormManagerFields","manager","onlyWhenManagerIs","hasManagerAttributeName","thisIsManagerAttributeName","inEventNameAttributeName","outEventNameAttributeName","setCookiesViaManager","hasManager","isPro","others","curValues","isActive","active","inEventName","outEventName","addonBefore","marginRight","DYNAMICS_VARIABLE_REGEXP","DYNAMICS_SEARCH_IN","CookieEditFormCodeDynamics","dynamicFields","k","Boolean","searchInResolved","join","matches","matchAll","added","formName","_ref5$invalidMessage","invalidMessage","example","expression","hint","push","pattern","NoticeFormItemContainsSkipIfActiveAttribute","activePlugins","activePluginKeys","split","plugin","flat","uniq","CookieEditFormHandlingFields","createHiddenFormItemsWithCodeMirror","visible","opacity","height","thisIsGoogleTagManager","u","thisIsMatomoTagManager","settings","window","cm_settings","duration","durationUnit","purpose","CookieEditForm","_cookieStore$groups$s","_cookieStore$groups$s2","_presetModel$attribut","_presetModel$attribut2","_presetModel$attribut4","_presetModel$attribut5","preset","attributes","_ref$navigateAfterCre","navigateAfterCreation","_ref$scrollToTop","scrollToTop","onCreated","_useRouteCookie$route","link","_Form$useForm","form","_useState","useState","_useState2","isBusy","setIsBusy","_useState3","_useState4","hasChanges","setHasChanges","history","useHistory","useEncodedStringForScriptInputs","presetsCookie","useGroup","allowContentBlockerCreation","contentBlockerPresets","createContentBlockerNotice","showOptInNoticeScanned","scanned","codeOptIn","initialValues","raw","status","content","provider","meta","providerPrivacyPolicy","legalBasis","JSON","parse","stringify","codeDynamics","googleTagManagerInEventName","googleTagManagerOutEventName","matomoTagManagerInEventName","matomoTagManagerOutEventName","codeOptInNoGoogleTagManager","codeOptInNoMatomoTagManager","codeOptOut","codeOptOutNoGoogleTagManager","codeOptOutNoMatomoTagManager","codeOnPageLoad","codeOptOutDelete","createContentBlocker","deactivateAutomaticContentBlockerCreation","createContentBlockerId","presetCheck","useEffect","values","getSingle","context","fetchAttributes","scrollTo","handleSave","_document$querySelect","codeToBase64","_group","newMeta","_useGroup","draft","noticeId","_document$querySelect2","setName","setStatus","setPurpose","setMeta","setGroup","patch","rendered","protected","presetId","presetVersion","version","persist","document","querySelector","classList","querySelectorAll","setTimeout","slice","responseJSON","onFinish","finish","onFinishFailed","errorInfo","errorFields","getFieldInstance","parentElement","scrollIntoView","behavior","block","handleBeforeUnload","paragraph","spinning","busy","Prompt","onValuesChange","tdChangedKeys","validateFields","_presetModel$attribut3","groupNotice","technicalHandlingNotice","attributes_name","dependencies","_ref10","contentBlockerId","transform","FormHeadline","children","borderBottom","useLocationQuery","Url","useLocation","search","query","cookieGroup","editLink","addCookieLink"],"sourceRoot":""}
|
|
public/dist/673.lite.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[673],{8261:function(e,t,a){function n(){return{http:{name:"HTTP Cookie",abbr:"HTTP",backgroundColor:"black"},local:{name:"Local Storage",abbr:"Local",backgroundColor:"#b3983c"},session:{name:"Session Storage",abbr:"Session",backgroundColor:"#3c99b3"},flash:{name:"Flash Local Shared Object",abbr:"Flash",backgroundColor:"#b33c3c"},indexedDb:{name:"IndexedDB",abbr:"I-DB",backgroundColor:"#4ab33c"}}}a.d(t,{X:function(){return n}}),a(7363)},4148:function(e,t,a){a.d(t,{Y:function(){return i}});var n=a(7363),o=a(5998),r=a.n(o),i=function(e){var t=e.settings,a=void 0===t?{}:t,o=e.value,i=void 0===o?"":o,c=e.onChange,l=(0,n.useRef)(),s=r().codeEditor;(0,n.useEffect)((function(){s&&s.initialize(l.current,a).codemirror.on("change",(function(e){null==c||c(e.getValue())}))}),[]);var u=(0,n.useCallback)((function(){}),[]);return React.createElement("textarea",{ref:l,value:i,onChange:s?u:function(e){var t=e.target.value;return c(t)},style:{width:"100%"}})}},6586:function(e,t,a){a.d(t,{ZG:function(){return ne},PS:function(){return te},y$:function(){return ae}});var n=a(9591),o=a(4741),r=a(3828),i=a(3306),c=a(6142),l=a(8782),s=a(2711),u=a(4115),d=a(7938),m=a(7870),p=a(6315),g=a(7228),h=a(5450),v=a.n(h),f=a(7363),y=a(3554),E=a(6926);function R(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(function(e,t){return String.fromCharCode(parseInt(t,16))})))}function b(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var t="àáäâèéëêìíïîòóöôùúüûñç·/_,:;",a=0,n=t.length;a<n;a++)e=e.replace(new RegExp(t.charAt(a),"g"),"aaaaeeeeiiiioooouuuunc------".charAt(a));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-")}var _=a(7819),k=a(8630),w=a(4163),Z=a(6711),I=a(8909),N=function(){var e=(0,I.R)(),t=e.group,a=(0,Z.useRouteMatch)().params,n=isNaN(+a.cookie)?0:+a.cookie,o=!!a.cookie,r=t.cookies.entries.get(+a.cookie)||new E.U(t.cookies,{id:0});return{routeGroup:e,cookie:r,id:n,queried:o,fetched:0!==r.key}},O=a(6478),T=a(8920),S=a(2519),M=a(1629),C=a(5893),P=a(7943),x=function(e){var t=e.notices;return React.createElement(React.Fragment,null,null==t?void 0:t.map((function(e){var t=e.message,a=e.severity;return t?React.createElement("div",{className:"notice notice-".concat(a," below-h2 notice-alt"),key:t},React.createElement("p",{dangerouslySetInnerHTML:{__html:t}})):null})))},D=a(2388),F=(0,y.Pi)((function(e){var t,a,n=e.showNoticePresetGroupNotFound,o=void 0!==n&&n,i=e.groupNotices,c=e.providerPrivacyPolicyNotices,l=(0,w.m)(),s=l.cookieStore,u=s.groups,m=s.essentialGroup,g=l.optionStore,h=g.ePrivacyUSA,y=g.consentForwarding,E=N(),R=E.cookie,_=E.fetched,Z="real-cookie-banner"===(null===(t=R.presetModel)||void 0===t||null===(a=t.data)||void 0===a?void 0:a.identifier),I=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,M.W)({location:D.V,params:{slug:t}});case 3:return e.abrupt("return",e.sent.filter((function(e){return e.ID!==R.key}))[0]);case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",void 0);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t){return e.apply(this,arguments)}}(),[R.key]),F=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t,a){var n,o,r,i;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(t);case 2:if(!(n=e.sent)){e.next=19;break}if(a){e.next=8;break}throw(0,k.__)("A service with the same unique name already exists.");case 8:o=n.metas.consentForwardingUniqueName,r=/^(.*)-(\d+)$/,i=n;case 11:if(!i){e.next=18;break}return o=o.match(r)?o.replace(r,(function(e,t,a){return"".concat(t,"-").concat(+a+1)})):"".concat(o,"-1"),e.next=15,I(o);case 15:i=e.sent,e.next=11;break;case 18:a(o);case 19:case"end":return e.stop()}}),e)})));return function(t,a){return e.apply(this,arguments)}}(),[I]);return React.createElement(React.Fragment,null,React.createElement(C.C,{offset:te.labelCol.span},(0,k.__)("General service configuration")," ",React.createElement(P.r,{url:(0,k.__)("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(p.Z.Item,{label:(0,k.__)("Name"),required:!0},React.createElement(p.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide a name!")}]},React.createElement(S.Z,null)),React.createElement("p",{className:"description"},(0,k.__)('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".'))),React.createElement(p.Z.Item,{label:(0,k.__)("Status"),required:!0},React.createElement(p.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please choose a status!")}]},React.createElement(T.ZP.Group,null,React.createElement(T.ZP.Button,{value:"publish"},(0,k.__)("Enabled")),React.createElement(T.ZP.Button,{value:"private"},(0,k.__)("Disabled")),React.createElement(T.ZP.Button,{value:"draft"},(0,k.__)("Draft")))),React.createElement("p",{className:"description"},(0,k.__)('Services with the status "Draft" or "Disabled" are not visible to the public. In addition, a draft will be highlighted in the service table so that you do not forget to configure it.'))),React.createElement(p.Z.Item,{label:(0,k.__)("Group"),required:!0},React.createElement(p.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide a group!")}]},React.createElement(r.Z,null,u.sortedGroups.map((function(e){var t=e.data,a=t.id,n=t.name;return React.createElement(r.Z.Option,{key:a,value:a},n)})))),React.createElement("p",{className:"description"},(0,k.__)("Each service must be assigned to a group. All services that do not belong to the group of essential services can (but do not have to) be accepted by visitors. According to the ePrivacy Directive, only services without which the website would not work are considered as essential services if the visitor has explicitly requested the service used. A possible economic interest of the website operator in using a tool, e.g. Google Analytics, is irrelevant.")),!1!==o&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",o))),React.createElement(x,{notices:i})),React.createElement(p.Z.Item,{label:(0,k.__)("Provider"),required:!0},React.createElement(p.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please name a provider!")}]},React.createElement(S.Z,null)),React.createElement("p",{className:"description"},(0,k.__)('A service always has an "owner", who processes collected data or information saved in cookies etc. Please specify which provider creates cookies and processes personal data, e.g. "Google Ireland Limited". If you are the provider, please enter your legal name.'))),React.createElement(p.Z.Item,{label:(0,k.__)("Purpose")},React.createElement(p.Z.Item,{name:"purpose",noStyle:!0},React.createElement(S.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},(0,k._i)((0,k.__)("The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how {{a}}personal data{{/a}} is collected and how cookies are used for this purpose."),{a:React.createElement("a",{href:(0,k.__)("https://devowl.io/2021/personal-data-gdpr/"),target:"_blank",rel:"noreferrer"})}))),React.createElement(p.Z.Item,{label:(0,k.__)("Privacy policy of the provider"),required:!0},React.createElement(p.Z.Item,{name:"providerPrivacyPolicy",noStyle:!0,rules:[{required:!0,type:"url",message:(0,k.__)("Please provide a valid URL!")}]},React.createElement(S.Z,null)),React.createElement("p",{className:"description"},(0,k.__)("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),React.createElement(x,{notices:c})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group||e.name!==t.name}},(function(e){var t,a=e.getFieldValue,n=e.setFieldsValue,o=a("group")===m.key;return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{label:(0,k.__)("Consent Forwarding Unique Name"),style:{display:y?void 0:"none"}},React.createElement(p.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:(t=(0,d.Z)(v().mark((function e(t,o){var r;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=!y||!o,e.abrupt("return",F(o||b(a("name")),r?function(e){return n({consentForwardingUniqueName:e})}:void 0));case 2:case"end":return e.stop()}}),e)}))),function(e,a){return t.apply(this,arguments)})}]},React.createElement(S.Z,{placeholder:_?"":b(a("name"))})),React.createElement("p",{className:"description"},(0,k.__)("Consent Forwarding is active. This means that all services on all available instances must be identified by a unique name in order to correctly set consent for a service.")),o&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You can define a unique name, but essential services are automatically accepted when a consent is forwarded.")))),React.createElement(p.Z.Item,{label:(0,k.__)("Legal basis"),required:!0},React.createElement(p.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(T.ZP.Group,{disabled:o},React.createElement(T.ZP.Button,{value:"consent"},(0,k.__)("Consent (Opt-in)")),React.createElement(T.ZP.Button,{value:"legitimate-interest"},(0,k.__)("Legitimate interest (Opt-out)")),Z&&React.createElement(T.ZP.Button,{value:"legal-requirement"},(0,k.__)("Compliance with a legal obligation")))),React.createElement("div",{style:{margin:"5px 0px 0px"}},React.createElement(P.r,{url:(0,k.__)("https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/")})),React.createElement("p",{className:"description"},(0,k._i)((0,k.__)('Services can be used on various legal bases according to Art. 6 GDPR. "Consent" means that the user must explicitly agree to the service (opt-in). "Legitimate interest" means that your interest as a website operator prevails to use the service and the user must explicitly disagree (opt-out). Unless it is an essential service. Then an objection is not possible. {{strong}}A legitimate interest exists only in rare cases and only for data processing. If you are not sure, it is better to obtain consent to be on the safe side.{{/strong}}'),{strong:React.createElement("strong",null)})),o&&!Z&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k.__)('Your service is currently grouped as "Essential". This group implies the legitimate interest, with the only difference that this service cannot be opted out.')))))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group||e.ePrivacyUSA!==t.ePrivacyUSA}},(function(e){var t=e.getFieldValue;return React.createElement(p.Z.Item,{label:(0,k.__)("US data processing"),style:{display:h?void 0:"none"}},React.createElement(p.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("This service processes data in the USA or transfers data to US companies or servers")),t("ePrivacyUSA")&&t("group")===m.key&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("If you use this service declaration only as a notice and the corresponding service is already embedded outside the cookie banner on the first visit to the website, it is possible that the service used in the USA is already processing data before the user has agreed to this. From a data protection perspective, the use of such services should be avoided, or the service should be embedded in the opt-in code (execution after consent). In practice, this will not always be possible."))))})),React.createElement(p.Z.Item,{label:(0,k.__)("No technical definitions")},React.createElement(p.Z.Item,{name:"noTechnicalDefinitions",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script."))))})),A=a(1857),B=a(1562),U=a(7088),G=a(4290),q=a(9033),L=a(3137),V=a(657),j=a(8261),H={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},Y=(0,y.Pi)((function(){var e=(0,j.X)(),t=(0,f.useRef)(),a=(0,f.useMemo)((function(){return{DragHandle:(0,V.W6)((function(){return React.createElement(B.Z,{style:{cursor:"grab",color:"#999",marginTop:5},className:"button button-small button-link"})})),SortableItem:(0,V.W8)((function(e){return React.createElement("tr",e)})),SortableBody:(0,V.JN)((function(e){return React.createElement("tbody",(0,o.Z)({ref:t},e))}))}}),[]),n=a.DragHandle,c=a.SortableItem,l=a.SortableBody,s=(0,f.useCallback)((function(e){var t=e.node,a=e.helper;t.childNodes.forEach((function(e,t){a.childNodes[t].style.width="".concat(e.offsetWidth,"px")}))}),[]);return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions||e.technicalDefinitions.length!==t.technicalDefinitions.length}},(function(a){return(0,a.getFieldValue)("noTechnicalDefinitions")?null:React.createElement(p.Z.List,{name:"technicalDefinitions"},(function(a,u){var d=u.add,m=u.remove,g=u.move;return React.createElement(React.Fragment,null,React.createElement(C.C,{offset:te.labelCol.span,description:(0,k.__)("For each service you use, you should specify all cookies that are used by it. You can find this out in the developer console of your browser. Please note that there are several types of cookies and that the law requires that you inform your visitors not only about (HTTP) cookies, but also about cookie-like information.")},(0,k.__)("Technical cookie information")),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list",style:{marginBottom:25}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("td",{width:45,align:"right"}," "),React.createElement("td",{width:150},(0,k.__)("Cookie type")),React.createElement("td",null,React.createElement(A.Z,{title:(0,k._i)((0,k.__)("Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder)."),{code:React.createElement("code",null)})},React.createElement("span",null,(0,k.__)("Technical cookie name")," ",React.createElement(U.Z,null)))),React.createElement("td",null,React.createElement(A.Z,{title:(0,k.__)("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,(0,k.__)("Technical cookie host")," ",React.createElement(U.Z,null)))),React.createElement("td",{width:250},React.createElement(A.Z,{title:(0,k.__)("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,(0,k.__)("Cookie duration")," ",React.createElement(U.Z,null)))),React.createElement("td",null,React.createElement(A.Z,{title:(0,k.__)("Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.")},React.createElement("span",null,(0,k.__)("Purpose")," ",React.createElement(U.Z,null)))),React.createElement("td",{width:70,align:"right"}," "))),React.createElement(l,{useDragHandle:!0,onSortEnd:function(e){var t=e.oldIndex,a=e.newIndex;return g(t,a)},onSortStart:s,helperContainer:function(){return t.current}},a.map((function(t,l){return React.createElement(c,{key:t.key,index:l},React.createElement("td",null,a.length>1?React.createElement(n,null):void 0),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,H,{fieldKey:[t.fieldKey,"type"],name:[t.name,"type"],rules:[{required:!0,message:(0,k.__)("Please provide a cookie type!")}]}),React.createElement(r.Z,null,Object.keys(e).map((function(t){return React.createElement(r.Z.Option,{key:t,value:t,style:{display:"flash"===t?"none":void 0}},e[t].name)}))))),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,H,{fieldKey:[t.fieldKey,"name"],name:[t.name,"name"],rules:[{required:!0,message:(0,k.__)("Please provide a technical cookie name!")}]}),React.createElement(S.Z,null)),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.name)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.name)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"name"]);return[/\[/gm,[/([{]+)/gm,function(e){return 1===e.length}],/\(/gm].filter((function(e){return Array.isArray(e)?e[0].test(a)&&a.match(e[0]).filter(e[1]).length>0:e.test(a)})).length>0&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,k._i)((0,k.__)("Are you sure this is the name of the cookie? It seems like you are using a placeholder that is not supported. Please use an asterisk ({{code}}*{{/code}}) as a placeholder if the cookie name is dynamically composed."),{code:React.createElement("code",null)})))}))),React.createElement("td",null,React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.type)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.type)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"type"]);return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,(0,o.Z)({},t,H,{fieldKey:[t.fieldKey,"host"],name:[t.name,"host"],rules:[{validator:function(e,t){return(["local","session","indexedDb"].indexOf(a)>-1?(0,L.C)(t):/^\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(t))||""===t&&"http"!==a?Promise.resolve():Promise.reject((0,k.__)("Please provide a valid hostname!"))}}]}),React.createElement(S.Z,null)),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.host)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.host)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"host"]);return a.startsWith("*.")&&a.length>2&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,k._i)((0,k.__)("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",a.substr(2)),{code:React.createElement("code",null)})))})))}))),React.createElement("td",null,React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.type)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.type)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"type"]);return["local","session","indexedDb","flash"].indexOf(a)>-1?null:React.createElement(React.Fragment,null,React.createElement(p.Z.Item,(0,o.Z)({},t,{fieldKey:[t.fieldKey,"sessionDuration"],name:[t.name,"sessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(i.Z,{style:{float:"left",marginTop:5}},React.createElement(A.Z,{title:(0,k.__)("This cookie is active as long as the session is active")},React.createElement("span",null,(0,k.__)("Session"))))),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){var n,o;return(null===(n=e.technicalDefinitions[t.name])||void 0===n?void 0:n.sessionDuration)!==(null===(o=a.technicalDefinitions[t.name])||void 0===o?void 0:o.sessionDuration)}},(function(e){var a=(0,e.getFieldValue)(["technicalDefinitions",t.name,"sessionDuration"]);return React.createElement(p.Z.Item,(0,o.Z)({},t,H,{fieldKey:[t.fieldKey,"duration"],name:[t.name,"duration"],rules:[{required:!a,message:(0,k.__)("Please provide a valid duration!")}]}),React.createElement(S.Z,{min:"0",addonAfter:React.createElement(p.Z.Item,{name:[t.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:(0,k.__)("Please provide an unit!")}]},React.createElement(r.Z,null,React.createElement(r.Z.Option,{value:"s"},(0,k.__)("second(s)")),React.createElement(r.Z.Option,{value:"m"},(0,k.__)("minute(s)")," "),React.createElement(r.Z.Option,{value:"h"},(0,k.__)("hour(s)")," "),React.createElement(r.Z.Option,{value:"d"},(0,k.__)("day(s)")," "),React.createElement(r.Z.Option,{value:"mo"},(0,k.__)("month(s)")," "),React.createElement(r.Z.Option,{value:"y"},(0,k.__)("year(s)")," "))),type:"number",style:{maxWidth:200,display:a?"none":void 0}}))})))}))),React.createElement("td",null,React.createElement(p.Z.Item,(0,o.Z)({},t,H,{fieldKey:[t.fieldKey,"purpose"],name:[t.name,"purpose"]}),React.createElement(S.Z.TextArea,{rows:1,autoSize:{maxRows:3}}))),React.createElement("td",null,a.length>1?React.createElement("a",{className:"button button-small",onClick:function(){m(t.name)}},React.createElement(G.Z,null)):null))}))),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:7,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:function(){d(ae)}},React.createElement(q.Z,null)," ",(0,k.__)("Add another cookie definition")))))))}))}))})),K=a(4148),W=a(5283),$=(0,y.Pi)((function(e){var t=e.manager,a=e.onlyWhenManagerIs,n=e.hasManagerAttributeName,o=e.thisIsManagerAttributeName,r=e.inEventNameAttributeName,i=e.outEventNameAttributeName,c=(0,w.m)(),l=c.cookieStore,s=c.optionStore,u=s.setCookiesViaManager,d=s[n],m=s.others.isPro,g=l.essentialGroup,h=N().cookie;return u===a&&m&&React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement(A.Z,{title:d&&h.key!==d?(0,k.__)("You have already defined a %s service.",t):""},React.createElement("span",null,React.createElement(p.Z.Item,{name:o,valuePropName:"checked",noStyle:!0},React.createElement(O.Z,{disabled:d&&h.key!==d})),React.createElement("span",null," ",(0,k.__)("Opt-in script below loads %s",t))))),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e[o]!==t[o]||e.group!==t.group}},(function(e){var a=e.getFieldValue,n=a(o),r=a("group");return n&&r!==g.key&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You have defined %1$s in a non-essential service group. In our legal opinion, this is the only way to use %1$s legally. However, please note that if a user doesn't consent to load %1$s, opt-in and opt-out events will not be sent to %1$s. Real Cookie Banner offers you the possibility to specify a fallback HTML/JavaScript for this case.",t))))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e[o]!==t[o]||e[r]!==t[r]||e[i]!==t[i]}},(function(e){var a=e.getFieldValue,n=a(o),c=a(r),l=a(i);return!n&&React.createElement(p.Z.Item,{label:(0,k.__)("Event names for %s",t)},React.createElement(p.Z.Item,{name:r,noStyle:!0},React.createElement(S.Z,{addonBefore:(0,k.__)("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(p.Z.Item,{name:i,noStyle:!0},React.createElement(S.Z,{addonBefore:(0,k.__)("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("div",null,React.createElement(P.r,{url:(0,k.__)("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),(c.length>0||l.length>0)&&!d&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,k.__)("You have not yet defined a %s service. To use event names, you must create a %s service.",t,t))))})))})),z=/{{([A-Za-z0-9_]+)}}/gm,J=["codeOptIn","codeOptOut","codeOnPageLoad"],X=(0,y.Pi)((function(e){var t=e.dynamicFields;return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return J.map((function(a){return e[a]!==t[a]})).filter(Boolean).length>0}},(function(e){var a=e.getFieldValue,n=J.map((function(e){return a(e)})).join(""),o=Array.from(n.matchAll(z)).map((function(e){return(0,g.Z)(e,2)[1]})),r=[];return o?o.map((function(e){var a=["codeDynamics",e],n=(null==t?void 0:t[e])||{},o=n.label,i=n.invalidMessage,c=void 0===i?(0,k.__)("Please fill in a value!"):i,l=n.example,s=n.expression,u=n.hint;return r.indexOf(e)>-1?null:(r.push(e),React.createElement(p.Z.Item,{key:e,label:o||React.createElement("code",null,e),required:!0},React.createElement(p.Z.Item,{noStyle:!0,name:a,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(S.Z,{placeholder:l?"".concat((0,k.__)("e. g.")," ").concat(l):void 0})),!!u&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{margin:"10px 0 5px"}},React.createElement("p",{dangerouslySetInnerHTML:{__html:u}}))))})):null}))})),Q=(0,y.Pi)((function(e){var t=e.name,a=(0,w.m)().optionStore.others.activePlugins,n=(0,f.useMemo)((function(){return Object.keys(a)}),[a]);return React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){return e[t]!==a[t]}},(function(e){var o=(0,e.getFieldValue)(t),r=(0,m.Z)(o.matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)).map((function(e){return(0,g.Z)(e,3)[2].split(",").filter((function(e){return n.indexOf(e)>-1}))})).flat(),i=r.filter((function(e,t){return r.indexOf(e)===t}));return 0===i.length?null:React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,k._i)((0,k.__)("The code above contains HTML tags that are skipped when one of the following plugins is active: {{strong/}}. {{i}}What does this mean for me?{{/i}} In most cases, another plugin will take over the execution of the technical code, and you have to create a corresponding content blocker."),{strong:React.createElement("strong",null,i.map((function(e){return a[e]})).join(", ")),i:React.createElement("i",null)})))}))})),ee=(0,y.Pi)((function(e){var t=e.notices,a=e.dynamicFields,n=(0,w.m)(),o=n.cookieStore,r=n.optionStore,i=r.setCookiesViaManager,c=r.others.isPro,l=o.essentialGroup,s=(0,f.useCallback)((function(e){return{opacity:e?void 0:0,height:e?void 0:0,margin:e?void 0:0}}),[]);return React.createElement(React.Fragment,null,React.createElement(C.C,{offset:te.labelCol.span,description:"none"===i?(0,k.__)("Define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service or when a page is loaded. It is important to define the executed code correctly, as this ensures that scripts are executed and cookies are set only after the user's consent."):(0,k.__)("Define the %1$s event that should be thrown in the data layer when a visitor decides to accept or reject this service. The event can be used as a trigger in %1$s. For users who do not allow to use %1$s a fallback can be defined. You can define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service, or when a page is loaded. It is important to define the event names and executed code correctly, as this will ensure that scripts are executed and cookies are only set with the user's consent.","googleTagManager"===i?W.Gh:W.Ki)},(0,k.__)("Technical handling")),React.createElement($,{manager:W.Gh,onlyWhenManagerIs:"googleTagManager",hasManagerAttributeName:"hasGTM",thisIsManagerAttributeName:"thisIsGoogleTagManager",inEventNameAttributeName:"googleTagManagerInEventName",outEventNameAttributeName:"googleTagManagerOutEventName"}),React.createElement($,{manager:W.Ki,onlyWhenManagerIs:"matomoTagManager",hasManagerAttributeName:"hasMTM",thisIsManagerAttributeName:"thisIsMatomoTagManager",inEventNameAttributeName:"matomoTagManagerInEventName",outEventNameAttributeName:"matomoTagManagerOutEventName"}),React.createElement(X,{dynamicFields:a}),(null==t?void 0:t.length)>0&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span,span:te.wrapperCol.span}},React.createElement(x,{notices:t})),React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on opt-in")},"googleTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsGoogleTagManager!==t.thisIsGoogleTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsGoogleTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptInNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",W.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsMatomoTagManager!==t.thisIsMatomoTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsMatomoTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptInNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",W.Ki),{u:React.createElement("u",null)})))})),React.createElement(p.Z.Item,{name:"codeOptIn",noStyle:!0},React.createElement(K.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOptIn"})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(React.Fragment,null,React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on opt-out"),style:s(t("group")!==l.key)},React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions}},(function(e){return(0,e.getFieldValue)("noTechnicalDefinitions")?null:React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutDelete",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k.__)("Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.")))})),"googleTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsGoogleTagManager!==t.thisIsGoogleTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsGoogleTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",W.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.thisIsMatomoTagManager!==t.thisIsMatomoTagManager}},(function(e){return!(0,e.getFieldValue)("thisIsMatomoTagManager")&&React.createElement("div",{style:{margin:"4px 0"}},React.createElement(p.Z.Item,{name:"codeOptOutNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(O.Z,null)),React.createElement("span",null," ",(0,k._i)((0,k.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",W.Ki),{u:React.createElement("u",null)})))})),React.createElement(p.Z.Item,{name:"codeOptOut",noStyle:!0},React.createElement(K.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOptOut"})))})),React.createElement(p.Z.Item,{label:(0,k.__)("Code executed on page load")},React.createElement(p.Z.Item,{name:"codeOnPageLoad",noStyle:!0},React.createElement(K.Y,{settings:window.cm_settings})),React.createElement(Q,{name:"codeOnPageLoad"})))})),te={labelCol:{span:6},wrapperCol:{span:16}},ae={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",sessionDuration:!1,purpose:""},ne=(0,y.Pi)((function(e){var t,a,h,y,I,O,T=e.preset,S=e.attributes,M=e.navigateAfterCreation,C=void 0===M||M,x=e.scrollToTop,D=void 0===x||x,A=e.onCreated,B=N(),U=B.routeGroup,G=U.group,q=U.link,L=B.cookie,V=B.id,j=B.queried,H=B.fetched,K=p.Z.useForm(),W=(0,g.Z)(K,1)[0],$=(0,f.useState)(!1),z=(0,g.Z)($,2),J=z[0],X=z[1],Q=(0,f.useState)(!1),ne=(0,g.Z)(Q,2),oe=ne[0],re=ne[1],ie=(0,Z.useHistory)(),ce=(0,w.m)(),le=ce.cookieStore,se=ce.optionStore.others.useEncodedStringForScriptInputs,ue=le.essentialGroup,de=(null==L?void 0:L.presetModel)||le.presetsCookie.get(null==T?void 0:T.identifier),me=S?S.group?(null===(t=le.groups.sortedGroups.filter((function(e){return e.data.name===S.group})))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.key)||"preset-group-not-found":void 0:G.key,pe=Object.keys((null==T?void 0:T.contentBlockerPresets)||[]).length>0,ge=(null==S?void 0:S.createContentBlockerNotice)||(null==de||null===(h=de.attributes)||void 0===h?void 0:h.createContentBlockerNotice),he=!(null==de||!de.data.scanned||null===(y=de.attributes)||void 0===y||!y.codeOptIn||-1!==["wordpress-comments"].indexOf(de.data.identifier)),ve=H?{name:L.data.title.raw,status:L.data.status,group:G.key||void 0,purpose:L.data.content.raw,provider:L.data.meta.provider,providerPrivacyPolicy:L.data.meta.providerPrivacyPolicy,consentForwardingUniqueName:L.data.meta.consentForwardingUniqueName||L.data.slug,noTechnicalDefinitions:L.data.meta.noTechnicalDefinitions,legalBasis:L.data.meta.legalBasis,ePrivacyUSA:L.data.meta.ePrivacyUSA,technicalDefinitions:JSON.parse(JSON.stringify(L.technicalDefinitions||"[]")),codeDynamics:JSON.parse(JSON.stringify(L.codeDynamics||"{}")),thisIsGoogleTagManager:L.data.meta.thisIsGoogleTagManager,googleTagManagerInEventName:L.data.meta.googleTagManagerInEventName,googleTagManagerOutEventName:L.data.meta.googleTagManagerOutEventName,thisIsMatomoTagManager:L.data.meta.thisIsMatomoTagManager,matomoTagManagerInEventName:L.data.meta.matomoTagManagerInEventName,matomoTagManagerOutEventName:L.data.meta.matomoTagManagerOutEventName,codeOptIn:L.data.meta.codeOptIn,codeOptInNoGoogleTagManager:L.data.meta.codeOptInNoGoogleTagManager,codeOptInNoMatomoTagManager:L.data.meta.codeOptInNoMatomoTagManager,codeOptOut:L.data.meta.codeOptOut,codeOptOutNoGoogleTagManager:L.data.meta.codeOptOutNoGoogleTagManager,codeOptOutNoMatomoTagManager:L.data.meta.codeOptOutNoMatomoTagManager,codeOnPageLoad:L.data.meta.codeOnPageLoad,codeOptOutDelete:L.data.meta.codeOptOutDelete}:{name:(null==S?void 0:S.name)||"",status:"publish",group:"number"==typeof me&&me||void 0,purpose:(null==S?void 0:S.purpose)||"",provider:(null==S?void 0:S.provider)||"",providerPrivacyPolicy:(null==S?void 0:S.providerPrivacyPolicy)||"",consentForwardingUniqueName:(null==S?void 0:S.consentForwardingUniqueName)||(null==T?void 0:T.identifier)||"",noTechnicalDefinitions:(null==S?void 0:S.noTechnicalDefinitions)||!1,legalBasis:(null==S?void 0:S.legalBasis)||"consent",ePrivacyUSA:(null==S?void 0:S.ePrivacyUSA)||!1,technicalDefinitions:null!=S&&S.technicalDefinitions?JSON.parse(JSON.stringify(S.technicalDefinitions)):[ae],codeDynamics:(null==S?void 0:S.codeDynamics)||{},thisIsGoogleTagManager:(null==S?void 0:S.thisIsGoogleTagManager)||!1,googleTagManagerInEventName:(null==S?void 0:S.googleTagManagerInEventName)||"",googleTagManagerOutEventName:(null==S?void 0:S.googleTagManagerOutEventName)||"",thisIsMatomoTagManager:(null==S?void 0:S.thisIsMatomoTagManager)||!1,matomoTagManagerInEventName:(null==S?void 0:S.matomoTagManagerInEventName)||"",matomoTagManagerOutEventName:(null==S?void 0:S.matomoTagManagerOutEventName)||"",codeOptIn:(null==S?void 0:S.codeOptIn)||"",codeOptInNoGoogleTagManager:(null==S?void 0:S.codeOptInNoGoogleTagManager)||!1,codeOptInNoMatomoTagManager:(null==S?void 0:S.codeOptInNoMatomoTagManager)||!1,codeOptOut:(null==S?void 0:S.codeOptOut)||"",codeOnPageLoad:(null==S?void 0:S.codeOnPageLoad)||"",codeOptOutNoGoogleTagManager:(null==S?void 0:S.codeOptOutNoGoogleTagManager)||!1,codeOptOutNoMatomoTagManager:(null==S?void 0:S.codeOptOutNoMatomoTagManager)||!1,codeOptOutDelete:(null==S?void 0:S.codeOptOutDelete)||!1,createContentBlocker:"boolean"==typeof(null==S?void 0:S.createContentBlocker)?S.createContentBlocker:pe&&!(null!=S&&S.deactivateAutomaticContentBlockerCreation),createContentBlockerId:null==S?void 0:S.createContentBlockerId,presetCheck:!T};(0,f.useEffect)((function(){j&&!H&&((0,m.Z)(le.groups.entries.values()).filter((function(e){return e.cookies.entries.get(V)}))[0]||G).cookies.getSingle({params:{id:V,context:"edit"}})}),[j,H]),(0,f.useEffect)((function(){de&&!de.attributes&&de.fetchAttributes()}),[de]),(0,f.useEffect)((function(){D&&(0,_.X)(0)}),[]);var fe=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){var a,n,o,r,i,c,d,m,p,g,h,f,y,_,w,Z,I,N,O,S,M;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n=function(e){return se?"encodedScript:".concat(R(e)):e},o=t.name,r=t.status,i=t.purpose,c=t.noTechnicalDefinitions,d=t.technicalDefinitions,m=t.group,p=t.codeDynamics,g=t.createContentBlocker,h=t.createContentBlockerId,f=t.consentForwardingUniqueName,y=t.codeOptIn,_=t.codeOptOut,w=t.codeOnPageLoad,Z=(0,u.Z)(t,["name","status","purpose","noTechnicalDefinitions","technicalDefinitions","group","codeDynamics","createContentBlocker","createContentBlockerId","consentForwardingUniqueName","codeOptIn","codeOptOut","codeOnPageLoad"]),delete(I=(0,s.Z)((0,s.Z)({},Z),{},{codeOptIn:n(y),codeOptOut:n(_),codeOnPageLoad:n(w),noTechnicalDefinitions:c,codeDynamics:JSON.stringify(p),technicalDefinitions:JSON.stringify(c?ve.technicalDefinitions:d),consentForwardingUniqueName:f||b(o)})).presetCheck,!j){e.next=15;break}return L.setName(o),L.setStatus(r),L.setPurpose(i),L.setMeta(I),L.setGroup(m),e.next=13,L.patch();case 13:e.next=20;break;case 15:return N=le.groups.entries.get(m),O=new E.U(N.cookies,{title:{rendered:o},content:{rendered:i,protected:!1},status:r,meta:(0,s.Z)((0,s.Z)({},I),{},{presetId:null==T?void 0:T.identifier,presetVersion:null==T?void 0:T.version})}),e.next=19,O.persist();case 19:null==A||A(O);case 20:re(!1),l.ZP.success((0,k.__)("You have successfully saved the service.")+(g?" ".concat((0,k.__)("Continue with the corresponding Content Blocker!")):"")),S="#rcb-services-with-empty-privacy-policy-notice",null===(a=document.querySelector("".concat(S,' li[data-id="').concat(V,'"]')))||void 0===a||a.classList.add("hidden"),document.querySelectorAll("".concat(S," > ul > li:not(.hidden)")).length||null===(M=document.querySelector(S))||void 0===M||M.remove(),C&&setTimeout((function(){return g?ie.push("/blocker/new?force=".concat(h||T.identifier,"&cookieCreationPrompt=1").concat("string"==typeof C?"&navigateAfterCreation=".concat(encodeURIComponent(C)):"")):"string"==typeof C?window.location.href=C:ie.push("".concat(q.slice(1),"/").concat(m))}),0),e.next=32;break;case 28:throw e.prev=28,e.t0=e.catch(0),l.ZP.error(e.t0.responseJSON.message),e.t0;case 32:case"end":return e.stop()}}),e,null,[[0,28]])})));return function(t){return e.apply(this,arguments)}}(),[j,L,le,se]),ye=(0,f.useCallback)(function(){var e=(0,d.Z)(v().mark((function e(t){return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return X(!0),e.prev=1,e.next=4,fe(t);case 4:e.next=8;break;case 6:e.prev=6,e.t0=e.catch(1);case 8:return e.prev=8,X(!1),e.finish(8);case 11:case"end":return e.stop()}}),e,null,[[1,6,8,11]])})));return function(t){return e.apply(this,arguments)}}(),[W,fe]),Ee=(0,f.useCallback)((function(e){l.ZP.error((0,k.__)("The service could not be saved due to missing/invalid form values.")),e.errorFields.length&&W.getFieldInstance(e.errorFields[0].name).parentElement.scrollIntoView({behavior:"smooth",block:"center"})}),[]),Re=(0,f.useCallback)((function(){return!oe||(0,k.__)('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}),[W,ve]);return j&&!H?React.createElement(c.Z,{active:!0,paragraph:{rows:8}}):React.createElement(n.Z,{spinning:J||(null==de?void 0:de.busy)||!1},React.createElement(Z.Prompt,{message:Re}),React.createElement(p.Z,(0,o.Z)({name:"cookie-".concat(G.key,"-").concat(V),form:W},te,{initialValues:ve,onFinish:ye,onFinishFailed:Ee,onValuesChange:function(e){var t=e.technicalDefinitions;re(!0);var a=(t||[]).filter(Boolean);if(1===a.length){var n=Object.keys(a[0]);1===n.length&&["sessionDuration","type"].indexOf(n[0])>-1&&setTimeout((function(){return W.validateFields()}),100)}}}),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t,a=e.getFieldValue;return React.createElement(F,{groupNotices:[{message:de&&"number"==typeof me&&a("group")!==me?(0,k.__)("The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?"):void 0,severity:"warning"},{message:(null==S?void 0:S.groupNotice)||(null==de||null===(t=de.attributes)||void 0===t?void 0:t.groupNotice),severity:"info"}],providerPrivacyPolicyNotices:[{message:H||null==de||!de.attributes||ve.providerPrivacyPolicy?void 0:(0,k.__)('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href="%s" target="_blank">set the corresponding page in your settings.</a>',"#/settings"),severity:"warning"}],showNoticePresetGroupNotFound:"preset-group-not-found"===me&&S.group})})),React.createElement(Y,null),React.createElement(ee,{dynamicFields:(null==S?void 0:S.dynamicFields)||(null==de||null===(I=de.attributes)||void 0===I?void 0:I.dynamicFields),notices:[{message:(null==S?void 0:S.technicalHandlingNotice)||(null==de||null===(O=de.attributes)||void 0===O?void 0:O.technicalHandlingNotice),severity:"info"},{message:he&&!pe&&(0,k.__)("If you have already used %s before creating this service, please deactivate the script/plugin with which the service was loaded so far. The opt-in script will now take care of the correct integration.",de.data.attributes_name),severity:"warning"},{message:he&&pe&&(0,k.__)('You are currently embedding "%1$s" outside of Real Cookie Banner. You can have it blocked via a content blocker before consenting. Alternatively, you can use the following opt-in script to load %1$s directly into Real Cookie Banner.<br /><br />If you want to embed "%1$s" via Real Cookie Banner, you have to deactivate the content blocker at the end of the form and remove "%1$s" outside Real Cookie Banner.<br /><br />If you prefer to keep the current integration, you only have to delete the opt-in script in this form.',de.data.attributes_name),severity:"warning"}].filter((function(e){return e.message}))}),!!T&&React.createElement(React.Fragment,null,pe&&C&&React.createElement(p.Z.Item,{wrapperCol:{offset:te.labelCol.span}},React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(p.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:function(e,a){return t("group")===ue.key&&a?Promise.reject((0,k.__)('Services that should be associated with a content blocker cannot be in the "Essential" group, because it cannot be rejected.')):Promise.resolve()}}]},React.createElement(i.Z,null,(0,k.__)("Create content blocker for this service.")))})),React.createElement(p.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.createContentBlocker!==t.createContentBlocker}},(function(e){var t=e.getFieldValue;return React.createElement(React.Fragment,null,t("createContentBlocker")&&React.createElement(React.Fragment,null,Object.keys(T.contentBlockerPresets).length>1&&React.createElement(p.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:(0,k.__)("Please select a template for the Content Blocker!")}]},React.createElement(r.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:(0,k.__)("Select Content Blocker template...")},Object.keys(T.contentBlockerPresets).map((function(e){return React.createElement(r.Z.Option,{key:e,value:e},T.contentBlockerPresets[e])})))),React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{marginTop:10}},React.createElement("p",null,(0,k.__)("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.")))),!!ge&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:ge}})))}))),React.createElement(p.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:function(e){return e||void 0},message:(0,k.__)("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:te.labelCol.span}},React.createElement(i.Z,null,(0,k.__)("I have checked the information in the service template myself and added any missing information or corrected any information that does not fit to my use case.")," ",React.createElement(P.r,{url:(0,k.__)("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))),React.createElement(p.Z.Item,{className:"rcb-form-sticky-submit"},React.createElement("span",null,React.createElement("input",{type:"submit",className:"button button-primary right",value:(0,k.__)("Save")})))))}))},5893:function(e,t,a){a.d(t,{C:function(){return o}});var n=a(6315),o=function(e){var t=e.children,a=e.description,o=e.offset;return React.createElement(n.Z.Item,{wrapperCol:{offset:o},style:{borderBottom:"1px solid #e7e7e7"}},React.createElement("h3",{style:{margin:"0 0 ".concat(a?3:15,"px 0")}},t),!!a&&React.createElement("p",{className:"description",style:{marginBottom:15}},a))}},5669:function(e,t,a){a.d(t,{u:function(){return s}});var n=a(2841),o=a(5235),r=a(6069),i=a(7363),c=a(4163),l=a(8630);function s(){var e=(0,c.m)().optionStore.others.assetsUrl,t="".concat(e,"cookie-experts.svg"),a=(0,i.useCallback)((function(){r.Z.info({icon:void 0,width:500,closable:!0,okButtonProps:{style:{display:"none"}},content:React.createElement("div",{style:{textAlign:"center"}},React.createElement("img",{src:t,style:{display:"block",paddingTop:15,margin:"auto",height:176}}),React.createElement("h3",{style:{margin:"10px 0 0"}},"Cookie Experts"),React.createElement("p",{style:{marginTop:0}},(0,l.__)("Let our team help you with the setup")),React.createElement(n.Z,null,React.createElement(o.C.Group,{size:"large"},React.createElement(o.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg"}),React.createElement(o.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg"}),React.createElement(o.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg"}))),React.createElement("a",{href:(0,l.__)("https://devowl.io/wordpress-real-cookie-banner/cookie-experts/"),target:"_blank",rel:"noreferrer",className:"button button-large button-primary"},(0,l.__)("Get help from Cookie Experts")),React.createElement("p",null,(0,l.__)("We admit, it is not easy to find all the services, cookies, etc. The legal requirements in the EU are quite complex for many website operators. We can understand if you feel overwhelmed – if this goes far beyond what you can technically do. After you know what all has to be considered, the question of how to make your website privacy compliant does not let you sleep peacefully either.")),React.createElement("p",null,(0,l.__)("Don’t worry, we have a solution for you! Our Cookie Experts have already set up many cookie banners and know exactly what they are doing. They can also set up your cookie banner quickly and easily. So, we can simply take this worry away from you.")),React.createElement("a",{style:{marginTop:10,textDecoration:"underline",display:"inline-block",cursor:"pointer"},onClick:function(){return r.Z.destroyAll()}},(0,l.__)("Close")))})}),[]);return{logoUrl:t,openDialog:a}}},8909:function(e,t,a){a.d(t,{R:function(){return c}});var n=a(6711),o=a(4163),r=a(7363),i=a(5706),c=function(){var e=(0,n.useRouteMatch)().params.cookieGroup,t=(0,o.m)().cookieStore,a=isNaN(+e)?0:+e,c=!!e,l=t.groups.entries.get(a)||new i.O(t.groups,{id:0}),s=(0,r.useCallback)((function(e){var t=e.key;return"#/cookies/".concat(l.key,"/edit/").concat(t)}),[l]),u="#/cookies/".concat(l.key,"/new");return{group:l,id:a,queried:c,fetched:0!==l.key,link:"#/cookies",editLink:s,addCookieLink:u}}}}]);
|
2 |
+
//# sourceMappingURL=673.lite.js.map?ver=58173e3267c0347ea7f6
|
public/dist/673.lite.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"file":"673.lite.js?ver=58173e3267c0347ea7f6","mappings":"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","sources":["webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///./src/public/ts/components/codemirror.tsx","webpack:///./src/public/ts/utils/base64EncodeUnicodeSafe.tsx","webpack:///./src/public/ts/utils/slugify.tsx","webpack:///./src/public/ts/hooks/useRouteCookie.tsx","webpack:///./src/public/ts/components/notices.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/general.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/technical.tsx","webpack:///./src/public/ts/utils/isHost.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/manager.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/codeDynamics.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/noticeFormItemContainsSkipIfActiveAttribute.tsx","webpack:///./src/public/ts/components/config/cookies/formFields/handling.tsx","webpack:///./src/public/ts/components/config/cookies/form.tsx","webpack:///./src/public/ts/components/formHeadline.tsx","webpack:///./src/public/ts/hooks/useCookieExpertsModal.tsx","webpack:///./src/public/ts/hooks/useRouteCookieGroup.tsx"],"sourcesContent":["import { Fragment } from \"react\";\nimport { CookieProperty } from \".\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\n\nvar CookiePropertyList = function CookiePropertyList(_ref) {\n var _ref$cookie = _ref.cookie,\n purpose = _ref$cookie.purpose,\n provider = _ref$cookie.provider,\n providerPrivacyPolicy = _ref$cookie.providerPrivacyPolicy,\n legalBasis = _ref$cookie.legalBasis,\n ePrivacyUSA = _ref$cookie.ePrivacyUSA,\n noTechnicalDefinitions = _ref$cookie.noTechnicalDefinitions,\n technicalDefinitions = _ref$cookie.technicalDefinitions,\n codeDynamics = _ref$cookie.codeDynamics,\n isEssentialGroup = _ref.isEssentialGroup;\n\n var _useBannerOrBlocker = useBannerOrBlocker(),\n i18n = _useBannerOrBlocker.i18n,\n ePrivacyUSAEnabled = _useBannerOrBlocker.ePrivacyUSA;\n\n var types = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(Fragment, null, !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicy && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.providerPrivacyPolicy,\n value: providerPrivacyPolicy\n }), !!ePrivacyUSAEnabled && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.ePrivacyUSA,\n value: ePrivacyUSA,\n printValueAs: \"boolean\"\n }), !noTechnicalDefinitions && technicalDefinitions.map(function (_ref2) {\n var type = _ref2.type,\n name = _ref2.name,\n host = _ref2.host,\n duration = _ref2.duration,\n durationUnit = _ref2.durationUnit,\n sessionDuration = _ref2.sessionDuration,\n purpose = _ref2.purpose;\n return /*#__PURE__*/React.createElement(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.host,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.duration,\n value: [\"local\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? i18n.noExpiration : sessionDuration || type === \"session\" ? \"Session\" : \"\".concat(duration, \" \").concat(i18n.durationUnit[durationUnit])\n }));\n }));\n};\n\nfunction getCookieTypeLocalizationMap() {\n return {\n http: {\n name: \"HTTP Cookie\",\n abbr: \"HTTP\",\n backgroundColor: \"black\"\n },\n local: {\n name: \"Local Storage\",\n abbr: \"Local\",\n backgroundColor: \"#b3983c\"\n },\n session: {\n name: \"Session Storage\",\n abbr: \"Session\",\n backgroundColor: \"#3c99b3\"\n },\n flash: {\n name: \"Flash Local Shared Object\",\n abbr: \"Flash\",\n backgroundColor: \"#b33c3c\"\n },\n indexedDb: {\n name: \"IndexedDB\",\n abbr: \"I-DB\",\n backgroundColor: \"#4ab33c\"\n }\n };\n}\n\nexport { CookiePropertyList, getCookieTypeLocalizationMap };","import { useRef, useEffect, useCallback } from \"react\";\nimport wp from \"wp\";\n\nvar CodeMirror = function CodeMirror(_ref) {\n var _ref$settings = _ref.settings,\n settings = _ref$settings === void 0 ? {} : _ref$settings,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? \"\" : _ref$value,\n onChange = _ref.onChange;\n var ref = useRef();\n var codeEditor = wp.codeEditor;\n useEffect(function () {\n // Check if the current profile allows syntax highlighting\n if (codeEditor) {\n var _codeEditor$initializ = codeEditor.initialize(ref.current, settings),\n codemirror = _codeEditor$initializ.codemirror;\n\n codemirror.on(\"change\", function (instance) {\n onChange === null || onChange === void 0 ? void 0 : onChange(instance.getValue());\n });\n }\n }, []); // Avoid React error: You provided a `value` prop to a form field without an `onChange` handler\n // The onChange handler is done by codemirror itself\n\n var noop = useCallback(function () {// Silence is golden.\n }, []);\n return /*#__PURE__*/React.createElement(\"textarea\", {\n ref: ref,\n value: value,\n onChange: codeEditor ? noop : function (_ref2) {\n var value = _ref2.target.value;\n return onChange(value);\n },\n style: {\n width: \"100%\"\n }\n });\n};\n\nexport { CodeMirror };","/**\n * Unicode-safe base64 encoding.\n *\n * @see https://stackoverflow.com/a/30106551/5506547\n */\nfunction base64EncodeUnicodeSafe(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n }));\n}\n\nexport { base64EncodeUnicodeSafe };","/**\n * Slugify a given text.\n *\n * @see https://gist.github.com/codeguy/6684588\n */\nfunction slugify(str) {\n str = str.replace(/^\\s+|\\s+$/g, \"\"); // trim\n\n str = str.toLowerCase(); // remove accents, swap ñ for n, etc\n\n var from = \"àáäâèéëêìíïîòóöôùúüûñç·/_,:;\";\n var to = \"aaaaeeeeiiiioooouuuunc------\";\n\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), \"g\"), to.charAt(i));\n }\n\n str = str.replace(/[^a-z0-9 -]/g, \"\") // remove invalid chars\n .replace(/\\s+/g, \"-\") // collapse whitespace and replace by -\n .replace(/-+/g, \"-\"); // collapse dashes\n\n return str;\n}\n\nexport { slugify };","import { useRouteMatch } from \"react-router-dom\";\nimport { CookieModel } from \"../models\";\nimport { useRouteCookieGroup } from \".\";\n\nvar useRouteCookie = function useRouteCookie() {\n var routeGroup = useRouteCookieGroup();\n var group = routeGroup.group;\n\n var _useRouteMatch = useRouteMatch(),\n params = _useRouteMatch.params; // Get cookie or return draft object\n\n\n var id = isNaN(+params.cookie) ? 0 : +params.cookie;\n var queried = !!params.cookie;\n var cookie = group.cookies.entries.get(+params.cookie) || new CookieModel(group.cookies, {\n id: 0\n });\n return {\n routeGroup: routeGroup,\n cookie: cookie,\n id: id,\n queried: queried,\n fetched: cookie.key !== 0\n };\n};\n\nexport { useRouteCookie };","var Notices = function Notices(_ref) {\n var notices = _ref.notices;\n return /*#__PURE__*/React.createElement(React.Fragment, null, notices === null || notices === void 0 ? void 0 : notices.map(function (_ref2) {\n var message = _ref2.message,\n severity = _ref2.severity;\n return message ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-\".concat(severity, \" below-h2 notice-alt\"),\n key: message\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: message\n }\n })) : null;\n }));\n};\n\nexport { Notices };","import _Switch from \"antd/es/switch\";\nimport _Select from \"antd/es/select\";\nimport _Radio from \"antd/es/radio\";\nimport _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { useCallback } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { _i, __, request, slugify } from \"../../../../utils\";\nimport { useStores } from \"../../../../store\";\nimport { FormHeadline, LearnMoreTag, Notices } from \"../../..\";\nimport { CookieEditFormLayout } from \"..\";\nimport { locationRestForwardCookieGet } from \"../../../../wp-api\";\nimport { useRouteCookie } from \"../../../../hooks\";\nvar CookieEditFormGeneralFields = observer(function (_ref) {\n var _cookie$presetModel, _cookie$presetModel$d;\n\n var _ref$showNoticePreset = _ref.showNoticePresetGroupNotFound,\n showNoticePresetGroupNotFound = _ref$showNoticePreset === void 0 ? false : _ref$showNoticePreset,\n groupNotices = _ref.groupNotices,\n providerPrivacyPolicyNotices = _ref.providerPrivacyPolicyNotices;\n\n var _useStores = useStores(),\n _useStores$cookieStor = _useStores.cookieStore,\n groups = _useStores$cookieStor.groups,\n essentialGroup = _useStores$cookieStor.essentialGroup,\n _useStores$optionStor = _useStores.optionStore,\n ePrivacyUSA = _useStores$optionStor.ePrivacyUSA,\n consentForwarding = _useStores$optionStor.consentForwarding;\n\n var _useRouteCookie = useRouteCookie(),\n cookie = _useRouteCookie.cookie,\n fetched = _useRouteCookie.fetched;\n\n var isRealCookieBannerPreset = ((_cookie$presetModel = cookie.presetModel) === null || _cookie$presetModel === void 0 ? void 0 : (_cookie$presetModel$d = _cookie$presetModel.data) === null || _cookie$presetModel$d === void 0 ? void 0 : _cookie$presetModel$d.identifier) === \"real-cookie-banner\";\n var findByUniqueCookieName = useCallback( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(slug) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return request({\n location: locationRestForwardCookieGet,\n params: {\n slug: slug\n }\n });\n\n case 3:\n return _context.abrupt(\"return\", _context.sent.filter(function (d) {\n return d.ID !== cookie.key;\n })[0]);\n\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\", undefined);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 6]]);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [cookie.key]);\n var validateUniqueCookieName = useCallback( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(slug, allowOverwrite) {\n var found, _consentForwardingUniqueName, matchRegexp, foundGenerated;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return findByUniqueCookieName(slug);\n\n case 2:\n found = _context2.sent;\n\n if (!found) {\n _context2.next = 19;\n break;\n }\n\n if (allowOverwrite) {\n _context2.next = 8;\n break;\n }\n\n throw __(\"A service with the same unique name already exists.\");\n\n case 8:\n // Consent Forwarding is deactivated, so we need to generate an unique name for the user\n _consentForwardingUniqueName = found.metas.consentForwardingUniqueName;\n matchRegexp = /^(.*)-(\\d+)$/;\n foundGenerated = found;\n\n case 11:\n if (!foundGenerated) {\n _context2.next = 18;\n break;\n }\n\n _consentForwardingUniqueName = _consentForwardingUniqueName.match(matchRegexp) ? _consentForwardingUniqueName.replace(matchRegexp, function (_, g1, g2) {\n return \"\".concat(g1, \"-\").concat(+g2 + 1);\n }) : \"\".concat(_consentForwardingUniqueName, \"-1\");\n _context2.next = 15;\n return findByUniqueCookieName(_consentForwardingUniqueName);\n\n case 15:\n foundGenerated = _context2.sent;\n _context2.next = 11;\n break;\n\n case 18:\n // Overwrite in form\n allowOverwrite(_consentForwardingUniqueName);\n\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n }(), [findByUniqueCookieName]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span\n }, __(\"General service configuration\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/\")\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Name\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"name\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide a name!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('Each service used should have a descriptive name that is understandable to a non-professional user. Example: \"Google Analytics\".'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Status\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"status\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please choose a status!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, null, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"publish\"\n }, __(\"Enabled\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"private\"\n }, __(\"Disabled\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"draft\"\n }, __(\"Draft\")))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('Services with the status \"Draft\" or \"Disabled\" are not visible to the public. In addition, a draft will be highlighted in the service table so that you do not forget to configure it.'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Group\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"group\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide a group!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, null, groups.sortedGroups.map(function (_ref4) {\n var _ref4$data = _ref4.data,\n id = _ref4$data.id,\n name = _ref4$data.name;\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name);\n }))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Each service must be assigned to a group. All services that do not belong to the group of essential services can (but do not have to) be accepted by visitors. According to the ePrivacy Directive, only services without which the website would not work are considered as essential services if the visitor has explicitly requested the service used. A possible economic interest of the website operator in using a tool, e.g. Google Analytics, is irrelevant.\")), showNoticePresetGroupNotFound !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.\", showNoticePresetGroupNotFound))), /*#__PURE__*/React.createElement(Notices, {\n notices: groupNotices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"provider\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please name a provider!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __('A service always has an \"owner\", who processes collected data or information saved in cookies etc. Please specify which provider creates cookies and processes personal data, e.g. \"Google Ireland Limited\". If you are the provider, please enter your legal name.'))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Purpose\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"purpose\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how {{a}}personal data{{/a}} is collected and how cookies are used for this purpose.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/2021/personal-data-gdpr/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n }))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicy\",\n noStyle: true,\n rules: [{\n required: true,\n type: \"url\",\n message: __(\"Please provide a valid URL!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).\")), /*#__PURE__*/React.createElement(Notices, {\n notices: providerPrivacyPolicyNotices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group || prevValues.name !== nextValues.name;\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue,\n setFieldsValue = _ref5.setFieldsValue;\n var isEssentialGroup = getFieldValue(\"group\") === essentialGroup.key;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Consent Forwarding Unique Name\"),\n style: {\n display: consentForwarding ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"consentForwardingUniqueName\",\n noStyle: true,\n validateTrigger: \"onBlur\",\n rules: [{\n validator: function () {\n var _validator = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rules, value) {\n var allowOverwrite;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n allowOverwrite = consentForwarding ? !value : true;\n return _context3.abrupt(\"return\", validateUniqueCookieName(value || slugify(getFieldValue(\"name\")), allowOverwrite ? function (consentForwardingUniqueName) {\n return setFieldsValue({\n consentForwardingUniqueName: consentForwardingUniqueName\n });\n } : undefined));\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function validator(_x4, _x5) {\n return _validator.apply(this, arguments);\n }\n\n return validator;\n }()\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: fetched ? \"\" : slugify(getFieldValue(\"name\"))\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"Consent Forwarding is active. This means that all services on all available instances must be identified by a unique name in order to correctly set consent for a service.\")), isEssentialGroup && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You can define a unique name, but essential services are automatically accepted when a consent is forwarded.\")))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Legal basis\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"legalBasis\",\n noStyle: true,\n rules: [{\n required: true\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n disabled: isEssentialGroup\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"consent\"\n }, __(\"Consent (Opt-in)\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legitimate-interest\"\n }, __(\"Legitimate interest (Opt-out)\")), isRealCookieBannerPreset && /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legal-requirement\"\n }, __(\"Compliance with a legal obligation\")))), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"5px 0px 0px\"\n }\n }, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/\")\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__('Services can be used on various legal bases according to Art. 6 GDPR. \"Consent\" means that the user must explicitly agree to the service (opt-in). \"Legitimate interest\" means that your interest as a website operator prevails to use the service and the user must explicitly disagree (opt-out). Unless it is an essential service. Then an objection is not possible. {{strong}}A legitimate interest exists only in rare cases and only for data processing. If you are not sure, it is better to obtain consent to be on the safe side.{{/strong}}'), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), isEssentialGroup && !isRealCookieBannerPreset && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __('Your service is currently grouped as \"Essential\". This group implies the legitimate interest, with the only difference that this service cannot be opted out.')))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group || prevValues.ePrivacyUSA !== nextValues.ePrivacyUSA;\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"US data processing\"),\n style: {\n display: ePrivacyUSA ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"ePrivacyUSA\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"This service processes data in the USA or transfers data to US companies or servers\")), getFieldValue(\"ePrivacyUSA\") && getFieldValue(\"group\") === essentialGroup.key && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"If you use this service declaration only as a notice and the corresponding service is already embedded outside the cookie banner on the first visit to the website, it is possible that the service used in the USA is already processing data before the user has agreed to this. From a data protection perspective, the use of such services should be avoided, or the service should be embedded in the opt-in code (execution after consent). In practice, this will not always be possible.\"))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"No technical definitions\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"noTechnicalDefinitions\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.\"))));\n});\nexport { CookieEditFormGeneralFields };","import _Checkbox from \"antd/es/checkbox\";\nimport _Input from \"antd/es/input\";\nimport _Form from \"antd/es/form\";\nimport _Select from \"antd/es/select\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, isHost } from \"../../../../utils\";\nimport { PlusOutlined, QuestionCircleFilled, DeleteOutlined, MenuOutlined } from \"@ant-design/icons\";\nimport { FormHeadline } from \"../../..\";\nimport { CookieEditFormLayout, technicalDefinitionDefaults } from \"..\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { SortableHandle, SortableElement, SortableContainer } from \"react-sortable-hoc\";\nimport { getCookieTypeLocalizationMap } from \"@devowl-wp/react-cookie-banner\";\nvar WP_LIST_TABLE_FORM_ITEM_PROPS = {\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n },\n style: {\n margin: 0\n }\n};\nvar CookieEditFormTechnicalFields = observer(function () {\n var cookieTypeLocalized = getCookieTypeLocalizationMap();\n var tbodyRef = useRef();\n\n var _useMemo = useMemo(function () {\n return {\n DragHandle: SortableHandle(function () {\n return /*#__PURE__*/React.createElement(MenuOutlined, {\n style: {\n cursor: \"grab\",\n color: \"#999\",\n marginTop: 5\n },\n className: \"button button-small button-link\"\n });\n }),\n SortableItem: SortableElement(function (props) {\n return /*#__PURE__*/React.createElement(\"tr\", props);\n }),\n SortableBody: SortableContainer(function (props) {\n return /*#__PURE__*/React.createElement(\"tbody\", _extends({\n ref: tbodyRef\n }, props));\n })\n };\n }, []),\n DragHandle = _useMemo.DragHandle,\n SortableItem = _useMemo.SortableItem,\n SortableBody = _useMemo.SortableBody;\n\n var handleSortStart = useCallback(function (_ref) {\n var node = _ref.node,\n helper = _ref.helper;\n node.childNodes.forEach(function (td, index) {\n helper.childNodes[index].style.width = \"\".concat(td.offsetWidth, \"px\");\n });\n }, []);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.noTechnicalDefinitions !== nextValues.noTechnicalDefinitions || prevValues.technicalDefinitions.length !== nextValues.technicalDefinitions.length;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, function (fields, _ref3) {\n var add = _ref3.add,\n remove = _ref3.remove,\n move = _ref3.move;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span,\n description: __(\"For each service you use, you should specify all cookies that are used by it. You can find this out in the developer console of your browser. Please note that there are several types of cookies and that the law requires that you inform your visitors not only about (HTTP) cookies, but also about cookie-like information.\")\n }, __(\"Technical cookie information\")), /*#__PURE__*/React.createElement(\"table\", {\n className: \"wp-list-table widefat fixed striped table-view-list\",\n style: {\n marginBottom: 25\n }\n }, /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n width: 45,\n align: \"right\"\n }, \"\\xA0\"), /*#__PURE__*/React.createElement(\"td\", {\n width: 150\n }, __(\"Cookie type\")), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: _i(__(\"Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie name\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Every cookie is associated to a domain or hostname.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie host\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 250\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Cookie duration\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Purpose\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 70,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(SortableBody, {\n useDragHandle: true,\n onSortEnd: function onSortEnd(_ref4) {\n var oldIndex = _ref4.oldIndex,\n newIndex = _ref4.newIndex;\n return move(oldIndex, newIndex);\n },\n onSortStart: handleSortStart,\n helperContainer: function helperContainer() {\n return tbodyRef.current;\n }\n }, fields.map(function (field, index) {\n return /*#__PURE__*/React.createElement(SortableItem, {\n key: field.key,\n index: index\n }, /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 ? /*#__PURE__*/React.createElement(DragHandle, null) : undefined), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"type\"],\n name: [field.name, \"type\"],\n rules: [{\n required: true,\n message: __(\"Please provide a cookie type!\")\n }]\n }), /*#__PURE__*/React.createElement(_Select, null, Object.keys(cookieTypeLocalized).map(function (key) {\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key,\n style: {\n display: key === \"flash\" ? \"none\" : undefined\n }\n }, cookieTypeLocalized[key].name);\n })))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"name\"],\n name: [field.name, \"name\"],\n rules: [{\n required: true,\n message: __(\"Please provide a technical cookie name!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical, _nextValues$technical;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.name) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.name);\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue;\n var cookieName = getFieldValue([\"technicalDefinitions\", field.name, \"name\"]);\n var notSupportedCookieNamePlaceholders = [/\\[/gm, [/([{]+)/gm, function (match) {\n return match.length === 1;\n }], /\\(/gm];\n return notSupportedCookieNamePlaceholders.filter(function (r) {\n return Array.isArray(r) ? r[0].test(cookieName) && cookieName.match(r[0]).filter(r[1]).length > 0 : r.test(cookieName);\n }).length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning inline below-h2 notice-alt\",\n style: {\n margin: \"10px 0 0 0\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"Are you sure this is the name of the cookie? It seems like you are using a placeholder that is not supported. Please use an asterisk ({{code}}*{{/code}}) as a placeholder if the cookie name is dynamically composed.\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.type) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.type);\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n var type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"host\"],\n name: [field.name, \"host\"],\n rules: [{\n validator: function validator(_, value) {\n return ([\"local\", \"session\", \"indexedDb\"].indexOf(type) > -1 ? isUrl(value) : isHost(value)) || value === \"\" && type !== \"http\" ? Promise.resolve() : Promise.reject(__(\"Please provide a valid hostname!\"));\n }\n }]\n }), /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical3, _nextValues$technical3;\n\n return ((_prevValues$technical3 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical3 === void 0 ? void 0 : _prevValues$technical3.host) !== ((_nextValues$technical3 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical3 === void 0 ? void 0 : _nextValues$technical3.host);\n }\n }, function (_ref7) {\n var getFieldValue = _ref7.getFieldValue;\n var host = getFieldValue([\"technicalDefinitions\", field.name, \"host\"]);\n return host.startsWith(\"*.\") && host.length > 2 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning inline below-h2 notice-alt\",\n style: {\n margin: \"10px 0 0 0\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.\", host.substr(2)), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })));\n }));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical4, _nextValues$technical4;\n\n return ((_prevValues$technical4 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical4 === void 0 ? void 0 : _prevValues$technical4.type) !== ((_nextValues$technical4 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical4 === void 0 ? void 0 : _nextValues$technical4.type);\n }\n }, function (_ref8) {\n var getFieldValue = _ref8.getFieldValue;\n var type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n return [\"local\", \"session\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? null : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {\n fieldKey: [field.fieldKey, \"sessionDuration\"],\n name: [field.name, \"sessionDuration\"],\n noStyle: true,\n valuePropName: \"checked\"\n }), /*#__PURE__*/React.createElement(_Checkbox, {\n style: {\n float: \"left\",\n marginTop: 5\n }\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"This cookie is active as long as the session is active\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Session\"))))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n var _prevValues$technical5, _nextValues$technical5;\n\n return ((_prevValues$technical5 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical5 === void 0 ? void 0 : _prevValues$technical5.sessionDuration) !== ((_nextValues$technical5 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical5 === void 0 ? void 0 : _nextValues$technical5.sessionDuration);\n }\n }, function (_ref9) {\n var getFieldValue = _ref9.getFieldValue;\n var sessionDuration = getFieldValue([\"technicalDefinitions\", field.name, \"sessionDuration\"]);\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"duration\"],\n name: [field.name, \"duration\"],\n rules: [{\n required: !sessionDuration,\n message: __(\"Please provide a valid duration!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n min: \"0\",\n addonAfter: /*#__PURE__*/React.createElement(_Form.Item, {\n name: [field.name, \"durationUnit\"],\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide an unit!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, null, /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"s\"\n }, __(\"second(s)\")), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"m\"\n }, __(\"minute(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"h\"\n }, __(\"hour(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"d\"\n }, __(\"day(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"mo\"\n }, __(\"month(s)\"), \" \"), /*#__PURE__*/React.createElement(_Select.Option, {\n value: \"y\"\n }, __(\"year(s)\"), \" \"))),\n type: \"number\",\n style: {\n maxWidth: 200,\n display: sessionDuration ? \"none\" : undefined\n }\n }));\n }));\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, WP_LIST_TABLE_FORM_ITEM_PROPS, {\n fieldKey: [field.fieldKey, \"purpose\"],\n name: [field.name, \"purpose\"]\n }), /*#__PURE__*/React.createElement(_Input.TextArea, {\n rows: 1,\n autoSize: {\n maxRows: 3\n }\n }))), /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 ? /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-small\",\n onClick: function onClick() {\n remove(field.name);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)) : null));\n })), /*#__PURE__*/React.createElement(\"tfoot\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: 7,\n align: \"right\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: function onClick() {\n add(technicalDefinitionDefaults);\n }\n }, /*#__PURE__*/React.createElement(PlusOutlined, null), \" \", __(\"Add another cookie definition\")))))));\n });\n });\n});\nexport { CookieEditFormTechnicalFields };","/**\n * Is a passed host string valid?\n *\n * @param url\n * @see https://stackoverflow.com/a/106223/5506547\n */\nfunction isHost(url) {\n return /^\\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(url);\n}\n\nexport { isHost };","import _Input from \"antd/es/input\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { observer } from \"mobx-react\";\nimport { CookieEditFormLayout } from \"..\";\nimport { __ } from \"../../../../utils\";\nimport { useStores } from \"../../../../store\";\nimport { useRouteCookie } from \"../../../../hooks\";\nimport { LearnMoreTag } from \"../../..\";\n/**\n * Common manager form items. It provides fields for \"This is manger XY\" and in/out events.\n * If you add another manager, please also consider to add the meta fields to REST and initial values\n * of the cookie form itself.\n */\n\nvar CookieEditFormManagerFields = observer(function (_ref) {\n var manager = _ref.manager,\n onlyWhenManagerIs = _ref.onlyWhenManagerIs,\n hasManagerAttributeName = _ref.hasManagerAttributeName,\n thisIsManagerAttributeName = _ref.thisIsManagerAttributeName,\n inEventNameAttributeName = _ref.inEventNameAttributeName,\n outEventNameAttributeName = _ref.outEventNameAttributeName;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n _useStores$optionStor = _useStores.optionStore,\n setCookiesViaManager = _useStores$optionStor.setCookiesViaManager,\n hasManager = _useStores$optionStor[hasManagerAttributeName],\n isPro = _useStores$optionStor.others.isPro;\n\n var essentialGroup = cookieStore.essentialGroup;\n\n var _useRouteCookie = useRouteCookie(),\n cookie = _useRouteCookie.cookie;\n\n return setCookiesViaManager === onlyWhenManagerIs && isPro && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: hasManager && cookie.key !== hasManager ? __(\"You have already defined a %s service.\", manager) : \"\"\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: thisIsManagerAttributeName,\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, {\n disabled: hasManager && cookie.key !== hasManager\n })), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Opt-in script below loads %s\", manager))))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, curValues) {\n return prevValues[thisIsManagerAttributeName] !== curValues[thisIsManagerAttributeName] || prevValues.group !== curValues.group;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var isActive = getFieldValue(thisIsManagerAttributeName);\n var group = getFieldValue(\"group\");\n return isActive && group !== essentialGroup.key && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You have defined %1$s in a non-essential service group. In our legal opinion, this is the only way to use %1$s legally. However, please note that if a user doesn't consent to load %1$s, opt-in and opt-out events will not be sent to %1$s. Real Cookie Banner offers you the possibility to specify a fallback HTML/JavaScript for this case.\", manager))));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, curValues) {\n return prevValues[thisIsManagerAttributeName] !== curValues[thisIsManagerAttributeName] || prevValues[inEventNameAttributeName] !== curValues[inEventNameAttributeName] || prevValues[outEventNameAttributeName] !== curValues[outEventNameAttributeName];\n }\n }, function (_ref3) {\n var getFieldValue = _ref3.getFieldValue;\n var active = getFieldValue(thisIsManagerAttributeName);\n var inEventName = getFieldValue(inEventNameAttributeName);\n var outEventName = getFieldValue(outEventNameAttributeName);\n return !active && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Event names for %s\", manager)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: inEventNameAttributeName,\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, {\n addonBefore: __(\"Opt-in\"),\n style: {\n maxWidth: 400,\n marginRight: 10,\n marginBottom: 5\n }\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n name: outEventNameAttributeName,\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, {\n addonBefore: __(\"Opt-out\"),\n style: {\n maxWidth: 400,\n marginRight: 10,\n marginBottom: 5\n }\n })), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/\")\n })), (inEventName.length > 0 || outEventName.length > 0) && !hasManager && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"You have not yet defined a %s service. To use event names, you must create a %s service.\", manager, manager))));\n }));\n});\nexport { CookieEditFormManagerFields };","var DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\n/**\n * Takes any string and replaces `{{myVariable}}` with the value of the passed `dynamics` map.\n */\n\nfunction applyDynamicsToHtml(src, dynamics) {\n return src.replace(DYNAMICS_VARIABLE_REGEXP, function (fullMatch, variableName) {\n return Object.prototype.hasOwnProperty.call(dynamics, variableName) ? dynamics[variableName] : fullMatch;\n });\n}\n\nexport { applyDynamicsToHtml, DYNAMICS_VARIABLE_REGEXP };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../../../utils\";\nimport { DYNAMICS_VARIABLE_REGEXP } from \"@devowl-wp/headless-content-unblocker\";\nvar DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\n\n/**\n * Provide dynamic variables in `codeOptIn`, `codeOptOut` and `codeOnPageLoad`.\n */\nvar CookieEditFormCodeDynamics = observer(function (_ref) {\n var dynamicFields = _ref.dynamicFields;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return DYNAMICS_SEARCH_IN.map(function (k) {\n return prevValues[k] !== nextValues[k];\n }).filter(Boolean).length > 0;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var searchInResolved = DYNAMICS_SEARCH_IN.map(function (k) {\n return getFieldValue(k);\n }).join(\"\");\n var matches = Array.from(searchInResolved.matchAll(DYNAMICS_VARIABLE_REGEXP)).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n m = _ref4[1];\n\n return m;\n });\n var added = [];\n return matches ? matches.map(function (name) {\n var formName = [\"codeDynamics\", name];\n\n var _ref5 = (dynamicFields === null || dynamicFields === void 0 ? void 0 : dynamicFields[name]) || {},\n label = _ref5.label,\n _ref5$invalidMessage = _ref5.invalidMessage,\n invalidMessage = _ref5$invalidMessage === void 0 ? __(\"Please fill in a value!\") : _ref5$invalidMessage,\n example = _ref5.example,\n expression = _ref5.expression,\n hint = _ref5.hint;\n\n if (added.indexOf(name) > -1) {\n return null;\n }\n\n added.push(name);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n key: name,\n label: label || /*#__PURE__*/React.createElement(\"code\", null, name),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: formName,\n rules: [{\n required: true,\n pattern: expression ? new RegExp(expression) : undefined,\n message: invalidMessage\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: example ? \"\".concat(__(\"e. g.\"), \" \").concat(example) : undefined\n })), !!hint && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\",\n style: {\n margin: \"10px 0 5px\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: hint\n }\n })));\n }) : null;\n });\n});\nexport { CookieEditFormCodeDynamics };","import _Form from \"antd/es/form\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { useMemo } from \"react\";\nimport { _i, __ } from \"../../../../utils\";\nimport { observer } from \"mobx-react\";\nimport { useStores } from \"../../../../store\";\nvar NoticeFormItemContainsSkipIfActiveAttribute = observer(function (_ref) {\n var name = _ref.name;\n\n var _useStores = useStores(),\n activePlugins = _useStores.optionStore.others.activePlugins;\n\n var activePluginKeys = useMemo(function () {\n return Object.keys(activePlugins);\n }, [activePlugins]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues[name] !== nextValues[name];\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n var value = getFieldValue(name); // Find `skip-if-active` and their active plugins\n\n var matches = _toConsumableArray(value.matchAll(/\\s+(skip-if-active=\")([^\"]+)(\")/gm)).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 3),\n plugins = _ref4[2];\n\n return plugins.split(\",\").filter(function (plugin) {\n return activePluginKeys.indexOf(plugin) > -1;\n });\n }).flat();\n\n var uniq = matches.filter(function (plugin, i) {\n return matches.indexOf(plugin) === i;\n });\n\n if (uniq.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"The code above contains HTML tags that are skipped when one of the following plugins is active: {{strong/}}. {{i}}What does this mean for me?{{/i}} In most cases, another plugin will take over the execution of the technical code, and you have to create a corresponding content blocker.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null, uniq.map(function (plugin) {\n return activePlugins[plugin];\n }).join(\", \")),\n i: /*#__PURE__*/React.createElement(\"i\", null)\n })));\n });\n});\nexport { NoticeFormItemContainsSkipIfActiveAttribute };","import _Switch from \"antd/es/switch\";\nimport _Form from \"antd/es/form\";\nimport { useCallback } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { FormHeadline, CodeMirror, Notices } from \"../../..\";\nimport { CookieEditFormLayout } from \"..\";\nimport { __, _i } from \"../../../../utils\";\nimport { MANAGER_GTM_LABEL, MANAGER_MTM_LABEL } from \"../..\";\nimport { useStores } from \"../../../../store\";\nimport { CookieEditFormManagerFields, CookieEditFormCodeDynamics, NoticeFormItemContainsSkipIfActiveAttribute } from \".\";\nvar CookieEditFormHandlingFields = observer(function (_ref) {\n var notices = _ref.notices,\n dynamicFields = _ref.dynamicFields;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n _useStores$optionStor = _useStores.optionStore,\n setCookiesViaManager = _useStores$optionStor.setCookiesViaManager,\n isPro = _useStores$optionStor.others.isPro;\n\n var essentialGroup = cookieStore.essentialGroup; // CodeMirror does not support \"display:none;\", we need to hide it in a hacky way\n\n var createHiddenFormItemsWithCodeMirror = useCallback(function (visible) {\n return {\n opacity: visible ? undefined : 0,\n height: visible ? undefined : 0,\n margin: visible ? undefined : 0\n };\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: CookieEditFormLayout.labelCol.span,\n description: setCookiesViaManager === \"none\" ? __(\"Define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service or when a page is loaded. It is important to define the executed code correctly, as this ensures that scripts are executed and cookies are set only after the user's consent.\") : __(\"Define the %1$s event that should be thrown in the data layer when a visitor decides to accept or reject this service. The event can be used as a trigger in %1$s. For users who do not allow to use %1$s a fallback can be defined. You can define HTML and JavaScript code that is executed when a visitor decides to accept or reject this service, or when a page is loaded. It is important to define the event names and executed code correctly, as this will ensure that scripts are executed and cookies are only set with the user's consent.\", setCookiesViaManager === \"googleTagManager\" ? MANAGER_GTM_LABEL : MANAGER_MTM_LABEL)\n }, __(\"Technical handling\")), /*#__PURE__*/React.createElement(CookieEditFormManagerFields, {\n manager: MANAGER_GTM_LABEL,\n onlyWhenManagerIs: \"googleTagManager\",\n hasManagerAttributeName: \"hasGTM\",\n thisIsManagerAttributeName: \"thisIsGoogleTagManager\",\n inEventNameAttributeName: \"googleTagManagerInEventName\",\n outEventNameAttributeName: \"googleTagManagerOutEventName\"\n }), /*#__PURE__*/React.createElement(CookieEditFormManagerFields, {\n manager: MANAGER_MTM_LABEL,\n onlyWhenManagerIs: \"matomoTagManager\",\n hasManagerAttributeName: \"hasMTM\",\n thisIsManagerAttributeName: \"thisIsMatomoTagManager\",\n inEventNameAttributeName: \"matomoTagManagerInEventName\",\n outEventNameAttributeName: \"matomoTagManagerOutEventName\"\n }), /*#__PURE__*/React.createElement(CookieEditFormCodeDynamics, {\n dynamicFields: dynamicFields\n }), (notices === null || notices === void 0 ? void 0 : notices.length) > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span,\n span: CookieEditFormLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: notices\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-in\")\n }, setCookiesViaManager === \"googleTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsGoogleTagManager !== nextValues.thisIsGoogleTagManager;\n }\n }, function (_ref2) {\n var getFieldValue = _ref2.getFieldValue;\n return !getFieldValue(\"thisIsGoogleTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptInNoGoogleTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_GTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), setCookiesViaManager === \"matomoTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsMatomoTagManager !== nextValues.thisIsMatomoTagManager;\n }\n }, function (_ref3) {\n var getFieldValue = _ref3.getFieldValue;\n return !getFieldValue(\"thisIsMatomoTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptInNoMatomoTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_MTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptIn\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOptIn\"\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref4) {\n var getFieldValue = _ref4.getFieldValue;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-out\"),\n style: createHiddenFormItemsWithCodeMirror(getFieldValue(\"group\") !== essentialGroup.key)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.noTechnicalDefinitions !== nextValues.noTechnicalDefinitions;\n }\n }, function (_ref5) {\n var getFieldValue = _ref5.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutDelete\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.\")));\n }), setCookiesViaManager === \"googleTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsGoogleTagManager !== nextValues.thisIsGoogleTagManager;\n }\n }, function (_ref6) {\n var getFieldValue = _ref6.getFieldValue;\n return !getFieldValue(\"thisIsGoogleTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutNoGoogleTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_GTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), setCookiesViaManager === \"matomoTagManager\" && isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.thisIsMatomoTagManager !== nextValues.thisIsMatomoTagManager;\n }\n }, function (_ref7) {\n var getFieldValue = _ref7.getFieldValue;\n return !getFieldValue(\"thisIsMatomoTagManager\") && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"4px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOutNoMatomoTagManager\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", MANAGER_MTM_LABEL), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOut\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOptOut\"\n })));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on page load\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOnPageLoad\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n })), /*#__PURE__*/React.createElement(NoticeFormItemContainsSkipIfActiveAttribute, {\n name: \"codeOnPageLoad\"\n })));\n});\nexport { CookieEditFormHandlingFields };","import _Spin from \"antd/es/spin\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport _message from \"antd/es/message\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _Form from \"antd/es/form\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { CookieModel } from \"../../../models\";\nimport { __, scrollTo, slugify, base64EncodeUnicodeSafe } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { useHistory, Prompt } from \"react-router-dom\";\nimport { useRouteCookie } from \"../../../hooks\";\nimport { CookieEditFormGeneralFields, CookieEditFormTechnicalFields, CookieEditFormHandlingFields } from \".\";\nimport { LearnMoreTag } from \"../..\";\nvar CookieEditFormLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nvar technicalDefinitionDefaults = {\n type: \"http\",\n name: \"\",\n host: \"\",\n duration: undefined,\n durationUnit: \"y\",\n sessionDuration: false,\n purpose: \"\"\n};\nvar CookieEditForm = observer(function (_ref) {\n var _cookieStore$groups$s, _cookieStore$groups$s2, _presetModel$attribut, _presetModel$attribut2, _presetModel$attribut4, _presetModel$attribut5;\n\n var preset = _ref.preset,\n attributes = _ref.attributes,\n _ref$navigateAfterCre = _ref.navigateAfterCreation,\n navigateAfterCreation = _ref$navigateAfterCre === void 0 ? true : _ref$navigateAfterCre,\n _ref$scrollToTop = _ref.scrollToTop,\n scrollToTop = _ref$scrollToTop === void 0 ? true : _ref$scrollToTop,\n onCreated = _ref.onCreated;\n\n var _useRouteCookie = useRouteCookie(),\n _useRouteCookie$route = _useRouteCookie.routeGroup,\n group = _useRouteCookie$route.group,\n link = _useRouteCookie$route.link,\n cookie = _useRouteCookie.cookie,\n id = _useRouteCookie.id,\n queried = _useRouteCookie.queried,\n fetched = _useRouteCookie.fetched;\n\n var _Form$useForm = _Form.useForm(),\n _Form$useForm2 = _slicedToArray(_Form$useForm, 1),\n form = _Form$useForm2[0];\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isBusy = _useState2[0],\n setIsBusy = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n hasChanges = _useState4[0],\n setHasChanges = _useState4[1];\n\n var history = useHistory();\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore,\n useEncodedStringForScriptInputs = _useStores.optionStore.others.useEncodedStringForScriptInputs;\n\n var essentialGroup = cookieStore.essentialGroup;\n var presetModel = (cookie === null || cookie === void 0 ? void 0 : cookie.presetModel) || cookieStore.presetsCookie.get(preset === null || preset === void 0 ? void 0 : preset.identifier); // Determine the group to use for a given preset, otherwise use current opened group tab\n\n var useGroup = attributes ? attributes.group ? ((_cookieStore$groups$s = cookieStore.groups.sortedGroups.filter(function (_ref2) {\n var name = _ref2.data.name;\n return name === attributes.group;\n })) === null || _cookieStore$groups$s === void 0 ? void 0 : (_cookieStore$groups$s2 = _cookieStore$groups$s[0]) === null || _cookieStore$groups$s2 === void 0 ? void 0 : _cookieStore$groups$s2.key) || \"preset-group-not-found\" : undefined : group.key;\n var allowContentBlockerCreation = Object.keys((preset === null || preset === void 0 ? void 0 : preset.contentBlockerPresets) || []).length > 0;\n var createContentBlockerNotice = (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut = presetModel.attributes) === null || _presetModel$attribut === void 0 ? void 0 : _presetModel$attribut.createContentBlockerNotice);\n var showOptInNoticeScanned = !!(presetModel !== null && presetModel !== void 0 && presetModel.data.scanned && (_presetModel$attribut2 = presetModel.attributes) !== null && _presetModel$attribut2 !== void 0 && _presetModel$attribut2.codeOptIn && [\"wordpress-comments\"].indexOf(presetModel.data.identifier) === -1);\n var initialValues = fetched ? {\n name: cookie.data.title.raw,\n status: cookie.data.status,\n group: group.key || undefined,\n // Can be `0`, so fallback to no selection (e.g. Cookie form modal in Content Blocker)\n purpose: cookie.data.content.raw,\n provider: cookie.data.meta.provider,\n providerPrivacyPolicy: cookie.data.meta.providerPrivacyPolicy,\n consentForwardingUniqueName: cookie.data.meta.consentForwardingUniqueName || cookie.data.slug,\n noTechnicalDefinitions: cookie.data.meta.noTechnicalDefinitions,\n legalBasis: cookie.data.meta.legalBasis,\n ePrivacyUSA: cookie.data.meta.ePrivacyUSA,\n technicalDefinitions: JSON.parse(JSON.stringify(cookie.technicalDefinitions || \"[]\")),\n codeDynamics: JSON.parse(JSON.stringify(cookie.codeDynamics || \"{}\")),\n thisIsGoogleTagManager: cookie.data.meta.thisIsGoogleTagManager,\n googleTagManagerInEventName: cookie.data.meta.googleTagManagerInEventName,\n googleTagManagerOutEventName: cookie.data.meta.googleTagManagerOutEventName,\n thisIsMatomoTagManager: cookie.data.meta.thisIsMatomoTagManager,\n matomoTagManagerInEventName: cookie.data.meta.matomoTagManagerInEventName,\n matomoTagManagerOutEventName: cookie.data.meta.matomoTagManagerOutEventName,\n codeOptIn: cookie.data.meta.codeOptIn,\n codeOptInNoGoogleTagManager: cookie.data.meta.codeOptInNoGoogleTagManager,\n codeOptInNoMatomoTagManager: cookie.data.meta.codeOptInNoMatomoTagManager,\n codeOptOut: cookie.data.meta.codeOptOut,\n codeOptOutNoGoogleTagManager: cookie.data.meta.codeOptOutNoGoogleTagManager,\n codeOptOutNoMatomoTagManager: cookie.data.meta.codeOptOutNoMatomoTagManager,\n codeOnPageLoad: cookie.data.meta.codeOnPageLoad,\n codeOptOutDelete: cookie.data.meta.codeOptOutDelete\n } : {\n name: (attributes === null || attributes === void 0 ? void 0 : attributes.name) || \"\",\n status: \"publish\",\n group: typeof useGroup === \"number\" ? // Can be `0`, so fallback to no selection (e.g. Cookie form modal in Content Blocker)\n useGroup || undefined : undefined,\n purpose: (attributes === null || attributes === void 0 ? void 0 : attributes.purpose) || \"\",\n provider: (attributes === null || attributes === void 0 ? void 0 : attributes.provider) || \"\",\n providerPrivacyPolicy: (attributes === null || attributes === void 0 ? void 0 : attributes.providerPrivacyPolicy) || \"\",\n consentForwardingUniqueName: (attributes === null || attributes === void 0 ? void 0 : attributes.consentForwardingUniqueName) || (preset === null || preset === void 0 ? void 0 : preset.identifier) || \"\",\n noTechnicalDefinitions: (attributes === null || attributes === void 0 ? void 0 : attributes.noTechnicalDefinitions) || false,\n legalBasis: (attributes === null || attributes === void 0 ? void 0 : attributes.legalBasis) || \"consent\",\n ePrivacyUSA: (attributes === null || attributes === void 0 ? void 0 : attributes.ePrivacyUSA) || false,\n technicalDefinitions: attributes !== null && attributes !== void 0 && attributes.technicalDefinitions ? JSON.parse(JSON.stringify(attributes.technicalDefinitions)) : [technicalDefinitionDefaults],\n codeDynamics: (attributes === null || attributes === void 0 ? void 0 : attributes.codeDynamics) || {},\n thisIsGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.thisIsGoogleTagManager) || false,\n googleTagManagerInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.googleTagManagerInEventName) || \"\",\n googleTagManagerOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.googleTagManagerOutEventName) || \"\",\n thisIsMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.thisIsMatomoTagManager) || false,\n matomoTagManagerInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.matomoTagManagerInEventName) || \"\",\n matomoTagManagerOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.matomoTagManagerOutEventName) || \"\",\n codeOptIn: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptIn) || \"\",\n codeOptInNoGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptInNoGoogleTagManager) || false,\n codeOptInNoMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptInNoMatomoTagManager) || false,\n codeOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOut) || \"\",\n codeOnPageLoad: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOnPageLoad) || \"\",\n codeOptOutNoGoogleTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutNoGoogleTagManager) || false,\n codeOptOutNoMatomoTagManager: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutNoMatomoTagManager) || false,\n codeOptOutDelete: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOutDelete) || false,\n createContentBlocker: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlocker) === \"boolean\" ? attributes.createContentBlocker : allowContentBlockerCreation && !(attributes !== null && attributes !== void 0 && attributes.deactivateAutomaticContentBlockerCreation),\n createContentBlockerId: attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerId,\n presetCheck: !preset\n }; // Initially load the cookie if not yet done\n\n useEffect(function () {\n if (queried && !fetched) {\n // Fetch the cookie within the correct group collection so it gets removed\n // from the original cookie group when it got moved to another cookie group.\n var groupToFetch = _toConsumableArray(cookieStore.groups.entries.values()).filter(function (_ref3) {\n var cookies = _ref3.cookies;\n return cookies.entries.get(id);\n })[0] || group;\n groupToFetch.cookies.getSingle({\n params: {\n id: id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]); // Lazy load attributes of preset model\n\n useEffect(function () {\n if (presetModel && !presetModel.attributes) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(function () {\n if (scrollToTop) {\n scrollTo(0);\n }\n }, []);\n var handleSave = useCallback( /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {\n var _document$querySelect, codeToBase64, name, status, purpose, noTechnicalDefinitions, technicalDefinitions, _group, codeDynamics, createContentBlocker, createContentBlockerId, consentForwardingUniqueName, codeOptIn, codeOptOut, codeOnPageLoad, meta, newMeta, _useGroup, draft, noticeId, _document$querySelect2;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n\n // Pass as base64-encoded string to avoid Cloudflare XSS issues\n codeToBase64 = function codeToBase64(str) {\n return useEncodedStringForScriptInputs ? \"encodedScript:\".concat(base64EncodeUnicodeSafe(str)) : str;\n };\n\n name = values.name, status = values.status, purpose = values.purpose, noTechnicalDefinitions = values.noTechnicalDefinitions, technicalDefinitions = values.technicalDefinitions, _group = values.group, codeDynamics = values.codeDynamics, createContentBlocker = values.createContentBlocker, createContentBlockerId = values.createContentBlockerId, consentForwardingUniqueName = values.consentForwardingUniqueName, codeOptIn = values.codeOptIn, codeOptOut = values.codeOptOut, codeOnPageLoad = values.codeOnPageLoad, meta = _objectWithoutProperties(values, [\"name\", \"status\", \"purpose\", \"noTechnicalDefinitions\", \"technicalDefinitions\", \"group\", \"codeDynamics\", \"createContentBlocker\", \"createContentBlockerId\", \"consentForwardingUniqueName\", \"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"]);\n newMeta = _objectSpread(_objectSpread({}, meta), {}, {\n codeOptIn: codeToBase64(codeOptIn),\n codeOptOut: codeToBase64(codeOptOut),\n codeOnPageLoad: codeToBase64(codeOnPageLoad),\n noTechnicalDefinitions: noTechnicalDefinitions,\n codeDynamics: JSON.stringify(codeDynamics),\n // Still hold the data of `technicalDefinitions` in database so it is not cleared when activating this option\n technicalDefinitions: JSON.stringify(noTechnicalDefinitions ? initialValues.technicalDefinitions : technicalDefinitions),\n consentForwardingUniqueName: consentForwardingUniqueName || slugify(name)\n });\n delete newMeta.presetCheck;\n\n if (!queried) {\n _context.next = 15;\n break;\n }\n\n cookie.setName(name);\n cookie.setStatus(status);\n cookie.setPurpose(purpose);\n cookie.setMeta(newMeta);\n cookie.setGroup(_group);\n _context.next = 13;\n return cookie.patch();\n\n case 13:\n _context.next = 20;\n break;\n\n case 15:\n _useGroup = cookieStore.groups.entries.get(_group);\n draft = new CookieModel(_useGroup.cookies, {\n title: {\n rendered: name\n },\n content: {\n rendered: purpose,\n protected: false\n },\n status: status,\n meta: _objectSpread(_objectSpread({}, newMeta), {}, {\n presetId: preset === null || preset === void 0 ? void 0 : preset.identifier,\n presetVersion: preset === null || preset === void 0 ? void 0 : preset.version\n })\n });\n _context.next = 19;\n return draft.persist();\n\n case 19:\n onCreated === null || onCreated === void 0 ? void 0 : onCreated(draft);\n\n case 20:\n setHasChanges(false);\n\n _message.success(__(\"You have successfully saved the service.\") + (createContentBlocker ? \" \".concat(__(\"Continue with the corresponding Content Blocker!\")) : \"\")); // Remove the item from the \"Services with empty privacy policy\" global notice\n\n\n noticeId = \"#rcb-services-with-empty-privacy-policy-notice\";\n (_document$querySelect = document.querySelector(\"\".concat(noticeId, \" li[data-id=\\\"\").concat(id, \"\\\"]\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.classList.add(\"hidden\");\n\n if (!document.querySelectorAll(\"\".concat(noticeId, \" > ul > li:not(.hidden)\")).length) {\n (_document$querySelect2 = document.querySelector(noticeId)) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.remove();\n } // Navigate back after creation\n\n\n navigateAfterCreation && setTimeout(function () {\n return createContentBlocker ? // Navigate to content blocker form and forward `navigateAfterCreation` if given\n history.push(\"/blocker/new?force=\".concat(createContentBlockerId || preset.identifier, \"&cookieCreationPrompt=1\").concat(typeof navigateAfterCreation === \"string\" ? \"&navigateAfterCreation=\".concat(encodeURIComponent(navigateAfterCreation)) : \"\")) : // Navigate back to overview or custom link\n typeof navigateAfterCreation === \"string\" ? window.location.href = navigateAfterCreation : history.push(\"\".concat(link.slice(1), \"/\").concat(_group));\n }, 0);\n _context.next = 32;\n break;\n\n case 28:\n _context.prev = 28;\n _context.t0 = _context[\"catch\"](0);\n\n _message.error(_context.t0.responseJSON.message);\n\n throw _context.t0;\n\n case 32:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 28]]);\n }));\n\n return function (_x) {\n return _ref4.apply(this, arguments);\n };\n }(), [queried, cookie, cookieStore, useEncodedStringForScriptInputs]);\n var onFinish = useCallback( /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n setIsBusy(true);\n _context2.prev = 1;\n _context2.next = 4;\n return handleSave(values);\n\n case 4:\n _context2.next = 8;\n break;\n\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](1);\n\n case 8:\n _context2.prev = 8;\n setIsBusy(false);\n return _context2.finish(8);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[1, 6, 8, 11]]);\n }));\n\n return function (_x2) {\n return _ref5.apply(this, arguments);\n };\n }(), [form, handleSave]);\n var onFinishFailed = useCallback(function (errorInfo) {\n _message.error(__(\"The service could not be saved due to missing/invalid form values.\"));\n\n if (errorInfo.errorFields.length) {\n var instance = form.getFieldInstance(errorInfo.errorFields[0].name);\n instance.parentElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n }, []);\n var handleBeforeUnload = useCallback(function () {\n if (!hasChanges) {\n return true;\n }\n\n return __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.');\n }, [form, initialValues]);\n\n if (queried && !fetched) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: handleBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"cookie-\".concat(group.key, \"-\").concat(id),\n form: form\n }, CookieEditFormLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: function onValuesChange(_ref6) {\n var technicalDefinitions = _ref6.technicalDefinitions;\n setHasChanges(true); // Listen to `sessionDuration` changes and validate the `required` field\n // Listen to `type` changes and validate the technical host field\n\n var td = (technicalDefinitions || []).filter(Boolean);\n\n if (td.length === 1) {\n var tdChangedKeys = Object.keys(td[0]);\n\n if (tdChangedKeys.length === 1 && [\"sessionDuration\", \"type\"].indexOf(tdChangedKeys[0]) > -1) {\n setTimeout(function () {\n return form.validateFields();\n }, 100); // wait a bit so there are not false-positives\n }\n }\n }\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref7) {\n var _presetModel$attribut3;\n\n var getFieldValue = _ref7.getFieldValue;\n return /*#__PURE__*/React.createElement(CookieEditFormGeneralFields, {\n groupNotices: [{\n message: presetModel && typeof useGroup === \"number\" && getFieldValue(\"group\") !== useGroup ? __(\"The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?\") : undefined,\n severity: \"warning\"\n }, {\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.groupNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut3 = presetModel.attributes) === null || _presetModel$attribut3 === void 0 ? void 0 : _presetModel$attribut3.groupNotice),\n severity: \"info\"\n }],\n providerPrivacyPolicyNotices: [{\n message: !fetched && presetModel !== null && presetModel !== void 0 && presetModel.attributes && !initialValues.providerPrivacyPolicy ? __('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href=\"%s\" target=\"_blank\">set the corresponding page in your settings.</a>', \"#/settings\") : undefined,\n severity: \"warning\"\n }],\n showNoticePresetGroupNotFound: useGroup === \"preset-group-not-found\" ? attributes.group : false\n });\n }), /*#__PURE__*/React.createElement(CookieEditFormTechnicalFields, null), /*#__PURE__*/React.createElement(CookieEditFormHandlingFields, {\n dynamicFields: (attributes === null || attributes === void 0 ? void 0 : attributes.dynamicFields) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut4 = presetModel.attributes) === null || _presetModel$attribut4 === void 0 ? void 0 : _presetModel$attribut4.dynamicFields),\n notices: [{\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.technicalHandlingNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut5 = presetModel.attributes) === null || _presetModel$attribut5 === void 0 ? void 0 : _presetModel$attribut5.technicalHandlingNotice),\n severity: \"info\"\n }, {\n // Example: Hotjar (hidden content blocker)\n message: showOptInNoticeScanned && !allowContentBlockerCreation && __(\"If you have already used %s before creating this service, please deactivate the script/plugin with which the service was loaded so far. The opt-in script will now take care of the correct integration.\", presetModel.data.attributes_name),\n severity: \"warning\"\n }, {\n // Example: Google Analytics (scanned, found in custom script (e.g. `functions.php`))\n message: showOptInNoticeScanned && allowContentBlockerCreation && __('You are currently embedding \"%1$s\" outside of Real Cookie Banner. You can have it blocked via a content blocker before consenting. Alternatively, you can use the following opt-in script to load %1$s directly into Real Cookie Banner.<br /><br />If you want to embed \"%1$s\" via Real Cookie Banner, you have to deactivate the content blocker at the end of the form and remove \"%1$s\" outside Real Cookie Banner.<br /><br />If you prefer to keep the current integration, you only have to delete the opt-in script in this form.', presetModel.data.attributes_name),\n severity: \"warning\"\n }].filter(function (_ref8) {\n var message = _ref8.message;\n return message;\n })\n }), !!preset && /*#__PURE__*/React.createElement(React.Fragment, null, allowContentBlockerCreation && navigateAfterCreation && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.group !== nextValues.group;\n }\n }, function (_ref9) {\n var getFieldValue = _ref9.getFieldValue;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlocker\",\n valuePropName: \"checked\",\n dependencies: [\"group\"],\n rules: [{\n validator: function validator(_, value) {\n return getFieldValue(\"group\") === essentialGroup.key && value ? Promise.reject(__('Services that should be associated with a content blocker cannot be in the \"Essential\" group, because it cannot be rejected.')) : Promise.resolve();\n }\n }]\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"Create content blocker for this service.\")));\n }), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: function shouldUpdate(prevValues, nextValues) {\n return prevValues.createContentBlocker !== nextValues.createContentBlocker;\n }\n }, function (_ref10) {\n var getFieldValue = _ref10.getFieldValue;\n return /*#__PURE__*/React.createElement(React.Fragment, null, getFieldValue(\"createContentBlocker\") && /*#__PURE__*/React.createElement(React.Fragment, null, Object.keys(preset.contentBlockerPresets).length > 1 && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlockerId\",\n rules: [{\n required: true,\n message: __(\"Please select a template for the Content Blocker!\")\n }]\n }, /*#__PURE__*/React.createElement(_Select, {\n style: {\n maxWidth: 500,\n marginTop: 10,\n display: \"block\"\n },\n placeholder: __(\"Select Content Blocker template...\")\n }, Object.keys(preset.contentBlockerPresets).map(function (contentBlockerId) {\n return /*#__PURE__*/React.createElement(_Select.Option, {\n key: contentBlockerId,\n value: contentBlockerId\n }, preset.contentBlockerPresets[contentBlockerId]);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\",\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.\")))), !!createContentBlockerNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: createContentBlockerNotice\n }\n })));\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: function transform(value) {\n return value || undefined;\n },\n message: __(\"Please confirm that you have checked the contents of the service.\")\n }],\n wrapperCol: {\n offset: CookieEditFormLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"I have checked the information in the service template myself and added any missing information or corrected any information that does not fit to my use case.\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/\")\n })))), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\"\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary right\",\n value: __(\"Save\")\n })))));\n});\nexport { CookieEditFormLayout, technicalDefinitionDefaults, CookieEditForm };","import _Form from \"antd/es/form\";\n\nvar FormHeadline = function FormHeadline(_ref) {\n var children = _ref.children,\n description = _ref.description,\n offset = _ref.offset;\n return /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: offset\n },\n style: {\n borderBottom: \"1px solid #e7e7e7\"\n }\n }, /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n margin: \"0 0 \".concat(description ? 3 : 15, \"px 0\")\n }\n }, children), !!description && /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n style: {\n marginBottom: 15\n }\n }, description));\n};\n\nexport { FormHeadline };","import _Divider from \"antd/es/divider\";\nimport _Avatar from \"antd/es/avatar\";\nimport _Modal from \"antd/es/modal\";\nimport { useCallback } from \"react\";\nimport { useStores } from \"../store\";\nimport { __ } from \"../utils\";\n\nfunction useCookieExpertsModal() {\n var _useStores = useStores(),\n assetsUrl = _useStores.optionStore.others.assetsUrl;\n\n var logoUrl = \"\".concat(assetsUrl, \"cookie-experts.svg\");\n var openDialog = useCallback(function () {\n _Modal.info({\n icon: undefined,\n width: 500,\n closable: true,\n okButtonProps: {\n style: {\n display: \"none\"\n }\n },\n content: /*#__PURE__*/React.createElement(\"div\", {\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(\"img\", {\n src: logoUrl,\n style: {\n display: \"block\",\n paddingTop: 15,\n margin: \"auto\",\n height: 176\n }\n }), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n margin: \"10px 0 0\"\n }\n }, \"Cookie Experts\"), /*#__PURE__*/React.createElement(\"p\", {\n style: {\n marginTop: 0\n }\n }, __(\"Let our team help you with the setup\")), /*#__PURE__*/React.createElement(_Divider, null, /*#__PURE__*/React.createElement(_Avatar.Group, {\n size: \"large\"\n }, /*#__PURE__*/React.createElement(_Avatar, {\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg\"\n }), /*#__PURE__*/React.createElement(_Avatar, {\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg\"\n }), /*#__PURE__*/React.createElement(_Avatar, {\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg\"\n }))), /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/wordpress-real-cookie-banner/cookie-experts/\"),\n target: \"_blank\",\n rel: \"noreferrer\",\n className: \"button button-large button-primary\"\n }, __(\"Get help from Cookie Experts\")), /*#__PURE__*/React.createElement(\"p\", null, __(\"We admit, it is not easy to find all the services, cookies, etc. The legal requirements in the EU are quite complex for many website operators. We can understand if you feel overwhelmed – if this goes far beyond what you can technically do. After you know what all has to be considered, the question of how to make your website privacy compliant does not let you sleep peacefully either.\")), /*#__PURE__*/React.createElement(\"p\", null, __(\"Don’t worry, we have a solution for you! Our Cookie Experts have already set up many cookie banners and know exactly what they are doing. They can also set up your cookie banner quickly and easily. So, we can simply take this worry away from you.\")), /*#__PURE__*/React.createElement(\"a\", {\n style: {\n marginTop: 10,\n textDecoration: \"underline\",\n display: \"inline-block\",\n cursor: \"pointer\"\n },\n onClick: function onClick() {\n return _Modal.destroyAll();\n }\n }, __(\"Close\")))\n });\n }, []);\n return {\n logoUrl: logoUrl,\n openDialog: openDialog\n };\n}\n\nexport { useCookieExpertsModal };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { CookieGroupModel } from \"../models\";\n\nvar useRouteCookieGroup = function useRouteCookieGroup() {\n var _useRouteMatch = useRouteMatch(),\n cookieGroup = _useRouteMatch.params.cookieGroup;\n\n var _useStores = useStores(),\n cookieStore = _useStores.cookieStore; // Get cookie group or return draft object\n\n\n var id = isNaN(+cookieGroup) ? 0 : +cookieGroup;\n var queried = !!cookieGroup;\n var group = cookieStore.groups.entries.get(id) || new CookieGroupModel(cookieStore.groups, {\n id: 0\n });\n var link = \"#/cookies\";\n var editLink = useCallback(function (_ref) {\n var key = _ref.key;\n return \"#/cookies/\".concat(group.key, \"/edit/\").concat(key);\n }, [group]);\n var addCookieLink = \"#/cookies/\".concat(group.key, \"/new\");\n return {\n group: group,\n id: id,\n queried: queried,\n fetched: group.key !== 0,\n link: link,\n editLink: editLink,\n addCookieLink: addCookieLink\n };\n};\n\nexport { useRouteCookieGroup };"],"names":["getCookieTypeLocalizationMap","http","name","abbr","backgroundColor","local","session","flash","indexedDb","CodeMirror","_ref","_ref$settings","settings","_ref$value","value","onChange","ref","useRef","codeEditor","useEffect","initialize","current","codemirror","on","instance","getValue","noop","useCallback","React","createElement","_ref2","target","style","width","base64EncodeUnicodeSafe","str","btoa","encodeURIComponent","replace","match","p1","String","fromCharCode","parseInt","slugify","toLowerCase","from","i","l","length","RegExp","charAt","useRouteCookie","routeGroup","useRouteCookieGroup","group","params","useRouteMatch","id","isNaN","cookie","queried","cookies","entries","get","fetched","key","Notices","notices","Fragment","map","message","severity","className","concat","dangerouslySetInnerHTML","__html","CookieEditFormGeneralFields","_cookie$presetModel","_cookie$presetModel$d","_ref$showNoticePreset","showNoticePresetGroupNotFound","groupNotices","providerPrivacyPolicyNotices","_useStores","_useStores$cookieStor","cookieStore","groups","essentialGroup","_useStores$optionStor","optionStore","ePrivacyUSA","consentForwarding","_useRouteCookie","isRealCookieBannerPreset","presetModel","data","identifier","findByUniqueCookieName","_callee","slug","_context","prev","next","request","location","abrupt","sent","filter","d","ID","t0","undefined","stop","_x","apply","this","arguments","validateUniqueCookieName","_ref3","_callee2","allowOverwrite","found","_consentForwardingUniqueName","matchRegexp","foundGenerated","_context2","__","metas","consentForwardingUniqueName","_","g1","g2","_x2","_x3","offset","CookieEditFormLayout","labelCol","span","url","label","required","noStyle","rules","sortedGroups","_ref4","_ref4$data","autoSize","minRows","_i","a","href","rel","type","shouldUpdate","prevValues","nextValues","_ref5","_validator","getFieldValue","setFieldsValue","isEssentialGroup","display","validateTrigger","validator","_callee3","_context3","_x4","_x5","placeholder","disabled","margin","strong","_ref6","valuePropName","WP_LIST_TABLE_FORM_ITEM_PROPS","wrapperCol","CookieEditFormTechnicalFields","cookieTypeLocalized","tbodyRef","_useMemo","useMemo","DragHandle","MenuOutlined","cursor","color","marginTop","SortableItem","props","SortableBody","handleSortStart","node","helper","childNodes","forEach","td","index","offsetWidth","noTechnicalDefinitions","technicalDefinitions","fields","add","remove","move","description","marginBottom","align","title","code","QuestionCircleFilled","useDragHandle","onSortEnd","oldIndex","newIndex","onSortStart","helperContainer","field","fieldKey","Object","keys","_prevValues$technical","_nextValues$technical","cookieName","r","Array","isArray","test","_prevValues$technical2","_nextValues$technical2","indexOf","isUrl","Promise","resolve","reject","_prevValues$technical3","_nextValues$technical3","host","_ref7","startsWith","substr","_prevValues$technical4","_nextValues$technical4","_ref8","float","_prevValues$technical5","_nextValues$technical5","sessionDuration","_ref9","min","addonAfter","maxWidth","rows","maxRows","onClick","DeleteOutlined","colSpan","technicalDefinitionDefaults","PlusOutlined","CookieEditFormManagerFields","manager","onlyWhenManagerIs","hasManagerAttributeName","thisIsManagerAttributeName","inEventNameAttributeName","outEventNameAttributeName","setCookiesViaManager","hasManager","isPro","others","curValues","isActive","active","inEventName","outEventName","addonBefore","marginRight","DYNAMICS_VARIABLE_REGEXP","DYNAMICS_SEARCH_IN","CookieEditFormCodeDynamics","dynamicFields","k","Boolean","searchInResolved","join","matches","matchAll","added","formName","_ref5$invalidMessage","invalidMessage","example","expression","hint","push","pattern","NoticeFormItemContainsSkipIfActiveAttribute","activePlugins","activePluginKeys","split","plugin","flat","uniq","CookieEditFormHandlingFields","createHiddenFormItemsWithCodeMirror","visible","opacity","height","thisIsGoogleTagManager","u","thisIsMatomoTagManager","window","cm_settings","duration","durationUnit","purpose","CookieEditForm","_cookieStore$groups$s","_cookieStore$groups$s2","_presetModel$attribut","_presetModel$attribut2","_presetModel$attribut4","_presetModel$attribut5","preset","attributes","_ref$navigateAfterCre","navigateAfterCreation","_ref$scrollToTop","scrollToTop","onCreated","_useRouteCookie$route","link","_Form$useForm","form","_useState","useState","_useState2","isBusy","setIsBusy","_useState3","_useState4","hasChanges","setHasChanges","history","useHistory","useEncodedStringForScriptInputs","presetsCookie","useGroup","allowContentBlockerCreation","contentBlockerPresets","createContentBlockerNotice","showOptInNoticeScanned","scanned","codeOptIn","initialValues","raw","status","content","provider","meta","providerPrivacyPolicy","legalBasis","JSON","parse","stringify","codeDynamics","googleTagManagerInEventName","googleTagManagerOutEventName","matomoTagManagerInEventName","matomoTagMan
|