Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent - Version 3.0.0

Version Description

Download this release

Release Info

Developer devowl
Plugin Icon 128x128 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

Files changed (51) hide show
  1. CHANGELOG.md +37 -0
  2. README.txt +3 -3
  3. inc/Assets.php +0 -1
  4. inc/Core.php +13 -8
  5. inc/IpHandler.php +1 -1
  6. inc/Utils.php +13 -1
  7. inc/base/others/cachebuster-lib.php +1 -1
  8. inc/base/others/cachebuster.php +41 -41
  9. inc/comp/migration/AbstractDashboardTileMigration.php +87 -5
  10. inc/comp/migration/DashboardTileMigrationMajor2.php +3 -30
  11. inc/comp/migration/DashboardTileMigrationMajor3.php +436 -0
  12. inc/comp/migration/DashboardTileTcfV2IllegalUsage.php +1 -2
  13. inc/presets/BlockerPresets.php +0 -37
  14. inc/presets/CookiePresets.php +0 -37
  15. inc/presets/Presets.php +3 -3
  16. inc/presets/free/GoogleFontsPreset.php +10 -4
  17. inc/presets/free/WordPressCommentsPreset.php +10 -4
  18. inc/presets/free/WordPressEmojisPreset.php +11 -1
  19. inc/presets/free/YoutubePreset.php +15 -4
  20. inc/presets/pro/blocker/TypeformPreset.php +6 -1
  21. inc/rest/Config.php +1 -1
  22. inc/scanner/AutomaticScanStarter.php +17 -11
  23. inc/scanner/Scanner.php +2 -2
  24. inc/settings/CookieGroup.php +1 -1
  25. inc/settings/General.php +0 -29
  26. inc/settings/Revision.php +0 -1
  27. inc/view/blocker/Plugin.php +13 -1
  28. inc/view/navmenu/NavMenuLinks.php +1 -0
  29. inc/view/shortcode/HistoryUuidsShortcode.php +1 -1
  30. index.php +1 -1
  31. languages/real-cookie-banner-de_AT.mo +0 -0
  32. languages/real-cookie-banner-de_AT.po +404 -16
  33. languages/real-cookie-banner-de_CH.mo +0 -0
  34. languages/real-cookie-banner-de_CH.po +404 -16
  35. languages/real-cookie-banner-de_CH_informal.mo +0 -0
  36. languages/real-cookie-banner-de_CH_informal.po +404 -16
  37. languages/real-cookie-banner-de_DE.mo +0 -0
  38. languages/real-cookie-banner-de_DE.po +404 -16
  39. languages/real-cookie-banner-de_DE_formal.mo +0 -0
  40. languages/real-cookie-banner-de_DE_formal.po +405 -16
  41. languages/real-cookie-banner.pot +173 -3
  42. public/dist/18.lite.js +2 -0
  43. public/dist/18.lite.js.map +1 -0
  44. public/dist/191.lite.js +0 -2
  45. public/dist/191.lite.js.map +0 -1
  46. public/dist/276.lite.js +0 -2
  47. public/dist/276.lite.js.map +0 -1
  48. public/dist/548.lite.js +0 -2
  49. public/dist/548.lite.js.map +0 -1
  50. public/dist/673.lite.js +2 -0
  51. 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
- === WordPress 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: trunk
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.1 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
 
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 = $_SERVER['REMOTE_ADDR'];
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 (Wed Jun 08 2022 13:19:02 GMT+0000 (Coordinated Universal Time)). */
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 (Wed Jun 08 2022 13:19:02 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'src/public/dist/13.pro.js' => '6866a22bfe639345873e9415ddeca7f4',
5
- 'src/public/dist/191.lite.js' => '38637a7ba9b7edb104d1f3db693c41a8',
6
- 'src/public/dist/191.pro.js' => '2fdb045aa34fad13b865bf56d869bdff',
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/542.pro.js' => 'f31598846e24d1c136acd12a2513b593',
20
- 'src/public/dist/548.lite.js' => '883e7cbb64ab23a6df34b3c8690ec077',
21
- 'src/public/dist/716.lite.js' => '2387b139748accec44017fa5ed1ed3e3',
22
- 'src/public/dist/716.pro.js' => 'a93d630f29e6762defcf6f97e9896223',
 
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/813.lite.js' => 'a891cb31407bfee9406f428177ebcfe9',
28
- 'src/public/dist/813.pro.js' => '9a203f5404c510520abcf0bbdd2218bb',
29
- 'src/public/dist/826.lite.js' => '3bc881855215a625d93f2525804b4ca8',
30
  'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
31
  'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
32
- 'src/public/dist/930.lite.js' => 'e8fd40bb3b535bfa0b37c2c92902042a',
33
- 'src/public/dist/930.pro.js' => 'e1092ede607c69f5547e5440ee10b93b',
34
  'src/public/dist/954.lite.js' => 'eaaae2e681627767c86add5ebd61aaf6',
35
  'src/public/dist/954.pro.js' => 'faf328b7bd41817fcb3693740adbc496',
36
- 'src/public/dist/admin.lite.js' => 'f6d666911c6574893c1494a72f0126b5',
37
- 'src/public/dist/admin.pro.js' => '469a1306c5d4f220f59b3e9522fd6d1a',
38
- 'src/public/dist/banner_tcf.pro.js' => '335a6027cdf7e09fabd373b4fd580b54',
39
- 'src/public/dist/banner.lite.js' => '5ba380390f0d8591db2c0a749f4d7fee',
40
- 'src/public/dist/banner.pro.js' => '4df2821b06aeb0e51a35e0749af50ae3',
41
- 'src/public/dist/blocker_tcf.pro.js' => '9cbb98b380f5de95000f9ad3bce8fec6',
42
- 'src/public/dist/blocker.lite.js' => 'e2cd0316cb35748186442850564bdac7',
43
- 'src/public/dist/blocker.pro.js' => 'babe8272e2d4e7b42a833a4b2f6f891c',
44
- 'src/public/dist/chunk-config-tab-blocker.lite.js' => '58c96f0840888e18cb6cbfcd86920448',
45
- 'src/public/dist/chunk-config-tab-blocker.pro.js' => 'b43200bcbf34e65a9af68e0374fd5fbe',
46
- 'src/public/dist/chunk-config-tab-consent.lite.js' => '03ad4e0ef3d1413f265a9335977ae82f',
47
- 'src/public/dist/chunk-config-tab-consent.pro.js' => 'b9e9501619bf2df0085ce4d635d97aa9',
48
- 'src/public/dist/chunk-config-tab-cookies.lite.js' => '255fdba37ae725297a5859824c343746',
49
- 'src/public/dist/chunk-config-tab-cookies.pro.js' => '87cd9a1d2e1b033d227e118124260f0b',
50
- 'src/public/dist/chunk-config-tab-dashboard.lite.js' => 'c2db7d58f8d1d161907ef98a45b26c0e',
51
- 'src/public/dist/chunk-config-tab-dashboard.pro.js' => '88936b0da2ba956234ae523895c6d76b',
 
 
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' => 'f03f0e80b7ce66f91dc3392518d8af9c',
55
- 'src/public/dist/chunk-config-tab-licensing.pro.js' => '2fdfebedf923e5c376bd469ff1e1eb31',
56
- 'src/public/dist/chunk-config-tab-scanner.lite.js' => '1560805869186588d4d28f4bab9ffc87',
57
- 'src/public/dist/chunk-config-tab-scanner.pro.js' => 'be94bc1b9ce77327aa6cfbe06e65103e',
58
- 'src/public/dist/chunk-config-tab-settings.lite.js' => '0546eab20093f4a491c73339caa1b832',
59
- 'src/public/dist/chunk-config-tab-settings.pro.js' => 'bf0cb2878745240e490839cfb72efdd2',
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' => '3db24540a5c3470bf31ce776d2e9441c',
63
- 'src/public/dist/customize_banner.pro.js' => '6eb01745788dc9a3c8a21770269c6f21',
64
- 'src/public/dist/customize.lite.js' => '9fff878dd4775a8a757e501ae79b6077',
65
- 'src/public/dist/customize.pro.js' => '0dd63d82d4312c8f6c3ed7c393ba9dab',
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\Assets;
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
- $clickedActions = get_option(self::OPTION_NAME_CLICKED_ACTIONS, []);
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 __construct() {
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
- $compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
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 &quot;<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>&quot;, 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 __construct() {
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
- 'An opt-in script is not required, as this service is probably already integrated via e.g. your theme. In addition to this service, please create a content blocker that automatically blocks the integration of Google Fonts (from e.g. your theme) before you have the consent of your users.',
89
- \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
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
- '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.',
68
- RCB_TD
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
- '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.',
384
- RCB_TD
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' => ['*wp-content/plugins/typeform/*', '*typeform.com/to/*', '*embed.typeform.com*']
 
 
 
 
 
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
- // Add client job to start the scan process
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] ?? null;
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 esc_url_raw($result);
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
- // @deprecated Keep this for backwards-compatibility
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: 2.18.2
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-08 13:22+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,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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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
- "://newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü ("
2076
- "oben links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
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
- "An opt-in script is not required, as this service is probably already "
5554
- "integrated via e.g. your theme. In addition to this service, please create a "
5555
- "content blocker that automatically blocks the integration of Google Fonts "
5556
- "(from e.g. your theme) before you have the consent of your users."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5557
  msgstr ""
5558
- "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service wahrscheinlich "
5559
- "bereits z. B. über dein Theme integriert ist. Zusätzlich zu diesem Service "
5560
- "kannst du einen Content Blocker einrichten, der die Integration von Google "
5561
- "Fonts (z. B. in deinem Theme) automatisch blockiert, bevor du die Zustimmung "
5562
- "deiner Nutzer hast."
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 &quot;<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>&quot;, 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-08 13:22+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,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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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
- "://newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü ("
2076
- "oben links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
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
- "An opt-in script is not required, as this service is probably already "
5554
- "integrated via e.g. your theme. In addition to this service, please create a "
5555
- "content blocker that automatically blocks the integration of Google Fonts "
5556
- "(from e.g. your theme) before you have the consent of your users."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5557
  msgstr ""
5558
- "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service wahrscheinlich "
5559
- "bereits z. B. über dein Theme integriert ist. Zusätzlich zu diesem Service "
5560
- "kannst du einen Content Blocker einrichten, der die Integration von Google "
5561
- "Fonts (z. B. in deinem Theme) automatisch blockiert, bevor du die Zustimmung "
5562
- "deiner Nutzer hast."
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 &quot;<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>&quot;, 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-08 13:22+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,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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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
- "://newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü ("
2076
- "oben links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
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
- "An opt-in script is not required, as this service is probably already "
5554
- "integrated via e.g. your theme. In addition to this service, please create a "
5555
- "content blocker that automatically blocks the integration of Google Fonts "
5556
- "(from e.g. your theme) before you have the consent of your users."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5557
  msgstr ""
5558
- "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service wahrscheinlich "
5559
- "bereits z. B. über dein Theme integriert ist. Zusätzlich zu diesem Service "
5560
- "kannst du einen Content Blocker einrichten, der die Integration von Google "
5561
- "Fonts (z. B. in deinem Theme) automatisch blockiert, bevor du die Zustimmung "
5562
- "deiner Nutzer hast."
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 &quot;<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>&quot;, 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-08 13:22+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,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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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
- "://newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü ("
2076
- "oben links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
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
- "An opt-in script is not required, as this service is probably already "
5554
- "integrated via e.g. your theme. In addition to this service, please create a "
5555
- "content blocker that automatically blocks the integration of Google Fonts "
5556
- "(from e.g. your theme) before you have the consent of your users."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5557
  msgstr ""
5558
- "Ein Opt-in-Skript ist nicht erforderlich, da dieser Service wahrscheinlich "
5559
- "bereits z. B. über dein Theme integriert ist. Zusätzlich zu diesem Service "
5560
- "kannst du einen Content Blocker einrichten, der die Integration von Google "
5561
- "Fonts (z. B. in deinem Theme) automatisch blockiert, bevor du die Zustimmung "
5562
- "deiner Nutzer hast."
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 &quot;<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>&quot;, 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-08 13:22+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,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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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
- "://newapp.etracker.com/\" target=\"_blank\">Dashboard</a> unter <i>Menü ("
2084
- "oben links) > Account-ID > Einstellungen > Datenschutz > Tracking Opt-In und "
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
- "An opt-in script is not required, as this service is probably already "
5570
- "integrated via e.g. your theme. In addition to this service, please create a "
5571
- "content blocker that automatically blocks the integration of Google Fonts "
5572
- "(from e.g. your theme) before you have the consent of your users."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5573
  msgstr ""
5574
- "Ein Opt-in Script ist nicht erforderlich, weil dieser Service wahrscheinlich "
5575
- "schon über Ihr Theme o.ä. integriert wird. Ergänzend zu diesem Service "
5576
- "sollten Sie einen Content Blocker erstellen, der automatisch die Integration "
5577
- "von Google Fonts (z.B. durch Ihr Theme) blockiert, bevor Sie die "
5578
- "Einwilligung Ihrer Benutzer haben."
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 &quot;<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>&quot;, 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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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: @deprecated Keep this for backwards-compatibility (usually it is "Statistics")
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 "An opt-in script is not required, as this service is probably already integrated via e.g. your theme. In addition to this service, please create a content blocker that automatically blocks the integration of Google Fonts (from e.g. your theme) before you have the consent of your users."
 
 
 
 
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 &quot;<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>&quot;, 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