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

Version Description

Download this release

Release Info

Developer devowl
Plugin Icon 128x128 Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent
Version 2.13.0
Comparing to
See all releases

Code changes from version 2.12.0 to 2.13.0

Files changed (55) hide show
  1. CHANGELOG.md +67 -0
  2. inc/Assets.php +7 -3
  3. inc/Core.php +24 -29
  4. inc/Utils.php +3 -2
  5. inc/base/others/cachebuster-lib.php +1 -1
  6. inc/base/others/cachebuster.php +71 -151
  7. inc/comp/PresetsPluginIntegrations.php +35 -5
  8. inc/overrides/lite/Core.php +47 -2
  9. inc/presets/PresetIdentifierMap.php +8 -0
  10. inc/presets/free/blocker/YoutubePreset.php +3 -1
  11. inc/presets/pro/Analytify4Preset.php +43 -0
  12. inc/presets/pro/ExactMetrics4Preset.php +43 -0
  13. inc/presets/pro/KlaviyoPreset.php +50 -0
  14. inc/presets/pro/KlikenPreset.php +51 -0
  15. inc/presets/pro/MonsterInsights4Preset.php +43 -0
  16. inc/presets/pro/TiWooCommerceWishlistPreset.php +52 -0
  17. inc/presets/pro/WooCommerceGoogleAnalyticsPreset.php +1 -3
  18. inc/presets/pro/WooCommerceGoogleAnalyticsProPreset.php +54 -0
  19. inc/presets/pro/blocker/Analytify4Preset.php +34 -0
  20. inc/presets/pro/blocker/ExactMetrics4Preset.php +34 -0
  21. inc/presets/pro/blocker/GoogleMapsPreset.php +4 -1
  22. inc/presets/pro/blocker/HappyFormsPreset.php +79 -0
  23. inc/presets/pro/blocker/KlaviyoPreset.php +30 -0
  24. inc/presets/pro/blocker/KlikenPreset.php +31 -0
  25. inc/presets/pro/blocker/MonsterInsights4Preset.php +34 -0
  26. inc/presets/pro/blocker/TiWooCommerceWishlistPreset.php +42 -0
  27. inc/presets/pro/blocker/VimeoPreset.php +3 -1
  28. inc/presets/pro/blocker/WooCommerceGoogleAnalyticsProPreset.php +35 -0
  29. inc/scanner/Persist.php +7 -257
  30. inc/scanner/Query.php +5 -1
  31. inc/scanner/Scanner.php +55 -159
  32. inc/view/Banner.php +10 -1
  33. inc/view/BannerCustomize.php +40 -0
  34. inc/view/Blocker.php +35 -6
  35. inc/view/ConfigPage.php +8 -6
  36. inc/view/customize/banner/Mobile.php +129 -0
  37. inc/view/shortcode/LinkShortcode.php +1 -1
  38. index.php +1 -1
  39. languages/real-cookie-banner-de_AT.mo +0 -0
  40. languages/real-cookie-banner-de_AT.po +138 -1
  41. languages/real-cookie-banner-de_CH.mo +0 -0
  42. languages/real-cookie-banner-de_CH.po +138 -1
  43. languages/real-cookie-banner-de_CH_informal.mo +0 -0
  44. languages/real-cookie-banner-de_CH_informal.po +138 -1
  45. languages/real-cookie-banner-de_DE.mo +0 -0
  46. languages/real-cookie-banner-de_DE.po +138 -1
  47. languages/real-cookie-banner-de_DE_formal.mo +0 -0
  48. languages/real-cookie-banner-de_DE_formal.po +139 -1
  49. languages/real-cookie-banner.pot +70 -1
  50. public/dist/138.lite.js +2 -2
  51. public/dist/138.lite.js.map +1 -1
  52. public/dist/152.lite.js +2 -2
  53. public/dist/152.lite.js.map +1 -1
  54. public/dist/{440.lite.js → 173.lite.js} +2 -2
  55. public/dist/173.lite.js.map +1 -0
CHANGELOG.md CHANGED
@@ -3,6 +3,73 @@
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.12.0 (2021-12-21)
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
+ # 2.13.0 (2022-01-17)
7
+
8
+
9
+ ### build
10
+
11
+ * create cachebuster files only when needed, not in dev env (CU-1z46xp8)
12
+ * improve build and CI performance by 50% by using @devowl-wp/regexp-translation-extractor (CU-1z46xp8)
13
+
14
+
15
+ ### chore
16
+
17
+ * new developer filter RCB/IsPreventPreDecision (CU-1yk0nxf)
18
+ * review 1 (CU-1x5e0jt, CU-1x5enat)
19
+ * review 1 (CU-1xgxrnt)
20
+ * review 1 (CU-nz2k7f)
21
+ * review 2 (CU-nz2k7f)
22
+ * suppress webpack warnings about @antv/g2 as it does not impact the frontend but disturbs CI and DX (CU-1z46xp8)
23
+
24
+
25
+ ### feat
26
+
27
+ * introduce new mobile experience (CU-nz2k7f)
28
+ * new content blocker template HappyForms with Google reCAPTCHA (CU-1znd8x2)
29
+ * new service and content blocker template Analytify Google Analytics v4 (CU-qtf2u6)
30
+ * new service and content blocker template ExactMetrics Google Analytics v4 (CU-1xgxrnt)
31
+ * new service and content blocker template Klaviyo (CU-1x5enat)
32
+ * new service and content blocker template Kliken (CU-1x5ejtu)
33
+ * new service and content blocker template MonsterInsights Google Analytics v4 (CU-1xgxrnt)
34
+ * new service and content blocker template TI WooCommerce Wishlist (CU-1x5e0jt)
35
+ * new service and content blocker template WooCommerce Google Analytics Pro (CU-1z4eara)
36
+ * simulate viewport in List of consents when viewing a cookie banner (CU-nz2k7f)
37
+
38
+
39
+ ### fix
40
+
41
+ * allow to disable the powered by link via our license server (CU-1znbady)
42
+ * allow to disable the powered by link via our license server (part 2, CU-1znbady)
43
+ * compatibility with a3 Lazy Load (CU-22gym0m)
44
+ * compatibility with WP Contact Slider (CU-1y7nw9p)
45
+ * compatibility with WP ImmoMakler Google Maps (CU-200ykt6)
46
+ * compatibility with YouTube + Vimeo + Premium Addons for Elementor (CU-1wecmxt)
47
+ * correctly break line for dotted groups in cookie banner on iOS safari (CU-nz2k7f)
48
+ * detect more ad blockers in admin page (CU-1znepfw)
49
+ * empty external URL shown when plugin Disable WordPress Emojis is active (CU-1y7rr78)
50
+ * for older WP < 5.4 versions an encodedString was printed to website (CU-1yk0may)
51
+ * rule to block Google Maps JS API in content blocker for Levelup theme compatibility (CU-20100kp)
52
+ * use anchor-links for shortcodes instead of class so they can be used without shortcodes, too (CU-1z9yf6b)
53
+
54
+
55
+ ### refactor
56
+
57
+ * move scanner to @devowl-wp/headless-content-blocker package (CU-1xw52wt)
58
+
59
+
60
+ ### style
61
+
62
+ * scrollbar did not look pretty in windows together with dialog border radius (CU-1z9yaaq)
63
+
64
+
65
+ ### test
66
+
67
+ * compatibility with Xdebug 3 (CU-1z46xp8)
68
+
69
+
70
+
71
+
72
+
73
  # 2.12.0 (2021-12-21)
74
 
75
 
inc/Assets.php CHANGED
@@ -323,7 +323,7 @@ class Assets {
323
  * @return array
324
  */
325
  public function overrideLocalizeScript($context) {
326
- global $_wp_admin_css_colors;
327
  $result = [];
328
  $core = \DevOwl\RealCookieBanner\Core::getInstance();
329
  $banner = $core->getBanner();
@@ -365,7 +365,8 @@ class Assets {
365
  \DevOwl\RealCookieBanner\settings\CountryBypass::PREDEFINED_COUNTRY_LISTS,
366
  'defaultCookieGroupTexts' => \DevOwl\RealCookieBanner\settings\CookieGroup::getInstance()->getDefaultDescriptions(
367
  \true
368
- )
 
369
  ];
370
  } elseif (is_customize_preview()) {
371
  $result = \array_merge(
@@ -375,7 +376,8 @@ class Assets {
375
  [
376
  'poweredByTexts' => $core
377
  ->getCompLanguage()
378
- ->translateArray(\DevOwl\RealCookieBanner\view\customize\banner\Texts::getPoweredByLinkTexts())
 
379
  ]
380
  );
381
  } elseif ($banner->shouldLoadAssets($context)) {
@@ -426,6 +428,8 @@ class Assets {
426
  'blocker' => $core->getBlocker()->localize(),
427
  'setVisualParentIfClassOfParent' =>
428
  \DevOwl\RealCookieBanner\view\Blocker::SET_VISUAL_PARENT_IF_CLASS_OF_PARENT,
 
 
429
  'bannerI18n' => $core->getCompLanguage()->translateArray([
430
  'legalBasis' => __('Use on legal basis of', RCB_TD),
431
  'legitimateInterest' => __('Legitimate interest', RCB_TD),
323
  * @return array
324
  */
325
  public function overrideLocalizeScript($context) {
326
+ global $_wp_admin_css_colors, $wp_version;
327
  $result = [];
328
  $core = \DevOwl\RealCookieBanner\Core::getInstance();
329
  $banner = $core->getBanner();
365
  \DevOwl\RealCookieBanner\settings\CountryBypass::PREDEFINED_COUNTRY_LISTS,
366
  'defaultCookieGroupTexts' => \DevOwl\RealCookieBanner\settings\CookieGroup::getInstance()->getDefaultDescriptions(
367
  \true
368
+ ),
369
+ 'useEncodedStringForScriptInputs' => \version_compare($wp_version, '5.4.0', '>=')
370
  ];
371
  } elseif (is_customize_preview()) {
372
  $result = \array_merge(
376
  [
377
  'poweredByTexts' => $core
378
  ->getCompLanguage()
379
+ ->translateArray(\DevOwl\RealCookieBanner\view\customize\banner\Texts::getPoweredByLinkTexts()),
380
+ 'isPoweredByLinkDisabledByException' => $bannerCustomize->isPoweredByLinkDisabledByException()
381
  ]
382
  );
383
  } elseif ($banner->shouldLoadAssets($context)) {
428
  'blocker' => $core->getBlocker()->localize(),
429
  'setVisualParentIfClassOfParent' =>
430
  \DevOwl\RealCookieBanner\view\Blocker::SET_VISUAL_PARENT_IF_CLASS_OF_PARENT,
431
+ 'dependantVisibilityContainers' =>
432
+ \DevOwl\RealCookieBanner\view\Blocker::DEPENDANT_VISIBILITY_CONTAINERS,
433
  'bannerI18n' => $core->getCompLanguage()->translateArray([
434
  'legalBasis' => __('Use on legal basis of', RCB_TD),
435
  'legitimateInterest' => __('Legitimate interest', RCB_TD),
inc/Core.php CHANGED
@@ -52,6 +52,7 @@ use DevOwl\RealCookieBanner\view\checklist\ActivateBanner;
52
  use DevOwl\RealCookieBanner\view\checklist\AddCookie;
53
  use DevOwl\RealCookieBanner\view\checklist\SaveSettings;
54
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
 
55
  use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
56
  use DevOwl\RealCookieBanner\view\shortcode\PrintUuidShortcode;
57
  use DevOwl\RealCookieBanner\view\Scanner as ViewScanner;
@@ -396,6 +397,9 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
396
  $configService = \DevOwl\RealCookieBanner\rest\Config::instance();
397
  $viewScanner = \DevOwl\RealCookieBanner\view\Scanner::instance();
398
  $restScanner = \DevOwl\RealCookieBanner\rest\Scanner::instance();
 
 
 
399
  // Register all your hooks here
400
  add_action('rest_api_init', [$presetsService, 'rest_api_init']);
401
  add_action('rest_api_init', [$configService, 'rest_api_init']);
@@ -406,9 +410,9 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
406
  add_action('admin_enqueue_scripts', [$this->getAssets(), 'admin_enqueue_scripts']);
407
  add_action('wp_enqueue_scripts', [$this->getAssets(), 'wp_enqueue_scripts'], 0);
408
  add_action('login_enqueue_scripts', [$this->getAssets(), 'login_enqueue_scripts'], 0);
409
- add_action('DevOwl/RealQueue/Job/Label', [$this->getScanner(), 'real_queue_job_label'], 10, 3);
410
- add_action('DevOwl/RealQueue/Job/Actions', [$this->getScanner(), 'real_queue_job_actions'], 10, 2);
411
- add_action('DevOwl/RealQueue/Error/Description', [$this->getScanner(), 'real_queue_error_description'], 10, 3);
412
  add_action('DevOwl/RealQueue/EnqueueScripts', [$this->getAssets(), 'real_queue_enqueue_scripts']);
413
  add_action('DevOwl/RealQueue/Rest/Status/AdditionalData/rcb-scan-list', [
414
  $restScanner,
@@ -461,11 +465,11 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
461
  add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_preinstalled_environment']);
462
  add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_ad_blocker']);
463
  add_action('posts_where', [\DevOwl\RealCookieBanner\Utils::class, 'posts_where_find_in_set'], 10, 2);
464
- add_action('post_updated', [$this->getScanner()->getOnChangeDetection(), 'post_updated'], 10, 3);
465
- add_action('save_post', [$this->getScanner()->getOnChangeDetection(), 'save_post'], 10, 2);
466
- add_action('delete_post', [$this->getScanner()->getOnChangeDetection(), 'delete_post'], 10);
467
- add_action('wp_trash_post', [$this->getScanner()->getOnChangeDetection(), 'wp_trash_post']);
468
- add_action('untrash_post', [$this->getScanner()->getOnChangeDetection(), 'wp_trash_post']);
469
  add_filter('RCB/Hints', [$this->getAssets(), 'hints_dashboard_tile_predefined_links'], 100);
470
  add_filter('rest_post_dispatch', [$configService, 'rest_post_dispatch'], 10, 3);
471
  add_filter(
@@ -488,7 +492,7 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
488
  new \DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2(),
489
  'revisionCurrent'
490
  ]);
491
- add_filter('RCB/Revision/Current', [$this->getScanner()->getQuery(), 'revisionCurrent']);
492
  add_filter('RCB/Revision/Array', [\DevOwl\RealCookieBanner\settings\Blocker::getInstance(), 'revisionArray']);
493
  add_filter(
494
  'RCB/Revision/BackwardsCompatibility',
@@ -496,6 +500,12 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
496
  10,
497
  2
498
  );
 
 
 
 
 
 
499
  // Multilingual
500
  add_filter('rest_' . \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME . '_query', [
501
  \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance(),
@@ -551,27 +561,12 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
551
  [\DevOwl\RealCookieBanner\DemoEnvironment::getInstance(), 'blockerPresets'],
552
  \PHP_INT_MAX
553
  );
554
- if ($this->getScanner()->isActive()) {
555
- $this->getScanner()->reduceCurrentUserPermissions();
556
- $this->getScanner()->bypassWebsiteBlockers();
557
- add_action('shutdown', [$this->getScanner(), 'teardown']);
558
  add_filter('show_admin_bar', '__return_false');
559
- add_filter('RCB/Blocker/IsBlocked', [$this->getScanner(), 'is_blocked'], 20, 3);
560
- add_filter(
561
- 'RCB/Blocker/InlineStyle/Rule/IsBlocked',
562
- [$this->getScanner(), 'is_blocked_inline_style_rule'],
563
- 20,
564
- 2
565
- );
566
- add_filter('RCB/Blocker/InlineScript/IsBlocked', [$this->getScanner(), 'is_blocked_inline_script'], 20);
567
- add_filter(
568
- 'RCB/Blocker/SelectorSyntax/IsBlocked',
569
- [$this->getScanner(), 'is_blocked_selector_syntax'],
570
- 20,
571
- 2
572
- );
573
- add_filter('RCB/Blocker/IsBlocked/AllowMultiple', '__return_true');
574
- add_filter('RCB/Blocker/ResolveBlockables', [$this->getScanner(), 'resolve_blockables'], 50);
575
  }
576
  // Allow to reset all available data and recreated
577
  if (isset($_GET['rcb-reset-all']) && current_user_can('activate_plugins')) {
52
  use DevOwl\RealCookieBanner\view\checklist\AddCookie;
53
  use DevOwl\RealCookieBanner\view\checklist\SaveSettings;
54
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
55
+ use DevOwl\RealCookieBanner\view\customize\banner\Mobile;
56
  use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
57
  use DevOwl\RealCookieBanner\view\shortcode\PrintUuidShortcode;
58
  use DevOwl\RealCookieBanner\view\Scanner as ViewScanner;
397
  $configService = \DevOwl\RealCookieBanner\rest\Config::instance();
398
  $viewScanner = \DevOwl\RealCookieBanner\view\Scanner::instance();
399
  $restScanner = \DevOwl\RealCookieBanner\rest\Scanner::instance();
400
+ $scanner = $this->getScanner();
401
+ $scannerQuery = $scanner->getQuery();
402
+ $scannerOnChangeDetection = $scanner->getOnChangeDetection();
403
  // Register all your hooks here
404
  add_action('rest_api_init', [$presetsService, 'rest_api_init']);
405
  add_action('rest_api_init', [$configService, 'rest_api_init']);
410
  add_action('admin_enqueue_scripts', [$this->getAssets(), 'admin_enqueue_scripts']);
411
  add_action('wp_enqueue_scripts', [$this->getAssets(), 'wp_enqueue_scripts'], 0);
412
  add_action('login_enqueue_scripts', [$this->getAssets(), 'login_enqueue_scripts'], 0);
413
+ add_action('DevOwl/RealQueue/Job/Label', [$scanner, 'real_queue_job_label'], 10, 3);
414
+ add_action('DevOwl/RealQueue/Job/Actions', [$scanner, 'real_queue_job_actions'], 10, 2);
415
+ add_action('DevOwl/RealQueue/Error/Description', [$scanner, 'real_queue_error_description'], 10, 3);
416
  add_action('DevOwl/RealQueue/EnqueueScripts', [$this->getAssets(), 'real_queue_enqueue_scripts']);
417
  add_action('DevOwl/RealQueue/Rest/Status/AdditionalData/rcb-scan-list', [
418
  $restScanner,
465
  add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_preinstalled_environment']);
466
  add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_ad_blocker']);
467
  add_action('posts_where', [\DevOwl\RealCookieBanner\Utils::class, 'posts_where_find_in_set'], 10, 2);
468
+ add_action('post_updated', [$scannerOnChangeDetection, 'post_updated'], 10, 3);
469
+ add_action('save_post', [$scannerOnChangeDetection, 'save_post'], 10, 2);
470
+ add_action('delete_post', [$scannerOnChangeDetection, 'delete_post'], 10);
471
+ add_action('wp_trash_post', [$scannerOnChangeDetection, 'wp_trash_post']);
472
+ add_action('untrash_post', [$scannerOnChangeDetection, 'wp_trash_post']);
473
  add_filter('RCB/Hints', [$this->getAssets(), 'hints_dashboard_tile_predefined_links'], 100);
474
  add_filter('rest_post_dispatch', [$configService, 'rest_post_dispatch'], 10, 3);
475
  add_filter(
492
  new \DevOwl\RealCookieBanner\comp\migration\DashboardTileMigrationMajor2(),
493
  'revisionCurrent'
494
  ]);
495
+ add_filter('RCB/Revision/Current', [$scannerQuery, 'revisionCurrent']);
496
  add_filter('RCB/Revision/Array', [\DevOwl\RealCookieBanner\settings\Blocker::getInstance(), 'revisionArray']);
497
  add_filter(
498
  'RCB/Revision/BackwardsCompatibility',
500
  10,
501
  2
502
  );
503
+ add_filter(
504
+ 'RCB/Revision/BackwardsCompatibility',
505
+ [\DevOwl\RealCookieBanner\view\customize\banner\Mobile::class, 'applyBackwardsCompatibility'],
506
+ 10,
507
+ 2
508
+ );
509
  // Multilingual
510
  add_filter('rest_' . \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME . '_query', [
511
  \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance(),
561
  [\DevOwl\RealCookieBanner\DemoEnvironment::getInstance(), 'blockerPresets'],
562
  \PHP_INT_MAX
563
  );
564
+ if ($scanner->isActive()) {
565
+ $scanner->reduceCurrentUserPermissions();
566
+ $scanner->bypassWebsiteBlockers();
567
+ add_action('shutdown', [$scanner, 'teardown']);
568
  add_filter('show_admin_bar', '__return_false');
569
+ add_filter('RCB/Blocker/ResolveBlockables', [$scanner, 'resolve_blockables'], 50);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
570
  }
571
  // Allow to reset all available data and recreated
572
  if (isset($_GET['rcb-reset-all']) && current_user_can('activate_plugins')) {
inc/Utils.php CHANGED
@@ -153,10 +153,11 @@ class Utils {
153
  $result = [];
154
  $plugins = get_option('active_plugins');
155
  foreach ($plugins as $pluginFile) {
156
- $result[$pluginFile] = get_plugin_data(\constant('WP_PLUGIN_DIR') . '/' . $pluginFile)['Name'];
 
157
  if ($includeSlugs) {
158
  $slug = \explode('/', $pluginFile)[0];
159
- $result[$slug] = $result[$pluginFile];
160
  }
161
  }
162
  return $result;
153
  $result = [];
154
  $plugins = get_option('active_plugins');
155
  foreach ($plugins as $pluginFile) {
156
+ $name = wp_specialchars_decode(get_plugin_data(\constant('WP_PLUGIN_DIR') . '/' . $pluginFile)['Name']);
157
+ $result[$pluginFile] = $name;
158
  if ($includeSlugs) {
159
  $slug = \explode('/', $pluginFile)[0];
160
+ $result[$slug] = $name;
161
  }
162
  }
163
  return $result;
inc/base/others/cachebuster-lib.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- /* This file was automatically generated (Tue Dec 21 2021 08:57:50 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 Jan 17 2022 11:58:12 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,156 +1,76 @@
1
  <?php
2
- /* This file was automatically generated (Tue Dec 21 2021 08:57:50 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
- 'src/public/dist/138.lite.js' => '7bb52c010098ad4fe761a58de9aaccc7',
5
- 'src/public/dist/152.lite.js' => '9abf7e5e2f7580fa8556d6693ff4e204',
6
- 'src/public/dist/193.lite.js' => 'd7a0722155f835c915b08b6c93a9208d',
7
- 'src/public/dist/193.pro.js' => 'd71177a05a4f8e8252c7a480e8a2842b',
8
- 'src/public/dist/289.pro.js' => '1e66b8cdf84fecf524444a8534473092',
9
- 'src/public/dist/411.lite.js' => '0b9dbd0c4ea1e5075a2826de3d3badac',
10
- 'src/public/dist/411.pro.js' => '281b774d7ece3ace8d5b982a21a637dd',
11
- 'src/public/dist/440.lite.js' => '507b1d1d30a2155478e54f9c41e43d3b',
12
- 'src/public/dist/440.pro.js' => 'badf73a2c4dec1c055db004c0b24c6d3',
13
- 'src/public/dist/547.lite.js' => '030380837587826d29b31ab8bbe67567',
14
- 'src/public/dist/547.pro.js' => 'c97dabe193de340eda432383b4259af5',
15
- 'src/public/dist/602.pro.js' => '544221ae0869fdd60cb456a1e95d217a',
16
- 'src/public/dist/717.lite.js' => '3c7859adc16f938e087eb794be382d1e',
17
- 'src/public/dist/717.pro.js' => '6d4d196df6482b00c12e89c8165d2406',
18
- 'src/public/dist/728.lite.js' => '68a96825de2ef34290003ba0ac5101a4',
19
- 'src/public/dist/728.pro.js' => '969665cf863f3355590c7ee8278ac41f',
20
- 'src/public/dist/77.pro.js' => '564bcbd3c048b2cd84c6a6e6c4ffe2e1',
21
- 'src/public/dist/795.lite.js' => 'f24c07d99365d028468d9a8eef40ca37',
22
- 'src/public/dist/795.pro.js' => '0f2c5c70d9be03caab24126e536c3c3d',
23
- 'src/public/dist/813.lite.js' => 'aab23dc65e1b86ccd60890e0ae75643b',
24
- 'src/public/dist/813.pro.js' => '1979b8d159be528e4e2d3683f197dc44',
25
- 'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
26
- 'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
27
- 'src/public/dist/930.lite.js' => 'aebeaed94b7d7b94c30efbfdafa70863',
28
- 'src/public/dist/930.pro.js' => '757d70b559d754597000612bed3f870b',
29
- 'src/public/dist/954.lite.js' => 'ee2cda44e2cd4c19a1f7288055efa5d0',
30
- 'src/public/dist/954.pro.js' => 'c39fe799c52c7690d66633725671963f',
31
- 'src/public/dist/admin.lite.js' => '789d68e7b5a8723bdfb200a783cf6dff',
32
- 'src/public/dist/admin.pro.js' => '0aef32c782ef74ef149f3aacb7271cd7',
33
- 'src/public/dist/banner_tcf.pro.js' => '548b0a8627c116a39f8ebd457be076ca',
34
- 'src/public/dist/banner.lite.js' => 'c14a549e0835eec4f782ecfdcd7cfea6',
35
- 'src/public/dist/banner.pro.js' => '4e40dab3066a94bd0c6e045fd5f1ee13',
36
- 'src/public/dist/blocker_tcf.pro.js' => '887a3a7a33ff42d50ade19fd0931e9d3',
37
- 'src/public/dist/blocker.lite.js' => 'bda299cb7ec4089de4cf638946b3d2ce',
38
- 'src/public/dist/blocker.pro.js' => 'e78cdce51ff7271b4a10fddc3aa359ee',
39
- 'src/public/dist/chunk-config-tab-blocker.lite.js' => '5707b242466d224731520573aa857e53',
40
- 'src/public/dist/chunk-config-tab-blocker.pro.js' => '9f1db0c3084d5f57075e01f8db19fa58',
41
- 'src/public/dist/chunk-config-tab-consent.lite.js' => 'ff3c43e445f86faf57311d80bf0544fb',
42
- 'src/public/dist/chunk-config-tab-consent.pro.js' => '133b10e3ea1a4717ecaf4f212843410d',
43
- 'src/public/dist/chunk-config-tab-cookies.lite.js' => '9c5ef8af4a81c24abbc569d118a59a1b',
44
- 'src/public/dist/chunk-config-tab-cookies.pro.js' => '106628424a86dbb3f935d00fc1cfee37',
45
- 'src/public/dist/chunk-config-tab-dashboard.lite.js' => 'efb25f1ede5e4ad509d8adb01865a43e',
46
- 'src/public/dist/chunk-config-tab-dashboard.pro.js' => '841e03872ab64468539873009c4839f8',
47
- 'src/public/dist/chunk-config-tab-import.lite.js' => 'a4701b781883f23b497c465f77c92f0a',
48
- 'src/public/dist/chunk-config-tab-import.pro.js' => 'c402d8c01a8d59adb4f18efc40bf502d',
49
- 'src/public/dist/chunk-config-tab-licensing.lite.js' => 'f0bfb9817f440c8028ee4515b0ee8253',
50
- 'src/public/dist/chunk-config-tab-licensing.pro.js' => 'a8f79d7bf7415ecc281a5b523fe6a209',
51
- 'src/public/dist/chunk-config-tab-scanner.lite.js' => '691c52c1254a9dbcacd1c90b22a4c817',
52
- 'src/public/dist/chunk-config-tab-scanner.pro.js' => '850c02b2f89e73abcebcfd993a4e86c5',
53
- 'src/public/dist/chunk-config-tab-settings.lite.js' => 'c64a21423a1cbe70c1ab03711310f75c',
54
- 'src/public/dist/chunk-config-tab-settings.pro.js' => '31314045eea4c06a01eff85de9a85e03',
55
- 'src/public/dist/chunk-config-tab-tcf.lite.js' => '49039aa52b34f9a47693edfb552ebe56',
56
- 'src/public/dist/chunk-config-tab-tcf.pro.js' => '0d5d765ffa4b8ad490392c2e8e79a09b',
57
- 'src/public/dist/customize_banner.lite.js' => '71f022c54f2bab9c7686fd8b69ed4281',
58
- 'src/public/dist/customize_banner.pro.js' => '240dc5b020140c42cdf8e60ebe7b9d2c',
59
- 'src/public/dist/customize.lite.js' => '8290a799e6d4bc466df86d42bbffd7b3',
60
- 'src/public/dist/customize.pro.js' => '3a5395a986fc787db97016e23ec54467',
61
  'src/public/dist/queue.lite.js' => '4808189af9984edb3d6aa51c8bc988a2',
62
  'src/public/dist/queue.pro.js' => 'b695e3488bd6ffb2eb6cf68f96be530b',
63
- 'src/public/dist/vendor-admin.lite.js' => 'e0cf45ce940f9b6e805b030e7427288f',
64
- 'src/public/dist/vendor-admin.pro.js' => 'e40114707663c6e20e4a06bb5422bf28',
65
- 'src/public/dist/vendor-banner_tcf.pro.js' => '44ef7e97d00f2d575d40cda9596e0d1a',
66
- 'src/public/dist/vendor-banner.lite.js' => '6b56c2a07344f2f55445929cc88e75c2',
67
- 'src/public/dist/vendor-banner.pro.js' => 'a3b9137f59aabdf00f528495073d5556',
68
- 'src/public/dist/vendor-customize_banner.lite.js' => '8aaa4bf7ccf71a1d570ae33d9423fa9c',
69
- 'src/public/dist/vendor-customize_banner.pro.js' => '91705307ca0f1cd4513922cb73d68720',
70
- 'src/public/dist/vendor-customize.lite.js' => '7e7bce1443158acf75ce7448c9c45085',
71
- 'src/public/dist/vendor-customize.pro.js' => 'a85623060c99026edd5440f00f0bcce3',
72
- 'src/public/dist/vendor-queue.lite.js' => 'd566217893d41da6fcdf2118ba9a2531',
73
- 'src/public/dist/vendor-queue.pro.js' => '4eda57705bf7359479f6751a9c1b7370',
74
- 'src/public/dist/admin.css' => '5bdf315d948659de551f0fa799e90637',
75
- 'src/public/dist/customize.css' => 'df807a26cbc2eac18e74ff84e3c162ef',
76
- 'src/public/dev/107.lite.js' => '0aa3290284023367a6bb3cf240fba90b',
77
- 'src/public/dev/177.lite.js' => '500ac97eb1a2546e9fef2e0ce48eeaf4',
78
- 'src/public/dev/177.pro.js' => 'f8b650fced529a86690e2fc4080e531e',
79
- 'src/public/dev/185.lite.js' => 'a2b43609b33cdd2ef7436174ae142e17',
80
- 'src/public/dev/185.pro.js' => '6555e02b38f06d3d1343f68277547107',
81
- 'src/public/dev/223.lite.js' => '8f474dcdca219c07226ac7db7be7f9cb',
82
- 'src/public/dev/223.pro.js' => '0bdfadec099bba4304b166cbb6d63bf8',
83
- 'src/public/dev/251.lite.js' => 'c89d2b75fec050f69ce2318eaecddade',
84
- 'src/public/dev/327.lite.js' => 'c6f174970a7ca5497293fbb6dc36e4bb',
85
- 'src/public/dev/327.pro.js' => '22c1bb9d33b284d7120724faab73f88d',
86
- 'src/public/dev/387.pro.js' => '8b80ee9477c7221171635b1b57d68f3c',
87
- 'src/public/dev/394.lite.js' => 'cd3171551063140f5b5171b20c59bc09',
88
- 'src/public/dev/394.pro.js' => '3d55eaf339aa6296976230ece6979777',
89
- 'src/public/dev/4.lite.js' => '11ee19fbd7df3c27c6466ce67d97c287',
90
- 'src/public/dev/4.pro.js' => 'e41a590814a721f65355b1db08a1da78',
91
- 'src/public/dev/413.lite.js' => 'a31b8076e0fae8c1fefe458a71014367',
92
- 'src/public/dev/413.pro.js' => '6613b6dd40b189493bc6f7cbffde69bb',
93
- 'src/public/dev/438.pro.js' => 'cf7290efc0f5e71d90a9c837057d8f1a',
94
- 'src/public/dev/49.lite.js' => 'c274aa43099dff2090379084970fa3e3',
95
- 'src/public/dev/49.pro.js' => '05b01984902025c2f120393d80976ec3',
96
- 'src/public/dev/574.lite.js' => '83abef008f7df466edfdacb2a8913763',
97
- 'src/public/dev/592.lite.js' => '3ead8b91ef44c9eddb680d334e373383',
98
- 'src/public/dev/592.pro.js' => 'a790b4f56c32cb1bdf45a0de66ff237a',
99
- 'src/public/dev/653.lite.js' => '7c6c0c19c4f542dcee8be897c4a2544c',
100
- 'src/public/dev/653.pro.js' => '763c643d44ed5083dae87d36bdb4745a',
101
- 'src/public/dev/664.pro.js' => 'c32f531b9fff74d384f934a2a7eaed00',
102
- 'src/public/dev/673.lite.js' => 'cd52b8f6a551696c80a9120b488ccb76',
103
- 'src/public/dev/673.pro.js' => 'e48fca9f4c2bcebba2e8d84f17aa2fa9',
104
- 'src/public/dev/761.lite.js' => '24f0933c8bd6e490ac65b958429d7595',
105
- 'src/public/dev/761.pro.js' => '7b4fe1c1b959d6de9e8f11d0472b2735',
106
- 'src/public/dev/78.pro.js' => 'adaac41bd6362be8b13fc4bb4f5a560e',
107
- 'src/public/dev/815.lite.js' => 'afd1e8a9f42d358b73b7f5f070da4797',
108
- 'src/public/dev/815.pro.js' => 'e09ee126c15c4668a9431551ca417dbe',
109
- 'src/public/dev/868.lite.js' => '1b1544806a04023fa1b7fb42abeb99f2',
110
- 'src/public/dev/868.pro.js' => '3dd05132fe294b025a10046c7cfae1fd',
111
- 'src/public/dev/admin.lite.js' => 'bf7b1bb65621050a81755cf8eda69e64',
112
- 'src/public/dev/admin.pro.js' => '03b1a3394b1887698aad5fa3aaf68f7f',
113
- 'src/public/dev/banner_tcf.pro.js' => '4610127865c7ee6d42c6ea32a5b29787',
114
- 'src/public/dev/banner.lite.js' => '49ea90e0fe0938327a724305fe430e94',
115
- 'src/public/dev/banner.pro.js' => '96b6ab31fb6f859348e18a6e85fa233f',
116
- 'src/public/dev/blocker_tcf.pro.js' => '29654c6e6036e33dbad6dfd842c52efe',
117
- 'src/public/dev/blocker.lite.js' => 'cfe5a8bb2177f3613ece6e898b09c5af',
118
- 'src/public/dev/blocker.pro.js' => '4b896df0fbd723ec030ba0cb7fde2d65',
119
- 'src/public/dev/chunk-config-tab-blocker.lite.js' => '52e95ee770820d08fc5fae00da43840b',
120
- 'src/public/dev/chunk-config-tab-blocker.pro.js' => 'b9f99652ef5facb82c72672f0aa7a418',
121
- 'src/public/dev/chunk-config-tab-consent.lite.js' => '8fd307a2a1e78febb2e2a9987dcbb356',
122
- 'src/public/dev/chunk-config-tab-consent.pro.js' => '81b488b6e4924e29d508536f9000ea0e',
123
- 'src/public/dev/chunk-config-tab-cookies.lite.js' => 'df7c8d0f0bc946944ebd604aab30cd85',
124
- 'src/public/dev/chunk-config-tab-cookies.pro.js' => 'f192bfc3c72aa51478f4e8c61371b51d',
125
- 'src/public/dev/chunk-config-tab-dashboard.lite.js' => 'f1e5a5d7cd0ae11f74475b940187cb79',
126
- 'src/public/dev/chunk-config-tab-dashboard.pro.js' => 'bb14d580976e3520e5293288fe8397e1',
127
- 'src/public/dev/chunk-config-tab-import.lite.js' => '90739f782289ca0f572bd90525b9a854',
128
- 'src/public/dev/chunk-config-tab-import.pro.js' => 'c3bf75ed240f8b5ee5d7d4e686b4d249',
129
- 'src/public/dev/chunk-config-tab-licensing.lite.js' => '8973f14d6a207597eb94c4b275ade4bd',
130
- 'src/public/dev/chunk-config-tab-licensing.pro.js' => 'ef8aa165319102c83983c17192e7a15c',
131
- 'src/public/dev/chunk-config-tab-scanner.lite.js' => 'c23d79deb53e70e5e1e5cf8846c5f1f0',
132
- 'src/public/dev/chunk-config-tab-scanner.pro.js' => '6f8a9505ba281bef7d946a7e9caaf0b3',
133
- 'src/public/dev/chunk-config-tab-settings.lite.js' => '3aa5237352b0f03638c154bf3ee111dc',
134
- 'src/public/dev/chunk-config-tab-settings.pro.js' => 'b9d6baf49b082216f8dd198c64ca17e6',
135
- 'src/public/dev/chunk-config-tab-tcf.lite.js' => '3b019195d9bde5b0cb950c36a184fc8a',
136
- 'src/public/dev/chunk-config-tab-tcf.pro.js' => 'e907af8e58d1f1385e1355b6aa1f3ed1',
137
- 'src/public/dev/customize_banner.lite.js' => '869a34ce749490b08c7e914686a0c6ea',
138
- 'src/public/dev/customize_banner.pro.js' => '23d24db81d3797ee3e604c1a4de8ba49',
139
- 'src/public/dev/customize.lite.js' => '38ba66cda57e282071411bfeb0cbe32b',
140
- 'src/public/dev/customize.pro.js' => '35a20b7a133e32b2d40c1887a9ad47a2',
141
- 'src/public/dev/queue.lite.js' => '638f3f42f96c0b974f26862c58589007',
142
- 'src/public/dev/queue.pro.js' => '8b2688054a8486a25176e513614ae855',
143
- 'src/public/dev/vendor-admin.lite.js' => 'e216d47187588647436a92094ed9fd36',
144
- 'src/public/dev/vendor-admin.pro.js' => '5f0dbd167cc87ce5fe0b5d5791ee677f',
145
- 'src/public/dev/vendor-banner_tcf.pro.js' => '3a3f1f226e9e5d68d8c903242de3fdbc',
146
- 'src/public/dev/vendor-banner.lite.js' => '8ce7d1cff50690ba43985d6170979d7d',
147
- 'src/public/dev/vendor-banner.pro.js' => '69d38f63893302adb3093045e45d019f',
148
- 'src/public/dev/vendor-customize_banner.lite.js' => '799632746ae38f1b33535ac33b3de41b',
149
- 'src/public/dev/vendor-customize_banner.pro.js' => '6332a5eaa3de3bd257879d4515d6f437',
150
- 'src/public/dev/vendor-customize.lite.js' => '7c77607076ab7881e837e1660560c6d9',
151
- 'src/public/dev/vendor-customize.pro.js' => '45b322e46ef5cf580b2c5f98e776a9f5',
152
- 'src/public/dev/vendor-queue.lite.js' => '92a4bd97c3e1dc655f4bc5ea3ccdf910',
153
- 'src/public/dev/vendor-queue.pro.js' => 'abc4cd3044946cf6796e3aec1693d8fd',
154
- 'src/public/dev/admin.css' => '0f3ef0b531620858f1ef69523d513840',
155
- 'src/public/dev/customize.css' => '7bfd09952f3e70b790e679848f2181e0'
156
  ];
1
  <?php
2
+ /* This file was automatically generated (Mon Jan 17 2022 11:58:12 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
+ 'src/public/dist/138.lite.js' => '65f1edbed7125ce49856f57b4825336f',
5
+ 'src/public/dist/152.lite.js' => '4bd4c8c476a4bdd5b83306f4a75262d6',
6
+ 'src/public/dist/173.lite.js' => 'aee58084f23fd41ed770cfa2c3736660',
7
+ 'src/public/dist/173.pro.js' => '3e94eeed4997659296345846209a80e8',
8
+ 'src/public/dist/240.lite.js' => 'df4a0a60b070f85e3cbfb59e7e28a256',
9
+ 'src/public/dist/240.pro.js' => 'a3f87d6afd6c1af2ed6b89a09b349c39',
10
+ 'src/public/dist/263.lite.js' => 'c33dc3e93f1a24ee2a9b1a5f8a35b2c6',
11
+ 'src/public/dist/263.pro.js' => '60f5dfb763871a1a56e9853c5d512592',
12
+ 'src/public/dist/289.pro.js' => '69c855491a0e6ab72b1488195574336d',
13
+ 'src/public/dist/385.lite.js' => '234f1218b362b9767d13c74a8a7598a3',
14
+ 'src/public/dist/385.pro.js' => 'fc6e39c96a22b9c1f5dfa017e49ecabf',
15
+ 'src/public/dist/415.lite.js' => '99d862371b573b2c0fd2a21ac7f8daae',
16
+ 'src/public/dist/415.pro.js' => 'f88b1240ffe3ae53a1b59bfcc2d236e6',
17
+ 'src/public/dist/480.lite.js' => '4bcdabf5c2a264e28ed1e6adbfcb9b2d',
18
+ 'src/public/dist/480.pro.js' => '49faaea9ad310f327053b665b1ca5b47',
19
+ 'src/public/dist/57.lite.js' => 'da6bce5a01f459bf5066cd73a8b05f96',
20
+ 'src/public/dist/57.pro.js' => 'b6cb0352ca13a7b78ee51cfd16c67455',
21
+ 'src/public/dist/599.lite.js' => '678ec01cf83613a006e0dc5018899d7d',
22
+ 'src/public/dist/599.pro.js' => 'b57d89647423f9583c5189d731e87046',
23
+ 'src/public/dist/736.lite.js' => '394707088c75cf6245b792d1d36384e5',
24
+ 'src/public/dist/736.pro.js' => '3148156e2137176d53b3a2ad6e38a5d8',
25
+ 'src/public/dist/76.pro.js' => '27cc3bf5355c0e62b78a5822762a5db6',
26
+ 'src/public/dist/77.pro.js' => 'a4c012d6971c110820a6df52230fbe62',
27
+ 'src/public/dist/792.lite.js' => '3ae3362472770bd4378862a4113ba446',
28
+ 'src/public/dist/792.pro.js' => 'cb7544ca7b6232e4242fb1c45d71612a',
29
+ 'src/public/dist/958.lite.js' => '2b70b5d38e6454652130a92e70ccddbd',
30
+ 'src/public/dist/958.pro.js' => '8e03a46a93a7d6e61e1253c7adfc846a',
31
+ 'src/public/dist/admin.lite.js' => '13b89d98dfbcf831b23114c895e7b991',
32
+ 'src/public/dist/admin.pro.js' => 'c35a8ef0e12fb923d406e97d3b9d2444',
33
+ 'src/public/dist/banner_tcf.pro.js' => '0a192ebb20b37b5ba16d5eb30cf4abfe',
34
+ 'src/public/dist/banner.lite.js' => '78d61bdf56e4b973d655e4700398bcee',
35
+ 'src/public/dist/banner.pro.js' => '90c8653bbcd48883d3885e5b590a2003',
36
+ 'src/public/dist/blocker_tcf.pro.js' => 'fccd8082e41cf2de84909b44cf8d5391',
37
+ 'src/public/dist/blocker.lite.js' => '2043f8ed3abd83a5f58a4fef97ddae8e',
38
+ 'src/public/dist/blocker.pro.js' => 'c03122ddf11d5369126c9920f79cec1a',
39
+ 'src/public/dist/chunk-config-tab-blocker.lite.js' => '652220bd87a8e9a87358b3ae2f022af9',
40
+ 'src/public/dist/chunk-config-tab-blocker.pro.js' => '625618008af8e743d78d7b00557fa913',
41
+ 'src/public/dist/chunk-config-tab-consent.lite.js' => '45f5559796ddfbc28d54bed6a029b842',
42
+ 'src/public/dist/chunk-config-tab-consent.pro.js' => '0da98b760f7e0baefed2876855b7fc4d',
43
+ 'src/public/dist/chunk-config-tab-cookies.lite.js' => '96dcc692dfc7f4fcea58b2d2e3bcd0d3',
44
+ 'src/public/dist/chunk-config-tab-cookies.pro.js' => '0f5f06d904591d999a071f5845243ffb',
45
+ 'src/public/dist/chunk-config-tab-dashboard.lite.js' => '578517e3c86295440210b8b2173fc424',
46
+ 'src/public/dist/chunk-config-tab-dashboard.pro.js' => '6a0c677be1ff59dcf13d782983519c6a',
47
+ 'src/public/dist/chunk-config-tab-import.lite.js' => '23c57753509413a5b171bd4e28d6e2e1',
48
+ 'src/public/dist/chunk-config-tab-import.pro.js' => '81fd03c1cd7d75ae3b05dc0e3114c3f8',
49
+ 'src/public/dist/chunk-config-tab-licensing.lite.js' => 'f48f4e6e6328ffa30a2324b0e198d71e',
50
+ 'src/public/dist/chunk-config-tab-licensing.pro.js' => 'e8a1602123a12544ec21728d1137d99d',
51
+ 'src/public/dist/chunk-config-tab-scanner.lite.js' => '62f3f8be5b48982f4b722087a72435de',
52
+ 'src/public/dist/chunk-config-tab-scanner.pro.js' => '1b5efd506c6195b69cbafbac6314309e',
53
+ 'src/public/dist/chunk-config-tab-settings.lite.js' => '5ff07cce717e648b0d71637edcd8a19b',
54
+ 'src/public/dist/chunk-config-tab-settings.pro.js' => '329d334863a3d20d12090eec123031db',
55
+ 'src/public/dist/chunk-config-tab-tcf.lite.js' => 'c6b8bb1df15640f222665205faf27946',
56
+ 'src/public/dist/chunk-config-tab-tcf.pro.js' => '876a4961d506977d38f8dee0c15d94f4',
57
+ 'src/public/dist/customize_banner.lite.js' => '8cf0467b558051bc15ff935b1c54b458',
58
+ 'src/public/dist/customize_banner.pro.js' => '2c7e2b1195702acbffbc3b0b6976752e',
59
+ 'src/public/dist/customize.lite.js' => '72a2d6f8f356ce5154c50544a0869180',
60
+ 'src/public/dist/customize.pro.js' => '9c7b0104db464190fb93a8000f8d4c85',
61
  'src/public/dist/queue.lite.js' => '4808189af9984edb3d6aa51c8bc988a2',
62
  'src/public/dist/queue.pro.js' => 'b695e3488bd6ffb2eb6cf68f96be530b',
63
+ 'src/public/dist/vendor-admin.lite.js' => '9f9b2171aa1a1ce6a915920acbb408ab',
64
+ 'src/public/dist/vendor-admin.pro.js' => 'bed418d0f11d3942c366273572c77d66',
65
+ 'src/public/dist/vendor-banner_tcf.pro.js' => 'e70bfd12fd425fff314e9835d190d85a',
66
+ 'src/public/dist/vendor-banner.lite.js' => 'f45c4341897da266540209eedae64277',
67
+ 'src/public/dist/vendor-banner.pro.js' => '44172cee2f601c3e5575fb34a91a4a71',
68
+ 'src/public/dist/vendor-customize_banner.lite.js' => 'ce3f41d06310f07b51c66fb2e124302a',
69
+ 'src/public/dist/vendor-customize_banner.pro.js' => 'eb43bd8404b188225f48f4ef662621ff',
70
+ 'src/public/dist/vendor-customize.lite.js' => 'a0162aec3108f0603c7e31e618ff0e84',
71
+ 'src/public/dist/vendor-customize.pro.js' => 'f49c32686fd94fb70c3c1c8f07208a0a',
72
+ 'src/public/dist/vendor-queue.lite.js' => 'b72bded98fc236932c39620d16d7780e',
73
+ 'src/public/dist/vendor-queue.pro.js' => 'b72bded98fc236932c39620d16d7780e',
74
+ 'src/public/dist/admin.css' => '41f54422350df159f1eed5fb882a91b7',
75
+ 'src/public/dist/customize.css' => 'b432152827704e68c6955c512c2570d6'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  ];
inc/comp/PresetsPluginIntegrations.php CHANGED
@@ -27,10 +27,10 @@ class PresetsPluginIntegrations {
27
  const SLUG_GA_GOOGLE_ANALYTICS_PRO = 'ga-google-analytics-pro';
28
  const SLUG_GA_GOOGLE_ANALYTICS_FREE = 'ga-google-analytics';
29
  const SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE = 'woocommerce-google-analytics-integration';
30
- const SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO = 'woocommerce-google-analytics-pro';
31
  const SLUG_WP_PIWIK = 'wp-piwik';
32
  const SLUG_MATOMO_PLUGIN = 'matomo';
33
  const SLUG_PERFMATTERS = 'perfmatters';
 
34
  const OPTION_NAME_USERS_CAN_REGISTER = 'users_can_register';
35
  const OPTION_NAME_RANK_MATH_GA = 'rank_math_google_analytic_options';
36
  const OPTION_NAME_ANALYTIFY_AUTHENTICATION = 'wp-analytify-authentication';
@@ -46,6 +46,8 @@ class PresetsPluginIntegrations {
46
  const OPTION_NAME_JETPACK_SITE_STATS = 'stats_options';
47
  const OPTION_NAME_WOOCOMMERCE_GEOLOCATION = 'woocommerce_default_customer_address';
48
  // Currently, geo-location is only used for custom address
 
 
49
  // Network options
50
  const OPTION_NAME_EXACTMETRICS_NETWORK_PROFIL = 'exactmetrics_network_profile';
51
  const OPTION_NAME_MONSTERINSIGHTS_NETWORK_PROFIL = 'monsterinsights_network_profile';
@@ -63,7 +65,9 @@ class PresetsPluginIntegrations {
63
  self::OPTION_NAME_MATOMO_PLUGIN,
64
  self::OPTION_NAME_PERFMATTERS_GA,
65
  self::OPTION_NAME_JETPACK_SITE_STATS,
66
- self::OPTION_NAME_WOOCOMMERCE_GEOLOCATION
 
 
67
  ];
68
  const INVALIDATE_WHEN_SITE_OPTION_CHANGES = [
69
  self::OPTION_NAME_EXACTMETRICS_NETWORK_PROFIL,
@@ -167,6 +171,24 @@ class PresetsPluginIntegrations {
167
  'serverSideConsentInjection_option_woocommerce_default_customer_address'
168
  ]);
169
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  default:
171
  break;
172
  }
@@ -240,10 +262,12 @@ class PresetsPluginIntegrations {
240
  return \is_array($auth) && isset($auth['manual_ua_code']) && !empty($auth['manual_ua_code']);
241
  case self::SLUG_EXACTMETRICS_PRO:
242
  case self::SLUG_EXACTMETRICS_FREE:
243
- return \function_exists('exactmetrics_get_ua') && !empty(exactmetrics_get_ua());
 
244
  case self::SLUG_MONSTERINSIGHTS_PRO:
245
  case self::SLUG_MONSTERINSIGHTS_FREE:
246
- return \function_exists('monsterinsights_get_ua') && !empty(monsterinsights_get_ua());
 
247
  case self::SLUG_GA_GOOGLE_ANALYTICS_PRO:
248
  case self::SLUG_GA_GOOGLE_ANALYTICS_FREE:
249
  if (!\function_exists('ga_google_analytics_options')) {
@@ -251,7 +275,6 @@ class PresetsPluginIntegrations {
251
  }
252
  $option = ga_google_analytics_options();
253
  return \is_array($option) && isset($option['tracking_id']) && !empty($option['tracking_id']);
254
- case self::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO:
255
  case self::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE:
256
  $option = get_option(self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS);
257
  if (!\is_array($option)) {
@@ -275,6 +298,13 @@ class PresetsPluginIntegrations {
275
  return \false;
276
  }
277
  return $option['analytics']['enable_local_ga'] === '1';
 
 
 
 
 
 
 
278
  default:
279
  break;
280
  }
27
  const SLUG_GA_GOOGLE_ANALYTICS_PRO = 'ga-google-analytics-pro';
28
  const SLUG_GA_GOOGLE_ANALYTICS_FREE = 'ga-google-analytics';
29
  const SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE = 'woocommerce-google-analytics-integration';
 
30
  const SLUG_WP_PIWIK = 'wp-piwik';
31
  const SLUG_MATOMO_PLUGIN = 'matomo';
32
  const SLUG_PERFMATTERS = 'perfmatters';
33
+ const SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO = 'woocommerce-google-analytics-pro';
34
  const OPTION_NAME_USERS_CAN_REGISTER = 'users_can_register';
35
  const OPTION_NAME_RANK_MATH_GA = 'rank_math_google_analytic_options';
36
  const OPTION_NAME_ANALYTIFY_AUTHENTICATION = 'wp-analytify-authentication';
46
  const OPTION_NAME_JETPACK_SITE_STATS = 'stats_options';
47
  const OPTION_NAME_WOOCOMMERCE_GEOLOCATION = 'woocommerce_default_customer_address';
48
  // Currently, geo-location is only used for custom address
49
+ const OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_ACCOUNT_ID = 'wc_google_analytics_pro_account_id';
50
+ const OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_SETTINGS = 'woocommerce_google_analytics_pro_settings';
51
  // Network options
52
  const OPTION_NAME_EXACTMETRICS_NETWORK_PROFIL = 'exactmetrics_network_profile';
53
  const OPTION_NAME_MONSTERINSIGHTS_NETWORK_PROFIL = 'monsterinsights_network_profile';
65
  self::OPTION_NAME_MATOMO_PLUGIN,
66
  self::OPTION_NAME_PERFMATTERS_GA,
67
  self::OPTION_NAME_JETPACK_SITE_STATS,
68
+ self::OPTION_NAME_WOOCOMMERCE_GEOLOCATION,
69
+ self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_ACCOUNT_ID,
70
+ self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_SETTINGS
71
  ];
72
  const INVALIDATE_WHEN_SITE_OPTION_CHANGES = [
73
  self::OPTION_NAME_EXACTMETRICS_NETWORK_PROFIL,
171
  'serverSideConsentInjection_option_woocommerce_default_customer_address'
172
  ]);
173
  break;
174
+ /**
175
+ * MonsterInsights and ExactMetrics are merging the `gtag('config', 'G|UA-)` directive
176
+ * in JavaScript into one inline script, but are using only one `googletagmanager.com/gtag/js?id=UA`
177
+ * script => our scanner could not reliable detect, which service is really used. E.g. using both
178
+ * in MonsterInsights leads to only one found service (UA).
179
+ *
180
+ * @see https://i.imgur.com/Vr3AqB5.png
181
+ */
182
+ case \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::MONSTERINSIGHTS_4:
183
+ if (\function_exists('monsterinsights_get_v4_id') && !empty(monsterinsights_get_v4_id())) {
184
+ $preset['recommended'] = \true;
185
+ }
186
+ break;
187
+ case \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::EXACT_METRICS_4:
188
+ if (\function_exists('exactmetrics_get_v4_id') && !empty(exactmetrics_get_v4_id())) {
189
+ $preset['recommended'] = \true;
190
+ }
191
+ break;
192
  default:
193
  break;
194
  }
262
  return \is_array($auth) && isset($auth['manual_ua_code']) && !empty($auth['manual_ua_code']);
263
  case self::SLUG_EXACTMETRICS_PRO:
264
  case self::SLUG_EXACTMETRICS_FREE:
265
+ return (\function_exists('exactmetrics_get_ua') && !empty(exactmetrics_get_ua())) ||
266
+ (\function_exists('exactmetrics_get_v4_id') && !empty(exactmetrics_get_v4_id()));
267
  case self::SLUG_MONSTERINSIGHTS_PRO:
268
  case self::SLUG_MONSTERINSIGHTS_FREE:
269
+ return (\function_exists('monsterinsights_get_ua') && !empty(monsterinsights_get_ua())) ||
270
+ (\function_exists('monsterinsights_get_v4_id') && !empty(monsterinsights_get_v4_id()));
271
  case self::SLUG_GA_GOOGLE_ANALYTICS_PRO:
272
  case self::SLUG_GA_GOOGLE_ANALYTICS_FREE:
273
  if (!\function_exists('ga_google_analytics_options')) {
275
  }
276
  $option = ga_google_analytics_options();
277
  return \is_array($option) && isset($option['tracking_id']) && !empty($option['tracking_id']);
 
278
  case self::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE:
279
  $option = get_option(self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS);
280
  if (!\is_array($option)) {
298
  return \false;
299
  }
300
  return $option['analytics']['enable_local_ga'] === '1';
301
+ case self::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO:
302
+ $optionSettings = get_option(self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_SETTINGS);
303
+ if (!\is_array($optionSettings) || !isset($optionSettings['enabled'])) {
304
+ return \false;
305
+ }
306
+ $optionAccountId = get_option(self::OPTION_NAME_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO_ACCOUNT_ID);
307
+ return !empty($optionAccountId) && $optionSettings['enabled'] === 'yes';
308
  default:
309
  break;
310
  }
inc/overrides/lite/Core.php CHANGED
@@ -11,6 +11,7 @@ use DevOwl\RealCookieBanner\presets\pro\AddToAnyPreset;
11
  use DevOwl\RealCookieBanner\presets\pro\AdInserterPreset;
12
  use DevOwl\RealCookieBanner\presets\pro\AdobeTypekitPreset;
13
  use DevOwl\RealCookieBanner\presets\pro\AmazonAssociatesWidgetPreset;
 
14
  use DevOwl\RealCookieBanner\presets\pro\AnalytifyPreset;
15
  use DevOwl\RealCookieBanner\presets\pro\AnchorFmPreset;
16
  use DevOwl\RealCookieBanner\presets\pro\AppleMusicPreset;
@@ -24,6 +25,7 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\AddThisPreset as BlockerAddThisP
24
  use DevOwl\RealCookieBanner\presets\pro\blocker\AddToAnyPreset as BlockerAddToAnyPreset;
25
  use DevOwl\RealCookieBanner\presets\pro\blocker\AdInserterPreset as BlockerAdInserterPreset;
26
  use DevOwl\RealCookieBanner\presets\pro\blocker\AdobeTypekitPreset as BlockerAdobeTypekitPreset;
 
27
  use DevOwl\RealCookieBanner\presets\pro\blocker\AnalytifyPreset as BlockerAnalytifyPreset;
28
  use DevOwl\RealCookieBanner\presets\pro\blocker\AnchorFmPreset as BlockerAnchorFmPreset;
29
  use DevOwl\RealCookieBanner\presets\pro\blocker\AppleMusicPreset as BlockerAppleMusicPreset;
@@ -40,6 +42,7 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\CustomTwitterFeedPreset as Block
40
  use DevOwl\RealCookieBanner\presets\pro\blocker\DailyMotionPreset as BlockerDailyMotionPreset;
41
  use DevOwl\RealCookieBanner\presets\pro\blocker\DiscordWidgetPreset as BlockerDiscordWidgetPreset;
42
  use DevOwl\RealCookieBanner\presets\pro\blocker\ElementorFormsPreset;
 
43
  use DevOwl\RealCookieBanner\presets\pro\blocker\ExactMetricsPreset as BlockerExactMetricsPreset;
44
  use DevOwl\RealCookieBanner\presets\pro\blocker\FacebookForWooCommercePreset as BlockerFacebookForWooCommercePreset;
45
  use DevOwl\RealCookieBanner\presets\pro\blocker\FacebookLikePreset as BlockerFacebookLikePreset;
@@ -61,11 +64,14 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleMapsPreset as BlockerGoogl
61
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleRecaptchaPreset as BlockerGoogleRecaptchaPreset;
62
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleTranslatePreset as BlockerGoogleTranslatePreset;
63
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleTrendsPreset as BlockerGoogleTrendsPreset;
 
64
  use DevOwl\RealCookieBanner\presets\pro\blocker\HotjarPreset as BlockerHotjarPreset;
65
  use DevOwl\RealCookieBanner\presets\pro\blocker\ImgurPreset as BlockerImgurPreset;
66
  use DevOwl\RealCookieBanner\presets\pro\blocker\InstagramPostPreset as BlockerInstagramPostPreset;
67
  use DevOwl\RealCookieBanner\presets\pro\blocker\IntercomChatPreset as BlockerIntercomChatPreset;
68
  use DevOwl\RealCookieBanner\presets\pro\blocker\IssuuPreset as BlockerIssuuPreset;
 
 
69
  use DevOwl\RealCookieBanner\presets\pro\blocker\KomootPreset as BlockerKomootPreset;
70
  use DevOwl\RealCookieBanner\presets\pro\blocker\LinkedInAdsPreset as BlockerLinkedInAdsPreset;
71
  use DevOwl\RealCookieBanner\presets\pro\blocker\LoomPreset as BlockerLoomPreset;
@@ -76,6 +82,7 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\MatomoIntegrationPluginPreset as
76
  use DevOwl\RealCookieBanner\presets\pro\blocker\MatomoPluginPreset as BlockerMatomoPluginPreset;
77
  use DevOwl\RealCookieBanner\presets\pro\blocker\MetricoolPreset as BlockerMetricoolPreset;
78
  use DevOwl\RealCookieBanner\presets\pro\blocker\MicrosoftClarityPreset as BlockerMicrosoftClarityPreset;
 
79
  use DevOwl\RealCookieBanner\presets\pro\blocker\MonsterInsightsPreset as BlockerMonsterInsightsPreset;
80
  use DevOwl\RealCookieBanner\presets\pro\blocker\MouseflowPreset as BlockerMouseflowPreset;
81
  use DevOwl\RealCookieBanner\presets\pro\blocker\MyCruiseExcursionPreset as BlockerMyCruiseExcursionPreset;
@@ -101,6 +108,7 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\TawkToChatPreset as BlockerTawkT
101
  use DevOwl\RealCookieBanner\presets\pro\blocker\ThriveLeadsPreset as BlockerThriveLeadsPreset;
102
  use DevOwl\RealCookieBanner\presets\pro\blocker\TidioChatPreset as BlockerTidioChatPreset;
103
  use DevOwl\RealCookieBanner\presets\pro\blocker\TikTokPreset as BlockerTikTokPreset;
 
104
  use DevOwl\RealCookieBanner\presets\pro\blocker\TwitterTweetPreset as BlockerTwitterTweetPreset;
105
  use DevOwl\RealCookieBanner\presets\pro\blocker\TypeformPreset as BlockerTypeformPreset;
106
  use DevOwl\RealCookieBanner\presets\pro\blocker\UserlikePreset as BlockerUserlikePreset;
@@ -108,6 +116,7 @@ use DevOwl\RealCookieBanner\presets\pro\blocker\VGWortPreset as BlockerVGWortPre
108
  use DevOwl\RealCookieBanner\presets\pro\blocker\VimeoPreset as BlockerVimeoPreset;
109
  use DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalytics4Preset as BlockerWooCommerceGoogleAnalytics4Preset;
110
  use DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalyticsPreset as BlockerWooCommerceGoogleAnalyticsPreset;
 
111
  use DevOwl\RealCookieBanner\presets\pro\blocker\WPFormsPreset;
112
  use DevOwl\RealCookieBanner\presets\pro\blocker\XingEventsPreset as BlockerXingEventsPreset;
113
  use DevOwl\RealCookieBanner\presets\pro\blocker\YandexMetricaPreset as BlockerYandexMetricaPreset;
@@ -123,6 +132,7 @@ use DevOwl\RealCookieBanner\presets\pro\CustomFacebookFeedPreset;
123
  use DevOwl\RealCookieBanner\presets\pro\CustomTwitterFeedPreset;
124
  use DevOwl\RealCookieBanner\presets\pro\DailyMotionPreset;
125
  use DevOwl\RealCookieBanner\presets\pro\DiscordWidgetPreset;
 
126
  use DevOwl\RealCookieBanner\presets\pro\ExactMetricsPreset;
127
  use DevOwl\RealCookieBanner\presets\pro\EzoicEssentialPreset;
128
  use DevOwl\RealCookieBanner\presets\pro\EzoicMarketingPreset;
@@ -160,6 +170,8 @@ use DevOwl\RealCookieBanner\presets\pro\InstagramPostPreset;
160
  use DevOwl\RealCookieBanner\presets\pro\IntercomChatPreset;
161
  use DevOwl\RealCookieBanner\presets\pro\IssuuPreset;
162
  use DevOwl\RealCookieBanner\presets\pro\KlarnaCheckoutWooCommercePreset;
 
 
163
  use DevOwl\RealCookieBanner\presets\pro\KomootPreset;
164
  use DevOwl\RealCookieBanner\presets\pro\LinkedInAdsPreset;
165
  use DevOwl\RealCookieBanner\presets\pro\LoomPreset;
@@ -172,6 +184,7 @@ use DevOwl\RealCookieBanner\presets\pro\MatomoPluginPreset;
172
  use DevOwl\RealCookieBanner\presets\pro\MatomoPreset;
173
  use DevOwl\RealCookieBanner\presets\pro\MetricoolPreset;
174
  use DevOwl\RealCookieBanner\presets\pro\MicrosoftClarityPreset;
 
175
  use DevOwl\RealCookieBanner\presets\pro\MonsterInsightsPreset;
176
  use DevOwl\RealCookieBanner\presets\pro\MouseflowPreset;
177
  use DevOwl\RealCookieBanner\presets\pro\MtmPreset;
@@ -202,6 +215,7 @@ use DevOwl\RealCookieBanner\presets\pro\ThriveLeadsPreset;
202
  use DevOwl\RealCookieBanner\presets\pro\TidioChatPreset;
203
  use DevOwl\RealCookieBanner\presets\pro\TikTokPixelPreset;
204
  use DevOwl\RealCookieBanner\presets\pro\TikTokPreset;
 
205
  use DevOwl\RealCookieBanner\presets\pro\TranslatePressPreset;
206
  use DevOwl\RealCookieBanner\presets\pro\TwitterTweetPreset;
207
  use DevOwl\RealCookieBanner\presets\pro\TypeformPreset;
@@ -213,6 +227,7 @@ use DevOwl\RealCookieBanner\presets\pro\WooCommerceGatewayStripePreset;
213
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGeolocationPreset;
214
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalytics4Preset;
215
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsPreset;
 
216
  use DevOwl\RealCookieBanner\presets\pro\WooCommercePreset;
217
  use DevOwl\RealCookieBanner\presets\pro\WordfencePreset;
218
  use DevOwl\RealCookieBanner\presets\pro\WPCerberSecurityPreset;
@@ -493,7 +508,21 @@ trait Core {
493
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KOMOOT =>
494
  \DevOwl\RealCookieBanner\presets\pro\KomootPreset::class,
495
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GEOLOCATION =>
496
- \DevOwl\RealCookieBanner\presets\pro\WooCommerceGeolocationPreset::class
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
  ]);
498
  }
499
  /**
@@ -694,7 +723,23 @@ trait Core {
694
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::PERFMATTERS_GA4 =>
695
  \DevOwl\RealCookieBanner\presets\pro\blocker\PerfmattersGA4Preset::class,
696
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KOMOOT =>
697
- \DevOwl\RealCookieBanner\presets\pro\blocker\KomootPreset::class
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
698
  ]);
699
  }
700
  }
11
  use DevOwl\RealCookieBanner\presets\pro\AdInserterPreset;
12
  use DevOwl\RealCookieBanner\presets\pro\AdobeTypekitPreset;
13
  use DevOwl\RealCookieBanner\presets\pro\AmazonAssociatesWidgetPreset;
14
+ use DevOwl\RealCookieBanner\presets\pro\Analytify4Preset;
15
  use DevOwl\RealCookieBanner\presets\pro\AnalytifyPreset;
16
  use DevOwl\RealCookieBanner\presets\pro\AnchorFmPreset;
17
  use DevOwl\RealCookieBanner\presets\pro\AppleMusicPreset;
25
  use DevOwl\RealCookieBanner\presets\pro\blocker\AddToAnyPreset as BlockerAddToAnyPreset;
26
  use DevOwl\RealCookieBanner\presets\pro\blocker\AdInserterPreset as BlockerAdInserterPreset;
27
  use DevOwl\RealCookieBanner\presets\pro\blocker\AdobeTypekitPreset as BlockerAdobeTypekitPreset;
28
+ use DevOwl\RealCookieBanner\presets\pro\blocker\Analytify4Preset as BlockerAnalytify4Preset;
29
  use DevOwl\RealCookieBanner\presets\pro\blocker\AnalytifyPreset as BlockerAnalytifyPreset;
30
  use DevOwl\RealCookieBanner\presets\pro\blocker\AnchorFmPreset as BlockerAnchorFmPreset;
31
  use DevOwl\RealCookieBanner\presets\pro\blocker\AppleMusicPreset as BlockerAppleMusicPreset;
42
  use DevOwl\RealCookieBanner\presets\pro\blocker\DailyMotionPreset as BlockerDailyMotionPreset;
43
  use DevOwl\RealCookieBanner\presets\pro\blocker\DiscordWidgetPreset as BlockerDiscordWidgetPreset;
44
  use DevOwl\RealCookieBanner\presets\pro\blocker\ElementorFormsPreset;
45
+ use DevOwl\RealCookieBanner\presets\pro\blocker\ExactMetrics4Preset as BlockerExactMetrics4Preset;
46
  use DevOwl\RealCookieBanner\presets\pro\blocker\ExactMetricsPreset as BlockerExactMetricsPreset;
47
  use DevOwl\RealCookieBanner\presets\pro\blocker\FacebookForWooCommercePreset as BlockerFacebookForWooCommercePreset;
48
  use DevOwl\RealCookieBanner\presets\pro\blocker\FacebookLikePreset as BlockerFacebookLikePreset;
64
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleRecaptchaPreset as BlockerGoogleRecaptchaPreset;
65
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleTranslatePreset as BlockerGoogleTranslatePreset;
66
  use DevOwl\RealCookieBanner\presets\pro\blocker\GoogleTrendsPreset as BlockerGoogleTrendsPreset;
67
+ use DevOwl\RealCookieBanner\presets\pro\blocker\HappyFormsPreset;
68
  use DevOwl\RealCookieBanner\presets\pro\blocker\HotjarPreset as BlockerHotjarPreset;
69
  use DevOwl\RealCookieBanner\presets\pro\blocker\ImgurPreset as BlockerImgurPreset;
70
  use DevOwl\RealCookieBanner\presets\pro\blocker\InstagramPostPreset as BlockerInstagramPostPreset;
71
  use DevOwl\RealCookieBanner\presets\pro\blocker\IntercomChatPreset as BlockerIntercomChatPreset;
72
  use DevOwl\RealCookieBanner\presets\pro\blocker\IssuuPreset as BlockerIssuuPreset;
73
+ use DevOwl\RealCookieBanner\presets\pro\blocker\KlaviyoPreset as BlockerKlaviyoPreset;
74
+ use DevOwl\RealCookieBanner\presets\pro\blocker\KlikenPreset as BlockerKlikenPreset;
75
  use DevOwl\RealCookieBanner\presets\pro\blocker\KomootPreset as BlockerKomootPreset;
76
  use DevOwl\RealCookieBanner\presets\pro\blocker\LinkedInAdsPreset as BlockerLinkedInAdsPreset;
77
  use DevOwl\RealCookieBanner\presets\pro\blocker\LoomPreset as BlockerLoomPreset;
82
  use DevOwl\RealCookieBanner\presets\pro\blocker\MatomoPluginPreset as BlockerMatomoPluginPreset;
83
  use DevOwl\RealCookieBanner\presets\pro\blocker\MetricoolPreset as BlockerMetricoolPreset;
84
  use DevOwl\RealCookieBanner\presets\pro\blocker\MicrosoftClarityPreset as BlockerMicrosoftClarityPreset;
85
+ use DevOwl\RealCookieBanner\presets\pro\blocker\MonsterInsights4Preset as BlockerMonsterInsights4Preset;
86
  use DevOwl\RealCookieBanner\presets\pro\blocker\MonsterInsightsPreset as BlockerMonsterInsightsPreset;
87
  use DevOwl\RealCookieBanner\presets\pro\blocker\MouseflowPreset as BlockerMouseflowPreset;
88
  use DevOwl\RealCookieBanner\presets\pro\blocker\MyCruiseExcursionPreset as BlockerMyCruiseExcursionPreset;
108
  use DevOwl\RealCookieBanner\presets\pro\blocker\ThriveLeadsPreset as BlockerThriveLeadsPreset;
109
  use DevOwl\RealCookieBanner\presets\pro\blocker\TidioChatPreset as BlockerTidioChatPreset;
110
  use DevOwl\RealCookieBanner\presets\pro\blocker\TikTokPreset as BlockerTikTokPreset;
111
+ use DevOwl\RealCookieBanner\presets\pro\blocker\TiWooCommerceWishlistPreset as BlockerTiWooCommerceWishlistPreset;
112
  use DevOwl\RealCookieBanner\presets\pro\blocker\TwitterTweetPreset as BlockerTwitterTweetPreset;
113
  use DevOwl\RealCookieBanner\presets\pro\blocker\TypeformPreset as BlockerTypeformPreset;
114
  use DevOwl\RealCookieBanner\presets\pro\blocker\UserlikePreset as BlockerUserlikePreset;
116
  use DevOwl\RealCookieBanner\presets\pro\blocker\VimeoPreset as BlockerVimeoPreset;
117
  use DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalytics4Preset as BlockerWooCommerceGoogleAnalytics4Preset;
118
  use DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalyticsPreset as BlockerWooCommerceGoogleAnalyticsPreset;
119
+ use DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalyticsProPreset as BlockerWooCommerceGoogleAnalyticsProPreset;
120
  use DevOwl\RealCookieBanner\presets\pro\blocker\WPFormsPreset;
121
  use DevOwl\RealCookieBanner\presets\pro\blocker\XingEventsPreset as BlockerXingEventsPreset;
122
  use DevOwl\RealCookieBanner\presets\pro\blocker\YandexMetricaPreset as BlockerYandexMetricaPreset;
132
  use DevOwl\RealCookieBanner\presets\pro\CustomTwitterFeedPreset;
133
  use DevOwl\RealCookieBanner\presets\pro\DailyMotionPreset;
134
  use DevOwl\RealCookieBanner\presets\pro\DiscordWidgetPreset;
135
+ use DevOwl\RealCookieBanner\presets\pro\ExactMetrics4Preset;
136
  use DevOwl\RealCookieBanner\presets\pro\ExactMetricsPreset;
137
  use DevOwl\RealCookieBanner\presets\pro\EzoicEssentialPreset;
138
  use DevOwl\RealCookieBanner\presets\pro\EzoicMarketingPreset;
170
  use DevOwl\RealCookieBanner\presets\pro\IntercomChatPreset;
171
  use DevOwl\RealCookieBanner\presets\pro\IssuuPreset;
172
  use DevOwl\RealCookieBanner\presets\pro\KlarnaCheckoutWooCommercePreset;
173
+ use DevOwl\RealCookieBanner\presets\pro\KlaviyoPreset;
174
+ use DevOwl\RealCookieBanner\presets\pro\KlikenPreset;
175
  use DevOwl\RealCookieBanner\presets\pro\KomootPreset;
176
  use DevOwl\RealCookieBanner\presets\pro\LinkedInAdsPreset;
177
  use DevOwl\RealCookieBanner\presets\pro\LoomPreset;
184
  use DevOwl\RealCookieBanner\presets\pro\MatomoPreset;
185
  use DevOwl\RealCookieBanner\presets\pro\MetricoolPreset;
186
  use DevOwl\RealCookieBanner\presets\pro\MicrosoftClarityPreset;
187
+ use DevOwl\RealCookieBanner\presets\pro\MonsterInsights4Preset;
188
  use DevOwl\RealCookieBanner\presets\pro\MonsterInsightsPreset;
189
  use DevOwl\RealCookieBanner\presets\pro\MouseflowPreset;
190
  use DevOwl\RealCookieBanner\presets\pro\MtmPreset;
215
  use DevOwl\RealCookieBanner\presets\pro\TidioChatPreset;
216
  use DevOwl\RealCookieBanner\presets\pro\TikTokPixelPreset;
217
  use DevOwl\RealCookieBanner\presets\pro\TikTokPreset;
218
+ use DevOwl\RealCookieBanner\presets\pro\TiWooCommerceWishlistPreset;
219
  use DevOwl\RealCookieBanner\presets\pro\TranslatePressPreset;
220
  use DevOwl\RealCookieBanner\presets\pro\TwitterTweetPreset;
221
  use DevOwl\RealCookieBanner\presets\pro\TypeformPreset;
227
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGeolocationPreset;
228
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalytics4Preset;
229
  use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsPreset;
230
+ use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsProPreset;
231
  use DevOwl\RealCookieBanner\presets\pro\WooCommercePreset;
232
  use DevOwl\RealCookieBanner\presets\pro\WordfencePreset;
233
  use DevOwl\RealCookieBanner\presets\pro\WPCerberSecurityPreset;
508
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KOMOOT =>
509
  \DevOwl\RealCookieBanner\presets\pro\KomootPreset::class,
510
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GEOLOCATION =>
511
+ \DevOwl\RealCookieBanner\presets\pro\WooCommerceGeolocationPreset::class,
512
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLIKEN =>
513
+ \DevOwl\RealCookieBanner\presets\pro\KlikenPreset::class,
514
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLAVIYO =>
515
+ \DevOwl\RealCookieBanner\presets\pro\KlaviyoPreset::class,
516
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::TI_WOOCOMMERCE_WISHLIST =>
517
+ \DevOwl\RealCookieBanner\presets\pro\TiWooCommerceWishlistPreset::class,
518
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::ANALYTIFY_4 =>
519
+ \DevOwl\RealCookieBanner\presets\pro\Analytify4Preset::class,
520
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::MONSTERINSIGHTS_4 =>
521
+ \DevOwl\RealCookieBanner\presets\pro\MonsterInsights4Preset::class,
522
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::EXACT_METRICS_4 =>
523
+ \DevOwl\RealCookieBanner\presets\pro\ExactMetrics4Preset::class,
524
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GOOGLE_ANALYTICS_PRO =>
525
+ \DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsProPreset::class
526
  ]);
527
  }
528
  /**
723
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::PERFMATTERS_GA4 =>
724
  \DevOwl\RealCookieBanner\presets\pro\blocker\PerfmattersGA4Preset::class,
725
  \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KOMOOT =>
726
+ \DevOwl\RealCookieBanner\presets\pro\blocker\KomootPreset::class,
727
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLIKEN =>
728
+ \DevOwl\RealCookieBanner\presets\pro\blocker\KlikenPreset::class,
729
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLAVIYO =>
730
+ \DevOwl\RealCookieBanner\presets\pro\blocker\KlaviyoPreset::class,
731
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::TI_WOOCOMMERCE_WISHLIST =>
732
+ \DevOwl\RealCookieBanner\presets\pro\blocker\TiWooCommerceWishlistPreset::class,
733
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::HAPPYFORMS_RECAPTCHA =>
734
+ \DevOwl\RealCookieBanner\presets\pro\blocker\HappyFormsPreset::class,
735
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::ANALYTIFY_4 =>
736
+ \DevOwl\RealCookieBanner\presets\pro\blocker\Analytify4Preset::class,
737
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::MONSTERINSIGHTS_4 =>
738
+ \DevOwl\RealCookieBanner\presets\pro\blocker\MonsterInsights4Preset::class,
739
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::EXACT_METRICS_4 =>
740
+ \DevOwl\RealCookieBanner\presets\pro\blocker\ExactMetrics4Preset::class,
741
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GOOGLE_ANALYTICS_PRO =>
742
+ \DevOwl\RealCookieBanner\presets\pro\blocker\WooCommerceGoogleAnalyticsProPreset::class
743
  ]);
744
  }
745
  }
inc/presets/PresetIdentifierMap.php CHANGED
@@ -19,6 +19,7 @@ class PresetIdentifierMap {
19
  const ADOBE_TYPEKIT = 'adobe-fonts-typekit';
20
  const AMAZON_ASSOCIATES_WIDGET = 'amazon-associates-widget';
21
  const ANALYTIFY = 'analytify';
 
22
  const ANCHOR_FM = 'anchor-fm';
23
  const APPLE_MUSIC = 'apple-music';
24
  const AWIN_LINK_AND_IMAGE_ADS = 'awin-link-and-image-ads';
@@ -40,6 +41,7 @@ class PresetIdentifierMap {
40
  const ELEMENTOR = 'elementor';
41
  const ELEMENTOR_FORMS_RECAPTCHA = 'elementor-forms-recaptcha';
42
  const EXACT_METRICS = 'exact-metrics';
 
43
  const EZOIC_ESSENTIAL = 'ezoic-essential';
44
  const EZOIC_PREFERENCES = 'ezoic-preferences';
45
  const EZOIC_STATISTIC = 'ezoic-statistic';
@@ -72,6 +74,7 @@ class PresetIdentifierMap {
72
  const GOOGLE_TRENDS = 'google-trends';
73
  const GRAVATAR = 'gravatar-avatar-images';
74
  const GTM = 'gtm';
 
75
  const HCAPTCHA = 'hcaptcha';
76
  const HELP_CRUNCH_CHAT = 'helpcrunch-chat';
77
  const HELP_SCOUT_CHAT = 'helpscout-chat';
@@ -83,6 +86,8 @@ class PresetIdentifierMap {
83
  const JETPACK_COMMENTS = 'jetpack-comments';
84
  const JETPACK_SITE_STATS = 'jetpack-site-stats';
85
  const KLARNA_CHECKOUT_WOOCOMMERCE = 'klarna-checkout-woocommerce';
 
 
86
  const KOMOOT = 'komoot';
87
  const LINKEDIN_ADS = 'linkedin-ads';
88
  const LOOM = 'loom';
@@ -96,6 +101,7 @@ class PresetIdentifierMap {
96
  const METRICOOL = 'metricool';
97
  const MICROSOFT_CLARITY = 'microsoft-clarity';
98
  const MONSTERINSIGHTS = 'monsterinsights';
 
99
  const MOUSEFLOW = 'mouseflow';
100
  const MTM = 'mtm';
101
  const MY_CRUISE_EXCURSION = 'my-cruise-excursion';
@@ -127,6 +133,7 @@ class PresetIdentifierMap {
127
  const TIDIO_CHAT = 'tidio-chat';
128
  const TIKTOK = 'tik-tok';
129
  const TIKTOK_PIXEL = 'tik-tok-pixel';
 
130
  const TRANSLATEPRESS = 'translatepress';
131
  const TWITTER_TWEET = 'twitter-tweet';
132
  const TYPEFORM = 'typeform';
@@ -138,6 +145,7 @@ class PresetIdentifierMap {
138
  const WOOCOMMERCE_GEOLOCATION = 'woocommerce-geolocation';
139
  const WOOCOMMERCE_GOOGLE_ANALYTICS = 'woocommerce-google-analytics';
140
  const WOOCOMMERCE_GOOGLE_ANALYTICS_4 = 'woocommerce-google-analytics-analytics-4';
 
141
  const WOOCOMMERCE_GATEWAY_STRIPE = 'woocommerce-gateway-stripe';
142
  const WORDFENCE = 'wordfence';
143
  const WORDPRESS_COMMENTS = 'wordpress-comments';
19
  const ADOBE_TYPEKIT = 'adobe-fonts-typekit';
20
  const AMAZON_ASSOCIATES_WIDGET = 'amazon-associates-widget';
21
  const ANALYTIFY = 'analytify';
22
+ const ANALYTIFY_4 = 'analytify-analytics-4';
23
  const ANCHOR_FM = 'anchor-fm';
24
  const APPLE_MUSIC = 'apple-music';
25
  const AWIN_LINK_AND_IMAGE_ADS = 'awin-link-and-image-ads';
41
  const ELEMENTOR = 'elementor';
42
  const ELEMENTOR_FORMS_RECAPTCHA = 'elementor-forms-recaptcha';
43
  const EXACT_METRICS = 'exact-metrics';
44
+ const EXACT_METRICS_4 = 'exact-metrics-analytics-4';
45
  const EZOIC_ESSENTIAL = 'ezoic-essential';
46
  const EZOIC_PREFERENCES = 'ezoic-preferences';
47
  const EZOIC_STATISTIC = 'ezoic-statistic';
74
  const GOOGLE_TRENDS = 'google-trends';
75
  const GRAVATAR = 'gravatar-avatar-images';
76
  const GTM = 'gtm';
77
+ const HAPPYFORMS_RECAPTCHA = 'happyforms-with-google-recaptcha';
78
  const HCAPTCHA = 'hcaptcha';
79
  const HELP_CRUNCH_CHAT = 'helpcrunch-chat';
80
  const HELP_SCOUT_CHAT = 'helpscout-chat';
86
  const JETPACK_COMMENTS = 'jetpack-comments';
87
  const JETPACK_SITE_STATS = 'jetpack-site-stats';
88
  const KLARNA_CHECKOUT_WOOCOMMERCE = 'klarna-checkout-woocommerce';
89
+ const KLAVIYO = 'klaviyo';
90
+ const KLIKEN = 'kliken';
91
  const KOMOOT = 'komoot';
92
  const LINKEDIN_ADS = 'linkedin-ads';
93
  const LOOM = 'loom';
101
  const METRICOOL = 'metricool';
102
  const MICROSOFT_CLARITY = 'microsoft-clarity';
103
  const MONSTERINSIGHTS = 'monsterinsights';
104
+ const MONSTERINSIGHTS_4 = 'monsterinsights-analytics-4';
105
  const MOUSEFLOW = 'mouseflow';
106
  const MTM = 'mtm';
107
  const MY_CRUISE_EXCURSION = 'my-cruise-excursion';
133
  const TIDIO_CHAT = 'tidio-chat';
134
  const TIKTOK = 'tik-tok';
135
  const TIKTOK_PIXEL = 'tik-tok-pixel';
136
+ const TI_WOOCOMMERCE_WISHLIST = 'ti-woocommerce-wishlist';
137
  const TRANSLATEPRESS = 'translatepress';
138
  const TWITTER_TWEET = 'twitter-tweet';
139
  const TYPEFORM = 'typeform';
145
  const WOOCOMMERCE_GEOLOCATION = 'woocommerce-geolocation';
146
  const WOOCOMMERCE_GOOGLE_ANALYTICS = 'woocommerce-google-analytics';
147
  const WOOCOMMERCE_GOOGLE_ANALYTICS_4 = 'woocommerce-google-analytics-analytics-4';
148
+ const WOOCOMMERCE_GOOGLE_ANALYTICS_PRO = 'woocommerce-google-analytics-pro';
149
  const WOOCOMMERCE_GATEWAY_STRIPE = 'woocommerce-gateway-stripe';
150
  const WORDFENCE = 'wordfence';
151
  const WORDPRESS_COMMENTS = 'wordpress-comments';
inc/presets/free/blocker/YoutubePreset.php CHANGED
@@ -36,7 +36,9 @@ class YoutubePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPres
36
  'div[data-settings*="youtube_url"]',
37
  // [Plugin Comp] Ultimate Addons for Elementor
38
  'script[id="uael-video-subscribe-js"]',
39
- 'div[class*="g-ytsubscribe"]'
 
 
40
  ],
41
  'cookies' => [\DevOwl\RealCookieBanner\presets\free\YoutubePreset::IDENTIFIER]
42
  ]
36
  'div[data-settings*="youtube_url"]',
37
  // [Plugin Comp] Ultimate Addons for Elementor
38
  'script[id="uael-video-subscribe-js"]',
39
+ 'div[class*="g-ytsubscribe"]',
40
+ // [Plugin Comp] Premium Addons for Elementor
41
+ 'div[class*="elementor-widget-premium-addon-video-box"][data-settings*="youtube"]'
42
  ],
43
  'cookies' => [\DevOwl\RealCookieBanner\presets\free\YoutubePreset::IDENTIFIER]
44
  ]
inc/presets/pro/Analytify4Preset.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ // @codeCoverageIgnoreStart
9
+ \defined('ABSPATH') or die('No script kiddies please!');
10
+ // Avoid direct file request
11
+ // @codeCoverageIgnoreEnd
12
+ /**
13
+ * Analytify preset -> Google Analytics (Analytics 4) cookie preset.
14
+ */
15
+ class Analytify4Preset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
16
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::ANALYTIFY_4;
17
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset::VERSION;
18
+ // Documented in AbstractPreset
19
+ public function common() {
20
+ $name = 'Analytify';
21
+ $extendsAttributes = (new \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset())->common();
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => $extendsAttributes['description'],
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/analytify.png'),
28
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\AnalytifyPreset::needs()
29
+ ];
30
+ }
31
+ // Documented in AbstractPreset
32
+ public function managerNone() {
33
+ return \false;
34
+ }
35
+ // Documented in AbstractPreset
36
+ public function managerGtm() {
37
+ return \false;
38
+ }
39
+ // Documented in AbstractPreset
40
+ public function managerMtm() {
41
+ return \false;
42
+ }
43
+ }
inc/presets/pro/ExactMetrics4Preset.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ // @codeCoverageIgnoreStart
9
+ \defined('ABSPATH') or die('No script kiddies please!');
10
+ // Avoid direct file request
11
+ // @codeCoverageIgnoreEnd
12
+ /**
13
+ * ExactMetrics preset -> Google Analytics (Analytics 4) cookie preset.
14
+ */
15
+ class ExactMetrics4Preset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
16
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::EXACT_METRICS_4;
17
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset::VERSION;
18
+ // Documented in AbstractPreset
19
+ public function common() {
20
+ $name = 'ExactMetrics';
21
+ $extendsAttributes = (new \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset())->common();
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => $extendsAttributes['description'],
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/exact-metrics.png'),
28
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\ExactMetricsPreset::needs()
29
+ ];
30
+ }
31
+ // Documented in AbstractPreset
32
+ public function managerNone() {
33
+ return \false;
34
+ }
35
+ // Documented in AbstractPreset
36
+ public function managerGtm() {
37
+ return \false;
38
+ }
39
+ // Documented in AbstractPreset
40
+ public function managerMtm() {
41
+ return \false;
42
+ }
43
+ }
inc/presets/pro/KlaviyoPreset.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware;
8
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * Klaviyo cookie preset.
15
+ */
16
+ class KlaviyoPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLAVIYO;
18
+ const SLUG = 'klaviyo';
19
+ const VERSION = 1;
20
+ // Documented in AbstractPreset
21
+ public function common() {
22
+ $name = 'Klaviyo';
23
+ return [
24
+ 'id' => self::IDENTIFIER,
25
+ 'version' => self::VERSION,
26
+ 'name' => $name,
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/klaviyo.png'),
28
+ 'recommended' => \true,
29
+ 'needs' => self::needs()
30
+ ];
31
+ }
32
+ // Documented in AbstractPreset
33
+ public function managerNone() {
34
+ return \false;
35
+ }
36
+ // Documented in AbstractPreset
37
+ public function managerGtm() {
38
+ return \false;
39
+ }
40
+ // Documented in AbstractPreset
41
+ public function managerMtm() {
42
+ return \false;
43
+ }
44
+ // Self-explanatory
45
+ public static function needs() {
46
+ return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
47
+ self::SLUG
48
+ ]);
49
+ }
50
+ }
inc/presets/pro/KlikenPreset.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware;
8
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * Kliken cookie preset.
15
+ */
16
+ class KlikenPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLIKEN;
18
+ const SLUG = 'kliken-marketing-for-google';
19
+ const VERSION = 1;
20
+ // Documented in AbstractPreset
21
+ public function common() {
22
+ $name = 'Kliken';
23
+ return [
24
+ 'id' => self::IDENTIFIER,
25
+ 'version' => self::VERSION,
26
+ 'description' => 'Google Ads & Marketing',
27
+ 'name' => $name,
28
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/kliken.png'),
29
+ 'recommended' => \true,
30
+ 'needs' => self::needs()
31
+ ];
32
+ }
33
+ // Documented in AbstractPreset
34
+ public function managerNone() {
35
+ return \false;
36
+ }
37
+ // Documented in AbstractPreset
38
+ public function managerGtm() {
39
+ return \false;
40
+ }
41
+ // Documented in AbstractPreset
42
+ public function managerMtm() {
43
+ return \false;
44
+ }
45
+ // Self-explanatory
46
+ public static function needs() {
47
+ return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
48
+ self::SLUG
49
+ ]);
50
+ }
51
+ }
inc/presets/pro/MonsterInsights4Preset.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ // @codeCoverageIgnoreStart
9
+ \defined('ABSPATH') or die('No script kiddies please!');
10
+ // Avoid direct file request
11
+ // @codeCoverageIgnoreEnd
12
+ /**
13
+ * MonsterInsights preset -> Google Analytics (Analytics 4) cookie preset.
14
+ */
15
+ class MonsterInsights4Preset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
16
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::MONSTERINSIGHTS_4;
17
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset::VERSION;
18
+ // Documented in AbstractPreset
19
+ public function common() {
20
+ $name = 'MonsterInsights';
21
+ $extendsAttributes = (new \DevOwl\RealCookieBanner\presets\pro\GoogleAnalytics4Preset())->common();
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => $extendsAttributes['description'],
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/monster-insights.png'),
28
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\MonsterInsightsPreset::needs()
29
+ ];
30
+ }
31
+ // Documented in AbstractPreset
32
+ public function managerNone() {
33
+ return \false;
34
+ }
35
+ // Documented in AbstractPreset
36
+ public function managerGtm() {
37
+ return \false;
38
+ }
39
+ // Documented in AbstractPreset
40
+ public function managerMtm() {
41
+ return \false;
42
+ }
43
+ }
inc/presets/pro/TiWooCommerceWishlistPreset.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
7
+ use DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware;
8
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * TI WooCommerce Wishlist cookie preset.
15
+ */
16
+ class TiWooCommerceWishlistPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::TI_WOOCOMMERCE_WISHLIST;
18
+ const SLUG = 'ti-woocommerce-wishlist';
19
+ const VERSION = 1;
20
+ // Documented in AbstractPreset
21
+ public function common() {
22
+ $name = 'TI WooCommerce Wishlist';
23
+ return [
24
+ 'id' => self::IDENTIFIER,
25
+ 'version' => self::VERSION,
26
+ 'name' => $name,
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl(
28
+ 'logos/ti-woocommerce-wishlist.png'
29
+ ),
30
+ 'recommended' => \true,
31
+ 'needs' => self::needs()
32
+ ];
33
+ }
34
+ // Documented in AbstractPreset
35
+ public function managerNone() {
36
+ return \false;
37
+ }
38
+ // Documented in AbstractPreset
39
+ public function managerGtm() {
40
+ return \false;
41
+ }
42
+ // Documented in AbstractPreset
43
+ public function managerMtm() {
44
+ return \false;
45
+ }
46
+ // Self-explanatory
47
+ public static function needs() {
48
+ return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
49
+ self::SLUG
50
+ ]);
51
+ }
52
+ }
inc/presets/pro/WooCommerceGoogleAnalyticsPreset.php CHANGED
@@ -17,7 +17,6 @@ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
17
  class WooCommerceGoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
18
  const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GOOGLE_ANALYTICS;
19
  const SLUG_FREE = \DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE;
20
- const SLUG_PRO = \DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO;
21
  const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalyticsPreset::VERSION;
22
  // Documented in AbstractPreset
23
  public function common() {
@@ -49,8 +48,7 @@ class WooCommerceGoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\
49
  // Self-explanatory
50
  public static function needs() {
51
  return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
52
- self::SLUG_FREE,
53
- self::SLUG_PRO
54
  ]);
55
  }
56
  }
17
  class WooCommerceGoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
18
  const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GOOGLE_ANALYTICS;
19
  const SLUG_FREE = \DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_FREE;
 
20
  const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalyticsPreset::VERSION;
21
  // Documented in AbstractPreset
22
  public function common() {
48
  // Self-explanatory
49
  public static function needs() {
50
  return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
51
+ self::SLUG_FREE
 
52
  ]);
53
  }
54
  }
inc/presets/pro/WooCommerceGoogleAnalyticsProPreset.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro;
4
+
5
+ use DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations;
6
+ use DevOwl\RealCookieBanner\Core;
7
+ use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
8
+ use DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware;
9
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
10
+ // @codeCoverageIgnoreStart
11
+ \defined('ABSPATH') or die('No script kiddies please!');
12
+ // Avoid direct file request
13
+ // @codeCoverageIgnoreEnd
14
+ /**
15
+ * WooCommerce Google Analytics Pro preset -> Google Analytics cookie preset.
16
+ */
17
+ class WooCommerceGoogleAnalyticsProPreset extends \DevOwl\RealCookieBanner\presets\AbstractCookiePreset {
18
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::WOOCOMMERCE_GOOGLE_ANALYTICS_PRO;
19
+ const SLUG = \DevOwl\RealCookieBanner\comp\PresetsPluginIntegrations::SLUG_WOOCOMMERCE_GOOGLE_ANALYTICS_PRO;
20
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\GoogleAnalyticsPreset::VERSION;
21
+ // Documented in AbstractPreset
22
+ public function common() {
23
+ $name = 'WooCommerce Google Analytics Pro';
24
+ $extendsAttributes = (new \DevOwl\RealCookieBanner\presets\pro\GoogleAnalyticsPreset())->common();
25
+ return [
26
+ 'id' => self::IDENTIFIER,
27
+ 'version' => self::VERSION,
28
+ 'name' => $name,
29
+ 'description' => $extendsAttributes['description'],
30
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl(
31
+ 'logos/woocommerce-ga-pro.png'
32
+ ),
33
+ 'needs' => self::needs()
34
+ ];
35
+ }
36
+ // Documented in AbstractPreset
37
+ public function managerNone() {
38
+ return \false;
39
+ }
40
+ // Documented in AbstractPreset
41
+ public function managerGtm() {
42
+ return \false;
43
+ }
44
+ // Documented in AbstractPreset
45
+ public function managerMtm() {
46
+ return \false;
47
+ }
48
+ // Self-explanatory
49
+ public static function needs() {
50
+ return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
51
+ self::SLUG
52
+ ]);
53
+ }
54
+ }
inc/presets/pro/blocker/Analytify4Preset.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\pro\Analytify4Preset as PresetsAnalytify4Preset;
7
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
8
+ use DevOwl\RealCookieBanner\presets\pro\AnalytifyPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * Analytify preset -> Google Analytics (V4) blocker preset.
15
+ */
16
+ class Analytify4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\Analytify4Preset::IDENTIFIER;
18
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::VERSION;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ $name = 'Analytify';
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => 'Analytics 4',
27
+ 'attributes' => [
28
+ 'extends' => \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::IDENTIFIER
29
+ ],
30
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/analytify.png'),
31
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\AnalytifyPreset::needs()
32
+ ];
33
+ }
34
+ }
inc/presets/pro/blocker/ExactMetrics4Preset.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\pro\ExactMetrics4Preset as PresetsExactMetrics4Preset;
7
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
8
+ use DevOwl\RealCookieBanner\presets\pro\ExactMetricsPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * ExactMetrics preset -> Google Analytics (V4) blocker preset.
15
+ */
16
+ class ExactMetrics4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\ExactMetrics4Preset::IDENTIFIER;
18
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::VERSION;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ $name = 'ExactMetrics';
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => 'Analytics 4',
27
+ 'attributes' => [
28
+ 'extends' => \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::IDENTIFIER
29
+ ],
30
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/exact-metrics.png'),
31
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\ExactMetricsPreset::needs()
32
+ ];
33
+ }
34
+ }
inc/presets/pro/blocker/GoogleMapsPreset.php CHANGED
@@ -28,6 +28,7 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
28
  '*google.*/maps*',
29
  '*maps.googleapis.com*',
30
  '*maps.gstatic.com*',
 
31
  // [Plugin Comp] https://wordpress.org/plugins/wp-google-maps/
32
  'div[data-settings*="wpgmza_"]',
33
  '*/wp-content/plugins/wp-google-maps/*',
@@ -87,7 +88,9 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
87
  'div[class*="elementor-widget-uael-google-map"]',
88
  // [Plugin Comp] https://wpforms.com/how-to-display-a-map-with-your-wordpress-contact-form/
89
  'div[class*="wpforms-geolocation-map"]',
90
- '*/wp-content/plugins/wpforms-geolocation/assets/js/wpforms-geolocation-google-api*'
 
 
91
  ]
92
  ],
93
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
28
  '*google.*/maps*',
29
  '*maps.googleapis.com*',
30
  '*maps.gstatic.com*',
31
+ '*google.maps.Map(*',
32
  // [Plugin Comp] https://wordpress.org/plugins/wp-google-maps/
33
  'div[data-settings*="wpgmza_"]',
34
  '*/wp-content/plugins/wp-google-maps/*',
88
  'div[class*="elementor-widget-uael-google-map"]',
89
  // [Plugin Comp] https://wpforms.com/how-to-display-a-map-with-your-wordpress-contact-form/
90
  'div[class*="wpforms-geolocation-map"]',
91
+ '*/wp-content/plugins/wpforms-geolocation/assets/js/wpforms-geolocation-google-api*',
92
+ // [Plugin Comp] https://www.wp-immomakler.de/
93
+ 'iframe[src*="?callback=map-iframe"]'
94
  ]
95
  ],
96
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
inc/presets/pro/blocker/HappyFormsPreset.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
7
+ use DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware;
8
+ use DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware;
9
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
10
+ // @codeCoverageIgnoreStart
11
+ \defined('ABSPATH') or die('No script kiddies please!');
12
+ // Avoid direct file request
13
+ // @codeCoverageIgnoreEnd
14
+ /**
15
+ * HappyForms with Google reCAPTCHA blocker preset.
16
+ */
17
+ class HappyFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
18
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::HAPPYFORMS_RECAPTCHA;
19
+ const SLUG_FREE = 'happyforms';
20
+ const SLUG_PRO = 'happyforms-upgrade';
21
+ const VERSION = 2;
22
+ // Documented in AbstractPreset
23
+ public function common() {
24
+ return [
25
+ 'id' => self::IDENTIFIER,
26
+ 'version' => self::VERSION,
27
+ 'name' => __('HappyForms', RCB_TD),
28
+ 'description' => __('with Google reCAPTCHA', RCB_TD),
29
+ 'attributes' => [
30
+ 'hosts' => [
31
+ [
32
+ '*google.com/recaptcha*',
33
+ [
34
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
35
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
36
+ ]
37
+ ],
38
+ [
39
+ '*gstatic.com/recaptcha*',
40
+ [
41
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
42
+ \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
43
+ ]
44
+ ],
45
+ [
46
+ 'div[class*="happyforms-form"]"',
47
+ [
48
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
49
+ self::IDENTIFIER
50
+ ]
51
+ ],
52
+ [
53
+ '*/wp-content/plugins/happyforms-upgrade/inc/assets/js/frontend*',
54
+ [
55
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
56
+ self::IDENTIFIER
57
+ ]
58
+ ],
59
+ [
60
+ '/wp-content/plugins/happyforms/inc/assets/js/frontend*',
61
+ [
62
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
63
+ self::IDENTIFIER
64
+ ]
65
+ ]
66
+ ]
67
+ ],
68
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/happyforms.png'),
69
+ 'needs' => self::needs()
70
+ ];
71
+ }
72
+ // Self-explanatory
73
+ public static function needs() {
74
+ return \DevOwl\RealCookieBanner\presets\middleware\DisablePresetByNeedsMiddleware::generateNeedsForSlugs([
75
+ self::SLUG_FREE,
76
+ self::SLUG_PRO
77
+ ]);
78
+ }
79
+ }
inc/presets/pro/blocker/KlaviyoPreset.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ use DevOwl\RealCookieBanner\presets\pro\KlaviyoPreset as ProKlaviyoPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * Active Campaign with Google reCAPTCHA blocker preset.
15
+ */
16
+ class KlaviyoPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLAVIYO;
18
+ const VERSION = 1;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ return [
22
+ 'id' => self::IDENTIFIER,
23
+ 'version' => self::VERSION,
24
+ 'name' => 'Klaviyo',
25
+ 'attributes' => ['hosts' => ['*static.klaviyo.com*', '*wp-content/plugins/klaviyo/*']],
26
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/klaviyo.png'),
27
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\KlaviyoPreset::needs()
28
+ ];
29
+ }
30
+ }
inc/presets/pro/blocker/KlikenPreset.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ use DevOwl\RealCookieBanner\presets\pro\KlikenPreset as ProKlikenPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * Kliken blocker preset.
15
+ */
16
+ class KlikenPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::KLIKEN;
18
+ const VERSION = 1;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ return [
22
+ 'id' => self::IDENTIFIER,
23
+ 'version' => self::VERSION,
24
+ 'name' => 'Kliken',
25
+ 'description' => 'Google Ads & Marketing',
26
+ 'attributes' => ['hosts' => ['*analytics.sitewit.com*']],
27
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/kliken.png'),
28
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\KlikenPreset::needs()
29
+ ];
30
+ }
31
+ }
inc/presets/pro/blocker/MonsterInsights4Preset.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\pro\MonsterInsights4Preset as PresetsMonsterInsights4Preset;
7
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
8
+ use DevOwl\RealCookieBanner\presets\pro\MonsterInsightsPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * MonsterInsights preset -> Google Analytics (V4) blocker preset.
15
+ */
16
+ class MonsterInsights4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\MonsterInsights4Preset::IDENTIFIER;
18
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::VERSION;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ $name = 'MonsterInsights';
22
+ return [
23
+ 'id' => self::IDENTIFIER,
24
+ 'version' => self::VERSION,
25
+ 'name' => $name,
26
+ 'description' => 'Analytics 4',
27
+ 'attributes' => [
28
+ 'extends' => \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalytics4Preset::IDENTIFIER
29
+ ],
30
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/monster-insights.png'),
31
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\MonsterInsightsPreset::needs()
32
+ ];
33
+ }
34
+ }
inc/presets/pro/blocker/TiWooCommerceWishlistPreset.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
7
+ use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
8
+ use DevOwl\RealCookieBanner\presets\pro\TiWooCommerceWishlistPreset as ProTiWooCommerceWishlistPreset;
9
+ // @codeCoverageIgnoreStart
10
+ \defined('ABSPATH') or die('No script kiddies please!');
11
+ // Avoid direct file request
12
+ // @codeCoverageIgnoreEnd
13
+ /**
14
+ * TI WooCommerce Wishlist blocker preset.
15
+ */
16
+ class TiWooCommerceWishlistPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
17
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\PresetIdentifierMap::TI_WOOCOMMERCE_WISHLIST;
18
+ const VERSION = 1;
19
+ // Documented in AbstractPreset
20
+ public function common() {
21
+ return [
22
+ 'id' => self::IDENTIFIER,
23
+ 'version' => self::VERSION,
24
+ 'name' => 'TI WooCommerce Wishlist',
25
+ 'attributes' => [
26
+ 'hosts' => [
27
+ '*wp-content/plugins/ti-woocommerce-wishlist/*',
28
+ 'span[class*="wishlist_products_counter"]',
29
+ 'a[class*="tinvwl_add_to_wishlist_button"]',
30
+ 'div[class*="rey-accountWishlist-wrapper"]',
31
+ 'script[id="tinvwl-js-after"]',
32
+ 'script[id="reycore-wishlist-js"]',
33
+ 'li[class*="woocommerce-MyAccount-navigation-link--tinv_wishlist"]'
34
+ ]
35
+ ],
36
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl(
37
+ 'logos/ti-woocommerce-wishlist.png'
38
+ ),
39
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\TiWooCommerceWishlistPreset::needs()
40
+ ];
41
+ }
42
+ }
inc/presets/pro/blocker/VimeoPreset.php CHANGED
@@ -28,7 +28,9 @@ class VimeoPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset
28
  '*vimeocdn.com*',
29
  '*vimeo.com/showcase*',
30
  // [Plugin Comp] Thrive Architect
31
- 'div[data-url*="vimeo.com"]'
 
 
32
  ]
33
  ],
34
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/vimeo.png')
28
  '*vimeocdn.com*',
29
  '*vimeo.com/showcase*',
30
  // [Plugin Comp] Thrive Architect
31
+ 'div[data-url*="vimeo.com"]',
32
+ // [Plugin Comp] Premium Addons for Elementor
33
+ 'div[class*="elementor-widget-premium-addon-video-box"][data-settings*="vimeo"]'
34
  ]
35
  ],
36
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/vimeo.png')
inc/presets/pro/blocker/WooCommerceGoogleAnalyticsProPreset.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\presets\pro\blocker;
4
+
5
+ use DevOwl\RealCookieBanner\Core;
6
+ use DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsProPreset as PresetsWooCommerceGoogleAnalyticsProPreset;
7
+ use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
8
+ // @codeCoverageIgnoreStart
9
+ \defined('ABSPATH') or die('No script kiddies please!');
10
+ // Avoid direct file request
11
+ // @codeCoverageIgnoreEnd
12
+ /**
13
+ * WooCommerce Google Analytics Pro preset -> Google Analytics blocker preset.
14
+ */
15
+ class WooCommerceGoogleAnalyticsProPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPreset {
16
+ const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsProPreset::IDENTIFIER;
17
+ const VERSION = \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::VERSION;
18
+ // Documented in AbstractPreset
19
+ public function common() {
20
+ $name = 'WooCommerce Google Analytics Pro';
21
+ return [
22
+ 'id' => self::IDENTIFIER,
23
+ 'version' => self::VERSION,
24
+ 'name' => $name,
25
+ 'description' => 'Universal Analytics',
26
+ 'attributes' => [
27
+ 'extends' => \DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::IDENTIFIER
28
+ ],
29
+ 'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl(
30
+ 'logos/woocommerce-ga-pro.png'
31
+ ),
32
+ 'needs' => \DevOwl\RealCookieBanner\presets\pro\WooCommerceGoogleAnalyticsProPreset::needs()
33
+ ];
34
+ }
35
+ }
inc/scanner/Persist.php CHANGED
@@ -2,9 +2,8 @@
2
 
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
5
- use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants;
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
@@ -32,47 +31,21 @@ class Persist {
32
  public function __construct($entries) {
33
  $this->entries = $entries;
34
  }
35
- /**
36
- * Prepare the passed results and do some optimizations on them (e.g. remove duplicates).
37
- */
38
- public function prepare() {
39
- $this->convertPresetsWithNonMatchingMustGroupsToExternalUrl();
40
- $this->deduplicate();
41
- $this->removeExternalUrlsCoveredByPreset();
42
- $this->convertStandaloneLinkRelPresetToExternalUrl();
43
- foreach ($this->entries as $entry) {
44
- $entry->calculateFields();
45
- }
46
- }
47
- /**
48
- * Reignore already ignored hosts.
49
- *
50
- * @param string[] $ignoredHosts
51
- */
52
- public function reignore($ignoredHosts) {
53
- foreach ($this->entries as $entry) {
54
- if (\in_array($entry->blocked_url_host, $ignoredHosts, \true)) {
55
- $entry->ignored = \true;
56
- }
57
- }
58
- }
59
- /**
60
- * Persist current entries to the database.
61
- */
62
- public function persist() {
63
- $this->insertToDatabase();
64
- }
65
  /**
66
  * Insert entries to database.
67
  */
68
- protected function insertToDatabase() {
69
  global $wpdb;
70
  if (\count($this->entries) === 0) {
71
  return;
72
  }
73
  $table_name = $this->getTableName(self::TABLE_NAME);
 
 
74
  $rows = [];
75
  foreach ($this->entries as $entry) {
 
 
76
  // Generate `VALUES` SQL
77
  // phpcs:disable WordPress.DB.PreparedSQL
78
  $rows[] = \str_ireplace(
@@ -87,7 +60,7 @@ class Persist {
87
  $entry->markup ?? 'NULL',
88
  $entry->markup_hash ?? '',
89
  $entry->tag,
90
- $entry->post_id ?? 'NULL',
91
  $entry->source_url,
92
  $entry->source_url_hash,
93
  $entry->ignored ? 1 : 0,
@@ -115,229 +88,6 @@ class Persist {
115
  // phpcs:enable WordPress.DB.PreparedSQL
116
  }
117
  }
118
- /**
119
- * Deduplicate coexisting presets. Examples:
120
- *
121
- * - CF7 with reCaptcha over Google reCaptcha
122
- * - MonsterInsights > Google Analytics (`extended`)
123
- */
124
- public function deduplicate() {
125
- $removeByIdentifier = [];
126
- foreach ($this->entries as $key => $value) {
127
- $foundBetterPreset = $this->alreadyExistsInOtherFoundPreset($value);
128
- if ($foundBetterPreset !== \false) {
129
- unset($this->entries[$key]);
130
- continue;
131
- }
132
- // Scenario: MonsterInsights > Google Analytics
133
- $blockable = $value->blockable ?? null;
134
- if (\is_null($blockable)) {
135
- continue;
136
- }
137
- $extended = $blockable->getExtended();
138
- if (!\is_null($extended)) {
139
- $removeByIdentifier[] = $extended;
140
- continue;
141
- }
142
- }
143
- foreach ($this->entries as $key => $value) {
144
- if (\in_array($value->preset, $removeByIdentifier, \true)) {
145
- unset($this->entries[$key]);
146
- }
147
- }
148
- // Reset indexes
149
- $this->entries = \array_values($this->entries);
150
- }
151
- /**
152
- * Remove all entries when there is not a scan entry with the needed host and convert it to an external URL.
153
- */
154
- public function convertPresetsWithNonMatchingMustGroupsToExternalUrl() {
155
- $removeByIdentifier = [];
156
- foreach ($this->entries as $key => $scanEntry) {
157
- if (!isset($scanEntry->preset) || \in_array($scanEntry->preset, $removeByIdentifier, \true)) {
158
- continue;
159
- }
160
- $blockable = $scanEntry->blockable ?? null;
161
- if (\is_null($blockable)) {
162
- continue;
163
- }
164
- // Collect all found host expressions for this preset
165
- $foundExpressions = [];
166
- foreach ($this->entries as $anotherEntry) {
167
- if ($anotherEntry->preset === $scanEntry->preset) {
168
- foreach ($anotherEntry->expressions as $foundExpression) {
169
- if (!empty($scanEntry->blocked_url)) {
170
- // Exclude found expressions when it does not match with query validation
171
- $hostScanOptions = $blockable->getScanOptionsForHostExpression($foundExpression);
172
- if (
173
- $hostScanOptions !== null &&
174
- !$hostScanOptions->urlMatchesQueryArgumentValidations($scanEntry->blocked_url)
175
- ) {
176
- continue;
177
- }
178
- }
179
- $foundExpressions[] = $foundExpression;
180
- }
181
- }
182
- }
183
- if (!$blockable->foundExpressionsMatchMust($foundExpressions, $scanEntry)) {
184
- $removeByIdentifier[] = $scanEntry->preset;
185
- }
186
- }
187
- foreach ($this->entries as $key => $value) {
188
- if (\in_array($value->preset, $removeByIdentifier, \true)) {
189
- if (
190
- !empty($value->blocked_url) &&
191
- \DevOwl\RealCookieBanner\Core::getInstance()
192
- ->getScanner()
193
- ->isNotAnExcludedUrl($value->blocked_url)
194
- ) {
195
- $value->preset = '';
196
- } else {
197
- unset($this->entries[$key]);
198
- }
199
- }
200
- }
201
- // Reset indexes
202
- $this->entries = \array_values($this->entries);
203
- }
204
- /**
205
- * Remove external URLs which got covered by a preset. When is this the case? When using a
206
- * `SelectorSyntaxBlocker` with e.g. `link[href=""]` (for example WordPress emojis).
207
- *
208
- * @param ScanEntry[] $entries The entries to check, defaults to current instance entries
209
- */
210
- public function removeExternalUrlsCoveredByPreset($entries = null) {
211
- add_filter('RCB/Blocker/Enabled', '__return_true');
212
- // Remove all not-found presets as we want to only remove by found preset
213
- $foundPresetIds = \array_unique(\array_column($this->entries, 'preset'));
214
- $contentBlocker = \DevOwl\RealCookieBanner\Core::getInstance()
215
- ->getBlocker()
216
- ->getHeadlessContentBlocker();
217
- $contentBlocker->setBlockables(
218
- \array_filter($contentBlocker->getBlockables(), function ($blockable) use ($foundPresetIds) {
219
- if ($blockable instanceof \DevOwl\RealCookieBanner\scanner\PresetBlockable) {
220
- return \in_array($blockable->getIdentifier(), $foundPresetIds, \true);
221
- }
222
- return \true;
223
- })
224
- );
225
- foreach ($this->entries as $key => $entry) {
226
- if ($entries !== null && !\in_array($entry, $entries, \true)) {
227
- continue;
228
- }
229
- if (!empty($entry->markup) && !empty($entry->tag) && !empty($entry->blocked_url) && empty($entry->preset)) {
230
- $markup = apply_filters('Consent/Block/HTML', $entry->markup);
231
- $isBlocked =
232
- \strpos(
233
- $markup,
234
- \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants::HTML_ATTRIBUTE_CAPTURE_PREFIX
235
- ) !== \false;
236
- if ($isBlocked) {
237
- unset($this->entries[$key]);
238
- }
239
- }
240
- }
241
- remove_filter('RCB/Blocker/Enabled', '__return_true');
242
- // Reset indexes
243
- $this->entries = \array_values($this->entries);
244
- }
245
- /**
246
- * Convert a found `link[rel="preconnect|dns-prefetch"]` within a preset and stands alone within this preset
247
- * to an external URL as a DNS-prefetch and preconnect **must** be loaded in conjunction with another script.
248
- */
249
- public function convertStandaloneLinkRelPresetToExternalUrl() {
250
- /**
251
- * Scan entries.
252
- *
253
- * @var ScanEntry[]
254
- */
255
- $convert = [];
256
- foreach ($this->entries as $key => $scanEntry) {
257
- if (
258
- !isset($scanEntry->preset) ||
259
- \in_array($scanEntry->preset, $convert, \true) ||
260
- !isset($scanEntry->markup)
261
- ) {
262
- continue;
263
- }
264
- if (
265
- $scanEntry->tag === 'link' &&
266
- (\strpos($scanEntry->markup, 'dns-prefetch') !== \false ||
267
- \strpos($scanEntry->markup, 'preconnect') !== \false)
268
- ) {
269
- // Collect all found scan entries for this preset
270
- $foundEntriesForThisPreset = [$scanEntry];
271
- foreach ($this->entries as $anotherEntry) {
272
- if ($anotherEntry !== $scanEntry && $anotherEntry->preset === $scanEntry->preset) {
273
- $foundEntriesForThisPreset[] = $anotherEntry;
274
- }
275
- }
276
- if (\count($foundEntriesForThisPreset) === 1) {
277
- $convert[] = $scanEntry;
278
- }
279
- }
280
- }
281
- if (\count($convert)) {
282
- $added = [];
283
- foreach ($convert as $convertScanEntry) {
284
- $key = \array_search($convertScanEntry, $this->entries, \true);
285
- $this->entries[] = $added[] = $entry = new \DevOwl\RealCookieBanner\scanner\ScanEntry();
286
- $entry->blocked_url = $convertScanEntry->blocked_url;
287
- $entry->tag = $convertScanEntry->tag;
288
- $entry->markup = $convertScanEntry->markup;
289
- unset($this->entries[$key]);
290
- }
291
- // Check again for the external URLs as they can indeed have links covered by other presets
292
- $this->removeExternalUrlsCoveredByPreset($added);
293
- }
294
- }
295
- /**
296
- * Find depending on a scan entry, if the same preset has any
297
- *
298
- * @param ScanEntry $scanEntry
299
- * @return false|ScanEntry The found entry which better describes this scan entry
300
- */
301
- protected function hasPresetFoundExternalUrl($scanEntry) {
302
- foreach ($this->entries as $existing) {
303
- if ($existing->preset === $scanEntry->preset && !empty($existing->blocked_url)) {
304
- return $existing;
305
- }
306
- }
307
- return \false;
308
- }
309
- /**
310
- * Check if a given preset already exists in another scan result.
311
- *
312
- * @param ScanEntry $scanEntry
313
- * @return false|ScanEntry The found entry which better suits this preset
314
- */
315
- protected function alreadyExistsInOtherFoundPreset($scanEntry) {
316
- $blockable = $scanEntry->blockable ?? null;
317
- if (\is_null($blockable)) {
318
- return \false;
319
- }
320
- foreach ($this->entries as $existing) {
321
- if ($existing !== $scanEntry && isset($existing->blockable)) {
322
- $currentHosts = $blockable->getOriginalHosts();
323
- $existingHosts = $existing->blockable->getOriginalHosts();
324
- if (\count($existingHosts) > \count($currentHosts)) {
325
- // Only compare when our opposite scan entry has more hosts to block
326
- // This avoids to alert false-positives when using `extends` middleware
327
- $foundSame = 0;
328
- foreach ($currentHosts as $currentHost) {
329
- if (\in_array($currentHost, $existingHosts, \true)) {
330
- $foundSame++;
331
- }
332
- }
333
- if ($foundSame === \count($currentHosts)) {
334
- return $existing;
335
- }
336
- }
337
- }
338
- }
339
- return \false;
340
- }
341
  /**
342
  * Get the persistable entries.
343
  *
2
 
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
5
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScanEntry;
6
  use DevOwl\RealCookieBanner\base\UtilsProvider;
 
7
  // @codeCoverageIgnoreStart
8
  \defined('ABSPATH') or die('No script kiddies please!');
9
  // Avoid direct file request
31
  public function __construct($entries) {
32
  $this->entries = $entries;
33
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  /**
35
  * Insert entries to database.
36
  */
37
+ public function persist() {
38
  global $wpdb;
39
  if (\count($this->entries) === 0) {
40
  return;
41
  }
42
  $table_name = $this->getTableName(self::TABLE_NAME);
43
+ $post_id = get_the_ID();
44
+ $source_url = \DevOwl\RealCookieBanner\scanner\Scanner::getCurrentSourceUrl();
45
  $rows = [];
46
  foreach ($this->entries as $entry) {
47
+ $entry->source_url = $source_url;
48
+ $entry->calculateFields();
49
  // Generate `VALUES` SQL
50
  // phpcs:disable WordPress.DB.PreparedSQL
51
  $rows[] = \str_ireplace(
60
  $entry->markup ?? 'NULL',
61
  $entry->markup_hash ?? '',
62
  $entry->tag,
63
+ $entry->post_id !== \false ? $post_id : 'NULL',
64
  $entry->source_url,
65
  $entry->source_url_hash,
66
  $entry->ignored ? 1 : 0,
88
  // phpcs:enable WordPress.DB.PreparedSQL
89
  }
90
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  /**
92
  * Get the persistable entries.
93
  *
inc/scanner/Query.php CHANGED
@@ -3,6 +3,7 @@
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants;
 
6
  use DevOwl\RealCookieBanner\base\UtilsProvider;
7
  use DevOwl\RealCookieBanner\settings\Blocker;
8
  // @codeCoverageIgnoreStart
@@ -333,7 +334,10 @@ class Query {
333
  foreach ($hosts as $host) {
334
  $hostsArray = \array_merge($hostsArray, \explode("\n", $host));
335
  }
336
- $blockable = new \DevOwl\RealCookieBanner\scanner\PresetBlockable(null, \array_filter($hostsArray));
 
 
 
337
  return \array_keys($blockable->getRegularExpressions());
338
  }
339
  /**
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants;
6
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable;
7
  use DevOwl\RealCookieBanner\base\UtilsProvider;
8
  use DevOwl\RealCookieBanner\settings\Blocker;
9
  // @codeCoverageIgnoreStart
334
  foreach ($hosts as $host) {
335
  $hostsArray = \array_merge($hostsArray, \explode("\n", $host));
336
  }
337
+ $blockable = new \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable(
338
+ null,
339
+ \array_filter($hostsArray)
340
+ );
341
  return \array_keys($blockable->getRegularExpressions());
342
  }
343
  /**
inc/scanner/Scanner.php CHANGED
@@ -2,10 +2,9 @@
2
 
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
5
- use DevOwl\RealCookieBanner\Vendor\DevOwl\FastHtmlTag\finder\match\SelectorSyntaxMatch;
6
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\AbstractBlockable;
7
- use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\BlockedResult;
8
- use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl;
9
  use DevOwl\RealCookieBanner\base\UtilsProvider;
10
  use DevOwl\RealCookieBanner\Cache;
11
  use DevOwl\RealCookieBanner\Core;
@@ -36,20 +35,6 @@ class Scanner {
36
  * so the `robots.txt` exposes a sitemap and also activates the sitemap.
37
  */
38
  const QUERY_ARG_FORCE_SITEMAP = 'rcb-force-sitemap';
39
- const IGNORE_LINK_REL = ['profile', 'author'];
40
- /**
41
- * Scan results.
42
- *
43
- * @var ScanEntry[]
44
- */
45
- private $results = [];
46
- /**
47
- * A list of excluded hosts.
48
- *
49
- * @param string[]
50
- */
51
- private $excludeHosts = [];
52
- private $persist;
53
  private $query;
54
  private $onChangeDetection;
55
  /**
@@ -58,11 +43,6 @@ class Scanner {
58
  * @codeCoverageIgnore
59
  */
60
  private function __construct() {
61
- // Exclude current host
62
- $currentHost = \parse_url(home_url(), \PHP_URL_HOST);
63
- $this->excludeHosts[] = $currentHost;
64
- $this->excludeHosts[] = \sprintf('www.%s', $currentHost);
65
- $this->excludeHosts[] = \preg_replace('/^www\\./', '', $currentHost);
66
  $this->query = new \DevOwl\RealCookieBanner\scanner\Query();
67
  $this->onChangeDetection = new \DevOwl\RealCookieBanner\scanner\OnChangeDetection($this);
68
  }
@@ -96,16 +76,35 @@ class Scanner {
96
  // Memorize all found presets and external URL hosts so we can diff on them
97
  list($beforePresets, $beforeExternalHosts) = $query->getScannedCombinedResults();
98
  // Delete all known scan-entries for the current URL
99
- $query->removeSourceUrls([\DevOwl\RealCookieBanner\scanner\ScanEntry::getCurrentSourceUrl()]);
100
- // Add new scan entries
101
- $persist = new \DevOwl\RealCookieBanner\scanner\Persist($this->results);
102
- $persist->prepare();
103
- $persist->reignore($ignoredHosts);
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  $persist->persist();
105
  list($afterPresets, $afterExternalHosts) = $query->getScannedCombinedResults();
106
- $this->doActionAddedRemoved($beforePresets, $beforeExternalHosts, $afterPresets, $afterExternalHosts);
 
 
 
 
 
 
107
  // Print result as HTML comment
108
- \printf('<!--rcb-scan:%s-->', \json_encode($persist->getEntries()));
109
  // Mark Job as succeed
110
  if ($job !== null) {
111
  $job->updateProcess(\true);
@@ -114,12 +113,19 @@ class Scanner {
114
  /**
115
  * `do_action` when a result from the scanner got removed or added.
116
  *
 
117
  * @param string[] $beforePresets
118
  * @param string[] $beforeExternalHosts
119
  * @param string[] $afterPresets
120
  * @param string[] $afterExternalHosts
121
  */
122
- protected function doActionAddedRemoved($beforePresets, $beforeExternalHosts, $afterPresets, $afterExternalHosts) {
 
 
 
 
 
 
123
  $changed = \false;
124
  $addedPresets = [];
125
  $removedPresets = [];
@@ -136,7 +142,7 @@ class Scanner {
136
  * @hook RCB/Scanner/Preset/Found
137
  * @since 2.6.0
138
  */
139
- do_action('RCB/Scanner/Preset/Found', $afterPreset, $this->results);
140
  $changed = \true;
141
  $addedPresets[] = $afterPreset;
142
  }
@@ -151,7 +157,7 @@ class Scanner {
151
  * @hook RCB/Scanner/ExternalHost/Found
152
  * @since 2.6.0
153
  */
154
- do_action('RCB/Scanner/ExternalHost/Found', $afterExternalHost, $this->results);
155
  $changed = \true;
156
  $addedExternalHosts[] = $afterExternalHost;
157
  }
@@ -167,7 +173,7 @@ class Scanner {
167
  * @hook RCB/Scanner/Preset/Removed
168
  * @since 2.6.0
169
  */
170
- do_action('RCB/Scanner/Preset/Removed', $beforePreset, $this->results);
171
  $changed = \true;
172
  $removedPresets[] = $beforePreset;
173
  }
@@ -182,7 +188,7 @@ class Scanner {
182
  * @hook RCB/Scanner/ExternalHost/Removed
183
  * @since 2.6.0
184
  */
185
- do_action('RCB/Scanner/ExternalHost/Removed', $beforeExternalHost, $this->results);
186
  $changed = \true;
187
  $removedExternalHosts[] = $beforeExternalHost;
188
  }
@@ -205,7 +211,7 @@ class Scanner {
205
  $addedExternalHosts,
206
  $removedPresets,
207
  $removedExternalHosts,
208
- $this->results
209
  );
210
  }
211
  }
@@ -228,7 +234,7 @@ class Scanner {
228
  }
229
  $identifier = $preset['identifier'];
230
  if (isset($preset[\DevOwl\RealCookieBanner\settings\Blocker::META_NAME_HOSTS])) {
231
- $blockables[] = new \DevOwl\RealCookieBanner\scanner\PresetBlockable(
232
  $identifier,
233
  $preset[\DevOwl\RealCookieBanner\settings\Blocker::META_NAME_HOSTS],
234
  $preset['extended'] ?? null,
@@ -238,117 +244,6 @@ class Scanner {
238
  }
239
  return $blockables;
240
  }
241
- /**
242
- * Memorize when a content got blocked through a non-created preset.
243
- *
244
- * @param BlockedResult $isBlocked
245
- * @param string $linkAttribute
246
- * @param string $link
247
- */
248
- public function is_blocked($isBlocked, $linkAttribute, $link) {
249
- // Check for some edge cases we want to exclude
250
- $attributes = $isBlocked->getAttributes();
251
- $tag = $isBlocked->getTag();
252
- $markup = $isBlocked->getMarkup();
253
- if (
254
- $tag === 'link' &&
255
- isset($attributes['rel']) &&
256
- \in_array($attributes['rel'], self::IGNORE_LINK_REL, \true)
257
- ) {
258
- return $isBlocked;
259
- }
260
- if (!$this->probablyMemorizeIsBlocked($isBlocked, $link, $tag)) {
261
- $this->probablyMemorizeExternalUrl($isBlocked, $link, $tag, $markup);
262
- }
263
- return $isBlocked;
264
- }
265
- /**
266
- * Memorize when an inline script got blocked through a non-created preset.
267
- *
268
- * @param BlockedResult $isBlocked
269
- */
270
- public function is_blocked_inline_script($isBlocked) {
271
- // Check if the `ScriptInlineExtractExternalUrl` plugin were able to extract an URL
272
- $scriptInlineExtractExternalUrl = $isBlocked->getData(
273
- \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl::BLOCKED_RESULT_DATA_KEY
274
- );
275
- $added = $this->probablyMemorizeIsBlocked($isBlocked, $scriptInlineExtractExternalUrl, 'script');
276
- if (!empty($scriptInlineExtractExternalUrl) && !$added && !$isBlocked->isBlocked()) {
277
- $this->probablyMemorizeExternalUrl(
278
- $isBlocked,
279
- $scriptInlineExtractExternalUrl,
280
- 'script',
281
- $isBlocked->getMarkup()
282
- );
283
- }
284
- return $isBlocked;
285
- }
286
- /**
287
- * Memorize when an inline style got blocked through a non-created preset.
288
- *
289
- * @param BlockedResult $isBlocked
290
- * @param string $url
291
- */
292
- public function is_blocked_inline_style_rule($isBlocked, $url) {
293
- $this->probablyMemorizeIsBlocked($isBlocked, $url, 'style');
294
- return $isBlocked;
295
- }
296
- /**
297
- * Memorize when a custom element by CSS Selector got blocked through a non-created preset.
298
- *
299
- * @param BlockedResult $isBlocked
300
- * @param SelectorSyntaxMatch $m
301
- */
302
- public function is_blocked_selector_syntax($isBlocked, $m) {
303
- $this->probablyMemorizeIsBlocked($isBlocked, null, $m->getTag());
304
- return $isBlocked;
305
- }
306
- /**
307
- * Probably memorize an external URL when it got not blocked through preset nor created content blocker.
308
- *
309
- * @param BlockedResult $isBlocked
310
- * @param string $url
311
- * @param string $tag
312
- * @param string $markup
313
- */
314
- protected function probablyMemorizeExternalUrl($isBlocked, $url, $tag, $markup) {
315
- if (!$isBlocked->isBlocked() && !\in_array($tag, ['a'], \true) && $this->isNotAnExcludedUrl($url)) {
316
- $this->results[] = $entry = new \DevOwl\RealCookieBanner\scanner\ScanEntry();
317
- $entry->blocked_url = $url;
318
- $entry->tag = $tag;
319
- if (!empty($markup)) {
320
- $entry->markup = \trim($markup);
321
- }
322
- }
323
- }
324
- /**
325
- * Probably memorize a blocked content.
326
- *
327
- * @param BlockedResult $isBlocked
328
- * @param string $url
329
- * @param string $tag
330
- */
331
- protected function probablyMemorizeIsBlocked($isBlocked, $url, $tag) {
332
- $found = 0;
333
- // At least one non-existing created preset was used to block this content
334
- foreach ($isBlocked->getBlocked() as $blockable) {
335
- if ($blockable instanceof \DevOwl\RealCookieBanner\scanner\PresetBlockable) {
336
- $this->results[] = $entry = new \DevOwl\RealCookieBanner\scanner\ScanEntry();
337
- $entry->blockable = $blockable;
338
- $entry->preset = $blockable->getIdentifier();
339
- $entry->blocked_url = $url;
340
- $entry->tag = $tag;
341
- $entry->expressions = $isBlocked->getBlockedExpressions();
342
- // Inline scripts, styles and `SelectorSyntaxBlocker` support also the markup
343
- $markup = $isBlocked->getMarkup();
344
- if (!empty($markup)) {
345
- $entry->markup = \trim($markup);
346
- }
347
- $found++;
348
- }
349
- }
350
- return $found > 0;
351
- }
352
  /**
353
  * Check if the current page request should be scanned.
354
  */
@@ -521,6 +416,9 @@ class Scanner {
521
  add_action('user_has_cap', function ($caps) {
522
  $caps['administrator'] = \false;
523
  $caps['manage_options'] = \false;
 
 
 
524
  return $caps;
525
  });
526
  if ($current_user instanceof \WP_User && \count($current_user->roles) > 0) {
@@ -544,18 +442,6 @@ class Scanner {
544
  // [Plugin comp] https://wordpress.org/plugins/under-construction-page/
545
  add_filter('ucp_is_construction_mode_enabled', '__return_false');
546
  }
547
- /**
548
- * Check if a given URL is not excluded from our hosts.
549
- *
550
- * @param string $url
551
- */
552
- public function isNotAnExcludedUrl($url) {
553
- return \is_array($parseUrl = \parse_url($url)) &&
554
- isset($parseUrl['host']) &&
555
- \filter_var(\sprintf('http://%s', $parseUrl['host']), \FILTER_VALIDATE_URL) &&
556
- !\in_array($parseUrl['host'], $this->excludeHosts, \true);
557
- // Exclude some hosts (e.g. ourself);
558
- }
559
  /**
560
  * Getter.
561
  *
@@ -588,4 +474,14 @@ class Scanner {
588
  public static function instance() {
589
  return new \DevOwl\RealCookieBanner\scanner\Scanner();
590
  }
 
 
 
 
 
 
 
 
 
 
591
  }
2
 
3
  namespace DevOwl\RealCookieBanner\scanner;
4
 
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\AbstractBlockable;
6
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\BlockableScanner;
7
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable;
8
  use DevOwl\RealCookieBanner\base\UtilsProvider;
9
  use DevOwl\RealCookieBanner\Cache;
10
  use DevOwl\RealCookieBanner\Core;
35
  * so the `robots.txt` exposes a sitemap and also activates the sitemap.
36
  */
37
  const QUERY_ARG_FORCE_SITEMAP = 'rcb-force-sitemap';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  private $query;
39
  private $onChangeDetection;
40
  /**
43
  * @codeCoverageIgnore
44
  */
45
  private function __construct() {
 
 
 
 
 
46
  $this->query = new \DevOwl\RealCookieBanner\scanner\Query();
47
  $this->onChangeDetection = new \DevOwl\RealCookieBanner\scanner\OnChangeDetection($this);
48
  }
76
  // Memorize all found presets and external URL hosts so we can diff on them
77
  list($beforePresets, $beforeExternalHosts) = $query->getScannedCombinedResults();
78
  // Delete all known scan-entries for the current URL
79
+ $query->removeSourceUrls([self::getCurrentSourceUrl()]);
80
+ /**
81
+ * `BlockableScanner`.
82
+ *
83
+ * @var BlockableScanner
84
+ */
85
+ $contentBlockerScanner = \DevOwl\RealCookieBanner\Core::getInstance()
86
+ ->getBlocker()
87
+ ->getHeadlessContentBlocker()
88
+ ->getPluginsByClassName(
89
+ \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\BlockableScanner::class
90
+ )[0];
91
+ $contentBlockerScanner->setActive(\false);
92
+ $contentBlockerScanner->filterFalsePositives();
93
+ $contentBlockerScanner->applyIgnoreByHosts($ignoredHosts);
94
+ $scanEntries = $contentBlockerScanner->flushResults();
95
+ // Persist scan entries to database
96
+ $persist = new \DevOwl\RealCookieBanner\scanner\Persist($scanEntries);
97
  $persist->persist();
98
  list($afterPresets, $afterExternalHosts) = $query->getScannedCombinedResults();
99
+ $this->doActionAddedRemoved(
100
+ $scanEntries,
101
+ $beforePresets,
102
+ $beforeExternalHosts,
103
+ $afterPresets,
104
+ $afterExternalHosts
105
+ );
106
  // Print result as HTML comment
107
+ \printf('<!--rcb-scan:%s-->', \json_encode($scanEntries));
108
  // Mark Job as succeed
109
  if ($job !== null) {
110
  $job->updateProcess(\true);
113
  /**
114
  * `do_action` when a result from the scanner got removed or added.
115
  *
116
+ * @param ScanEntry[] $results
117
  * @param string[] $beforePresets
118
  * @param string[] $beforeExternalHosts
119
  * @param string[] $afterPresets
120
  * @param string[] $afterExternalHosts
121
  */
122
+ protected function doActionAddedRemoved(
123
+ $results,
124
+ $beforePresets,
125
+ $beforeExternalHosts,
126
+ $afterPresets,
127
+ $afterExternalHosts
128
+ ) {
129
  $changed = \false;
130
  $addedPresets = [];
131
  $removedPresets = [];
142
  * @hook RCB/Scanner/Preset/Found
143
  * @since 2.6.0
144
  */
145
+ do_action('RCB/Scanner/Preset/Found', $afterPreset, $results);
146
  $changed = \true;
147
  $addedPresets[] = $afterPreset;
148
  }
157
  * @hook RCB/Scanner/ExternalHost/Found
158
  * @since 2.6.0
159
  */
160
+ do_action('RCB/Scanner/ExternalHost/Found', $afterExternalHost, $results);
161
  $changed = \true;
162
  $addedExternalHosts[] = $afterExternalHost;
163
  }
173
  * @hook RCB/Scanner/Preset/Removed
174
  * @since 2.6.0
175
  */
176
+ do_action('RCB/Scanner/Preset/Removed', $beforePreset, $results);
177
  $changed = \true;
178
  $removedPresets[] = $beforePreset;
179
  }
188
  * @hook RCB/Scanner/ExternalHost/Removed
189
  * @since 2.6.0
190
  */
191
+ do_action('RCB/Scanner/ExternalHost/Removed', $beforeExternalHost, $results);
192
  $changed = \true;
193
  $removedExternalHosts[] = $beforeExternalHost;
194
  }
211
  $addedExternalHosts,
212
  $removedPresets,
213
  $removedExternalHosts,
214
+ $results
215
  );
216
  }
217
  }
234
  }
235
  $identifier = $preset['identifier'];
236
  if (isset($preset[\DevOwl\RealCookieBanner\settings\Blocker::META_NAME_HOSTS])) {
237
+ $blockables[] = new \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable(
238
  $identifier,
239
  $preset[\DevOwl\RealCookieBanner\settings\Blocker::META_NAME_HOSTS],
240
  $preset['extended'] ?? null,
244
  }
245
  return $blockables;
246
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  /**
248
  * Check if the current page request should be scanned.
249
  */
416
  add_action('user_has_cap', function ($caps) {
417
  $caps['administrator'] = \false;
418
  $caps['manage_options'] = \false;
419
+ if (isset($caps['manage_woocommerce'])) {
420
+ $caps['manage_woocommerce'] = \false;
421
+ }
422
  return $caps;
423
  });
424
  if ($current_user instanceof \WP_User && \count($current_user->roles) > 0) {
442
  // [Plugin comp] https://wordpress.org/plugins/under-construction-page/
443
  add_filter('ucp_is_construction_mode_enabled', '__return_false');
444
  }
 
 
 
 
 
 
 
 
 
 
 
 
445
  /**
446
  * Getter.
447
  *
474
  public static function instance() {
475
  return new \DevOwl\RealCookieBanner\scanner\Scanner();
476
  }
477
+ /**
478
+ * Get the current source URL usable for a newly created `ScanEntry`.
479
+ */
480
+ public static function getCurrentSourceUrl() {
481
+ $result = remove_query_arg(
482
+ \DevOwl\RealCookieBanner\scanner\Scanner::QUERY_ARG_TOKEN,
483
+ \DevOwl\RealCookieBanner\Utils::getRequestUrl()
484
+ );
485
+ return remove_query_arg(\DevOwl\RealCookieBanner\scanner\Scanner::QUERY_ARG_JOB_ID, $result);
486
+ }
487
  }
inc/view/Banner.php CHANGED
@@ -148,7 +148,16 @@ class Banner {
148
  if ($this->isHiddenDueLegal()) {
149
  return \true;
150
  }
151
- return \false;
 
 
 
 
 
 
 
 
 
152
  }
153
  /**
154
  * The `codeOnPageLoad` can be directly rendered to the Output Buffer cause
148
  if ($this->isHiddenDueLegal()) {
149
  return \true;
150
  }
151
+ /**
152
+ * Determine, if the predecision handler should be executed in the frontend.
153
+ * If you return `true`, the banner never gets shown.
154
+ *
155
+ * @hook RCB/IsPreventPreDecision
156
+ * @param {boolean} $isPreventPreDecision
157
+ * @return {boolean}
158
+ * @since 2.12.1
159
+ */
160
+ return apply_filters('RCB/IsPreventPreDecision', \false);
161
  }
162
  /**
163
  * The `codeOnPageLoad` can be directly rendered to the Output Buffer cause
inc/view/BannerCustomize.php CHANGED
@@ -17,8 +17,10 @@ use DevOwl\RealCookieBanner\view\customize\banner\individual\Group;
17
  use DevOwl\RealCookieBanner\view\customize\banner\individual\Layout;
18
  use DevOwl\RealCookieBanner\view\customize\banner\Legal;
19
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
 
20
  use DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton;
21
  use DevOwl\RealCookieBanner\view\customize\banner\individual\Texts as IndividualTexts;
 
22
  // @codeCoverageIgnoreStart
23
  \defined('ABSPATH') or die('No script kiddies please!');
24
  // Avoid direct file request
@@ -165,6 +167,8 @@ class BannerCustomize extends \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\A
165
  * Expand localize values by e.g. header logo dimensions. This is not needed for the
166
  * customize nor export, but for the frontend to fit Web Vitals.
167
  *
 
 
168
  * @param array $values Result of `localizeValues`
169
  */
170
  public function expandLocalizeValues(&$values) {
@@ -186,6 +190,12 @@ class BannerCustomize extends \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\A
186
  }
187
  }
188
  }
 
 
 
 
 
 
189
  }
190
  // Documented in AbstractCustomizePanel
191
  public function localizeDefaultValues($skipControlClasses = []) {
@@ -223,6 +233,7 @@ class BannerCustomize extends \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\A
223
  \DevOwl\RealCookieBanner\view\customize\banner\individual\Group::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\Group())->args(),
224
  \DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton())->args(),
225
  \DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\Texts())->args(),
 
226
  \DevOwl\RealCookieBanner\view\customize\banner\CustomCss::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\CustomCss())->args()
227
  ];
228
  }
@@ -234,6 +245,35 @@ class BannerCustomize extends \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\A
234
  protected function settingDefaults() {
235
  return ['type' => 'option', 'transport' => 'postMessage'];
236
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  /**
238
  * New instance.
239
  *
17
  use DevOwl\RealCookieBanner\view\customize\banner\individual\Layout;
18
  use DevOwl\RealCookieBanner\view\customize\banner\Legal;
19
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
20
+ use DevOwl\RealCookieBanner\view\customize\banner\Mobile;
21
  use DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton;
22
  use DevOwl\RealCookieBanner\view\customize\banner\individual\Texts as IndividualTexts;
23
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\Utils;
24
  // @codeCoverageIgnoreStart
25
  \defined('ABSPATH') or die('No script kiddies please!');
26
  // Avoid direct file request
167
  * Expand localize values by e.g. header logo dimensions. This is not needed for the
168
  * customize nor export, but for the frontend to fit Web Vitals.
169
  *
170
+ * It also disables the footer link if our license server orders this.
171
+ *
172
  * @param array $values Result of `localizeValues`
173
  */
174
  public function expandLocalizeValues(&$values) {
190
  }
191
  }
192
  }
193
+ $footerDesign = &$values['customizeValuesBanner']['footerDesign'];
194
+ if ($this->isPoweredByLinkDisabledByException()) {
195
+ $footerDesign['poweredByLink'] = \false;
196
+ } elseif ($footerDesign['poweredByLink'] === \false && !$this->isPro()) {
197
+ $footerDesign['poweredByLink'] = \true;
198
+ }
199
  }
200
  // Documented in AbstractCustomizePanel
201
  public function localizeDefaultValues($skipControlClasses = []) {
233
  \DevOwl\RealCookieBanner\view\customize\banner\individual\Group::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\Group())->args(),
234
  \DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton())->args(),
235
  \DevOwl\RealCookieBanner\view\customize\banner\individual\Texts::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\individual\Texts())->args(),
236
+ \DevOwl\RealCookieBanner\view\customize\banner\Mobile::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\Mobile())->args(),
237
  \DevOwl\RealCookieBanner\view\customize\banner\CustomCss::SECTION => (new \DevOwl\RealCookieBanner\view\customize\banner\CustomCss())->args()
238
  ];
239
  }
245
  protected function settingDefaults() {
246
  return ['type' => 'option', 'transport' => 'postMessage'];
247
  }
248
+ /**
249
+ * Check if powered-by link is disabled through our license server.
250
+ */
251
+ public function isPoweredByLinkDisabledByException() {
252
+ $activation = \DevOwl\RealCookieBanner\Core::getInstance()
253
+ ->getRpmInitiator()
254
+ ->getPluginUpdater()
255
+ ->getCurrentBlogLicense()
256
+ ->getActivation();
257
+ if ($activation->getReceivedClientProperty('rcbDisablePoweredBy') === 'true') {
258
+ return \true;
259
+ } elseif (empty($activation->getCode())) {
260
+ // Check offline map
261
+ $host = \DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\Utils::getCurrentHostname();
262
+ if (
263
+ !empty($host) &&
264
+ \function_exists('hash') &&
265
+ \in_array(
266
+ \substr(\hash('sha256', 'LAQ%&^dwUCbHX1fI$89EeFlCxZ8tYXLA' . $host), 0, 13),
267
+ // prettier-ignore
268
+ ['5efc1df4cec8a', '05f5e3c8e0fc6', '7b75f47cc1fb6', 'ee7f2e22c5143', '7dfb073287c9d', '6b3a5a54843ba', 'd0bd5fd52695b', 'f3965a1973c95', 'cf6bc49255da5', '0db99e3ed4768', 'b7ca952882b18', '295979337eb5b', '5d213e2441d3b', '613253349aa77', 'cbb312e5dc035', '3a342098b20e3', '44b3b88600d4d', '2c3add3ab8893', 'c7e7b4291e538', '1dc7de9c7e3e0', 'd64b3e3290933', 'a67f4187a0759', '627d42b473b29', 'fbec9c21dd094', 'cc2ead8b2d48e', '85b05544fbbb2', 'bbb981d30c49f', 'ddd786e73bebf', 'a6da8de130ce5', 'cfaf5fee097d2', '7d3784ff1a192', '668c6730c1055', 'e7c54b29a080d', 'f7c719a09e699', '6d16c716afb22', 'cdc5534e75a2e', 'a80510ca3c8d0', '46d9ca0bb0598', '7653a763b4571', '0917cf1a8e6f8', '19bcc9e27a9b4', 'b19d8fc45bf40', 'bcc237d61f9b3', '35902166dcac1', '4715b6dd0f9a2', '266fc518bdd32', '5320cb490816c', '0ff2d275ecec7', '9bfab40b7dda5', 'ccf36bd1fe87e', '2772a7c803dde', '7c163b64eaeb4', '96879d0e156f9', 'd1c10df1d0641', 'ccb9264d3177d', 'e1fb232010c0b', '7d9e4b02a3e94', 'e142ac706d3ff', 'dcbdaf2a1f196', '3b319f347645c', 'd77a969945b84', '7dff5c7dcd7bd', 'b6de4d4f271d6', '1e5df2e167056', 'e8bd2f1ff0144', '97e887079e96b'],
269
+ \true
270
+ )
271
+ ) {
272
+ return \true;
273
+ }
274
+ }
275
+ return \false;
276
+ }
277
  /**
278
  * New instance.
279
  *
inc/view/Blocker.php CHANGED
@@ -4,6 +4,7 @@ namespace DevOwl\RealCookieBanner\view;
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\AbstractBlockable;
6
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\HeadlessContentBlocker;
 
7
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl;
8
  use DevOwl\RealCookieBanner\base\UtilsProvider;
9
  use DevOwl\RealCookieBanner\Core;
@@ -33,6 +34,15 @@ class Blocker {
33
  // [Theme Comp] Astra Theme (Gutenberg Block)
34
  'ast-oembed-container' => 1
35
  ];
 
 
 
 
 
 
 
 
 
36
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
37
  /**
38
  * Force to output the needed computing time at the end of the page for debug purposes.
@@ -58,11 +68,10 @@ class Blocker {
58
  public function getHeadlessContentBlocker() {
59
  if ($this->headlessContentBlocker === null) {
60
  $headlessContentBlocker = new \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\HeadlessContentBlocker();
61
- if (
62
- \DevOwl\RealCookieBanner\Core::getInstance()
63
- ->getScanner()
64
- ->isActive()
65
- ) {
66
  // This plugin needs to be available before our custom hooks fired in `Plugin`
67
  $headlessContentBlocker->addPlugin(
68
  \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl::class
@@ -70,6 +79,17 @@ class Blocker {
70
  }
71
  // This is our custom Real Cookie Banner plugin (runs hooks, adds standard plugins, adds theme / plugin compatibilities, ...)
72
  $headlessContentBlocker->addPlugin(\DevOwl\RealCookieBanner\view\blocker\Plugin::class);
 
 
 
 
 
 
 
 
 
 
 
73
  $headlessContentBlocker->addBlockables($this->createBlockables());
74
  $headlessContentBlocker->setup();
75
  $this->headlessContentBlocker = $headlessContentBlocker;
@@ -188,7 +208,8 @@ class Blocker {
188
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBannerActive() &&
189
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive() &&
190
  !\DevOwl\RealCookieBanner\Utils::isPageBuilderFrontend() &&
191
- !is_customize_preview();
 
192
  /**
193
  * Allows you to force the content blocker take action. This is especially
194
  * useful if you want to use the blocker functionality for custom mechanism
@@ -201,6 +222,14 @@ class Blocker {
201
  */
202
  return apply_filters('RCB/Blocker/Enabled', $isEnabled);
203
  }
 
 
 
 
 
 
 
 
204
  /**
205
  * Allows to modify content within a `admin-ajax.php` action.
206
  */
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\AbstractBlockable;
6
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\HeadlessContentBlocker;
7
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\BlockableScanner;
8
  use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl;
9
  use DevOwl\RealCookieBanner\base\UtilsProvider;
10
  use DevOwl\RealCookieBanner\Core;
34
  // [Theme Comp] Astra Theme (Gutenberg Block)
35
  'ast-oembed-container' => 1
36
  ];
37
+ /**
38
+ * Before trying to create a visual content blocker, check if the node is inside a given container and
39
+ * if it is, wait until this container is visible. For example, you are providing a sidebar with blocked
40
+ * content, you need to pass the selector for this sidebar.
41
+ */
42
+ const DEPENDANT_VISIBILITY_CONTAINERS = [
43
+ // [Plugin Comp] https://de.wordpress.org/plugins/wp-contact-slider/
44
+ '.wpcs_content_inner'
45
+ ];
46
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
47
  /**
48
  * Force to output the needed computing time at the end of the page for debug purposes.
68
  public function getHeadlessContentBlocker() {
69
  if ($this->headlessContentBlocker === null) {
70
  $headlessContentBlocker = new \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\HeadlessContentBlocker();
71
+ $isScanning = \DevOwl\RealCookieBanner\Core::getInstance()
72
+ ->getScanner()
73
+ ->isActive();
74
+ if ($isScanning) {
 
75
  // This plugin needs to be available before our custom hooks fired in `Plugin`
76
  $headlessContentBlocker->addPlugin(
77
  \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\ScriptInlineExtractExternalUrl::class
79
  }
80
  // This is our custom Real Cookie Banner plugin (runs hooks, adds standard plugins, adds theme / plugin compatibilities, ...)
81
  $headlessContentBlocker->addPlugin(\DevOwl\RealCookieBanner\view\blocker\Plugin::class);
82
+ if ($isScanning) {
83
+ /**
84
+ * This plugin needs to be available after our custom hooks fired in `Plugin`
85
+ *
86
+ * @var BlockableScanner
87
+ */
88
+ $scanner = $headlessContentBlocker->addPlugin(
89
+ \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\BlockableScanner::class
90
+ );
91
+ $scanner->excludeHostByUrl(home_url());
92
+ }
93
  $headlessContentBlocker->addBlockables($this->createBlockables());
94
  $headlessContentBlocker->setup();
95
  $this->headlessContentBlocker = $headlessContentBlocker;
208
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBannerActive() &&
209
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive() &&
210
  !\DevOwl\RealCookieBanner\Utils::isPageBuilderFrontend() &&
211
+ !is_customize_preview() &&
212
+ !$this->isCurrentRequestException();
213
  /**
214
  * Allows you to force the content blocker take action. This is especially
215
  * useful if you want to use the blocker functionality for custom mechanism
222
  */
223
  return apply_filters('RCB/Blocker/Enabled', $isEnabled);
224
  }
225
+ /**
226
+ * Check if the current request should not load any blocking mechanism depending
227
+ * on a special condition.
228
+ *
229
+ */
230
+ protected function isCurrentRequestException() {
231
+ return isset($_GET['callback']) && $_GET['callback'] === 'map-iframe';
232
+ }
233
  /**
234
  * Allows to modify content within a `admin-ajax.php` action.
235
  */
inc/view/ConfigPage.php CHANGED
@@ -61,17 +61,19 @@ class ConfigPage {
61
  }
62
  echo \sprintf(
63
  '<div id="rcb-ad-block-checker-notice" class="notice notice-warning hidden"><p>%s</p></div>
64
- <img id="rcb-ad-block-checker" src="%s" style="display:none;">
65
- <script>(function(img, notice) {
66
- img.addEventListener("error", function() {
67
- notice.classList.remove("hidden");
 
 
68
  });
69
- })(document.getElementById("rcb-ad-block-checker"), document.getElementById("rcb-ad-block-checker-notice"))</script>',
70
  __(
71
  '<strong>Adblocker detected</strong>: You may use an adblocker in your browser. This can block parts of the settings of the Real Cookie Banner and thus lead to errors. <strong>Please deactivate your adblocker for your own website!</strong>',
72
  RCB_TD
73
  ),
74
- plugins_url('public/images/just-detect-adblock/pagead2.googlesyndication.com/1.png', RCB_FILE)
75
  );
76
  }
77
  /**
61
  }
62
  echo \sprintf(
63
  '<div id="rcb-ad-block-checker-notice" class="notice notice-warning hidden"><p>%s</p></div>
64
+ <script type="text/javascript" src="%s"></script>
65
+ <script>(function(notice) {
66
+ document.addEventListener("DOMContentLoaded", function() {
67
+ if (!document.getElementById("ZSCFlsPIDL95U1QFvkFvGKQu3R9YAh0")) {
68
+ notice.classList.remove("hidden");
69
+ }
70
  });
71
+ })(document.getElementById("rcb-ad-block-checker-notice"))</script>',
72
  __(
73
  '<strong>Adblocker detected</strong>: You may use an adblocker in your browser. This can block parts of the settings of the Real Cookie Banner and thus lead to errors. <strong>Please deactivate your adblocker for your own website!</strong>',
74
  RCB_TD
75
  ),
76
+ plugins_url('public/images/detect-adblock/doubleserve.js', RCB_FILE)
77
  );
78
  }
79
  /**
inc/view/customize/banner/Mobile.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DevOwl\RealCookieBanner\view\customize\banner;
4
+
5
+ use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
6
+ use DevOwl\RealCookieBanner\base\UtilsProvider;
7
+ use DevOwl\RealCookieBanner\view\BannerCustomize;
8
+ // @codeCoverageIgnoreStart
9
+ \defined('ABSPATH') or die('No script kiddies please!');
10
+ // Avoid direct file request
11
+ // @codeCoverageIgnoreEnd
12
+ /**
13
+ * Mobile optimized customization.
14
+ */
15
+ class Mobile {
16
+ use UtilsProvider;
17
+ const SECTION = \DevOwl\RealCookieBanner\view\BannerCustomize::PANEL_MAIN . '-mobile';
18
+ const SETTING = RCB_OPT_PREFIX . '-banner-mobile';
19
+ const SETTING_ENABLED = self::SETTING . '-enabled';
20
+ const SETTING_MAX_HEIGHT = self::SETTING . '-max-height';
21
+ const SETTING_HIDE_HEADER = self::SETTING . '-hide-header';
22
+ const SETTING_ALIGNMENT = self::SETTING . '-alignment';
23
+ const SETTING_SCALE_PERCENT = self::SETTING . '-scale-percent';
24
+ const SETTING_SCALE_PERCENT_VERTICAL = self::SETTING . '-scale-percent-vertical';
25
+ const DEFAULT_ENABLED = \true;
26
+ const DEFAULT_MAX_HEIGHT = 400;
27
+ const DEFAULT_HIDE_HEADER = \false;
28
+ const DEFAULT_ALIGNMENT = 'bottom';
29
+ const DEFAULT_SCALE_PERCENT = 90;
30
+ const DEFAULT_SCALE_PERCENT_VERTICAL = -50;
31
+ /**
32
+ * Return arguments for this section.
33
+ */
34
+ public function args() {
35
+ return [
36
+ 'name' => 'mobile',
37
+ 'title' => __('Mobile experience', RCB_TD),
38
+ 'controls' => [
39
+ self::SETTING_ENABLED => [
40
+ 'name' => 'enabled',
41
+ 'type' => 'mobileSwitcher',
42
+ 'setting' => [
43
+ 'default' => self::DEFAULT_ENABLED,
44
+ 'sanitize_callback' => [
45
+ \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
46
+ 'sanitize_checkbox'
47
+ ]
48
+ ]
49
+ ],
50
+ self::SETTING_MAX_HEIGHT => [
51
+ 'name' => 'maxHeight',
52
+ 'label' => __('Maximum height', RCB_TD),
53
+ 'type' => 'range',
54
+ 'input_attrs' => ['min' => 200, 'max' => 900, 'step' => 0],
55
+ 'setting' => ['default' => self::DEFAULT_MAX_HEIGHT, 'sanitize_callback' => 'absint']
56
+ ],
57
+ self::SETTING_HIDE_HEADER => [
58
+ 'name' => 'hideHeader',
59
+ 'label' => __('Hide header', RCB_TD),
60
+ 'type' => 'checkbox',
61
+ 'setting' => [
62
+ 'default' => self::DEFAULT_HIDE_HEADER,
63
+ 'sanitize_callback' => [
64
+ \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
65
+ 'sanitize_checkbox'
66
+ ]
67
+ ]
68
+ ],
69
+ self::SETTING_ALIGNMENT => [
70
+ 'name' => 'alignment',
71
+ 'label' => __('Alignment', RCB_TD),
72
+ 'type' => 'select',
73
+ 'choices' => [
74
+ 'top' => __('Top', RCB_TD),
75
+ 'center' => __('Center', RCB_TD),
76
+ 'bottom' => __('Bottom', RCB_TD)
77
+ ],
78
+ 'setting' => ['default' => self::DEFAULT_ALIGNMENT]
79
+ ],
80
+ self::SETTING_SCALE_PERCENT => [
81
+ 'name' => 'scalePercent',
82
+ 'label' => __('Scaling factor', RCB_TD),
83
+ 'description' => __(
84
+ 'Elements in the cookie banner can be scaled smaller or larger relative to the desktop view. Make sure that all elements are still clearly legible so that you obtain valid consents.',
85
+ RCB_TD
86
+ ),
87
+ 'type' => 'range',
88
+ 'input_attrs' => ['min' => 70, 'max' => 110, 'step' => 0],
89
+ 'setting' => ['default' => self::DEFAULT_SCALE_PERCENT, 'sanitize_callback' => 'absint']
90
+ ],
91
+ self::SETTING_SCALE_PERCENT_VERTICAL => [
92
+ 'name' => 'scalePercentVertical',
93
+ 'label' => __('Vertical spacing scaling factor', RCB_TD),
94
+ 'description' => __(
95
+ 'The vertical distance between elements can be decreased or increased relative to the desktop view.',
96
+ RCB_TD
97
+ ),
98
+ 'type' => 'range',
99
+ 'input_attrs' => ['min' => -70, 'max' => 10, 'step' => 0],
100
+ 'setting' => [
101
+ 'default' => self::DEFAULT_SCALE_PERCENT_VERTICAL,
102
+ 'sanitize_callback' => function ($value) {
103
+ return \intval($value);
104
+ }
105
+ ]
106
+ ]
107
+ ]
108
+ ];
109
+ }
110
+ /**
111
+ * Disable mobile experience for older revisions.
112
+ *
113
+ * @param array $revision
114
+ * @param boolean $independent
115
+ */
116
+ public static function applyBackwardsCompatibility($revision, $independent) {
117
+ if ($independent && !isset($revision['banner']['customizeValuesBanner']['mobile'])) {
118
+ $revision['banner']['customizeValuesBanner']['mobile'] = [
119
+ 'enabled' => \false,
120
+ 'maxHeight' => self::DEFAULT_MAX_HEIGHT,
121
+ 'hideHeader' => self::DEFAULT_HIDE_HEADER,
122
+ 'alignment' => self::DEFAULT_ALIGNMENT,
123
+ 'scalePercent' => self::DEFAULT_SCALE_PERCENT,
124
+ 'scalePercentVertical' => self::DEFAULT_SCALE_PERCENT_VERTICAL
125
+ ];
126
+ }
127
+ return $revision;
128
+ }
129
+ }
inc/view/shortcode/LinkShortcode.php CHANGED
@@ -63,7 +63,7 @@ class LinkShortcode {
63
  return \sprintf(
64
  '<%s href="%s" id="%s" data-success-message="%s" class="rcb-sc-link rcb-sc-link-%s">%s</%s>',
65
  $atts['tag'],
66
- '#' . $atts['type'],
67
  !empty($atts['id']) ? esc_attr($atts['id']) : 'rcb-sc-link-' . $atts['type'],
68
  $atts['successmessage'],
69
  $atts['type'],
63
  return \sprintf(
64
  '<%s href="%s" id="%s" data-success-message="%s" class="rcb-sc-link rcb-sc-link-%s">%s</%s>',
65
  $atts['tag'],
66
+ '#consent-' . $atts['type'],
67
  !empty($atts['id']) ? esc_attr($atts['id']) : 'rcb-sc-link-' . $atts['type'],
68
  $atts['successmessage'],
69
  $atts['type'],
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.12.0
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: 2.13.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: 2021-12-20 14:58+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
@@ -548,6 +548,7 @@ msgstr "Essenziell"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
551
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
552
  #: inc/overrides/pro/presets/TypeformPreset.php:1
553
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -612,6 +613,8 @@ msgstr "Statistik"
612
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
613
  #: inc/overrides/pro/presets/HotjarPreset.php:1
614
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
615
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
616
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
617
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -1447,6 +1450,7 @@ msgstr "ActiveCampaign Formular mit Google reCAPTCHA"
1447
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1448
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1449
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
1450
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -1524,6 +1528,14 @@ msgstr ""
1524
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1525
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1526
 
 
 
 
 
 
 
 
 
1527
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1528
  msgid ""
1529
  "The tour, shown on a map from Komoot, could not be loaded because you did "
@@ -2789,6 +2801,61 @@ msgstr ""
2789
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2790
  "der Zahlungsabwicklung zu verknüpfen."
2791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2792
  #: inc/overrides/pro/presets/KomootPreset.php:1
2793
  msgid ""
2794
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
@@ -3857,6 +3924,17 @@ msgstr ""
3857
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3858
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3859
 
 
 
 
 
 
 
 
 
 
 
 
3860
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3861
  msgid ""
3862
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
@@ -4080,6 +4158,15 @@ msgstr ""
4080
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4081
  "auf dem Standort deiner Besucher basiert."
4082
 
 
 
 
 
 
 
 
 
 
4083
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4084
  msgid ""
4085
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
@@ -5244,6 +5331,7 @@ msgstr "ActiveCampaign Form"
5244
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5245
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5246
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
5247
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5248
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5249
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -5284,6 +5372,10 @@ msgstr "Form Maker"
5284
  msgid "Conversion Tracking and Remarketing"
5285
  msgstr "Conversion Tracking und Remarketing"
5286
 
 
 
 
 
5287
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5288
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5289
  msgid "former WP-Piwik"
@@ -5722,6 +5814,7 @@ msgstr "Mitte links"
5722
 
5723
  #: inc/view/customize/banner/BasicLayout.php:1
5724
  #: inc/view/customize/banner/BodyDesign.php:1
 
5725
  msgid "Center"
5726
  msgstr "Zentriert"
5727
 
@@ -5746,10 +5839,12 @@ msgid "Define outer distance of the dialog."
5746
  msgstr "Definiere den äußeren Abstand des Dialogs."
5747
 
5748
  #: inc/view/customize/banner/BasicLayout.php:1
 
5749
  msgid "Top"
5750
  msgstr "Oben"
5751
 
5752
  #: inc/view/customize/banner/BasicLayout.php:1
 
5753
  msgid "Bottom"
5754
  msgstr "Unten"
5755
 
@@ -6486,6 +6581,48 @@ msgstr ""
6486
  msgid "Please fill in a valid URL!"
6487
  msgstr "Bitte trage eine gültige URL ein!"
6488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6489
  #: inc/view/customize/banner/Texts.php:1
6490
  msgid "\"Accept all\" button/link"
6491
  msgstr "\"Alle akzeptieren”-Button/Link"
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-01-17 10:19+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
551
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
552
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
553
  #: inc/overrides/pro/presets/TypeformPreset.php:1
554
  #: inc/overrides/pro/presets/UserlikePreset.php:1
613
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
614
  #: inc/overrides/pro/presets/HotjarPreset.php:1
615
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
616
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
617
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
618
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
619
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
620
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
1450
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
1453
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1454
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1455
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
1528
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1529
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1530
 
1531
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1532
+ msgid "HappyForms with Google reCAPTCHA"
1533
+ msgstr "HappyForms mit Google reCAPTCHA"
1534
+
1535
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1536
+ msgid "Kliken and Google Ads"
1537
+ msgstr "Kliken und Google Ads"
1538
+
1539
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1540
  msgid ""
1541
  "The tour, shown on a map from Komoot, could not be loaded because you did "
2801
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2802
  "der Zahlungsabwicklung zu verknüpfen."
2803
 
2804
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
2805
+ msgid ""
2806
+ "Klaviyo is a service for collecting detailed statistics about user behavior "
2807
+ "on the website. This includes, details about the devices used to access the "
2808
+ "websites (such as the IP address, operating system and web browser), date "
2809
+ "and time of visit, details about how people interact with the emails sent by "
2810
+ "this website, websites from which visitors were redirected to this website, "
2811
+ "and search terms in the search of this website. In addition, contact "
2812
+ "information and purchase history of buyers will be transmitted to Klaviyo. "
2813
+ "Klaviyo uses the collected data to differentiate target groups via its "
2814
+ "marketing platform and to send personalized marketing messages via email and "
2815
+ "SMS. Klaviyo may also collect collected personal data for its own business "
2816
+ "purposes, such as business contact information of potential customers or "
2817
+ "resumes of job applicants. Cookies are used to assign a unique "
2818
+ "identification number to the visitor and to be able to identify them again "
2819
+ "over several page requests and to be able to link the data of several page "
2820
+ "requests."
2821
+ msgstr ""
2822
+ "Klaviyo ist ein Service zum Sammeln detaillierter Statistiken über das "
2823
+ "Nutzerverhalten auf der Website. Dazu gehören Angaben zu den Geräten, die "
2824
+ "für den Zugriff auf die Websites verwendet werden (z. B. IP-Adresse, "
2825
+ "Betriebssystem und Webbrowser), Datum und Uhrzeit des Besuchs, Angaben dazu, "
2826
+ "wie Personen mit den von dieser Website gesendeten E-Mails interagieren, "
2827
+ "Websites, von denen Besucher auf diese Website verwiesen wurden, und "
2828
+ "Suchbegriffe bei der Suche auf dieser Website. Darüber hinaus werden "
2829
+ "Kontaktinformationen und die Kaufhistorie der Käufer/innen an Klaviyo "
2830
+ "übermittelt. Klaviyo nutzt die gesammelten Daten, um über seine "
2831
+ "Marketingplattform Zielgruppen zu differenzieren und personalisierte "
2832
+ "Marketingnachrichten per E-Mail und SMS zu versenden. Klaviyo kann die "
2833
+ "gesammelten personenbezogenen Daten auch für seine eigenen Geschäftszwecke "
2834
+ "nutzen, z. B. für geschäftliche Kontaktinformationen von potenziellen Kunden "
2835
+ "oder Lebensläufe von Stellenbewerbern. Cookies werden verwendet, um dem "
2836
+ "Besucher eine eindeutige Identifikationsnummer zuzuweisen und ihn über "
2837
+ "mehrere Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2838
+ "Seitenaufrufe miteinander verknüpfen zu können."
2839
+
2840
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
2841
+ msgid ""
2842
+ "Kliken or also called Kliken Analytics is a service for creating detailed "
2843
+ "statistics about user behavior on the website. This detailed user profile "
2844
+ "may be forwarded to the Google Ads service in order to be able to optimally "
2845
+ "place ads on the Google Ads network for this website. Cookies are used to "
2846
+ "assign a unique identification number to the visitor and to be able to "
2847
+ "identify them again over several page requests and to be able to link the "
2848
+ "data of several page requests."
2849
+ msgstr ""
2850
+ "Kliken oder auch Kliken Analytics genannt ist ein Service zur Erstellung "
2851
+ "detaillierter Statistiken über das Nutzerverhalten auf der Website. Dieses "
2852
+ "detaillierte Nutzerprofil kann an den Google Ads Service weitergeleitet "
2853
+ "werden, um Anzeigen im Google Ads Netzwerk für diese Website optimal "
2854
+ "platzieren zu können. Cookies werden verwendet, um dem Besucher eine "
2855
+ "eindeutige Identifikationsnummer zuzuweisen und ihn über mehrere "
2856
+ "Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2857
+ "Seitenaufrufe miteinander verknüpfen zu können."
2858
+
2859
  #: inc/overrides/pro/presets/KomootPreset.php:1
2860
  msgid ""
2861
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
3924
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3925
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3926
 
3927
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
3928
+ msgid ""
3929
+ "TI WooCommerce Wishlist allows you to save products to a wishlist so you can "
3930
+ "remember them for later. Cookies are used to remember the products and the "
3931
+ "number of products you put on the wishlist."
3932
+ msgstr ""
3933
+ "TI WooCommerce Wishlist ermöglicht es dir, Produkte auf einer Wunschliste zu "
3934
+ "speichern, damit du sie dir für später merken kannst. Cookies werden "
3935
+ "verwendet, um die Produkte und die Anzahl der Produkte, die du auf die "
3936
+ "Wunschliste gesetzt hast, zu speichern."
3937
+
3938
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3939
  msgid ""
3940
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
4158
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4159
  "auf dem Standort deiner Besucher basiert."
4160
 
4161
+ #. translators:
4162
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
4163
+ msgid ""
4164
+ "Please do not forget to activate the option <a href=\"%s\" target=\"_blank"
4165
+ "\">Anonymize IP Addresses</a> to comply with the GDPR."
4166
+ msgstr ""
4167
+ "Bitte vergiss nicht, die Option <a href=\"%s\" target=\"_blank\">IP-Adressen "
4168
+ "anonymisieren</a> zu aktivieren, um der GDPR gerecht zu werden."
4169
+
4170
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4171
  msgid ""
4172
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
5331
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5332
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5333
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
5334
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5335
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5336
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5337
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
5372
  msgid "Conversion Tracking and Remarketing"
5373
  msgstr "Conversion Tracking und Remarketing"
5374
 
5375
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5376
+ msgid "HappyForms"
5377
+ msgstr "HappyForms"
5378
+
5379
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5380
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5381
  msgid "former WP-Piwik"
5814
 
5815
  #: inc/view/customize/banner/BasicLayout.php:1
5816
  #: inc/view/customize/banner/BodyDesign.php:1
5817
+ #: inc/view/customize/banner/Mobile.php:1
5818
  msgid "Center"
5819
  msgstr "Zentriert"
5820
 
5839
  msgstr "Definiere den äußeren Abstand des Dialogs."
5840
 
5841
  #: inc/view/customize/banner/BasicLayout.php:1
5842
+ #: inc/view/customize/banner/Mobile.php:1
5843
  msgid "Top"
5844
  msgstr "Oben"
5845
 
5846
  #: inc/view/customize/banner/BasicLayout.php:1
5847
+ #: inc/view/customize/banner/Mobile.php:1
5848
  msgid "Bottom"
5849
  msgstr "Unten"
5850
 
6581
  msgid "Please fill in a valid URL!"
6582
  msgstr "Bitte trage eine gültige URL ein!"
6583
 
6584
+ #: inc/view/customize/banner/Mobile.php:1
6585
+ msgid "Mobile experience"
6586
+ msgstr "Mobile Nutzererfahrung"
6587
+
6588
+ #: inc/view/customize/banner/Mobile.php:1
6589
+ msgid "Maximum height"
6590
+ msgstr "Maximale Höhe (px)"
6591
+
6592
+ #: inc/view/customize/banner/Mobile.php:1
6593
+ msgid "Hide header"
6594
+ msgstr "Kopfbereich (Header) ausblenden"
6595
+
6596
+ #: inc/view/customize/banner/Mobile.php:1
6597
+ msgid "Alignment"
6598
+ msgstr "Ausrichtung"
6599
+
6600
+ #: inc/view/customize/banner/Mobile.php:1
6601
+ msgid "Scaling factor"
6602
+ msgstr "Skalierungsfaktor"
6603
+
6604
+ #: inc/view/customize/banner/Mobile.php:1
6605
+ msgid ""
6606
+ "Elements in the cookie banner can be scaled smaller or larger relative to "
6607
+ "the desktop view. Make sure that all elements are still clearly legible so "
6608
+ "that you obtain valid consents."
6609
+ msgstr ""
6610
+ "Die Elemente im Cookie Banner können im Verhältnis zur Desktop-Ansicht "
6611
+ "kleiner oder größer skaliert werden. Achte darauf, dass alle Elemente "
6612
+ "weiterhin gut lesbar sind, damit du wirksame Einwilligungen einholst."
6613
+
6614
+ #: inc/view/customize/banner/Mobile.php:1
6615
+ msgid "Vertical spacing scaling factor"
6616
+ msgstr "Skalierungsfaktor für vertikale Abstände"
6617
+
6618
+ #: inc/view/customize/banner/Mobile.php:1
6619
+ msgid ""
6620
+ "The vertical distance between elements can be decreased or increased "
6621
+ "relative to the desktop view."
6622
+ msgstr ""
6623
+ "Der vertikale Abstand zwischen Elementen kann im Verhältnis zur Desktop-"
6624
+ "Ansicht verkleinert oder vergrößert werden."
6625
+
6626
  #: inc/view/customize/banner/Texts.php:1
6627
  msgid "\"Accept all\" button/link"
6628
  msgstr "\"Alle akzeptieren”-Button/Link"
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: 2021-12-20 14:58+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
@@ -548,6 +548,7 @@ msgstr "Essenziell"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
551
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
552
  #: inc/overrides/pro/presets/TypeformPreset.php:1
553
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -612,6 +613,8 @@ msgstr "Statistik"
612
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
613
  #: inc/overrides/pro/presets/HotjarPreset.php:1
614
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
615
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
616
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
617
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -1447,6 +1450,7 @@ msgstr "ActiveCampaign Formular mit Google reCAPTCHA"
1447
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1448
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1449
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
1450
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -1524,6 +1528,14 @@ msgstr ""
1524
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1525
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1526
 
 
 
 
 
 
 
 
 
1527
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1528
  msgid ""
1529
  "The tour, shown on a map from Komoot, could not be loaded because you did "
@@ -2789,6 +2801,61 @@ msgstr ""
2789
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2790
  "der Zahlungsabwicklung zu verknüpfen."
2791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2792
  #: inc/overrides/pro/presets/KomootPreset.php:1
2793
  msgid ""
2794
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
@@ -3857,6 +3924,17 @@ msgstr ""
3857
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3858
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3859
 
 
 
 
 
 
 
 
 
 
 
 
3860
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3861
  msgid ""
3862
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
@@ -4080,6 +4158,15 @@ msgstr ""
4080
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4081
  "auf dem Standort deiner Besucher basiert."
4082
 
 
 
 
 
 
 
 
 
 
4083
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4084
  msgid ""
4085
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
@@ -5244,6 +5331,7 @@ msgstr "ActiveCampaign Form"
5244
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5245
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5246
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
5247
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5248
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5249
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -5284,6 +5372,10 @@ msgstr "Form Maker"
5284
  msgid "Conversion Tracking and Remarketing"
5285
  msgstr "Conversion Tracking und Remarketing"
5286
 
 
 
 
 
5287
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5288
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5289
  msgid "former WP-Piwik"
@@ -5722,6 +5814,7 @@ msgstr "Mitte links"
5722
 
5723
  #: inc/view/customize/banner/BasicLayout.php:1
5724
  #: inc/view/customize/banner/BodyDesign.php:1
 
5725
  msgid "Center"
5726
  msgstr "Zentriert"
5727
 
@@ -5746,10 +5839,12 @@ msgid "Define outer distance of the dialog."
5746
  msgstr "Definiere den äußeren Abstand des Dialogs."
5747
 
5748
  #: inc/view/customize/banner/BasicLayout.php:1
 
5749
  msgid "Top"
5750
  msgstr "Oben"
5751
 
5752
  #: inc/view/customize/banner/BasicLayout.php:1
 
5753
  msgid "Bottom"
5754
  msgstr "Unten"
5755
 
@@ -6486,6 +6581,48 @@ msgstr ""
6486
  msgid "Please fill in a valid URL!"
6487
  msgstr "Bitte trage eine gültige URL ein!"
6488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6489
  #: inc/view/customize/banner/Texts.php:1
6490
  msgid "\"Accept all\" button/link"
6491
  msgstr "\"Alle akzeptieren”-Button/Link"
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-01-17 10:19+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
551
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
552
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
553
  #: inc/overrides/pro/presets/TypeformPreset.php:1
554
  #: inc/overrides/pro/presets/UserlikePreset.php:1
613
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
614
  #: inc/overrides/pro/presets/HotjarPreset.php:1
615
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
616
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
617
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
618
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
619
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
620
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
1450
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
1453
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1454
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1455
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
1528
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1529
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1530
 
1531
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1532
+ msgid "HappyForms with Google reCAPTCHA"
1533
+ msgstr "HappyForms mit Google reCAPTCHA"
1534
+
1535
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1536
+ msgid "Kliken and Google Ads"
1537
+ msgstr "Kliken und Google Ads"
1538
+
1539
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1540
  msgid ""
1541
  "The tour, shown on a map from Komoot, could not be loaded because you did "
2801
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2802
  "der Zahlungsabwicklung zu verknüpfen."
2803
 
2804
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
2805
+ msgid ""
2806
+ "Klaviyo is a service for collecting detailed statistics about user behavior "
2807
+ "on the website. This includes, details about the devices used to access the "
2808
+ "websites (such as the IP address, operating system and web browser), date "
2809
+ "and time of visit, details about how people interact with the emails sent by "
2810
+ "this website, websites from which visitors were redirected to this website, "
2811
+ "and search terms in the search of this website. In addition, contact "
2812
+ "information and purchase history of buyers will be transmitted to Klaviyo. "
2813
+ "Klaviyo uses the collected data to differentiate target groups via its "
2814
+ "marketing platform and to send personalized marketing messages via email and "
2815
+ "SMS. Klaviyo may also collect collected personal data for its own business "
2816
+ "purposes, such as business contact information of potential customers or "
2817
+ "resumes of job applicants. Cookies are used to assign a unique "
2818
+ "identification number to the visitor and to be able to identify them again "
2819
+ "over several page requests and to be able to link the data of several page "
2820
+ "requests."
2821
+ msgstr ""
2822
+ "Klaviyo ist ein Service zum Sammeln detaillierter Statistiken über das "
2823
+ "Nutzerverhalten auf der Website. Dazu gehören Angaben zu den Geräten, die "
2824
+ "für den Zugriff auf die Websites verwendet werden (z. B. IP-Adresse, "
2825
+ "Betriebssystem und Webbrowser), Datum und Uhrzeit des Besuchs, Angaben dazu, "
2826
+ "wie Personen mit den von dieser Website gesendeten E-Mails interagieren, "
2827
+ "Websites, von denen Besucher auf diese Website verwiesen wurden, und "
2828
+ "Suchbegriffe bei der Suche auf dieser Website. Darüber hinaus werden "
2829
+ "Kontaktinformationen und die Kaufhistorie der Käufer/innen an Klaviyo "
2830
+ "übermittelt. Klaviyo nutzt die gesammelten Daten, um über seine "
2831
+ "Marketingplattform Zielgruppen zu differenzieren und personalisierte "
2832
+ "Marketingnachrichten per E-Mail und SMS zu versenden. Klaviyo kann die "
2833
+ "gesammelten personenbezogenen Daten auch für seine eigenen Geschäftszwecke "
2834
+ "nutzen, z. B. für geschäftliche Kontaktinformationen von potenziellen Kunden "
2835
+ "oder Lebensläufe von Stellenbewerbern. Cookies werden verwendet, um dem "
2836
+ "Besucher eine eindeutige Identifikationsnummer zuzuweisen und ihn über "
2837
+ "mehrere Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2838
+ "Seitenaufrufe miteinander verknüpfen zu können."
2839
+
2840
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
2841
+ msgid ""
2842
+ "Kliken or also called Kliken Analytics is a service for creating detailed "
2843
+ "statistics about user behavior on the website. This detailed user profile "
2844
+ "may be forwarded to the Google Ads service in order to be able to optimally "
2845
+ "place ads on the Google Ads network for this website. Cookies are used to "
2846
+ "assign a unique identification number to the visitor and to be able to "
2847
+ "identify them again over several page requests and to be able to link the "
2848
+ "data of several page requests."
2849
+ msgstr ""
2850
+ "Kliken oder auch Kliken Analytics genannt ist ein Service zur Erstellung "
2851
+ "detaillierter Statistiken über das Nutzerverhalten auf der Website. Dieses "
2852
+ "detaillierte Nutzerprofil kann an den Google Ads Service weitergeleitet "
2853
+ "werden, um Anzeigen im Google Ads Netzwerk für diese Website optimal "
2854
+ "platzieren zu können. Cookies werden verwendet, um dem Besucher eine "
2855
+ "eindeutige Identifikationsnummer zuzuweisen und ihn über mehrere "
2856
+ "Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2857
+ "Seitenaufrufe miteinander verknüpfen zu können."
2858
+
2859
  #: inc/overrides/pro/presets/KomootPreset.php:1
2860
  msgid ""
2861
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
3924
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3925
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3926
 
3927
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
3928
+ msgid ""
3929
+ "TI WooCommerce Wishlist allows you to save products to a wishlist so you can "
3930
+ "remember them for later. Cookies are used to remember the products and the "
3931
+ "number of products you put on the wishlist."
3932
+ msgstr ""
3933
+ "TI WooCommerce Wishlist ermöglicht es dir, Produkte auf einer Wunschliste zu "
3934
+ "speichern, damit du sie dir für später merken kannst. Cookies werden "
3935
+ "verwendet, um die Produkte und die Anzahl der Produkte, die du auf die "
3936
+ "Wunschliste gesetzt hast, zu speichern."
3937
+
3938
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3939
  msgid ""
3940
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
4158
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4159
  "auf dem Standort deiner Besucher basiert."
4160
 
4161
+ #. translators:
4162
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
4163
+ msgid ""
4164
+ "Please do not forget to activate the option <a href=\"%s\" target=\"_blank"
4165
+ "\">Anonymize IP Addresses</a> to comply with the GDPR."
4166
+ msgstr ""
4167
+ "Bitte vergiss nicht, die Option <a href=\"%s\" target=\"_blank\">IP-Adressen "
4168
+ "anonymisieren</a> zu aktivieren, um der GDPR gerecht zu werden."
4169
+
4170
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4171
  msgid ""
4172
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
5331
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5332
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5333
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
5334
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5335
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5336
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5337
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
5372
  msgid "Conversion Tracking and Remarketing"
5373
  msgstr "Conversion Tracking und Remarketing"
5374
 
5375
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5376
+ msgid "HappyForms"
5377
+ msgstr "HappyForms"
5378
+
5379
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5380
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5381
  msgid "former WP-Piwik"
5814
 
5815
  #: inc/view/customize/banner/BasicLayout.php:1
5816
  #: inc/view/customize/banner/BodyDesign.php:1
5817
+ #: inc/view/customize/banner/Mobile.php:1
5818
  msgid "Center"
5819
  msgstr "Zentriert"
5820
 
5839
  msgstr "Definiere den äußeren Abstand des Dialogs."
5840
 
5841
  #: inc/view/customize/banner/BasicLayout.php:1
5842
+ #: inc/view/customize/banner/Mobile.php:1
5843
  msgid "Top"
5844
  msgstr "Oben"
5845
 
5846
  #: inc/view/customize/banner/BasicLayout.php:1
5847
+ #: inc/view/customize/banner/Mobile.php:1
5848
  msgid "Bottom"
5849
  msgstr "Unten"
5850
 
6581
  msgid "Please fill in a valid URL!"
6582
  msgstr "Bitte trage eine gültige URL ein!"
6583
 
6584
+ #: inc/view/customize/banner/Mobile.php:1
6585
+ msgid "Mobile experience"
6586
+ msgstr "Mobile Nutzererfahrung"
6587
+
6588
+ #: inc/view/customize/banner/Mobile.php:1
6589
+ msgid "Maximum height"
6590
+ msgstr "Maximale Höhe (px)"
6591
+
6592
+ #: inc/view/customize/banner/Mobile.php:1
6593
+ msgid "Hide header"
6594
+ msgstr "Kopfbereich (Header) ausblenden"
6595
+
6596
+ #: inc/view/customize/banner/Mobile.php:1
6597
+ msgid "Alignment"
6598
+ msgstr "Ausrichtung"
6599
+
6600
+ #: inc/view/customize/banner/Mobile.php:1
6601
+ msgid "Scaling factor"
6602
+ msgstr "Skalierungsfaktor"
6603
+
6604
+ #: inc/view/customize/banner/Mobile.php:1
6605
+ msgid ""
6606
+ "Elements in the cookie banner can be scaled smaller or larger relative to "
6607
+ "the desktop view. Make sure that all elements are still clearly legible so "
6608
+ "that you obtain valid consents."
6609
+ msgstr ""
6610
+ "Die Elemente im Cookie Banner können im Verhältnis zur Desktop-Ansicht "
6611
+ "kleiner oder größer skaliert werden. Achte darauf, dass alle Elemente "
6612
+ "weiterhin gut lesbar sind, damit du wirksame Einwilligungen einholst."
6613
+
6614
+ #: inc/view/customize/banner/Mobile.php:1
6615
+ msgid "Vertical spacing scaling factor"
6616
+ msgstr "Skalierungsfaktor für vertikale Abstände"
6617
+
6618
+ #: inc/view/customize/banner/Mobile.php:1
6619
+ msgid ""
6620
+ "The vertical distance between elements can be decreased or increased "
6621
+ "relative to the desktop view."
6622
+ msgstr ""
6623
+ "Der vertikale Abstand zwischen Elementen kann im Verhältnis zur Desktop-"
6624
+ "Ansicht verkleinert oder vergrößert werden."
6625
+
6626
  #: inc/view/customize/banner/Texts.php:1
6627
  msgid "\"Accept all\" button/link"
6628
  msgstr "\"Alle akzeptieren”-Button/Link"
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: 2021-12-20 14:58+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
@@ -548,6 +548,7 @@ msgstr "Essenziell"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
551
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
552
  #: inc/overrides/pro/presets/TypeformPreset.php:1
553
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -612,6 +613,8 @@ msgstr "Statistik"
612
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
613
  #: inc/overrides/pro/presets/HotjarPreset.php:1
614
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
615
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
616
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
617
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -1447,6 +1450,7 @@ msgstr "ActiveCampaign Formular mit Google reCAPTCHA"
1447
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1448
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1449
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
1450
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -1524,6 +1528,14 @@ msgstr ""
1524
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1525
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1526
 
 
 
 
 
 
 
 
 
1527
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1528
  msgid ""
1529
  "The tour, shown on a map from Komoot, could not be loaded because you did "
@@ -2789,6 +2801,61 @@ msgstr ""
2789
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2790
  "der Zahlungsabwicklung zu verknüpfen."
2791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2792
  #: inc/overrides/pro/presets/KomootPreset.php:1
2793
  msgid ""
2794
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
@@ -3857,6 +3924,17 @@ msgstr ""
3857
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3858
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3859
 
 
 
 
 
 
 
 
 
 
 
 
3860
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3861
  msgid ""
3862
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
@@ -4080,6 +4158,15 @@ msgstr ""
4080
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4081
  "auf dem Standort deiner Besucher basiert."
4082
 
 
 
 
 
 
 
 
 
 
4083
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4084
  msgid ""
4085
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
@@ -5244,6 +5331,7 @@ msgstr "ActiveCampaign Form"
5244
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5245
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5246
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
5247
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5248
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5249
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -5284,6 +5372,10 @@ msgstr "Form Maker"
5284
  msgid "Conversion Tracking and Remarketing"
5285
  msgstr "Conversion Tracking und Remarketing"
5286
 
 
 
 
 
5287
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5288
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5289
  msgid "former WP-Piwik"
@@ -5722,6 +5814,7 @@ msgstr "Mitte links"
5722
 
5723
  #: inc/view/customize/banner/BasicLayout.php:1
5724
  #: inc/view/customize/banner/BodyDesign.php:1
 
5725
  msgid "Center"
5726
  msgstr "Zentriert"
5727
 
@@ -5746,10 +5839,12 @@ msgid "Define outer distance of the dialog."
5746
  msgstr "Definiere den äußeren Abstand des Dialogs."
5747
 
5748
  #: inc/view/customize/banner/BasicLayout.php:1
 
5749
  msgid "Top"
5750
  msgstr "Oben"
5751
 
5752
  #: inc/view/customize/banner/BasicLayout.php:1
 
5753
  msgid "Bottom"
5754
  msgstr "Unten"
5755
 
@@ -6486,6 +6581,48 @@ msgstr ""
6486
  msgid "Please fill in a valid URL!"
6487
  msgstr "Bitte trage eine gültige URL ein!"
6488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6489
  #: inc/view/customize/banner/Texts.php:1
6490
  msgid "\"Accept all\" button/link"
6491
  msgstr "\"Alle akzeptieren”-Button/Link"
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-01-17 10:19+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
551
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
552
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
553
  #: inc/overrides/pro/presets/TypeformPreset.php:1
554
  #: inc/overrides/pro/presets/UserlikePreset.php:1
613
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
614
  #: inc/overrides/pro/presets/HotjarPreset.php:1
615
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
616
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
617
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
618
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
619
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
620
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
1450
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
1453
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1454
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1455
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
1528
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1529
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1530
 
1531
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1532
+ msgid "HappyForms with Google reCAPTCHA"
1533
+ msgstr "HappyForms mit Google reCAPTCHA"
1534
+
1535
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1536
+ msgid "Kliken and Google Ads"
1537
+ msgstr "Kliken und Google Ads"
1538
+
1539
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1540
  msgid ""
1541
  "The tour, shown on a map from Komoot, could not be loaded because you did "
2801
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2802
  "der Zahlungsabwicklung zu verknüpfen."
2803
 
2804
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
2805
+ msgid ""
2806
+ "Klaviyo is a service for collecting detailed statistics about user behavior "
2807
+ "on the website. This includes, details about the devices used to access the "
2808
+ "websites (such as the IP address, operating system and web browser), date "
2809
+ "and time of visit, details about how people interact with the emails sent by "
2810
+ "this website, websites from which visitors were redirected to this website, "
2811
+ "and search terms in the search of this website. In addition, contact "
2812
+ "information and purchase history of buyers will be transmitted to Klaviyo. "
2813
+ "Klaviyo uses the collected data to differentiate target groups via its "
2814
+ "marketing platform and to send personalized marketing messages via email and "
2815
+ "SMS. Klaviyo may also collect collected personal data for its own business "
2816
+ "purposes, such as business contact information of potential customers or "
2817
+ "resumes of job applicants. Cookies are used to assign a unique "
2818
+ "identification number to the visitor and to be able to identify them again "
2819
+ "over several page requests and to be able to link the data of several page "
2820
+ "requests."
2821
+ msgstr ""
2822
+ "Klaviyo ist ein Service zum Sammeln detaillierter Statistiken über das "
2823
+ "Nutzerverhalten auf der Website. Dazu gehören Angaben zu den Geräten, die "
2824
+ "für den Zugriff auf die Websites verwendet werden (z. B. IP-Adresse, "
2825
+ "Betriebssystem und Webbrowser), Datum und Uhrzeit des Besuchs, Angaben dazu, "
2826
+ "wie Personen mit den von dieser Website gesendeten E-Mails interagieren, "
2827
+ "Websites, von denen Besucher auf diese Website verwiesen wurden, und "
2828
+ "Suchbegriffe bei der Suche auf dieser Website. Darüber hinaus werden "
2829
+ "Kontaktinformationen und die Kaufhistorie der Käufer/innen an Klaviyo "
2830
+ "übermittelt. Klaviyo nutzt die gesammelten Daten, um über seine "
2831
+ "Marketingplattform Zielgruppen zu differenzieren und personalisierte "
2832
+ "Marketingnachrichten per E-Mail und SMS zu versenden. Klaviyo kann die "
2833
+ "gesammelten personenbezogenen Daten auch für seine eigenen Geschäftszwecke "
2834
+ "nutzen, z. B. für geschäftliche Kontaktinformationen von potenziellen Kunden "
2835
+ "oder Lebensläufe von Stellenbewerbern. Cookies werden verwendet, um dem "
2836
+ "Besucher eine eindeutige Identifikationsnummer zuzuweisen und ihn über "
2837
+ "mehrere Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2838
+ "Seitenaufrufe miteinander verknüpfen zu können."
2839
+
2840
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
2841
+ msgid ""
2842
+ "Kliken or also called Kliken Analytics is a service for creating detailed "
2843
+ "statistics about user behavior on the website. This detailed user profile "
2844
+ "may be forwarded to the Google Ads service in order to be able to optimally "
2845
+ "place ads on the Google Ads network for this website. Cookies are used to "
2846
+ "assign a unique identification number to the visitor and to be able to "
2847
+ "identify them again over several page requests and to be able to link the "
2848
+ "data of several page requests."
2849
+ msgstr ""
2850
+ "Kliken oder auch Kliken Analytics genannt ist ein Service zur Erstellung "
2851
+ "detaillierter Statistiken über das Nutzerverhalten auf der Website. Dieses "
2852
+ "detaillierte Nutzerprofil kann an den Google Ads Service weitergeleitet "
2853
+ "werden, um Anzeigen im Google Ads Netzwerk für diese Website optimal "
2854
+ "platzieren zu können. Cookies werden verwendet, um dem Besucher eine "
2855
+ "eindeutige Identifikationsnummer zuzuweisen und ihn über mehrere "
2856
+ "Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2857
+ "Seitenaufrufe miteinander verknüpfen zu können."
2858
+
2859
  #: inc/overrides/pro/presets/KomootPreset.php:1
2860
  msgid ""
2861
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
3924
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3925
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3926
 
3927
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
3928
+ msgid ""
3929
+ "TI WooCommerce Wishlist allows you to save products to a wishlist so you can "
3930
+ "remember them for later. Cookies are used to remember the products and the "
3931
+ "number of products you put on the wishlist."
3932
+ msgstr ""
3933
+ "TI WooCommerce Wishlist ermöglicht es dir, Produkte auf einer Wunschliste zu "
3934
+ "speichern, damit du sie dir für später merken kannst. Cookies werden "
3935
+ "verwendet, um die Produkte und die Anzahl der Produkte, die du auf die "
3936
+ "Wunschliste gesetzt hast, zu speichern."
3937
+
3938
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3939
  msgid ""
3940
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
4158
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4159
  "auf dem Standort deiner Besucher basiert."
4160
 
4161
+ #. translators:
4162
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
4163
+ msgid ""
4164
+ "Please do not forget to activate the option <a href=\"%s\" target=\"_blank"
4165
+ "\">Anonymize IP Addresses</a> to comply with the GDPR."
4166
+ msgstr ""
4167
+ "Bitte vergiss nicht, die Option <a href=\"%s\" target=\"_blank\">IP-Adressen "
4168
+ "anonymisieren</a> zu aktivieren, um der GDPR gerecht zu werden."
4169
+
4170
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4171
  msgid ""
4172
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
5331
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5332
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5333
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
5334
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5335
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5336
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5337
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
5372
  msgid "Conversion Tracking and Remarketing"
5373
  msgstr "Conversion Tracking und Remarketing"
5374
 
5375
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5376
+ msgid "HappyForms"
5377
+ msgstr "HappyForms"
5378
+
5379
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5380
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5381
  msgid "former WP-Piwik"
5814
 
5815
  #: inc/view/customize/banner/BasicLayout.php:1
5816
  #: inc/view/customize/banner/BodyDesign.php:1
5817
+ #: inc/view/customize/banner/Mobile.php:1
5818
  msgid "Center"
5819
  msgstr "Zentriert"
5820
 
5839
  msgstr "Definiere den äußeren Abstand des Dialogs."
5840
 
5841
  #: inc/view/customize/banner/BasicLayout.php:1
5842
+ #: inc/view/customize/banner/Mobile.php:1
5843
  msgid "Top"
5844
  msgstr "Oben"
5845
 
5846
  #: inc/view/customize/banner/BasicLayout.php:1
5847
+ #: inc/view/customize/banner/Mobile.php:1
5848
  msgid "Bottom"
5849
  msgstr "Unten"
5850
 
6581
  msgid "Please fill in a valid URL!"
6582
  msgstr "Bitte trage eine gültige URL ein!"
6583
 
6584
+ #: inc/view/customize/banner/Mobile.php:1
6585
+ msgid "Mobile experience"
6586
+ msgstr "Mobile Nutzererfahrung"
6587
+
6588
+ #: inc/view/customize/banner/Mobile.php:1
6589
+ msgid "Maximum height"
6590
+ msgstr "Maximale Höhe (px)"
6591
+
6592
+ #: inc/view/customize/banner/Mobile.php:1
6593
+ msgid "Hide header"
6594
+ msgstr "Kopfbereich (Header) ausblenden"
6595
+
6596
+ #: inc/view/customize/banner/Mobile.php:1
6597
+ msgid "Alignment"
6598
+ msgstr "Ausrichtung"
6599
+
6600
+ #: inc/view/customize/banner/Mobile.php:1
6601
+ msgid "Scaling factor"
6602
+ msgstr "Skalierungsfaktor"
6603
+
6604
+ #: inc/view/customize/banner/Mobile.php:1
6605
+ msgid ""
6606
+ "Elements in the cookie banner can be scaled smaller or larger relative to "
6607
+ "the desktop view. Make sure that all elements are still clearly legible so "
6608
+ "that you obtain valid consents."
6609
+ msgstr ""
6610
+ "Die Elemente im Cookie Banner können im Verhältnis zur Desktop-Ansicht "
6611
+ "kleiner oder größer skaliert werden. Achte darauf, dass alle Elemente "
6612
+ "weiterhin gut lesbar sind, damit du wirksame Einwilligungen einholst."
6613
+
6614
+ #: inc/view/customize/banner/Mobile.php:1
6615
+ msgid "Vertical spacing scaling factor"
6616
+ msgstr "Skalierungsfaktor für vertikale Abstände"
6617
+
6618
+ #: inc/view/customize/banner/Mobile.php:1
6619
+ msgid ""
6620
+ "The vertical distance between elements can be decreased or increased "
6621
+ "relative to the desktop view."
6622
+ msgstr ""
6623
+ "Der vertikale Abstand zwischen Elementen kann im Verhältnis zur Desktop-"
6624
+ "Ansicht verkleinert oder vergrößert werden."
6625
+
6626
  #: inc/view/customize/banner/Texts.php:1
6627
  msgid "\"Accept all\" button/link"
6628
  msgstr "\"Alle akzeptieren”-Button/Link"
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: 2021-12-20 14:58+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
@@ -548,6 +548,7 @@ msgstr "Essenziell"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
551
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
552
  #: inc/overrides/pro/presets/TypeformPreset.php:1
553
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -612,6 +613,8 @@ msgstr "Statistik"
612
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
613
  #: inc/overrides/pro/presets/HotjarPreset.php:1
614
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
615
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
616
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
617
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -1447,6 +1450,7 @@ msgstr "ActiveCampaign Formular mit Google reCAPTCHA"
1447
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1448
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1449
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
1450
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -1524,6 +1528,14 @@ msgstr ""
1524
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1525
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1526
 
 
 
 
 
 
 
 
 
1527
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1528
  msgid ""
1529
  "The tour, shown on a map from Komoot, could not be loaded because you did "
@@ -2789,6 +2801,61 @@ msgstr ""
2789
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2790
  "der Zahlungsabwicklung zu verknüpfen."
2791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2792
  #: inc/overrides/pro/presets/KomootPreset.php:1
2793
  msgid ""
2794
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
@@ -3857,6 +3924,17 @@ msgstr ""
3857
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3858
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3859
 
 
 
 
 
 
 
 
 
 
 
 
3860
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3861
  msgid ""
3862
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
@@ -4080,6 +4158,15 @@ msgstr ""
4080
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4081
  "auf dem Standort deiner Besucher basiert."
4082
 
 
 
 
 
 
 
 
 
 
4083
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4084
  msgid ""
4085
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
@@ -5244,6 +5331,7 @@ msgstr "ActiveCampaign Form"
5244
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5245
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5246
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
5247
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5248
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5249
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -5284,6 +5372,10 @@ msgstr "Form Maker"
5284
  msgid "Conversion Tracking and Remarketing"
5285
  msgstr "Conversion Tracking und Remarketing"
5286
 
 
 
 
 
5287
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5288
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5289
  msgid "former WP-Piwik"
@@ -5722,6 +5814,7 @@ msgstr "Mitte links"
5722
 
5723
  #: inc/view/customize/banner/BasicLayout.php:1
5724
  #: inc/view/customize/banner/BodyDesign.php:1
 
5725
  msgid "Center"
5726
  msgstr "Zentriert"
5727
 
@@ -5746,10 +5839,12 @@ msgid "Define outer distance of the dialog."
5746
  msgstr "Definiere den äußeren Abstand des Dialogs."
5747
 
5748
  #: inc/view/customize/banner/BasicLayout.php:1
 
5749
  msgid "Top"
5750
  msgstr "Oben"
5751
 
5752
  #: inc/view/customize/banner/BasicLayout.php:1
 
5753
  msgid "Bottom"
5754
  msgstr "Unten"
5755
 
@@ -6486,6 +6581,48 @@ msgstr ""
6486
  msgid "Please fill in a valid URL!"
6487
  msgstr "Bitte trage eine gültige URL ein!"
6488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6489
  #: inc/view/customize/banner/Texts.php:1
6490
  msgid "\"Accept all\" button/link"
6491
  msgstr "\"Alle akzeptieren”-Button/Link"
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-01-17 10:19+0000\n"
6
  "Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
7
  "Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
8
  "cookie-banner-backend-php/develop/de/>\n"
548
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
549
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
550
  #: inc/overrides/pro/presets/TikTokPreset.php:1
551
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
552
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
553
  #: inc/overrides/pro/presets/TypeformPreset.php:1
554
  #: inc/overrides/pro/presets/UserlikePreset.php:1
613
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
614
  #: inc/overrides/pro/presets/HotjarPreset.php:1
615
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
616
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
617
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
618
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
619
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
620
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
1450
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1451
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1452
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
1453
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1454
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1455
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
1528
  "Wir würden dir gerne Attraktionen, Touren und Führungen von GetYourGuide "
1529
  "zeigen. Dafür musst du uns aber erlauben, den GetYourGuide Service zu nutzen."
1530
 
1531
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1532
+ msgid "HappyForms with Google reCAPTCHA"
1533
+ msgstr "HappyForms mit Google reCAPTCHA"
1534
+
1535
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1536
+ msgid "Kliken and Google Ads"
1537
+ msgstr "Kliken und Google Ads"
1538
+
1539
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1540
  msgid ""
1541
  "The tour, shown on a map from Komoot, could not be loaded because you did "
2801
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2802
  "der Zahlungsabwicklung zu verknüpfen."
2803
 
2804
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
2805
+ msgid ""
2806
+ "Klaviyo is a service for collecting detailed statistics about user behavior "
2807
+ "on the website. This includes, details about the devices used to access the "
2808
+ "websites (such as the IP address, operating system and web browser), date "
2809
+ "and time of visit, details about how people interact with the emails sent by "
2810
+ "this website, websites from which visitors were redirected to this website, "
2811
+ "and search terms in the search of this website. In addition, contact "
2812
+ "information and purchase history of buyers will be transmitted to Klaviyo. "
2813
+ "Klaviyo uses the collected data to differentiate target groups via its "
2814
+ "marketing platform and to send personalized marketing messages via email and "
2815
+ "SMS. Klaviyo may also collect collected personal data for its own business "
2816
+ "purposes, such as business contact information of potential customers or "
2817
+ "resumes of job applicants. Cookies are used to assign a unique "
2818
+ "identification number to the visitor and to be able to identify them again "
2819
+ "over several page requests and to be able to link the data of several page "
2820
+ "requests."
2821
+ msgstr ""
2822
+ "Klaviyo ist ein Service zum Sammeln detaillierter Statistiken über das "
2823
+ "Nutzerverhalten auf der Website. Dazu gehören Angaben zu den Geräten, die "
2824
+ "für den Zugriff auf die Websites verwendet werden (z. B. IP-Adresse, "
2825
+ "Betriebssystem und Webbrowser), Datum und Uhrzeit des Besuchs, Angaben dazu, "
2826
+ "wie Personen mit den von dieser Website gesendeten E-Mails interagieren, "
2827
+ "Websites, von denen Besucher auf diese Website verwiesen wurden, und "
2828
+ "Suchbegriffe bei der Suche auf dieser Website. Darüber hinaus werden "
2829
+ "Kontaktinformationen und die Kaufhistorie der Käufer/innen an Klaviyo "
2830
+ "übermittelt. Klaviyo nutzt die gesammelten Daten, um über seine "
2831
+ "Marketingplattform Zielgruppen zu differenzieren und personalisierte "
2832
+ "Marketingnachrichten per E-Mail und SMS zu versenden. Klaviyo kann die "
2833
+ "gesammelten personenbezogenen Daten auch für seine eigenen Geschäftszwecke "
2834
+ "nutzen, z. B. für geschäftliche Kontaktinformationen von potenziellen Kunden "
2835
+ "oder Lebensläufe von Stellenbewerbern. Cookies werden verwendet, um dem "
2836
+ "Besucher eine eindeutige Identifikationsnummer zuzuweisen und ihn über "
2837
+ "mehrere Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2838
+ "Seitenaufrufe miteinander verknüpfen zu können."
2839
+
2840
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
2841
+ msgid ""
2842
+ "Kliken or also called Kliken Analytics is a service for creating detailed "
2843
+ "statistics about user behavior on the website. This detailed user profile "
2844
+ "may be forwarded to the Google Ads service in order to be able to optimally "
2845
+ "place ads on the Google Ads network for this website. Cookies are used to "
2846
+ "assign a unique identification number to the visitor and to be able to "
2847
+ "identify them again over several page requests and to be able to link the "
2848
+ "data of several page requests."
2849
+ msgstr ""
2850
+ "Kliken oder auch Kliken Analytics genannt ist ein Service zur Erstellung "
2851
+ "detaillierter Statistiken über das Nutzerverhalten auf der Website. Dieses "
2852
+ "detaillierte Nutzerprofil kann an den Google Ads Service weitergeleitet "
2853
+ "werden, um Anzeigen im Google Ads Netzwerk für diese Website optimal "
2854
+ "platzieren zu können. Cookies werden verwendet, um dem Besucher eine "
2855
+ "eindeutige Identifikationsnummer zuzuweisen und ihn über mehrere "
2856
+ "Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2857
+ "Seitenaufrufe miteinander verknüpfen zu können."
2858
+
2859
  #: inc/overrides/pro/presets/KomootPreset.php:1
2860
  msgid ""
2861
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
3924
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3925
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=de-DE"
3926
 
3927
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
3928
+ msgid ""
3929
+ "TI WooCommerce Wishlist allows you to save products to a wishlist so you can "
3930
+ "remember them for later. Cookies are used to remember the products and the "
3931
+ "number of products you put on the wishlist."
3932
+ msgstr ""
3933
+ "TI WooCommerce Wishlist ermöglicht es dir, Produkte auf einer Wunschliste zu "
3934
+ "speichern, damit du sie dir für später merken kannst. Cookies werden "
3935
+ "verwendet, um die Produkte und die Anzahl der Produkte, die du auf die "
3936
+ "Wunschliste gesetzt hast, zu speichern."
3937
+
3938
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3939
  msgid ""
3940
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
4158
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4159
  "auf dem Standort deiner Besucher basiert."
4160
 
4161
+ #. translators:
4162
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
4163
+ msgid ""
4164
+ "Please do not forget to activate the option <a href=\"%s\" target=\"_blank"
4165
+ "\">Anonymize IP Addresses</a> to comply with the GDPR."
4166
+ msgstr ""
4167
+ "Bitte vergiss nicht, die Option <a href=\"%s\" target=\"_blank\">IP-Adressen "
4168
+ "anonymisieren</a> zu aktivieren, um der GDPR gerecht zu werden."
4169
+
4170
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4171
  msgid ""
4172
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
5331
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5332
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5333
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
5334
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5335
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5336
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5337
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
5372
  msgid "Conversion Tracking and Remarketing"
5373
  msgstr "Conversion Tracking und Remarketing"
5374
 
5375
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5376
+ msgid "HappyForms"
5377
+ msgstr "HappyForms"
5378
+
5379
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5380
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5381
  msgid "former WP-Piwik"
5814
 
5815
  #: inc/view/customize/banner/BasicLayout.php:1
5816
  #: inc/view/customize/banner/BodyDesign.php:1
5817
+ #: inc/view/customize/banner/Mobile.php:1
5818
  msgid "Center"
5819
  msgstr "Zentriert"
5820
 
5839
  msgstr "Definiere den äußeren Abstand des Dialogs."
5840
 
5841
  #: inc/view/customize/banner/BasicLayout.php:1
5842
+ #: inc/view/customize/banner/Mobile.php:1
5843
  msgid "Top"
5844
  msgstr "Oben"
5845
 
5846
  #: inc/view/customize/banner/BasicLayout.php:1
5847
+ #: inc/view/customize/banner/Mobile.php:1
5848
  msgid "Bottom"
5849
  msgstr "Unten"
5850
 
6581
  msgid "Please fill in a valid URL!"
6582
  msgstr "Bitte trage eine gültige URL ein!"
6583
 
6584
+ #: inc/view/customize/banner/Mobile.php:1
6585
+ msgid "Mobile experience"
6586
+ msgstr "Mobile Nutzererfahrung"
6587
+
6588
+ #: inc/view/customize/banner/Mobile.php:1
6589
+ msgid "Maximum height"
6590
+ msgstr "Maximale Höhe (px)"
6591
+
6592
+ #: inc/view/customize/banner/Mobile.php:1
6593
+ msgid "Hide header"
6594
+ msgstr "Kopfbereich (Header) ausblenden"
6595
+
6596
+ #: inc/view/customize/banner/Mobile.php:1
6597
+ msgid "Alignment"
6598
+ msgstr "Ausrichtung"
6599
+
6600
+ #: inc/view/customize/banner/Mobile.php:1
6601
+ msgid "Scaling factor"
6602
+ msgstr "Skalierungsfaktor"
6603
+
6604
+ #: inc/view/customize/banner/Mobile.php:1
6605
+ msgid ""
6606
+ "Elements in the cookie banner can be scaled smaller or larger relative to "
6607
+ "the desktop view. Make sure that all elements are still clearly legible so "
6608
+ "that you obtain valid consents."
6609
+ msgstr ""
6610
+ "Die Elemente im Cookie Banner können im Verhältnis zur Desktop-Ansicht "
6611
+ "kleiner oder größer skaliert werden. Achte darauf, dass alle Elemente "
6612
+ "weiterhin gut lesbar sind, damit du wirksame Einwilligungen einholst."
6613
+
6614
+ #: inc/view/customize/banner/Mobile.php:1
6615
+ msgid "Vertical spacing scaling factor"
6616
+ msgstr "Skalierungsfaktor für vertikale Abstände"
6617
+
6618
+ #: inc/view/customize/banner/Mobile.php:1
6619
+ msgid ""
6620
+ "The vertical distance between elements can be decreased or increased "
6621
+ "relative to the desktop view."
6622
+ msgstr ""
6623
+ "Der vertikale Abstand zwischen Elementen kann im Verhältnis zur Desktop-"
6624
+ "Ansicht verkleinert oder vergrößert werden."
6625
+
6626
  #: inc/view/customize/banner/Texts.php:1
6627
  msgid "\"Accept all\" button/link"
6628
  msgstr "\"Alle akzeptieren”-Button/Link"
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: 2021-12-20 14: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"
@@ -551,6 +551,7 @@ msgstr "Essenziell"
551
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
552
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
553
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
554
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
555
  #: inc/overrides/pro/presets/TypeformPreset.php:1
556
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -615,6 +616,8 @@ msgstr "Statistik"
615
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
616
  #: inc/overrides/pro/presets/HotjarPreset.php:1
617
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
618
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
619
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
620
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -1452,6 +1455,7 @@ msgstr "ActiveCampaign-Formular mit Google reCAPTCHA"
1452
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1453
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1454
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
1455
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1457
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -1530,6 +1534,14 @@ msgstr ""
1530
  "zeigen. Dazu müssen Sie uns aber erlauben, den GetYourGuide-Service zu "
1531
  "nutzen."
1532
 
 
 
 
 
 
 
 
 
1533
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1534
  msgid ""
1535
  "The tour, shown on a map from Komoot, could not be loaded because you did "
@@ -2798,6 +2810,61 @@ msgstr ""
2798
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2799
  "der Zahlungsabwicklung zu verknüpfen."
2800
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2801
  #: inc/overrides/pro/presets/KomootPreset.php:1
2802
  msgid ""
2803
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
@@ -3862,6 +3929,17 @@ msgstr ""
3862
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3863
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3864
 
 
 
 
 
 
 
 
 
 
 
 
3865
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3866
  msgid ""
3867
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
@@ -4090,6 +4168,16 @@ msgstr ""
4090
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4091
  "auf dem Standort Ihrer Besucher basiert."
4092
 
 
 
 
 
 
 
 
 
 
 
4093
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4094
  msgid ""
4095
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
@@ -5254,6 +5342,7 @@ msgstr "ActiveCampaign Formular"
5254
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5255
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5256
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
5257
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5258
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5259
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -5294,6 +5383,10 @@ msgstr "Form Maker"
5294
  msgid "Conversion Tracking and Remarketing"
5295
  msgstr "Conversion Tracking und Remarketing"
5296
 
 
 
 
 
5297
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5298
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5299
  msgid "former WP-Piwik"
@@ -5732,6 +5825,7 @@ msgstr "Mitte links"
5732
 
5733
  #: inc/view/customize/banner/BasicLayout.php:1
5734
  #: inc/view/customize/banner/BodyDesign.php:1
 
5735
  msgid "Center"
5736
  msgstr "Zentriert"
5737
 
@@ -5756,10 +5850,12 @@ msgid "Define outer distance of the dialog."
5756
  msgstr "Äußeren Abstand des Dialogs definieren."
5757
 
5758
  #: inc/view/customize/banner/BasicLayout.php:1
 
5759
  msgid "Top"
5760
  msgstr "Oben"
5761
 
5762
  #: inc/view/customize/banner/BasicLayout.php:1
 
5763
  msgid "Bottom"
5764
  msgstr "Unten"
5765
 
@@ -6496,6 +6592,48 @@ msgstr ""
6496
  msgid "Please fill in a valid URL!"
6497
  msgstr "Bitte geben Sie eine gültige URL ein!"
6498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6499
  #: inc/view/customize/banner/Texts.php:1
6500
  msgid "\"Accept all\" button/link"
6501
  msgstr "„Alle akzeptieren“ Button/Link"
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-01-17 10:19+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"
551
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
552
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
553
  #: inc/overrides/pro/presets/TikTokPreset.php:1
554
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
555
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
556
  #: inc/overrides/pro/presets/TypeformPreset.php:1
557
  #: inc/overrides/pro/presets/UserlikePreset.php:1
616
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
617
  #: inc/overrides/pro/presets/HotjarPreset.php:1
618
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
619
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
620
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
621
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
622
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
623
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
1455
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
1456
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
1457
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
1458
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1459
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
1460
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
1461
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
1534
  "zeigen. Dazu müssen Sie uns aber erlauben, den GetYourGuide-Service zu "
1535
  "nutzen."
1536
 
1537
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
1538
+ msgid "HappyForms with Google reCAPTCHA"
1539
+ msgstr "HappyForms mit Google reCAPTCHA"
1540
+
1541
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1542
+ msgid "Kliken and Google Ads"
1543
+ msgstr "Kliken und Google Ads"
1544
+
1545
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1546
  msgid ""
1547
  "The tour, shown on a map from Komoot, could not be loaded because you did "
2810
  "Identifikationsnummer zu geben und um Zahlungs- und Kundendaten zum Zwecke "
2811
  "der Zahlungsabwicklung zu verknüpfen."
2812
 
2813
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
2814
+ msgid ""
2815
+ "Klaviyo is a service for collecting detailed statistics about user behavior "
2816
+ "on the website. This includes, details about the devices used to access the "
2817
+ "websites (such as the IP address, operating system and web browser), date "
2818
+ "and time of visit, details about how people interact with the emails sent by "
2819
+ "this website, websites from which visitors were redirected to this website, "
2820
+ "and search terms in the search of this website. In addition, contact "
2821
+ "information and purchase history of buyers will be transmitted to Klaviyo. "
2822
+ "Klaviyo uses the collected data to differentiate target groups via its "
2823
+ "marketing platform and to send personalized marketing messages via email and "
2824
+ "SMS. Klaviyo may also collect collected personal data for its own business "
2825
+ "purposes, such as business contact information of potential customers or "
2826
+ "resumes of job applicants. Cookies are used to assign a unique "
2827
+ "identification number to the visitor and to be able to identify them again "
2828
+ "over several page requests and to be able to link the data of several page "
2829
+ "requests."
2830
+ msgstr ""
2831
+ "Klaviyo ist ein Service zum Sammeln detaillierter Statistiken über das "
2832
+ "Nutzerverhalten auf der Website. Dazu gehören Angaben zu den Geräten, die "
2833
+ "für den Zugriff auf die Websites verwendet werden (z. B. IP-Adresse, "
2834
+ "Betriebssystem und Webbrowser), Datum und Uhrzeit des Besuchs, Angaben dazu, "
2835
+ "wie Personen mit den von dieser Website gesendeten E-Mails interagieren, "
2836
+ "Websites, von denen Besucher auf diese Website verwiesen wurden, und "
2837
+ "Suchbegriffe bei der Suche auf dieser Website. Darüber hinaus werden "
2838
+ "Kontaktinformationen und die Kaufhistorie der Käufer/innen an Klaviyo "
2839
+ "übermittelt. Klaviyo nutzt die gesammelten Daten, um über seine "
2840
+ "Marketingplattform Zielgruppen zu differenzieren und personalisierte "
2841
+ "Marketingnachrichten per E-Mail und SMS zu versenden. Klaviyo kann die "
2842
+ "gesammelten personenbezogenen Daten auch für seine eigenen Geschäftszwecke "
2843
+ "nutzen, z. B. für geschäftliche Kontaktinformationen von potenziellen Kunden "
2844
+ "oder Lebensläufe von Stellenbewerbern. Cookies werden verwendet, um dem "
2845
+ "Besucher eine eindeutige Identifikationsnummer zuzuweisen und ihn über "
2846
+ "mehrere Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2847
+ "Seitenaufrufe miteinander verknüpfen zu können."
2848
+
2849
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
2850
+ msgid ""
2851
+ "Kliken or also called Kliken Analytics is a service for creating detailed "
2852
+ "statistics about user behavior on the website. This detailed user profile "
2853
+ "may be forwarded to the Google Ads service in order to be able to optimally "
2854
+ "place ads on the Google Ads network for this website. Cookies are used to "
2855
+ "assign a unique identification number to the visitor and to be able to "
2856
+ "identify them again over several page requests and to be able to link the "
2857
+ "data of several page requests."
2858
+ msgstr ""
2859
+ "Kliken oder auch Kliken Analytics genannt ist ein Service zur Erstellung "
2860
+ "detaillierter Statistiken über das Nutzerverhalten auf der Website. Dieses "
2861
+ "detaillierte Nutzerprofil kann an den Google Ads Service weitergeleitet "
2862
+ "werden, um Anzeigen im Google Ads Netzwerk für diese Website optimal "
2863
+ "platzieren zu können. Cookies werden verwendet, um dem Besucher eine "
2864
+ "eindeutige Identifikationsnummer zuzuweisen und ihn über mehrere "
2865
+ "Seitenaufrufe hinweg wieder zu identifizieren und die Daten mehrerer "
2866
+ "Seitenaufrufe miteinander verknüpfen zu können."
2867
+
2868
  #: inc/overrides/pro/presets/KomootPreset.php:1
2869
  msgid ""
2870
  "Komoot displays maps with marked tours and pictures of these tours. Cookies "
3929
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3930
  msgstr "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
3931
 
3932
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
3933
+ msgid ""
3934
+ "TI WooCommerce Wishlist allows you to save products to a wishlist so you can "
3935
+ "remember them for later. Cookies are used to remember the products and the "
3936
+ "number of products you put on the wishlist."
3937
+ msgstr ""
3938
+ "TI WooCommerce Wishlist ermöglicht es Ihnen, Produkte auf einer Wunschliste "
3939
+ "zu speichern, damit Sie diese für später merken können. Es werden Cookies "
3940
+ "verwendet, um die Produkte und die Anzahl der Produkte zu speichern, die Sie "
3941
+ "auf den Wunschzettel gesetzt haben."
3942
+
3943
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
3944
  msgid ""
3945
  "TranslatePress is a multilingual system for WordPress websites. The cookies "
4168
  "Einstellungen</a> einen \"Voreingestellter Ort für Kunden\" ausgewählt, der "
4169
  "auf dem Standort Ihrer Besucher basiert."
4170
 
4171
+ #. translators:
4172
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
4173
+ msgid ""
4174
+ "Please do not forget to activate the option <a href=\"%s\" target=\"_blank"
4175
+ "\">Anonymize IP Addresses</a> to comply with the GDPR."
4176
+ msgstr ""
4177
+ "Bitte vergessen Sie nicht, die Option <a href=\"%s\" target=\"_blank"
4178
+ "\">Anonymisierung von IP-Adressen</a> zu aktivieren, um der DSGVO zu "
4179
+ "entsprechen."
4180
+
4181
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
4182
  msgid ""
4183
  "WooCommerce is an e-commerce shop system that allows you to buy products on "
5342
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
5343
  #: inc/presets/pro/blocker/FormidablePreset.php:1
5344
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
5345
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5346
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
5347
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
5348
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
5383
  msgid "Conversion Tracking and Remarketing"
5384
  msgstr "Conversion Tracking und Remarketing"
5385
 
5386
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
5387
+ msgid "HappyForms"
5388
+ msgstr "HappyForms"
5389
+
5390
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
5391
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
5392
  msgid "former WP-Piwik"
5825
 
5826
  #: inc/view/customize/banner/BasicLayout.php:1
5827
  #: inc/view/customize/banner/BodyDesign.php:1
5828
+ #: inc/view/customize/banner/Mobile.php:1
5829
  msgid "Center"
5830
  msgstr "Zentriert"
5831
 
5850
  msgstr "Äußeren Abstand des Dialogs definieren."
5851
 
5852
  #: inc/view/customize/banner/BasicLayout.php:1
5853
+ #: inc/view/customize/banner/Mobile.php:1
5854
  msgid "Top"
5855
  msgstr "Oben"
5856
 
5857
  #: inc/view/customize/banner/BasicLayout.php:1
5858
+ #: inc/view/customize/banner/Mobile.php:1
5859
  msgid "Bottom"
5860
  msgstr "Unten"
5861
 
6592
  msgid "Please fill in a valid URL!"
6593
  msgstr "Bitte geben Sie eine gültige URL ein!"
6594
 
6595
+ #: inc/view/customize/banner/Mobile.php:1
6596
+ msgid "Mobile experience"
6597
+ msgstr "Mobile Nutzererfahrung"
6598
+
6599
+ #: inc/view/customize/banner/Mobile.php:1
6600
+ msgid "Maximum height"
6601
+ msgstr "Maximale Höhe (px)"
6602
+
6603
+ #: inc/view/customize/banner/Mobile.php:1
6604
+ msgid "Hide header"
6605
+ msgstr "Kopfbereich (Header) ausblenden"
6606
+
6607
+ #: inc/view/customize/banner/Mobile.php:1
6608
+ msgid "Alignment"
6609
+ msgstr "Ausrichtung"
6610
+
6611
+ #: inc/view/customize/banner/Mobile.php:1
6612
+ msgid "Scaling factor"
6613
+ msgstr "Skalierungsfaktor"
6614
+
6615
+ #: inc/view/customize/banner/Mobile.php:1
6616
+ msgid ""
6617
+ "Elements in the cookie banner can be scaled smaller or larger relative to "
6618
+ "the desktop view. Make sure that all elements are still clearly legible so "
6619
+ "that you obtain valid consents."
6620
+ msgstr ""
6621
+ "Die Elemente im Cookie Banner können im Verhältnis zur Desktop-Ansicht "
6622
+ "kleiner oder größer skaliert werden. Achten Sie darauf, dass alle Elemente "
6623
+ "weiterhin gut lesbar sind, damit wirksame Einwilligungen eingeholt werden."
6624
+
6625
+ #: inc/view/customize/banner/Mobile.php:1
6626
+ msgid "Vertical spacing scaling factor"
6627
+ msgstr "Skalierungsfaktor für vertikale Abstände"
6628
+
6629
+ #: inc/view/customize/banner/Mobile.php:1
6630
+ msgid ""
6631
+ "The vertical distance between elements can be decreased or increased "
6632
+ "relative to the desktop view."
6633
+ msgstr ""
6634
+ "Der vertikale Abstand zwischen Elementen kann im Verhältnis zur Desktop-"
6635
+ "Ansicht verkleinert oder vergrößert werden."
6636
+
6637
  #: inc/view/customize/banner/Texts.php:1
6638
  msgid "\"Accept all\" button/link"
6639
  msgstr "„Alle akzeptieren“ Button/Link"
languages/real-cookie-banner.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2021 devowl.io
2
  # This file is distributed under the same license as the Real Cookie Banner plugin.
3
  msgid ""
4
  msgstr ""
@@ -426,6 +426,7 @@ msgstr ""
426
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
427
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
428
  #: inc/overrides/pro/presets/TikTokPreset.php:1
 
429
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
430
  #: inc/overrides/pro/presets/TypeformPreset.php:1
431
  #: inc/overrides/pro/presets/UserlikePreset.php:1
@@ -493,6 +494,8 @@ msgstr ""
493
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
494
  #: inc/overrides/pro/presets/HotjarPreset.php:1
495
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
 
 
496
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
497
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
498
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
@@ -940,6 +943,7 @@ msgstr ""
940
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
941
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
942
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
 
943
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
944
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
945
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
@@ -990,6 +994,14 @@ msgstr ""
990
  msgid "We would like to show you attractions, tours and guides from GetYourGuide. But for that you have to allow us to use the GetYourGuide service."
991
  msgstr ""
992
 
 
 
 
 
 
 
 
 
993
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
994
  msgid "The tour, shown on a map from Komoot, could not be loaded because you did not agree to load the service."
995
  msgstr ""
@@ -1460,6 +1472,14 @@ msgstr ""
1460
  msgid "Klarna is a payment service provider that, when selected as a payment method, processes payments for this online store. Depending on the type of payment via Klarna, Klarna classifies the creditworthiness of you as a customer. Cookies are used to give the payment process a unique identification number and to link payment and customer data for the purpose of payment processing."
1461
  msgstr ""
1462
 
 
 
 
 
 
 
 
 
1463
  #: inc/overrides/pro/presets/KomootPreset.php:1
1464
  msgid "Komoot displays maps with marked tours and pictures of these tours. Cookies are used to recognize the visitor, to save settings such as the colors of the map and to save which tours the visitor has called from which website."
1465
  msgstr ""
@@ -1849,6 +1869,10 @@ msgstr ""
1849
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
1850
  msgstr ""
1851
 
 
 
 
 
1852
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
1853
  msgid "TranslatePress is a multilingual system for WordPress websites. The cookies store the language of the user and can redirect the user to the version of the website that matches with the language of the browser of the user."
1854
  msgstr ""
@@ -1919,6 +1943,11 @@ msgstr ""
1919
  msgid "Probably in the <a href=\"%s\" target=\"_blank\">WooCommerce settings</a> you have chosen a \"Default customer location\" based on the location of your visitors."
1920
  msgstr ""
1921
 
 
 
 
 
 
1922
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
1923
  msgid "WooCommerce is an e-commerce shop system that allows you to buy products on this website. Cookies are used to collect items in a shopping cart, to store the shopping cart of the user in the database of the website, to store recently viewed products to show them again and to allow users to dismiss notices in the online shop."
1924
  msgstr ""
@@ -2645,6 +2674,7 @@ msgstr ""
2645
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
2646
  #: inc/presets/pro/blocker/FormidablePreset.php:1
2647
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
 
2648
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
2649
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
2650
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
@@ -2685,6 +2715,10 @@ msgstr ""
2685
  msgid "Conversion Tracking and Remarketing"
2686
  msgstr ""
2687
 
 
 
 
 
2688
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
2689
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
2690
  msgid "former WP-Piwik"
@@ -3011,6 +3045,7 @@ msgstr ""
3011
  #: inc/view/customize/banner/BasicLayout.php:1
3012
  #: inc/view/customize/banner/BodyDesign.php:1
3013
  #: inc/view/customize/banner/BodyDesign.php:1
 
3014
  msgid "Center"
3015
  msgstr ""
3016
 
@@ -3035,10 +3070,12 @@ msgid "Define outer distance of the dialog."
3035
  msgstr ""
3036
 
3037
  #: inc/view/customize/banner/BasicLayout.php:1
 
3038
  msgid "Top"
3039
  msgstr ""
3040
 
3041
  #: inc/view/customize/banner/BasicLayout.php:1
 
3042
  msgid "Bottom"
3043
  msgstr ""
3044
 
@@ -3675,6 +3712,38 @@ msgstr ""
3675
  msgid "Please fill in a valid URL!"
3676
  msgstr ""
3677
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3678
  #: inc/view/customize/banner/Texts.php:1
3679
  msgid "\"Accept all\" button/link"
3680
  msgstr ""
1
+ # Copyright (C) 2022 devowl.io
2
  # This file is distributed under the same license as the Real Cookie Banner plugin.
3
  msgid ""
4
  msgstr ""
426
  #: inc/overrides/pro/presets/SoundCloudPreset.php:1
427
  #: inc/overrides/pro/presets/SpotifyPreset.php:1
428
  #: inc/overrides/pro/presets/TikTokPreset.php:1
429
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
430
  #: inc/overrides/pro/presets/TwitterTweetPreset.php:1
431
  #: inc/overrides/pro/presets/TypeformPreset.php:1
432
  #: inc/overrides/pro/presets/UserlikePreset.php:1
494
  #: inc/overrides/pro/presets/HelpScoutChatPreset.php:1
495
  #: inc/overrides/pro/presets/HotjarPreset.php:1
496
  #: inc/overrides/pro/presets/IntercomChatPreset.php:1
497
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
498
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
499
  #: inc/overrides/pro/presets/LinkedInAdsPreset.php:1
500
  #: inc/overrides/pro/presets/LuckyOrangePreset.php:1
501
  #: inc/overrides/pro/presets/MailchimpForWooCommercePreset.php:1
943
  #: inc/overrides/pro/presets/blocker/ElementorFormsPreset.php:1
944
  #: inc/overrides/pro/presets/blocker/FormidablePreset.php:1
945
  #: inc/overrides/pro/presets/blocker/FormMakerRecaptchaPreset.php:1
946
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
947
  #: inc/overrides/pro/presets/blocker/NinjaFormsPreset.php:1
948
  #: inc/overrides/pro/presets/blocker/QuformRecaptchaPreset.php:1
949
  #: inc/overrides/pro/presets/blocker/WPFormsPreset.php:1
994
  msgid "We would like to show you attractions, tours and guides from GetYourGuide. But for that you have to allow us to use the GetYourGuide service."
995
  msgstr ""
996
 
997
+ #: inc/overrides/pro/presets/blocker/HappyFormsPreset.php:1
998
+ msgid "HappyForms with Google reCAPTCHA"
999
+ msgstr ""
1000
+
1001
+ #: inc/overrides/pro/presets/blocker/KlikenPreset.php:1
1002
+ msgid "Kliken and Google Ads"
1003
+ msgstr ""
1004
+
1005
  #: inc/overrides/pro/presets/blocker/KomootPreset.php:1
1006
  msgid "The tour, shown on a map from Komoot, could not be loaded because you did not agree to load the service."
1007
  msgstr ""
1472
  msgid "Klarna is a payment service provider that, when selected as a payment method, processes payments for this online store. Depending on the type of payment via Klarna, Klarna classifies the creditworthiness of you as a customer. Cookies are used to give the payment process a unique identification number and to link payment and customer data for the purpose of payment processing."
1473
  msgstr ""
1474
 
1475
+ #: inc/overrides/pro/presets/KlaviyoPreset.php:1
1476
+ msgid "Klaviyo is a service for collecting detailed statistics about user behavior on the website. This includes, details about the devices used to access the websites (such as the IP address, operating system and web browser), date and time of visit, details about how people interact with the emails sent by this website, websites from which visitors were redirected to this website, and search terms in the search of this website. In addition, contact information and purchase history of buyers will be transmitted to Klaviyo. Klaviyo uses the collected data to differentiate target groups via its marketing platform and to send personalized marketing messages via email and SMS. Klaviyo may also collect collected personal data for its own business purposes, such as business contact information of potential customers or resumes of job applicants. Cookies are used to assign a unique identification number to the visitor and to be able to identify them again over several page requests and to be able to link the data of several page requests."
1477
+ msgstr ""
1478
+
1479
+ #: inc/overrides/pro/presets/KlikenPreset.php:1
1480
+ msgid "Kliken or also called Kliken Analytics is a service for creating detailed statistics about user behavior on the website. This detailed user profile may be forwarded to the Google Ads service in order to be able to optimally place ads on the Google Ads network for this website. Cookies are used to assign a unique identification number to the visitor and to be able to identify them again over several page requests and to be able to link the data of several page requests."
1481
+ msgstr ""
1482
+
1483
  #: inc/overrides/pro/presets/KomootPreset.php:1
1484
  msgid "Komoot displays maps with marked tours and pictures of these tours. Cookies are used to recognize the visitor, to save settings such as the colors of the map and to save which tours the visitor has called from which website."
1485
  msgstr ""
1869
  msgid "https://www.tiktok.com/legal/privacy-policy?lang=en-GB"
1870
  msgstr ""
1871
 
1872
+ #: inc/overrides/pro/presets/TiWooCommerceWishlistPreset.php:1
1873
+ msgid "TI WooCommerce Wishlist allows you to save products to a wishlist so you can remember them for later. Cookies are used to remember the products and the number of products you put on the wishlist."
1874
+ msgstr ""
1875
+
1876
  #: inc/overrides/pro/presets/TranslatePressPreset.php:1
1877
  msgid "TranslatePress is a multilingual system for WordPress websites. The cookies store the language of the user and can redirect the user to the version of the website that matches with the language of the browser of the user."
1878
  msgstr ""
1943
  msgid "Probably in the <a href=\"%s\" target=\"_blank\">WooCommerce settings</a> you have chosen a \"Default customer location\" based on the location of your visitors."
1944
  msgstr ""
1945
 
1946
+ #. translators:
1947
+ #: inc/overrides/pro/presets/WooCommerceGoogleAnalyticsProPreset.php:1
1948
+ msgid "Please do not forget to activate the option <a href=\"%s\" target=\"_blank\">Anonymize IP Addresses</a> to comply with the GDPR."
1949
+ msgstr ""
1950
+
1951
  #: inc/overrides/pro/presets/WooCommercePreset.php:1
1952
  msgid "WooCommerce is an e-commerce shop system that allows you to buy products on this website. Cookies are used to collect items in a shopping cart, to store the shopping cart of the user in the database of the website, to store recently viewed products to show them again and to allow users to dismiss notices in the online shop."
1953
  msgstr ""
2674
  #: inc/presets/pro/blocker/ElementorFormsPreset.php:1
2675
  #: inc/presets/pro/blocker/FormidablePreset.php:1
2676
  #: inc/presets/pro/blocker/FormMakerRecaptchaPreset.php:1
2677
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
2678
  #: inc/presets/pro/blocker/NinjaFormsPreset.php:1
2679
  #: inc/presets/pro/blocker/QuformRecaptchaPreset.php:1
2680
  #: inc/presets/pro/blocker/WPFormsPreset.php:1
2715
  msgid "Conversion Tracking and Remarketing"
2716
  msgstr ""
2717
 
2718
+ #: inc/presets/pro/blocker/HappyFormsPreset.php:1
2719
+ msgid "HappyForms"
2720
+ msgstr ""
2721
+
2722
  #: inc/presets/pro/blocker/MatomoIntegrationPluginPreset.php:1
2723
  #: inc/presets/pro/MatomoIntegrationPluginPreset.php:1
2724
  msgid "former WP-Piwik"
3045
  #: inc/view/customize/banner/BasicLayout.php:1
3046
  #: inc/view/customize/banner/BodyDesign.php:1
3047
  #: inc/view/customize/banner/BodyDesign.php:1
3048
+ #: inc/view/customize/banner/Mobile.php:1
3049
  msgid "Center"
3050
  msgstr ""
3051
 
3070
  msgstr ""
3071
 
3072
  #: inc/view/customize/banner/BasicLayout.php:1
3073
+ #: inc/view/customize/banner/Mobile.php:1
3074
  msgid "Top"
3075
  msgstr ""
3076
 
3077
  #: inc/view/customize/banner/BasicLayout.php:1
3078
+ #: inc/view/customize/banner/Mobile.php:1
3079
  msgid "Bottom"
3080
  msgstr ""
3081
 
3712
  msgid "Please fill in a valid URL!"
3713
  msgstr ""
3714
 
3715
+ #: inc/view/customize/banner/Mobile.php:1
3716
+ msgid "Mobile experience"
3717
+ msgstr ""
3718
+
3719
+ #: inc/view/customize/banner/Mobile.php:1
3720
+ msgid "Maximum height"
3721
+ msgstr ""
3722
+
3723
+ #: inc/view/customize/banner/Mobile.php:1
3724
+ msgid "Hide header"
3725
+ msgstr ""
3726
+
3727
+ #: inc/view/customize/banner/Mobile.php:1
3728
+ msgid "Alignment"
3729
+ msgstr ""
3730
+
3731
+ #: inc/view/customize/banner/Mobile.php:1
3732
+ msgid "Scaling factor"
3733
+ msgstr ""
3734
+
3735
+ #: inc/view/customize/banner/Mobile.php:1
3736
+ msgid "Elements in the cookie banner can be scaled smaller or larger relative to the desktop view. Make sure that all elements are still clearly legible so that you obtain valid consents."
3737
+ msgstr ""
3738
+
3739
+ #: inc/view/customize/banner/Mobile.php:1
3740
+ msgid "Vertical spacing scaling factor"
3741
+ msgstr ""
3742
+
3743
+ #: inc/view/customize/banner/Mobile.php:1
3744
+ msgid "The vertical distance between elements can be decreased or increased relative to the desktop view."
3745
+ msgstr ""
3746
+
3747
  #: inc/view/customize/banner/Texts.php:1
3748
  msgid "\"Accept all\" button/link"
3749
  msgstr ""
public/dist/138.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[138],{8950:function(e,t,n){n.d(t,{Y:function(){return i}});var o=n(7363),a=n(5998),r=n.n(a),i=function(e){var t=e.settings,n=void 0===t?{}:t,a=e.value,i=void 0===a?"":a,c=e.onChange,s=(0,o.useRef)(),l=r().codeEditor;(0,o.useEffect)((function(){l&&l.initialize(s.current,n).codemirror.on("change",(function(e){null==c||c(e.getValue())}))}),[]);var u=(0,o.useCallback)((function(){}),[]);return React.createElement("textarea",{ref:s,value:i,onChange:l?u:function(e){var t=e.target.value;return c(t)},style:{width:"100%"}})}},2982:function(e,t,n){n.d(t,{f:function(){return a}});var o=n(2711),a=function(e){var t=e.children,n=e.maxWidth,a=void 0===n?"auto":n,r=e.style,i=void 0===r?{}:r;return React.createElement("div",{className:"rcb-config-content",style:(0,o.Z)({maxWidth:"fixed"===a?1300:a},i)},t)}},8439:function(e,t,n){n.d(t,{K:function(){return d}});var o=n(6069),a=n(7228),r=n(7363),i=n(3554),c=n(5071),s=n(5406),l=n(3612),u=n(4614),d=(0,i.Pi)((function(e){var t=e.identifier,n=e.width,i=e.title,d=(0,u.m)().optionStore,h=d.others.modalHints,m=(0,r.useState)(!1),p=(0,a.Z)(m,2),f=p[0],y=p[1];(0,r.useEffect)((function(){y(-1===h.indexOf(t))}),[h.length,t]);var v=(0,l.v)(t),g="string"==typeof v&&v.indexOf("?")>-1?v.split("?")[0]:"",k=i||(g?"".concat(g,"?"):(0,c.__)("What you should definitely know!")),_="string"==typeof v&&"string"==typeof k&&g?v.replace(k,"").trim():v,b=(0,r.useCallback)((function(){d.setModalHintSeen(t)}),[t,d]);return React.createElement(o.Z,{visible:f,title:React.createElement("span",null,React.createElement(s.Z,{style:{color:"#1890ff"}})," ",k),closable:!1,onOk:b,width:n,okText:(0,c.__)("Okay, I got it"),cancelButtonProps:{style:{display:"none"}}},_)}))},4453:function(e,t,n){n.d(t,{j:function(){return _}});var o=n(4741),a=n(9591),r=n(3306),i=n(2519),c=n(7228),s=n(3735),l=n(7363),u=n(3554),d=n(6703),h=n(5071),m=n(1857),p=n(6107),f=n(4522),y=n(4614),v=s.Z.Meta,g=(0,u.Pi)((function(e){var t=e.identifier,n=e.version,o=e.name,a=e.description,r=e.logoUrl,i=e.disabled,c=e.attributes_name,u=e.tier,d=e.tags,g=e.onSelect,k=e.renderActions,_=(0,y.m)().optionStore.others.isDemoEnv,b=(0,f.t)({title:(0,h.__)("Want to use %s template?",o),feature:"preset",description:"".concat((0,h.__)("Only a limited number of templates for services and content blockers are available in the %s version of Real Cookie Banner. Get the PRO version now and create a service or content blocker from this template with just one click!",(_?(0,h.__)("Demo"):(0,h.__)("Free")).toLowerCase())).concat(_?"":"\n\n".concat((0,h.__)("You can create this service yourself in the free version without any restrictions and research the necessary information.")))},!_&&void 0),w=b.isPro,E=b.open,R=b.modal,C=(0,h.__)("Disabled"),x=(0,h.__)("Already exists"),Z="pro"===u&&!w;return React.createElement(l.Fragment,{key:t},R,React.createElement(m.Z,{title:i?React.createElement("span",{dangerouslySetInnerHTML:{__html:d[C]}}):void 0},React.createElement(s.Z,{className:"rcb-antd-preset-card",hoverable:!i,style:{opacity:i||null!=d&&d[x]?.6:1},onClick:function(e){e.target.closest(".rcb-antd-card")&&(Z?E():i||g({identifier:t,version:n,attributes_name:c},e))},cover:React.createElement("img",{style:{width:"90%"},src:r}),actions:k?k(e):[]},React.createElement(v,{title:React.createElement("span",null,Z&&React.createElement(p.Z,{color:f.k},"PRO"),!!d&&Object.keys(d).map((function(e){return React.createElement(m.Z,{title:e===C?void 0:React.createElement("span",{dangerouslySetInnerHTML:{__html:d[e]}}),key:e},React.createElement(p.Z,null,e))})),React.createElement("br",null),o),description:a||React.createElement("i",null,(0,h.__)("No description"))}))))})),k=s.Z.Meta,_=(0,u.Pi)((function(e){var t=e.fetchingPresets,n=e.presets,u=e.onSelect,m=e.renderActions,p=e.quickLinks,f=void 0===p?[]:p,y=e.children,v=e.showSearch,_=void 0===v||v,b=e.showDisabled,w=void 0===b||b,E=e.showHidden,R=void 0!==E&&E,C=(0,d.u)().isPro,x=(0,l.useState)(""),Z=(0,c.Z)(x,2),T=Z[0],S=Z[1],A=(0,l.useState)(!1),P=(0,c.Z)(A,2),W=P[0],D=P[1],q=(0,l.useMemo)((function(){return n.filter((function(e){var t=e.tier;return!!C||!W||"pro"!==t})).filter((function(e){var t=e.name,n=e.description;return!T.trim().length||T.split(" ").filter(Boolean).filter((function(e){return"".concat(t," ").concat(n||"").toLowerCase().indexOf(e.trim().toLowerCase())>-1})).length>0})).filter((function(e){var t=e.hidden;return!!R||!t})).filter((function(e){var t=e.disabled;return!!w||!t}))}),[n,T,W]);return React.createElement("div",{className:"column-posts"},f.map((function(e){var t=e.id,n=e.cover,o=e.description,a=e.onClick,r=e.title;return React.createElement(s.Z,{key:t,hoverable:!0,style:{margin:5,width:240,display:"inline-block"},onClick:a,cover:n},React.createElement(k,{title:r,description:o}))})),React.createElement(a.Z,{spinning:t},y,_&&React.createElement("div",{style:{marginBottom:20}},React.createElement(i.Z.Search,{autoFocus:!0,style:{maxWidth:400},placeholder:(0,h.__)("Search template by name..."),onChange:function(e){return S(e.target.value)}}),React.createElement("br",null),!C&&React.createElement(r.Z,{onChange:function(){return D(!W)},style:{marginTop:10}},(0,h.__)("Show only free templates")))),0===q.length&&T.length>0&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0",maxWidth:400,display:"inline-block"}},React.createElement("p",null,(0,h._i)((0,h.__)("{{strong}}No template found{{/strong}}. Please try to create the service yourself or {{a}}contact us{{/a}} and let us know for which service you need a template."),{strong:React.createElement("strong",null),a:React.createElement("a",{href:(0,h.__)("https://devowl.io/support/"),target:"_blank",rel:"noreferrer"})}))),q.map((function(e){return React.createElement(g,(0,o.Z)({key:e.id,onSelect:u,renderActions:m},e))})))}))},3612:function(e,t,n){n.d(t,{v:function(){return d}});var o=n(5489),a=n(8503),r=n(2841),i=n(7330),c=n(8603),s=n(4614),l=n(5071),u=n(2185);function d(e){var t=(0,s.m)().optionStore.tcf;switch(e){case"scanner":var n=(0,u.u)().openDialog;return React.createElement(React.Fragment,null,React.createElement("p",{className:"description"},(0,l.__)("The scanner finds services that you use on your website that might set/read cookies or process personal data. This is e.g. Google Analytics, YouTube or Elementor. If there is no template for a service, you will see from which external URLs content, scripts etc. are embedded. This allows you to set up your cookie banner quickly and easily.")),React.createElement("p",{className:"description"},(0,l._i)((0,l.__)("We explicitly do not find cookies because that would not work reliably. {{a}}We explained why in our knowledge base.{{/a}}"),{a:React.createElement("a",{rel:"noreferrer",href:(0,l.__)("https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/"),target:"_blank"})})),React.createElement(o.Z,{style:{margin:"10px 0"}},React.createElement(a.Z,{span:11},React.createElement("div",{style:{paddingRight:10}},React.createElement(r.Z,null,(0,l.__)("What the scanner finds ...")),[(0,l.__)("External services (with and without template)"),(0,l.__)("WordPress plugins with templates that require consent"),(0,l.__)("Automatic check of all subpages of your website")].map((function(e,t){return React.createElement("div",{key:t,style:{marginBottom:10}},React.createElement(i.Z,{twoToneColor:"#52c41a"}),"  ",e)})))),React.createElement(a.Z,{span:2,style:{textAlign:"center"}},React.createElement(r.Z,{type:"vertical",style:{height:"100%"}})),React.createElement(a.Z,{span:11},React.createElement("div",null,React.createElement(r.Z,null,(0,l.__)("... and what it does not")),[(0,l.__)("Cookies from unknown WordPress plugins"),(0,l.__)("Services embedded after the page load via JavaScript"),(0,l.__)("Complete coverage of your individual use case")].map((function(e,t){return React.createElement("div",{key:t,style:{marginBottom:10}},React.createElement(c.Z,{twoToneColor:"#eb2f96"}),"  ",e)}))))),React.createElement("p",{className:"description"},(0,l._i)((0,l.__)("Just by using the scanner, you will not set up your cookie banner one hundred percent correctly. If it is too complex or time-consuming for you to set up the cookie banner yourself, just let one of our {{a}}cookie experts{{/a}} set it up for you!"),{a:React.createElement("a",{style:{textDecoration:"underline",cursor:"pointer"},onClick:n})})));case"cookie":return(0,l.__)("What are services? Services can be external applications such as Google Analytics or WordPress plugins or themes that process personal data (e.g. IP address) and/or set cookies. Cookies (and similar technologies) are small text files that are stored on the device of visitors to your website. You can store information about the visitor in cookies, such as the website's language, or unique advertising IDs to display personalized advertising. You, as the site owner, must ensure that cookies are only placed on your visitors' devices and personal data are only processed if they have given their explicit consent. Unless you have a legitimate interest in the legal sense to do so even without consent. You can define here all the services you use and their cookies with their legal and technical information.");case"blocker":return(0,l.__)("What is a content blocker? Imagine that a user of your website does not accept all services. At the same time, you have integrated e.g. a YouTube video that sets cookies that the visitor has not agreed to. According to the ePrivacy Directive, this is prohibited. Content blockers automatically replace iframes, script and link tags like YouTube videos for such users and offer them to watch the video as soon as they agree to load it.");case"list-of-consents":return(0,l._i)((0,l.__)("Consents are automatically documented in order to be able to prove compliance with the legal requirements according to {{a}}Art. 5 GDPR{{/a}} and, in case of dispute, to prove how the consent was obtained."),{a:React.createElement("a",{href:"https://gdpr-info.eu/art-5-gdpr/",target:"_blank",rel:"noreferrer"})});case"shortcodes":return(0,l._i)((0,l.__)("To comply with the ePrivacy Directive, you must provide links in your footer and/or privacy policy so that your website visitors can view the history of consents and change or revoke consent."),{strong:React.createElement("strong",null)})+(t?" ".concat((0,l.__)("To meet the requirements of the TCF standard, the shortcodes should be placed near the link to the privacy policy.")):"");case"tcf-vendor":return(0,l._i)((0,l.__)("What is a TCF vendor? According to the IAB Europe Transparency and Consent Framework (TCF), any service (e.g. Google for Google Ads) that wants to use consents according to the TCF standard must register as a vendor in the {{a}}Global Vendor List (GVL){{/a}}. All TCF vendors specify for which purposes they need consent to process data and set cookies and which features they can offer with these consents. They also provide a link to their privacy policy for further information. You, as a website operator, must obtain consent in your cookie banner for all vendors you work with. You can limit the requested purposes of vendors to keep consents as privacy-friendly as possible."),{a:React.createElement("a",{href:"https://iabeurope.eu/vendor-list-tcf-v2-0/",target:"_blank",rel:"noreferrer"})});default:return""}}},2185:function(e,t,n){n.d(t,{u:function(){return l}});var o=n(2841),a=n(5235),r=n(6069),i=n(7363),c=n(4614),s=n(5071);function l(){var e=(0,c.m)().optionStore.others.assetsUrl,t="".concat(e,"cookie-experts.svg"),n=(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,s.__)("Let our team help you with the setup")),React.createElement(o.Z,null,React.createElement(a.C.Group,{size:"large"},React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg"}),React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg"}),React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg"}))),React.createElement("a",{href:(0,s.__)("https://devowl.io/wordpress-real-cookie-banner/cookie-experts/"),target:"_blank",rel:"noreferrer",className:"button button-large button-primary"},(0,s.__)("Get help from Cookie Experts")),React.createElement("p",null,(0,s.__)("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,s.__)("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,s.__)("Close")))})}),[]);return{logoUrl:t,openDialog:n}}}}]);
2
- //# sourceMappingURL=138.lite.js.map?ver=2a84dc7640aee5713d6e
1
+ "use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[138],{8950:function(e,t,n){n.d(t,{Y:function(){return i}});var o=n(7363),a=n(5998),r=n.n(a),i=function(e){var t=e.settings,n=void 0===t?{}:t,a=e.value,i=void 0===a?"":a,c=e.onChange,s=(0,o.useRef)(),l=r().codeEditor;(0,o.useEffect)((function(){l&&l.initialize(s.current,n).codemirror.on("change",(function(e){null==c||c(e.getValue())}))}),[]);var u=(0,o.useCallback)((function(){}),[]);return React.createElement("textarea",{ref:s,value:i,onChange:l?u:function(e){var t=e.target.value;return c(t)},style:{width:"100%"}})}},2982:function(e,t,n){n.d(t,{f:function(){return a}});var o=n(2711),a=function(e){var t=e.children,n=e.maxWidth,a=void 0===n?"auto":n,r=e.style,i=void 0===r?{}:r;return React.createElement("div",{className:"rcb-config-content",style:(0,o.Z)({maxWidth:"fixed"===a?1300:a},i)},t)}},8439:function(e,t,n){n.d(t,{K:function(){return d}});var o=n(6211),a=n(7228),r=n(7363),i=n(3554),c=n(5071),s=n(5132),l=n(3612),u=n(4614),d=(0,i.Pi)((function(e){var t=e.identifier,n=e.width,i=e.title,d=(0,u.m)().optionStore,h=d.others.modalHints,m=(0,r.useState)(!1),p=(0,a.Z)(m,2),f=p[0],y=p[1];(0,r.useEffect)((function(){y(-1===h.indexOf(t))}),[h.length,t]);var v=(0,l.v)(t),g="string"==typeof v&&v.indexOf("?")>-1?v.split("?")[0]:"",k=i||(g?"".concat(g,"?"):(0,c.__)("What you should definitely know!")),_="string"==typeof v&&"string"==typeof k&&g?v.replace(k,"").trim():v,b=(0,r.useCallback)((function(){d.setModalHintSeen(t)}),[t,d]);return React.createElement(o.Z,{visible:f,title:React.createElement("span",null,React.createElement(s.Z,{style:{color:"#1890ff"}})," ",k),closable:!1,onOk:b,width:n,okText:(0,c.__)("Okay, I got it"),cancelButtonProps:{style:{display:"none"}}},_)}))},4453:function(e,t,n){n.d(t,{j:function(){return _}});var o=n(4741),a=n(5744),r=n(8911),i=n(6619),c=n(7228),s=n(3875),l=n(7363),u=n(3554),d=n(6703),h=n(5071),m=n(7452),p=n(2762),f=n(4522),y=n(4614),v=s.Z.Meta,g=(0,u.Pi)((function(e){var t=e.identifier,n=e.version,o=e.name,a=e.description,r=e.logoUrl,i=e.disabled,c=e.attributes_name,u=e.tier,d=e.tags,g=e.onSelect,k=e.renderActions,_=(0,y.m)().optionStore.others.isDemoEnv,b=(0,f.t)({title:(0,h.__)("Want to use %s template?",o),feature:"preset",description:"".concat((0,h.__)("Only a limited number of templates for services and content blockers are available in the %s version of Real Cookie Banner. Get the PRO version now and create a service or content blocker from this template with just one click!",(_?(0,h.__)("Demo"):(0,h.__)("Free")).toLowerCase())).concat(_?"":"\n\n".concat((0,h.__)("You can create this service yourself in the free version without any restrictions and research the necessary information.")))},!_&&void 0),w=b.isPro,E=b.open,R=b.modal,C=(0,h.__)("Disabled"),x=(0,h.__)("Already exists"),Z="pro"===u&&!w;return React.createElement(l.Fragment,{key:t},R,React.createElement(m.Z,{title:i?React.createElement("span",{dangerouslySetInnerHTML:{__html:d[C]}}):void 0},React.createElement(s.Z,{className:"rcb-antd-preset-card",hoverable:!i,style:{opacity:i||null!=d&&d[x]?.6:1},onClick:function(e){e.target.closest(".rcb-antd-card")&&(Z?E():i||g({identifier:t,version:n,attributes_name:c},e))},cover:React.createElement("img",{style:{width:"90%"},src:r}),actions:k?k(e):[]},React.createElement(v,{title:React.createElement("span",null,Z&&React.createElement(p.Z,{color:f.k},"PRO"),!!d&&Object.keys(d).map((function(e){return React.createElement(m.Z,{title:e===C?void 0:React.createElement("span",{dangerouslySetInnerHTML:{__html:d[e]}}),key:e},React.createElement(p.Z,null,e))})),React.createElement("br",null),o),description:a||React.createElement("i",null,(0,h.__)("No description"))}))))})),k=s.Z.Meta,_=(0,u.Pi)((function(e){var t=e.fetchingPresets,n=e.presets,u=e.onSelect,m=e.renderActions,p=e.quickLinks,f=void 0===p?[]:p,y=e.children,v=e.showSearch,_=void 0===v||v,b=e.showDisabled,w=void 0===b||b,E=e.showHidden,R=void 0!==E&&E,C=(0,d.u)().isPro,x=(0,l.useState)(""),Z=(0,c.Z)(x,2),T=Z[0],S=Z[1],A=(0,l.useState)(!1),P=(0,c.Z)(A,2),W=P[0],D=P[1],q=(0,l.useMemo)((function(){return n.filter((function(e){var t=e.tier;return!!C||!W||"pro"!==t})).filter((function(e){var t=e.name,n=e.description;return!T.trim().length||T.split(" ").filter(Boolean).filter((function(e){return"".concat(t," ").concat(n||"").toLowerCase().indexOf(e.trim().toLowerCase())>-1})).length>0})).filter((function(e){var t=e.hidden;return!!R||!t})).filter((function(e){var t=e.disabled;return!!w||!t}))}),[n,T,W]);return React.createElement("div",{className:"column-posts"},f.map((function(e){var t=e.id,n=e.cover,o=e.description,a=e.onClick,r=e.title;return React.createElement(s.Z,{key:t,hoverable:!0,style:{margin:5,width:240,display:"inline-block"},onClick:a,cover:n},React.createElement(k,{title:r,description:o}))})),React.createElement(a.Z,{spinning:t},y,_&&React.createElement("div",{style:{marginBottom:20}},React.createElement(i.Z.Search,{autoFocus:!0,style:{maxWidth:400},placeholder:(0,h.__)("Search template by name..."),onChange:function(e){return S(e.target.value)}}),React.createElement("br",null),!C&&React.createElement(r.Z,{onChange:function(){return D(!W)},style:{marginTop:10}},(0,h.__)("Show only free templates")))),0===q.length&&T.length>0&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0",maxWidth:400,display:"inline-block"}},React.createElement("p",null,(0,h._i)((0,h.__)("{{strong}}No template found{{/strong}}. Please try to create the service yourself or {{a}}contact us{{/a}} and let us know for which service you need a template."),{strong:React.createElement("strong",null),a:React.createElement("a",{href:(0,h.__)("https://devowl.io/support/"),target:"_blank",rel:"noreferrer"})}))),q.map((function(e){return React.createElement(g,(0,o.Z)({key:e.id,onSelect:u,renderActions:m},e))})))}))},3612:function(e,t,n){n.d(t,{v:function(){return d}});var o=n(9707),a=n(7984),r=n(2867),i=n(6771),c=n(7820),s=n(4614),l=n(5071),u=n(2185);function d(e){var t=(0,s.m)().optionStore.tcf;switch(e){case"scanner":var n=(0,u.u)().openDialog;return React.createElement(React.Fragment,null,React.createElement("p",{className:"description"},(0,l.__)("The scanner finds services that you use on your website that might set/read cookies or process personal data. This is e.g. Google Analytics, YouTube or Elementor. If there is no template for a service, you will see from which external URLs content, scripts etc. are embedded. This allows you to set up your cookie banner quickly and easily.")),React.createElement("p",{className:"description"},(0,l._i)((0,l.__)("We explicitly do not find cookies because that would not work reliably. {{a}}We explained why in our knowledge base.{{/a}}"),{a:React.createElement("a",{rel:"noreferrer",href:(0,l.__)("https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/"),target:"_blank"})})),React.createElement(o.Z,{style:{margin:"10px 0"}},React.createElement(a.Z,{span:11},React.createElement("div",{style:{paddingRight:10}},React.createElement(r.Z,null,(0,l.__)("What the scanner finds ...")),[(0,l.__)("External services (with and without template)"),(0,l.__)("WordPress plugins with templates that require consent"),(0,l.__)("Automatic check of all subpages of your website")].map((function(e,t){return React.createElement("div",{key:t,style:{marginBottom:10}},React.createElement(i.Z,{twoToneColor:"#52c41a"}),"  ",e)})))),React.createElement(a.Z,{span:2,style:{textAlign:"center"}},React.createElement(r.Z,{type:"vertical",style:{height:"100%"}})),React.createElement(a.Z,{span:11},React.createElement("div",null,React.createElement(r.Z,null,(0,l.__)("... and what it does not")),[(0,l.__)("Cookies from unknown WordPress plugins"),(0,l.__)("Services embedded after the page load via JavaScript"),(0,l.__)("Complete coverage of your individual use case")].map((function(e,t){return React.createElement("div",{key:t,style:{marginBottom:10}},React.createElement(c.Z,{twoToneColor:"#eb2f96"}),"  ",e)}))))),React.createElement("p",{className:"description"},(0,l._i)((0,l.__)("Just by using the scanner, you will not set up your cookie banner one hundred percent correctly. If it is too complex or time-consuming for you to set up the cookie banner yourself, just let one of our {{a}}cookie experts{{/a}} set it up for you!"),{a:React.createElement("a",{style:{textDecoration:"underline",cursor:"pointer"},onClick:n})})));case"cookie":return(0,l.__)("What are services? Services can be external applications such as Google Analytics or WordPress plugins or themes that process personal data (e.g. IP address) and/or set cookies. Cookies (and similar technologies) are small text files that are stored on the device of visitors to your website. You can store information about the visitor in cookies, such as the website's language, or unique advertising IDs to display personalized advertising. You, as the site owner, must ensure that cookies are only placed on your visitors' devices and personal data are only processed if they have given their explicit consent. Unless you have a legitimate interest in the legal sense to do so even without consent. You can define here all the services you use and their cookies with their legal and technical information.");case"blocker":return(0,l.__)("What is a content blocker? Imagine that a user of your website does not accept all services. At the same time, you have integrated e.g. a YouTube video that sets cookies that the visitor has not agreed to. According to the ePrivacy Directive, this is prohibited. Content blockers automatically replace iframes, script and link tags like YouTube videos for such users and offer them to watch the video as soon as they agree to load it.");case"list-of-consents":return(0,l._i)((0,l.__)("Consents are automatically documented in order to be able to prove compliance with the legal requirements according to {{a}}Art. 5 GDPR{{/a}} and, in case of dispute, to prove how the consent was obtained."),{a:React.createElement("a",{href:"https://gdpr-info.eu/art-5-gdpr/",target:"_blank",rel:"noreferrer"})});case"shortcodes":return(0,l._i)((0,l.__)("To comply with the ePrivacy Directive, you must provide links in your footer and/or privacy policy so that your website visitors can view the history of consents and change or revoke consent."),{strong:React.createElement("strong",null)})+(t?" ".concat((0,l.__)("To meet the requirements of the TCF standard, the shortcodes should be placed near the link to the privacy policy.")):"");case"tcf-vendor":return(0,l._i)((0,l.__)("What is a TCF vendor? According to the IAB Europe Transparency and Consent Framework (TCF), any service (e.g. Google for Google Ads) that wants to use consents according to the TCF standard must register as a vendor in the {{a}}Global Vendor List (GVL){{/a}}. All TCF vendors specify for which purposes they need consent to process data and set cookies and which features they can offer with these consents. They also provide a link to their privacy policy for further information. You, as a website operator, must obtain consent in your cookie banner for all vendors you work with. You can limit the requested purposes of vendors to keep consents as privacy-friendly as possible."),{a:React.createElement("a",{href:"https://iabeurope.eu/vendor-list-tcf-v2-0/",target:"_blank",rel:"noreferrer"})});default:return""}}},2185:function(e,t,n){n.d(t,{u:function(){return l}});var o=n(2867),a=n(6412),r=n(6211),i=n(7363),c=n(4614),s=n(5071);function l(){var e=(0,c.m)().optionStore.others.assetsUrl,t="".concat(e,"cookie-experts.svg"),n=(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,s.__)("Let our team help you with the setup")),React.createElement(o.Z,null,React.createElement(a.C.Group,{size:"large"},React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg"}),React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg"}),React.createElement(a.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg"}))),React.createElement("a",{href:(0,s.__)("https://devowl.io/wordpress-real-cookie-banner/cookie-experts/"),target:"_blank",rel:"noreferrer",className:"button button-large button-primary"},(0,s.__)("Get help from Cookie Experts")),React.createElement("p",null,(0,s.__)("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,s.__)("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,s.__)("Close")))})}),[]);return{logoUrl:t,openDialog:n}}}}]);
2
+ //# sourceMappingURL=138.lite.js.map?ver=a214344f3a8b2e783454
public/dist/138.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"138.lite.js?ver=2a84dc7640aee5713d6e","mappings":"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","sources":["webpack://realCookieBanner_[name]/./src/public/ts/components/codemirror.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/content.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/hintModal.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/presetCard.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/presetSelector.tsx","webpack://realCookieBanner_[name]/./src/public/ts/hooks/useConfigHintText.tsx","webpack://realCookieBanner_[name]/./src/public/ts/hooks/useCookieExpertsModal.tsx"],"sourcesContent":["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 };","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\nvar ConfigContent = function ConfigContent(_ref) {\n var children = _ref.children,\n _ref$maxWidth = _ref.maxWidth,\n maxWidth = _ref$maxWidth === void 0 ? \"auto\" : _ref$maxWidth,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rcb-config-content\",\n style: _objectSpread({\n maxWidth: maxWidth === \"fixed\" ? 1300 : maxWidth\n }, style)\n }, children);\n};\n\nexport { ConfigContent };","import _Modal from \"antd/es/modal\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../utils\";\nimport { InfoCircleFilled } from \"@ant-design/icons\";\nimport { useConfigHintText } from \"../../hooks\";\nimport { useStores } from \"../../store\";\nvar ConfigHintModal = observer(function (_ref) {\n var identifier = _ref.identifier,\n width = _ref.width,\n title = _ref.title;\n\n var _useStores = useStores(),\n optionStore = _useStores.optionStore;\n\n var modalHints = optionStore.others.modalHints;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n useEffect(function () {\n setVisible(modalHints.indexOf(identifier) === -1);\n }, [modalHints.length, identifier]); // Determine title and description\n\n var description = useConfigHintText(identifier);\n var questionInDesc = typeof description === \"string\" && description.indexOf(\"?\") > -1 ? description.split(\"?\")[0] : \"\";\n var useTitle = title ? title : questionInDesc ? \"\".concat(questionInDesc, \"?\") : __(\"What you should definitely know!\");\n var useDescription = typeof description === \"string\" && typeof useTitle === \"string\" && questionInDesc ? description.replace(useTitle, \"\").trim() : description;\n var handleOk = useCallback(function () {\n optionStore.setModalHintSeen(identifier);\n }, [identifier, optionStore]);\n return /*#__PURE__*/React.createElement(_Modal, {\n visible: visible,\n title: /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(InfoCircleFilled, {\n style: {\n color: \"#1890ff\"\n }\n }), \" \", useTitle),\n closable: false,\n onOk: handleOk,\n width: width,\n okText: __(\"Okay, I got it\"),\n cancelButtonProps: {\n style: {\n display: \"none\"\n }\n }\n }, useDescription);\n});\nexport { ConfigHintModal };","import _Tooltip from \"antd/es/tooltip\";\nimport _Tag from \"antd/es/tag\";\nimport _Card from \"antd/es/card\";\nimport { Fragment } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { useProModal, PRO_TAG_BACKGROUND_COLOR } from \"../../hooks\";\nimport { __ } from \"../../utils\";\nimport { useStores } from \"../../store\";\nvar Meta = _Card.Meta;\n\n// We can not use `FC` as we want to make this component generic\nfunction PresetCard(props) {\n var identifier = props.identifier,\n version = props.version,\n name = props.name,\n description = props.description,\n logoUrl = props.logoUrl,\n disabled = props.disabled,\n attributes_name = props.attributes_name,\n tier = props.tier,\n tags = props.tags,\n onSelect = props.onSelect,\n renderActions = props.renderActions;\n\n var _useStores = useStores(),\n isDemoEnv = _useStores.optionStore.others.isDemoEnv;\n\n var _useProModal = useProModal({\n title: __(\"Want to use %s template?\", name),\n feature: \"preset\",\n description: \"\".concat(__(\"Only a limited number of templates for services and content blockers are available in the %s version of Real Cookie Banner. Get the PRO version now and create a service or content blocker from this template with just one click!\", (isDemoEnv ? __(\"Demo\") : __(\"Free\")).toLowerCase())).concat(isDemoEnv ? \"\" : \"\\n\\n\".concat(__(\"You can create this service yourself in the free version without any restrictions and research the necessary information.\")))\n }, // PRO Presets are deactivate on try.devowl.io\n isDemoEnv ? false : undefined),\n isPro = _useProModal.isPro,\n openProModal = _useProModal.open,\n modal = _useProModal.modal;\n\n var disabledTranslatedText = __(\"Disabled\");\n\n var alreadyExistsTranslatedText = __(\"Already exists\");\n\n var showProBadge = tier === \"pro\" && !isPro;\n return /*#__PURE__*/React.createElement(Fragment, {\n key: identifier\n }, modal, /*#__PURE__*/React.createElement(_Tooltip, {\n title: disabled ? /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: tags[disabledTranslatedText]\n }\n }) : undefined\n }, /*#__PURE__*/React.createElement(_Card, {\n className: \"rcb-antd-preset-card\",\n hoverable: !disabled,\n style: {\n opacity: disabled || tags !== null && tags !== void 0 && tags[alreadyExistsTranslatedText] ? 0.6 : 1\n },\n onClick: function onClick(e) {\n // This event is bubbled also for the external URLs table in the modal dialog\n // Check if the click comes directly from the card\n if (!e.target.closest(\".rcb-antd-card\")) {\n return;\n }\n\n if (showProBadge) {\n openProModal();\n } else if (!disabled) {\n onSelect({\n identifier: identifier,\n version: version,\n attributes_name: attributes_name\n }, e);\n }\n },\n cover: /*#__PURE__*/React.createElement(\"img\", {\n style: {\n width: \"90%\"\n },\n src: logoUrl\n }),\n actions: renderActions ? renderActions(props) : []\n }, /*#__PURE__*/React.createElement(Meta, {\n title: /*#__PURE__*/React.createElement(\"span\", null, showProBadge && /*#__PURE__*/React.createElement(_Tag, {\n color: PRO_TAG_BACKGROUND_COLOR\n }, \"PRO\"), !!tags && Object.keys(tags).map(function (key) {\n return /*#__PURE__*/React.createElement(_Tooltip, {\n title: key === disabledTranslatedText ? undefined : /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: tags[key]\n }\n }),\n key: key\n }, /*#__PURE__*/React.createElement(_Tag, null, key));\n }), /*#__PURE__*/React.createElement(\"br\", null), name),\n description: description ? description : /*#__PURE__*/React.createElement(\"i\", null, __(\"No description\"))\n }))));\n}\n\nvar PresetCardObserved = observer(PresetCard);\nexport { PresetCardObserved as PresetCard };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _Spin from \"antd/es/spin\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Input from \"antd/es/input\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _Card from \"antd/es/card\";\nimport { useState, useMemo } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, getOtherOptionsFromWindow } from \"../../utils\";\nimport { PresetCard } from \".\";\nvar Meta = _Card.Meta;\n\n// We can not use `FC` as we want to make this component generic\nfunction PresetSelector(_ref) {\n var fetchingPresets = _ref.fetchingPresets,\n presets = _ref.presets,\n onSelect = _ref.onSelect,\n renderActions = _ref.renderActions,\n _ref$quickLinks = _ref.quickLinks,\n quickLinks = _ref$quickLinks === void 0 ? [] : _ref$quickLinks,\n children = _ref.children,\n _ref$showSearch = _ref.showSearch,\n showSearch = _ref$showSearch === void 0 ? true : _ref$showSearch,\n _ref$showDisabled = _ref.showDisabled,\n showDisabled = _ref$showDisabled === void 0 ? true : _ref$showDisabled,\n _ref$showHidden = _ref.showHidden,\n showHidden = _ref$showHidden === void 0 ? false : _ref$showHidden;\n\n var _getOtherOptionsFromW = getOtherOptionsFromWindow(),\n isPro = _getOtherOptionsFromW.isPro;\n\n var _useState = useState(\"\"),\n _useState2 = _slicedToArray(_useState, 2),\n term = _useState2[0],\n setTerm = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isShowOnlyFree = _useState4[0],\n setShowOnlyFree = _useState4[1]; // Create filtered presets\n\n\n var usePresets = useMemo(function () {\n return presets.filter(function (_ref2) {\n var tier = _ref2.tier;\n return isPro ? true : isShowOnlyFree ? tier !== \"pro\" : true;\n }).filter(function (_ref3) {\n var name = _ref3.name,\n description = _ref3.description;\n return term.trim().length ? term.split(\" \").filter(Boolean).filter(function (singleTerm) {\n return (// Include description in search index\n \"\".concat(name, \" \").concat(description || \"\").toLowerCase().indexOf(singleTerm.trim().toLowerCase()) > -1\n );\n }).length > 0 : true;\n }).filter(function (_ref4) {\n var hidden = _ref4.hidden;\n return showHidden ? true : !hidden;\n }).filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return showDisabled ? true : !disabled;\n });\n }, [presets, term, isShowOnlyFree]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"column-posts\"\n }, quickLinks.map(function (_ref6) {\n var id = _ref6.id,\n cover = _ref6.cover,\n description = _ref6.description,\n onClick = _ref6.onClick,\n title = _ref6.title;\n return /*#__PURE__*/React.createElement(_Card, {\n key: id,\n hoverable: true,\n style: {\n margin: 5,\n width: 240,\n display: \"inline-block\"\n },\n onClick: onClick,\n cover: cover\n }, /*#__PURE__*/React.createElement(Meta, {\n title: title,\n description: description\n }));\n }), /*#__PURE__*/React.createElement(_Spin, {\n spinning: fetchingPresets\n }, children, showSearch && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginBottom: 20\n }\n }, /*#__PURE__*/React.createElement(_Input.Search, {\n autoFocus: true,\n style: {\n maxWidth: 400\n },\n placeholder: __(\"Search template by name...\"),\n onChange: function onChange(e) {\n return setTerm(e.target.value);\n }\n }), /*#__PURE__*/React.createElement(\"br\", null), !isPro && /*#__PURE__*/React.createElement(_Checkbox, {\n onChange: function onChange() {\n return setShowOnlyFree(!isShowOnlyFree);\n },\n style: {\n marginTop: 10\n }\n }, __(\"Show only free templates\")))), usePresets.length === 0 && term.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 maxWidth: 400,\n display: \"inline-block\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"{{strong}}No template found{{/strong}}. Please try to create the service yourself or {{a}}contact us{{/a}} and let us know for which service you need a template.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null),\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/support/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n }))), usePresets.map(function (preset) {\n return /*#__PURE__*/React.createElement(PresetCard, _extends({\n key: preset.id,\n onSelect: onSelect,\n renderActions: renderActions\n }, preset));\n }));\n}\n\nvar PresetSelectorObserved = observer(PresetSelector);\nexport { PresetSelectorObserved as PresetSelector };","import _Row from \"antd/es/row\";\nimport _Col from \"antd/es/col\";\nimport _Divider from \"antd/es/divider\";\nimport { CheckCircleTwoTone, CloseCircleTwoTone } from \"@ant-design/icons\";\nimport { useStores } from \"../store\";\nimport { __, _i } from \"../utils\";\nimport { useCookieExpertsModal } from \"./useCookieExpertsModal\";\n\nfunction useConfigHintText(identifier) {\n var _useStores = useStores(),\n tcf = _useStores.optionStore.tcf;\n\n switch (identifier) {\n case \"scanner\":\n {\n var _useCookieExpertsModa = useCookieExpertsModal(),\n openDialog = _useCookieExpertsModa.openDialog;\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"The scanner finds services that you use on your website that might set/read cookies or process personal data. This is e.g. Google Analytics, YouTube or Elementor. If there is no template for a service, you will see from which external URLs content, scripts etc. are embedded. This allows you to set up your cookie banner quickly and easily.\")), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"We explicitly do not find cookies because that would not work reliably. {{a}}We explained why in our knowledge base.{{/a}}\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n rel: \"noreferrer\",\n href: __(\"https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/\"),\n target: \"_blank\"\n })\n })), /*#__PURE__*/React.createElement(_Row, {\n style: {\n margin: \"10px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Col, {\n span: 11\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n paddingRight: 10\n }\n }, /*#__PURE__*/React.createElement(_Divider, null, __(\"What the scanner finds ...\")), [__(\"External services (with and without template)\"), __(\"WordPress plugins with templates that require consent\"), __(\"Automatic check of all subpages of your website\")].map(function (text, i) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n marginBottom: 10\n }\n }, /*#__PURE__*/React.createElement(CheckCircleTwoTone, {\n twoToneColor: \"#52c41a\"\n }), \"\\xA0\\xA0\", text);\n }))), /*#__PURE__*/React.createElement(_Col, {\n span: 2,\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(_Divider, {\n type: \"vertical\",\n style: {\n height: \"100%\"\n }\n })), /*#__PURE__*/React.createElement(_Col, {\n span: 11\n }, /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(_Divider, null, __(\"... and what it does not\")), [__(\"Cookies from unknown WordPress plugins\"), __(\"Services embedded after the page load via JavaScript\"), __(\"Complete coverage of your individual use case\")].map(function (text, i) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n marginBottom: 10\n }\n }, /*#__PURE__*/React.createElement(CloseCircleTwoTone, {\n twoToneColor: \"#eb2f96\"\n }), \"\\xA0\\xA0\", text);\n })))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"Just by using the scanner, you will not set up your cookie banner one hundred percent correctly. If it is too complex or time-consuming for you to set up the cookie banner yourself, just let one of our {{a}}cookie experts{{/a}} set it up for you!\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n cursor: \"pointer\"\n },\n onClick: openDialog\n })\n })));\n }\n\n case \"cookie\":\n return __(\"What are services? Services can be external applications such as Google Analytics or WordPress plugins or themes that process personal data (e.g. IP address) and/or set cookies. Cookies (and similar technologies) are small text files that are stored on the device of visitors to your website. You can store information about the visitor in cookies, such as the website's language, or unique advertising IDs to display personalized advertising. You, as the site owner, must ensure that cookies are only placed on your visitors' devices and personal data are only processed if they have given their explicit consent. Unless you have a legitimate interest in the legal sense to do so even without consent. You can define here all the services you use and their cookies with their legal and technical information.\");\n\n case \"blocker\":\n return __(\"What is a content blocker? Imagine that a user of your website does not accept all services. At the same time, you have integrated e.g. a YouTube video that sets cookies that the visitor has not agreed to. According to the ePrivacy Directive, this is prohibited. Content blockers automatically replace iframes, script and link tags like YouTube videos for such users and offer them to watch the video as soon as they agree to load it.\");\n\n case \"list-of-consents\":\n return _i(__(\"Consents are automatically documented in order to be able to prove compliance with the legal requirements according to {{a}}Art. 5 GDPR{{/a}} and, in case of dispute, to prove how the consent was obtained.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://gdpr-info.eu/art-5-gdpr/\",\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n });\n\n case \"shortcodes\":\n return _i(__(\"To comply with the ePrivacy Directive, you must provide links in your footer and/or privacy policy so that your website visitors can view the history of consents and change or revoke consent.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n }) + (tcf ? \" \".concat(__(\"To meet the requirements of the TCF standard, the shortcodes should be placed near the link to the privacy policy.\")) : \"\");\n\n case \"tcf-vendor\":\n return _i(__(\"What is a TCF vendor? According to the IAB Europe Transparency and Consent Framework (TCF), any service (e.g. Google for Google Ads) that wants to use consents according to the TCF standard must register as a vendor in the {{a}}Global Vendor List (GVL){{/a}}. All TCF vendors specify for which purposes they need consent to process data and set cookies and which features they can offer with these consents. They also provide a link to their privacy policy for further information. You, as a website operator, must obtain consent in your cookie banner for all vendors you work with. You can limit the requested purposes of vendors to keep consents as privacy-friendly as possible.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://iabeurope.eu/vendor-list-tcf-v2-0/\",\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n });\n\n default:\n return \"\";\n }\n}\n\nexport { useConfigHintText };","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 };"],"names":["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","ConfigContent","children","_ref$maxWidth","maxWidth","_ref$style","className","ConfigHintModal","identifier","title","optionStore","modalHints","others","_useState","useState","_useState2","visible","setVisible","indexOf","length","description","questionInDesc","split","useTitle","concat","__","useDescription","replace","trim","handleOk","setModalHintSeen","color","closable","onOk","okText","cancelButtonProps","display","Meta","PresetCardObserved","props","version","name","logoUrl","disabled","attributes_name","tier","tags","onSelect","renderActions","isDemoEnv","_useProModal","useProModal","feature","toLowerCase","undefined","isPro","openProModal","open","modal","disabledTranslatedText","alreadyExistsTranslatedText","showProBadge","Fragment","key","dangerouslySetInnerHTML","__html","hoverable","opacity","onClick","e","closest","cover","src","actions","Object","keys","map","PresetSelectorObserved","fetchingPresets","presets","_ref$quickLinks","quickLinks","_ref$showSearch","showSearch","_ref$showDisabled","showDisabled","_ref$showHidden","showHidden","getOtherOptionsFromWindow","term","setTerm","_useState3","_useState4","isShowOnlyFree","setShowOnlyFree","usePresets","useMemo","filter","_ref3","Boolean","singleTerm","_ref4","hidden","_ref5","_ref6","id","margin","spinning","marginBottom","autoFocus","placeholder","marginTop","_i","strong","a","href","rel","preset","useConfigHintText","tcf","openDialog","u","span","paddingRight","text","i","twoToneColor","textAlign","type","height","textDecoration","cursor","useCookieExpertsModal","assetsUrl","icon","okButtonProps","content","paddingTop","size"],"sourceRoot":""}
1
+ {"version":3,"file":"138.lite.js?ver=a214344f3a8b2e783454","mappings":"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","sources":["webpack:///./src/public/ts/components/codemirror.tsx","webpack:///./src/public/ts/components/config/content.tsx","webpack:///./src/public/ts/components/config/hintModal.tsx","webpack:///./src/public/ts/components/config/presetCard.tsx","webpack:///./src/public/ts/components/config/presetSelector.tsx","webpack:///./src/public/ts/hooks/useConfigHintText.tsx","webpack:///./src/public/ts/hooks/useCookieExpertsModal.tsx"],"sourcesContent":["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 };","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n\nvar ConfigContent = function ConfigContent(_ref) {\n var children = _ref.children,\n _ref$maxWidth = _ref.maxWidth,\n maxWidth = _ref$maxWidth === void 0 ? \"auto\" : _ref$maxWidth,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rcb-config-content\",\n style: _objectSpread({\n maxWidth: maxWidth === \"fixed\" ? 1300 : maxWidth\n }, style)\n }, children);\n};\n\nexport { ConfigContent };","import _Modal from \"antd/es/modal\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../utils\";\nimport { InfoCircleFilled } from \"@ant-design/icons\";\nimport { useConfigHintText } from \"../../hooks\";\nimport { useStores } from \"../../store\";\nvar ConfigHintModal = observer(function (_ref) {\n var identifier = _ref.identifier,\n width = _ref.width,\n title = _ref.title;\n\n var _useStores = useStores(),\n optionStore = _useStores.optionStore;\n\n var modalHints = optionStore.others.modalHints;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n\n useEffect(function () {\n setVisible(modalHints.indexOf(identifier) === -1);\n }, [modalHints.length, identifier]); // Determine title and description\n\n var description = useConfigHintText(identifier);\n var questionInDesc = typeof description === \"string\" && description.indexOf(\"?\") > -1 ? description.split(\"?\")[0] : \"\";\n var useTitle = title ? title : questionInDesc ? \"\".concat(questionInDesc, \"?\") : __(\"What you should definitely know!\");\n var useDescription = typeof description === \"string\" && typeof useTitle === \"string\" && questionInDesc ? description.replace(useTitle, \"\").trim() : description;\n var handleOk = useCallback(function () {\n optionStore.setModalHintSeen(identifier);\n }, [identifier, optionStore]);\n return /*#__PURE__*/React.createElement(_Modal, {\n visible: visible,\n title: /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(InfoCircleFilled, {\n style: {\n color: \"#1890ff\"\n }\n }), \" \", useTitle),\n closable: false,\n onOk: handleOk,\n width: width,\n okText: __(\"Okay, I got it\"),\n cancelButtonProps: {\n style: {\n display: \"none\"\n }\n }\n }, useDescription);\n});\nexport { ConfigHintModal };","import _Tooltip from \"antd/es/tooltip\";\nimport _Tag from \"antd/es/tag\";\nimport _Card from \"antd/es/card\";\nimport { Fragment } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { useProModal, PRO_TAG_BACKGROUND_COLOR } from \"../../hooks\";\nimport { __ } from \"../../utils\";\nimport { useStores } from \"../../store\";\nvar Meta = _Card.Meta;\n\n// We can not use `FC` as we want to make this component generic\nfunction PresetCard(props) {\n var identifier = props.identifier,\n version = props.version,\n name = props.name,\n description = props.description,\n logoUrl = props.logoUrl,\n disabled = props.disabled,\n attributes_name = props.attributes_name,\n tier = props.tier,\n tags = props.tags,\n onSelect = props.onSelect,\n renderActions = props.renderActions;\n\n var _useStores = useStores(),\n isDemoEnv = _useStores.optionStore.others.isDemoEnv;\n\n var _useProModal = useProModal({\n title: __(\"Want to use %s template?\", name),\n feature: \"preset\",\n description: \"\".concat(__(\"Only a limited number of templates for services and content blockers are available in the %s version of Real Cookie Banner. Get the PRO version now and create a service or content blocker from this template with just one click!\", (isDemoEnv ? __(\"Demo\") : __(\"Free\")).toLowerCase())).concat(isDemoEnv ? \"\" : \"\\n\\n\".concat(__(\"You can create this service yourself in the free version without any restrictions and research the necessary information.\")))\n }, // PRO Presets are deactivate on try.devowl.io\n isDemoEnv ? false : undefined),\n isPro = _useProModal.isPro,\n openProModal = _useProModal.open,\n modal = _useProModal.modal;\n\n var disabledTranslatedText = __(\"Disabled\");\n\n var alreadyExistsTranslatedText = __(\"Already exists\");\n\n var showProBadge = tier === \"pro\" && !isPro;\n return /*#__PURE__*/React.createElement(Fragment, {\n key: identifier\n }, modal, /*#__PURE__*/React.createElement(_Tooltip, {\n title: disabled ? /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: tags[disabledTranslatedText]\n }\n }) : undefined\n }, /*#__PURE__*/React.createElement(_Card, {\n className: \"rcb-antd-preset-card\",\n hoverable: !disabled,\n style: {\n opacity: disabled || tags !== null && tags !== void 0 && tags[alreadyExistsTranslatedText] ? 0.6 : 1\n },\n onClick: function onClick(e) {\n // This event is bubbled also for the external URLs table in the modal dialog\n // Check if the click comes directly from the card\n if (!e.target.closest(\".rcb-antd-card\")) {\n return;\n }\n\n if (showProBadge) {\n openProModal();\n } else if (!disabled) {\n onSelect({\n identifier: identifier,\n version: version,\n attributes_name: attributes_name\n }, e);\n }\n },\n cover: /*#__PURE__*/React.createElement(\"img\", {\n style: {\n width: \"90%\"\n },\n src: logoUrl\n }),\n actions: renderActions ? renderActions(props) : []\n }, /*#__PURE__*/React.createElement(Meta, {\n title: /*#__PURE__*/React.createElement(\"span\", null, showProBadge && /*#__PURE__*/React.createElement(_Tag, {\n color: PRO_TAG_BACKGROUND_COLOR\n }, \"PRO\"), !!tags && Object.keys(tags).map(function (key) {\n return /*#__PURE__*/React.createElement(_Tooltip, {\n title: key === disabledTranslatedText ? undefined : /*#__PURE__*/React.createElement(\"span\", {\n dangerouslySetInnerHTML: {\n __html: tags[key]\n }\n }),\n key: key\n }, /*#__PURE__*/React.createElement(_Tag, null, key));\n }), /*#__PURE__*/React.createElement(\"br\", null), name),\n description: description ? description : /*#__PURE__*/React.createElement(\"i\", null, __(\"No description\"))\n }))));\n}\n\nvar PresetCardObserved = observer(PresetCard);\nexport { PresetCardObserved as PresetCard };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _Spin from \"antd/es/spin\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Input from \"antd/es/input\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _Card from \"antd/es/card\";\nimport { useState, useMemo } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, getOtherOptionsFromWindow } from \"../../utils\";\nimport { PresetCard } from \".\";\nvar Meta = _Card.Meta;\n\n// We can not use `FC` as we want to make this component generic\nfunction PresetSelector(_ref) {\n var fetchingPresets = _ref.fetchingPresets,\n presets = _ref.presets,\n onSelect = _ref.onSelect,\n renderActions = _ref.renderActions,\n _ref$quickLinks = _ref.quickLinks,\n quickLinks = _ref$quickLinks === void 0 ? [] : _ref$quickLinks,\n children = _ref.children,\n _ref$showSearch = _ref.showSearch,\n showSearch = _ref$showSearch === void 0 ? true : _ref$showSearch,\n _ref$showDisabled = _ref.showDisabled,\n showDisabled = _ref$showDisabled === void 0 ? true : _ref$showDisabled,\n _ref$showHidden = _ref.showHidden,\n showHidden = _ref$showHidden === void 0 ? false : _ref$showHidden;\n\n var _getOtherOptionsFromW = getOtherOptionsFromWindow(),\n isPro = _getOtherOptionsFromW.isPro;\n\n var _useState = useState(\"\"),\n _useState2 = _slicedToArray(_useState, 2),\n term = _useState2[0],\n setTerm = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isShowOnlyFree = _useState4[0],\n setShowOnlyFree = _useState4[1]; // Create filtered presets\n\n\n var usePresets = useMemo(function () {\n return presets.filter(function (_ref2) {\n var tier = _ref2.tier;\n return isPro ? true : isShowOnlyFree ? tier !== \"pro\" : true;\n }).filter(function (_ref3) {\n var name = _ref3.name,\n description = _ref3.description;\n return term.trim().length ? term.split(\" \").filter(Boolean).filter(function (singleTerm) {\n return (// Include description in search index\n \"\".concat(name, \" \").concat(description || \"\").toLowerCase().indexOf(singleTerm.trim().toLowerCase()) > -1\n );\n }).length > 0 : true;\n }).filter(function (_ref4) {\n var hidden = _ref4.hidden;\n return showHidden ? true : !hidden;\n }).filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return showDisabled ? true : !disabled;\n });\n }, [presets, term, isShowOnlyFree]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"column-posts\"\n }, quickLinks.map(function (_ref6) {\n var id = _ref6.id,\n cover = _ref6.cover,\n description = _ref6.description,\n onClick = _ref6.onClick,\n title = _ref6.title;\n return /*#__PURE__*/React.createElement(_Card, {\n key: id,\n hoverable: true,\n style: {\n margin: 5,\n width: 240,\n display: \"inline-block\"\n },\n onClick: onClick,\n cover: cover\n }, /*#__PURE__*/React.createElement(Meta, {\n title: title,\n description: description\n }));\n }), /*#__PURE__*/React.createElement(_Spin, {\n spinning: fetchingPresets\n }, children, showSearch && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginBottom: 20\n }\n }, /*#__PURE__*/React.createElement(_Input.Search, {\n autoFocus: true,\n style: {\n maxWidth: 400\n },\n placeholder: __(\"Search template by name...\"),\n onChange: function onChange(e) {\n return setTerm(e.target.value);\n }\n }), /*#__PURE__*/React.createElement(\"br\", null), !isPro && /*#__PURE__*/React.createElement(_Checkbox, {\n onChange: function onChange() {\n return setShowOnlyFree(!isShowOnlyFree);\n },\n style: {\n marginTop: 10\n }\n }, __(\"Show only free templates\")))), usePresets.length === 0 && term.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 maxWidth: 400,\n display: \"inline-block\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, _i(__(\"{{strong}}No template found{{/strong}}. Please try to create the service yourself or {{a}}contact us{{/a}} and let us know for which service you need a template.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null),\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/support/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n }))), usePresets.map(function (preset) {\n return /*#__PURE__*/React.createElement(PresetCard, _extends({\n key: preset.id,\n onSelect: onSelect,\n renderActions: renderActions\n }, preset));\n }));\n}\n\nvar PresetSelectorObserved = observer(PresetSelector);\nexport { PresetSelectorObserved as PresetSelector };","import _Row from \"antd/es/row\";\nimport _Col from \"antd/es/col\";\nimport _Divider from \"antd/es/divider\";\nimport { CheckCircleTwoTone, CloseCircleTwoTone } from \"@ant-design/icons\";\nimport { useStores } from \"../store\";\nimport { __, _i } from \"../utils\";\nimport { useCookieExpertsModal } from \"./useCookieExpertsModal\";\n\nfunction useConfigHintText(identifier) {\n var _useStores = useStores(),\n tcf = _useStores.optionStore.tcf;\n\n switch (identifier) {\n case \"scanner\":\n {\n var _useCookieExpertsModa = useCookieExpertsModal(),\n openDialog = _useCookieExpertsModa.openDialog;\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"The scanner finds services that you use on your website that might set/read cookies or process personal data. This is e.g. Google Analytics, YouTube or Elementor. If there is no template for a service, you will see from which external URLs content, scripts etc. are embedded. This allows you to set up your cookie banner quickly and easily.\")), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"We explicitly do not find cookies because that would not work reliably. {{a}}We explained why in our knowledge base.{{/a}}\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n rel: \"noreferrer\",\n href: __(\"https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/\"),\n target: \"_blank\"\n })\n })), /*#__PURE__*/React.createElement(_Row, {\n style: {\n margin: \"10px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Col, {\n span: 11\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n paddingRight: 10\n }\n }, /*#__PURE__*/React.createElement(_Divider, null, __(\"What the scanner finds ...\")), [__(\"External services (with and without template)\"), __(\"WordPress plugins with templates that require consent\"), __(\"Automatic check of all subpages of your website\")].map(function (text, i) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n marginBottom: 10\n }\n }, /*#__PURE__*/React.createElement(CheckCircleTwoTone, {\n twoToneColor: \"#52c41a\"\n }), \"\\xA0\\xA0\", text);\n }))), /*#__PURE__*/React.createElement(_Col, {\n span: 2,\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(_Divider, {\n type: \"vertical\",\n style: {\n height: \"100%\"\n }\n })), /*#__PURE__*/React.createElement(_Col, {\n span: 11\n }, /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(_Divider, null, __(\"... and what it does not\")), [__(\"Cookies from unknown WordPress plugins\"), __(\"Services embedded after the page load via JavaScript\"), __(\"Complete coverage of your individual use case\")].map(function (text, i) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n style: {\n marginBottom: 10\n }\n }, /*#__PURE__*/React.createElement(CloseCircleTwoTone, {\n twoToneColor: \"#eb2f96\"\n }), \"\\xA0\\xA0\", text);\n })))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"Just by using the scanner, you will not set up your cookie banner one hundred percent correctly. If it is too complex or time-consuming for you to set up the cookie banner yourself, just let one of our {{a}}cookie experts{{/a}} set it up for you!\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n style: {\n textDecoration: \"underline\",\n cursor: \"pointer\"\n },\n onClick: openDialog\n })\n })));\n }\n\n case \"cookie\":\n return __(\"What are services? Services can be external applications such as Google Analytics or WordPress plugins or themes that process personal data (e.g. IP address) and/or set cookies. Cookies (and similar technologies) are small text files that are stored on the device of visitors to your website. You can store information about the visitor in cookies, such as the website's language, or unique advertising IDs to display personalized advertising. You, as the site owner, must ensure that cookies are only placed on your visitors' devices and personal data are only processed if they have given their explicit consent. Unless you have a legitimate interest in the legal sense to do so even without consent. You can define here all the services you use and their cookies with their legal and technical information.\");\n\n case \"blocker\":\n return __(\"What is a content blocker? Imagine that a user of your website does not accept all services. At the same time, you have integrated e.g. a YouTube video that sets cookies that the visitor has not agreed to. According to the ePrivacy Directive, this is prohibited. Content blockers automatically replace iframes, script and link tags like YouTube videos for such users and offer them to watch the video as soon as they agree to load it.\");\n\n case \"list-of-consents\":\n return _i(__(\"Consents are automatically documented in order to be able to prove compliance with the legal requirements according to {{a}}Art. 5 GDPR{{/a}} and, in case of dispute, to prove how the consent was obtained.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://gdpr-info.eu/art-5-gdpr/\",\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n });\n\n case \"shortcodes\":\n return _i(__(\"To comply with the ePrivacy Directive, you must provide links in your footer and/or privacy policy so that your website visitors can view the history of consents and change or revoke consent.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n }) + (tcf ? \" \".concat(__(\"To meet the requirements of the TCF standard, the shortcodes should be placed near the link to the privacy policy.\")) : \"\");\n\n case \"tcf-vendor\":\n return _i(__(\"What is a TCF vendor? According to the IAB Europe Transparency and Consent Framework (TCF), any service (e.g. Google for Google Ads) that wants to use consents according to the TCF standard must register as a vendor in the {{a}}Global Vendor List (GVL){{/a}}. All TCF vendors specify for which purposes they need consent to process data and set cookies and which features they can offer with these consents. They also provide a link to their privacy policy for further information. You, as a website operator, must obtain consent in your cookie banner for all vendors you work with. You can limit the requested purposes of vendors to keep consents as privacy-friendly as possible.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://iabeurope.eu/vendor-list-tcf-v2-0/\",\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n });\n\n default:\n return \"\";\n }\n}\n\nexport { useConfigHintText };","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 };"],"names":["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","ConfigContent","children","_ref$maxWidth","maxWidth","_ref$style","className","ConfigHintModal","identifier","title","optionStore","modalHints","others","_useState","useState","_useState2","visible","setVisible","indexOf","length","description","questionInDesc","split","useTitle","concat","__","useDescription","replace","trim","handleOk","setModalHintSeen","color","closable","onOk","okText","cancelButtonProps","display","Meta","PresetCardObserved","props","version","name","logoUrl","disabled","attributes_name","tier","tags","onSelect","renderActions","isDemoEnv","_useProModal","useProModal","feature","toLowerCase","undefined","isPro","openProModal","open","modal","disabledTranslatedText","alreadyExistsTranslatedText","showProBadge","Fragment","key","dangerouslySetInnerHTML","__html","hoverable","opacity","onClick","e","closest","cover","src","actions","Object","keys","map","PresetSelectorObserved","fetchingPresets","presets","_ref$quickLinks","quickLinks","_ref$showSearch","showSearch","_ref$showDisabled","showDisabled","_ref$showHidden","showHidden","getOtherOptionsFromWindow","term","setTerm","_useState3","_useState4","isShowOnlyFree","setShowOnlyFree","usePresets","useMemo","filter","_ref3","Boolean","singleTerm","_ref4","hidden","_ref5","_ref6","id","margin","spinning","marginBottom","autoFocus","placeholder","marginTop","_i","strong","a","href","rel","preset","useConfigHintText","tcf","openDialog","u","span","paddingRight","text","i","twoToneColor","textAlign","type","height","textDecoration","cursor","useCookieExpertsModal","assetsUrl","icon","okButtonProps","content","paddingTop","size"],"sourceRoot":""}
public/dist/152.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[152],{9372:function(e,t,a){a.d(t,{ZG:function(){return Q},PS:function(){return W},y$:function(){return X}});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),m=a(7938),d=a(6315),p=a(7228),g=a(5450),h=a.n(g),v=a(7363),f=a(3554),y=a(4947);function E(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 R=a(2200),b=a(5071),_=a(4614),k=a(6711),Z=a(238),I=function(){var e=(0,Z.R)(),t=e.group,a=(0,k.useRouteMatch)().params,n=isNaN(+a.cookie)?0:+a.cookie,o=!!a.cookie,r=t.cookies.entries.get(+a.cookie)||new y.U(t.cookies,{id:0});return{routeGroup:e,cookie:r,id:n,queried:o,fetched:0!==r.key}},w=a(6478),N=a(8920),O=a(2519),T=a(5408),M=a(8618),P=a(4342),S=a(3839),C=(0,f.Pi)((function(e){var t,a,n=e.showNoticePresetGroupNotFound,o=void 0!==n&&n,i=e.groupNotice,c=e.providerPrivacyPolicyNotice,l=(0,_.m)(),s=l.cookieStore,u=s.groups,p=s.essentialGroup,g=l.optionStore,f=g.ePrivacyUSA,y=g.consentForwarding,R=I(),k=R.cookie,Z=R.fetched,C="real-cookie-banner"===(null===(t=k.presetModel)||void 0===t||null===(a=t.data)||void 0===a?void 0:a.identifier),D=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,T.W)({location:S.V,params:{slug:t}});case 3:return e.abrupt("return",e.sent.filter((function(e){return e.ID!==k.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)}}(),[k.key]),x=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t,a){var n,o,r,i;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,D(t);case 2:if(!(n=e.sent)){e.next=19;break}if(a){e.next=8;break}throw(0,b.__)("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,D(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)}}(),[D]);return React.createElement(React.Fragment,null,React.createElement(M.C,{offset:W.labelCol.span},(0,b.__)("General service configuration")," ",React.createElement(P.r,{url:(0,b.__)("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(d.Z.Item,{label:(0,b.__)("Name"),required:!0},React.createElement(d.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please provide a name!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".'))),React.createElement(d.Z.Item,{label:(0,b.__)("Status"),required:!0},React.createElement(d.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please choose a status!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"publish"},(0,b.__)("Enabled")),React.createElement(N.ZP.Button,{value:"private"},(0,b.__)("Disabled")),React.createElement(N.ZP.Button,{value:"draft"},(0,b.__)("Draft")))),React.createElement("p",{className:"description"},(0,b.__)('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(d.Z.Item,{label:(0,b.__)("Group"),required:!0},React.createElement(d.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:(0,b.__)("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,b.__)("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,b.__)("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",o))),!!i&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:i}}))),React.createElement(d.Z.Item,{label:(0,b.__)("Provider"),required:!0},React.createElement(d.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please name a provider!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)('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(d.Z.Item,{label:(0,b.__)("Purpose")},React.createElement(d.Z.Item,{name:"purpose",noStyle:!0},React.createElement(O.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},(0,b.__)("The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how personal data is collected and how cookies are used for this purpose."))),React.createElement(d.Z.Item,{label:(0,b.__)("Privacy policy of the provider")},React.createElement(d.Z.Item,{name:"providerPrivacyPolicy",noStyle:!0,rules:[{type:"url",message:(0,b.__)("Please provide a valid URL!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),!!c&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:c}}))),React.createElement(d.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")===p.key;return React.createElement(React.Fragment,null,React.createElement(d.Z.Item,{label:(0,b.__)("Consent Forwarding Unique Name"),style:{display:y?void 0:"none"}},React.createElement(d.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:(t=(0,m.Z)(h().mark((function e(t,o){var r;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=!y||!o,e.abrupt("return",x(o||E(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(O.Z,{placeholder:Z?"":E(a("name"))})),React.createElement("p",{className:"description"},(0,b.__)("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,b.__)("You can define a unique name, but essential services are automatically accepted when a consent is forwarded.")))),React.createElement(d.Z.Item,{label:(0,b.__)("Legal basis"),required:!0},React.createElement(d.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(N.ZP.Group,{disabled:o},React.createElement(N.ZP.Button,{value:"consent"},(0,b.__)("Consent (Opt-in)")),React.createElement(N.ZP.Button,{value:"legitimate-interest"},(0,b.__)("Legitimate interest (Opt-out)")),C&&React.createElement(N.ZP.Button,{value:"legal-requirement"},(0,b.__)("Compliance with a legal obligation")))),React.createElement("p",{className:"description"},(0,b._i)((0,b.__)('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&&!C&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,b.__)('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(d.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(d.Z.Item,{label:(0,b.__)("US data processing"),style:{display:f?void 0:"none"}},React.createElement(d.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("This service processes data in the USA or transfers data to US companies or servers")),t("ePrivacyUSA")&&t("group")===p.key&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("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(d.Z.Item,{label:(0,b.__)("No technical definitions")},React.createElement(d.Z.Item,{name:"noTechnicalDefinitions",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script."))))})),D=a(1857),x=a(6965),F=a(3251),A=a(7088),B=a(4290),U=a(9033),G={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},q=(0,f.Pi)((function(){var e=(0,F.w)();return React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions||e.technicalDefinitions.length!==t.technicalDefinitions.length}},(function(t){return(0,t.getFieldValue)("noTechnicalDefinitions")?null:React.createElement(d.Z.List,{name:"technicalDefinitions"},(function(t,a){var n=a.add,c=a.remove;return React.createElement(React.Fragment,null,React.createElement(M.C,{offset:W.labelCol.span,description:(0,b.__)("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,b.__)("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:150},(0,b.__)("Cookie type")),React.createElement("td",null,React.createElement(D.Z,{title:(0,b._i)((0,b.__)("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,b.__)("Technical cookie name")," ",React.createElement(A.Z,null)))),React.createElement("td",null,React.createElement(D.Z,{title:(0,b.__)("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,(0,b.__)("Technical cookie host")," ",React.createElement(A.Z,null)))),React.createElement("td",null,React.createElement(D.Z,{title:(0,b.__)("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,(0,b.__)("Cookie duration")," ",React.createElement(A.Z,null)))),React.createElement("td",{width:50,align:"right"}," "))),React.createElement("tbody",null,t.map((function(a){return React.createElement("tr",{key:a.key},React.createElement("td",null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"type"],name:[a.name,"type"],rules:[{required:!0,message:(0,b.__)("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},e[t].name)}))))),React.createElement("td",null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"name"],name:[a.name,"name"],rules:[{required:!0,message:(0,b.__)("Please provide a technical cookie name!")}]}),React.createElement(O.Z,null)),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.name)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.name)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"name"]);return[/\[/gm,[/([{]+)/gm,function(e){return 1===e.length}],/\(/gm].filter((function(e){return Array.isArray(e)?e[0].test(t)&&t.match(e[0]).filter(e[1]).length>0:e.test(t)})).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,b._i)((0,b.__)("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(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.type)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.type)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"type"]);return React.createElement(React.Fragment,null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"host"],name:[a.name,"host"],rules:[{validator:function(e,a){return(["local","session","indexedDb"].indexOf(t)>-1?(0,x.C)(a):/^\.?(([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(a))||""===a&&"http"!==t?Promise.resolve():Promise.reject((0,b.__)("Please provide a valid hostname!"))}}]}),React.createElement(O.Z,null)),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.host)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.host)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"host"]);return t.startsWith("*.")&&t.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,b._i)((0,b.__)("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",t.substr(2)),{code:React.createElement("code",null)})))})))}))),React.createElement("td",null,React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.type)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.type)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"type"]);return["local","session","indexedDb","flash"].indexOf(t)>-1?null:React.createElement(React.Fragment,null,React.createElement(d.Z.Item,(0,o.Z)({},a,{fieldKey:[a.fieldKey,"sessionDuration"],name:[a.name,"sessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(i.Z,{style:{float:"left",marginTop:5}},React.createElement(D.Z,{title:(0,b.__)("This cookie is active as long as the session is active")},React.createElement("span",null,(0,b.__)("Session"))))),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.sessionDuration)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.sessionDuration)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"sessionDuration"]);return React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"duration"],name:[a.name,"duration"],rules:[{required:!t,message:(0,b.__)("Please provide a valid duration!")}]}),React.createElement(O.Z,{min:"0",addonAfter:React.createElement(d.Z.Item,{name:[a.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please provide an unit!")}]},React.createElement(r.Z,null,React.createElement(r.Z.Option,{value:"s"},(0,b.__)("second(s)")),React.createElement(r.Z.Option,{value:"m"},(0,b.__)("minute(s)")," "),React.createElement(r.Z.Option,{value:"h"},(0,b.__)("hour(s)")," "),React.createElement(r.Z.Option,{value:"d"},(0,b.__)("day(s)")," "),React.createElement(r.Z.Option,{value:"mo"},(0,b.__)("month(s)")," "),React.createElement(r.Z.Option,{value:"y"},(0,b.__)("year(s)")," "))),type:"number",style:{maxWidth:200,display:t?"none":void 0}}))})))}))),React.createElement("td",null,t.length>1?React.createElement("a",{className:"button button-small",onClick:function(){c(a.name)}},React.createElement(B.Z,null)):null))}))),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:5,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:function(){n(X)}},React.createElement(U.Z,null)," ",(0,b.__)("Add another cookie definition")))))))}))}))})),L=a(8950),V=a(294),H=(0,f.Pi)((function(e){var t=e.manager,a=e.onlyWhenManagerIs,n=e.hasManagerAttributeName,o=e.thisIsManagerAttributeName,r=e.inEventNameAttributeName,i=e.outEventNameAttributeName,c=(0,_.m)(),l=c.cookieStore,s=c.optionStore,u=s.setCookiesViaManager,m=s[n],p=s.others.isPro,g=l.essentialGroup,h=I().cookie;return u===a&&p&&React.createElement(React.Fragment,null,React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement(D.Z,{title:m&&h.key!==m?(0,b.__)("You have already defined a %s service.",t):""},React.createElement("span",null,React.createElement(d.Z.Item,{name:o,valuePropName:"checked",noStyle:!0},React.createElement(w.Z,{disabled:m&&h.key!==m})),React.createElement("span",null,"  ",(0,b.__)("Opt-in script below loads %s",t))))),React.createElement(d.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(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("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(d.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(d.Z.Item,{label:(0,b.__)("Event names for %s",t)},React.createElement(d.Z.Item,{name:r,noStyle:!0},React.createElement(O.Z,{addonBefore:(0,b.__)("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(d.Z.Item,{name:i,noStyle:!0},React.createElement(O.Z,{addonBefore:(0,b.__)("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("div",null,React.createElement(P.r,{url:(0,b.__)("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),(c.length>0||l.length>0)&&!m&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("You have not yet defined a %s service. To use event names, you must create a %s service.",t,t))))})))})),j=["codeOptIn","codeOptOut","codeOnPageLoad"],Y=/{{([A-Za-z0-9_]+)}}/gm,$=(0,f.Pi)((function(e){var t=e.dynamicFields;return React.createElement(d.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(Y)).map((function(e){return(0,p.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,b.__)("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(d.Z.Item,{key:e,label:o||React.createElement("code",null,e),required:!0},React.createElement(d.Z.Item,{noStyle:!0,name:a,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(O.Z,{placeholder:l?"".concat((0,b.__)("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}))})),K=a(7870),J=(0,f.Pi)((function(e){var t=e.name,a=(0,_.m)().optionStore.others.activePlugins,n=(0,v.useMemo)((function(){return Object.keys(a)}),[a]);return React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){return e[t]!==a[t]}},(function(e){var o=(0,e.getFieldValue)(t),r=(0,K.Z)(o.matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)).map((function(e){return(0,p.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,b._i)((0,b.__)("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)})))}))})),z=(0,f.Pi)((function(e){var t=e.notices,a=e.dynamicFields,n=(0,_.m)(),o=n.cookieStore,r=n.optionStore,i=r.setCookiesViaManager,c=r.others.isPro,l=o.essentialGroup,s=(0,v.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(M.C,{offset:W.labelCol.span,description:"none"===i?(0,b.__)("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,b.__)("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?V.Gh:V.Ki)},(0,b.__)("Technical handling")),React.createElement(H,{manager:V.Gh,onlyWhenManagerIs:"googleTagManager",hasManagerAttributeName:"hasGTM",thisIsManagerAttributeName:"thisIsGoogleTagManager",inEventNameAttributeName:"googleTagManagerInEventName",outEventNameAttributeName:"googleTagManagerOutEventName"}),React.createElement(H,{manager:V.Ki,onlyWhenManagerIs:"matomoTagManager",hasManagerAttributeName:"hasMTM",thisIsManagerAttributeName:"thisIsMatomoTagManager",inEventNameAttributeName:"matomoTagManagerInEventName",outEventNameAttributeName:"matomoTagManagerOutEventName"}),React.createElement($,{dynamicFields:a}),(null==t?void 0:t.length)>0&&React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},null==t?void 0:t.map((function(e){var t=e.message,a=e.severity;return React.createElement("div",{className:"notice notice-".concat(a," below-h2 notice-alt"),key:t},React.createElement("p",{dangerouslySetInnerHTML:{__html:t}}))}))),React.createElement(d.Z.Item,{label:(0,b.__)("Code executed on opt-in")},"googleTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptInNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptInNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Ki),{u:React.createElement("u",null)})))})),React.createElement(d.Z.Item,{name:"codeOptIn",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOptIn"})),React.createElement(d.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(d.Z.Item,{label:(0,b.__)("Code executed on opt-out"),style:s(t("group")!==l.key)},React.createElement(d.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(d.Z.Item,{name:"codeOptOutDelete",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("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(d.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(d.Z.Item,{name:"codeOptOutNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptOutNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Ki),{u:React.createElement("u",null)})))})),React.createElement(d.Z.Item,{name:"codeOptOut",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOptOut"})))})),React.createElement(d.Z.Item,{label:(0,b.__)("Code executed on page load")},React.createElement(d.Z.Item,{name:"codeOnPageLoad",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOnPageLoad"})))})),W={labelCol:{span:6},wrapperCol:{span:16}},X={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",sessionDuration:!1},Q=(0,f.Pi)((function(e){var t,a,g,f,Z,w,N,O=e.preset,T=e.attributes,M=e.navigateAfterCreation,S=void 0===M||M,D=e.scrollToTop,x=void 0===D||D,F=e.onCreated,A=I(),B=A.routeGroup,U=B.group,G=B.link,L=A.cookie,V=A.id,H=A.queried,j=A.fetched,Y=d.Z.useForm(),$=(0,p.Z)(Y,1)[0],K=(0,v.useState)(!1),J=(0,p.Z)(K,2),Q=J[0],ee=J[1],te=(0,v.useState)(!1),ae=(0,p.Z)(te,2),ne=ae[0],oe=ae[1],re=(0,k.useHistory)(),ie=(0,_.m)().cookieStore,ce=ie.essentialGroup,le=(null==L?void 0:L.presetModel)||ie.presetsCookie.get(null==O?void 0:O.identifier),se=T?T.group?(null===(t=ie.groups.sortedGroups.filter((function(e){return e.data.name===T.group})))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.key)||"preset-group-not-found":void 0:U.key,ue=Object.keys((null==O?void 0:O.contentBlockerPresets)||[]).length>0,me=(null==T?void 0:T.createContentBlockerNotice)||(null==le||null===(g=le.attributes)||void 0===g?void 0:g.createContentBlockerNotice),de=!(null==le||!le.data.scanned||null===(f=le.attributes)||void 0===f||!f.codeOptIn||-1!==["wordpress-comments"].indexOf(le.data.identifier)),pe=j?{name:L.data.title.raw,status:L.data.status,group:U.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==T?void 0:T.name)||"",status:"publish",group:"number"==typeof se&&se||void 0,purpose:(null==T?void 0:T.purpose)||"",provider:(null==T?void 0:T.provider)||"",providerPrivacyPolicy:(null==T?void 0:T.providerPrivacyPolicy)||"",consentForwardingUniqueName:(null==T?void 0:T.consentForwardingUniqueName)||(null==O?void 0:O.identifier)||"",noTechnicalDefinitions:(null==T?void 0:T.noTechnicalDefinitions)||!1,legalBasis:(null==T?void 0:T.legalBasis)||"consent",ePrivacyUSA:(null==T?void 0:T.ePrivacyUSA)||!1,technicalDefinitions:null!=T&&T.technicalDefinitions?JSON.parse(JSON.stringify(T.technicalDefinitions)):[X],codeDynamics:(null==T?void 0:T.codeDynamics)||{},thisIsGoogleTagManager:(null==T?void 0:T.thisIsGoogleTagManager)||!1,googleTagManagerInEventName:(null==T?void 0:T.googleTagManagerInEventName)||"",googleTagManagerOutEventName:(null==T?void 0:T.googleTagManagerOutEventName)||"",thisIsMatomoTagManager:(null==T?void 0:T.thisIsMatomoTagManager)||!1,matomoTagManagerInEventName:(null==T?void 0:T.matomoTagManagerInEventName)||"",matomoTagManagerOutEventName:(null==T?void 0:T.matomoTagManagerOutEventName)||"",codeOptIn:(null==T?void 0:T.codeOptIn)||"",codeOptInNoGoogleTagManager:(null==T?void 0:T.codeOptInNoGoogleTagManager)||!1,codeOptInNoMatomoTagManager:(null==T?void 0:T.codeOptInNoMatomoTagManager)||!1,codeOptOut:(null==T?void 0:T.codeOptOut)||"",codeOnPageLoad:(null==T?void 0:T.codeOnPageLoad)||"",codeOptOutNoGoogleTagManager:(null==T?void 0:T.codeOptOutNoGoogleTagManager)||!1,codeOptOutNoMatomoTagManager:(null==T?void 0:T.codeOptOutNoMatomoTagManager)||!1,codeOptOutDelete:(null==T?void 0:T.codeOptOutDelete)||!1,createContentBlocker:"boolean"==typeof(null==T?void 0:T.createContentBlocker)?T.createContentBlocker:ue&&!(null!=T&&T.deactivateAutomaticContentBlockerCreation),createContentBlockerId:null==T?void 0:T.createContentBlockerId,presetCheck:!O};(0,v.useEffect)((function(){H&&!j&&U.cookies.getSingle({params:{id:V,context:"edit"}})}),[H,j]),(0,v.useEffect)((function(){le&&!le.attributes&&le.fetchAttributes()}),[le]),(0,v.useEffect)((function(){x&&(0,R.X)(0)}),[]);var ge=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){var a,n,o,r,i,c,m,d,p,g,v,f,R,_,k,Z,I,w;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,a=function(e){return"encodedScript:".concat(btoa(e))},n=t.name,o=t.status,r=t.purpose,i=t.noTechnicalDefinitions,c=t.technicalDefinitions,m=t.group,d=t.codeDynamics,p=t.createContentBlocker,g=t.createContentBlockerId,v=t.consentForwardingUniqueName,f=t.codeOptIn,R=t.codeOptOut,_=t.codeOnPageLoad,k=(0,u.Z)(t,["name","status","purpose","noTechnicalDefinitions","technicalDefinitions","group","codeDynamics","createContentBlocker","createContentBlockerId","consentForwardingUniqueName","codeOptIn","codeOptOut","codeOnPageLoad"]),delete(Z=(0,s.Z)((0,s.Z)({},k),{},{codeOptIn:a(f),codeOptOut:a(R),codeOnPageLoad:a(_),noTechnicalDefinitions:i,codeDynamics:JSON.stringify(d),technicalDefinitions:JSON.stringify(i?pe.technicalDefinitions:c),consentForwardingUniqueName:v||E(n)})).presetCheck,!H){e.next=15;break}return L.setName(n),L.setStatus(o),L.setPurpose(r),L.setMeta(Z),L.setGroup(m),e.next=13,L.patch();case 13:e.next=20;break;case 15:return I=ie.groups.entries.get(m),w=new y.U(I.cookies,{title:{rendered:n},content:{rendered:r,protected:!1},status:o,meta:(0,s.Z)((0,s.Z)({},Z),{},{presetId:null==O?void 0:O.identifier,presetVersion:null==O?void 0:O.version})}),e.next=19,w.persist();case 19:null==F||F(w);case 20:oe(!1),l.ZP.success((0,b.__)("You have successfully saved the service.")+(p?" ".concat((0,b.__)("Continue with the corresponding Content Blocker!")):"")),S&&setTimeout((function(){return p?re.push("/blocker/new?force=".concat(g||O.identifier,"&cookieCreationPrompt=1").concat("string"==typeof S?"&navigateAfterCreation=".concat(encodeURIComponent(S)):"")):"string"==typeof S?window.location.href=S:re.push("".concat(G.slice(1),"/").concat(m))}),0),e.next=29;break;case 25:throw e.prev=25,e.t0=e.catch(0),l.ZP.error(e.t0.responseJSON.message),e.t0;case 29:case"end":return e.stop()}}),e,null,[[0,25]])})));return function(t){return e.apply(this,arguments)}}(),[H,L,ie]),he=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ee(!0),e.prev=1,e.next=4,ge(t);case 4:e.next=8;break;case 6:e.prev=6,e.t0=e.catch(1);case 8:return e.prev=8,ee(!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)}}(),[$,ge]),ve=(0,v.useCallback)((function(e){l.ZP.error((0,b.__)("The service could not be saved due to missing/invalid form values.")),e.errorFields.length&&$.scrollToField(e.errorFields[0].name,{behavior:"smooth",block:"center"})}),[]),fe=(0,v.useCallback)((function(){return!ne||(0,b.__)('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}),[$,pe]);return H&&!j?React.createElement(c.Z,{active:!0,paragraph:{rows:8}}):React.createElement(n.Z,{spinning:Q||(null==le?void 0:le.busy)||!1},React.createElement(k.Prompt,{message:fe}),React.createElement(d.Z,(0,o.Z)({name:"cookie-".concat(U.key,"-").concat(V),form:$},W,{initialValues:pe,onFinish:he,onFinishFailed:ve,onValuesChange:function(e){var t=e.technicalDefinitions;oe(!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(C,{groupNotice:(null==T?void 0:T.groupNotice)||(null==le||null===(Z=le.attributes)||void 0===Z?void 0:Z.groupNotice),providerPrivacyPolicyNotice:j||null==le||!le.attributes||pe.providerPrivacyPolicy?null:(0,b.__)('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"),showNoticePresetGroupNotFound:"preset-group-not-found"===se&&T.group}),React.createElement(q,null),React.createElement(z,{dynamicFields:(null==T?void 0:T.dynamicFields)||(null==le||null===(w=le.attributes)||void 0===w?void 0:w.dynamicFields),notices:[{message:(null==T?void 0:T.technicalHandlingNotice)||(null==le||null===(N=le.attributes)||void 0===N?void 0:N.technicalHandlingNotice),severity:"info"},{message:de&&!ue&&(0,b.__)("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.",le.data.attributes_name),severity:"warning"},{message:de&&ue&&(0,b.__)("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.",le.data.attributes_name),severity:"warning"}].filter((function(e){return e.message}))}),!!O&&React.createElement(React.Fragment,null,ue&&S&&React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(d.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:function(e,a){return t("group")===ce.key&&a?Promise.reject((0,b.__)('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,b.__)("Create content blocker for this service.")))})),React.createElement(d.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(O.contentBlockerPresets).length>1&&React.createElement(d.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:(0,b.__)("Please select a template for the Content Blocker!")}]},React.createElement(r.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:(0,b.__)("Select Content Blocker template...")},Object.keys(O.contentBlockerPresets).map((function(e){return React.createElement(r.Z.Option,{key:e,value:e},O.contentBlockerPresets[e])})))),React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{marginTop:10}},React.createElement("p",null,(0,b.__)("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.")))),!!me&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:me}})))}))),React.createElement(d.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:function(e){return e||void 0},message:(0,b.__)("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:W.labelCol.span}},React.createElement(i.Z,null,(0,b.__)("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,b.__)("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))),React.createElement(d.Z.Item,{className:"rcb-form-sticky-submit"},React.createElement("span",null,React.createElement("input",{type:"submit",className:"button button-primary right",value:(0,b.__)("Save")})))))}))},8618: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))}},7802: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}},238:function(e,t,a){a.d(t,{R:function(){return c}});var n=a(6711),o=a(4614),r=a(7363),i=a(9323),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}}},3251: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,{w:function(){return n}})}}]);
2
- //# sourceMappingURL=152.lite.js.map?ver=1b7b0986ee2a7c18628a
1
+ "use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[152],{9372:function(e,t,a){a.d(t,{ZG:function(){return Q},PS:function(){return W},y$:function(){return X}});var n=a(5744),o=a(4741),r=a(2027),i=a(8911),c=a(8791),l=a(175),s=a(2711),u=a(4115),m=a(7938),d=a(1593),p=a(7228),g=a(5450),h=a.n(g),v=a(7363),f=a(3554),y=a(4947);function E(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 R=a(2200),b=a(5071),_=a(4614),k=a(6711),I=a(238),Z=function(){var e=(0,I.R)(),t=e.group,a=(0,k.useRouteMatch)().params,n=isNaN(+a.cookie)?0:+a.cookie,o=!!a.cookie,r=t.cookies.entries.get(+a.cookie)||new y.U(t.cookies,{id:0});return{routeGroup:e,cookie:r,id:n,queried:o,fetched:0!==r.key}},w=a(6428),N=a(2780),O=a(6619),T=a(5408),M=a(8618),P=a(4342),S=a(3839),C=(0,f.Pi)((function(e){var t,a,n=e.showNoticePresetGroupNotFound,o=void 0!==n&&n,i=e.groupNotice,c=e.providerPrivacyPolicyNotice,l=(0,_.m)(),s=l.cookieStore,u=s.groups,p=s.essentialGroup,g=l.optionStore,f=g.ePrivacyUSA,y=g.consentForwarding,R=Z(),k=R.cookie,I=R.fetched,C="real-cookie-banner"===(null===(t=k.presetModel)||void 0===t||null===(a=t.data)||void 0===a?void 0:a.identifier),D=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,T.W)({location:S.V,params:{slug:t}});case 3:return e.abrupt("return",e.sent.filter((function(e){return e.ID!==k.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)}}(),[k.key]),x=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t,a){var n,o,r,i;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,D(t);case 2:if(!(n=e.sent)){e.next=19;break}if(a){e.next=8;break}throw(0,b.__)("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,D(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)}}(),[D]);return React.createElement(React.Fragment,null,React.createElement(M.C,{offset:W.labelCol.span},(0,b.__)("General service configuration")," ",React.createElement(P.r,{url:(0,b.__)("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(d.Z.Item,{label:(0,b.__)("Name"),required:!0},React.createElement(d.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please provide a name!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".'))),React.createElement(d.Z.Item,{label:(0,b.__)("Status"),required:!0},React.createElement(d.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please choose a status!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"publish"},(0,b.__)("Enabled")),React.createElement(N.ZP.Button,{value:"private"},(0,b.__)("Disabled")),React.createElement(N.ZP.Button,{value:"draft"},(0,b.__)("Draft")))),React.createElement("p",{className:"description"},(0,b.__)('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(d.Z.Item,{label:(0,b.__)("Group"),required:!0},React.createElement(d.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:(0,b.__)("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,b.__)("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,b.__)("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",o))),!!i&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:i}}))),React.createElement(d.Z.Item,{label:(0,b.__)("Provider"),required:!0},React.createElement(d.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please name a provider!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)('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(d.Z.Item,{label:(0,b.__)("Purpose")},React.createElement(d.Z.Item,{name:"purpose",noStyle:!0},React.createElement(O.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},(0,b.__)("The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how personal data is collected and how cookies are used for this purpose."))),React.createElement(d.Z.Item,{label:(0,b.__)("Privacy policy of the provider")},React.createElement(d.Z.Item,{name:"providerPrivacyPolicy",noStyle:!0,rules:[{type:"url",message:(0,b.__)("Please provide a valid URL!")}]},React.createElement(O.Z,null)),React.createElement("p",{className:"description"},(0,b.__)("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),!!c&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:c}}))),React.createElement(d.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")===p.key;return React.createElement(React.Fragment,null,React.createElement(d.Z.Item,{label:(0,b.__)("Consent Forwarding Unique Name"),style:{display:y?void 0:"none"}},React.createElement(d.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:(t=(0,m.Z)(h().mark((function e(t,o){var r;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=!y||!o,e.abrupt("return",x(o||E(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(O.Z,{placeholder:I?"":E(a("name"))})),React.createElement("p",{className:"description"},(0,b.__)("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,b.__)("You can define a unique name, but essential services are automatically accepted when a consent is forwarded.")))),React.createElement(d.Z.Item,{label:(0,b.__)("Legal basis"),required:!0},React.createElement(d.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(N.ZP.Group,{disabled:o},React.createElement(N.ZP.Button,{value:"consent"},(0,b.__)("Consent (Opt-in)")),React.createElement(N.ZP.Button,{value:"legitimate-interest"},(0,b.__)("Legitimate interest (Opt-out)")),C&&React.createElement(N.ZP.Button,{value:"legal-requirement"},(0,b.__)("Compliance with a legal obligation")))),React.createElement("p",{className:"description"},(0,b._i)((0,b.__)('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&&!C&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",null,(0,b.__)('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(d.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(d.Z.Item,{label:(0,b.__)("US data processing"),style:{display:f?void 0:"none"}},React.createElement(d.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("This service processes data in the USA or transfers data to US companies or servers")),t("ePrivacyUSA")&&t("group")===p.key&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("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(d.Z.Item,{label:(0,b.__)("No technical definitions")},React.createElement(d.Z.Item,{name:"noTechnicalDefinitions",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script."))))})),D=a(7452),x=a(6965),F=a(3251),A=a(1294),B=a(6999),U=a(8172),G={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},q=(0,f.Pi)((function(){var e=(0,F.w)();return React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.noTechnicalDefinitions!==t.noTechnicalDefinitions||e.technicalDefinitions.length!==t.technicalDefinitions.length}},(function(t){return(0,t.getFieldValue)("noTechnicalDefinitions")?null:React.createElement(d.Z.List,{name:"technicalDefinitions"},(function(t,a){var n=a.add,c=a.remove;return React.createElement(React.Fragment,null,React.createElement(M.C,{offset:W.labelCol.span,description:(0,b.__)("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,b.__)("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:150},(0,b.__)("Cookie type")),React.createElement("td",null,React.createElement(D.Z,{title:(0,b._i)((0,b.__)("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,b.__)("Technical cookie name")," ",React.createElement(A.Z,null)))),React.createElement("td",null,React.createElement(D.Z,{title:(0,b.__)("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,(0,b.__)("Technical cookie host")," ",React.createElement(A.Z,null)))),React.createElement("td",null,React.createElement(D.Z,{title:(0,b.__)("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,(0,b.__)("Cookie duration")," ",React.createElement(A.Z,null)))),React.createElement("td",{width:50,align:"right"}," "))),React.createElement("tbody",null,t.map((function(a){return React.createElement("tr",{key:a.key},React.createElement("td",null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"type"],name:[a.name,"type"],rules:[{required:!0,message:(0,b.__)("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},e[t].name)}))))),React.createElement("td",null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"name"],name:[a.name,"name"],rules:[{required:!0,message:(0,b.__)("Please provide a technical cookie name!")}]}),React.createElement(O.Z,null)),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.name)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.name)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"name"]);return[/\[/gm,[/([{]+)/gm,function(e){return 1===e.length}],/\(/gm].filter((function(e){return Array.isArray(e)?e[0].test(t)&&t.match(e[0]).filter(e[1]).length>0:e.test(t)})).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,b._i)((0,b.__)("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(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.type)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.type)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"type"]);return React.createElement(React.Fragment,null,React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"host"],name:[a.name,"host"],rules:[{validator:function(e,a){return(["local","session","indexedDb"].indexOf(t)>-1?(0,x.C)(a):/^\.?(([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(a))||""===a&&"http"!==t?Promise.resolve():Promise.reject((0,b.__)("Please provide a valid hostname!"))}}]}),React.createElement(O.Z,null)),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.host)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.host)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"host"]);return t.startsWith("*.")&&t.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,b._i)((0,b.__)("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",t.substr(2)),{code:React.createElement("code",null)})))})))}))),React.createElement("td",null,React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.type)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.type)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"type"]);return["local","session","indexedDb","flash"].indexOf(t)>-1?null:React.createElement(React.Fragment,null,React.createElement(d.Z.Item,(0,o.Z)({},a,{fieldKey:[a.fieldKey,"sessionDuration"],name:[a.name,"sessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(i.Z,{style:{float:"left",marginTop:5}},React.createElement(D.Z,{title:(0,b.__)("This cookie is active as long as the session is active")},React.createElement("span",null,(0,b.__)("Session"))))),React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){var n,o;return(null===(n=e.technicalDefinitions[a.name])||void 0===n?void 0:n.sessionDuration)!==(null===(o=t.technicalDefinitions[a.name])||void 0===o?void 0:o.sessionDuration)}},(function(e){var t=(0,e.getFieldValue)(["technicalDefinitions",a.name,"sessionDuration"]);return React.createElement(d.Z.Item,(0,o.Z)({},a,G,{fieldKey:[a.fieldKey,"duration"],name:[a.name,"duration"],rules:[{required:!t,message:(0,b.__)("Please provide a valid duration!")}]}),React.createElement(O.Z,{min:"0",addonAfter:React.createElement(d.Z.Item,{name:[a.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:(0,b.__)("Please provide an unit!")}]},React.createElement(r.Z,null,React.createElement(r.Z.Option,{value:"s"},(0,b.__)("second(s)")),React.createElement(r.Z.Option,{value:"m"},(0,b.__)("minute(s)")," "),React.createElement(r.Z.Option,{value:"h"},(0,b.__)("hour(s)")," "),React.createElement(r.Z.Option,{value:"d"},(0,b.__)("day(s)")," "),React.createElement(r.Z.Option,{value:"mo"},(0,b.__)("month(s)")," "),React.createElement(r.Z.Option,{value:"y"},(0,b.__)("year(s)")," "))),type:"number",style:{maxWidth:200,display:t?"none":void 0}}))})))}))),React.createElement("td",null,t.length>1?React.createElement("a",{className:"button button-small",onClick:function(){c(a.name)}},React.createElement(B.Z,null)):null))}))),React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:5,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:function(){n(X)}},React.createElement(U.Z,null)," ",(0,b.__)("Add another cookie definition")))))))}))}))})),L=a(8950),V=a(294),H=(0,f.Pi)((function(e){var t=e.manager,a=e.onlyWhenManagerIs,n=e.hasManagerAttributeName,o=e.thisIsManagerAttributeName,r=e.inEventNameAttributeName,i=e.outEventNameAttributeName,c=(0,_.m)(),l=c.cookieStore,s=c.optionStore,u=s.setCookiesViaManager,m=s[n],p=s.others.isPro,g=l.essentialGroup,h=Z().cookie;return u===a&&p&&React.createElement(React.Fragment,null,React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement(D.Z,{title:m&&h.key!==m?(0,b.__)("You have already defined a %s service.",t):""},React.createElement("span",null,React.createElement(d.Z.Item,{name:o,valuePropName:"checked",noStyle:!0},React.createElement(w.Z,{disabled:m&&h.key!==m})),React.createElement("span",null,"  ",(0,b.__)("Opt-in script below loads %s",t))))),React.createElement(d.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(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("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(d.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(d.Z.Item,{label:(0,b.__)("Event names for %s",t)},React.createElement(d.Z.Item,{name:r,noStyle:!0},React.createElement(O.Z,{addonBefore:(0,b.__)("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(d.Z.Item,{name:i,noStyle:!0},React.createElement(O.Z,{addonBefore:(0,b.__)("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("div",null,React.createElement(P.r,{url:(0,b.__)("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),(c.length>0||l.length>0)&&!m&&React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,b.__)("You have not yet defined a %s service. To use event names, you must create a %s service.",t,t))))})))})),j=["codeOptIn","codeOptOut","codeOnPageLoad"],Y=/{{([A-Za-z0-9_]+)}}/gm,$=(0,f.Pi)((function(e){var t=e.dynamicFields;return React.createElement(d.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(Y)).map((function(e){return(0,p.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,b.__)("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(d.Z.Item,{key:e,label:o||React.createElement("code",null,e),required:!0},React.createElement(d.Z.Item,{noStyle:!0,name:a,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(O.Z,{placeholder:l?"".concat((0,b.__)("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}))})),K=a(7870),J=(0,f.Pi)((function(e){var t=e.name,a=(0,_.m)().optionStore.others.activePlugins,n=(0,v.useMemo)((function(){return Object.keys(a)}),[a]);return React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,a){return e[t]!==a[t]}},(function(e){var o=(0,e.getFieldValue)(t),r=(0,K.Z)(o.matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)).map((function(e){return(0,p.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,b._i)((0,b.__)("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)})))}))})),z=(0,f.Pi)((function(e){var t=e.notices,a=e.dynamicFields,n=(0,_.m)(),o=n.cookieStore,r=n.optionStore,i=r.setCookiesViaManager,c=r.others.isPro,l=o.essentialGroup,s=(0,v.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(M.C,{offset:W.labelCol.span,description:"none"===i?(0,b.__)("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,b.__)("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?V.Gh:V.Ki)},(0,b.__)("Technical handling")),React.createElement(H,{manager:V.Gh,onlyWhenManagerIs:"googleTagManager",hasManagerAttributeName:"hasGTM",thisIsManagerAttributeName:"thisIsGoogleTagManager",inEventNameAttributeName:"googleTagManagerInEventName",outEventNameAttributeName:"googleTagManagerOutEventName"}),React.createElement(H,{manager:V.Ki,onlyWhenManagerIs:"matomoTagManager",hasManagerAttributeName:"hasMTM",thisIsManagerAttributeName:"thisIsMatomoTagManager",inEventNameAttributeName:"matomoTagManagerInEventName",outEventNameAttributeName:"matomoTagManagerOutEventName"}),React.createElement($,{dynamicFields:a}),(null==t?void 0:t.length)>0&&React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},null==t?void 0:t.map((function(e){var t=e.message,a=e.severity;return React.createElement("div",{className:"notice notice-".concat(a," below-h2 notice-alt"),key:t},React.createElement("p",{dangerouslySetInnerHTML:{__html:t}}))}))),React.createElement(d.Z.Item,{label:(0,b.__)("Code executed on opt-in")},"googleTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptInNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptInNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Ki),{u:React.createElement("u",null)})))})),React.createElement(d.Z.Item,{name:"codeOptIn",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOptIn"})),React.createElement(d.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(d.Z.Item,{label:(0,b.__)("Code executed on opt-out"),style:s(t("group")!==l.key)},React.createElement(d.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(d.Z.Item,{name:"codeOptOutDelete",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b.__)("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(d.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(d.Z.Item,{name:"codeOptOutNoGoogleTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Gh),{u:React.createElement("u",null)})))})),"matomoTagManager"===i&&c&&React.createElement(d.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(d.Z.Item,{name:"codeOptOutNoMatomoTagManager",valuePropName:"checked",noStyle:!0},React.createElement(w.Z,null)),React.createElement("span",null,"  ",(0,b._i)((0,b.__)("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",V.Ki),{u:React.createElement("u",null)})))})),React.createElement(d.Z.Item,{name:"codeOptOut",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOptOut"})))})),React.createElement(d.Z.Item,{label:(0,b.__)("Code executed on page load")},React.createElement(d.Z.Item,{name:"codeOnPageLoad",noStyle:!0},React.createElement(L.Y,{settings:window.cm_settings})),React.createElement(J,{name:"codeOnPageLoad"})))})),W={labelCol:{span:6},wrapperCol:{span:16}},X={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",sessionDuration:!1},Q=(0,f.Pi)((function(e){var t,a,g,f,I,w,N,O=e.preset,T=e.attributes,M=e.navigateAfterCreation,S=void 0===M||M,D=e.scrollToTop,x=void 0===D||D,F=e.onCreated,A=Z(),B=A.routeGroup,U=B.group,G=B.link,L=A.cookie,V=A.id,H=A.queried,j=A.fetched,Y=d.Z.useForm(),$=(0,p.Z)(Y,1)[0],K=(0,v.useState)(!1),J=(0,p.Z)(K,2),Q=J[0],ee=J[1],te=(0,v.useState)(!1),ae=(0,p.Z)(te,2),ne=ae[0],oe=ae[1],re=(0,k.useHistory)(),ie=(0,_.m)(),ce=ie.cookieStore,le=ie.optionStore.others.useEncodedStringForScriptInputs,se=ce.essentialGroup,ue=(null==L?void 0:L.presetModel)||ce.presetsCookie.get(null==O?void 0:O.identifier),me=T?T.group?(null===(t=ce.groups.sortedGroups.filter((function(e){return e.data.name===T.group})))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.key)||"preset-group-not-found":void 0:U.key,de=Object.keys((null==O?void 0:O.contentBlockerPresets)||[]).length>0,pe=(null==T?void 0:T.createContentBlockerNotice)||(null==ue||null===(g=ue.attributes)||void 0===g?void 0:g.createContentBlockerNotice),ge=!(null==ue||!ue.data.scanned||null===(f=ue.attributes)||void 0===f||!f.codeOptIn||-1!==["wordpress-comments"].indexOf(ue.data.identifier)),he=j?{name:L.data.title.raw,status:L.data.status,group:U.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==T?void 0:T.name)||"",status:"publish",group:"number"==typeof me&&me||void 0,purpose:(null==T?void 0:T.purpose)||"",provider:(null==T?void 0:T.provider)||"",providerPrivacyPolicy:(null==T?void 0:T.providerPrivacyPolicy)||"",consentForwardingUniqueName:(null==T?void 0:T.consentForwardingUniqueName)||(null==O?void 0:O.identifier)||"",noTechnicalDefinitions:(null==T?void 0:T.noTechnicalDefinitions)||!1,legalBasis:(null==T?void 0:T.legalBasis)||"consent",ePrivacyUSA:(null==T?void 0:T.ePrivacyUSA)||!1,technicalDefinitions:null!=T&&T.technicalDefinitions?JSON.parse(JSON.stringify(T.technicalDefinitions)):[X],codeDynamics:(null==T?void 0:T.codeDynamics)||{},thisIsGoogleTagManager:(null==T?void 0:T.thisIsGoogleTagManager)||!1,googleTagManagerInEventName:(null==T?void 0:T.googleTagManagerInEventName)||"",googleTagManagerOutEventName:(null==T?void 0:T.googleTagManagerOutEventName)||"",thisIsMatomoTagManager:(null==T?void 0:T.thisIsMatomoTagManager)||!1,matomoTagManagerInEventName:(null==T?void 0:T.matomoTagManagerInEventName)||"",matomoTagManagerOutEventName:(null==T?void 0:T.matomoTagManagerOutEventName)||"",codeOptIn:(null==T?void 0:T.codeOptIn)||"",codeOptInNoGoogleTagManager:(null==T?void 0:T.codeOptInNoGoogleTagManager)||!1,codeOptInNoMatomoTagManager:(null==T?void 0:T.codeOptInNoMatomoTagManager)||!1,codeOptOut:(null==T?void 0:T.codeOptOut)||"",codeOnPageLoad:(null==T?void 0:T.codeOnPageLoad)||"",codeOptOutNoGoogleTagManager:(null==T?void 0:T.codeOptOutNoGoogleTagManager)||!1,codeOptOutNoMatomoTagManager:(null==T?void 0:T.codeOptOutNoMatomoTagManager)||!1,codeOptOutDelete:(null==T?void 0:T.codeOptOutDelete)||!1,createContentBlocker:"boolean"==typeof(null==T?void 0:T.createContentBlocker)?T.createContentBlocker:de&&!(null!=T&&T.deactivateAutomaticContentBlockerCreation),createContentBlockerId:null==T?void 0:T.createContentBlockerId,presetCheck:!O};(0,v.useEffect)((function(){H&&!j&&U.cookies.getSingle({params:{id:V,context:"edit"}})}),[H,j]),(0,v.useEffect)((function(){ue&&!ue.attributes&&ue.fetchAttributes()}),[ue]),(0,v.useEffect)((function(){x&&(0,R.X)(0)}),[]);var ve=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){var a,n,o,r,i,c,m,d,p,g,v,f,R,_,k,I,Z,w;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,a=function(e){return le?"encodedScript:".concat(btoa(e)):e},n=t.name,o=t.status,r=t.purpose,i=t.noTechnicalDefinitions,c=t.technicalDefinitions,m=t.group,d=t.codeDynamics,p=t.createContentBlocker,g=t.createContentBlockerId,v=t.consentForwardingUniqueName,f=t.codeOptIn,R=t.codeOptOut,_=t.codeOnPageLoad,k=(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)({},k),{},{codeOptIn:a(f),codeOptOut:a(R),codeOnPageLoad:a(_),noTechnicalDefinitions:i,codeDynamics:JSON.stringify(d),technicalDefinitions:JSON.stringify(i?he.technicalDefinitions:c),consentForwardingUniqueName:v||E(n)})).presetCheck,!H){e.next=15;break}return L.setName(n),L.setStatus(o),L.setPurpose(r),L.setMeta(I),L.setGroup(m),e.next=13,L.patch();case 13:e.next=20;break;case 15:return Z=ce.groups.entries.get(m),w=new y.U(Z.cookies,{title:{rendered:n},content:{rendered:r,protected:!1},status:o,meta:(0,s.Z)((0,s.Z)({},I),{},{presetId:null==O?void 0:O.identifier,presetVersion:null==O?void 0:O.version})}),e.next=19,w.persist();case 19:null==F||F(w);case 20:oe(!1),l.ZP.success((0,b.__)("You have successfully saved the service.")+(p?" ".concat((0,b.__)("Continue with the corresponding Content Blocker!")):"")),S&&setTimeout((function(){return p?re.push("/blocker/new?force=".concat(g||O.identifier,"&cookieCreationPrompt=1").concat("string"==typeof S?"&navigateAfterCreation=".concat(encodeURIComponent(S)):"")):"string"==typeof S?window.location.href=S:re.push("".concat(G.slice(1),"/").concat(m))}),0),e.next=29;break;case 25:throw e.prev=25,e.t0=e.catch(0),l.ZP.error(e.t0.responseJSON.message),e.t0;case 29:case"end":return e.stop()}}),e,null,[[0,25]])})));return function(t){return e.apply(this,arguments)}}(),[H,L,ce,le]),fe=(0,v.useCallback)(function(){var e=(0,m.Z)(h().mark((function e(t){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return ee(!0),e.prev=1,e.next=4,ve(t);case 4:e.next=8;break;case 6:e.prev=6,e.t0=e.catch(1);case 8:return e.prev=8,ee(!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)}}(),[$,ve]),ye=(0,v.useCallback)((function(e){l.ZP.error((0,b.__)("The service could not be saved due to missing/invalid form values.")),e.errorFields.length&&$.scrollToField(e.errorFields[0].name,{behavior:"smooth",block:"center"})}),[]),Ee=(0,v.useCallback)((function(){return!ne||(0,b.__)('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}),[$,he]);return H&&!j?React.createElement(c.Z,{active:!0,paragraph:{rows:8}}):React.createElement(n.Z,{spinning:Q||(null==ue?void 0:ue.busy)||!1},React.createElement(k.Prompt,{message:Ee}),React.createElement(d.Z,(0,o.Z)({name:"cookie-".concat(U.key,"-").concat(V),form:$},W,{initialValues:he,onFinish:fe,onFinishFailed:ye,onValuesChange:function(e){var t=e.technicalDefinitions;oe(!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(C,{groupNotice:(null==T?void 0:T.groupNotice)||(null==ue||null===(I=ue.attributes)||void 0===I?void 0:I.groupNotice),providerPrivacyPolicyNotice:j||null==ue||!ue.attributes||he.providerPrivacyPolicy?null:(0,b.__)('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"),showNoticePresetGroupNotFound:"preset-group-not-found"===me&&T.group}),React.createElement(q,null),React.createElement(z,{dynamicFields:(null==T?void 0:T.dynamicFields)||(null==ue||null===(w=ue.attributes)||void 0===w?void 0:w.dynamicFields),notices:[{message:(null==T?void 0:T.technicalHandlingNotice)||(null==ue||null===(N=ue.attributes)||void 0===N?void 0:N.technicalHandlingNotice),severity:"info"},{message:ge&&!de&&(0,b.__)("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.",ue.data.attributes_name),severity:"warning"},{message:ge&&de&&(0,b.__)("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.",ue.data.attributes_name),severity:"warning"}].filter((function(e){return e.message}))}),!!O&&React.createElement(React.Fragment,null,de&&S&&React.createElement(d.Z.Item,{wrapperCol:{offset:W.labelCol.span}},React.createElement(d.Z.Item,{noStyle:!0,shouldUpdate:function(e,t){return e.group!==t.group}},(function(e){var t=e.getFieldValue;return React.createElement(d.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:function(e,a){return t("group")===se.key&&a?Promise.reject((0,b.__)('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,b.__)("Create content blocker for this service.")))})),React.createElement(d.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(O.contentBlockerPresets).length>1&&React.createElement(d.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:(0,b.__)("Please select a template for the Content Blocker!")}]},React.createElement(r.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:(0,b.__)("Select Content Blocker template...")},Object.keys(O.contentBlockerPresets).map((function(e){return React.createElement(r.Z.Option,{key:e,value:e},O.contentBlockerPresets[e])})))),React.createElement("div",{className:"notice notice-info below-h2 notice-alt",style:{marginTop:10}},React.createElement("p",null,(0,b.__)("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.")))),!!pe&&React.createElement("div",{className:"notice notice-info below-h2 notice-alt"},React.createElement("p",{dangerouslySetInnerHTML:{__html:pe}})))}))),React.createElement(d.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:function(e){return e||void 0},message:(0,b.__)("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:W.labelCol.span}},React.createElement(i.Z,null,(0,b.__)("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,b.__)("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))),React.createElement(d.Z.Item,{className:"rcb-form-sticky-submit"},React.createElement("span",null,React.createElement("input",{type:"submit",className:"button button-primary right",value:(0,b.__)("Save")})))))}))},8618:function(e,t,a){a.d(t,{C:function(){return o}});var n=a(1593),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))}},7802: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}},238:function(e,t,a){a.d(t,{R:function(){return c}});var n=a(6711),o=a(4614),r=a(7363),i=a(9323),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}}},3251: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,{w:function(){return n}})}}]);
2
+ //# sourceMappingURL=152.lite.js.map?ver=ab9265e568feecc9baeb
public/dist/152.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"152.lite.js?ver=1b7b0986ee2a7c18628a","mappings":"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","sources":["webpack://realCookieBanner_[name]/./src/public/ts/utils/slugify.tsx","webpack://realCookieBanner_[name]/./src/public/ts/hooks/useRouteCookie.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/general.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/technical.tsx","webpack://realCookieBanner_[name]/./src/public/ts/utils/isHost.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/manager.tsx","webpack://realCookieBanner_[name]/./src/public/ts/others/dynamics/index.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/codeDynamics.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/noticeFormItemContainsSkipIfActiveAttribute.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/formFields/handling.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/config/cookies/form.tsx","webpack://realCookieBanner_[name]/./src/public/ts/components/formHeadline.tsx","webpack://realCookieBanner_[name]/./src/public/ts/hooks/useLocationQuery.tsx","webpack://realCookieBanner_[name]/./src/public/ts/hooks/useRouteCookieGroup.tsx","webpack://realCookieBanner_[name]/./src/public/ts/others/cookieTypeLocalized.tsx"],"sourcesContent":["/**\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 };","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 } 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 groupNotice = _ref.groupNotice,\n providerPrivacyPolicyNotice = _ref.providerPrivacyPolicyNotice;\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))), !!groupNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: groupNotice\n }\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 }, __(\"The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how personal data is collected and how cookies are used for this purpose.\"))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicy\",\n noStyle: true,\n rules: [{\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).\")), !!providerPrivacyPolicyNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: providerPrivacyPolicyNotice\n }\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(\"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 _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, isHost, isUrl } from \"../../../../utils\";\nimport { getCookieTypeLocalized } from \"../../../../others\";\nimport { PlusOutlined, QuestionCircleFilled, DeleteOutlined } from \"@ant-design/icons\";\nimport { FormHeadline } from \"../../..\";\nimport { CookieEditFormLayout, technicalDefinitionDefaults } from \"..\";\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 = getCookieTypeLocalized();\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 (_ref) {\n var getFieldValue = _ref.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, function (fields, _ref2) {\n var add = _ref2.add,\n remove = _ref2.remove;\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: 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\", null, /*#__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\", {\n width: 50,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(\"tbody\", null, fields.map(function (field) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: field.key\n }, /*#__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 }, 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 (_ref3) {\n var getFieldValue = _ref3.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 (_ref4) {\n var getFieldValue = _ref4.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 (_ref5) {\n var getFieldValue = _ref5.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 (_ref6) {\n var getFieldValue = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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, 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: 5,\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 };","/**\n * This fields of cookies can hold dynamic variables in `{{my_variable}}` format.\n */\nvar DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\nvar DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\nexport * from \"./apply\";\nexport { DYNAMICS_SEARCH_IN, 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_SEARCH_IN, DYNAMICS_VARIABLE_REGEXP } from \"../../../../others\";\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 } 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 }\n }, notices === null || notices === void 0 ? void 0 : notices.map(function (_ref2) {\n var message = _ref2.message,\n severity = _ref2.severity;\n return /*#__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 }));\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 (_ref3) {\n var getFieldValue = _ref3.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 (_ref4) {\n var getFieldValue = _ref4.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 (_ref5) {\n var getFieldValue = _ref5.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 (_ref6) {\n var getFieldValue = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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 (_ref8) {\n var getFieldValue = _ref8.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 _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 } 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};\nvar CookieEditForm = observer(function (_ref) {\n var _cookieStore$groups$s, _cookieStore$groups$s2, _presetModel$attribut, _presetModel$attribut2, _presetModel$attribut3, _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\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 group.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 _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {\n var codeToBase64, name, status, purpose, noTechnicalDefinitions, technicalDefinitions, _group, codeDynamics, createContentBlocker, createContentBlockerId, consentForwardingUniqueName, codeOptIn, codeOptOut, codeOnPageLoad, meta, newMeta, _useGroup, draft;\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 \"encodedScript:\".concat(btoa(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!\")) : \"\")); // 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 = 29;\n break;\n\n case 25:\n _context.prev = 25;\n _context.t0 = _context[\"catch\"](0);\n\n _message.error(_context.t0.responseJSON.message);\n\n throw _context.t0;\n\n case 29:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 25]]);\n }));\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }(), [queried, cookie, cookieStore]);\n var onFinish = useCallback( /*#__PURE__*/function () {\n var _ref4 = _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 _ref4.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 form.scrollToField(errorInfo.errorFields[0].name, {\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(_ref5) {\n var technicalDefinitions = _ref5.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(CookieEditFormGeneralFields, {\n groupNotice: (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 providerPrivacyPolicyNotice: !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\") : null,\n showNoticePresetGroupNotFound: useGroup === \"preset-group-not-found\" ? attributes.group : false\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 (_ref6) {\n var message = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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 (_ref8) {\n var getFieldValue = _ref8.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 };","function getCookieTypeLocalized() {\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 { getCookieTypeLocalized };"],"names":["slugify","str","replace","toLowerCase","from","i","l","length","RegExp","charAt","useRouteCookie","routeGroup","useRouteCookieGroup","group","params","useRouteMatch","id","isNaN","cookie","queried","cookies","entries","get","fetched","key","CookieEditFormGeneralFields","_ref","_cookie$presetModel","_cookie$presetModel$d","_ref$showNoticePreset","showNoticePresetGroupNotFound","groupNotice","providerPrivacyPolicyNotice","_useStores","_useStores$cookieStor","cookieStore","groups","essentialGroup","_useStores$optionStor","optionStore","ePrivacyUSA","consentForwarding","_useRouteCookie","isRealCookieBannerPreset","presetModel","data","identifier","findByUniqueCookieName","useCallback","_ref2","_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","match","_","g1","g2","concat","_x2","_x3","React","createElement","Fragment","offset","CookieEditFormLayout","labelCol","span","url","label","required","name","noStyle","rules","message","className","value","sortedGroups","map","_ref4","_ref4$data","dangerouslySetInnerHTML","__html","autoSize","minRows","type","shouldUpdate","prevValues","nextValues","_ref5","_validator","getFieldValue","setFieldsValue","isEssentialGroup","style","display","validateTrigger","validator","_callee3","_context3","_x4","_x5","placeholder","disabled","_i","strong","_ref6","valuePropName","WP_LIST_TABLE_FORM_ITEM_PROPS","wrapperCol","margin","CookieEditFormTechnicalFields","cookieTypeLocalized","noTechnicalDefinitions","technicalDefinitions","fields","add","remove","description","marginBottom","width","title","code","QuestionCircleFilled","align","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","startsWith","substr","_prevValues$technical4","_nextValues$technical4","float","marginTop","_prevValues$technical5","_nextValues$technical5","sessionDuration","_ref7","min","addonAfter","maxWidth","onClick","DeleteOutlined","colSpan","technicalDefinitionDefaults","PlusOutlined","CookieEditFormManagerFields","manager","onlyWhenManagerIs","hasManagerAttributeName","thisIsManagerAttributeName","inEventNameAttributeName","outEventNameAttributeName","setCookiesViaManager","hasManager","isPro","others","curValues","isActive","active","inEventName","outEventName","addonBefore","marginRight","DYNAMICS_SEARCH_IN","DYNAMICS_VARIABLE_REGEXP","CookieEditFormCodeDynamics","dynamicFields","k","Boolean","searchInResolved","join","matches","matchAll","added","formName","_ref5$invalidMessage","invalidMessage","example","expression","hint","push","pattern","NoticeFormItemContainsSkipIfActiveAttribute","activePlugins","activePluginKeys","useMemo","split","plugin","flat","uniq","CookieEditFormHandlingFields","notices","createHiddenFormItemsWithCodeMirror","visible","opacity","height","severity","thisIsGoogleTagManager","u","thisIsMatomoTagManager","settings","window","cm_settings","_ref8","duration","durationUnit","CookieEditForm","_cookieStore$groups$s","_cookieStore$groups$s2","_presetModel$attribut","_presetModel$attribut2","_presetModel$attribut3","_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","presetsCookie","useGroup","allowContentBlockerCreation","contentBlockerPresets","createContentBlockerNotice","showOptInNoticeScanned","scanned","codeOptIn","initialValues","raw","status","purpose","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","getSingle","context","fetchAttributes","scrollTo","handleSave","values","codeToBase64","_group","newMeta","_useGroup","draft","btoa","setName","setStatus","setPurpose","setMeta","setGroup","patch","rendered","protected","presetId","presetVersion","version","persist","setTimeout","encodeURIComponent","href","slice","responseJSON","onFinish","finish","onFinishFailed","errorInfo","errorFields","scrollToField","behavior","block","handleBeforeUnload","paragraph","rows","spinning","busy","Prompt","onValuesChange","td","tdChangedKeys","validateFields","technicalHandlingNotice","attributes_name","dependencies","contentBlockerId","transform","FormHeadline","children","borderBottom","useLocationQuery","Url","useLocation","search","query","cookieGroup","editLink","addCookieLink","getCookieTypeLocalized","http","abbr","backgroundColor","local","session","flash","indexedDb"],"sourceRoot":""}
1
+ {"version":3,"file":"152.lite.js?ver=ab9265e568feecc9baeb","mappings":"wXAKA,SAASA,EAAQC,GAGfA,GAFAA,EAAMA,EAAIC,QAAQ,aAAc,KAEtBC,cAKV,IAHA,IAAIC,EAAO,+BAGFC,EAAI,EAAGC,EAAIF,EAAKG,OAAQF,EAAIC,EAAGD,IACtCJ,EAAMA,EAAIC,QAAQ,IAAIM,OAAOJ,EAAKK,OAAOJ,GAAI,KAHtC,+BAG+CI,OAAOJ,IAO/D,OAJMJ,EAAIC,QAAQ,eAAgB,IACjCA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,K,qDCfdQ,EAAiB,WACnB,IAAIC,GAAa,EAAAC,EAAA,KACbC,EAAQF,EAAWE,MAGnBC,GADiB,IAAAC,iBACOD,OAGxBE,EAAKC,OAAOH,EAAOI,QAAU,GAAKJ,EAAOI,OACzCC,IAAYL,EAAOI,OACnBA,EAASL,EAAMO,QAAQC,QAAQC,KAAKR,EAAOI,SAAW,IAAI,IAAYL,EAAMO,QAAS,CACvFJ,GAAI,IAEN,MAAO,CACLL,WAAYA,EACZO,OAAQA,EACRF,GAAIA,EACJG,QAASA,EACTI,QAAwB,IAAfL,EAAOM,M,sECPhBC,GAA8B,SAAS,SAAUC,GACnD,IAAIC,EAAqBC,EAErBC,EAAwBH,EAAKI,8BAC7BA,OAA0D,IAA1BD,GAA2CA,EAC3EE,EAAcL,EAAKK,YACnBC,EAA8BN,EAAKM,4BAEnCC,GAAa,SACbC,EAAwBD,EAAWE,YACnCC,EAASF,EAAsBE,OAC/BC,EAAiBH,EAAsBG,eACvCC,EAAwBL,EAAWM,YACnCC,EAAcF,EAAsBE,YACpCC,EAAoBH,EAAsBG,kBAE1CC,EAAkBhC,IAClBQ,EAASwB,EAAgBxB,OACzBK,EAAUmB,EAAgBnB,QAE1BoB,EAA8Q,wBAAnM,QAA9ChB,EAAsBT,EAAO0B,mBAAiD,IAAxBjB,GAAiG,QAAtDC,EAAwBD,EAAoBkB,YAA4C,IAA1BjB,OAAxE,EAAoHA,EAAsBkB,YAC9PC,GAAyB,IAAAC,aAA0B,WACrD,IAAIC,GAAQ,OAAgC,UAAyB,SAASC,EAAQC,GACpF,OAAO,UAAyB,SAAkBC,GAChD,OACE,OAAQA,EAASC,KAAOD,EAASE,MAC/B,KAAK,EAGH,OAFAF,EAASC,KAAO,EAChBD,EAASE,KAAO,GACT,EAAAC,EAAA,GAAQ,CACbC,SAAU,IACV1C,OAAQ,CACNqC,KAAMA,KAIZ,KAAK,EACH,OAAOC,EAASK,OAAO,SAAUL,EAASM,KAAKC,QAAO,SAAUC,GAC9D,OAAOA,EAAEC,KAAO3C,EAAOM,OACtB,IAEL,KAAK,EAGH,OAFA4B,EAASC,KAAO,EAChBD,EAASU,GAAKV,EAAgB,MAAE,GACzBA,EAASK,OAAO,cAAUM,GAEnC,KAAK,EACL,IAAK,MACH,OAAOX,EAASY,UAGrBd,EAAS,KAAM,CAAC,CAAC,EAAG,SAGzB,OAAO,SAAUe,GACf,OAAOhB,EAAMiB,MAAMC,KAAMC,YAlC0B,GAoClD,CAAClD,EAAOM,MACT6C,GAA2B,IAAArB,aAA0B,WACvD,IAAIsB,GAAQ,OAAgC,UAAyB,SAASC,EAASpB,EAAMqB,GAC3F,IAAIC,EAAOC,EAA8BC,EAAaC,EAEtD,OAAO,UAAyB,SAAmBC,GACjD,OACE,OAAQA,EAAUxB,KAAOwB,EAAUvB,MACjC,KAAK,EAEH,OADAuB,EAAUvB,KAAO,EACVP,EAAuBI,GAEhC,KAAK,EAGH,KAFAsB,EAAQI,EAAUnB,MAEN,CACVmB,EAAUvB,KAAO,GACjB,MAGF,GAAIkB,EAAgB,CAClBK,EAAUvB,KAAO,EACjB,MAGF,MAAM,IAAAwB,IAAG,uDAEX,KAAK,EAEHJ,EAA+BD,EAAMM,MAAMC,4BAC3CL,EAAc,eACdC,EAAiBH,EAEnB,KAAK,GACH,IAAKG,EAAgB,CACnBC,EAAUvB,KAAO,GACjB,MAOF,OAJAoB,EAA+BA,EAA6BO,MAAMN,GAAeD,EAA6BxE,QAAQyE,GAAa,SAAUO,EAAGC,EAAIC,GAClJ,MAAO,GAAGC,OAAOF,EAAI,KAAKE,QAAQD,EAAK,MACpC,GAAGC,OAAOX,EAA8B,MAC7CG,EAAUvB,KAAO,GACVP,EAAuB2B,GAEhC,KAAK,GACHE,EAAiBC,EAAUnB,KAC3BmB,EAAUvB,KAAO,GACjB,MAEF,KAAK,GAEHkB,EAAeE,GAEjB,KAAK,GACL,IAAK,MACH,OAAOG,EAAUb,UAGtBO,OAGL,OAAO,SAAUe,EAAKC,GACpB,OAAOjB,EAAMJ,MAAMC,KAAMC,YA9D4B,GAgEpD,CAACrB,IACN,OAAoByC,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,IAAc,CAC3GE,OAAQC,EAAqBC,SAASC,OACrC,IAAAhB,IAAG,iCAAkC,IAAkBU,MAAMC,cAAc,IAAc,CAC1FM,KAAK,IAAAjB,IAAG,oFACQU,MAAMC,cAAc,SAAY,CAChDO,OAAO,IAAAlB,IAAG,QACVmB,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CS,KAAM,OACNC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,6BAEAU,MAAMC,cAAc,IAAQ,OAAqBD,MAAMC,cAAc,IAAK,CACxFa,UAAW,gBACV,IAAAxB,IAAG,sIAAoJU,MAAMC,cAAc,SAAY,CACxLO,OAAO,IAAAlB,IAAG,UACVmB,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CS,KAAM,SACNC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,8BAEAU,MAAMC,cAAc,WAAc,KAAmBD,MAAMC,cAAc,YAAe,CACtGc,MAAO,YACN,IAAAzB,IAAG,YAA0BU,MAAMC,cAAc,YAAe,CACjEc,MAAO,YACN,IAAAzB,IAAG,aAA2BU,MAAMC,cAAc,YAAe,CAClEc,MAAO,UACN,IAAAzB,IAAG,YAA0BU,MAAMC,cAAc,IAAK,CACvDa,UAAW,gBACV,IAAAxB,IAAG,4LAA0MU,MAAMC,cAAc,SAAY,CAC9OO,OAAO,IAAAlB,IAAG,SACVmB,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CS,KAAM,QACNC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,8BAEAU,MAAMC,cAAc,IAAS,KAAMrD,EAAOoE,aAAaC,KAAI,SAAUC,GACnF,IAAIC,EAAaD,EAAM7D,KACnB7B,EAAK2F,EAAW3F,GAChBkF,EAAOS,EAAWT,KACtB,OAAoBV,MAAMC,cAAc,WAAgB,CACtDjE,IAAKR,EACLuF,MAAOvF,GACNkF,QACcV,MAAMC,cAAc,IAAK,CAC1Ca,UAAW,gBACV,IAAAxB,IAAG,2cAA6e,IAAlChD,GAAwD0D,MAAMC,cAAc,MAAO,CACliBa,UAAW,6CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,8HAA+HhD,OAAoCC,GAA4ByD,MAAMC,cAAc,MAAO,CAC1Qa,UAAW,0CACGd,MAAMC,cAAc,IAAK,CACvCmB,wBAAyB,CACvBC,OAAQ9E,OAEOyD,MAAMC,cAAc,SAAY,CACjDO,OAAO,IAAAlB,IAAG,YACVmB,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CS,KAAM,WACNC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,8BAEAU,MAAMC,cAAc,IAAQ,OAAqBD,MAAMC,cAAc,IAAK,CACxFa,UAAW,gBACV,IAAAxB,IAAG,yQAAuRU,MAAMC,cAAc,SAAY,CAC3TO,OAAO,IAAAlB,IAAG,YACIU,MAAMC,cAAc,SAAY,CAC9CS,KAAM,UACNC,SAAS,GACKX,MAAMC,cAAc,aAAiB,CACnDqB,SAAU,CACRC,QAAS,MAEKvB,MAAMC,cAAc,IAAK,CACzCa,UAAW,gBACV,IAAAxB,IAAG,iMAA+MU,MAAMC,cAAc,SAAY,CACnPO,OAAO,IAAAlB,IAAG,mCACIU,MAAMC,cAAc,SAAY,CAC9CS,KAAM,wBACNC,SAAS,EACTC,MAAO,CAAC,CACNY,KAAM,MACNX,SAAS,IAAAvB,IAAG,kCAEAU,MAAMC,cAAc,IAAQ,OAAqBD,MAAMC,cAAc,IAAK,CACxFa,UAAW,gBACV,IAAAxB,IAAG,4HAA6H9C,GAA4CwD,MAAMC,cAAc,MAAO,CACxMa,UAAW,6CACGd,MAAMC,cAAc,IAAK,CACvCmB,wBAAyB,CACvBC,OAAQ7E,OAEOwD,MAAMC,cAAc,SAAY,CACjDU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWrG,QAAUsG,EAAWtG,OAASqG,EAAWhB,OAASiB,EAAWjB,QAEhF,SAAUkB,GACX,IAcUC,EAdNC,EAAgBF,EAAME,cACtBC,EAAiBH,EAAMG,eACvBC,EAAmBF,EAAc,WAAajF,EAAeb,IACjE,OAAoBgE,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,SAAY,CACzGO,OAAO,IAAAlB,IAAG,kCACV2C,MAAO,CACLC,QAASjF,OAAoBsB,EAAY,SAE7ByB,MAAMC,cAAc,SAAY,CAC9CS,KAAM,8BACNC,SAAS,EACTwB,gBAAiB,SACjBvB,MAAO,CAAC,CACNwB,WACMP,GAAa,OAAgC,UAAyB,SAASQ,EAASzB,EAAOG,GACjG,IAAI/B,EACJ,OAAO,UAAyB,SAAmBsD,GACjD,OACE,OAAQA,EAAUzE,KAAOyE,EAAUxE,MACjC,KAAK,EAEH,OADAkB,GAAiB/B,IAAqB8D,EAC/BuB,EAAUrE,OAAO,SAAUY,EAAyBkC,GAASvG,EAAQsH,EAAc,SAAU9C,EAAiB,SAAUQ,GAC7H,OAAOuC,EAAe,CACpBvC,4BAA6BA,UAE7BjB,IAEN,KAAK,EACL,IAAK,MACH,OAAO+D,EAAU9D,UAGtB6D,OAGL,SAAmBE,EAAKC,GACtB,OAAOX,EAAWnD,MAAMC,KAAMC,gBAMtBoB,MAAMC,cAAc,IAAQ,CAC1CwC,YAAa1G,EAAU,GAAKvB,EAAQsH,EAAc,YAClC9B,MAAMC,cAAc,IAAK,CACzCa,UAAW,gBACV,IAAAxB,IAAG,+KAAgL0C,GAAiChC,MAAMC,cAAc,MAAO,CAChPa,UAAW,0CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,mHAAiIU,MAAMC,cAAc,SAAY,CACjNO,OAAO,IAAAlB,IAAG,eACVmB,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CS,KAAM,aACNC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,KAEET,MAAMC,cAAc,WAAc,CAChDyC,SAAUV,GACIhC,MAAMC,cAAc,YAAe,CACjDc,MAAO,YACN,IAAAzB,IAAG,qBAAmCU,MAAMC,cAAc,YAAe,CAC1Ec,MAAO,wBACN,IAAAzB,IAAG,kCAAmCnC,GAAyC6C,MAAMC,cAAc,YAAe,CACnHc,MAAO,sBACN,IAAAzB,IAAG,yCAAuDU,MAAMC,cAAc,IAAK,CACpFa,UAAW,gBACV,IAAA6B,KAAG,IAAArD,IAAG,6hBAA8hB,CACriBsD,OAAqB5C,MAAMC,cAAc,SAAU,SAChD+B,IAAqB7E,GAAyC6C,MAAMC,cAAc,MAAO,CAC5Fa,UAAW,0CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,wKACnCU,MAAMC,cAAc,SAAY,CAC/CU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWrG,QAAUsG,EAAWtG,OAASqG,EAAW1E,cAAgB2E,EAAW3E,eAEvF,SAAU6F,GACX,IAAIf,EAAgBe,EAAMf,cAC1B,OAAoB9B,MAAMC,cAAc,SAAY,CAClDO,OAAO,IAAAlB,IAAG,sBACV2C,MAAO,CACLC,QAASlF,OAAcuB,EAAY,SAEvByB,MAAMC,cAAc,SAAY,CAC9CS,KAAM,cACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAAX,IAAG,wFAAyFwC,EAAc,gBAAkBA,EAAc,WAAajF,EAAeb,KAAoBgE,MAAMC,cAAc,MAAO,CACnUa,UAAW,6CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,2eACnCU,MAAMC,cAAc,SAAY,CAC/CO,OAAO,IAAAlB,IAAG,6BACIU,MAAMC,cAAc,SAAY,CAC9CS,KAAM,yBACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAAX,IAAG,qH,4DC3UjHyD,EAAgC,CAClC1C,SAAU,CACRC,KAAM,GAER0C,WAAY,CACV1C,KAAM,IAER2B,MAAO,CACLgB,OAAQ,IAGRC,GAAgC,SAAS,WAC3C,IAAIC,GAAsB,SAC1B,OAAoBnD,MAAMC,cAAc,SAAY,CAClDU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAW0B,yBAA2BzB,EAAWyB,wBAA0B1B,EAAW2B,qBAAqBtI,SAAW4G,EAAW0B,qBAAqBtI,UAE9J,SAAUmB,GAEX,OAAO4F,EADa5F,EAAK4F,eACJ,0BAA4B,KAAoB9B,MAAMC,cAAc,SAAY,CACnGS,KAAM,yBACL,SAAU4C,EAAQ7F,GACnB,IAAI8F,EAAM9F,EAAM8F,IACZC,EAAS/F,EAAM+F,OACnB,OAAoBxD,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,IAAc,CAC3GE,OAAQC,EAAqBC,SAASC,KACtCmD,aAAa,IAAAnE,IAAG,sUACf,IAAAA,IAAG,iCAA+CU,MAAMC,cAAc,QAAS,CAChFa,UAAW,sDACXmB,MAAO,CACLyB,aAAc,KAEF1D,MAAMC,cAAc,QAAS,KAAmBD,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,KAAM,CACrI0D,MAAO,MACN,IAAArE,IAAG,gBAA8BU,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,IAAU,CAC7G2D,OAAO,IAAAjB,KAAG,IAAArD,IAAG,iLAAkL,CAC7LuE,KAAmB7D,MAAMC,cAAc,OAAQ,SAEnCD,MAAMC,cAAc,OAAQ,MAAM,IAAAX,IAAG,yBAA0B,IAAkBU,MAAMC,cAAc6D,EAAA,EAAsB,SAAuB9D,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,IAAU,CAC3O2D,OAAO,IAAAtE,IAAG,wDACIU,MAAMC,cAAc,OAAQ,MAAM,IAAAX,IAAG,yBAA0B,IAAkBU,MAAMC,cAAc6D,EAAA,EAAsB,SAAuB9D,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,IAAU,CAC3O2D,OAAO,IAAAtE,IAAG,6FACIU,MAAMC,cAAc,OAAQ,MAAM,IAAAX,IAAG,mBAAoB,IAAkBU,MAAMC,cAAc6D,EAAA,EAAsB,SAAuB9D,MAAMC,cAAc,KAAM,CACpL0D,MAAO,GACPI,MAAO,SACN,OAAwB/D,MAAMC,cAAc,QAAS,KAAMqD,EAAOrC,KAAI,SAAU+C,GACjF,OAAoBhE,MAAMC,cAAc,KAAM,CAC5CjE,IAAKgI,EAAMhI,KACGgE,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,UAAY,OAAS,GAAI+D,EAAOjB,EAA+B,CAC9IkB,SAAU,CAACD,EAAMC,SAAU,QAC3BvD,KAAM,CAACsD,EAAMtD,KAAM,QACnBE,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,qCAECU,MAAMC,cAAc,IAAS,KAAMiE,OAAOC,KAAKhB,GAAqBlC,KAAI,SAAUjF,GACjG,OAAoBgE,MAAMC,cAAc,WAAgB,CACtDjE,IAAKA,EACL+E,MAAO/E,GACNmH,EAAoBnH,GAAK0E,YACVV,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,UAAY,OAAS,GAAI+D,EAAOjB,EAA+B,CAClJkB,SAAU,CAACD,EAAMC,SAAU,QAC3BvD,KAAM,CAACsD,EAAMtD,KAAM,QACnBE,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,+CAECU,MAAMC,cAAc,IAAQ,OAAqBD,MAAMC,cAAc,SAAY,CAChGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,IAAIyC,EAAuBC,EAE3B,OAAkF,QAAzED,EAAwB1C,EAAW2B,qBAAqBW,EAAMtD,aAA6C,IAA1B0D,OAAmC,EAASA,EAAsB1D,SAAqF,QAAzE2D,EAAwB1C,EAAW0B,qBAAqBW,EAAMtD,aAA6C,IAA1B2D,OAAmC,EAASA,EAAsB3D,SAE5T,SAAU5B,GACX,IACIwF,GAAaxC,EADGhD,EAAMgD,eACK,CAAC,uBAAwBkC,EAAMtD,KAAM,SAIpE,MAHyC,CAAC,OAAQ,CAAC,WAAY,SAAUjB,GACvE,OAAwB,IAAjBA,EAAM1E,SACX,QACsCoD,QAAO,SAAUoG,GACzD,OAAOC,MAAMC,QAAQF,GAAKA,EAAE,GAAGG,KAAKJ,IAAeA,EAAW7E,MAAM8E,EAAE,IAAIpG,OAAOoG,EAAE,IAAIxJ,OAAS,EAAIwJ,EAAEG,KAAKJ,MAC1GvJ,OAAS,GAAkBiF,MAAMC,cAAc,MAAO,CACvDa,UAAW,mDACXmB,MAAO,CACLgB,OAAQ,eAEIjD,MAAMC,cAAc,IAAK,MAAM,IAAA0C,KAAG,IAAArD,IAAG,0NAA2N,CAC9QuE,KAAmB7D,MAAMC,cAAc,OAAQ,cAEjCD,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,SAAY,CAC7FU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,IAAIgD,EAAwBC,EAE5B,OAAmF,QAA1ED,EAAyBjD,EAAW2B,qBAAqBW,EAAMtD,aAA8C,IAA3BiE,OAAoC,EAASA,EAAuBnD,SAAsF,QAA1EoD,EAAyBjD,EAAW0B,qBAAqBW,EAAMtD,aAA8C,IAA3BkE,OAAoC,EAASA,EAAuBpD,SAElU,SAAUN,GACX,IACIM,GAAOM,EADSZ,EAAMY,eACD,CAAC,uBAAwBkC,EAAMtD,KAAM,SAC9D,OAAoBV,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,UAAY,OAAS,GAAI+D,EAAOjB,EAA+B,CAC5JkB,SAAU,CAACD,EAAMC,SAAU,QAC3BvD,KAAM,CAACsD,EAAMtD,KAAM,QACnBE,MAAO,CAAC,CACNwB,UAAW,SAAmB1C,EAAGqB,GAC/B,OAAQ,CAAC,QAAS,UAAW,aAAa8D,QAAQrD,IAAS,GAAI,EAAAsD,EAAA,GAAM/D,GC/G5E,iHAAiH2D,KD+GrB3D,KAAqB,KAAVA,GAAyB,SAATS,EAAkBuD,QAAQC,UAAYD,QAAQE,QAAO,IAAA3F,IAAG,0CAG7JU,MAAMC,cAAc,IAAQ,OAAqBD,MAAMC,cAAc,SAAY,CAChGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,IAAIuD,EAAwBC,EAE5B,OAAmF,QAA1ED,EAAyBxD,EAAW2B,qBAAqBW,EAAMtD,aAA8C,IAA3BwE,OAAoC,EAASA,EAAuBE,SAAsF,QAA1ED,EAAyBxD,EAAW0B,qBAAqBW,EAAMtD,aAA8C,IAA3ByE,OAAoC,EAASA,EAAuBC,SAElU,SAAUxD,GACX,IACIwD,GAAOtD,EADSF,EAAME,eACD,CAAC,uBAAwBkC,EAAMtD,KAAM,SAC9D,OAAO0E,EAAKC,WAAW,OAASD,EAAKrK,OAAS,GAAkBiF,MAAMC,cAAc,MAAO,CACzFa,UAAW,mDACXmB,MAAO,CACLgB,OAAQ,eAEIjD,MAAMC,cAAc,IAAK,MAAM,IAAA0C,KAAG,IAAArD,IAAG,kJAAmJ8F,EAAKE,OAAO,IAAK,CACvNzB,KAAmB7D,MAAMC,cAAc,OAAQ,kBAGnCD,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,SAAY,CAC7FU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,IAAI4D,EAAwBC,EAE5B,OAAmF,QAA1ED,EAAyB7D,EAAW2B,qBAAqBW,EAAMtD,aAA8C,IAA3B6E,OAAoC,EAASA,EAAuB/D,SAAsF,QAA1EgE,EAAyB7D,EAAW0B,qBAAqBW,EAAMtD,aAA8C,IAA3B8E,OAAoC,EAASA,EAAuBhE,SAElU,SAAUqB,GACX,IACIrB,GAAOM,EADSe,EAAMf,eACD,CAAC,uBAAwBkC,EAAMtD,KAAM,SAC9D,MAAO,CAAC,QAAS,UAAW,YAAa,SAASmE,QAAQrD,IAAS,EAAI,KAAoBxB,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,UAAY,OAAS,GAAI+D,EAAO,CACpMC,SAAU,CAACD,EAAMC,SAAU,mBAC3BvD,KAAM,CAACsD,EAAMtD,KAAM,mBACnBC,SAAS,EACTmC,cAAe,YACA9C,MAAMC,cAAc,IAAW,CAC9CgC,MAAO,CACLwD,MAAO,OACPC,UAAW,IAEC1F,MAAMC,cAAc,IAAU,CAC5C2D,OAAO,IAAAtE,IAAG,2DACIU,MAAMC,cAAc,OAAQ,MAAM,IAAAX,IAAG,eAA6BU,MAAMC,cAAc,SAAY,CAChHU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,IAAIgE,EAAwBC,EAE5B,OAAmF,QAA1ED,EAAyBjE,EAAW2B,qBAAqBW,EAAMtD,aAA8C,IAA3BiF,OAAoC,EAASA,EAAuBE,oBAAiG,QAA1ED,EAAyBjE,EAAW0B,qBAAqBW,EAAMtD,aAA8C,IAA3BkF,OAAoC,EAASA,EAAuBC,oBAE7U,SAAUC,GACX,IACID,GAAkB/D,EADFgE,EAAMhE,eACU,CAAC,uBAAwBkC,EAAMtD,KAAM,oBACzE,OAAoBV,MAAMC,cAAc,UAAY,OAAS,GAAI+D,EAAOjB,EAA+B,CACrGkB,SAAU,CAACD,EAAMC,SAAU,YAC3BvD,KAAM,CAACsD,EAAMtD,KAAM,YACnBE,MAAO,CAAC,CACNH,UAAWoF,EACXhF,SAAS,IAAAvB,IAAG,wCAECU,MAAMC,cAAc,IAAQ,CAC3C8F,IAAK,IACLC,WAAyBhG,MAAMC,cAAc,SAAY,CACvDS,KAAM,CAACsD,EAAMtD,KAAM,gBACnBC,SAAS,EACTC,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,8BAEAU,MAAMC,cAAc,IAAS,KAAmBD,MAAMC,cAAc,WAAgB,CAClGc,MAAO,MACN,IAAAzB,IAAG,cAA4BU,MAAMC,cAAc,WAAgB,CACpEc,MAAO,MACN,IAAAzB,IAAG,aAAc,KAAmBU,MAAMC,cAAc,WAAgB,CACzEc,MAAO,MACN,IAAAzB,IAAG,WAAY,KAAmBU,MAAMC,cAAc,WAAgB,CACvEc,MAAO,MACN,IAAAzB,IAAG,UAAW,KAAmBU,MAAMC,cAAc,WAAgB,CACtEc,MAAO,OACN,IAAAzB,IAAG,YAAa,KAAmBU,MAAMC,cAAc,WAAgB,CACxEc,MAAO,MACN,IAAAzB,IAAG,WAAY,OAClBkC,KAAM,SACNS,MAAO,CACLgE,SAAU,IACV/D,QAAS2D,EAAkB,YAAStH,cAI1ByB,MAAMC,cAAc,KAAM,KAAMqD,EAAOvI,OAAS,EAAiBiF,MAAMC,cAAc,IAAK,CAC1Ga,UAAW,sBACXoF,QAAS,WACP1C,EAAOQ,EAAMtD,QAEDV,MAAMC,cAAckG,EAAA,EAAgB,OAAS,WAC7CnG,MAAMC,cAAc,QAAS,KAAmBD,MAAMC,cAAc,KAAM,KAAmBD,MAAMC,cAAc,KAAM,CACvImG,QAAS,EACTrC,MAAO,SACO/D,MAAMC,cAAc,IAAK,CACvCa,UAAW,mCACXoF,QAAS,WACP3C,EAAI8C,KAEQrG,MAAMC,cAAcqG,EAAA,EAAc,MAAO,KAAK,IAAAhH,IAAG,gD,mBE9MnEiH,GAA8B,SAAS,SAAUrK,GACnD,IAAIsK,EAAUtK,EAAKsK,QACfC,EAAoBvK,EAAKuK,kBACzBC,EAA0BxK,EAAKwK,wBAC/BC,EAA6BzK,EAAKyK,2BAClCC,EAA2B1K,EAAK0K,yBAChCC,EAA4B3K,EAAK2K,0BAEjCpK,GAAa,SACbE,EAAcF,EAAWE,YACzBG,EAAwBL,EAAWM,YACnC+J,EAAuBhK,EAAsBgK,qBAC7CC,EAAajK,EAAsB4J,GACnCM,EAAQlK,EAAsBmK,OAAOD,MAErCnK,EAAiBF,EAAYE,eAG7BnB,EADkBR,IACOQ,OAE7B,OAAOoL,IAAyBL,GAAqBO,GAAsBhH,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,SAAY,CAChK+C,WAAY,CACV7C,OAAQC,EAAqBC,SAASC,OAE1BN,MAAMC,cAAc,IAAU,CAC5C2D,MAAOmD,GAAcrL,EAAOM,MAAQ+K,GAAa,IAAAzH,IAAG,yCAA0CkH,GAAW,IAC3FxG,MAAMC,cAAc,OAAQ,KAAmBD,MAAMC,cAAc,SAAY,CAC7FS,KAAMiG,EACN7D,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,CAC3CyC,SAAUqE,GAAcrL,EAAOM,MAAQ+K,KACvB/G,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAAX,IAAG,+BAAgCkH,OAA2BxG,MAAMC,cAAc,SAAY,CAC5JU,SAAS,EACTc,aAAc,SAAsBC,EAAYwF,GAC9C,OAAOxF,EAAWiF,KAAgCO,EAAUP,IAA+BjF,EAAWrG,QAAU6L,EAAU7L,SAE3H,SAAUoC,GACX,IAAIqE,EAAgBrE,EAAMqE,cACtBqF,EAAWrF,EAAc6E,GACzBtL,EAAQyG,EAAc,SAC1B,OAAOqF,GAAY9L,IAAUwB,EAAeb,KAAoBgE,MAAMC,cAAc,SAAY,CAC9F+C,WAAY,CACV7C,OAAQC,EAAqBC,SAASC,OAE1BN,MAAMC,cAAc,MAAO,CACzCa,UAAW,6CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,mVAAoVkH,SACvXxG,MAAMC,cAAc,SAAY,CAC/CU,SAAS,EACTc,aAAc,SAAsBC,EAAYwF,GAC9C,OAAOxF,EAAWiF,KAAgCO,EAAUP,IAA+BjF,EAAWkF,KAA8BM,EAAUN,IAA6BlF,EAAWmF,KAA+BK,EAAUL,MAEhO,SAAU/H,GACX,IAAIgD,EAAgBhD,EAAMgD,cACtBsF,EAAStF,EAAc6E,GACvBU,EAAcvF,EAAc8E,GAC5BU,EAAexF,EAAc+E,GACjC,OAAQO,GAAuBpH,MAAMC,cAAc,SAAY,CAC7DO,OAAO,IAAAlB,IAAG,qBAAsBkH,IAClBxG,MAAMC,cAAc,SAAY,CAC9CS,KAAMkG,EACNjG,SAAS,GACKX,MAAMC,cAAc,IAAQ,CAC1CsH,aAAa,IAAAjI,IAAG,UAChB2C,MAAO,CACLgE,SAAU,IACVuB,YAAa,GACb9D,aAAc,MAEA1D,MAAMC,cAAc,SAAY,CAChDS,KAAMmG,EACNlG,SAAS,GACKX,MAAMC,cAAc,IAAQ,CAC1CsH,aAAa,IAAAjI,IAAG,WAChB2C,MAAO,CACLgE,SAAU,IACVuB,YAAa,GACb9D,aAAc,MAEA1D,MAAMC,cAAc,MAAO,KAAmBD,MAAMC,cAAc,IAAc,CAChGM,KAAK,IAAAjB,IAAG,0GACJ+H,EAAYtM,OAAS,GAAKuM,EAAavM,OAAS,KAAOgM,GAA2B/G,MAAMC,cAAc,MAAO,CACjHa,UAAW,6CACGd,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,2FAA4FkH,EAASA,aCjGvJiB,EAAqB,CAAC,YAAa,aAAc,kBACjDC,EAA2B,wBCM3BC,GAA6B,SAAS,SAAUzL,GAClD,IAAI0L,EAAgB1L,EAAK0L,cACzB,OAAoB5H,MAAMC,cAAc,SAAY,CAClDU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAO8F,EAAmBxG,KAAI,SAAU4G,GACtC,OAAOnG,EAAWmG,KAAOlG,EAAWkG,MACnC1J,OAAO2J,SAAS/M,OAAS,KAE7B,SAAU0C,GACX,IAAIqE,EAAgBrE,EAAMqE,cACtBiG,EAAmBN,EAAmBxG,KAAI,SAAU4G,GACtD,OAAO/F,EAAc+F,MACpBG,KAAK,IACJC,EAAUzD,MAAM5J,KAAKmN,EAAiBG,SAASR,IAA2BzG,KAAI,SAAUnC,GAI1F,OAHY,OAAeA,EAAO,GACpB,MAIZqJ,EAAQ,GACZ,OAAOF,EAAUA,EAAQhH,KAAI,SAAUP,GACrC,IAAI0H,EAAW,CAAC,eAAgB1H,GAE5BkB,GAASgG,MAAAA,OAAqD,EAASA,EAAclH,KAAU,GAC/FF,EAAQoB,EAAMpB,MACd6H,EAAuBzG,EAAM0G,eAC7BA,OAA0C,IAAzBD,GAAkC,IAAA/I,IAAG,2BAA6B+I,EACnFE,EAAU3G,EAAM2G,QAChBC,EAAa5G,EAAM4G,WACnBC,EAAO7G,EAAM6G,KAEjB,OAAIN,EAAMtD,QAAQnE,IAAS,EAClB,MAGTyH,EAAMO,KAAKhI,GACSV,MAAMC,cAAc,SAAY,CAClDjE,IAAK0E,EACLF,MAAOA,GAAsBR,MAAMC,cAAc,OAAQ,KAAMS,GAC/DD,UAAU,GACIT,MAAMC,cAAc,SAAY,CAC9CU,SAAS,EACTD,KAAM0H,EACNxH,MAAO,CAAC,CACNH,UAAU,EACVkI,QAASH,EAAa,IAAIxN,OAAOwN,QAAcjK,EAC/CsC,QAASyH,KAEGtI,MAAMC,cAAc,IAAQ,CAC1CwC,YAAa8F,EAAU,GAAG1I,QAAO,IAAAP,IAAG,SAAU,KAAKO,OAAO0I,QAAWhK,OAChEkK,GAAqBzI,MAAMC,cAAc,MAAO,CACrDa,UAAW,yCACXmB,MAAO,CACLgB,OAAQ,eAEIjD,MAAMC,cAAc,IAAK,CACvCmB,wBAAyB,CACvBC,OAAQoH,WAGT,W,UChELG,GAA8C,SAAS,SAAU1M,GACnE,IAAIwE,EAAOxE,EAAKwE,KAGZmI,GADa,SACc9L,YAAYkK,OAAO4B,cAE9CC,GAAmB,IAAAC,UAAQ,WAC7B,OAAO7E,OAAOC,KAAK0E,KAClB,CAACA,IACJ,OAAoB7I,MAAMC,cAAc,SAAY,CAClDU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWhB,KAAUiB,EAAWjB,MAExC,SAAUjD,GACX,IACIsD,GAAQe,EADQrE,EAAMqE,eACApB,GAEtBuH,GAAU,OAAmBlH,EAAMmH,SAAS,sCAAsCjH,KAAI,SAAUnC,GAIlG,OAHY,OAAeA,EAAO,GACd,GAELkK,MAAM,KAAK7K,QAAO,SAAU8K,GACzC,OAAOH,EAAiBjE,QAAQoE,IAAW,QAE5CC,OAECC,EAAOlB,EAAQ9J,QAAO,SAAU8K,EAAQpO,GAC1C,OAAOoN,EAAQpD,QAAQoE,KAAYpO,KAGrC,OAAoB,IAAhBsO,EAAKpO,OACA,KAGWiF,MAAMC,cAAc,MAAO,CAC7Ca,UAAW,0CACGd,MAAMC,cAAc,IAAK,MAAM,IAAA0C,KAAG,IAAArD,IAAG,iSAAkS,CACrVsD,OAAqB5C,MAAMC,cAAc,SAAU,KAAMkJ,EAAKlI,KAAI,SAAUgI,GAC1E,OAAOJ,EAAcI,MACpBjB,KAAK,OACRnN,EAAgBmF,MAAMC,cAAc,IAAK,gBCtC3CmJ,GAA+B,SAAS,SAAUlN,GACpD,IAAImN,EAAUnN,EAAKmN,QACfzB,EAAgB1L,EAAK0L,cAErBnL,GAAa,SACbE,EAAcF,EAAWE,YACzBG,EAAwBL,EAAWM,YACnC+J,EAAuBhK,EAAsBgK,qBAC7CE,EAAQlK,EAAsBmK,OAAOD,MAErCnK,EAAiBF,EAAYE,eAE7ByM,GAAsC,IAAA9L,cAAY,SAAU+L,GAC9D,MAAO,CACLC,QAASD,OAAUhL,EAAY,EAC/BkL,OAAQF,OAAUhL,EAAY,EAC9B0E,OAAQsG,OAAUhL,EAAY,KAE/B,IACH,OAAoByB,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,IAAc,CAC3GE,OAAQC,EAAqBC,SAASC,KACtCmD,YAAsC,SAAzBqD,GAAkC,IAAAxH,IAAG,2RAA4R,IAAAA,IAAG,0hBAAojB,qBAAzBwH,EAA8C,KAAoB,QAC76B,IAAAxH,IAAG,uBAAqCU,MAAMC,cAAcsG,EAA6B,CAC1FC,QAAS,KACTC,kBAAmB,mBACnBC,wBAAyB,SACzBC,2BAA4B,yBAC5BC,yBAA0B,8BAC1BC,0BAA2B,iCACZ7G,MAAMC,cAAcsG,EAA6B,CAChEC,QAAS,KACTC,kBAAmB,mBACnBC,wBAAyB,SACzBC,2BAA4B,yBAC5BC,yBAA0B,8BAC1BC,0BAA2B,iCACZ7G,MAAMC,cAAc0H,EAA4B,CAC/DC,cAAeA,KACZyB,MAAAA,OAAyC,EAASA,EAAQtO,QAAU,GAAkBiF,MAAMC,cAAc,SAAY,CACzH+C,WAAY,CACV7C,OAAQC,EAAqBC,SAASC,OAEvC+I,MAAAA,OAAyC,EAASA,EAAQpI,KAAI,SAAUxD,GACzE,IAAIoD,EAAUpD,EAAMoD,QAChB6I,EAAWjM,EAAMiM,SACrB,OAAoB1J,MAAMC,cAAc,MAAO,CAC7Ca,UAAW,iBAAiBjB,OAAO6J,EAAU,wBAC7C1N,IAAK6E,GACSb,MAAMC,cAAc,IAAK,CACvCmB,wBAAyB,CACvBC,OAAQR,UAGIb,MAAMC,cAAc,SAAY,CAChDO,OAAO,IAAAlB,IAAG,4BACgB,qBAAzBwH,GAA+CE,GAAsBhH,MAAMC,cAAc,SAAY,CACtGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWiI,yBAA2BhI,EAAWgI,0BAEzD,SAAU7K,GAEX,QAAQgD,EADYhD,EAAMgD,eACJ,2BAA0C9B,MAAMC,cAAc,MAAO,CACzFgC,MAAO,CACLgB,OAAQ,UAEIjD,MAAMC,cAAc,SAAY,CAC9CS,KAAM,8BACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAA0C,KAAG,IAAArD,IAAG,wEAAyE,MAAoB,CACjNsK,EAAgB5J,MAAMC,cAAc,IAAK,aAEhB,qBAAzB6G,GAA+CE,GAAsBhH,MAAMC,cAAc,SAAY,CACvGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWmI,yBAA2BlI,EAAWkI,0BAEzD,SAAU3I,GAEX,QAAQY,EADYZ,EAAMY,eACJ,2BAA0C9B,MAAMC,cAAc,MAAO,CACzFgC,MAAO,CACLgB,OAAQ,UAEIjD,MAAMC,cAAc,SAAY,CAC9CS,KAAM,8BACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAA0C,KAAG,IAAArD,IAAG,wEAAyE,MAAoB,CACjNsK,EAAgB5J,MAAMC,cAAc,IAAK,aAE5BD,MAAMC,cAAc,SAAY,CAC/CS,KAAM,YACNC,SAAS,GACKX,MAAMC,cAAc,IAAY,CAC9C6J,SAAUC,OAAOC,eACDhK,MAAMC,cAAc2I,EAA6C,CACjFlI,KAAM,eACUV,MAAMC,cAAc,SAAY,CAChDU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWrG,QAAUsG,EAAWtG,SAExC,SAAUuG,GACX,IAAIE,EAAgBF,EAAME,cAC1B,OAAoB9B,MAAMC,cAAcD,MAAME,SAAU,KAAmBF,MAAMC,cAAc,SAAY,CACzGO,OAAO,IAAAlB,IAAG,4BACV2C,MAAOqH,EAAoCxH,EAAc,WAAajF,EAAeb,MACvEgE,MAAMC,cAAc,SAAY,CAC9CU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAW0B,yBAA2BzB,EAAWyB,0BAEzD,SAAUP,GAEX,OAAOf,EADae,EAAMf,eACL,0BAA4B,KAAoB9B,MAAMC,cAAc,MAAO,CAC9FgC,MAAO,CACLgB,OAAQ,UAEIjD,MAAMC,cAAc,SAAY,CAC9CS,KAAM,mBACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAAX,IAAG,+HACxF,qBAAzBwH,GAA+CE,GAAsBhH,MAAMC,cAAc,SAAY,CACvGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWiI,yBAA2BhI,EAAWgI,0BAEzD,SAAU7D,GAEX,QAAQhE,EADYgE,EAAMhE,eACJ,2BAA0C9B,MAAMC,cAAc,MAAO,CACzFgC,MAAO,CACLgB,OAAQ,UAEIjD,MAAMC,cAAc,SAAY,CAC9CS,KAAM,+BACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAA0C,KAAG,IAAArD,IAAG,wEAAyE,MAAoB,CACjNsK,EAAgB5J,MAAMC,cAAc,IAAK,aAEhB,qBAAzB6G,GAA+CE,GAAsBhH,MAAMC,cAAc,SAAY,CACvGU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWmI,yBAA2BlI,EAAWkI,0BAEzD,SAAUI,GAEX,QAAQnI,EADYmI,EAAMnI,eACJ,2BAA0C9B,MAAMC,cAAc,MAAO,CACzFgC,MAAO,CACLgB,OAAQ,UAEIjD,MAAMC,cAAc,SAAY,CAC9CS,KAAM,+BACNoC,cAAe,UACfnC,SAAS,GACKX,MAAMC,cAAc,IAAS,OAAqBD,MAAMC,cAAc,OAAQ,KAAM,MAAY,IAAA0C,KAAG,IAAArD,IAAG,wEAAyE,MAAoB,CACjNsK,EAAgB5J,MAAMC,cAAc,IAAK,aAE5BD,MAAMC,cAAc,SAAY,CAC/CS,KAAM,aACNC,SAAS,GACKX,MAAMC,cAAc,IAAY,CAC9C6J,SAAUC,OAAOC,eACDhK,MAAMC,cAAc2I,EAA6C,CACjFlI,KAAM,oBAEOV,MAAMC,cAAc,SAAY,CAC/CO,OAAO,IAAAlB,IAAG,+BACIU,MAAMC,cAAc,SAAY,CAC9CS,KAAM,iBACNC,SAAS,GACKX,MAAMC,cAAc,IAAY,CAC9C6J,SAAUC,OAAOC,eACDhK,MAAMC,cAAc2I,EAA6C,CACjFlI,KAAM,wBCrKNN,EAAuB,CACzBC,SAAU,CACRC,KAAM,GAER0C,WAAY,CACV1C,KAAM,KAGN+F,EAA8B,CAChC7E,KAAM,OACNd,KAAM,GACN0E,KAAM,GACN8E,cAAU3L,EACV4L,aAAc,IACdtE,iBAAiB,GAEfuE,GAAiB,SAAS,SAAUlO,GACtC,IAAImO,EAAuBC,EAAwBC,EAAuBC,EAAwBC,EAAwBC,EAAwBC,EAE9IC,EAAS1O,EAAK0O,OACdC,EAAa3O,EAAK2O,WAClBC,EAAwB5O,EAAK6O,sBAC7BA,OAAkD,IAA1BD,GAA0CA,EAClEE,EAAmB9O,EAAK+O,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAYhP,EAAKgP,UAEjBhO,EAAkBhC,IAClBiQ,EAAwBjO,EAAgB/B,WACxCE,EAAQ8P,EAAsB9P,MAC9B+P,EAAOD,EAAsBC,KAC7B1P,EAASwB,EAAgBxB,OACzBF,EAAK0B,EAAgB1B,GACrBG,EAAUuB,EAAgBvB,QAC1BI,EAAUmB,EAAgBnB,QAE1BsP,EAAgB,cAEhBC,GADiB,OAAeD,EAAe,GACzB,GAEtBE,GAAY,IAAAC,WAAS,GACrBC,GAAa,OAAeF,EAAW,GACvCG,EAASD,EAAW,GACpBE,GAAYF,EAAW,GAEvBG,IAAa,IAAAJ,WAAS,GACtBK,IAAa,OAAeD,GAAY,GACxCE,GAAaD,GAAW,GACxBE,GAAgBF,GAAW,GAE3BG,IAAU,IAAAC,cAEVxP,IAAa,SACbE,GAAcF,GAAWE,YACzBuP,GAAkCzP,GAAWM,YAAYkK,OAAOiF,gCAEhErP,GAAiBF,GAAYE,eAC7BO,IAAe1B,MAAAA,OAAuC,EAASA,EAAO0B,cAAgBT,GAAYwP,cAAcrQ,IAAI8O,MAAAA,OAAuC,EAASA,EAAOtN,YAE3K8O,GAAWvB,EAAaA,EAAWxP,OAG/B,QAHyCgP,EAAwB1N,GAAYC,OAAOoE,aAAa7C,QAAO,SAAUV,GAExH,OADWA,EAAMJ,KAAKqD,OACNmK,EAAWxP,gBACa,IAA1BgP,GAAoG,QAAvDC,EAAyBD,EAAsB,UAA2C,IAA3BC,OAAzE,EAAsHA,EAAuBtO,MAAQ,8BAA2BuC,EAAYlD,EAAMW,IACjPqQ,GAA8BnI,OAAOC,MAAMyG,MAAAA,OAAuC,EAASA,EAAO0B,wBAA0B,IAAIvR,OAAS,EACzIwR,IAA8B1B,MAAAA,OAA+C,EAASA,EAAW0B,8BAAgCnP,MAAAA,IAA+G,QAApDmN,EAAwBnN,GAAYyN,kBAAkD,IAA1BN,OAAtE,EAAkHA,EAAsBgC,4BAC1TC,KAA4BpP,MAAAA,KAAkDA,GAAYC,KAAKoP,SAAiE,QAArDjC,EAAyBpN,GAAYyN,kBAAmD,IAA3BL,IAAqCA,EAAuBkC,YAA8E,IAAjE,CAAC,sBAAsB7H,QAAQzH,GAAYC,KAAKC,aACjSqP,GAAgB5Q,EAAU,CAC5B2E,KAAMhF,EAAO2B,KAAKuG,MAAMgJ,IACxBC,OAAQnR,EAAO2B,KAAKwP,OACpBxR,MAAOA,EAAMW,UAAOuC,EAEpBuO,QAASpR,EAAO2B,KAAK0P,QAAQH,IAC7BI,SAAUtR,EAAO2B,KAAK4P,KAAKD,SAC3BE,sBAAuBxR,EAAO2B,KAAK4P,KAAKC,sBACxC1N,4BAA6B9D,EAAO2B,KAAK4P,KAAKzN,6BAA+B9D,EAAO2B,KAAKM,KACzFyF,uBAAwB1H,EAAO2B,KAAK4P,KAAK7J,uBACzC+J,WAAYzR,EAAO2B,KAAK4P,KAAKE,WAC7BnQ,YAAatB,EAAO2B,KAAK4P,KAAKjQ,YAC9BqG,qBAAsB+J,KAAKC,MAAMD,KAAKE,UAAU5R,EAAO2H,sBAAwB,OAC/EkK,aAAcH,KAAKC,MAAMD,KAAKE,UAAU5R,EAAO6R,cAAgB,OAC/D5D,uBAAwBjO,EAAO2B,KAAK4P,KAAKtD,uBACzC6D,4BAA6B9R,EAAO2B,KAAK4P,KAAKO,4BAC9CC,6BAA8B/R,EAAO2B,KAAK4P,KAAKQ,6BAC/C5D,uBAAwBnO,EAAO2B,KAAK4P,KAAKpD,uBACzC6D,4BAA6BhS,EAAO2B,KAAK4P,KAAKS,4BAC9CC,6BAA8BjS,EAAO2B,KAAK4P,KAAKU,6BAC/CjB,UAAWhR,EAAO2B,KAAK4P,KAAKP,UAC5BkB,4BAA6BlS,EAAO2B,KAAK4P,KAAKW,4BAC9CC,4BAA6BnS,EAAO2B,KAAK4P,KAAKY,4BAC9CC,WAAYpS,EAAO2B,KAAK4P,KAAKa,WAC7BC,6BAA8BrS,EAAO2B,KAAK4P,KAAKc,6BAC/CC,6BAA8BtS,EAAO2B,KAAK4P,KAAKe,6BAC/CC,eAAgBvS,EAAO2B,KAAK4P,KAAKgB,eACjCC,iBAAkBxS,EAAO2B,KAAK4P,KAAKiB,kBACjC,CACFxN,MAAOmK,MAAAA,OAA+C,EAASA,EAAWnK,OAAS,GACnFmM,OAAQ,UACRxR,MAA2B,iBAAb+Q,IACdA,SAAwB7N,EACxBuO,SAAUjC,MAAAA,OAA+C,EAASA,EAAWiC,UAAY,GACzFE,UAAWnC,MAAAA,OAA+C,EAASA,EAAWmC,WAAa,GAC3FE,uBAAwBrC,MAAAA,OAA+C,EAASA,EAAWqC,wBAA0B,GACrH1N,6BAA8BqL,MAAAA,OAA+C,EAASA,EAAWrL,+BAAiCoL,MAAAA,OAAuC,EAASA,EAAOtN,aAAe,GACxM8F,wBAAyByH,MAAAA,OAA+C,EAASA,EAAWzH,0BAA2B,EACvH+J,YAAatC,MAAAA,OAA+C,EAASA,EAAWsC,aAAe,UAC/FnQ,aAAc6N,MAAAA,OAA+C,EAASA,EAAW7N,eAAgB,EACjGqG,qBAAsBwH,MAAAA,GAAgDA,EAAWxH,qBAAuB+J,KAAKC,MAAMD,KAAKE,UAAUzC,EAAWxH,uBAAyB,CAACgD,GACvKkH,cAAe1C,MAAAA,OAA+C,EAASA,EAAW0C,eAAiB,GACnG5D,wBAAyBkB,MAAAA,OAA+C,EAASA,EAAWlB,0BAA2B,EACvH6D,6BAA8B3C,MAAAA,OAA+C,EAASA,EAAW2C,8BAAgC,GACjIC,8BAA+B5C,MAAAA,OAA+C,EAASA,EAAW4C,+BAAiC,GACnI5D,wBAAyBgB,MAAAA,OAA+C,EAASA,EAAWhB,0BAA2B,EACvH6D,6BAA8B7C,MAAAA,OAA+C,EAASA,EAAW6C,8BAAgC,GACjIC,8BAA+B9C,MAAAA,OAA+C,EAASA,EAAW8C,+BAAiC,GACnIjB,WAAY7B,MAAAA,OAA+C,EAASA,EAAW6B,YAAc,GAC7FkB,6BAA8B/C,MAAAA,OAA+C,EAASA,EAAW+C,+BAAgC,EACjIC,6BAA8BhD,MAAAA,OAA+C,EAASA,EAAWgD,+BAAgC,EACjIC,YAAajD,MAAAA,OAA+C,EAASA,EAAWiD,aAAe,GAC/FG,gBAAiBpD,MAAAA,OAA+C,EAASA,EAAWoD,iBAAmB,GACvGF,8BAA+BlD,MAAAA,OAA+C,EAASA,EAAWkD,gCAAiC,EACnIC,8BAA+BnD,MAAAA,OAA+C,EAASA,EAAWmD,gCAAiC,EACnIE,kBAAmBrD,MAAAA,OAA+C,EAASA,EAAWqD,oBAAqB,EAC3GC,qBAA2H,kBAA7FtD,MAAAA,OAA+C,EAASA,EAAWsD,sBAAsCtD,EAAWsD,qBAAuB9B,MAAiCxB,MAAAA,GAAgDA,EAAWuD,2CACrQC,uBAAwBxD,MAAAA,OAA+C,EAASA,EAAWwD,uBAC3FC,aAAc1D,IAGhB,IAAA2D,YAAU,WACJ5S,IAAYI,GACdV,EAAMO,QAAQ4S,UAAU,CACtBlT,OAAQ,CACNE,GAAIA,EACJiT,QAAS,YAId,CAAC9S,EAASI,KAEb,IAAAwS,YAAU,WACJnR,KAAgBA,GAAYyN,YAC9BzN,GAAYsR,oBAEb,CAACtR,MAEJ,IAAAmR,YAAU,WACJtD,IACF,EAAA0D,EAAA,GAAS,KAEV,IACH,IAAIC,IAAa,IAAApR,aAA0B,WACzC,IAAIsB,GAAQ,OAAgC,UAAyB,SAASpB,EAAQmR,GACpF,IAAIC,EAAcpO,EAAMmM,EAAQC,EAAS1J,EAAwBC,EAAsB0L,EAAQxB,EAAcY,EAAsBE,EAAwB7O,EAA6BkN,EAAWoB,EAAYG,EAAgBhB,EAAM+B,EAASC,EAAWC,EAEzP,OAAO,UAAyB,SAAkBtR,GAChD,OACE,OAAQA,EAASC,KAAOD,EAASE,MAC/B,KAAK,EAqBH,GApBAF,EAASC,KAAO,EAGhBiR,EAAe,SAAsBrU,GACnC,OAAOyR,GAAkC,iBAAiBrM,OAAOsP,KAAK1U,IAAQA,GAGhFiG,EAAOmO,EAAOnO,KAAMmM,EAASgC,EAAOhC,OAAQC,EAAU+B,EAAO/B,QAAS1J,EAAyByL,EAAOzL,uBAAwBC,EAAuBwL,EAAOxL,qBAAsB0L,EAASF,EAAOxT,MAAOkS,EAAesB,EAAOtB,aAAcY,EAAuBU,EAAOV,qBAAsBE,EAAyBQ,EAAOR,uBAAwB7O,EAA8BqP,EAAOrP,4BAA6BkN,EAAYmC,EAAOnC,UAAWoB,EAAae,EAAOf,WAAYG,EAAiBY,EAAOZ,eAAgBhB,GAAO,OAAyB4B,EAAQ,CAAC,OAAQ,SAAU,UAAW,yBAA0B,uBAAwB,QAAS,eAAgB,uBAAwB,yBAA0B,8BAA+B,YAAa,aAAc,0BAC9vBG,GAAU,QAAc,OAAc,GAAI/B,GAAO,GAAI,CACnDP,UAAWoC,EAAapC,GACxBoB,WAAYgB,EAAahB,GACzBG,eAAgBa,EAAab,GAC7B7K,uBAAwBA,EACxBmK,aAAcH,KAAKE,UAAUC,GAE7BlK,qBAAsB+J,KAAKE,UAAUlK,EAAyBuJ,GAActJ,qBAAuBA,GACnG7D,4BAA6BA,GAA+BhF,EAAQkG,MAEvD4N,aAEV3S,EAAS,CACZiC,EAASE,KAAO,GAChB,MASF,OANApC,EAAO0T,QAAQ1O,GACfhF,EAAO2T,UAAUxC,GACjBnR,EAAO4T,WAAWxC,GAClBpR,EAAO6T,QAAQP,GACftT,EAAO8T,SAAST,GAChBnR,EAASE,KAAO,GACTpC,EAAO+T,QAEhB,KAAK,GACH7R,EAASE,KAAO,GAChB,MAEF,KAAK,GAiBH,OAhBAmR,EAAYtS,GAAYC,OAAOf,QAAQC,IAAIiT,GAC3CG,EAAQ,IAAI,IAAYD,EAAUrT,QAAS,CACzCgI,MAAO,CACL8L,SAAUhP,GAEZqM,QAAS,CACP2C,SAAU5C,EACV6C,WAAW,GAEb9C,OAAQA,EACRI,MAAM,QAAc,OAAc,GAAI+B,GAAU,GAAI,CAClDY,SAAUhF,MAAAA,OAAuC,EAASA,EAAOtN,WACjEuS,cAAejF,MAAAA,OAAuC,EAASA,EAAOkF,YAG1ElS,EAASE,KAAO,GACToR,EAAMa,UAEf,KAAK,GACH7E,MAAAA,GAAsDA,EAAUgE,GAElE,KAAK,GACHnD,IAAc,GAEd,cAAiB,IAAAzM,IAAG,6CAA+C6O,EAAuB,IAAItO,QAAO,IAAAP,IAAG,qDAAuD,KAG/JyL,GAAyBiF,YAAW,WAClC,OAAO7B,EACPnC,GAAQtD,KAAK,sBAAsB7I,OAAOwO,GAA0BzD,EAAOtN,WAAY,2BAA2BuC,OAAwC,iBAA1BkL,EAAqC,0BAA0BlL,OAAOoQ,mBAAmBlF,IAA0B,KAClN,iBAA1BA,EAAqChB,OAAO/L,SAASkS,KAAOnF,EAAwBiB,GAAQtD,KAAK,GAAG7I,OAAOuL,EAAK+E,MAAM,GAAI,KAAKtQ,OAAOkP,MAC5I,GACHnR,EAASE,KAAO,GAChB,MAEF,KAAK,GAMH,MALAF,EAASC,KAAO,GAChBD,EAASU,GAAKV,EAAgB,MAAE,GAEhC,WAAeA,EAASU,GAAG8R,aAAavP,SAElCjD,EAASU,GAEjB,KAAK,GACL,IAAK,MACH,OAAOV,EAASY,UAGrBd,EAAS,KAAM,CAAC,CAAC,EAAG,UAGzB,OAAO,SAAUe,GACf,OAAOK,EAAMJ,MAAMC,KAAMC,YAlGc,GAoGtC,CAACjD,EAASD,EAAQiB,GAAauP,KAChCmE,IAAW,IAAA7S,aAA0B,WACvC,IAAI0D,GAAQ,OAAgC,UAAyB,SAASnC,EAAS8P,GACrF,OAAO,UAAyB,SAAmBxP,GACjD,OACE,OAAQA,EAAUxB,KAAOwB,EAAUvB,MACjC,KAAK,EAIH,OAHA6N,IAAU,GACVtM,EAAUxB,KAAO,EACjBwB,EAAUvB,KAAO,EACV8Q,GAAWC,GAEpB,KAAK,EACHxP,EAAUvB,KAAO,EACjB,MAEF,KAAK,EACHuB,EAAUxB,KAAO,EACjBwB,EAAUf,GAAKe,EAAiB,MAAE,GAEpC,KAAK,EAGH,OAFAA,EAAUxB,KAAO,EACjB8N,IAAU,GACHtM,EAAUiR,OAAO,GAE1B,KAAK,GACL,IAAK,MACH,OAAOjR,EAAUb,UAGtBO,EAAU,KAAM,CAAC,CAAC,EAAG,EAAG,EAAG,UAGhC,OAAO,SAAUe,GACf,OAAOoB,EAAMxC,MAAMC,KAAMC,YAjCY,GAmCpC,CAAC0M,EAAMsD,KACR2B,IAAiB,IAAA/S,cAAY,SAAUgT,GACzC,YAAe,IAAAlR,IAAG,uEAEdkR,EAAUC,YAAY1V,QACxBuQ,EAAKoF,cAAcF,EAAUC,YAAY,GAAG/P,KAAM,CAChDiQ,SAAU,SACVC,MAAO,aAGV,IACCC,IAAqB,IAAArT,cAAY,WACnC,OAAKsO,KAIE,IAAAxM,IAAG,0FACT,CAACgM,EAAMqB,KAEV,OAAIhR,IAAYI,EACMiE,MAAMC,cAAc,IAAW,CACjDmH,QAAQ,EACR0J,UAAW,CACTC,KAAM,KAKQ/Q,MAAMC,cAAc,IAAO,CAC7C+Q,SAAUtF,IAAWtO,MAAAA,QAAiD,EAASA,GAAY6T,QAAS,GACtFjR,MAAMC,cAAc,EAAAiR,OAAQ,CAC1CrQ,QAASgQ,KACM7Q,MAAMC,cAAc,KAAO,OAAS,CACnDS,KAAM,UAAUb,OAAOxE,EAAMW,IAAK,KAAK6D,OAAOrE,GAC9C8P,KAAMA,GACLlL,EAAsB,CACvBuM,cAAeA,GACf0D,SAAUA,GACVE,eAAgBA,GAChBY,eAAgB,SAAwBvP,GACtC,IAAIyB,EAAuBzB,EAAMyB,qBACjC0I,IAAc,GAGd,IAAIqF,GAAM/N,GAAwB,IAAIlF,OAAO2J,SAE7C,GAAkB,IAAdsJ,EAAGrW,OAAc,CACnB,IAAIsW,EAAgBnN,OAAOC,KAAKiN,EAAG,IAEN,IAAzBC,EAActW,QAAgB,CAAC,kBAAmB,QAAQ8J,QAAQwM,EAAc,KAAO,GACzFrB,YAAW,WACT,OAAO1E,EAAKgG,mBACX,SAIMtR,MAAMC,cAAchE,EAA6B,CAChEM,aAAcsO,MAAAA,OAA+C,EAASA,EAAWtO,eAAiBa,MAAAA,IAAgH,QAArDqN,EAAyBrN,GAAYyN,kBAAmD,IAA3BJ,OAAvE,EAAoHA,EAAuBlO,aAC9RC,4BAA8BT,GAAD,MAAYqB,KAAkDA,GAAYyN,YAAe8B,GAAcO,sBAA4R,MAApQ,IAAA5N,IAAG,gPAAiP,cAChZhD,8BAA4C,2BAAb8P,IAAwCvB,EAAWxP,QACnE2E,MAAMC,cAAciD,EAA+B,MAAoBlD,MAAMC,cAAcmJ,EAA8B,CACxIxB,eAAgBiD,MAAAA,OAA+C,EAASA,EAAWjD,iBAAmBxK,MAAAA,IAAgH,QAArDsN,EAAyBtN,GAAYyN,kBAAmD,IAA3BH,OAAvE,EAAoHA,EAAuB9C,eAClSyB,QAAS,CAAC,CACRxI,SAAUgK,MAAAA,OAA+C,EAASA,EAAW0G,2BAA6BnU,MAAAA,IAAgH,QAArDuN,EAAyBvN,GAAYyN,kBAAmD,IAA3BF,OAAvE,EAAoHA,EAAuB4G,yBACtS7H,SAAU,QACT,CAED7I,QAAS2L,KAA2BH,KAA+B,IAAA/M,IAAG,2MAA4MlC,GAAYC,KAAKmU,iBACnS9H,SAAU,WACT,CAED7I,QAAS2L,IAA0BH,KAA+B,IAAA/M,IAAG,sgBAAugBlC,GAAYC,KAAKmU,iBAC7lB9H,SAAU,YACTvL,QAAO,SAAU0E,GAElB,OADcA,EAAMhC,eAGlB+J,GAAuB5K,MAAMC,cAAcD,MAAME,SAAU,KAAMmM,IAA+BtB,GAAsC/K,MAAMC,cAAc,SAAY,CAC1K+C,WAAY,CACV7C,OAAQC,EAAqBC,SAASC,OAE1BN,MAAMC,cAAc,SAAY,CAC9CU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWrG,QAAUsG,EAAWtG,SAExC,SAAUyK,GACX,IAAIhE,EAAgBgE,EAAMhE,cAC1B,OAAoB9B,MAAMC,cAAc,SAAY,CAClDU,SAAS,EACTD,KAAM,uBACNoC,cAAe,UACf2O,aAAc,CAAC,SACf7Q,MAAO,CAAC,CACNwB,UAAW,SAAmB1C,EAAGqB,GAC/B,OAAOe,EAAc,WAAajF,GAAeb,KAAO+E,EAAQgE,QAAQE,QAAO,IAAA3F,IAAG,iIAAmIyF,QAAQC,cAGnNhF,MAAMC,cAAc,IAAW,MAAM,IAAAX,IAAG,iDACzCU,MAAMC,cAAc,SAAY,CAC/CU,SAAS,EACTc,aAAc,SAAsBC,EAAYC,GAC9C,OAAOD,EAAWyM,uBAAyBxM,EAAWwM,wBAEvD,SAAUlE,GACX,IAAInI,EAAgBmI,EAAMnI,cAC1B,OAAoB9B,MAAMC,cAAcD,MAAME,SAAU,KAAM4B,EAAc,yBAAwC9B,MAAMC,cAAcD,MAAME,SAAU,KAAMgE,OAAOC,KAAKyG,EAAO0B,uBAAuBvR,OAAS,GAAkBiF,MAAMC,cAAc,SAAY,CACjQU,SAAS,EACTD,KAAM,yBACNE,MAAO,CAAC,CACNH,UAAU,EACVI,SAAS,IAAAvB,IAAG,wDAEAU,MAAMC,cAAc,IAAS,CAC3CgC,MAAO,CACLgE,SAAU,IACVP,UAAW,GACXxD,QAAS,SAEXO,aAAa,IAAAnD,IAAG,uCACf4E,OAAOC,KAAKyG,EAAO0B,uBAAuBrL,KAAI,SAAUyQ,GACzD,OAAoB1R,MAAMC,cAAc,WAAgB,CACtDjE,IAAK0V,EACL3Q,MAAO2Q,GACN9G,EAAO0B,sBAAsBoF,SACf1R,MAAMC,cAAc,MAAO,CAC5Ca,UAAW,yCACXmB,MAAO,CACLyD,UAAW,KAEC1F,MAAMC,cAAc,IAAK,MAAM,IAAAX,IAAG,oIAAqIiN,IAA2CvM,MAAMC,cAAc,MAAO,CAC3Pa,UAAW,0CACGd,MAAMC,cAAc,IAAK,CACvCmB,wBAAyB,CACvBC,OAAQkL,YAGIvM,MAAMC,cAAc,SAAY,CAChDS,KAAM,cACNoC,cAAe,UACfrC,UAAU,EACVG,MAAO,CAAC,CACNY,KAAM,UACNf,UAAU,EACVkR,UAAW,SAAmB5Q,GAC5B,OAAOA,QAASxC,GAElBsC,SAAS,IAAAvB,IAAG,uEAEd0D,WAAY,CACV7C,OAAQC,EAAqBC,SAASC,OAE1BN,MAAMC,cAAc,IAAW,MAAM,IAAAX,IAAG,kKAAmK,IAAkBU,MAAMC,cAAc,IAAc,CAC7QM,KAAK,IAAAjB,IAAG,kFACUU,MAAMC,cAAc,SAAY,CAClDa,UAAW,0BACGd,MAAMC,cAAc,OAAQ,KAAmBD,MAAMC,cAAc,QAAS,CAC1FuB,KAAM,SACNV,UAAW,8BACXC,OAAO,IAAAzB,IAAG,kB,mEC/cVsS,EAAe,SAAsB1V,GACvC,IAAI2V,EAAW3V,EAAK2V,SAChBpO,EAAcvH,EAAKuH,YACnBtD,EAASjE,EAAKiE,OAClB,OAAoBH,MAAMC,cAAc,SAAY,CAClD+C,WAAY,CACV7C,OAAQA,GAEV8B,MAAO,CACL6P,aAAc,sBAEF9R,MAAMC,cAAc,KAAM,CACxCgC,MAAO,CACLgB,OAAQ,OAAOpD,OAAO4D,EAAc,EAAI,GAAI,UAE7CoO,KAAapO,GAA4BzD,MAAMC,cAAc,IAAK,CACnEa,UAAW,cACXmB,MAAO,CACLyB,aAAc,KAEfD,M,6EChBL,SAASsO,IACP,OAAO,IAAI,EAAAC,IAAI,IAAInS,QAAO,IAAAoS,eAAcC,SAAS,GAAMC,Q,gGCFrD/W,EAAsB,WACxB,IACIgX,GADiB,IAAA7W,iBACYD,OAAO8W,YAGpCzV,GADa,SACYA,YAGzBnB,EAAKC,OAAO2W,GAAe,GAAKA,EAChCzW,IAAYyW,EACZ/W,EAAQsB,EAAYC,OAAOf,QAAQC,IAAIN,IAAO,IAAI,IAAiBmB,EAAYC,OAAQ,CACzFpB,GAAI,IAGF6W,GAAW,IAAA7U,cAAY,SAAUtB,GACnC,IAAIF,EAAME,EAAKF,IACf,MAAO,aAAa6D,OAAOxE,EAAMW,IAAK,UAAU6D,OAAO7D,KACtD,CAACX,IACAiX,EAAgB,aAAazS,OAAOxE,EAAMW,IAAK,QACnD,MAAO,CACLX,MAAOA,EACPG,GAAIA,EACJG,QAASA,EACTI,QAAuB,IAAdV,EAAMW,IACfoP,KAXS,YAYTiH,SAAUA,EACVC,cAAeA,K,qBC/BnB,SAASC,IACP,MAAO,CACLC,KAAM,CACJ9R,KAAM,cACN+R,KAAM,OACNC,gBAAiB,SAEnBC,MAAO,CACLjS,KAAM,gBACN+R,KAAM,QACNC,gBAAiB,WAEnBE,QAAS,CACPlS,KAAM,kBACN+R,KAAM,UACNC,gBAAiB,WAEnBG,MAAO,CACLnS,KAAM,4BACN+R,KAAM,QACNC,gBAAiB,WAEnBI,UAAW,CACTpS,KAAM,YACN+R,KAAM,OACNC,gBAAiB,Y","sources":["webpack:///./src/public/ts/utils/slugify.tsx","webpack:///./src/public/ts/hooks/useRouteCookie.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:///./src/public/ts/others/dynamics/index.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","webpack:///./src/public/ts/others/cookieTypeLocalized.tsx"],"sourcesContent":["/**\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 };","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 } 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 groupNotice = _ref.groupNotice,\n providerPrivacyPolicyNotice = _ref.providerPrivacyPolicyNotice;\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))), !!groupNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-info below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: groupNotice\n }\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 }, __(\"The ePrivacy Directive and the GDPR require that a non-professional user understands the purpose of this service, how personal data is collected and how cookies are used for this purpose.\"))), /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicy\",\n noStyle: true,\n rules: [{\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).\")), !!providerPrivacyPolicyNotice && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: providerPrivacyPolicyNotice\n }\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(\"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 _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport { observer } from \"mobx-react\";\nimport { __, _i, isHost, isUrl } from \"../../../../utils\";\nimport { getCookieTypeLocalized } from \"../../../../others\";\nimport { PlusOutlined, QuestionCircleFilled, DeleteOutlined } from \"@ant-design/icons\";\nimport { FormHeadline } from \"../../..\";\nimport { CookieEditFormLayout, technicalDefinitionDefaults } from \"..\";\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 = getCookieTypeLocalized();\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 (_ref) {\n var getFieldValue = _ref.getFieldValue;\n return getFieldValue(\"noTechnicalDefinitions\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, function (fields, _ref2) {\n var add = _ref2.add,\n remove = _ref2.remove;\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: 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\", null, /*#__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\", {\n width: 50,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(\"tbody\", null, fields.map(function (field) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: field.key\n }, /*#__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 }, 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 (_ref3) {\n var getFieldValue = _ref3.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 (_ref4) {\n var getFieldValue = _ref4.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 (_ref5) {\n var getFieldValue = _ref5.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 (_ref6) {\n var getFieldValue = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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, 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: 5,\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 };","/**\n * This fields of cookies can hold dynamic variables in `{{my_variable}}` format.\n */\nvar DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\nvar DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\nexport * from \"./apply\";\nexport { DYNAMICS_SEARCH_IN, 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_SEARCH_IN, DYNAMICS_VARIABLE_REGEXP } from \"../../../../others\";\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 } 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 }\n }, notices === null || notices === void 0 ? void 0 : notices.map(function (_ref2) {\n var message = _ref2.message,\n severity = _ref2.severity;\n return /*#__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 }));\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 (_ref3) {\n var getFieldValue = _ref3.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 (_ref4) {\n var getFieldValue = _ref4.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 (_ref5) {\n var getFieldValue = _ref5.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 (_ref6) {\n var getFieldValue = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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 (_ref8) {\n var getFieldValue = _ref8.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 _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 } 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};\nvar CookieEditForm = observer(function (_ref) {\n var _cookieStore$groups$s, _cookieStore$groups$s2, _presetModel$attribut, _presetModel$attribut2, _presetModel$attribut3, _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 group.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 _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {\n var codeToBase64, name, status, purpose, noTechnicalDefinitions, technicalDefinitions, _group, codeDynamics, createContentBlocker, createContentBlockerId, consentForwardingUniqueName, codeOptIn, codeOptOut, codeOnPageLoad, meta, newMeta, _useGroup, draft;\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(btoa(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!\")) : \"\")); // 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 = 29;\n break;\n\n case 25:\n _context.prev = 25;\n _context.t0 = _context[\"catch\"](0);\n\n _message.error(_context.t0.responseJSON.message);\n\n throw _context.t0;\n\n case 29:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 25]]);\n }));\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }(), [queried, cookie, cookieStore, useEncodedStringForScriptInputs]);\n var onFinish = useCallback( /*#__PURE__*/function () {\n var _ref4 = _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 _ref4.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 form.scrollToField(errorInfo.errorFields[0].name, {\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(_ref5) {\n var technicalDefinitions = _ref5.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(CookieEditFormGeneralFields, {\n groupNotice: (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 providerPrivacyPolicyNotice: !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\") : null,\n showNoticePresetGroupNotFound: useGroup === \"preset-group-not-found\" ? attributes.group : false\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 (_ref6) {\n var message = _ref6.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 (_ref7) {\n var getFieldValue = _ref7.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 (_ref8) {\n var getFieldValue = _ref8.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 };","function getCookieTypeLocalized() {\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 { getCookieTypeLocalized };"],"names":["slugify","str","replace","toLowerCase","from","i","l","length","RegExp","charAt","useRouteCookie","routeGroup","useRouteCookieGroup","group","params","useRouteMatch","id","isNaN","cookie","queried","cookies","entries","get","fetched","key","CookieEditFormGeneralFields","_ref","_cookie$presetModel","_cookie$presetModel$d","_ref$showNoticePreset","showNoticePresetGroupNotFound","groupNotice","providerPrivacyPolicyNotice","_useStores","_useStores$cookieStor","cookieStore","groups","essentialGroup","_useStores$optionStor","optionStore","ePrivacyUSA","consentForwarding","_useRouteCookie","isRealCookieBannerPreset","presetModel","data","identifier","findByUniqueCookieName","useCallback","_ref2","_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","match","_","g1","g2","concat","_x2","_x3","React","createElement","Fragment","offset","CookieEditFormLayout","labelCol","span","url","label","required","name","noStyle","rules","message","className","value","sortedGroups","map","_ref4","_ref4$data","dangerouslySetInnerHTML","__html","autoSize","minRows","type","shouldUpdate","prevValues","nextValues","_ref5","_validator","getFieldValue","setFieldsValue","isEssentialGroup","style","display","validateTrigger","validator","_callee3","_context3","_x4","_x5","placeholder","disabled","_i","strong","_ref6","valuePropName","WP_LIST_TABLE_FORM_ITEM_PROPS","wrapperCol","margin","CookieEditFormTechnicalFields","cookieTypeLocalized","noTechnicalDefinitions","technicalDefinitions","fields","add","remove","description","marginBottom","width","title","code","QuestionCircleFilled","align","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","startsWith","substr","_prevValues$technical4","_nextValues$technical4","float","marginTop","_prevValues$technical5","_nextValues$technical5","sessionDuration","_ref7","min","addonAfter","maxWidth","onClick","DeleteOutlined","colSpan","technicalDefinitionDefaults","PlusOutlined","CookieEditFormManagerFields","manager","onlyWhenManagerIs","hasManagerAttributeName","thisIsManagerAttributeName","inEventNameAttributeName","outEventNameAttributeName","setCookiesViaManager","hasManager","isPro","others","curValues","isActive","active","inEventName","outEventName","addonBefore","marginRight","DYNAMICS_SEARCH_IN","DYNAMICS_VARIABLE_REGEXP","CookieEditFormCodeDynamics","dynamicFields","k","Boolean","searchInResolved","join","matches","matchAll","added","formName","_ref5$invalidMessage","invalidMessage","example","expression","hint","push","pattern","NoticeFormItemContainsSkipIfActiveAttribute","activePlugins","activePluginKeys","useMemo","split","plugin","flat","uniq","CookieEditFormHandlingFields","notices","createHiddenFormItemsWithCodeMirror","visible","opacity","height","severity","thisIsGoogleTagManager","u","thisIsMatomoTagManager","settings","window","cm_settings","_ref8","duration","durationUnit","CookieEditForm","_cookieStore$groups$s","_cookieStore$groups$s2","_presetModel$attribut","_presetModel$attribut2","_presetModel$attribut3","_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","purpose","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","getSingle","context","fetchAttributes","scrollTo","handleSave","values","codeToBase64","_group","newMeta","_useGroup","draft","btoa","setName","setStatus","setPurpose","setMeta","setGroup","patch","rendered","protected","presetId","presetVersion","version","persist","setTimeout","encodeURIComponent","href","slice","responseJSON","onFinish","finish","onFinishFailed","errorInfo","errorFields","scrollToField","behavior","block","handleBeforeUnload","paragraph","rows","spinning","busy","Prompt","onValuesChange","td","tdChangedKeys","validateFields","technicalHandlingNotice","attributes_name","dependencies","contentBlockerId","transform","FormHeadline","children","borderBottom","useLocationQuery","Url","useLocation","search","query","cookieGroup","editLink","addCookieLink","getCookieTypeLocalized","http","abbr","backgroundColor","local","session","flash","indexedDb"],"sourceRoot":""}
public/dist/{440.lite.js → 173.lite.js} RENAMED
@@ -1,2 +1,2 @@
1
- (self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[440],{9239:function(e,t,n){"use strict";var o=n(8711),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return o.isMemo(e)?a:s[e.$$typeof]||i}s[o.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[o.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,v=Object.prototype;e.exports=function e(t,n,o){if("string"!=typeof n){if(v){var i=d(n);i&&i!==v&&e(t,i,o)}var a=c(n);p&&(a=a.concat(p(n)));for(var s=u(t),m=u(n),h=0;h<a.length;++h){var y=a[h];if(!(r[y]||o&&o[y]||m&&m[y]||s&&s[y])){var g=f(n,y);try{l(t,y,g)}catch(e){}}}}return t}},7933:function(e,t,n){"use strict";n.d(t,{Z:function(){return ie}});var o=n(63),i=n(7228),r=n(4115),a=n(7363),s=n.n(a),u=n(2711),l=n(4741),c=n(6762),p=n(3340),f=n(5558),d=n(3841),v=n(5952),m=n(1533),h=n.n(m),y=n(6871),g=n(7384),b=n(8369),C=n(5643),M=n(5905),w=n(505),Z=n(2286),k=n.n(Z);function E(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var T=n(4511),x=n(9064);function P(e){var t=e.prefixCls,n=e.motion,o=e.animation,i=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:i?{motionName:i}:null)}function O(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,i=e.mask,r=e.maskMotion,s=e.maskAnimation,c=e.maskTransitionName;if(!i)return null;var p={};return(r||c||s)&&(p=(0,u.Z)({motionAppear:!0},P({motion:r,prefixCls:t,transitionName:c,animation:s}))),a.createElement(x.Z,(0,l.Z)({},p,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return a.createElement("div",{style:{zIndex:o},className:k()("".concat(t,"-mask"),n)})}))}var D=n(3429),S=n(4001),N=n(3493),R=n(7410);function I(e,t){var n=null,o=null,r=new R.Z((function(e){var r=(0,i.Z)(e,1)[0].target;if(document.documentElement.contains(r)){var a=r.getBoundingClientRect(),s=a.width,u=a.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 A(e){return"function"!=typeof e?null:e()}function K(e){return"object"===(0,D.Z)(e)&&e?e:null}var V=s().forwardRef((function(e,t){var n=e.children,o=e.disabled,r=e.target,a=e.align,u=e.onAlign,l=e.monitorWindowResize,c=e.monitorBufferTime,p=void 0===c?0:c,f=s().useRef({}),d=s().useRef(),v=s().Children.only(n),m=s().useRef({});m.current.disabled=o,m.current.target=r,m.current.onAlign=u;var h=function(e,t){var n=s().useRef(!1),o=s().useRef(null);function i(){window.clearTimeout(o.current)}return[function e(r){if(n.current&&!0!==r)i(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=m.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var i,r=d.current,s=A(n),u=K(n);f.current.element=s,f.current.point=u;var l=document.activeElement;return s&&(0,S.Z)(s)?i=(0,N.E3)(r,s,a):u&&(i=(0,N.zy)(r,u,a)),function(e,t){e!==document.activeElement&&(0,g.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,r),o&&i&&o(r,i),!0}return!1}())return;n.current=!0,i(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,i()}]}(0,p),y=(0,i.Z)(h,2),b=y[0],w=y[1],Z=s().useRef({cancel:function(){}}),k=s().useRef({cancel:function(){}});s().useEffect((function(){var e,t,n=A(r),o=K(r);d.current!==k.current.element&&(k.current.cancel(),k.current.element=d.current,k.current.cancel=I(d.current,b)),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))||(b(),Z.current.element!==n&&(Z.current.cancel(),Z.current.element=n,Z.current.cancel=I(n,b)))})),s().useEffect((function(){o?w():b()}),[o]);var E=s().useRef(null);return s().useEffect((function(){l?E.current||(E.current=(0,M.Z)(window,"resize",b)):E.current&&(E.current.remove(),E.current=null)}),[l]),s().useEffect((function(){return function(){Z.current.cancel(),k.current.cancel(),E.current&&E.current.remove(),w()}}),[]),s().useImperativeHandle(t,(function(){return{forceAlign:function(){return b(!0)}}})),s().isValidElement(v)&&(v=s().cloneElement(v,{ref:(0,C.sQ)(v.ref,d)})),v}));V.displayName="Align";var H=V,L=n(5450),F=n.n(L),j=n(7938),z=["measure","align",null,"motion"],B=a.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,s=e.style,c=e.children,p=e.zIndex,f=e.stretch,d=e.destroyPopupOnHide,v=e.forceRender,m=e.align,h=e.point,g=e.getRootDomNode,b=e.getClassNameFromAlign,C=e.onAlign,M=e.onMouseEnter,w=e.onMouseLeave,Z=e.onMouseDown,E=e.onTouchStart,T=(0,a.useRef)(),O=(0,a.useRef)(),D=(0,a.useState)(),S=(0,i.Z)(D,2),N=S[0],R=S[1],I=function(e){var t=a.useState({width:0,height:0}),n=(0,i.Z)(t,2),o=n[0],r=n[1];return[a.useMemo((function(){var t={};if(e){var n=o.width,i=o.height;-1!==e.indexOf("height")&&i?t.height=i:-1!==e.indexOf("minHeight")&&i&&(t.minHeight=i),-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),A=(0,i.Z)(I,2),K=A[0],V=A[1],L=function(e,t){var n=(0,a.useState)(null),o=(0,i.Z)(n,2),r=o[0],s=o[1],u=(0,a.useRef)(),l=(0,a.useRef)(!1);function c(e){l.current||s(e)}function p(){y.Z.cancel(u.current)}return(0,a.useEffect)((function(){c("measure")}),[e]),(0,a.useEffect)((function(){"measure"===r&&(f&&V(g())),r&&(u.current=(0,y.Z)((0,j.Z)(F().mark((function e(){var t,n;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=z.indexOf(r),(n=z[t+1])&&-1!==t&&c(n);case 3:case"end":return e.stop()}}),e)})))))}),[r]),(0,a.useEffect)((function(){return function(){l.current=!0,p()}}),[]),[r,function(e){p(),u.current=(0,y.Z)((function(){c((function(e){switch(r){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),B=(0,i.Z)(L,2),W=B[0],U=B[1],Y=(0,a.useRef)();function _(){var e;null===(e=T.current)||void 0===e||e.forceAlign()}function X(e,t){if("align"===W){var n=b(t);R(n),N!==n?Promise.resolve().then((function(){_()})):U((function(){var e;null===(e=Y.current)||void 0===e||e.call(Y)})),null==C||C(e,t)}}var G=(0,u.Z)({},P(e));function $(){return new Promise((function(e){Y.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=G[e];G[e]=function(e,n){return U(),null==t?void 0:t(e,n)}})),a.useEffect((function(){G.motionName||"motion"!==W||U()}),[G.motionName,W]),a.useImperativeHandle(t,(function(){return{forceAlign:_,getElement:function(){return O.current}}}));var q=(0,u.Z)((0,u.Z)((0,u.Z)({},K),{},{zIndex:p},s),{},{opacity:"motion"!==W&&"stable"!==W&&n?0:void 0,pointerEvents:"stable"===W?void 0:"none"}),Q=!0;!(null==m?void 0:m.points)||"align"!==W&&"stable"!==W||(Q=!1);var J=c;return a.Children.count(c)>1&&(J=a.createElement("div",{className:"".concat(o,"-content")},c)),a.createElement(x.Z,(0,l.Z)({visible:n,ref:O,leavedClassName:"".concat(o,"-hidden")},G,{onAppearPrepare:$,onEnterPrepare:$,removeOnLeave:d,forceRender:v}),(function(e,t){var n=e.className,i=e.style,s=k()(o,r,N,n);return a.createElement(H,{target:h||g,key:"popup",ref:T,monitorWindowResize:!0,disabled:Q,align:m,onAlign:X},a.createElement("div",{ref:t,className:s,onMouseEnter:M,onMouseLeave:w,onMouseDownCapture:Z,onTouchStartCapture:E,style:(0,u.Z)((0,u.Z)({},i),q)},J))}))}));B.displayName="PopupInner";var W=B,U=a.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,i=e.zIndex,r=e.children,s=e.mobile,c=(s=void 0===s?{}:s).popupClassName,p=s.popupStyle,f=s.popupMotion,d=void 0===f?{}:f,v=s.popupRender,m=a.useRef();a.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return m.current}}}));var h=(0,u.Z)({zIndex:i},p),y=r;return a.Children.count(r)>1&&(y=a.createElement("div",{className:"".concat(n,"-content")},r)),v&&(y=v(y)),a.createElement(x.Z,(0,l.Z)({visible:o,ref:m,removeOnLeave:!0},d),(function(e,t){var o=e.className,i=e.style,r=k()(n,c,o);return a.createElement("div",{ref:t,className:r,style:(0,u.Z)((0,u.Z)({},i),h)},y)}))}));U.displayName="MobilePopupInner";var Y=U,_=a.forwardRef((function(e,t){var n=e.visible,o=e.mobile,s=(0,r.Z)(e,["visible","mobile"]),c=(0,a.useState)(n),p=(0,i.Z)(c,2),f=p[0],d=p[1],v=(0,a.useState)(!1),m=(0,i.Z)(v,2),h=m[0],y=m[1],g=(0,u.Z)((0,u.Z)({},s),{},{visible:f});(0,a.useEffect)((function(){d(n),n&&o&&y((0,T.Z)())}),[n,o]);var b=h?a.createElement(Y,(0,l.Z)({},g,{mobile:o,ref:t})):a.createElement(W,(0,l.Z)({},g,{ref:t}));return a.createElement("div",null,a.createElement(O,g),b)}));_.displayName="Popup";var X=_,G=a.createContext(null);function $(){}var q,Q,J=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],ee=(q=w.Z,Q=function(e){(0,d.Z)(n,e);var t=(0,v.Z)(n);function n(e){var o,i;return(0,c.Z)(this,n),(o=t.call(this,e)).popupRef=a.createRef(),o.triggerRef=a.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,g.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(),i=o.getPopupDomNode();(0,g.Z)(n,t)&&!o.isContextMenuOnly()||(0,g.Z)(i,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,b.Z)(o.triggerRef.current);if(t)return t}catch(e){}return h().findDOMNode((0,f.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,i=n.popupPlacement,r=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return i&&r&&t.push(function(e,t,n,o){for(var i=n.points,r=Object.keys(e),a=0;a<r.length;a+=1){var s=r[a];if(E(e[s].points,i,o))return"".concat(t,"-placement-").concat(s)}return""}(r,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,r=e.onPopupAlign,s=e.popupMotion,u=e.popupAnimation,c=e.popupTransitionName,p=e.popupStyle,f=e.mask,d=e.maskAnimation,v=e.maskTransitionName,m=e.maskMotion,h=e.zIndex,y=e.popup,g=e.stretch,b=e.alignPoint,C=e.mobile,M=e.forceRender,w=o.state,Z=w.popupVisible,k=w.point,E=o.getPopupAlign(),T={};return o.isMouseEnterToShow()&&(T.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(T.onMouseLeave=o.onPopupMouseLeave),T.onMouseDown=o.onPopupMouseDown,T.onTouchStart=o.onPopupMouseDown,a.createElement(X,(0,l.Z)({prefixCls:t,destroyPopupOnHide:n,visible:Z,point:b&&k,className:i,align:E,onAlign:r,animation:u,getClassNameFromAlign:o.getPopupClassNameFromAlign},T,{stretch:g,getRootDomNode:o.getRootDomNode,style:p,mask:f,zIndex:h,transitionName:c,maskAnimation:d,maskTransitionName:v,maskMotion:m,ref:o.popupRef,motion:s,mobile:C,forceRender:M}),"function"==typeof y?y():y)},o.attachParent=function(e){y.Z.cancel(o.attachId);var t,n=o.props,i=n.getPopupContainer,r=n.getDocument,a=o.getRootDomNode();i?(a||0===i.length)&&(t=i(a)):t=r(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,y.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)},i="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:i,popupVisible:i},J.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,M.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,M.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,M.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,M.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),y.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,u.Z)((0,u.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,i=1e3*t;if(this.clearDelayTimer(),i){var r=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,r),o.clearDelayTimer()}),i)}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,i=t.alignPoint,r=t.className,s=t.autoDestroy,l=a.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,i&&(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=k()(l&&l.props&&l.props.className,r);p&&(c.className=p);var f=(0,u.Z)({},c);(0,C.Yr)(l)&&(f.ref=(0,C.sQ)(this.triggerRef,l.ref));var d,v=a.cloneElement(l,f);return(e||this.popupRef.current||o)&&(d=a.createElement(q,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&s&&(d=null),a.createElement(G.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}(a.Component),Q.contextType=G,Q.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:$,afterPopupVisibleChange:$,onPopupAlign:$,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},Q),te={adjustX:1,adjustY:1},ne=[0,0],oe={topLeft:{points:["bl","tl"],overflow:te,offset:[0,-4],targetOffset:ne},topCenter:{points:["bc","tc"],overflow:te,offset:[0,-4],targetOffset:ne},topRight:{points:["br","tr"],overflow:te,offset:[0,-4],targetOffset:ne},bottomLeft:{points:["tl","bl"],overflow:te,offset:[0,4],targetOffset:ne},bottomCenter:{points:["tc","bc"],overflow:te,offset:[0,4],targetOffset:ne},bottomRight:{points:["tr","br"],overflow:te,offset:[0,4],targetOffset:ne}},ie=a.forwardRef((function(e,t){var n=e.arrow,s=void 0!==n&&n,u=e.prefixCls,l=void 0===u?"rc-dropdown":u,c=e.transitionName,p=e.animation,f=e.align,d=e.placement,v=void 0===d?"bottomLeft":d,m=e.placements,h=void 0===m?oe:m,y=e.getPopupContainer,g=e.showAction,b=e.hideAction,C=e.overlayClassName,M=e.overlayStyle,w=e.visible,Z=e.trigger,E=void 0===Z?["hover"]:Z,T=(0,r.Z)(e,["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),x=a.useState(),P=(0,i.Z)(x,2),O=P[0],D=P[1],S="visible"in e?w:O,N=a.useRef(null);a.useImperativeHandle(t,(function(){return N.current}));var R,I,A,K,V,H,L=function(){var t=e.overlay;return"function"==typeof t?t():t},F=function(t){var n=e.onOverlayClick,o=L().props;D(!1),n&&n(t),o.onClick&&o.onClick(t)},j=function(){var e=L(),t={prefixCls:"".concat(l,"-menu"),onClick:F};return"string"==typeof e.type&&delete t.prefixCls,a.createElement(a.Fragment,null,s&&a.createElement("div",{className:"".concat(l,"-arrow")}),a.cloneElement(e,t))},z=b;return z||-1===E.indexOf("contextMenu")||(z=["click"]),a.createElement(ee,Object.assign({},T,{prefixCls:l,ref:N,popupClassName:k()(C,(0,o.Z)({},"".concat(l,"-show-arrow"),s)),popupStyle:M,builtinPlacements:h,action:E,showAction:g,hideAction:z||[],popupPlacement:v,popupAlign:f,popupTransitionName:c,popupAnimation:p,popupVisible:S,stretch:(V=e.minOverlayWidthMatchTrigger,H=e.alignPoint,("minOverlayWidthMatchTrigger"in e?V:!H)?"minWidth":""),popup:"function"==typeof e.overlay?j:j(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;D(t),"function"==typeof n&&n(t)},getPopupContainer:y}),(A=(I=e.children).props?I.props:{},K=k()(A.className,void 0!==(R=e.openClassName)?R:"".concat(l,"-open")),O&&I?a.cloneElement(I,{className:K}):I))}))},1987:function(e,t,n){"use strict";n.d(t,{iz:function(){return yt},ck:function(){return dt},BW:function(){return mt},sN:function(){return dt},Wd:function(){return Qe},ZP:function(){return gt}});var o,i=n(2711),r=n(6762),a=n(3340),s=n(5558),u=n(3841),l=n(5952),c=n(7363),p=n.n(c),f=(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},o(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=c.createContext(null),v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.render=function(){return c.createElement(d.Provider,{value:this.props.store},this.props.children)},t}(c.Component),m=n(5724),h=n.n(m),y=n(9239),g=n.n(y),b=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),C=function(){return C=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},C.apply(this,arguments)},M=function(){return{}};function w(e,t){void 0===t&&(t={});var n=!!e,o=e||M;return function(i){var r=function(t){function r(e,n){var i=t.call(this,e,n)||this;return i.unsubscribe=null,i.handleChange=function(){if(i.unsubscribe){var e=o(i.store.getState(),i.props);i.setState({subscribed:e})}},i.store=i.context,i.state={subscribed:o(i.store.getState(),e),store:i.store,props:e},i}return b(r,t),r.getDerivedStateFromProps=function(t,n){return e&&2===e.length&&t!==n.props?{subscribed:o(n.store.getState(),t),props:t}:{props:t}},r.prototype.componentDidMount=function(){this.trySubscribe()},r.prototype.componentWillUnmount=function(){this.tryUnsubscribe()},r.prototype.shouldComponentUpdate=function(e,t){return!h()(this.props,e)||!h()(this.state.subscribed,t.subscribed)},r.prototype.trySubscribe=function(){n&&(this.unsubscribe=this.store.subscribe(this.handleChange),this.handleChange())},r.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},r.prototype.render=function(){var e=C(C(C({},this.props),this.state.subscribed),{store:this.store});return c.createElement(i,C({},e,{ref:this.props.miniStoreForwardedRef}))},r.displayName="Connect("+function(e){return e.displayName||e.name||"Component"}(i)+")",r.contextType=d,r}(c.Component);if(t.forwardRef){var a=c.forwardRef((function(e,t){return c.createElement(r,C({},e,{miniStoreForwardedRef:t}))}));return g()(a,i)}return g()(r,i)}}var Z=function(){return Z=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Z.apply(this,arguments)},k=n(2465),E=n(4741),T=n(63),x=n(5065);function P(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t<e.length;t++)e[t]&&e[t].apply&&e[t].apply(this,arguments)}}var O=n(4237),D=n(2286),S=n.n(D),N=n(3429),R=n(7228),I=/iPhone/i,A=/iPod/i,K=/iPad/i,V=/\bAndroid(?:.+)Mobile\b/i,H=/Android/i,L=/\bAndroid(?:.+)SD4930UR\b/i,F=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,j=/Windows Phone/i,z=/\bWindows(?:.+)ARM\b/i,B=/BlackBerry/i,W=/BB10/i,U=/Opera Mini/i,Y=/\b(CriOS|Chrome)(?:.+)Mobile/i,_=/Mobile(?:.+)Firefox\b/i;function X(e,t){return e.test(t)}function G(e){var t=e||("undefined"!=typeof navigator?navigator.userAgent:""),n=t.split("[FBAN");if(void 0!==n[1]){var o=n;t=(0,R.Z)(o,1)[0]}if(void 0!==(n=t.split("Twitter"))[1]){var i=n;t=(0,R.Z)(i,1)[0]}var r={apple:{phone:X(I,t)&&!X(j,t),ipod:X(A,t),tablet:!X(I,t)&&X(K,t)&&!X(j,t),device:(X(I,t)||X(A,t)||X(K,t))&&!X(j,t)},amazon:{phone:X(L,t),tablet:!X(L,t)&&X(F,t),device:X(L,t)||X(F,t)},android:{phone:!X(j,t)&&X(L,t)||!X(j,t)&&X(V,t),tablet:!X(j,t)&&!X(L,t)&&!X(V,t)&&(X(F,t)||X(H,t)),device:!X(j,t)&&(X(L,t)||X(F,t)||X(V,t)||X(H,t))||X(/\bokhttp\b/i,t)},windows:{phone:X(j,t),tablet:X(z,t),device:X(j,t)||X(z,t)},other:{blackberry:X(B,t),blackberry10:X(W,t),opera:X(U,t),firefox:X(_,t),chrome:X(Y,t),device:X(B,t)||X(W,t)||X(U,t)||X(_,t)||X(Y,t)},any:null,phone:null,tablet:null};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r}var $=(0,i.Z)((0,i.Z)({},G()),{},{isMobile:G});function q(){}function Q(e,t,n){var o=t||"";return e.key||"".concat(o,"item_").concat(n)}function J(e){return"".concat(e,"-menu-")}function ee(e,t){var n=-1;c.Children.forEach(e,(function(e){n+=1,e&&e.type&&e.type.isMenuItemGroup?c.Children.forEach(e.props.children,(function(e){t(e,n+=1)})):t(e,n)}))}function te(e,t,n){e&&!n.find&&c.Children.forEach(e,(function(e){if(e){var o=e.type;if(!o||!(o.isSubMenu||o.isMenuItem||o.isMenuItemGroup))return;-1!==t.indexOf(e.key)?n.find=!0:e.props.children&&te(e.props.children,t,n)}}))}var ne=["defaultSelectedKeys","selectedKeys","defaultOpenKeys","openKeys","mode","getPopupContainer","onSelect","onDeselect","onDestroy","openTransitionName","openAnimation","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","triggerSubMenuAction","level","selectable","multiple","onOpenChange","visible","focusable","defaultActiveFirst","prefixCls","inlineIndent","parentMenu","title","rootPrefixCls","eventKey","active","onItemHover","onTitleMouseEnter","onTitleMouseLeave","onTitleClick","popupAlign","popupOffset","isOpen","renderMenuItem","manualRef","subMenuKey","disabled","index","isSelected","store","activeKey","builtinPlacements","overflowedIndicator","motion","attribute","value","popupClassName","inlineCollapsed","menu","theme","itemIcon","expandIcon"],oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e&&"function"==typeof e.getBoundingClientRect&&e.getBoundingClientRect().width;if(n){if(t){var o=getComputedStyle(e),i=o.marginLeft,r=o.marginRight;n+=+i.replace("px","")+ +r.replace("px","")}n=+n.toFixed(6)}return n||0},ie=function(e,t,n){e&&"object"===(0,N.Z)(e.style)&&(e.style[t]=n)},re=n(7870),ae=n(4115),se=n(1533),ue=n.n(se),le=n(7410),ce=n(6871),pe=n(7384),fe=n(8369),de=n(5643),ve=n(5905),me=n(505);function he(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var ye=n(4511),ge=n(9064);function be(e){var t=e.prefixCls,n=e.motion,o=e.animation,i=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:i?{motionName:i}:null)}function Ce(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,r=e.mask,a=e.maskMotion,s=e.maskAnimation,u=e.maskTransitionName;if(!r)return null;var l={};return(a||u||s)&&(l=(0,i.Z)({motionAppear:!0},be({motion:a,prefixCls:t,transitionName:u,animation:s}))),c.createElement(ge.Z,(0,E.Z)({},l,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return c.createElement("div",{style:{zIndex:o},className:S()("".concat(t,"-mask"),n)})}))}var Me=n(4001),we=n(3493);function Ze(e,t){var n=null,o=null,i=new le.Z((function(e){var i=(0,R.Z)(e,1)[0].target;if(document.documentElement.contains(i)){var r=i.getBoundingClientRect(),a=r.width,s=r.height,u=Math.floor(a),l=Math.floor(s);n===u&&o===l||Promise.resolve().then((function(){t({width:u,height:l})})),n=u,o=l}}));return e&&i.observe(e),function(){i.disconnect()}}function ke(e){return"function"!=typeof e?null:e()}function Ee(e){return"object"===(0,N.Z)(e)&&e?e:null}var Te=p().forwardRef((function(e,t){var n=e.children,o=e.disabled,i=e.target,r=e.align,a=e.onAlign,s=e.monitorWindowResize,u=e.monitorBufferTime,l=void 0===u?0:u,c=p().useRef({}),f=p().useRef(),d=p().Children.only(n),v=p().useRef({});v.current.disabled=o,v.current.target=i,v.current.onAlign=a;var m=function(e,t){var n=p().useRef(!1),o=p().useRef(null);function i(){window.clearTimeout(o.current)}return[function e(a){if(n.current&&!0!==a)i(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=v.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var i,a=f.current,s=ke(n),u=Ee(n);c.current.element=s,c.current.point=u;var l=document.activeElement;return s&&(0,Me.Z)(s)?i=(0,we.E3)(a,s,r):u&&(i=(0,we.zy)(a,u,r)),function(e,t){e!==document.activeElement&&(0,pe.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,a),o&&i&&o(a,i),!0}return!1}())return;n.current=!0,i(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,i()}]}(0,l),h=(0,R.Z)(m,2),y=h[0],g=h[1],b=p().useRef({cancel:function(){}}),C=p().useRef({cancel:function(){}});p().useEffect((function(){var e,t,n=ke(i),o=Ee(i);f.current!==C.current.element&&(C.current.cancel(),C.current.element=f.current,C.current.cancel=Ze(f.current,y)),c.current.element===n&&((e=c.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(),b.current.element!==n&&(b.current.cancel(),b.current.element=n,b.current.cancel=Ze(n,y)))})),p().useEffect((function(){o?g():y()}),[o]);var M=p().useRef(null);return p().useEffect((function(){s?M.current||(M.current=(0,ve.Z)(window,"resize",y)):M.current&&(M.current.remove(),M.current=null)}),[s]),p().useEffect((function(){return function(){b.current.cancel(),C.current.cancel(),M.current&&M.current.remove(),g()}}),[]),p().useImperativeHandle(t,(function(){return{forceAlign:function(){return y(!0)}}})),p().isValidElement(d)&&(d=p().cloneElement(d,{ref:(0,de.sQ)(d.ref,f)})),d}));Te.displayName="Align";var xe=Te,Pe=n(5450),Oe=n.n(Pe),De=n(7938),Se=["measure","align",null,"motion"],Ne=c.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,a=e.style,s=e.children,u=e.zIndex,l=e.stretch,p=e.destroyPopupOnHide,f=e.forceRender,d=e.align,v=e.point,m=e.getRootDomNode,h=e.getClassNameFromAlign,y=e.onAlign,g=e.onMouseEnter,b=e.onMouseLeave,C=e.onMouseDown,M=e.onTouchStart,w=(0,c.useRef)(),Z=(0,c.useRef)(),k=(0,c.useState)(),T=(0,R.Z)(k,2),x=T[0],P=T[1],O=function(e){var t=c.useState({width:0,height:0}),n=(0,R.Z)(t,2),o=n[0],i=n[1];return[c.useMemo((function(){var t={};if(e){var n=o.width,i=o.height;-1!==e.indexOf("height")&&i?t.height=i:-1!==e.indexOf("minHeight")&&i&&(t.minHeight=i),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,o]),function(e){i({width:e.offsetWidth,height:e.offsetHeight})}]}(l),D=(0,R.Z)(O,2),N=D[0],I=D[1],A=function(e,t){var n=(0,c.useState)(null),o=(0,R.Z)(n,2),i=o[0],r=o[1],a=(0,c.useRef)(),s=(0,c.useRef)(!1);function u(e){s.current||r(e)}function p(){ce.Z.cancel(a.current)}return(0,c.useEffect)((function(){u("measure")}),[e]),(0,c.useEffect)((function(){"measure"===i&&(l&&I(m())),i&&(a.current=(0,ce.Z)((0,De.Z)(Oe().mark((function e(){var t,n;return Oe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=Se.indexOf(i),(n=Se[t+1])&&-1!==t&&u(n);case 3:case"end":return e.stop()}}),e)})))))}),[i]),(0,c.useEffect)((function(){return function(){s.current=!0,p()}}),[]),[i,function(e){p(),a.current=(0,ce.Z)((function(){u((function(e){switch(i){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),K=(0,R.Z)(A,2),V=K[0],H=K[1],L=(0,c.useRef)();function F(){var e;null===(e=w.current)||void 0===e||e.forceAlign()}function j(e,t){if("align"===V){var n=h(t);P(n),x!==n?Promise.resolve().then((function(){F()})):H((function(){var e;null===(e=L.current)||void 0===e||e.call(L)})),null==y||y(e,t)}}var z=(0,i.Z)({},be(e));function B(){return new Promise((function(e){L.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=z[e];z[e]=function(e,n){return H(),null==t?void 0:t(e,n)}})),c.useEffect((function(){z.motionName||"motion"!==V||H()}),[z.motionName,V]),c.useImperativeHandle(t,(function(){return{forceAlign:F,getElement:function(){return Z.current}}}));var W=(0,i.Z)((0,i.Z)((0,i.Z)({},N),{},{zIndex:u},a),{},{opacity:"motion"!==V&&"stable"!==V&&n?0:void 0,pointerEvents:"stable"===V?void 0:"none"}),U=!0;!(null==d?void 0:d.points)||"align"!==V&&"stable"!==V||(U=!1);var Y=s;return c.Children.count(s)>1&&(Y=c.createElement("div",{className:"".concat(o,"-content")},s)),c.createElement(ge.Z,(0,E.Z)({visible:n,ref:Z,leavedClassName:"".concat(o,"-hidden")},z,{onAppearPrepare:B,onEnterPrepare:B,removeOnLeave:p,forceRender:f}),(function(e,t){var n=e.className,a=e.style,s=S()(o,r,x,n);return c.createElement(xe,{target:v||m,key:"popup",ref:w,monitorWindowResize:!0,disabled:U,align:d,onAlign:j},c.createElement("div",{ref:t,className:s,onMouseEnter:g,onMouseLeave:b,onMouseDownCapture:C,onTouchStartCapture:M,style:(0,i.Z)((0,i.Z)({},a),W)},Y))}))}));Ne.displayName="PopupInner";var Re=Ne,Ie=c.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,r=e.zIndex,a=e.children,s=e.mobile,u=(s=void 0===s?{}:s).popupClassName,l=s.popupStyle,p=s.popupMotion,f=void 0===p?{}:p,d=s.popupRender,v=c.useRef();c.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return v.current}}}));var m=(0,i.Z)({zIndex:r},l),h=a;return c.Children.count(a)>1&&(h=c.createElement("div",{className:"".concat(n,"-content")},a)),d&&(h=d(h)),c.createElement(ge.Z,(0,E.Z)({visible:o,ref:v,removeOnLeave:!0},f),(function(e,t){var o=e.className,r=e.style,a=S()(n,u,o);return c.createElement("div",{ref:t,className:a,style:(0,i.Z)((0,i.Z)({},r),m)},h)}))}));Ie.displayName="MobilePopupInner";var Ae=Ie,Ke=c.forwardRef((function(e,t){var n=e.visible,o=e.mobile,r=(0,ae.Z)(e,["visible","mobile"]),a=(0,c.useState)(n),s=(0,R.Z)(a,2),u=s[0],l=s[1],p=(0,c.useState)(!1),f=(0,R.Z)(p,2),d=f[0],v=f[1],m=(0,i.Z)((0,i.Z)({},r),{},{visible:u});(0,c.useEffect)((function(){l(n),n&&o&&v((0,ye.Z)())}),[n,o]);var h=d?c.createElement(Ae,(0,E.Z)({},m,{mobile:o,ref:t})):c.createElement(Re,(0,E.Z)({},m,{ref:t}));return c.createElement("div",null,c.createElement(Ce,m),h)}));Ke.displayName="Popup";var Ve=Ke,He=c.createContext(null);function Le(){}var Fe,je,ze=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],Be=(Fe=me.Z,je=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o,i;return(0,r.Z)(this,n),(o=t.call(this,e)).popupRef=c.createRef(),o.triggerRef=c.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,pe.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(),i=o.getPopupDomNode();(0,pe.Z)(n,t)&&!o.isContextMenuOnly()||(0,pe.Z)(i,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,fe.Z)(o.triggerRef.current);if(t)return t}catch(e){}return ue().findDOMNode((0,s.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,i=n.popupPlacement,r=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return i&&r&&t.push(function(e,t,n,o){for(var i=n.points,r=Object.keys(e),a=0;a<r.length;a+=1){var s=r[a];if(he(e[s].points,i,o))return"".concat(t,"-placement-").concat(s)}return""}(r,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,r=e.onPopupAlign,a=e.popupMotion,s=e.popupAnimation,u=e.popupTransitionName,l=e.popupStyle,p=e.mask,f=e.maskAnimation,d=e.maskTransitionName,v=e.maskMotion,m=e.zIndex,h=e.popup,y=e.stretch,g=e.alignPoint,b=e.mobile,C=e.forceRender,M=o.state,w=M.popupVisible,Z=M.point,k=o.getPopupAlign(),T={};return o.isMouseEnterToShow()&&(T.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(T.onMouseLeave=o.onPopupMouseLeave),T.onMouseDown=o.onPopupMouseDown,T.onTouchStart=o.onPopupMouseDown,c.createElement(Ve,(0,E.Z)({prefixCls:t,destroyPopupOnHide:n,visible:w,point:g&&Z,className:i,align:k,onAlign:r,animation:s,getClassNameFromAlign:o.getPopupClassNameFromAlign},T,{stretch:y,getRootDomNode:o.getRootDomNode,style:l,mask:p,zIndex:m,transitionName:u,maskAnimation:f,maskTransitionName:d,maskMotion:v,ref:o.popupRef,motion:a,mobile:b,forceRender:C}),"function"==typeof h?h():h)},o.attachParent=function(e){ce.Z.cancel(o.attachId);var t,n=o.props,i=n.getPopupContainer,r=n.getDocument,a=o.getRootDomNode();i?(a||0===i.length)&&(t=i(a)):t=r(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,ce.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)},i="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:i,popupVisible:i},ze.forEach((function(e){o["fire".concat(e)]=function(t){o.fireEvents(e,t)}})),o}return(0,a.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,ve.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,ve.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,ve.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,ve.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),ce.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,i.Z)((0,i.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,i=1e3*t;if(this.clearDelayTimer(),i){var r=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,r),o.clearDelayTimer()}),i)}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,a=t.className,s=t.autoDestroy,u=c.Children.only(n),l={key:"trigger"};this.isContextMenuToShow()?l.onContextMenu=this.onContextMenu:l.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMouseDown=this.onMouseDown,l.onTouchStart=this.onTouchStart):(l.onClick=this.createTwoChains("onClick"),l.onMouseDown=this.createTwoChains("onMouseDown"),l.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(l.onMouseEnter=this.onMouseEnter,r&&(l.onMouseMove=this.onMouseMove)):l.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?l.onMouseLeave=this.onMouseLeave:l.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=this.createTwoChains("onBlur"));var p=S()(u&&u.props&&u.props.className,a);p&&(l.className=p);var f=(0,i.Z)({},l);(0,de.Yr)(u)&&(f.ref=(0,de.sQ)(this.triggerRef,u.ref));var d,v=c.cloneElement(u,f);return(e||this.popupRef.current||o)&&(d=c.createElement(Fe,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&s&&(d=null),c.createElement(He.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}(c.Component),je.contextType=He,je.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:Le,afterPopupVisibleChange:Le,onPopupAlign:Le,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},je),We={adjustX:1,adjustY:1},Ue={topLeft:{points:["bl","tl"],overflow:We,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:We,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:We,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:We,offset:[4,0]}},Ye={topLeft:{points:["bl","tl"],overflow:We,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:We,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:We,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:We,offset:[4,0]}},_e=0,Xe={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},Ge=function(e,t,n){var o=J(t),r=e.getState();e.setState({defaultActiveFirst:(0,i.Z)((0,i.Z)({},r.defaultActiveFirst),{},(0,T.Z)({},o,n))})},$e=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;(0,r.Z)(this,n),(o=t.call(this,e)).onDestroy=function(e){o.props.onDestroy(e)},o.onKeyDown=function(e){var t=e.keyCode,n=o.menuInstance,i=o.props.store,r=o.getVisible();if(t===x.Z.ENTER)return o.onTitleClick(e),Ge(i,o.props.eventKey,!0),!0;if(t===x.Z.RIGHT)return r?n.onKeyDown(e):(o.triggerOpenChange(!0),Ge(i,o.props.eventKey,!0)),!0;if(t===x.Z.LEFT){var a;if(!r)return;return(a=n.onKeyDown(e))||(o.triggerOpenChange(!1),a=!0),a}return!r||t!==x.Z.UP&&t!==x.Z.DOWN?void 0:n.onKeyDown(e)},o.onOpenChange=function(e){o.props.onOpenChange(e)},o.onPopupVisibleChange=function(e){o.triggerOpenChange(e,e?"mouseenter":"mouseleave")},o.onMouseEnter=function(e){var t=o.props,n=t.eventKey,i=t.onMouseEnter,r=t.store;Ge(r,o.props.eventKey,!1),i({key:n,domEvent:e})},o.onMouseLeave=function(e){var t=o.props,n=t.parentMenu,i=t.eventKey,r=t.onMouseLeave;n.subMenuInstance=(0,s.Z)(o),r({key:i,domEvent:e})},o.onTitleMouseEnter=function(e){var t=o.props,n=t.eventKey,i=t.onItemHover,r=t.onTitleMouseEnter;i({key:n,hover:!0}),r({key:n,domEvent:e})},o.onTitleMouseLeave=function(e){var t=o.props,n=t.parentMenu,i=t.eventKey,r=t.onItemHover,a=t.onTitleMouseLeave;n.subMenuInstance=(0,s.Z)(o),r({key:i,hover:!1}),a({key:i,domEvent:e})},o.onTitleClick=function(e){var t=(0,s.Z)(o).props;t.onTitleClick({key:t.eventKey,domEvent:e}),"hover"!==t.triggerSubMenuAction&&(o.triggerOpenChange(!o.getVisible(),"click"),Ge(t.store,o.props.eventKey,!1))},o.onSubMenuClick=function(e){"function"==typeof o.props.onClick&&o.props.onClick(o.addKeyPath(e))},o.onSelect=function(e){o.props.onSelect(e)},o.onDeselect=function(e){o.props.onDeselect(e)},o.getPrefixCls=function(){return"".concat(o.props.rootPrefixCls,"-submenu")},o.getActiveClassName=function(){return"".concat(o.getPrefixCls(),"-active")},o.getDisabledClassName=function(){return"".concat(o.getPrefixCls(),"-disabled")},o.getSelectedClassName=function(){return"".concat(o.getPrefixCls(),"-selected")},o.getOpenClassName=function(){return"".concat(o.props.rootPrefixCls,"-submenu-open")},o.getVisible=function(){return o.state.isOpen},o.getMode=function(){return o.state.mode},o.saveMenuInstance=function(e){o.menuInstance=e},o.addKeyPath=function(e){return(0,i.Z)((0,i.Z)({},e),{},{keyPath:(e.keyPath||[]).concat(o.props.eventKey)})},o.triggerOpenChange=function(e,t){var n=o.props.eventKey,i=function(){o.onOpenChange({key:n,item:(0,s.Z)(o),trigger:t,open:e})};"mouseenter"===t?o.mouseenterTimeout=setTimeout((function(){i()}),0):i()},o.isChildrenSelected=function(){var e={find:!1};return te(o.props.children,o.props.selectedKeys,e),e.find},o.isInlineMode=function(){return"inline"===o.getMode()},o.adjustWidth=function(){if(o.subMenuTitle&&o.menuInstance){var e=se.findDOMNode(o.menuInstance);e.offsetWidth>=o.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(o.subMenuTitle.offsetWidth,"px"))}},o.saveSubMenuTitle=function(e){o.subMenuTitle=e},o.getBaseProps=function(){var e=(0,s.Z)(o).props,t=o.getMode();return{mode:"horizontal"===t?"vertical":t,visible:o.getVisible(),level:e.level+1,inlineIndent:e.inlineIndent,focusable:!1,onClick:o.onSubMenuClick,onSelect:o.onSelect,onDeselect:o.onDeselect,onDestroy:o.onDestroy,selectedKeys:e.selectedKeys,eventKey:"".concat(e.eventKey,"-menu-"),openKeys:e.openKeys,motion:e.motion,onOpenChange:o.onOpenChange,subMenuOpenDelay:e.subMenuOpenDelay,parentMenu:(0,s.Z)(o),subMenuCloseDelay:e.subMenuCloseDelay,forceSubMenuRender:e.forceSubMenuRender,triggerSubMenuAction:e.triggerSubMenuAction,builtinPlacements:e.builtinPlacements,defaultActiveFirst:e.store.getState().defaultActiveFirst[J(e.eventKey)],multiple:e.multiple,prefixCls:e.rootPrefixCls,id:o.internalMenuId,manualRef:o.saveMenuInstance,itemIcon:e.itemIcon,expandIcon:e.expandIcon,direction:e.direction}},o.getMotion=function(e,t){var n=(0,s.Z)(o).haveRendered,r=o.props,a=r.motion,u=r.rootPrefixCls;return(0,i.Z)((0,i.Z)({},a),{},{leavedClassName:"".concat(u,"-hidden"),removeOnLeave:!1,motionAppear:n||!t||"inline"!==e})};var a=e.store,u=e.eventKey,l=a.getState().defaultActiveFirst;o.isRootMenu=!1;var c=!1;return l&&(c=l[u]),Ge(a,u,c),o.state={mode:e.mode,isOpen:e.isOpen},o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,o=t.parentMenu,i=t.manualRef,r=t.isOpen,a=function(){e.setState({mode:n,isOpen:r})},s=r!==this.state.isOpen,u=n!==this.state.mode;(u||s)&&(ce.Z.cancel(this.updateStateRaf),u?this.updateStateRaf=(0,ce.Z)(a):a()),i&&i(this),"horizontal"===n&&(null==o?void 0:o.isRootMenu)&&r&&(this.minWidthTimeout=setTimeout((function(){return e.adjustWidth()}),0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout),ce.Z.cancel(this.updateStateRaf)}},{key:"renderPopupMenu",value:function(e,t){var n=this.getBaseProps();return c.createElement(st,Object.assign({},n,{id:this.internalMenuId,className:e,style:t}),this.props.children)}},{key:"renderChildren",value:function(){var e=this,t=this.getBaseProps(),n=t.mode,o=t.visible,i=t.forceSubMenuRender,r=t.direction,a=this.getMotion(n,o);if(this.haveRendered=!0,this.haveOpened=this.haveOpened||o||i,!this.haveOpened)return c.createElement("div",null);var s=S()("".concat(t.prefixCls,"-sub"),(0,T.Z)({},"".concat(t.prefixCls,"-rtl"),"rtl"===r));return this.isInlineMode()?c.createElement(ge.Z,Object.assign({visible:t.visible},a),(function(t){var n=t.className,o=t.style,i=S()(s,n);return e.renderPopupMenu(i,o)})):this.renderPopupMenu(s)}},{key:"render",value:function(){var e,t,n,o=(0,i.Z)({},this.props),r=this.getVisible(),a=this.getPrefixCls(),s=this.isInlineMode(),u=this.getMode(),l=S()(a,"".concat(a,"-").concat(u),(e={},(0,T.Z)(e,o.className,!!o.className),(0,T.Z)(e,this.getOpenClassName(),r),(0,T.Z)(e,this.getActiveClassName(),o.active||r&&!s),(0,T.Z)(e,this.getDisabledClassName(),o.disabled),(0,T.Z)(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(o.eventKey?this.internalMenuId="".concat(o.eventKey,"$Menu"):(_e+=1,this.internalMenuId="$__$".concat(_e,"$Menu")));var p={},f={},d={};o.disabled||(p={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},f={onClick:this.onTitleClick},d={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var v={},m="rtl"===o.direction;s&&(m?v.paddingRight=o.inlineIndent*o.level:v.paddingLeft=o.inlineIndent*o.level);var h={};this.getVisible()&&(h={"aria-owns":this.internalMenuId});var y=null;"horizontal"!==u&&(y=this.props.expandIcon,"function"==typeof this.props.expandIcon&&(y=c.createElement(this.props.expandIcon,(0,i.Z)({},this.props))));var g=c.createElement("div",Object.assign({ref:this.saveSubMenuTitle,style:v,className:"".concat(a,"-title"),role:"button"},d,f,{"aria-expanded":r},h,{"aria-haspopup":"true",title:"string"==typeof o.title?o.title:void 0}),o.title,y||c.createElement("i",{className:"".concat(a,"-arrow")})),b=this.renderChildren(),C=(null===(t=o.parentMenu)||void 0===t?void 0:t.isRootMenu)?o.parentMenu.props.getPopupContainer:function(e){return e.parentNode},M=Xe[u],w=o.popupOffset?{offset:o.popupOffset}:{},Z=S()((n={},(0,T.Z)(n,o.popupClassName,o.popupClassName&&!s),(0,T.Z)(n,"".concat(a,"-rtl"),m),n)),k=o.disabled,E=o.triggerSubMenuAction,x=o.subMenuOpenDelay,P=o.forceSubMenuRender,O=o.subMenuCloseDelay,D=o.builtinPlacements;ne.forEach((function(e){return delete o[e]})),delete o.onClick;var N=m?Object.assign({},Ye,D):Object.assign({},Ue,D);delete o.direction;var R=this.getBaseProps(),I=s?null:this.getMotion(R.mode,R.visible);return c.createElement("li",Object.assign({},o,p,{className:l,role:"menuitem"}),c.createElement(Be,{prefixCls:a,popupClassName:S()("".concat(a,"-popup"),Z),getPopupContainer:C,builtinPlacements:N,popupPlacement:M,popupVisible:!s&&r,popupAlign:w,popup:s?null:b,action:k||s?[]:[E],mouseEnterDelay:x,mouseLeaveDelay:O,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:P,popupMotion:I},g),s?b:null)}}]),n}(c.Component);$e.defaultProps={onMouseEnter:q,onMouseLeave:q,onTitleMouseEnter:q,onTitleMouseLeave:q,onTitleClick:q,manualRef:q,mode:"vertical",title:""};var qe=w((function(e,t){var n=e.openKeys,o=e.activeKey,i=e.selectedKeys,r=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(r)>-1,active:o[a]===r,selectedKeys:i}}))($e);qe.isSubMenu=!0;var Qe=qe,Je="menuitem-overflowed",et=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).resizeObserver=null,e.mutationObserver=null,e.originalTotalWidth=0,e.overflowedItems=[],e.menuItemSizes=[],e.cancelFrameId=null,e.state={lastVisibleIndex:void 0},e.getMenuItemNodes=function(){var t=e.props.prefixCls,n=se.findDOMNode((0,s.Z)(e));return n?[].slice.call(n.children).filter((function(e){return e.className.split(" ").indexOf("".concat(t,"-overflowed-submenu"))<0})):[]},e.getOverflowedSubMenuItem=function(t,n,o){var r=e.props,a=r.overflowedIndicator,s=r.level,u=r.mode,l=r.prefixCls,p=r.theme;if(1!==s||"horizontal"!==u)return null;var f=e.props.children[0].props,d=(f.children,f.title,f.style),v=(0,ae.Z)(f,["children","title","style"]),m=(0,i.Z)({},d),h="".concat(t,"-overflowed-indicator"),y="".concat(t,"-overflowed-indicator");0===n.length&&!0!==o?m=(0,i.Z)((0,i.Z)({},m),{},{display:"none"}):o&&(m=(0,i.Z)((0,i.Z)({},m),{},{visibility:"hidden",position:"absolute"}),h="".concat(h,"-placeholder"),y="".concat(y,"-placeholder"));var g=p?"".concat(l,"-").concat(p):"",b={};return ne.forEach((function(e){void 0!==v[e]&&(b[e]=v[e])})),c.createElement(Qe,Object.assign({title:a,className:"".concat(l,"-overflowed-submenu"),popupClassName:g},b,{key:h,eventKey:y,disabled:!1,style:m}),n)},e.setChildrenWidthAndResize=function(){if("horizontal"===e.props.mode){var t=se.findDOMNode((0,s.Z)(e));if(t){var n=t.children;if(n&&0!==n.length){var o=t.children[n.length-1];ie(o,"display","inline-block");var i=e.getMenuItemNodes(),r=i.filter((function(e){return e.className.split(" ").indexOf(Je)>=0}));r.forEach((function(e){ie(e,"display","inline-block")})),e.menuItemSizes=i.map((function(e){return oe(e,!0)})),r.forEach((function(e){ie(e,"display","none")})),e.overflowedIndicatorWidth=oe(t.children[t.children.length-1],!0),e.originalTotalWidth=e.menuItemSizes.reduce((function(e,t){return e+t}),0),e.handleResize(),ie(o,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=se.findDOMNode((0,s.Z)(e));if(t){var n=oe(t);e.overflowedItems=[];var o,i=0;e.originalTotalWidth>n+.5&&(o=-1,e.menuItemSizes.forEach((function(t){(i+=t)+e.overflowedIndicatorWidth<=n&&(o+=1)}))),e.setState({lastVisibleIndex:o})}}},e}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=se.findDOMNode(this);if(!t)return;this.resizeObserver=new le.Z((function(t){t.forEach((function(){var t=e.cancelFrameId;cancelAnimationFrame(t),e.cancelFrameId=requestAnimationFrame(e.setChildrenWidthAndResize)}))})),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver((function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),e.setChildrenWidthAndResize()})),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect(),cancelAnimationFrame(this.cancelFrameId)}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce((function(o,i,r){var a=i;if("horizontal"===t.props.mode){var s=t.getOverflowedSubMenuItem(i.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(r>n&&(a=c.cloneElement(i,{style:{display:"none"},eventKey:"".concat(i.props.eventKey,"-hidden"),className:"".concat(Je)})),r===n+1&&(t.overflowedItems=e.slice(n+1).map((function(e){return c.cloneElement(e,{key:e.props.eventKey,mode:"vertical-left"})})),s=t.getOverflowedSubMenuItem(i.props.eventKey,t.overflowedItems)));var u=[].concat((0,re.Z)(o),[s,a]);return r===e.length-1&&u.push(t.getOverflowedSubMenuItem(i.props.eventKey,[],!0)),u}return[].concat((0,re.Z)(o),[a])}),[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,o=(e.theme,(0,ae.Z)(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),i=t;return c.createElement(i,Object.assign({},o),this.renderChildren(n))}}]),n}(c.Component);et.defaultProps={tag:"div",className:""};var tt=et;function nt(e,t,n){var o=e.getState();e.setState({activeKey:(0,i.Z)((0,i.Z)({},o.activeKey),{},(0,T.Z)({},t,n))})}function ot(e){return e.eventKey||"0-menu-"}function it(e,t){var n,o=t,i=e.children,r=e.eventKey;return o&&(ee(i,(function(e,t){e&&e.props&&!e.props.disabled&&o===Q(e,r,t)&&(n=!0)})),n)?o:(o=null,e.defaultActiveFirst?(ee(i,(function(e,t){o||!e||e.props.disabled||(o=Q(e,r,t))})),o):o)}function rt(e){if(e){var t=this.instanceArray.indexOf(e);-1!==t?this.instanceArray[t]=e:this.instanceArray.push(e)}}var at=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;return(0,r.Z)(this,n),(o=t.call(this,e)).onKeyDown=function(e,t){var n,i=e.keyCode;if(o.getFlatInstanceArray().forEach((function(t){t&&t.props.active&&t.onKeyDown&&(n=t.onKeyDown(e))})),n)return 1;var r=null;return i!==x.Z.UP&&i!==x.Z.DOWN||(r=o.step(i===x.Z.UP?-1:1)),r?(e.preventDefault(),nt(o.props.store,ot(o.props),r.props.eventKey),"function"==typeof t&&t(r),1):void 0},o.onItemHover=function(e){var t=e.key,n=e.hover;nt(o.props.store,ot(o.props),n?t:null)},o.onDeselect=function(e){o.props.onDeselect(e)},o.onSelect=function(e){o.props.onSelect(e)},o.onClick=function(e){o.props.onClick(e)},o.onOpenChange=function(e){o.props.onOpenChange(e)},o.onDestroy=function(e){o.props.onDestroy(e)},o.getFlatInstanceArray=function(){return o.instanceArray},o.step=function(e){var t=o.getFlatInstanceArray(),n=o.props.store.getState().activeKey[ot(o.props)],i=t.length;if(!i)return null;e<0&&(t=t.concat().reverse());var r=-1;if(t.every((function(e,t){return!e||e.props.eventKey!==n||(r=t,!1)})),o.props.defaultActiveFirst||-1===r||(a=t.slice(r,i-1)).length&&!a.every((function(e){return!!e.props.disabled}))){var a,s=(r+1)%i,u=s;do{var l=t[u];if(l&&!l.props.disabled)return l;u=(u+1)%i}while(u!==s);return null}},o.renderCommonMenuItem=function(e,t,n){var r=o.props.store.getState(),a=(0,s.Z)(o).props,u=Q(e,a.eventKey,t),l=e.props;if(!l||"string"==typeof e.type)return e;var p=u===r.activeKey,f=(0,i.Z)((0,i.Z)({mode:l.mode||a.mode,level:a.level,inlineIndent:a.inlineIndent,renderMenuItem:o.renderMenuItem,rootPrefixCls:a.prefixCls,index:t,parentMenu:a.parentMenu,manualRef:l.disabled?void 0:P(e.ref,rt.bind((0,s.Z)(o))),eventKey:u,active:!l.disabled&&p,multiple:a.multiple,onClick:function(e){(l.onClick||q)(e),o.onClick(e)},onItemHover:o.onItemHover,motion:a.motion,subMenuOpenDelay:a.subMenuOpenDelay,subMenuCloseDelay:a.subMenuCloseDelay,forceSubMenuRender:a.forceSubMenuRender,onOpenChange:o.onOpenChange,onDeselect:o.onDeselect,onSelect:o.onSelect,builtinPlacements:a.builtinPlacements,itemIcon:l.itemIcon||o.props.itemIcon,expandIcon:l.expandIcon||o.props.expandIcon},n),{},{direction:a.direction});return("inline"===a.mode||$.any)&&(f.triggerSubMenuAction="click"),c.cloneElement(e,(0,i.Z)((0,i.Z)({},f),{},{key:u||t}))},o.renderMenuItem=function(e,t,n){if(!e)return null;var i=o.props.store.getState(),r={openKeys:i.openKeys,selectedKeys:i.selectedKeys,triggerSubMenuAction:o.props.triggerSubMenuAction,subMenuKey:n};return o.renderCommonMenuItem(e,t,r)},e.store.setState({activeKey:(0,i.Z)((0,i.Z)({},e.store.getState().activeKey),{},(0,T.Z)({},e.eventKey,it(e,e.activeKey)))}),o.instanceArray=[],o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"shouldComponentUpdate",value:function(e){return this.props.visible||e.visible||this.props.className!==e.className||!h()(this.props.style,e.style)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n="activeKey"in t?t.activeKey:t.store.getState().activeKey[ot(t)],o=it(t,n);(o!==n||"activeKey"in e&&o!==it(e,e.activeKey))&&nt(t.store,ot(t),o)}},{key:"render",value:function(){var e=this,t=(0,E.Z)({},this.props);this.instanceArray=[];var n={className:S()(t.prefixCls,t.className,"".concat(t.prefixCls,"-").concat(t.mode)),role:t.role||"menu"};t.id&&(n.id=t.id),t.focusable&&(n.tabIndex=0,n.onKeyDown=this.onKeyDown);var o=t.prefixCls,i=t.eventKey,r=t.visible,a=t.level,s=t.mode,u=t.overflowedIndicator,l=t.theme;return ne.forEach((function(e){return delete t[e]})),delete t.onClick,c.createElement(tt,Object.assign({},t,{prefixCls:o,mode:s,tag:"ul",level:a,theme:l,visible:r,overflowedIndicator:u},n),(0,O.Z)(t.children).map((function(t,n){return e.renderMenuItem(t,n,i||"0-menu-")})))}}]),n}(c.Component);at.defaultProps={prefixCls:"rc-menu",className:"",mode:"vertical",level:1,inlineIndent:24,visible:!0,focusable:!0,style:{},manualRef:q};var st=w()(at),ut=n(1894);function lt(e,t,n){var o=e.prefixCls,i=e.motion,r=e.defaultMotions,a=void 0===r?{}:r,s=e.openAnimation,u=e.openTransitionName,l=t.switchingModeFromInline;if(i)return i;if("object"===(0,N.Z)(s)&&s)(0,ut.ZP)(!1,"Object type of `openAnimation` is removed. Please use `motion` instead.");else if("string"==typeof s)return{motionName:"".concat(o,"-open-").concat(s)};return u?{motionName:u}:a[n]||(l?null:a.other)}var ct=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;(0,r.Z)(this,n),(o=t.call(this,e)).onSelect=function(e){var t=(0,s.Z)(o).props;if(t.selectable){var n=o.store.getState().selectedKeys,r=e.key;n=t.multiple?n.concat([r]):[r],"selectedKeys"in t||o.store.setState({selectedKeys:n}),t.onSelect((0,i.Z)((0,i.Z)({},e),{},{selectedKeys:n}))}},o.onClick=function(e){var t=o.getRealMenuMode(),n=(0,s.Z)(o),i=n.store,r=n.props.onOpenChange;"inline"===t||"openKeys"in o.props||(i.setState({openKeys:[]}),r([])),o.props.onClick(e)},o.onKeyDown=function(e,t){o.innerMenu.getWrappedInstance().onKeyDown(e,t)},o.onOpenChange=function(e){var t=(0,s.Z)(o).props,n=o.store.getState().openKeys.concat(),i=!1,r=function(e){var t=!1;if(e.open)(t=-1===n.indexOf(e.key))&&n.push(e.key);else{var o=n.indexOf(e.key);(t=-1!==o)&&n.splice(o,1)}i=i||t};Array.isArray(e)?e.forEach(r):r(e),i&&("openKeys"in o.props||o.store.setState({openKeys:n}),t.onOpenChange(n))},o.onDeselect=function(e){var t=(0,s.Z)(o).props;if(t.selectable){var n=o.store.getState().selectedKeys.concat(),r=e.key,a=n.indexOf(r);-1!==a&&n.splice(a,1),"selectedKeys"in t||o.store.setState({selectedKeys:n}),t.onDeselect((0,i.Z)((0,i.Z)({},e),{},{selectedKeys:n}))}},o.onMouseEnter=function(e){o.restoreModeVerticalFromInline();var t=o.props.onMouseEnter;t&&t(e)},o.onTransitionEnd=function(e){var t="width"===e.propertyName&&e.target===e.currentTarget,n=e.target.className,i="[object SVGAnimatedString]"===Object.prototype.toString.call(n)?n.animVal:n,r="font-size"===e.propertyName&&i.indexOf("anticon")>=0;(t||r)&&o.restoreModeVerticalFromInline()},o.setInnerMenu=function(e){o.innerMenu=e},o.isRootMenu=!0;var a,u,l,c=e.defaultSelectedKeys,p=e.defaultOpenKeys;return"selectedKeys"in e&&(c=e.selectedKeys||[]),"openKeys"in e&&(p=e.openKeys||[]),o.store=(a={selectedKeys:c,openKeys:p,activeKey:{"0-menu-":it(e,e.activeKey)}},u=a,l=[],{setState:function(e){u=Z(Z({},u),e);for(var t=0;t<l.length;t++)l[t]()},getState:function(){return u},subscribe:function(e){return l.push(e),function(){var t=l.indexOf(e);l.splice(t,1)}}}),o.state={switchingModeFromInline:!1,prevProps:e,inlineOpenKeys:[],store:o.store},o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.updateMiniStore(),this.updateMenuDisplay()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.siderCollapsed,o=t.inlineCollapsed,i=t.onOpenChange;(!e.inlineCollapsed&&o||!e.siderCollapsed&&n)&&i([]),this.updateMiniStore(),this.updateMenuDisplay()}},{key:"updateMenuDisplay",value:function(){var e=this.props.collapsedWidth,t=this.store,n=this.prevOpenKeys;!this.getInlineCollapsed()||0!==e&&"0"!==e&&"0px"!==e?n&&(this.store.setState({openKeys:n}),this.prevOpenKeys=null):(this.prevOpenKeys=t.getState().openKeys.concat(),this.store.setState({openKeys:[]}))}},{key:"getRealMenuMode",value:function(){var e=this.props.mode,t=this.state.switchingModeFromInline,n=this.getInlineCollapsed();return t&&n?"inline":n?"vertical":e}},{key:"getInlineCollapsed",value:function(){var e=this.props,t=e.inlineCollapsed,n=e.siderCollapsed;return void 0!==n?n:t}},{key:"restoreModeVerticalFromInline",value:function(){this.state.switchingModeFromInline&&this.setState({switchingModeFromInline:!1})}},{key:"updateMiniStore",value:function(){"selectedKeys"in this.props&&this.store.setState({selectedKeys:this.props.selectedKeys||[]}),"openKeys"in this.props&&this.store.setState({openKeys:this.props.openKeys||[]})}},{key:"render",value:function(){var e=(0,i.Z)({},(0,k.Z)(this.props,["collapsedWidth","siderCollapsed","defaultMotions"])),t=this.getRealMenuMode();return e.className+=" ".concat(e.prefixCls,"-root"),"rtl"===e.direction&&(e.className+=" ".concat(e.prefixCls,"-rtl")),delete(e=(0,i.Z)((0,i.Z)({},e),{},{mode:t,onClick:this.onClick,onOpenChange:this.onOpenChange,onDeselect:this.onDeselect,onSelect:this.onSelect,onMouseEnter:this.onMouseEnter,onTransitionEnd:this.onTransitionEnd,parentMenu:this,motion:lt(this.props,this.state,t)})).openAnimation,delete e.openTransitionName,c.createElement(v,{store:this.store},c.createElement(st,Object.assign({},e,{ref:this.setInnerMenu}),this.props.children))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,o=t.store,i=o.getState(),r={},a={prevProps:e};return"inline"===n.mode&&"inline"!==e.mode&&(a.switchingModeFromInline=!0),"openKeys"in e?r.openKeys=e.openKeys:((e.inlineCollapsed&&!n.inlineCollapsed||e.siderCollapsed&&!n.siderCollapsed)&&(a.switchingModeFromInline=!0,a.inlineOpenKeys=i.openKeys,r.openKeys=[]),(!e.inlineCollapsed&&n.inlineCollapsed||!e.siderCollapsed&&n.siderCollapsed)&&(r.openKeys=t.inlineOpenKeys,a.inlineOpenKeys=[])),Object.keys(r).length&&o.setState(r),a}}]),n}(c.Component);ct.defaultProps={selectable:!0,onClick:q,onSelect:q,onOpenChange:q,onDeselect:q,defaultSelectedKeys:[],defaultOpenKeys:[],subMenuOpenDelay:.1,subMenuCloseDelay:.1,triggerSubMenuAction:"hover",prefixCls:"rc-menu",className:"",mode:"vertical",style:{},builtinPlacements:{},overflowedIndicator:c.createElement("span",null,"···")};var pt=ct,ft=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).onKeyDown=function(t){if(t.keyCode===x.Z.ENTER)return e.onClick(t),!0},e.onMouseLeave=function(t){var n=e.props,o=n.eventKey,i=n.onItemHover,r=n.onMouseLeave;i({key:o,hover:!1}),r({key:o,domEvent:t})},e.onMouseEnter=function(t){var n=e.props,o=n.eventKey,i=n.onItemHover,r=n.onMouseEnter;i({key:o,hover:!0}),r({key:o,domEvent:t})},e.onClick=function(t){var n=e.props,o=n.eventKey,i=n.multiple,r=n.onClick,a=n.onSelect,u=n.onDeselect,l=n.isSelected,c={key:o,keyPath:[o],item:(0,s.Z)(e),domEvent:t};r(c),i?l?u(c):a(c):l||a(c)},e.saveNode=function(t){e.node=t},e}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.callRef()}},{key:"componentDidUpdate",value:function(){this.callRef()}},{key:"componentWillUnmount",value:function(){var e=this.props;e.onDestroy&&e.onDestroy(e.eventKey)}},{key:"getPrefixCls",value:function(){return"".concat(this.props.rootPrefixCls,"-item")}},{key:"getActiveClassName",value:function(){return"".concat(this.getPrefixCls(),"-active")}},{key:"getSelectedClassName",value:function(){return"".concat(this.getPrefixCls(),"-selected")}},{key:"getDisabledClassName",value:function(){return"".concat(this.getPrefixCls(),"-disabled")}},{key:"callRef",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"render",value:function(){var e,t=(0,i.Z)({},this.props),n=S()(this.getPrefixCls(),t.className,(e={},(0,T.Z)(e,this.getActiveClassName(),!t.disabled&&t.active),(0,T.Z)(e,this.getSelectedClassName(),t.isSelected),(0,T.Z)(e,this.getDisabledClassName(),t.disabled),e)),o=(0,i.Z)((0,i.Z)({},t.attribute),{},{title:"string"==typeof t.title?t.title:void 0,className:n,role:t.role||"menuitem","aria-disabled":t.disabled});"option"===t.role?o=(0,i.Z)((0,i.Z)({},o),{},{role:"option","aria-selected":t.isSelected}):null!==t.role&&"none"!==t.role||(o.role="none");var r={onClick:t.disabled?null:this.onClick,onMouseLeave:t.disabled?null:this.onMouseLeave,onMouseEnter:t.disabled?null:this.onMouseEnter},a=(0,i.Z)({},t.style);"inline"===t.mode&&("rtl"===t.direction?a.paddingRight=t.inlineIndent*t.level:a.paddingLeft=t.inlineIndent*t.level),ne.forEach((function(e){return delete t[e]})),delete t.direction;var s=this.props.itemIcon;return"function"==typeof this.props.itemIcon&&(s=c.createElement(this.props.itemIcon,this.props)),c.createElement("li",Object.assign({},(0,k.Z)(t,["onClick","onMouseEnter","onMouseLeave","onSelect"]),o,r,{style:a,ref:this.saveNode}),t.children,s)}}]),n}(c.Component);ft.isMenuItem=!0,ft.defaultProps={onSelect:q,onMouseEnter:q,onMouseLeave:q,manualRef:q};var dt=w((function(e,t){var n=e.activeKey,o=e.selectedKeys,i=t.eventKey;return{active:n[t.subMenuKey]===i,isSelected:-1!==o.indexOf(i)}}))(ft),vt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).renderInnerMenuItem=function(t){var n=e.props;return(0,n.renderMenuItem)(t,n.index,e.props.subMenuKey)},e}return(0,a.Z)(n,[{key:"render",value:function(){var e=(0,E.Z)({},this.props),t=e.className,n=void 0===t?"":t,o=e.rootPrefixCls,i="".concat(o,"-item-group-title"),r="".concat(o,"-item-group-list"),a=e.title,s=e.children;return ne.forEach((function(t){return delete e[t]})),delete e.onClick,delete e.direction,c.createElement("li",Object.assign({},e,{className:"".concat(n," ").concat(o,"-item-group")}),c.createElement("div",{className:i,title:"string"==typeof a?a:void 0},a),c.createElement("ul",{className:r},c.Children.map(s,this.renderInnerMenuItem)))}}]),n}(c.Component);vt.isMenuItemGroup=!0,vt.defaultProps={disabled:!0};var mt=vt,ht=function(e){var t=e.className,n=e.rootPrefixCls,o=e.style;return c.createElement("li",{className:"".concat(t," ").concat(n,"-item-divider"),style:o})};ht.defaultProps={disabled:!0,className:"",style:{}};var yt=ht,gt=pt},5724:function(e){e.exports=function(e,t,n,o){var i=n?n.call(o,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;u<r.length;u++){var l=r[u];if(!s(l))return!1;var c=e[l],p=t[l];if(!1===(i=n?n.call(o,c,p,l):void 0)||void 0===i&&c!==p)return!1}return!0}},9080:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var o=n(7363),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"},r=n(3751),a=function(e,t){return o.createElement(r.Z,Object.assign({},e,{ref:t,icon:i}))};a.displayName="EllipsisOutlined";var s=o.forwardRef(a)},9033:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var o=n(7363),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},r=n(3751),a=function(e,t){return o.createElement(r.Z,Object.assign({},e,{ref:t,icon:i}))};a.displayName="PlusOutlined";var s=o.forwardRef(a)},9440:function(e,t,n){"use strict";n.d(t,{Z:function(){return G}});var o=n(4741),i=n(63),r=n(7363),a=n(7228),s=n(3429),u=n(4115),l=n(2711),c=n(2286),p=n.n(c),f=n(4237),d=n(4511),v=n(8833),m=n(7870),h=n(6871),y=n(2177);function g(e){var t=(0,r.useRef)(),n=(0,r.useRef)(!1);return(0,r.useEffect)((function(){return function(){n.current=!0,h.Z.cancel(t.current)}}),[]),function(){for(var o=arguments.length,i=new Array(o),r=0;r<o;r++)i[r]=arguments[r];n.current||(h.Z.cancel(t.current),t.current=(0,h.Z)((function(){e.apply(void 0,i)})))}}var b=n(5065);function C(e,t){var n,o=e.prefixCls,a=e.id,s=e.active,u=e.rtl,l=e.tab,c=l.key,f=l.tab,d=l.disabled,v=l.closeIcon,m=e.tabBarGutter,h=e.tabPosition,y=e.closable,g=e.renderWrapper,C=e.removeAriaLabel,M=e.editable,w=e.onClick,Z=e.onRemove,k=e.onFocus,E="".concat(o,"-tab");r.useEffect((function(){return Z}),[]);var T={};"top"===h||"bottom"===h?T[u?"marginLeft":"marginRight"]=m:T.marginBottom=m;var x=M&&!1!==y&&!d;function P(e){d||w(e)}var O=r.createElement("div",{key:c,ref:t,className:p()(E,(n={},(0,i.Z)(n,"".concat(E,"-with-remove"),x),(0,i.Z)(n,"".concat(E,"-active"),s),(0,i.Z)(n,"".concat(E,"-disabled"),d),n)),style:T,onClick:P},r.createElement("div",{role:"tab","aria-selected":s,id:a&&"".concat(a,"-tab-").concat(c),className:"".concat(E,"-btn"),"aria-controls":a&&"".concat(a,"-panel-").concat(c),"aria-disabled":d,tabIndex:d?null:0,onClick:function(e){e.stopPropagation(),P(e)},onKeyDown:function(e){[b.Z.SPACE,b.Z.ENTER].includes(e.which)&&(e.preventDefault(),P(e))},onFocus:k},f),x&&r.createElement("button",{type:"button","aria-label":C||"remove",tabIndex:0,className:"".concat(E,"-remove"),onClick:function(e){var t;e.stopPropagation(),(t=e).preventDefault(),t.stopPropagation(),M.onEdit("remove",{key:c,event:t})}},v||M.removeIcon||"×"));return g&&(O=g(O)),O}var M=r.forwardRef(C),w={width:0,height:0,left:0,top:0},Z={width:0,height:0,left:0,top:0,right:0},k=n(1987),E=n(7933);function T(e,t){var n=e.prefixCls,o=e.editable,i=e.locale,a=e.style;return o&&!1!==o.showAdd?r.createElement("button",{ref:t,type:"button",className:"".concat(n,"-nav-add"),style:a,"aria-label":(null==i?void 0:i.addAriaLabel)||"Add tab",onClick:function(e){o.onEdit("add",{event:e})}},o.addIcon||"+"):null}var x=r.forwardRef(T);function P(e,t){var n=e.prefixCls,o=e.id,s=e.tabs,u=e.locale,l=e.mobile,c=e.moreIcon,f=void 0===c?"More":c,d=e.moreTransitionName,v=e.style,m=e.className,h=e.editable,y=e.tabBarGutter,g=e.rtl,C=e.onTabClick,M=(0,r.useState)(!1),w=(0,a.Z)(M,2),Z=w[0],T=w[1],P=(0,r.useState)(null),O=(0,a.Z)(P,2),D=O[0],S=O[1],N="".concat(o,"-more-popup"),R="".concat(n,"-dropdown"),I=null!==D?"".concat(N,"-").concat(D):null,A=null==u?void 0:u.dropdownAriaLabel,K=r.createElement(k.ZP,{onClick:function(e){var t=e.key,n=e.domEvent;C(t,n),T(!1)},id:N,tabIndex:-1,role:"listbox","aria-activedescendant":I,selectedKeys:[D],"aria-label":void 0!==A?A:"expanded dropdown"},s.map((function(e){return r.createElement(k.sN,{key:e.key,id:"".concat(N,"-").concat(e.key),role:"option","aria-controls":o&&"".concat(o,"-panel-").concat(e.key),disabled:e.disabled},e.tab)})));function V(e){for(var t=s.filter((function(e){return!e.disabled})),n=t.findIndex((function(e){return e.key===D}))||0,o=t.length,i=0;i<o;i+=1){var r=t[n=(n+e+o)%o];if(!r.disabled)return void S(r.key)}}(0,r.useEffect)((function(){var e=document.getElementById(I);e&&e.scrollIntoView&&e.scrollIntoView(!1)}),[D]),(0,r.useEffect)((function(){Z||S(null)}),[Z]);var H=(0,i.Z)({},g?"marginLeft":"marginRight",y);s.length||(H.visibility="hidden",H.order=1);var L=p()((0,i.Z)({},"".concat(R,"-rtl"),g)),F=l?null:r.createElement(E.Z,{prefixCls:R,overlay:K,trigger:["hover"],visible:Z,transitionName:d,onVisibleChange:T,overlayClassName:L,mouseEnterDelay:.1,mouseLeaveDelay:.1},r.createElement("button",{type:"button",className:"".concat(n,"-nav-more"),style:H,tabIndex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":N,id:"".concat(o,"-more"),"aria-expanded":Z,onKeyDown:function(e){var t=e.which;if(Z)switch(t){case b.Z.UP:V(-1),e.preventDefault();break;case b.Z.DOWN:V(1),e.preventDefault();break;case b.Z.ESC:T(!1);break;case b.Z.SPACE:case b.Z.ENTER:null!==D&&C(D,e)}else[b.Z.DOWN,b.Z.SPACE,b.Z.ENTER].includes(t)&&(T(!0),e.preventDefault())}},f));return r.createElement("div",{className:p()("".concat(n,"-nav-operations"),m),style:v,ref:t},F,r.createElement(x,{prefixCls:n,locale:u,editable:h}))}var O=r.forwardRef(P),D=(0,r.createContext)(null),S=Math.pow(.995,20);function N(e,t){var n=r.useRef(e),o=r.useState({}),i=(0,a.Z)(o,2)[1];return[n.current,function(e){var o="function"==typeof e?e(n.current):e;o!==n.current&&t(o,n.current),n.current=o,i({})}]}var R=function(e){var t,n=e.position,o=e.prefixCls,i=e.extra;if(!i)return null;var a=i;return"right"===n&&(t=a.right||!a.left&&a||null),"left"===n&&(t=a.left||null),t?r.createElement("div",{className:"".concat(o,"-extra-content")},t):null};function I(e,t){var n,o,s=r.useContext(D),u=s.prefixCls,c=s.tabs,f=e.className,d=e.style,v=e.id,b=e.animated,C=e.activeKey,k=e.rtl,E=e.extra,T=e.editable,P=e.locale,I=e.tabPosition,A=e.tabBarGutter,K=e.children,V=e.onTabClick,H=e.onTabScroll,L=(0,r.useRef)(),F=(0,r.useRef)(),j=(0,r.useRef)(),z=(0,r.useRef)(),B=(o=(0,r.useRef)(new Map),[function(e){return o.current.has(e)||o.current.set(e,r.createRef()),o.current.get(e)},function(e){o.current.delete(e)}]),W=(0,a.Z)(B,2),U=W[0],Y=W[1],_="top"===I||"bottom"===I,X=N(0,(function(e,t){_&&H&&H({direction:e>t?"left":"right"})})),G=(0,a.Z)(X,2),$=G[0],q=G[1],Q=N(0,(function(e,t){!_&&H&&H({direction:e>t?"top":"bottom"})})),J=(0,a.Z)(Q,2),ee=J[0],te=J[1],ne=(0,r.useState)(0),oe=(0,a.Z)(ne,2),ie=oe[0],re=oe[1],ae=(0,r.useState)(0),se=(0,a.Z)(ae,2),ue=se[0],le=se[1],ce=(0,r.useState)(0),pe=(0,a.Z)(ce,2),fe=pe[0],de=pe[1],ve=(0,r.useState)(0),me=(0,a.Z)(ve,2),he=me[0],ye=me[1],ge=(0,r.useState)(null),be=(0,a.Z)(ge,2),Ce=be[0],Me=be[1],we=(0,r.useState)(null),Ze=(0,a.Z)(we,2),ke=Ze[0],Ee=Ze[1],Te=(0,r.useState)(0),xe=(0,a.Z)(Te,2),Pe=xe[0],Oe=xe[1],De=(0,r.useState)(0),Se=(0,a.Z)(De,2),Ne=Se[0],Re=Se[1],Ie=function(e){var t=(0,r.useRef)([]),n=(0,r.useState)({}),o=(0,a.Z)(n,2)[1],i=(0,r.useRef)("function"==typeof e?e():e),s=g((function(){var e=i.current;t.current.forEach((function(t){e=t(e)})),t.current=[],i.current=e,o({})}));return[i.current,function(e){t.current.push(e),s()}]}(new Map),Ae=(0,a.Z)(Ie,2),Ke=Ae[0],Ve=Ae[1],He=function(e,t,n){return(0,r.useMemo)((function(){for(var n,o=new Map,i=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||w,r=i.left+i.width,a=0;a<e.length;a+=1){var s,u=e[a].key,c=t.get(u);c||(c=t.get(null===(s=e[a-1])||void 0===s?void 0:s.key)||w);var p=o.get(u)||(0,l.Z)({},c);p.right=r-p.left-p.width,o.set(u,p)}return o}),[e.map((function(e){return e.key})).join("_"),t,n])}(c,Ke,ie),Le="".concat(u,"-nav-operations-hidden"),Fe=0,je=0;function ze(e){return e<Fe?Fe:e>je?je:e}_?k?(Fe=0,je=Math.max(0,ie-Ce)):(Fe=Math.min(0,Ce-ie),je=0):(Fe=Math.min(0,ke-ue),je=0);var Be=(0,r.useRef)(),We=(0,r.useState)(),Ue=(0,a.Z)(We,2),Ye=Ue[0],_e=Ue[1];function Xe(){_e(Date.now())}function Ge(){window.clearTimeout(Be.current)}function $e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C,t=He.get(e)||{width:0,height:0,left:0,right:0,top:0};if(_){var n=$;k?t.right<$?n=t.right:t.right+t.width>$+Ce&&(n=t.right+t.width-Ce):t.left<-$?n=-t.left:t.left+t.width>-$+Ce&&(n=-(t.left+t.width-Ce)),te(0),q(ze(n))}else{var o=ee;t.top<-ee?o=-t.top:t.top+t.height>-ee+ke&&(o=-(t.top+t.height-ke)),q(0),te(ze(o))}}!function(e,t){var n=(0,r.useState)(),o=(0,a.Z)(n,2),i=o[0],s=o[1],u=(0,r.useState)(0),l=(0,a.Z)(u,2),c=l[0],p=l[1],f=(0,r.useState)(0),d=(0,a.Z)(f,2),v=d[0],m=d[1],h=(0,r.useState)(),y=(0,a.Z)(h,2),g=y[0],b=y[1],C=(0,r.useRef)(),M=(0,r.useRef)(),w=(0,r.useRef)(null);w.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,o=t.screenY;s({x:n,y:o}),window.clearInterval(C.current)},onTouchMove:function(e){if(i){e.preventDefault();var n=e.touches[0],o=n.screenX,r=n.screenY;s({x:o,y:r});var a=o-i.x,u=r-i.y;t(a,u);var l=Date.now();p(l),m(l-c),b({x:a,y:u})}},onTouchEnd:function(){if(i&&(s(null),b(null),g)){var e=g.x/v,n=g.y/v,o=Math.abs(e),r=Math.abs(n);if(Math.max(o,r)<.1)return;var a=e,u=n;C.current=window.setInterval((function(){Math.abs(a)<.01&&Math.abs(u)<.01?window.clearInterval(C.current):t(20*(a*=S),20*(u*=S))}),20)}},onWheel:function(e){var n=e.deltaX,o=e.deltaY,i=0,r=Math.abs(n),a=Math.abs(o);r===a?i="x"===M.current?n:o:r>a?(i=n,M.current="x"):(i=o,M.current="y"),t(-i,-i)&&e.preventDefault()}},r.useEffect((function(){function t(e){w.current.onTouchMove(e)}function n(e){w.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){w.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){w.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(L,(function(e,t){function n(e,t){e((function(e){return ze(e+t)}))}if(_){if(Ce>=ie)return!1;n(q,e)}else{if(ke>=ue)return!1;n(te,t)}return Ge(),Xe(),!0})),(0,r.useEffect)((function(){return Ge(),Ye&&(Be.current=window.setTimeout((function(){_e(0)}),100)),Ge}),[Ye]);var qe=function(e,t,n,o,i){var a,s,u,l=i.tabs,c=i.tabPosition,p=i.rtl;["top","bottom"].includes(c)?(a="width",s=p?"right":"left",u=Math.abs(t.left)):(a="height",s="top",u=-t.top);var f=t[a],d=o[a],v=f;return n[a]+d>f&&(v=f-d),(0,r.useMemo)((function(){if(!l.length)return[0,0];for(var t=l.length,n=t,o=0;o<t;o+=1){var i=e.get(l[o].key)||Z;if(i[s]+i[a]>u+v){n=o-1;break}}for(var r=0,c=t-1;c>=0;c-=1)if((e.get(l[c].key)||Z)[s]<u){r=c+1;break}return[r,n]}),[e,u,v,c,l.map((function(e){return e.key})).join("_"),p])}(He,{width:Ce,height:ke,left:$,top:ee},{width:fe,height:he},{width:Pe,height:Ne},(0,l.Z)((0,l.Z)({},e),{},{tabs:c})),Qe=(0,a.Z)(qe,2),Je=Qe[0],et=Qe[1],tt=c.map((function(e){var t=e.key;return r.createElement(M,{id:v,prefixCls:u,key:t,rtl:k,tab:e,closable:e.closable,editable:T,active:t===C,tabPosition:I,tabBarGutter:A,renderWrapper:K,removeAriaLabel:null==P?void 0:P.removeAriaLabel,ref:U(t),onClick:function(e){V(t,e)},onRemove:function(){Y(t)},onFocus:function(){$e(t),Xe(),k||(L.current.scrollLeft=0),L.current.scrollTop=0}})})),nt=g((function(){var e,t,n,o,i,r,a,s,u,l=(null===(e=L.current)||void 0===e?void 0:e.offsetWidth)||0,p=(null===(t=L.current)||void 0===t?void 0:t.offsetHeight)||0,f=(null===(n=z.current)||void 0===n?void 0:n.offsetWidth)||0,d=(null===(o=z.current)||void 0===o?void 0:o.offsetHeight)||0,v=(null===(i=j.current)||void 0===i?void 0:i.offsetWidth)||0,m=(null===(r=j.current)||void 0===r?void 0:r.offsetHeight)||0;Me(l),Ee(p),Oe(f),Re(d);var h=((null===(a=F.current)||void 0===a?void 0:a.offsetWidth)||0)-f,y=((null===(s=F.current)||void 0===s?void 0:s.offsetHeight)||0)-d;re(h),le(y);var g=null===(u=j.current)||void 0===u?void 0:u.className.includes(Le);de(h-(g?0:v)),ye(y-(g?0:m)),Ve((function(){var e=new Map;return c.forEach((function(t){var n=t.key,o=U(n).current;o&&e.set(n,{width:o.offsetWidth,height:o.offsetHeight,left:o.offsetLeft,top:o.offsetTop})})),e}))})),ot=c.slice(0,Je),it=c.slice(et+1),rt=[].concat((0,m.Z)(ot),(0,m.Z)(it)),at=(0,r.useState)(),st=(0,a.Z)(at,2),ut=st[0],lt=st[1],ct=He.get(C),pt=(0,r.useRef)();function ft(){h.Z.cancel(pt.current)}(0,r.useEffect)((function(){var e={};return ct&&(_?(k?e.right=ct.right:e.left=ct.left,e.width=ct.width):(e.top=ct.top,e.height=ct.height)),ft(),pt.current=(0,h.Z)((function(){lt(e)})),ft}),[ct,_,k]),(0,r.useEffect)((function(){$e()}),[C,ct,He,_]),(0,r.useEffect)((function(){nt()}),[k,A,C,c.map((function(e){return e.key})).join("_")]);var dt,vt,mt,ht,yt=!!rt.length,gt="".concat(u,"-nav-wrap");return _?k?(vt=$>0,dt=$+Ce<ie):(dt=$<0,vt=-$+Ce<ie):(mt=ee<0,ht=-ee+ke<ue),r.createElement("div",{ref:t,role:"tablist",className:p()("".concat(u,"-nav"),f),style:d,onKeyDown:function(){Xe()}},r.createElement(R,{position:"left",extra:E,prefixCls:u}),r.createElement(y.Z,{onResize:nt},r.createElement("div",{className:p()(gt,(n={},(0,i.Z)(n,"".concat(gt,"-ping-left"),dt),(0,i.Z)(n,"".concat(gt,"-ping-right"),vt),(0,i.Z)(n,"".concat(gt,"-ping-top"),mt),(0,i.Z)(n,"".concat(gt,"-ping-bottom"),ht),n)),ref:L},r.createElement(y.Z,{onResize:nt},r.createElement("div",{ref:F,className:"".concat(u,"-nav-list"),style:{transform:"translate(".concat($,"px, ").concat(ee,"px)"),transition:Ye?"none":void 0}},tt,r.createElement(x,{ref:z,prefixCls:u,locale:P,editable:T,style:{visibility:yt?"hidden":null}}),r.createElement("div",{className:p()("".concat(u,"-ink-bar"),(0,i.Z)({},"".concat(u,"-ink-bar-animated"),b.inkBar)),style:ut}))))),r.createElement(O,Object.assign({},e,{ref:j,prefixCls:u,tabs:rt,className:!yt&&Le})),r.createElement(R,{position:"right",extra:E,prefixCls:u}))}var A=r.forwardRef(I);function K(e){var t=e.id,n=e.activeKey,o=e.animated,a=e.tabPosition,s=e.rtl,u=e.destroyInactiveTabPane,l=r.useContext(D),c=l.prefixCls,f=l.tabs,d=o.tabPane,v=f.findIndex((function(e){return e.key===n}));return r.createElement("div",{className:p()("".concat(c,"-content-holder"))},r.createElement("div",{className:p()("".concat(c,"-content"),"".concat(c,"-content-").concat(a),(0,i.Z)({},"".concat(c,"-content-animated"),d)),style:v&&d?(0,i.Z)({},s?"marginRight":"marginLeft","-".concat(v,"00%")):null},f.map((function(e){return r.cloneElement(e.node,{key:e.key,prefixCls:c,tabKey:e.key,id:t,animated:d,active:e.key===n,destroyInactiveTabPane:u})}))))}function V(e){var t=e.prefixCls,n=e.forceRender,o=e.className,i=e.style,s=e.id,u=e.active,c=e.animated,f=e.destroyInactiveTabPane,d=e.tabKey,v=e.children,m=r.useState(n),h=(0,a.Z)(m,2),y=h[0],g=h[1];r.useEffect((function(){u?g(!0):f&&g(!1)}),[u,f]);var b={};return u||(c?(b.visibility="hidden",b.height=0,b.overflowY="hidden"):b.display="none"),r.createElement("div",{id:s&&"".concat(s,"-panel-").concat(d),role:"tabpanel",tabIndex:u?0:-1,"aria-labelledby":s&&"".concat(s,"-tab-").concat(d),"aria-hidden":!u,style:(0,l.Z)((0,l.Z)({},b),i),className:p()("".concat(t,"-tabpane"),u&&"".concat(t,"-tabpane-active"),o)},(u||y||n)&&v)}var H=0;function L(e,t){var n,o,c=e.id,m=e.prefixCls,h=void 0===m?"rc-tabs":m,y=e.className,g=e.children,b=e.direction,C=e.activeKey,M=e.defaultActiveKey,w=e.editable,Z=e.animated,k=void 0===Z?{inkBar:!0,tabPane:!1}:Z,E=e.tabPosition,T=void 0===E?"top":E,x=e.tabBarGutter,P=e.tabBarStyle,O=e.tabBarExtraContent,S=e.locale,N=e.moreIcon,R=e.moreTransitionName,I=e.destroyInactiveTabPane,V=e.renderTabBar,L=e.onChange,F=e.onTabClick,j=e.onTabScroll,z=(0,u.Z)(e,["id","prefixCls","className","children","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll"]),B=function(e){return(0,f.Z)(e).map((function(e){if(r.isValidElement(e)){var t=void 0!==e.key?String(e.key):void 0;return(0,l.Z)((0,l.Z)({key:t},e.props),{},{node:e})}return null})).filter((function(e){return e}))}(g),W="rtl"===b;o=!1===k?{inkBar:!1,tabPane:!1}:!0===k?{inkBar:!0,tabPane:!0}:(0,l.Z)({inkBar:!0,tabPane:!1},"object"===(0,s.Z)(k)?k:{});var U=(0,r.useState)(!1),Y=(0,a.Z)(U,2),_=Y[0],X=Y[1];(0,r.useEffect)((function(){X((0,d.Z)())}),[]);var G=(0,v.Z)((function(){var e;return null===(e=B[0])||void 0===e?void 0:e.key}),{value:C,defaultValue:M}),$=(0,a.Z)(G,2),q=$[0],Q=$[1],J=(0,r.useState)((function(){return B.findIndex((function(e){return e.key===q}))})),ee=(0,a.Z)(J,2),te=ee[0],ne=ee[1];(0,r.useEffect)((function(){var e,t=B.findIndex((function(e){return e.key===q}));-1===t&&(t=Math.max(0,Math.min(te,B.length-1)),Q(null===(e=B[t])||void 0===e?void 0:e.key)),ne(t)}),[B.map((function(e){return e.key})).join("_"),q,te]);var oe=(0,v.Z)(null,{value:c}),ie=(0,a.Z)(oe,2),re=ie[0],ae=ie[1],se=T;_&&!["left","right"].includes(T)&&(se="top"),(0,r.useEffect)((function(){c||(ae("rc-tabs-".concat(H)),H+=1)}),[]);var ue,le={id:re,activeKey:q,animated:o,tabPosition:se,rtl:W,mobile:_},ce=(0,l.Z)((0,l.Z)({},le),{},{editable:w,locale:S,moreIcon:N,moreTransitionName:R,tabBarGutter:x,onTabClick:function(e,t){null==F||F(e,t),Q(e),null==L||L(e)},onTabScroll:j,extra:O,style:P,panes:g});return ue=V?V(ce,A):r.createElement(A,Object.assign({},ce)),r.createElement(D.Provider,{value:{tabs:B,prefixCls:h}},r.createElement("div",Object.assign({ref:t,id:c,className:p()(h,"".concat(h,"-").concat(se),(n={},(0,i.Z)(n,"".concat(h,"-mobile"),_),(0,i.Z)(n,"".concat(h,"-editable"),w),(0,i.Z)(n,"".concat(h,"-rtl"),W),n),y)},z),ue,r.createElement(K,Object.assign({destroyInactiveTabPane:I},le,{animated:o}))))}var F=r.forwardRef(L);F.TabPane=V;var j=F,z=n(9080),B=n(9033),W=n(1543),U=n(7139),Y=n(4178),_=n(8533);function X(e){var t,n=e.type,a=e.className,s=e.size,u=e.onEdit,l=e.hideAdd,c=e.centered,f=e.addIcon,d=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 i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(n[o[i]]=e[o[i]])}return n}(e,["type","className","size","onEdit","hideAdd","centered","addIcon"]),v=d.prefixCls,m=d.moreIcon,h=void 0===m?r.createElement(z.Z,null):m,y=r.useContext(Y.E_),g=y.getPrefixCls,b=y.direction,C=g("tabs",v);"editable-card"===n&&(t={onEdit:function(e,t){var n=t.key,o=t.event;null==u||u("add"===e?o:n,e)},removeIcon:r.createElement(W.Z,null),addIcon:f||r.createElement(B.Z,null),showAdd:!0!==l});var M=g();return(0,U.Z)(!("onPrevClick"in d)&&!("onNextClick"in d),"Tabs","`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead."),r.createElement(_.Z.Consumer,null,(function(e){var u,l=void 0!==s?s:e;return r.createElement(j,(0,o.Z)({direction:b,moreTransitionName:"".concat(M,"-slide-up")},d,{className:p()((u={},(0,i.Z)(u,"".concat(C,"-").concat(l),l),(0,i.Z)(u,"".concat(C,"-card"),["card","editable-card"].includes(n)),(0,i.Z)(u,"".concat(C,"-editable-card"),"editable-card"===n),(0,i.Z)(u,"".concat(C,"-centered"),c),u),a),editable:t,moreIcon:h,prefixCls:C}))}))}X.TabPane=V;var G=X}}]);
2
- //# sourceMappingURL=440.lite.js.map?ver=abce2a866d4b5996c6bb
1
+ (self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[173],{9239:function(e,t,n){"use strict";var o=n(8711),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return o.isMemo(e)?a:s[e.$$typeof]||i}s[o.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[o.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,v=Object.prototype;e.exports=function e(t,n,o){if("string"!=typeof n){if(v){var i=d(n);i&&i!==v&&e(t,i,o)}var a=c(n);p&&(a=a.concat(p(n)));for(var s=u(t),m=u(n),h=0;h<a.length;++h){var y=a[h];if(!(r[y]||o&&o[y]||m&&m[y]||s&&s[y])){var g=f(n,y);try{l(t,y,g)}catch(e){}}}}return t}},7933:function(e,t,n){"use strict";n.d(t,{Z:function(){return ie}});var o=n(63),i=n(7228),r=n(4115),a=n(7363),s=n.n(a),u=n(2711),l=n(4741),c=n(6762),p=n(3340),f=n(5558),d=n(3841),v=n(5952),m=n(1533),h=n.n(m),y=n(6871),g=n(7384),b=n(8369),C=n(5643),M=n(5905),w=n(505),Z=n(2286),k=n.n(Z);function E(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var T=n(4511),x=n(9064);function P(e){var t=e.prefixCls,n=e.motion,o=e.animation,i=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:i?{motionName:i}:null)}function O(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,i=e.mask,r=e.maskMotion,s=e.maskAnimation,c=e.maskTransitionName;if(!i)return null;var p={};return(r||c||s)&&(p=(0,u.Z)({motionAppear:!0},P({motion:r,prefixCls:t,transitionName:c,animation:s}))),a.createElement(x.Z,(0,l.Z)({},p,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return a.createElement("div",{style:{zIndex:o},className:k()("".concat(t,"-mask"),n)})}))}var D=n(3429),S=n(4001),N=n(3493),R=n(7410);function I(e,t){var n=null,o=null,r=new R.Z((function(e){var r=(0,i.Z)(e,1)[0].target;if(document.documentElement.contains(r)){var a=r.getBoundingClientRect(),s=a.width,u=a.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 A(e){return"function"!=typeof e?null:e()}function K(e){return"object"===(0,D.Z)(e)&&e?e:null}var V=s().forwardRef((function(e,t){var n=e.children,o=e.disabled,r=e.target,a=e.align,u=e.onAlign,l=e.monitorWindowResize,c=e.monitorBufferTime,p=void 0===c?0:c,f=s().useRef({}),d=s().useRef(),v=s().Children.only(n),m=s().useRef({});m.current.disabled=o,m.current.target=r,m.current.onAlign=u;var h=function(e,t){var n=s().useRef(!1),o=s().useRef(null);function i(){window.clearTimeout(o.current)}return[function e(r){if(n.current&&!0!==r)i(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=m.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var i,r=d.current,s=A(n),u=K(n);f.current.element=s,f.current.point=u;var l=document.activeElement;return s&&(0,S.Z)(s)?i=(0,N.E3)(r,s,a):u&&(i=(0,N.zy)(r,u,a)),function(e,t){e!==document.activeElement&&(0,g.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,r),o&&i&&o(r,i),!0}return!1}())return;n.current=!0,i(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,i()}]}(0,p),y=(0,i.Z)(h,2),b=y[0],w=y[1],Z=s().useRef({cancel:function(){}}),k=s().useRef({cancel:function(){}});s().useEffect((function(){var e,t,n=A(r),o=K(r);d.current!==k.current.element&&(k.current.cancel(),k.current.element=d.current,k.current.cancel=I(d.current,b)),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))||(b(),Z.current.element!==n&&(Z.current.cancel(),Z.current.element=n,Z.current.cancel=I(n,b)))})),s().useEffect((function(){o?w():b()}),[o]);var E=s().useRef(null);return s().useEffect((function(){l?E.current||(E.current=(0,M.Z)(window,"resize",b)):E.current&&(E.current.remove(),E.current=null)}),[l]),s().useEffect((function(){return function(){Z.current.cancel(),k.current.cancel(),E.current&&E.current.remove(),w()}}),[]),s().useImperativeHandle(t,(function(){return{forceAlign:function(){return b(!0)}}})),s().isValidElement(v)&&(v=s().cloneElement(v,{ref:(0,C.sQ)(v.ref,d)})),v}));V.displayName="Align";var H=V,L=n(5450),F=n.n(L),j=n(7938),z=["measure","align",null,"motion"],B=a.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,s=e.style,c=e.children,p=e.zIndex,f=e.stretch,d=e.destroyPopupOnHide,v=e.forceRender,m=e.align,h=e.point,g=e.getRootDomNode,b=e.getClassNameFromAlign,C=e.onAlign,M=e.onMouseEnter,w=e.onMouseLeave,Z=e.onMouseDown,E=e.onTouchStart,T=(0,a.useRef)(),O=(0,a.useRef)(),D=(0,a.useState)(),S=(0,i.Z)(D,2),N=S[0],R=S[1],I=function(e){var t=a.useState({width:0,height:0}),n=(0,i.Z)(t,2),o=n[0],r=n[1];return[a.useMemo((function(){var t={};if(e){var n=o.width,i=o.height;-1!==e.indexOf("height")&&i?t.height=i:-1!==e.indexOf("minHeight")&&i&&(t.minHeight=i),-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),A=(0,i.Z)(I,2),K=A[0],V=A[1],L=function(e,t){var n=(0,a.useState)(null),o=(0,i.Z)(n,2),r=o[0],s=o[1],u=(0,a.useRef)(),l=(0,a.useRef)(!1);function c(e){l.current||s(e)}function p(){y.Z.cancel(u.current)}return(0,a.useEffect)((function(){c("measure")}),[e]),(0,a.useEffect)((function(){"measure"===r&&(f&&V(g())),r&&(u.current=(0,y.Z)((0,j.Z)(F().mark((function e(){var t,n;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=z.indexOf(r),(n=z[t+1])&&-1!==t&&c(n);case 3:case"end":return e.stop()}}),e)})))))}),[r]),(0,a.useEffect)((function(){return function(){l.current=!0,p()}}),[]),[r,function(e){p(),u.current=(0,y.Z)((function(){c((function(e){switch(r){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),B=(0,i.Z)(L,2),W=B[0],U=B[1],Y=(0,a.useRef)();function _(){var e;null===(e=T.current)||void 0===e||e.forceAlign()}function X(e,t){if("align"===W){var n=b(t);R(n),N!==n?Promise.resolve().then((function(){_()})):U((function(){var e;null===(e=Y.current)||void 0===e||e.call(Y)})),null==C||C(e,t)}}var G=(0,u.Z)({},P(e));function $(){return new Promise((function(e){Y.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=G[e];G[e]=function(e,n){return U(),null==t?void 0:t(e,n)}})),a.useEffect((function(){G.motionName||"motion"!==W||U()}),[G.motionName,W]),a.useImperativeHandle(t,(function(){return{forceAlign:_,getElement:function(){return O.current}}}));var q=(0,u.Z)((0,u.Z)((0,u.Z)({},K),{},{zIndex:p},s),{},{opacity:"motion"!==W&&"stable"!==W&&n?0:void 0,pointerEvents:"stable"===W?void 0:"none"}),Q=!0;!(null==m?void 0:m.points)||"align"!==W&&"stable"!==W||(Q=!1);var J=c;return a.Children.count(c)>1&&(J=a.createElement("div",{className:"".concat(o,"-content")},c)),a.createElement(x.Z,(0,l.Z)({visible:n,ref:O,leavedClassName:"".concat(o,"-hidden")},G,{onAppearPrepare:$,onEnterPrepare:$,removeOnLeave:d,forceRender:v}),(function(e,t){var n=e.className,i=e.style,s=k()(o,r,N,n);return a.createElement(H,{target:h||g,key:"popup",ref:T,monitorWindowResize:!0,disabled:Q,align:m,onAlign:X},a.createElement("div",{ref:t,className:s,onMouseEnter:M,onMouseLeave:w,onMouseDownCapture:Z,onTouchStartCapture:E,style:(0,u.Z)((0,u.Z)({},i),q)},J))}))}));B.displayName="PopupInner";var W=B,U=a.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,i=e.zIndex,r=e.children,s=e.mobile,c=(s=void 0===s?{}:s).popupClassName,p=s.popupStyle,f=s.popupMotion,d=void 0===f?{}:f,v=s.popupRender,m=a.useRef();a.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return m.current}}}));var h=(0,u.Z)({zIndex:i},p),y=r;return a.Children.count(r)>1&&(y=a.createElement("div",{className:"".concat(n,"-content")},r)),v&&(y=v(y)),a.createElement(x.Z,(0,l.Z)({visible:o,ref:m,removeOnLeave:!0},d),(function(e,t){var o=e.className,i=e.style,r=k()(n,c,o);return a.createElement("div",{ref:t,className:r,style:(0,u.Z)((0,u.Z)({},i),h)},y)}))}));U.displayName="MobilePopupInner";var Y=U,_=a.forwardRef((function(e,t){var n=e.visible,o=e.mobile,s=(0,r.Z)(e,["visible","mobile"]),c=(0,a.useState)(n),p=(0,i.Z)(c,2),f=p[0],d=p[1],v=(0,a.useState)(!1),m=(0,i.Z)(v,2),h=m[0],y=m[1],g=(0,u.Z)((0,u.Z)({},s),{},{visible:f});(0,a.useEffect)((function(){d(n),n&&o&&y((0,T.Z)())}),[n,o]);var b=h?a.createElement(Y,(0,l.Z)({},g,{mobile:o,ref:t})):a.createElement(W,(0,l.Z)({},g,{ref:t}));return a.createElement("div",null,a.createElement(O,g),b)}));_.displayName="Popup";var X=_,G=a.createContext(null);function $(){}var q,Q,J=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],ee=(q=w.Z,Q=function(e){(0,d.Z)(n,e);var t=(0,v.Z)(n);function n(e){var o,i;return(0,c.Z)(this,n),(o=t.call(this,e)).popupRef=a.createRef(),o.triggerRef=a.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,g.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(),i=o.getPopupDomNode();(0,g.Z)(n,t)&&!o.isContextMenuOnly()||(0,g.Z)(i,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,b.Z)(o.triggerRef.current);if(t)return t}catch(e){}return h().findDOMNode((0,f.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,i=n.popupPlacement,r=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return i&&r&&t.push(function(e,t,n,o){for(var i=n.points,r=Object.keys(e),a=0;a<r.length;a+=1){var s=r[a];if(E(e[s].points,i,o))return"".concat(t,"-placement-").concat(s)}return""}(r,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,r=e.onPopupAlign,s=e.popupMotion,u=e.popupAnimation,c=e.popupTransitionName,p=e.popupStyle,f=e.mask,d=e.maskAnimation,v=e.maskTransitionName,m=e.maskMotion,h=e.zIndex,y=e.popup,g=e.stretch,b=e.alignPoint,C=e.mobile,M=e.forceRender,w=o.state,Z=w.popupVisible,k=w.point,E=o.getPopupAlign(),T={};return o.isMouseEnterToShow()&&(T.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(T.onMouseLeave=o.onPopupMouseLeave),T.onMouseDown=o.onPopupMouseDown,T.onTouchStart=o.onPopupMouseDown,a.createElement(X,(0,l.Z)({prefixCls:t,destroyPopupOnHide:n,visible:Z,point:b&&k,className:i,align:E,onAlign:r,animation:u,getClassNameFromAlign:o.getPopupClassNameFromAlign},T,{stretch:g,getRootDomNode:o.getRootDomNode,style:p,mask:f,zIndex:h,transitionName:c,maskAnimation:d,maskTransitionName:v,maskMotion:m,ref:o.popupRef,motion:s,mobile:C,forceRender:M}),"function"==typeof y?y():y)},o.attachParent=function(e){y.Z.cancel(o.attachId);var t,n=o.props,i=n.getPopupContainer,r=n.getDocument,a=o.getRootDomNode();i?(a||0===i.length)&&(t=i(a)):t=r(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,y.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)},i="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:i,popupVisible:i},J.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,M.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,M.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,M.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,M.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),y.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,u.Z)((0,u.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,i=1e3*t;if(this.clearDelayTimer(),i){var r=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,r),o.clearDelayTimer()}),i)}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,i=t.alignPoint,r=t.className,s=t.autoDestroy,l=a.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,i&&(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=k()(l&&l.props&&l.props.className,r);p&&(c.className=p);var f=(0,u.Z)({},c);(0,C.Yr)(l)&&(f.ref=(0,C.sQ)(this.triggerRef,l.ref));var d,v=a.cloneElement(l,f);return(e||this.popupRef.current||o)&&(d=a.createElement(q,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&s&&(d=null),a.createElement(G.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}(a.Component),Q.contextType=G,Q.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:$,afterPopupVisibleChange:$,onPopupAlign:$,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},Q),te={adjustX:1,adjustY:1},ne=[0,0],oe={topLeft:{points:["bl","tl"],overflow:te,offset:[0,-4],targetOffset:ne},topCenter:{points:["bc","tc"],overflow:te,offset:[0,-4],targetOffset:ne},topRight:{points:["br","tr"],overflow:te,offset:[0,-4],targetOffset:ne},bottomLeft:{points:["tl","bl"],overflow:te,offset:[0,4],targetOffset:ne},bottomCenter:{points:["tc","bc"],overflow:te,offset:[0,4],targetOffset:ne},bottomRight:{points:["tr","br"],overflow:te,offset:[0,4],targetOffset:ne}},ie=a.forwardRef((function(e,t){var n=e.arrow,s=void 0!==n&&n,u=e.prefixCls,l=void 0===u?"rc-dropdown":u,c=e.transitionName,p=e.animation,f=e.align,d=e.placement,v=void 0===d?"bottomLeft":d,m=e.placements,h=void 0===m?oe:m,y=e.getPopupContainer,g=e.showAction,b=e.hideAction,C=e.overlayClassName,M=e.overlayStyle,w=e.visible,Z=e.trigger,E=void 0===Z?["hover"]:Z,T=(0,r.Z)(e,["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),x=a.useState(),P=(0,i.Z)(x,2),O=P[0],D=P[1],S="visible"in e?w:O,N=a.useRef(null);a.useImperativeHandle(t,(function(){return N.current}));var R,I,A,K,V,H,L=function(){var t=e.overlay;return"function"==typeof t?t():t},F=function(t){var n=e.onOverlayClick,o=L().props;D(!1),n&&n(t),o.onClick&&o.onClick(t)},j=function(){var e=L(),t={prefixCls:"".concat(l,"-menu"),onClick:F};return"string"==typeof e.type&&delete t.prefixCls,a.createElement(a.Fragment,null,s&&a.createElement("div",{className:"".concat(l,"-arrow")}),a.cloneElement(e,t))},z=b;return z||-1===E.indexOf("contextMenu")||(z=["click"]),a.createElement(ee,Object.assign({},T,{prefixCls:l,ref:N,popupClassName:k()(C,(0,o.Z)({},"".concat(l,"-show-arrow"),s)),popupStyle:M,builtinPlacements:h,action:E,showAction:g,hideAction:z||[],popupPlacement:v,popupAlign:f,popupTransitionName:c,popupAnimation:p,popupVisible:S,stretch:(V=e.minOverlayWidthMatchTrigger,H=e.alignPoint,("minOverlayWidthMatchTrigger"in e?V:!H)?"minWidth":""),popup:"function"==typeof e.overlay?j:j(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;D(t),"function"==typeof n&&n(t)},getPopupContainer:y}),(A=(I=e.children).props?I.props:{},K=k()(A.className,void 0!==(R=e.openClassName)?R:"".concat(l,"-open")),O&&I?a.cloneElement(I,{className:K}):I))}))},1987:function(e,t,n){"use strict";n.d(t,{iz:function(){return yt},ck:function(){return dt},BW:function(){return mt},sN:function(){return dt},Wd:function(){return Qe},ZP:function(){return gt}});var o,i=n(2711),r=n(6762),a=n(3340),s=n(5558),u=n(3841),l=n(5952),c=n(7363),p=n.n(c),f=(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},o(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),d=c.createContext(null),v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f(t,e),t.prototype.render=function(){return c.createElement(d.Provider,{value:this.props.store},this.props.children)},t}(c.Component),m=n(5724),h=n.n(m),y=n(9239),g=n.n(y),b=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),C=function(){return C=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},C.apply(this,arguments)},M=function(){return{}};function w(e,t){void 0===t&&(t={});var n=!!e,o=e||M;return function(i){var r=function(t){function r(e,n){var i=t.call(this,e,n)||this;return i.unsubscribe=null,i.handleChange=function(){if(i.unsubscribe){var e=o(i.store.getState(),i.props);i.setState({subscribed:e})}},i.store=i.context,i.state={subscribed:o(i.store.getState(),e),store:i.store,props:e},i}return b(r,t),r.getDerivedStateFromProps=function(t,n){return e&&2===e.length&&t!==n.props?{subscribed:o(n.store.getState(),t),props:t}:{props:t}},r.prototype.componentDidMount=function(){this.trySubscribe()},r.prototype.componentWillUnmount=function(){this.tryUnsubscribe()},r.prototype.shouldComponentUpdate=function(e,t){return!h()(this.props,e)||!h()(this.state.subscribed,t.subscribed)},r.prototype.trySubscribe=function(){n&&(this.unsubscribe=this.store.subscribe(this.handleChange),this.handleChange())},r.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},r.prototype.render=function(){var e=C(C(C({},this.props),this.state.subscribed),{store:this.store});return c.createElement(i,C({},e,{ref:this.props.miniStoreForwardedRef}))},r.displayName="Connect("+function(e){return e.displayName||e.name||"Component"}(i)+")",r.contextType=d,r}(c.Component);if(t.forwardRef){var a=c.forwardRef((function(e,t){return c.createElement(r,C({},e,{miniStoreForwardedRef:t}))}));return g()(a,i)}return g()(r,i)}}var Z=function(){return Z=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Z.apply(this,arguments)},k=n(2465),E=n(4741),T=n(63),x=n(5065);function P(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t<e.length;t++)e[t]&&e[t].apply&&e[t].apply(this,arguments)}}var O=n(4237),D=n(2286),S=n.n(D),N=n(3429),R=n(7228),I=/iPhone/i,A=/iPod/i,K=/iPad/i,V=/\bAndroid(?:.+)Mobile\b/i,H=/Android/i,L=/\bAndroid(?:.+)SD4930UR\b/i,F=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,j=/Windows Phone/i,z=/\bWindows(?:.+)ARM\b/i,B=/BlackBerry/i,W=/BB10/i,U=/Opera Mini/i,Y=/\b(CriOS|Chrome)(?:.+)Mobile/i,_=/Mobile(?:.+)Firefox\b/i;function X(e,t){return e.test(t)}function G(e){var t=e||("undefined"!=typeof navigator?navigator.userAgent:""),n=t.split("[FBAN");if(void 0!==n[1]){var o=n;t=(0,R.Z)(o,1)[0]}if(void 0!==(n=t.split("Twitter"))[1]){var i=n;t=(0,R.Z)(i,1)[0]}var r={apple:{phone:X(I,t)&&!X(j,t),ipod:X(A,t),tablet:!X(I,t)&&X(K,t)&&!X(j,t),device:(X(I,t)||X(A,t)||X(K,t))&&!X(j,t)},amazon:{phone:X(L,t),tablet:!X(L,t)&&X(F,t),device:X(L,t)||X(F,t)},android:{phone:!X(j,t)&&X(L,t)||!X(j,t)&&X(V,t),tablet:!X(j,t)&&!X(L,t)&&!X(V,t)&&(X(F,t)||X(H,t)),device:!X(j,t)&&(X(L,t)||X(F,t)||X(V,t)||X(H,t))||X(/\bokhttp\b/i,t)},windows:{phone:X(j,t),tablet:X(z,t),device:X(j,t)||X(z,t)},other:{blackberry:X(B,t),blackberry10:X(W,t),opera:X(U,t),firefox:X(_,t),chrome:X(Y,t),device:X(B,t)||X(W,t)||X(U,t)||X(_,t)||X(Y,t)},any:null,phone:null,tablet:null};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r}var $=(0,i.Z)((0,i.Z)({},G()),{},{isMobile:G});function q(){}function Q(e,t,n){var o=t||"";return e.key||"".concat(o,"item_").concat(n)}function J(e){return"".concat(e,"-menu-")}function ee(e,t){var n=-1;c.Children.forEach(e,(function(e){n+=1,e&&e.type&&e.type.isMenuItemGroup?c.Children.forEach(e.props.children,(function(e){t(e,n+=1)})):t(e,n)}))}function te(e,t,n){e&&!n.find&&c.Children.forEach(e,(function(e){if(e){var o=e.type;if(!o||!(o.isSubMenu||o.isMenuItem||o.isMenuItemGroup))return;-1!==t.indexOf(e.key)?n.find=!0:e.props.children&&te(e.props.children,t,n)}}))}var ne=["defaultSelectedKeys","selectedKeys","defaultOpenKeys","openKeys","mode","getPopupContainer","onSelect","onDeselect","onDestroy","openTransitionName","openAnimation","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","triggerSubMenuAction","level","selectable","multiple","onOpenChange","visible","focusable","defaultActiveFirst","prefixCls","inlineIndent","parentMenu","title","rootPrefixCls","eventKey","active","onItemHover","onTitleMouseEnter","onTitleMouseLeave","onTitleClick","popupAlign","popupOffset","isOpen","renderMenuItem","manualRef","subMenuKey","disabled","index","isSelected","store","activeKey","builtinPlacements","overflowedIndicator","motion","attribute","value","popupClassName","inlineCollapsed","menu","theme","itemIcon","expandIcon"],oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e&&"function"==typeof e.getBoundingClientRect&&e.getBoundingClientRect().width;if(n){if(t){var o=getComputedStyle(e),i=o.marginLeft,r=o.marginRight;n+=+i.replace("px","")+ +r.replace("px","")}n=+n.toFixed(6)}return n||0},ie=function(e,t,n){e&&"object"===(0,N.Z)(e.style)&&(e.style[t]=n)},re=n(7870),ae=n(4115),se=n(1533),ue=n.n(se),le=n(7410),ce=n(6871),pe=n(7384),fe=n(8369),de=n(5643),ve=n(5905),me=n(505);function he(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var ye=n(4511),ge=n(9064);function be(e){var t=e.prefixCls,n=e.motion,o=e.animation,i=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:i?{motionName:i}:null)}function Ce(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,r=e.mask,a=e.maskMotion,s=e.maskAnimation,u=e.maskTransitionName;if(!r)return null;var l={};return(a||u||s)&&(l=(0,i.Z)({motionAppear:!0},be({motion:a,prefixCls:t,transitionName:u,animation:s}))),c.createElement(ge.Z,(0,E.Z)({},l,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return c.createElement("div",{style:{zIndex:o},className:S()("".concat(t,"-mask"),n)})}))}var Me=n(4001),we=n(3493);function Ze(e,t){var n=null,o=null,i=new le.Z((function(e){var i=(0,R.Z)(e,1)[0].target;if(document.documentElement.contains(i)){var r=i.getBoundingClientRect(),a=r.width,s=r.height,u=Math.floor(a),l=Math.floor(s);n===u&&o===l||Promise.resolve().then((function(){t({width:u,height:l})})),n=u,o=l}}));return e&&i.observe(e),function(){i.disconnect()}}function ke(e){return"function"!=typeof e?null:e()}function Ee(e){return"object"===(0,N.Z)(e)&&e?e:null}var Te=p().forwardRef((function(e,t){var n=e.children,o=e.disabled,i=e.target,r=e.align,a=e.onAlign,s=e.monitorWindowResize,u=e.monitorBufferTime,l=void 0===u?0:u,c=p().useRef({}),f=p().useRef(),d=p().Children.only(n),v=p().useRef({});v.current.disabled=o,v.current.target=i,v.current.onAlign=a;var m=function(e,t){var n=p().useRef(!1),o=p().useRef(null);function i(){window.clearTimeout(o.current)}return[function e(a){if(n.current&&!0!==a)i(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=v.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var i,a=f.current,s=ke(n),u=Ee(n);c.current.element=s,c.current.point=u;var l=document.activeElement;return s&&(0,Me.Z)(s)?i=(0,we.E3)(a,s,r):u&&(i=(0,we.zy)(a,u,r)),function(e,t){e!==document.activeElement&&(0,pe.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,a),o&&i&&o(a,i),!0}return!1}())return;n.current=!0,i(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,i()}]}(0,l),h=(0,R.Z)(m,2),y=h[0],g=h[1],b=p().useRef({cancel:function(){}}),C=p().useRef({cancel:function(){}});p().useEffect((function(){var e,t,n=ke(i),o=Ee(i);f.current!==C.current.element&&(C.current.cancel(),C.current.element=f.current,C.current.cancel=Ze(f.current,y)),c.current.element===n&&((e=c.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(),b.current.element!==n&&(b.current.cancel(),b.current.element=n,b.current.cancel=Ze(n,y)))})),p().useEffect((function(){o?g():y()}),[o]);var M=p().useRef(null);return p().useEffect((function(){s?M.current||(M.current=(0,ve.Z)(window,"resize",y)):M.current&&(M.current.remove(),M.current=null)}),[s]),p().useEffect((function(){return function(){b.current.cancel(),C.current.cancel(),M.current&&M.current.remove(),g()}}),[]),p().useImperativeHandle(t,(function(){return{forceAlign:function(){return y(!0)}}})),p().isValidElement(d)&&(d=p().cloneElement(d,{ref:(0,de.sQ)(d.ref,f)})),d}));Te.displayName="Align";var xe=Te,Pe=n(5450),Oe=n.n(Pe),De=n(7938),Se=["measure","align",null,"motion"],Ne=c.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,a=e.style,s=e.children,u=e.zIndex,l=e.stretch,p=e.destroyPopupOnHide,f=e.forceRender,d=e.align,v=e.point,m=e.getRootDomNode,h=e.getClassNameFromAlign,y=e.onAlign,g=e.onMouseEnter,b=e.onMouseLeave,C=e.onMouseDown,M=e.onTouchStart,w=(0,c.useRef)(),Z=(0,c.useRef)(),k=(0,c.useState)(),T=(0,R.Z)(k,2),x=T[0],P=T[1],O=function(e){var t=c.useState({width:0,height:0}),n=(0,R.Z)(t,2),o=n[0],i=n[1];return[c.useMemo((function(){var t={};if(e){var n=o.width,i=o.height;-1!==e.indexOf("height")&&i?t.height=i:-1!==e.indexOf("minHeight")&&i&&(t.minHeight=i),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,o]),function(e){i({width:e.offsetWidth,height:e.offsetHeight})}]}(l),D=(0,R.Z)(O,2),N=D[0],I=D[1],A=function(e,t){var n=(0,c.useState)(null),o=(0,R.Z)(n,2),i=o[0],r=o[1],a=(0,c.useRef)(),s=(0,c.useRef)(!1);function u(e){s.current||r(e)}function p(){ce.Z.cancel(a.current)}return(0,c.useEffect)((function(){u("measure")}),[e]),(0,c.useEffect)((function(){"measure"===i&&(l&&I(m())),i&&(a.current=(0,ce.Z)((0,De.Z)(Oe().mark((function e(){var t,n;return Oe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=Se.indexOf(i),(n=Se[t+1])&&-1!==t&&u(n);case 3:case"end":return e.stop()}}),e)})))))}),[i]),(0,c.useEffect)((function(){return function(){s.current=!0,p()}}),[]),[i,function(e){p(),a.current=(0,ce.Z)((function(){u((function(e){switch(i){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),K=(0,R.Z)(A,2),V=K[0],H=K[1],L=(0,c.useRef)();function F(){var e;null===(e=w.current)||void 0===e||e.forceAlign()}function j(e,t){if("align"===V){var n=h(t);P(n),x!==n?Promise.resolve().then((function(){F()})):H((function(){var e;null===(e=L.current)||void 0===e||e.call(L)})),null==y||y(e,t)}}var z=(0,i.Z)({},be(e));function B(){return new Promise((function(e){L.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=z[e];z[e]=function(e,n){return H(),null==t?void 0:t(e,n)}})),c.useEffect((function(){z.motionName||"motion"!==V||H()}),[z.motionName,V]),c.useImperativeHandle(t,(function(){return{forceAlign:F,getElement:function(){return Z.current}}}));var W=(0,i.Z)((0,i.Z)((0,i.Z)({},N),{},{zIndex:u},a),{},{opacity:"motion"!==V&&"stable"!==V&&n?0:void 0,pointerEvents:"stable"===V?void 0:"none"}),U=!0;!(null==d?void 0:d.points)||"align"!==V&&"stable"!==V||(U=!1);var Y=s;return c.Children.count(s)>1&&(Y=c.createElement("div",{className:"".concat(o,"-content")},s)),c.createElement(ge.Z,(0,E.Z)({visible:n,ref:Z,leavedClassName:"".concat(o,"-hidden")},z,{onAppearPrepare:B,onEnterPrepare:B,removeOnLeave:p,forceRender:f}),(function(e,t){var n=e.className,a=e.style,s=S()(o,r,x,n);return c.createElement(xe,{target:v||m,key:"popup",ref:w,monitorWindowResize:!0,disabled:U,align:d,onAlign:j},c.createElement("div",{ref:t,className:s,onMouseEnter:g,onMouseLeave:b,onMouseDownCapture:C,onTouchStartCapture:M,style:(0,i.Z)((0,i.Z)({},a),W)},Y))}))}));Ne.displayName="PopupInner";var Re=Ne,Ie=c.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,r=e.zIndex,a=e.children,s=e.mobile,u=(s=void 0===s?{}:s).popupClassName,l=s.popupStyle,p=s.popupMotion,f=void 0===p?{}:p,d=s.popupRender,v=c.useRef();c.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return v.current}}}));var m=(0,i.Z)({zIndex:r},l),h=a;return c.Children.count(a)>1&&(h=c.createElement("div",{className:"".concat(n,"-content")},a)),d&&(h=d(h)),c.createElement(ge.Z,(0,E.Z)({visible:o,ref:v,removeOnLeave:!0},f),(function(e,t){var o=e.className,r=e.style,a=S()(n,u,o);return c.createElement("div",{ref:t,className:a,style:(0,i.Z)((0,i.Z)({},r),m)},h)}))}));Ie.displayName="MobilePopupInner";var Ae=Ie,Ke=c.forwardRef((function(e,t){var n=e.visible,o=e.mobile,r=(0,ae.Z)(e,["visible","mobile"]),a=(0,c.useState)(n),s=(0,R.Z)(a,2),u=s[0],l=s[1],p=(0,c.useState)(!1),f=(0,R.Z)(p,2),d=f[0],v=f[1],m=(0,i.Z)((0,i.Z)({},r),{},{visible:u});(0,c.useEffect)((function(){l(n),n&&o&&v((0,ye.Z)())}),[n,o]);var h=d?c.createElement(Ae,(0,E.Z)({},m,{mobile:o,ref:t})):c.createElement(Re,(0,E.Z)({},m,{ref:t}));return c.createElement("div",null,c.createElement(Ce,m),h)}));Ke.displayName="Popup";var Ve=Ke,He=c.createContext(null);function Le(){}var Fe,je,ze=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],Be=(Fe=me.Z,je=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o,i;return(0,r.Z)(this,n),(o=t.call(this,e)).popupRef=c.createRef(),o.triggerRef=c.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,pe.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(),i=o.getPopupDomNode();(0,pe.Z)(n,t)&&!o.isContextMenuOnly()||(0,pe.Z)(i,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,fe.Z)(o.triggerRef.current);if(t)return t}catch(e){}return ue().findDOMNode((0,s.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,i=n.popupPlacement,r=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return i&&r&&t.push(function(e,t,n,o){for(var i=n.points,r=Object.keys(e),a=0;a<r.length;a+=1){var s=r[a];if(he(e[s].points,i,o))return"".concat(t,"-placement-").concat(s)}return""}(r,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,r=e.onPopupAlign,a=e.popupMotion,s=e.popupAnimation,u=e.popupTransitionName,l=e.popupStyle,p=e.mask,f=e.maskAnimation,d=e.maskTransitionName,v=e.maskMotion,m=e.zIndex,h=e.popup,y=e.stretch,g=e.alignPoint,b=e.mobile,C=e.forceRender,M=o.state,w=M.popupVisible,Z=M.point,k=o.getPopupAlign(),T={};return o.isMouseEnterToShow()&&(T.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(T.onMouseLeave=o.onPopupMouseLeave),T.onMouseDown=o.onPopupMouseDown,T.onTouchStart=o.onPopupMouseDown,c.createElement(Ve,(0,E.Z)({prefixCls:t,destroyPopupOnHide:n,visible:w,point:g&&Z,className:i,align:k,onAlign:r,animation:s,getClassNameFromAlign:o.getPopupClassNameFromAlign},T,{stretch:y,getRootDomNode:o.getRootDomNode,style:l,mask:p,zIndex:m,transitionName:u,maskAnimation:f,maskTransitionName:d,maskMotion:v,ref:o.popupRef,motion:a,mobile:b,forceRender:C}),"function"==typeof h?h():h)},o.attachParent=function(e){ce.Z.cancel(o.attachId);var t,n=o.props,i=n.getPopupContainer,r=n.getDocument,a=o.getRootDomNode();i?(a||0===i.length)&&(t=i(a)):t=r(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,ce.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)},i="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:i,popupVisible:i},ze.forEach((function(e){o["fire".concat(e)]=function(t){o.fireEvents(e,t)}})),o}return(0,a.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,ve.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,ve.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,ve.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,ve.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),ce.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,i.Z)((0,i.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,i=1e3*t;if(this.clearDelayTimer(),i){var r=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,r),o.clearDelayTimer()}),i)}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,a=t.className,s=t.autoDestroy,u=c.Children.only(n),l={key:"trigger"};this.isContextMenuToShow()?l.onContextMenu=this.onContextMenu:l.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMouseDown=this.onMouseDown,l.onTouchStart=this.onTouchStart):(l.onClick=this.createTwoChains("onClick"),l.onMouseDown=this.createTwoChains("onMouseDown"),l.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(l.onMouseEnter=this.onMouseEnter,r&&(l.onMouseMove=this.onMouseMove)):l.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?l.onMouseLeave=this.onMouseLeave:l.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=this.createTwoChains("onBlur"));var p=S()(u&&u.props&&u.props.className,a);p&&(l.className=p);var f=(0,i.Z)({},l);(0,de.Yr)(u)&&(f.ref=(0,de.sQ)(this.triggerRef,u.ref));var d,v=c.cloneElement(u,f);return(e||this.popupRef.current||o)&&(d=c.createElement(Fe,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&s&&(d=null),c.createElement(He.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}(c.Component),je.contextType=He,je.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:Le,afterPopupVisibleChange:Le,onPopupAlign:Le,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},je),We={adjustX:1,adjustY:1},Ue={topLeft:{points:["bl","tl"],overflow:We,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:We,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:We,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:We,offset:[4,0]}},Ye={topLeft:{points:["bl","tl"],overflow:We,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:We,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:We,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:We,offset:[4,0]}},_e=0,Xe={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},Ge=function(e,t,n){var o=J(t),r=e.getState();e.setState({defaultActiveFirst:(0,i.Z)((0,i.Z)({},r.defaultActiveFirst),{},(0,T.Z)({},o,n))})},$e=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;(0,r.Z)(this,n),(o=t.call(this,e)).onDestroy=function(e){o.props.onDestroy(e)},o.onKeyDown=function(e){var t=e.keyCode,n=o.menuInstance,i=o.props.store,r=o.getVisible();if(t===x.Z.ENTER)return o.onTitleClick(e),Ge(i,o.props.eventKey,!0),!0;if(t===x.Z.RIGHT)return r?n.onKeyDown(e):(o.triggerOpenChange(!0),Ge(i,o.props.eventKey,!0)),!0;if(t===x.Z.LEFT){var a;if(!r)return;return(a=n.onKeyDown(e))||(o.triggerOpenChange(!1),a=!0),a}return!r||t!==x.Z.UP&&t!==x.Z.DOWN?void 0:n.onKeyDown(e)},o.onOpenChange=function(e){o.props.onOpenChange(e)},o.onPopupVisibleChange=function(e){o.triggerOpenChange(e,e?"mouseenter":"mouseleave")},o.onMouseEnter=function(e){var t=o.props,n=t.eventKey,i=t.onMouseEnter,r=t.store;Ge(r,o.props.eventKey,!1),i({key:n,domEvent:e})},o.onMouseLeave=function(e){var t=o.props,n=t.parentMenu,i=t.eventKey,r=t.onMouseLeave;n.subMenuInstance=(0,s.Z)(o),r({key:i,domEvent:e})},o.onTitleMouseEnter=function(e){var t=o.props,n=t.eventKey,i=t.onItemHover,r=t.onTitleMouseEnter;i({key:n,hover:!0}),r({key:n,domEvent:e})},o.onTitleMouseLeave=function(e){var t=o.props,n=t.parentMenu,i=t.eventKey,r=t.onItemHover,a=t.onTitleMouseLeave;n.subMenuInstance=(0,s.Z)(o),r({key:i,hover:!1}),a({key:i,domEvent:e})},o.onTitleClick=function(e){var t=(0,s.Z)(o).props;t.onTitleClick({key:t.eventKey,domEvent:e}),"hover"!==t.triggerSubMenuAction&&(o.triggerOpenChange(!o.getVisible(),"click"),Ge(t.store,o.props.eventKey,!1))},o.onSubMenuClick=function(e){"function"==typeof o.props.onClick&&o.props.onClick(o.addKeyPath(e))},o.onSelect=function(e){o.props.onSelect(e)},o.onDeselect=function(e){o.props.onDeselect(e)},o.getPrefixCls=function(){return"".concat(o.props.rootPrefixCls,"-submenu")},o.getActiveClassName=function(){return"".concat(o.getPrefixCls(),"-active")},o.getDisabledClassName=function(){return"".concat(o.getPrefixCls(),"-disabled")},o.getSelectedClassName=function(){return"".concat(o.getPrefixCls(),"-selected")},o.getOpenClassName=function(){return"".concat(o.props.rootPrefixCls,"-submenu-open")},o.getVisible=function(){return o.state.isOpen},o.getMode=function(){return o.state.mode},o.saveMenuInstance=function(e){o.menuInstance=e},o.addKeyPath=function(e){return(0,i.Z)((0,i.Z)({},e),{},{keyPath:(e.keyPath||[]).concat(o.props.eventKey)})},o.triggerOpenChange=function(e,t){var n=o.props.eventKey,i=function(){o.onOpenChange({key:n,item:(0,s.Z)(o),trigger:t,open:e})};"mouseenter"===t?o.mouseenterTimeout=setTimeout((function(){i()}),0):i()},o.isChildrenSelected=function(){var e={find:!1};return te(o.props.children,o.props.selectedKeys,e),e.find},o.isInlineMode=function(){return"inline"===o.getMode()},o.adjustWidth=function(){if(o.subMenuTitle&&o.menuInstance){var e=se.findDOMNode(o.menuInstance);e.offsetWidth>=o.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(o.subMenuTitle.offsetWidth,"px"))}},o.saveSubMenuTitle=function(e){o.subMenuTitle=e},o.getBaseProps=function(){var e=(0,s.Z)(o).props,t=o.getMode();return{mode:"horizontal"===t?"vertical":t,visible:o.getVisible(),level:e.level+1,inlineIndent:e.inlineIndent,focusable:!1,onClick:o.onSubMenuClick,onSelect:o.onSelect,onDeselect:o.onDeselect,onDestroy:o.onDestroy,selectedKeys:e.selectedKeys,eventKey:"".concat(e.eventKey,"-menu-"),openKeys:e.openKeys,motion:e.motion,onOpenChange:o.onOpenChange,subMenuOpenDelay:e.subMenuOpenDelay,parentMenu:(0,s.Z)(o),subMenuCloseDelay:e.subMenuCloseDelay,forceSubMenuRender:e.forceSubMenuRender,triggerSubMenuAction:e.triggerSubMenuAction,builtinPlacements:e.builtinPlacements,defaultActiveFirst:e.store.getState().defaultActiveFirst[J(e.eventKey)],multiple:e.multiple,prefixCls:e.rootPrefixCls,id:o.internalMenuId,manualRef:o.saveMenuInstance,itemIcon:e.itemIcon,expandIcon:e.expandIcon,direction:e.direction}},o.getMotion=function(e,t){var n=(0,s.Z)(o).haveRendered,r=o.props,a=r.motion,u=r.rootPrefixCls;return(0,i.Z)((0,i.Z)({},a),{},{leavedClassName:"".concat(u,"-hidden"),removeOnLeave:!1,motionAppear:n||!t||"inline"!==e})};var a=e.store,u=e.eventKey,l=a.getState().defaultActiveFirst;o.isRootMenu=!1;var c=!1;return l&&(c=l[u]),Ge(a,u,c),o.state={mode:e.mode,isOpen:e.isOpen},o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,o=t.parentMenu,i=t.manualRef,r=t.isOpen,a=function(){e.setState({mode:n,isOpen:r})},s=r!==this.state.isOpen,u=n!==this.state.mode;(u||s)&&(ce.Z.cancel(this.updateStateRaf),u?this.updateStateRaf=(0,ce.Z)(a):a()),i&&i(this),"horizontal"===n&&(null==o?void 0:o.isRootMenu)&&r&&(this.minWidthTimeout=setTimeout((function(){return e.adjustWidth()}),0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout),ce.Z.cancel(this.updateStateRaf)}},{key:"renderPopupMenu",value:function(e,t){var n=this.getBaseProps();return c.createElement(st,Object.assign({},n,{id:this.internalMenuId,className:e,style:t}),this.props.children)}},{key:"renderChildren",value:function(){var e=this,t=this.getBaseProps(),n=t.mode,o=t.visible,i=t.forceSubMenuRender,r=t.direction,a=this.getMotion(n,o);if(this.haveRendered=!0,this.haveOpened=this.haveOpened||o||i,!this.haveOpened)return c.createElement("div",null);var s=S()("".concat(t.prefixCls,"-sub"),(0,T.Z)({},"".concat(t.prefixCls,"-rtl"),"rtl"===r));return this.isInlineMode()?c.createElement(ge.Z,Object.assign({visible:t.visible},a),(function(t){var n=t.className,o=t.style,i=S()(s,n);return e.renderPopupMenu(i,o)})):this.renderPopupMenu(s)}},{key:"render",value:function(){var e,t,n,o=(0,i.Z)({},this.props),r=this.getVisible(),a=this.getPrefixCls(),s=this.isInlineMode(),u=this.getMode(),l=S()(a,"".concat(a,"-").concat(u),(e={},(0,T.Z)(e,o.className,!!o.className),(0,T.Z)(e,this.getOpenClassName(),r),(0,T.Z)(e,this.getActiveClassName(),o.active||r&&!s),(0,T.Z)(e,this.getDisabledClassName(),o.disabled),(0,T.Z)(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(o.eventKey?this.internalMenuId="".concat(o.eventKey,"$Menu"):(_e+=1,this.internalMenuId="$__$".concat(_e,"$Menu")));var p={},f={},d={};o.disabled||(p={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},f={onClick:this.onTitleClick},d={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var v={},m="rtl"===o.direction;s&&(m?v.paddingRight=o.inlineIndent*o.level:v.paddingLeft=o.inlineIndent*o.level);var h={};this.getVisible()&&(h={"aria-owns":this.internalMenuId});var y=null;"horizontal"!==u&&(y=this.props.expandIcon,"function"==typeof this.props.expandIcon&&(y=c.createElement(this.props.expandIcon,(0,i.Z)({},this.props))));var g=c.createElement("div",Object.assign({ref:this.saveSubMenuTitle,style:v,className:"".concat(a,"-title"),role:"button"},d,f,{"aria-expanded":r},h,{"aria-haspopup":"true",title:"string"==typeof o.title?o.title:void 0}),o.title,y||c.createElement("i",{className:"".concat(a,"-arrow")})),b=this.renderChildren(),C=(null===(t=o.parentMenu)||void 0===t?void 0:t.isRootMenu)?o.parentMenu.props.getPopupContainer:function(e){return e.parentNode},M=Xe[u],w=o.popupOffset?{offset:o.popupOffset}:{},Z=S()((n={},(0,T.Z)(n,o.popupClassName,o.popupClassName&&!s),(0,T.Z)(n,"".concat(a,"-rtl"),m),n)),k=o.disabled,E=o.triggerSubMenuAction,x=o.subMenuOpenDelay,P=o.forceSubMenuRender,O=o.subMenuCloseDelay,D=o.builtinPlacements;ne.forEach((function(e){return delete o[e]})),delete o.onClick;var N=m?Object.assign({},Ye,D):Object.assign({},Ue,D);delete o.direction;var R=this.getBaseProps(),I=s?null:this.getMotion(R.mode,R.visible);return c.createElement("li",Object.assign({},o,p,{className:l,role:"menuitem"}),c.createElement(Be,{prefixCls:a,popupClassName:S()("".concat(a,"-popup"),Z),getPopupContainer:C,builtinPlacements:N,popupPlacement:M,popupVisible:!s&&r,popupAlign:w,popup:s?null:b,action:k||s?[]:[E],mouseEnterDelay:x,mouseLeaveDelay:O,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:P,popupMotion:I},g),s?b:null)}}]),n}(c.Component);$e.defaultProps={onMouseEnter:q,onMouseLeave:q,onTitleMouseEnter:q,onTitleMouseLeave:q,onTitleClick:q,manualRef:q,mode:"vertical",title:""};var qe=w((function(e,t){var n=e.openKeys,o=e.activeKey,i=e.selectedKeys,r=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(r)>-1,active:o[a]===r,selectedKeys:i}}))($e);qe.isSubMenu=!0;var Qe=qe,Je="menuitem-overflowed",et=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).resizeObserver=null,e.mutationObserver=null,e.originalTotalWidth=0,e.overflowedItems=[],e.menuItemSizes=[],e.cancelFrameId=null,e.state={lastVisibleIndex:void 0},e.getMenuItemNodes=function(){var t=e.props.prefixCls,n=se.findDOMNode((0,s.Z)(e));return n?[].slice.call(n.children).filter((function(e){return e.className.split(" ").indexOf("".concat(t,"-overflowed-submenu"))<0})):[]},e.getOverflowedSubMenuItem=function(t,n,o){var r=e.props,a=r.overflowedIndicator,s=r.level,u=r.mode,l=r.prefixCls,p=r.theme;if(1!==s||"horizontal"!==u)return null;var f=e.props.children[0].props,d=(f.children,f.title,f.style),v=(0,ae.Z)(f,["children","title","style"]),m=(0,i.Z)({},d),h="".concat(t,"-overflowed-indicator"),y="".concat(t,"-overflowed-indicator");0===n.length&&!0!==o?m=(0,i.Z)((0,i.Z)({},m),{},{display:"none"}):o&&(m=(0,i.Z)((0,i.Z)({},m),{},{visibility:"hidden",position:"absolute"}),h="".concat(h,"-placeholder"),y="".concat(y,"-placeholder"));var g=p?"".concat(l,"-").concat(p):"",b={};return ne.forEach((function(e){void 0!==v[e]&&(b[e]=v[e])})),c.createElement(Qe,Object.assign({title:a,className:"".concat(l,"-overflowed-submenu"),popupClassName:g},b,{key:h,eventKey:y,disabled:!1,style:m}),n)},e.setChildrenWidthAndResize=function(){if("horizontal"===e.props.mode){var t=se.findDOMNode((0,s.Z)(e));if(t){var n=t.children;if(n&&0!==n.length){var o=t.children[n.length-1];ie(o,"display","inline-block");var i=e.getMenuItemNodes(),r=i.filter((function(e){return e.className.split(" ").indexOf(Je)>=0}));r.forEach((function(e){ie(e,"display","inline-block")})),e.menuItemSizes=i.map((function(e){return oe(e,!0)})),r.forEach((function(e){ie(e,"display","none")})),e.overflowedIndicatorWidth=oe(t.children[t.children.length-1],!0),e.originalTotalWidth=e.menuItemSizes.reduce((function(e,t){return e+t}),0),e.handleResize(),ie(o,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=se.findDOMNode((0,s.Z)(e));if(t){var n=oe(t);e.overflowedItems=[];var o,i=0;e.originalTotalWidth>n+.5&&(o=-1,e.menuItemSizes.forEach((function(t){(i+=t)+e.overflowedIndicatorWidth<=n&&(o+=1)}))),e.setState({lastVisibleIndex:o})}}},e}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=se.findDOMNode(this);if(!t)return;this.resizeObserver=new le.Z((function(t){t.forEach((function(){var t=e.cancelFrameId;cancelAnimationFrame(t),e.cancelFrameId=requestAnimationFrame(e.setChildrenWidthAndResize)}))})),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver((function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),e.setChildrenWidthAndResize()})),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect(),cancelAnimationFrame(this.cancelFrameId)}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce((function(o,i,r){var a=i;if("horizontal"===t.props.mode){var s=t.getOverflowedSubMenuItem(i.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(r>n&&(a=c.cloneElement(i,{style:{display:"none"},eventKey:"".concat(i.props.eventKey,"-hidden"),className:"".concat(Je)})),r===n+1&&(t.overflowedItems=e.slice(n+1).map((function(e){return c.cloneElement(e,{key:e.props.eventKey,mode:"vertical-left"})})),s=t.getOverflowedSubMenuItem(i.props.eventKey,t.overflowedItems)));var u=[].concat((0,re.Z)(o),[s,a]);return r===e.length-1&&u.push(t.getOverflowedSubMenuItem(i.props.eventKey,[],!0)),u}return[].concat((0,re.Z)(o),[a])}),[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,o=(e.theme,(0,ae.Z)(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),i=t;return c.createElement(i,Object.assign({},o),this.renderChildren(n))}}]),n}(c.Component);et.defaultProps={tag:"div",className:""};var tt=et;function nt(e,t,n){var o=e.getState();e.setState({activeKey:(0,i.Z)((0,i.Z)({},o.activeKey),{},(0,T.Z)({},t,n))})}function ot(e){return e.eventKey||"0-menu-"}function it(e,t){var n,o=t,i=e.children,r=e.eventKey;return o&&(ee(i,(function(e,t){e&&e.props&&!e.props.disabled&&o===Q(e,r,t)&&(n=!0)})),n)?o:(o=null,e.defaultActiveFirst?(ee(i,(function(e,t){o||!e||e.props.disabled||(o=Q(e,r,t))})),o):o)}function rt(e){if(e){var t=this.instanceArray.indexOf(e);-1!==t?this.instanceArray[t]=e:this.instanceArray.push(e)}}var at=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;return(0,r.Z)(this,n),(o=t.call(this,e)).onKeyDown=function(e,t){var n,i=e.keyCode;if(o.getFlatInstanceArray().forEach((function(t){t&&t.props.active&&t.onKeyDown&&(n=t.onKeyDown(e))})),n)return 1;var r=null;return i!==x.Z.UP&&i!==x.Z.DOWN||(r=o.step(i===x.Z.UP?-1:1)),r?(e.preventDefault(),nt(o.props.store,ot(o.props),r.props.eventKey),"function"==typeof t&&t(r),1):void 0},o.onItemHover=function(e){var t=e.key,n=e.hover;nt(o.props.store,ot(o.props),n?t:null)},o.onDeselect=function(e){o.props.onDeselect(e)},o.onSelect=function(e){o.props.onSelect(e)},o.onClick=function(e){o.props.onClick(e)},o.onOpenChange=function(e){o.props.onOpenChange(e)},o.onDestroy=function(e){o.props.onDestroy(e)},o.getFlatInstanceArray=function(){return o.instanceArray},o.step=function(e){var t=o.getFlatInstanceArray(),n=o.props.store.getState().activeKey[ot(o.props)],i=t.length;if(!i)return null;e<0&&(t=t.concat().reverse());var r=-1;if(t.every((function(e,t){return!e||e.props.eventKey!==n||(r=t,!1)})),o.props.defaultActiveFirst||-1===r||(a=t.slice(r,i-1)).length&&!a.every((function(e){return!!e.props.disabled}))){var a,s=(r+1)%i,u=s;do{var l=t[u];if(l&&!l.props.disabled)return l;u=(u+1)%i}while(u!==s);return null}},o.renderCommonMenuItem=function(e,t,n){var r=o.props.store.getState(),a=(0,s.Z)(o).props,u=Q(e,a.eventKey,t),l=e.props;if(!l||"string"==typeof e.type)return e;var p=u===r.activeKey,f=(0,i.Z)((0,i.Z)({mode:l.mode||a.mode,level:a.level,inlineIndent:a.inlineIndent,renderMenuItem:o.renderMenuItem,rootPrefixCls:a.prefixCls,index:t,parentMenu:a.parentMenu,manualRef:l.disabled?void 0:P(e.ref,rt.bind((0,s.Z)(o))),eventKey:u,active:!l.disabled&&p,multiple:a.multiple,onClick:function(e){(l.onClick||q)(e),o.onClick(e)},onItemHover:o.onItemHover,motion:a.motion,subMenuOpenDelay:a.subMenuOpenDelay,subMenuCloseDelay:a.subMenuCloseDelay,forceSubMenuRender:a.forceSubMenuRender,onOpenChange:o.onOpenChange,onDeselect:o.onDeselect,onSelect:o.onSelect,builtinPlacements:a.builtinPlacements,itemIcon:l.itemIcon||o.props.itemIcon,expandIcon:l.expandIcon||o.props.expandIcon},n),{},{direction:a.direction});return("inline"===a.mode||$.any)&&(f.triggerSubMenuAction="click"),c.cloneElement(e,(0,i.Z)((0,i.Z)({},f),{},{key:u||t}))},o.renderMenuItem=function(e,t,n){if(!e)return null;var i=o.props.store.getState(),r={openKeys:i.openKeys,selectedKeys:i.selectedKeys,triggerSubMenuAction:o.props.triggerSubMenuAction,subMenuKey:n};return o.renderCommonMenuItem(e,t,r)},e.store.setState({activeKey:(0,i.Z)((0,i.Z)({},e.store.getState().activeKey),{},(0,T.Z)({},e.eventKey,it(e,e.activeKey)))}),o.instanceArray=[],o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"shouldComponentUpdate",value:function(e){return this.props.visible||e.visible||this.props.className!==e.className||!h()(this.props.style,e.style)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n="activeKey"in t?t.activeKey:t.store.getState().activeKey[ot(t)],o=it(t,n);(o!==n||"activeKey"in e&&o!==it(e,e.activeKey))&&nt(t.store,ot(t),o)}},{key:"render",value:function(){var e=this,t=(0,E.Z)({},this.props);this.instanceArray=[];var n={className:S()(t.prefixCls,t.className,"".concat(t.prefixCls,"-").concat(t.mode)),role:t.role||"menu"};t.id&&(n.id=t.id),t.focusable&&(n.tabIndex=0,n.onKeyDown=this.onKeyDown);var o=t.prefixCls,i=t.eventKey,r=t.visible,a=t.level,s=t.mode,u=t.overflowedIndicator,l=t.theme;return ne.forEach((function(e){return delete t[e]})),delete t.onClick,c.createElement(tt,Object.assign({},t,{prefixCls:o,mode:s,tag:"ul",level:a,theme:l,visible:r,overflowedIndicator:u},n),(0,O.Z)(t.children).map((function(t,n){return e.renderMenuItem(t,n,i||"0-menu-")})))}}]),n}(c.Component);at.defaultProps={prefixCls:"rc-menu",className:"",mode:"vertical",level:1,inlineIndent:24,visible:!0,focusable:!0,style:{},manualRef:q};var st=w()(at),ut=n(1894);function lt(e,t,n){var o=e.prefixCls,i=e.motion,r=e.defaultMotions,a=void 0===r?{}:r,s=e.openAnimation,u=e.openTransitionName,l=t.switchingModeFromInline;if(i)return i;if("object"===(0,N.Z)(s)&&s)(0,ut.ZP)(!1,"Object type of `openAnimation` is removed. Please use `motion` instead.");else if("string"==typeof s)return{motionName:"".concat(o,"-open-").concat(s)};return u?{motionName:u}:a[n]||(l?null:a.other)}var ct=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var o;(0,r.Z)(this,n),(o=t.call(this,e)).onSelect=function(e){var t=(0,s.Z)(o).props;if(t.selectable){var n=o.store.getState().selectedKeys,r=e.key;n=t.multiple?n.concat([r]):[r],"selectedKeys"in t||o.store.setState({selectedKeys:n}),t.onSelect((0,i.Z)((0,i.Z)({},e),{},{selectedKeys:n}))}},o.onClick=function(e){var t=o.getRealMenuMode(),n=(0,s.Z)(o),i=n.store,r=n.props.onOpenChange;"inline"===t||"openKeys"in o.props||(i.setState({openKeys:[]}),r([])),o.props.onClick(e)},o.onKeyDown=function(e,t){o.innerMenu.getWrappedInstance().onKeyDown(e,t)},o.onOpenChange=function(e){var t=(0,s.Z)(o).props,n=o.store.getState().openKeys.concat(),i=!1,r=function(e){var t=!1;if(e.open)(t=-1===n.indexOf(e.key))&&n.push(e.key);else{var o=n.indexOf(e.key);(t=-1!==o)&&n.splice(o,1)}i=i||t};Array.isArray(e)?e.forEach(r):r(e),i&&("openKeys"in o.props||o.store.setState({openKeys:n}),t.onOpenChange(n))},o.onDeselect=function(e){var t=(0,s.Z)(o).props;if(t.selectable){var n=o.store.getState().selectedKeys.concat(),r=e.key,a=n.indexOf(r);-1!==a&&n.splice(a,1),"selectedKeys"in t||o.store.setState({selectedKeys:n}),t.onDeselect((0,i.Z)((0,i.Z)({},e),{},{selectedKeys:n}))}},o.onMouseEnter=function(e){o.restoreModeVerticalFromInline();var t=o.props.onMouseEnter;t&&t(e)},o.onTransitionEnd=function(e){var t="width"===e.propertyName&&e.target===e.currentTarget,n=e.target.className,i="[object SVGAnimatedString]"===Object.prototype.toString.call(n)?n.animVal:n,r="font-size"===e.propertyName&&i.indexOf("anticon")>=0;(t||r)&&o.restoreModeVerticalFromInline()},o.setInnerMenu=function(e){o.innerMenu=e},o.isRootMenu=!0;var a,u,l,c=e.defaultSelectedKeys,p=e.defaultOpenKeys;return"selectedKeys"in e&&(c=e.selectedKeys||[]),"openKeys"in e&&(p=e.openKeys||[]),o.store=(a={selectedKeys:c,openKeys:p,activeKey:{"0-menu-":it(e,e.activeKey)}},u=a,l=[],{setState:function(e){u=Z(Z({},u),e);for(var t=0;t<l.length;t++)l[t]()},getState:function(){return u},subscribe:function(e){return l.push(e),function(){var t=l.indexOf(e);l.splice(t,1)}}}),o.state={switchingModeFromInline:!1,prevProps:e,inlineOpenKeys:[],store:o.store},o}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.updateMiniStore(),this.updateMenuDisplay()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.siderCollapsed,o=t.inlineCollapsed,i=t.onOpenChange;(!e.inlineCollapsed&&o||!e.siderCollapsed&&n)&&i([]),this.updateMiniStore(),this.updateMenuDisplay()}},{key:"updateMenuDisplay",value:function(){var e=this.props.collapsedWidth,t=this.store,n=this.prevOpenKeys;!this.getInlineCollapsed()||0!==e&&"0"!==e&&"0px"!==e?n&&(this.store.setState({openKeys:n}),this.prevOpenKeys=null):(this.prevOpenKeys=t.getState().openKeys.concat(),this.store.setState({openKeys:[]}))}},{key:"getRealMenuMode",value:function(){var e=this.props.mode,t=this.state.switchingModeFromInline,n=this.getInlineCollapsed();return t&&n?"inline":n?"vertical":e}},{key:"getInlineCollapsed",value:function(){var e=this.props,t=e.inlineCollapsed,n=e.siderCollapsed;return void 0!==n?n:t}},{key:"restoreModeVerticalFromInline",value:function(){this.state.switchingModeFromInline&&this.setState({switchingModeFromInline:!1})}},{key:"updateMiniStore",value:function(){"selectedKeys"in this.props&&this.store.setState({selectedKeys:this.props.selectedKeys||[]}),"openKeys"in this.props&&this.store.setState({openKeys:this.props.openKeys||[]})}},{key:"render",value:function(){var e=(0,i.Z)({},(0,k.Z)(this.props,["collapsedWidth","siderCollapsed","defaultMotions"])),t=this.getRealMenuMode();return e.className+=" ".concat(e.prefixCls,"-root"),"rtl"===e.direction&&(e.className+=" ".concat(e.prefixCls,"-rtl")),delete(e=(0,i.Z)((0,i.Z)({},e),{},{mode:t,onClick:this.onClick,onOpenChange:this.onOpenChange,onDeselect:this.onDeselect,onSelect:this.onSelect,onMouseEnter:this.onMouseEnter,onTransitionEnd:this.onTransitionEnd,parentMenu:this,motion:lt(this.props,this.state,t)})).openAnimation,delete e.openTransitionName,c.createElement(v,{store:this.store},c.createElement(st,Object.assign({},e,{ref:this.setInnerMenu}),this.props.children))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,o=t.store,i=o.getState(),r={},a={prevProps:e};return"inline"===n.mode&&"inline"!==e.mode&&(a.switchingModeFromInline=!0),"openKeys"in e?r.openKeys=e.openKeys:((e.inlineCollapsed&&!n.inlineCollapsed||e.siderCollapsed&&!n.siderCollapsed)&&(a.switchingModeFromInline=!0,a.inlineOpenKeys=i.openKeys,r.openKeys=[]),(!e.inlineCollapsed&&n.inlineCollapsed||!e.siderCollapsed&&n.siderCollapsed)&&(r.openKeys=t.inlineOpenKeys,a.inlineOpenKeys=[])),Object.keys(r).length&&o.setState(r),a}}]),n}(c.Component);ct.defaultProps={selectable:!0,onClick:q,onSelect:q,onOpenChange:q,onDeselect:q,defaultSelectedKeys:[],defaultOpenKeys:[],subMenuOpenDelay:.1,subMenuCloseDelay:.1,triggerSubMenuAction:"hover",prefixCls:"rc-menu",className:"",mode:"vertical",style:{},builtinPlacements:{},overflowedIndicator:c.createElement("span",null,"···")};var pt=ct,ft=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).onKeyDown=function(t){if(t.keyCode===x.Z.ENTER)return e.onClick(t),!0},e.onMouseLeave=function(t){var n=e.props,o=n.eventKey,i=n.onItemHover,r=n.onMouseLeave;i({key:o,hover:!1}),r({key:o,domEvent:t})},e.onMouseEnter=function(t){var n=e.props,o=n.eventKey,i=n.onItemHover,r=n.onMouseEnter;i({key:o,hover:!0}),r({key:o,domEvent:t})},e.onClick=function(t){var n=e.props,o=n.eventKey,i=n.multiple,r=n.onClick,a=n.onSelect,u=n.onDeselect,l=n.isSelected,c={key:o,keyPath:[o],item:(0,s.Z)(e),domEvent:t};r(c),i?l?u(c):a(c):l||a(c)},e.saveNode=function(t){e.node=t},e}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.callRef()}},{key:"componentDidUpdate",value:function(){this.callRef()}},{key:"componentWillUnmount",value:function(){var e=this.props;e.onDestroy&&e.onDestroy(e.eventKey)}},{key:"getPrefixCls",value:function(){return"".concat(this.props.rootPrefixCls,"-item")}},{key:"getActiveClassName",value:function(){return"".concat(this.getPrefixCls(),"-active")}},{key:"getSelectedClassName",value:function(){return"".concat(this.getPrefixCls(),"-selected")}},{key:"getDisabledClassName",value:function(){return"".concat(this.getPrefixCls(),"-disabled")}},{key:"callRef",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"render",value:function(){var e,t=(0,i.Z)({},this.props),n=S()(this.getPrefixCls(),t.className,(e={},(0,T.Z)(e,this.getActiveClassName(),!t.disabled&&t.active),(0,T.Z)(e,this.getSelectedClassName(),t.isSelected),(0,T.Z)(e,this.getDisabledClassName(),t.disabled),e)),o=(0,i.Z)((0,i.Z)({},t.attribute),{},{title:"string"==typeof t.title?t.title:void 0,className:n,role:t.role||"menuitem","aria-disabled":t.disabled});"option"===t.role?o=(0,i.Z)((0,i.Z)({},o),{},{role:"option","aria-selected":t.isSelected}):null!==t.role&&"none"!==t.role||(o.role="none");var r={onClick:t.disabled?null:this.onClick,onMouseLeave:t.disabled?null:this.onMouseLeave,onMouseEnter:t.disabled?null:this.onMouseEnter},a=(0,i.Z)({},t.style);"inline"===t.mode&&("rtl"===t.direction?a.paddingRight=t.inlineIndent*t.level:a.paddingLeft=t.inlineIndent*t.level),ne.forEach((function(e){return delete t[e]})),delete t.direction;var s=this.props.itemIcon;return"function"==typeof this.props.itemIcon&&(s=c.createElement(this.props.itemIcon,this.props)),c.createElement("li",Object.assign({},(0,k.Z)(t,["onClick","onMouseEnter","onMouseLeave","onSelect"]),o,r,{style:a,ref:this.saveNode}),t.children,s)}}]),n}(c.Component);ft.isMenuItem=!0,ft.defaultProps={onSelect:q,onMouseEnter:q,onMouseLeave:q,manualRef:q};var dt=w((function(e,t){var n=e.activeKey,o=e.selectedKeys,i=t.eventKey;return{active:n[t.subMenuKey]===i,isSelected:-1!==o.indexOf(i)}}))(ft),vt=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;return(0,r.Z)(this,n),(e=t.apply(this,arguments)).renderInnerMenuItem=function(t){var n=e.props;return(0,n.renderMenuItem)(t,n.index,e.props.subMenuKey)},e}return(0,a.Z)(n,[{key:"render",value:function(){var e=(0,E.Z)({},this.props),t=e.className,n=void 0===t?"":t,o=e.rootPrefixCls,i="".concat(o,"-item-group-title"),r="".concat(o,"-item-group-list"),a=e.title,s=e.children;return ne.forEach((function(t){return delete e[t]})),delete e.onClick,delete e.direction,c.createElement("li",Object.assign({},e,{className:"".concat(n," ").concat(o,"-item-group")}),c.createElement("div",{className:i,title:"string"==typeof a?a:void 0},a),c.createElement("ul",{className:r},c.Children.map(s,this.renderInnerMenuItem)))}}]),n}(c.Component);vt.isMenuItemGroup=!0,vt.defaultProps={disabled:!0};var mt=vt,ht=function(e){var t=e.className,n=e.rootPrefixCls,o=e.style;return c.createElement("li",{className:"".concat(t," ").concat(n,"-item-divider"),style:o})};ht.defaultProps={disabled:!0,className:"",style:{}};var yt=ht,gt=pt},5724:function(e){e.exports=function(e,t,n,o){var i=n?n.call(o,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;u<r.length;u++){var l=r[u];if(!s(l))return!1;var c=e[l],p=t[l];if(!1===(i=n?n.call(o,c,p,l):void 0)||void 0===i&&c!==p)return!1}return!0}},5723:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var o=n(7363),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"},r=n(2545),a=function(e,t){return o.createElement(r.Z,Object.assign({},e,{ref:t,icon:i}))};a.displayName="EllipsisOutlined";var s=o.forwardRef(a)},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var o=n(7363),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},r=n(2545),a=function(e,t){return o.createElement(r.Z,Object.assign({},e,{ref:t,icon:i}))};a.displayName="PlusOutlined";var s=o.forwardRef(a)},9697:function(e,t,n){"use strict";n.d(t,{Z:function(){return G}});var o=n(4741),i=n(63),r=n(7363),a=n(7228),s=n(3429),u=n(4115),l=n(2711),c=n(2286),p=n.n(c),f=n(4237),d=n(4511),v=n(8833),m=n(7870),h=n(6871),y=n(2177);function g(e){var t=(0,r.useRef)(),n=(0,r.useRef)(!1);return(0,r.useEffect)((function(){return function(){n.current=!0,h.Z.cancel(t.current)}}),[]),function(){for(var o=arguments.length,i=new Array(o),r=0;r<o;r++)i[r]=arguments[r];n.current||(h.Z.cancel(t.current),t.current=(0,h.Z)((function(){e.apply(void 0,i)})))}}var b=n(5065);function C(e,t){var n,o=e.prefixCls,a=e.id,s=e.active,u=e.rtl,l=e.tab,c=l.key,f=l.tab,d=l.disabled,v=l.closeIcon,m=e.tabBarGutter,h=e.tabPosition,y=e.closable,g=e.renderWrapper,C=e.removeAriaLabel,M=e.editable,w=e.onClick,Z=e.onRemove,k=e.onFocus,E="".concat(o,"-tab");r.useEffect((function(){return Z}),[]);var T={};"top"===h||"bottom"===h?T[u?"marginLeft":"marginRight"]=m:T.marginBottom=m;var x=M&&!1!==y&&!d;function P(e){d||w(e)}var O=r.createElement("div",{key:c,ref:t,className:p()(E,(n={},(0,i.Z)(n,"".concat(E,"-with-remove"),x),(0,i.Z)(n,"".concat(E,"-active"),s),(0,i.Z)(n,"".concat(E,"-disabled"),d),n)),style:T,onClick:P},r.createElement("div",{role:"tab","aria-selected":s,id:a&&"".concat(a,"-tab-").concat(c),className:"".concat(E,"-btn"),"aria-controls":a&&"".concat(a,"-panel-").concat(c),"aria-disabled":d,tabIndex:d?null:0,onClick:function(e){e.stopPropagation(),P(e)},onKeyDown:function(e){[b.Z.SPACE,b.Z.ENTER].includes(e.which)&&(e.preventDefault(),P(e))},onFocus:k},f),x&&r.createElement("button",{type:"button","aria-label":C||"remove",tabIndex:0,className:"".concat(E,"-remove"),onClick:function(e){var t;e.stopPropagation(),(t=e).preventDefault(),t.stopPropagation(),M.onEdit("remove",{key:c,event:t})}},v||M.removeIcon||"×"));return g&&(O=g(O)),O}var M=r.forwardRef(C),w={width:0,height:0,left:0,top:0},Z={width:0,height:0,left:0,top:0,right:0},k=n(1987),E=n(7933);function T(e,t){var n=e.prefixCls,o=e.editable,i=e.locale,a=e.style;return o&&!1!==o.showAdd?r.createElement("button",{ref:t,type:"button",className:"".concat(n,"-nav-add"),style:a,"aria-label":(null==i?void 0:i.addAriaLabel)||"Add tab",onClick:function(e){o.onEdit("add",{event:e})}},o.addIcon||"+"):null}var x=r.forwardRef(T);function P(e,t){var n=e.prefixCls,o=e.id,s=e.tabs,u=e.locale,l=e.mobile,c=e.moreIcon,f=void 0===c?"More":c,d=e.moreTransitionName,v=e.style,m=e.className,h=e.editable,y=e.tabBarGutter,g=e.rtl,C=e.onTabClick,M=(0,r.useState)(!1),w=(0,a.Z)(M,2),Z=w[0],T=w[1],P=(0,r.useState)(null),O=(0,a.Z)(P,2),D=O[0],S=O[1],N="".concat(o,"-more-popup"),R="".concat(n,"-dropdown"),I=null!==D?"".concat(N,"-").concat(D):null,A=null==u?void 0:u.dropdownAriaLabel,K=r.createElement(k.ZP,{onClick:function(e){var t=e.key,n=e.domEvent;C(t,n),T(!1)},id:N,tabIndex:-1,role:"listbox","aria-activedescendant":I,selectedKeys:[D],"aria-label":void 0!==A?A:"expanded dropdown"},s.map((function(e){return r.createElement(k.sN,{key:e.key,id:"".concat(N,"-").concat(e.key),role:"option","aria-controls":o&&"".concat(o,"-panel-").concat(e.key),disabled:e.disabled},e.tab)})));function V(e){for(var t=s.filter((function(e){return!e.disabled})),n=t.findIndex((function(e){return e.key===D}))||0,o=t.length,i=0;i<o;i+=1){var r=t[n=(n+e+o)%o];if(!r.disabled)return void S(r.key)}}(0,r.useEffect)((function(){var e=document.getElementById(I);e&&e.scrollIntoView&&e.scrollIntoView(!1)}),[D]),(0,r.useEffect)((function(){Z||S(null)}),[Z]);var H=(0,i.Z)({},g?"marginLeft":"marginRight",y);s.length||(H.visibility="hidden",H.order=1);var L=p()((0,i.Z)({},"".concat(R,"-rtl"),g)),F=l?null:r.createElement(E.Z,{prefixCls:R,overlay:K,trigger:["hover"],visible:Z,transitionName:d,onVisibleChange:T,overlayClassName:L,mouseEnterDelay:.1,mouseLeaveDelay:.1},r.createElement("button",{type:"button",className:"".concat(n,"-nav-more"),style:H,tabIndex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":N,id:"".concat(o,"-more"),"aria-expanded":Z,onKeyDown:function(e){var t=e.which;if(Z)switch(t){case b.Z.UP:V(-1),e.preventDefault();break;case b.Z.DOWN:V(1),e.preventDefault();break;case b.Z.ESC:T(!1);break;case b.Z.SPACE:case b.Z.ENTER:null!==D&&C(D,e)}else[b.Z.DOWN,b.Z.SPACE,b.Z.ENTER].includes(t)&&(T(!0),e.preventDefault())}},f));return r.createElement("div",{className:p()("".concat(n,"-nav-operations"),m),style:v,ref:t},F,r.createElement(x,{prefixCls:n,locale:u,editable:h}))}var O=r.forwardRef(P),D=(0,r.createContext)(null),S=Math.pow(.995,20);function N(e,t){var n=r.useRef(e),o=r.useState({}),i=(0,a.Z)(o,2)[1];return[n.current,function(e){var o="function"==typeof e?e(n.current):e;o!==n.current&&t(o,n.current),n.current=o,i({})}]}var R=function(e){var t,n=e.position,o=e.prefixCls,i=e.extra;if(!i)return null;var a=i;return"right"===n&&(t=a.right||!a.left&&a||null),"left"===n&&(t=a.left||null),t?r.createElement("div",{className:"".concat(o,"-extra-content")},t):null};function I(e,t){var n,o,s=r.useContext(D),u=s.prefixCls,c=s.tabs,f=e.className,d=e.style,v=e.id,b=e.animated,C=e.activeKey,k=e.rtl,E=e.extra,T=e.editable,P=e.locale,I=e.tabPosition,A=e.tabBarGutter,K=e.children,V=e.onTabClick,H=e.onTabScroll,L=(0,r.useRef)(),F=(0,r.useRef)(),j=(0,r.useRef)(),z=(0,r.useRef)(),B=(o=(0,r.useRef)(new Map),[function(e){return o.current.has(e)||o.current.set(e,r.createRef()),o.current.get(e)},function(e){o.current.delete(e)}]),W=(0,a.Z)(B,2),U=W[0],Y=W[1],_="top"===I||"bottom"===I,X=N(0,(function(e,t){_&&H&&H({direction:e>t?"left":"right"})})),G=(0,a.Z)(X,2),$=G[0],q=G[1],Q=N(0,(function(e,t){!_&&H&&H({direction:e>t?"top":"bottom"})})),J=(0,a.Z)(Q,2),ee=J[0],te=J[1],ne=(0,r.useState)(0),oe=(0,a.Z)(ne,2),ie=oe[0],re=oe[1],ae=(0,r.useState)(0),se=(0,a.Z)(ae,2),ue=se[0],le=se[1],ce=(0,r.useState)(0),pe=(0,a.Z)(ce,2),fe=pe[0],de=pe[1],ve=(0,r.useState)(0),me=(0,a.Z)(ve,2),he=me[0],ye=me[1],ge=(0,r.useState)(null),be=(0,a.Z)(ge,2),Ce=be[0],Me=be[1],we=(0,r.useState)(null),Ze=(0,a.Z)(we,2),ke=Ze[0],Ee=Ze[1],Te=(0,r.useState)(0),xe=(0,a.Z)(Te,2),Pe=xe[0],Oe=xe[1],De=(0,r.useState)(0),Se=(0,a.Z)(De,2),Ne=Se[0],Re=Se[1],Ie=function(e){var t=(0,r.useRef)([]),n=(0,r.useState)({}),o=(0,a.Z)(n,2)[1],i=(0,r.useRef)("function"==typeof e?e():e),s=g((function(){var e=i.current;t.current.forEach((function(t){e=t(e)})),t.current=[],i.current=e,o({})}));return[i.current,function(e){t.current.push(e),s()}]}(new Map),Ae=(0,a.Z)(Ie,2),Ke=Ae[0],Ve=Ae[1],He=function(e,t,n){return(0,r.useMemo)((function(){for(var n,o=new Map,i=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||w,r=i.left+i.width,a=0;a<e.length;a+=1){var s,u=e[a].key,c=t.get(u);c||(c=t.get(null===(s=e[a-1])||void 0===s?void 0:s.key)||w);var p=o.get(u)||(0,l.Z)({},c);p.right=r-p.left-p.width,o.set(u,p)}return o}),[e.map((function(e){return e.key})).join("_"),t,n])}(c,Ke,ie),Le="".concat(u,"-nav-operations-hidden"),Fe=0,je=0;function ze(e){return e<Fe?Fe:e>je?je:e}_?k?(Fe=0,je=Math.max(0,ie-Ce)):(Fe=Math.min(0,Ce-ie),je=0):(Fe=Math.min(0,ke-ue),je=0);var Be=(0,r.useRef)(),We=(0,r.useState)(),Ue=(0,a.Z)(We,2),Ye=Ue[0],_e=Ue[1];function Xe(){_e(Date.now())}function Ge(){window.clearTimeout(Be.current)}function $e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C,t=He.get(e)||{width:0,height:0,left:0,right:0,top:0};if(_){var n=$;k?t.right<$?n=t.right:t.right+t.width>$+Ce&&(n=t.right+t.width-Ce):t.left<-$?n=-t.left:t.left+t.width>-$+Ce&&(n=-(t.left+t.width-Ce)),te(0),q(ze(n))}else{var o=ee;t.top<-ee?o=-t.top:t.top+t.height>-ee+ke&&(o=-(t.top+t.height-ke)),q(0),te(ze(o))}}!function(e,t){var n=(0,r.useState)(),o=(0,a.Z)(n,2),i=o[0],s=o[1],u=(0,r.useState)(0),l=(0,a.Z)(u,2),c=l[0],p=l[1],f=(0,r.useState)(0),d=(0,a.Z)(f,2),v=d[0],m=d[1],h=(0,r.useState)(),y=(0,a.Z)(h,2),g=y[0],b=y[1],C=(0,r.useRef)(),M=(0,r.useRef)(),w=(0,r.useRef)(null);w.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,o=t.screenY;s({x:n,y:o}),window.clearInterval(C.current)},onTouchMove:function(e){if(i){e.preventDefault();var n=e.touches[0],o=n.screenX,r=n.screenY;s({x:o,y:r});var a=o-i.x,u=r-i.y;t(a,u);var l=Date.now();p(l),m(l-c),b({x:a,y:u})}},onTouchEnd:function(){if(i&&(s(null),b(null),g)){var e=g.x/v,n=g.y/v,o=Math.abs(e),r=Math.abs(n);if(Math.max(o,r)<.1)return;var a=e,u=n;C.current=window.setInterval((function(){Math.abs(a)<.01&&Math.abs(u)<.01?window.clearInterval(C.current):t(20*(a*=S),20*(u*=S))}),20)}},onWheel:function(e){var n=e.deltaX,o=e.deltaY,i=0,r=Math.abs(n),a=Math.abs(o);r===a?i="x"===M.current?n:o:r>a?(i=n,M.current="x"):(i=o,M.current="y"),t(-i,-i)&&e.preventDefault()}},r.useEffect((function(){function t(e){w.current.onTouchMove(e)}function n(e){w.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){w.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){w.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(L,(function(e,t){function n(e,t){e((function(e){return ze(e+t)}))}if(_){if(Ce>=ie)return!1;n(q,e)}else{if(ke>=ue)return!1;n(te,t)}return Ge(),Xe(),!0})),(0,r.useEffect)((function(){return Ge(),Ye&&(Be.current=window.setTimeout((function(){_e(0)}),100)),Ge}),[Ye]);var qe=function(e,t,n,o,i){var a,s,u,l=i.tabs,c=i.tabPosition,p=i.rtl;["top","bottom"].includes(c)?(a="width",s=p?"right":"left",u=Math.abs(t.left)):(a="height",s="top",u=-t.top);var f=t[a],d=o[a],v=f;return n[a]+d>f&&(v=f-d),(0,r.useMemo)((function(){if(!l.length)return[0,0];for(var t=l.length,n=t,o=0;o<t;o+=1){var i=e.get(l[o].key)||Z;if(i[s]+i[a]>u+v){n=o-1;break}}for(var r=0,c=t-1;c>=0;c-=1)if((e.get(l[c].key)||Z)[s]<u){r=c+1;break}return[r,n]}),[e,u,v,c,l.map((function(e){return e.key})).join("_"),p])}(He,{width:Ce,height:ke,left:$,top:ee},{width:fe,height:he},{width:Pe,height:Ne},(0,l.Z)((0,l.Z)({},e),{},{tabs:c})),Qe=(0,a.Z)(qe,2),Je=Qe[0],et=Qe[1],tt=c.map((function(e){var t=e.key;return r.createElement(M,{id:v,prefixCls:u,key:t,rtl:k,tab:e,closable:e.closable,editable:T,active:t===C,tabPosition:I,tabBarGutter:A,renderWrapper:K,removeAriaLabel:null==P?void 0:P.removeAriaLabel,ref:U(t),onClick:function(e){V(t,e)},onRemove:function(){Y(t)},onFocus:function(){$e(t),Xe(),k||(L.current.scrollLeft=0),L.current.scrollTop=0}})})),nt=g((function(){var e,t,n,o,i,r,a,s,u,l=(null===(e=L.current)||void 0===e?void 0:e.offsetWidth)||0,p=(null===(t=L.current)||void 0===t?void 0:t.offsetHeight)||0,f=(null===(n=z.current)||void 0===n?void 0:n.offsetWidth)||0,d=(null===(o=z.current)||void 0===o?void 0:o.offsetHeight)||0,v=(null===(i=j.current)||void 0===i?void 0:i.offsetWidth)||0,m=(null===(r=j.current)||void 0===r?void 0:r.offsetHeight)||0;Me(l),Ee(p),Oe(f),Re(d);var h=((null===(a=F.current)||void 0===a?void 0:a.offsetWidth)||0)-f,y=((null===(s=F.current)||void 0===s?void 0:s.offsetHeight)||0)-d;re(h),le(y);var g=null===(u=j.current)||void 0===u?void 0:u.className.includes(Le);de(h-(g?0:v)),ye(y-(g?0:m)),Ve((function(){var e=new Map;return c.forEach((function(t){var n=t.key,o=U(n).current;o&&e.set(n,{width:o.offsetWidth,height:o.offsetHeight,left:o.offsetLeft,top:o.offsetTop})})),e}))})),ot=c.slice(0,Je),it=c.slice(et+1),rt=[].concat((0,m.Z)(ot),(0,m.Z)(it)),at=(0,r.useState)(),st=(0,a.Z)(at,2),ut=st[0],lt=st[1],ct=He.get(C),pt=(0,r.useRef)();function ft(){h.Z.cancel(pt.current)}(0,r.useEffect)((function(){var e={};return ct&&(_?(k?e.right=ct.right:e.left=ct.left,e.width=ct.width):(e.top=ct.top,e.height=ct.height)),ft(),pt.current=(0,h.Z)((function(){lt(e)})),ft}),[ct,_,k]),(0,r.useEffect)((function(){$e()}),[C,ct,He,_]),(0,r.useEffect)((function(){nt()}),[k,A,C,c.map((function(e){return e.key})).join("_")]);var dt,vt,mt,ht,yt=!!rt.length,gt="".concat(u,"-nav-wrap");return _?k?(vt=$>0,dt=$+Ce<ie):(dt=$<0,vt=-$+Ce<ie):(mt=ee<0,ht=-ee+ke<ue),r.createElement("div",{ref:t,role:"tablist",className:p()("".concat(u,"-nav"),f),style:d,onKeyDown:function(){Xe()}},r.createElement(R,{position:"left",extra:E,prefixCls:u}),r.createElement(y.Z,{onResize:nt},r.createElement("div",{className:p()(gt,(n={},(0,i.Z)(n,"".concat(gt,"-ping-left"),dt),(0,i.Z)(n,"".concat(gt,"-ping-right"),vt),(0,i.Z)(n,"".concat(gt,"-ping-top"),mt),(0,i.Z)(n,"".concat(gt,"-ping-bottom"),ht),n)),ref:L},r.createElement(y.Z,{onResize:nt},r.createElement("div",{ref:F,className:"".concat(u,"-nav-list"),style:{transform:"translate(".concat($,"px, ").concat(ee,"px)"),transition:Ye?"none":void 0}},tt,r.createElement(x,{ref:z,prefixCls:u,locale:P,editable:T,style:{visibility:yt?"hidden":null}}),r.createElement("div",{className:p()("".concat(u,"-ink-bar"),(0,i.Z)({},"".concat(u,"-ink-bar-animated"),b.inkBar)),style:ut}))))),r.createElement(O,Object.assign({},e,{ref:j,prefixCls:u,tabs:rt,className:!yt&&Le})),r.createElement(R,{position:"right",extra:E,prefixCls:u}))}var A=r.forwardRef(I);function K(e){var t=e.id,n=e.activeKey,o=e.animated,a=e.tabPosition,s=e.rtl,u=e.destroyInactiveTabPane,l=r.useContext(D),c=l.prefixCls,f=l.tabs,d=o.tabPane,v=f.findIndex((function(e){return e.key===n}));return r.createElement("div",{className:p()("".concat(c,"-content-holder"))},r.createElement("div",{className:p()("".concat(c,"-content"),"".concat(c,"-content-").concat(a),(0,i.Z)({},"".concat(c,"-content-animated"),d)),style:v&&d?(0,i.Z)({},s?"marginRight":"marginLeft","-".concat(v,"00%")):null},f.map((function(e){return r.cloneElement(e.node,{key:e.key,prefixCls:c,tabKey:e.key,id:t,animated:d,active:e.key===n,destroyInactiveTabPane:u})}))))}function V(e){var t=e.prefixCls,n=e.forceRender,o=e.className,i=e.style,s=e.id,u=e.active,c=e.animated,f=e.destroyInactiveTabPane,d=e.tabKey,v=e.children,m=r.useState(n),h=(0,a.Z)(m,2),y=h[0],g=h[1];r.useEffect((function(){u?g(!0):f&&g(!1)}),[u,f]);var b={};return u||(c?(b.visibility="hidden",b.height=0,b.overflowY="hidden"):b.display="none"),r.createElement("div",{id:s&&"".concat(s,"-panel-").concat(d),role:"tabpanel",tabIndex:u?0:-1,"aria-labelledby":s&&"".concat(s,"-tab-").concat(d),"aria-hidden":!u,style:(0,l.Z)((0,l.Z)({},b),i),className:p()("".concat(t,"-tabpane"),u&&"".concat(t,"-tabpane-active"),o)},(u||y||n)&&v)}var H=0;function L(e,t){var n,o,c=e.id,m=e.prefixCls,h=void 0===m?"rc-tabs":m,y=e.className,g=e.children,b=e.direction,C=e.activeKey,M=e.defaultActiveKey,w=e.editable,Z=e.animated,k=void 0===Z?{inkBar:!0,tabPane:!1}:Z,E=e.tabPosition,T=void 0===E?"top":E,x=e.tabBarGutter,P=e.tabBarStyle,O=e.tabBarExtraContent,S=e.locale,N=e.moreIcon,R=e.moreTransitionName,I=e.destroyInactiveTabPane,V=e.renderTabBar,L=e.onChange,F=e.onTabClick,j=e.onTabScroll,z=(0,u.Z)(e,["id","prefixCls","className","children","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll"]),B=function(e){return(0,f.Z)(e).map((function(e){if(r.isValidElement(e)){var t=void 0!==e.key?String(e.key):void 0;return(0,l.Z)((0,l.Z)({key:t},e.props),{},{node:e})}return null})).filter((function(e){return e}))}(g),W="rtl"===b;o=!1===k?{inkBar:!1,tabPane:!1}:!0===k?{inkBar:!0,tabPane:!0}:(0,l.Z)({inkBar:!0,tabPane:!1},"object"===(0,s.Z)(k)?k:{});var U=(0,r.useState)(!1),Y=(0,a.Z)(U,2),_=Y[0],X=Y[1];(0,r.useEffect)((function(){X((0,d.Z)())}),[]);var G=(0,v.Z)((function(){var e;return null===(e=B[0])||void 0===e?void 0:e.key}),{value:C,defaultValue:M}),$=(0,a.Z)(G,2),q=$[0],Q=$[1],J=(0,r.useState)((function(){return B.findIndex((function(e){return e.key===q}))})),ee=(0,a.Z)(J,2),te=ee[0],ne=ee[1];(0,r.useEffect)((function(){var e,t=B.findIndex((function(e){return e.key===q}));-1===t&&(t=Math.max(0,Math.min(te,B.length-1)),Q(null===(e=B[t])||void 0===e?void 0:e.key)),ne(t)}),[B.map((function(e){return e.key})).join("_"),q,te]);var oe=(0,v.Z)(null,{value:c}),ie=(0,a.Z)(oe,2),re=ie[0],ae=ie[1],se=T;_&&!["left","right"].includes(T)&&(se="top"),(0,r.useEffect)((function(){c||(ae("rc-tabs-".concat(H)),H+=1)}),[]);var ue,le={id:re,activeKey:q,animated:o,tabPosition:se,rtl:W,mobile:_},ce=(0,l.Z)((0,l.Z)({},le),{},{editable:w,locale:S,moreIcon:N,moreTransitionName:R,tabBarGutter:x,onTabClick:function(e,t){null==F||F(e,t),Q(e),null==L||L(e)},onTabScroll:j,extra:O,style:P,panes:g});return ue=V?V(ce,A):r.createElement(A,Object.assign({},ce)),r.createElement(D.Provider,{value:{tabs:B,prefixCls:h}},r.createElement("div",Object.assign({ref:t,id:c,className:p()(h,"".concat(h,"-").concat(se),(n={},(0,i.Z)(n,"".concat(h,"-mobile"),_),(0,i.Z)(n,"".concat(h,"-editable"),w),(0,i.Z)(n,"".concat(h,"-rtl"),W),n),y)},z),ue,r.createElement(K,Object.assign({destroyInactiveTabPane:I},le,{animated:o}))))}var F=r.forwardRef(L);F.TabPane=V;var j=F,z=n(5723),B=n(8172),W=n(2092),U=n(3631),Y=n(7079),_=n(6166);function X(e){var t,n=e.type,a=e.className,s=e.size,u=e.onEdit,l=e.hideAdd,c=e.centered,f=e.addIcon,d=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 i=0;for(o=Object.getOwnPropertySymbols(e);i<o.length;i++)t.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(n[o[i]]=e[o[i]])}return n}(e,["type","className","size","onEdit","hideAdd","centered","addIcon"]),v=d.prefixCls,m=d.moreIcon,h=void 0===m?r.createElement(z.Z,null):m,y=r.useContext(Y.E_),g=y.getPrefixCls,b=y.direction,C=g("tabs",v);"editable-card"===n&&(t={onEdit:function(e,t){var n=t.key,o=t.event;null==u||u("add"===e?o:n,e)},removeIcon:r.createElement(W.Z,null),addIcon:f||r.createElement(B.Z,null),showAdd:!0!==l});var M=g();return(0,U.Z)(!("onPrevClick"in d)&&!("onNextClick"in d),"Tabs","`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead."),r.createElement(_.Z.Consumer,null,(function(e){var u,l=void 0!==s?s:e;return r.createElement(j,(0,o.Z)({direction:b,moreTransitionName:"".concat(M,"-slide-up")},d,{className:p()((u={},(0,i.Z)(u,"".concat(C,"-").concat(l),l),(0,i.Z)(u,"".concat(C,"-card"),["card","editable-card"].includes(n)),(0,i.Z)(u,"".concat(C,"-editable-card"),"editable-card"===n),(0,i.Z)(u,"".concat(C,"-centered"),c),u),a),editable:t,moreIcon:h,prefixCls:C}))}))}X.TabPane=V;var G=X}}]);
2
+ //# sourceMappingURL=173.lite.js.map?ver=dbfb36bd7db3ec6d3a00
public/dist/173.lite.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"file":"173.lite.js?ver=dbfb36bd7db3ec6d3a00","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/Mask.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-align/es/util.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-align/es/Align.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-align/es/hooks/useBuffer.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-align/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/Popup/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/context.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/node_modules/rc-trigger/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/es/placements.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-dropdown/es/Dropdown.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/mini-store/esm/Provider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/mini-store/esm/connect.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/mini-store/esm/create.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-util/es/createChainedFunction.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/utils/isMobile.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/util.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/Mask.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-align/es/util.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-align/es/Align.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-align/es/hooks/useBuffer.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-align/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/Popup/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/context.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/node_modules/rc-trigger/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/placements.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/SubMenu.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/DOMWrap.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/SubPopupMenu.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/utils/legacyUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/Menu.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/MenuItem.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/MenuItemGroup.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/Divider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-menu/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/shallowequal/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/PlusOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useRaf.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabNavList/TabNode.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useOffsets.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useVisibleRange.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabNavList/AddButton.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabNavList/OperationNode.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabContext.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useTouchMove.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useSyncState.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabNavList/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/hooks/useRefs.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabPanelList/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/TabPanelList/TabPane.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/Tabs.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-tabs/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/tabs/index.js"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","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];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import Dropdown from './Dropdown';\nexport default Dropdown;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n otherProps = _objectWithoutProperties(props, [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\"]);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n var overlayProps = getOverlayElement().props;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n\n if (overlayProps.onClick) {\n overlayProps.onClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(visible) {\n var onVisibleChange = props.onVisibleChange;\n setTriggerVisible(visible);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(visible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n var extraOverlayProps = {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n onClick: onClick\n };\n\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.prefixCls;\n }\n\n return React.createElement(React.Fragment, null, arrow && React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), React.cloneElement(overlayElement, extraOverlayProps));\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return triggerVisible && children ? React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return React.createElement(Trigger, Object.assign({}, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n builtinPlacements: placements,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default React.forwardRef(Dropdown);","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nexport var MiniStoreContext = React.createContext(null);\nvar Provider = /** @class */ (function (_super) {\n __extends(Provider, _super);\n function Provider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Provider.prototype.render = function () {\n return (React.createElement(MiniStoreContext.Provider, { value: this.props.store }, this.props.children));\n };\n return Provider;\n}(React.Component));\nexport { Provider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { MiniStoreContext } from './Provider';\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\nvar defaultMapStateToProps = function () { return ({}); };\nexport function connect(mapStateToProps, options) {\n if (options === void 0) { options = {}; }\n var shouldSubscribe = !!mapStateToProps;\n var finalMapStateToProps = mapStateToProps || defaultMapStateToProps;\n return function wrapWithConnect(WrappedComponent) {\n var Connect = /** @class */ (function (_super) {\n __extends(Connect, _super);\n function Connect(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this.unsubscribe = null;\n _this.handleChange = function () {\n if (!_this.unsubscribe) {\n return;\n }\n var nextState = finalMapStateToProps(_this.store.getState(), _this.props);\n _this.setState({ subscribed: nextState });\n };\n _this.store = _this.context;\n _this.state = {\n subscribed: finalMapStateToProps(_this.store.getState(), props),\n store: _this.store,\n props: props,\n };\n return _this;\n }\n Connect.getDerivedStateFromProps = function (props, prevState) {\n // using ownProps\n if (mapStateToProps && mapStateToProps.length === 2 && props !== prevState.props) {\n return {\n subscribed: finalMapStateToProps(prevState.store.getState(), props),\n props: props,\n };\n }\n return { props: props };\n };\n Connect.prototype.componentDidMount = function () {\n this.trySubscribe();\n };\n Connect.prototype.componentWillUnmount = function () {\n this.tryUnsubscribe();\n };\n Connect.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (!shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state.subscribed, nextState.subscribed));\n };\n Connect.prototype.trySubscribe = function () {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n };\n Connect.prototype.tryUnsubscribe = function () {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n Connect.prototype.render = function () {\n var props = __assign(__assign(__assign({}, this.props), this.state.subscribed), { store: this.store });\n return React.createElement(WrappedComponent, __assign({}, props, { ref: this.props.miniStoreForwardedRef }));\n };\n Connect.displayName = \"Connect(\" + getDisplayName(WrappedComponent) + \")\";\n Connect.contextType = MiniStoreContext;\n return Connect;\n }(React.Component));\n if (options.forwardRef) {\n var forwarded = React.forwardRef(function (props, ref) {\n return React.createElement(Connect, __assign({}, props, { miniStoreForwardedRef: ref }));\n });\n return hoistStatics(forwarded, WrappedComponent);\n }\n return hoistStatics(Connect, WrappedComponent);\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport function create(initialState) {\n var state = initialState;\n var listeners = [];\n function setState(partial) {\n state = __assign(__assign({}, state), partial);\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n }\n function getState() {\n return state;\n }\n function subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n return {\n setState: setState,\n getState: getState,\n subscribe: subscribe,\n };\n}\n","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n var args = [].slice.call(arguments, 0);\n\n if (args.length === 1) {\n return args[0];\n }\n\n return function chainedFunction() {\n for (var i = 0; i < args.length; i++) {\n if (args[i] && args[i].apply) {\n args[i].apply(this, arguments);\n }\n }\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n// MIT License from https://github.com/kaimallea/isMobile\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\n\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\n\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : ''); // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n\n var tmp = ua.split('[FBAN');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n } // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n\n\n tmp = ua.split('Twitter');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device; // excludes 'other' devices and ipods, targeting touchscreen phones\n\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n return result;\n}\n\nvar defaultResult = _objectSpread(_objectSpread({}, isMobile()), {}, {\n isMobile: isMobile\n});\n\nexport default defaultResult;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport isMobile from './utils/isMobile';\nexport function noop() {}\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key || \"\".concat(prefix, \"item_\").concat(index);\n}\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return \"\".concat(eventKey, \"-menu-\");\n}\nexport function loopMenuItem(children, cb) {\n var index = -1;\n React.Children.forEach(children, function (c) {\n index += 1;\n\n if (c && c.type && c.type.isMenuItemGroup) {\n React.Children.forEach(c.props.children, function (c2) {\n index += 1;\n cb(c2, index);\n });\n } else {\n cb(c, index);\n }\n });\n}\nexport function loopMenuItemRecursively(children, keys, ret) {\n /* istanbul ignore if */\n if (!children || ret.find) {\n return;\n }\n\n React.Children.forEach(children, function (c) {\n if (c) {\n var construct = c.type;\n\n if (!construct || !(construct.isSubMenu || construct.isMenuItem || construct.isMenuItemGroup)) {\n return;\n }\n\n if (keys.indexOf(c.key) !== -1) {\n // eslint-disable-next-line no-param-reassign\n ret.find = true;\n } else if (c.props.children) {\n loopMenuItemRecursively(c.props.children, keys, ret);\n }\n }\n });\n}\nexport var menuAllProps = ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'onSelect', 'onDeselect', 'onDestroy', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'onOpenChange', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'onItemHover', 'onTitleMouseEnter', 'onTitleMouseLeave', 'onTitleClick', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator', 'motion', // the following keys found need to be removed from test regression\n'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon']; // ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\n\nexport var getWidth = function getWidth(elem) {\n var includeMargin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n\n if (width) {\n if (includeMargin) {\n var _getComputedStyle = getComputedStyle(elem),\n marginLeft = _getComputedStyle.marginLeft,\n marginRight = _getComputedStyle.marginRight;\n\n width += +marginLeft.replace('px', '') + +marginRight.replace('px', '');\n }\n\n width = +width.toFixed(6);\n }\n\n return width || 0;\n};\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n // eslint-disable-next-line no-param-reassign\n elem.style[styleProperty] = value;\n }\n};\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","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};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","import _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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport raf from \"rc-util/es/raf\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport { placements, placementsRtl } from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _objectSpread(_objectSpread({}, state.defaultActiveFirst), {}, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nexport var SubMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n var _super = _createSuper(SubMenu);\n\n function SubMenu(props) {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _super.call(this, props);\n\n _this.onDestroy = function (key) {\n _this.props.onDestroy(key);\n };\n /**\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n var menu = _this.menuInstance;\n var store = _this.props.store;\n\n var visible = _this.getVisible();\n\n if (keyCode === KeyCode.ENTER) {\n _this.onTitleClick(e);\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (visible) {\n menu.onKeyDown(e);\n } else {\n _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n }\n\n return true;\n }\n\n if (keyCode === KeyCode.LEFT) {\n var handled;\n\n if (visible) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n\n if (!handled) {\n _this.triggerOpenChange(false);\n\n handled = true;\n }\n\n return handled;\n }\n\n if (visible && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n\n return undefined;\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onPopupVisibleChange = function (visible) {\n _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props = _this.props,\n key = _this$props.eventKey,\n onMouseEnter = _this$props.onMouseEnter,\n store = _this$props.store;\n updateDefaultActiveFirst(store, _this.props.eventKey, false);\n onMouseEnter({\n key: key,\n domEvent: e\n });\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props2 = _this.props,\n parentMenu = _this$props2.parentMenu,\n eventKey = _this$props2.eventKey,\n onMouseLeave = _this$props2.onMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleMouseEnter = function (domEvent) {\n var _this$props3 = _this.props,\n key = _this$props3.eventKey,\n onItemHover = _this$props3.onItemHover,\n onTitleMouseEnter = _this$props3.onTitleMouseEnter;\n onItemHover({\n key: key,\n hover: true\n });\n onTitleMouseEnter({\n key: key,\n domEvent: domEvent\n });\n };\n\n _this.onTitleMouseLeave = function (e) {\n var _this$props4 = _this.props,\n parentMenu = _this$props4.parentMenu,\n eventKey = _this$props4.eventKey,\n onItemHover = _this$props4.onItemHover,\n onTitleMouseLeave = _this$props4.onTitleMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onItemHover({\n key: eventKey,\n hover: false\n });\n onTitleMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleClick = function (e) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n props.onTitleClick({\n key: props.eventKey,\n domEvent: e\n });\n\n if (props.triggerSubMenuAction === 'hover') {\n return;\n }\n\n _this.triggerOpenChange(!_this.getVisible(), 'click');\n\n updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n };\n\n _this.onSubMenuClick = function (info) {\n // in the case of overflowed submenu\n // onClick is not copied over\n if (typeof _this.props.onClick === 'function') {\n _this.props.onClick(_this.addKeyPath(info));\n }\n };\n\n _this.onSelect = function (info) {\n _this.props.onSelect(info);\n };\n\n _this.onDeselect = function (info) {\n _this.props.onDeselect(info);\n };\n\n _this.getPrefixCls = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n };\n\n _this.getActiveClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-active\");\n };\n\n _this.getDisabledClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n };\n\n _this.getSelectedClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-selected\");\n };\n\n _this.getOpenClassName = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n };\n\n _this.getVisible = function () {\n return _this.state.isOpen;\n };\n\n _this.getMode = function () {\n return _this.state.mode;\n };\n\n _this.saveMenuInstance = function (c) {\n // children menu instance\n _this.menuInstance = c;\n };\n\n _this.addKeyPath = function (info) {\n return _objectSpread(_objectSpread({}, info), {}, {\n keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n });\n };\n\n _this.triggerOpenChange = function (open, type) {\n var key = _this.props.eventKey;\n\n var openChange = function openChange() {\n _this.onOpenChange({\n key: key,\n item: _assertThisInitialized(_this),\n trigger: type,\n open: open\n });\n };\n\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n _this.mouseenterTimeout = setTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n };\n\n _this.isChildrenSelected = function () {\n var ret = {\n find: false\n };\n loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n return ret.find;\n };\n\n _this.isInlineMode = function () {\n return _this.getMode() === 'inline';\n };\n\n _this.adjustWidth = function () {\n /* istanbul ignore if */\n if (!_this.subMenuTitle || !_this.menuInstance) {\n return;\n }\n\n var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n return;\n }\n /* istanbul ignore next */\n\n\n popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n };\n\n _this.saveSubMenuTitle = function (subMenuTitle) {\n _this.subMenuTitle = subMenuTitle;\n };\n\n _this.getBaseProps = function () {\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n props = _assertThisInitialize2.props;\n\n var mergedMode = _this.getMode();\n\n return {\n mode: mergedMode === 'horizontal' ? 'vertical' : mergedMode,\n visible: _this.getVisible(),\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n onClick: _this.onSubMenuClick,\n onSelect: _this.onSelect,\n onDeselect: _this.onDeselect,\n onDestroy: _this.onDestroy,\n selectedKeys: props.selectedKeys,\n eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n openKeys: props.openKeys,\n motion: props.motion,\n onOpenChange: _this.onOpenChange,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: _assertThisInitialized(_this),\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n id: _this.internalMenuId,\n manualRef: _this.saveMenuInstance,\n itemIcon: props.itemIcon,\n expandIcon: props.expandIcon,\n direction: props.direction\n };\n };\n\n _this.getMotion = function (mode, visible) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n haveRendered = _assertThisInitialize3.haveRendered;\n\n var _this$props5 = _this.props,\n motion = _this$props5.motion,\n rootPrefixCls = _this$props5.rootPrefixCls; // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n\n var mergedMotion = _objectSpread(_objectSpread({}, motion), {}, {\n leavedClassName: \"\".concat(rootPrefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: haveRendered || !visible || mode !== 'inline'\n });\n\n return mergedMotion;\n };\n\n var store = props.store,\n eventKey = props.eventKey;\n\n var _store$getState = store.getState(),\n defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n _this.isRootMenu = false;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n _this.state = {\n mode: props.mode,\n isOpen: props.isOpen\n };\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this2 = this;\n\n var _this$props6 = this.props,\n mode = _this$props6.mode,\n parentMenu = _this$props6.parentMenu,\n manualRef = _this$props6.manualRef,\n isOpen = _this$props6.isOpen;\n\n var updateState = function updateState() {\n _this2.setState({\n mode: mode,\n isOpen: isOpen\n });\n }; // Delay sync when mode changed in case openKeys change not sync\n\n\n var isOpenChanged = isOpen !== this.state.isOpen;\n var isModeChanged = mode !== this.state.mode;\n\n if (isModeChanged || isOpenChanged) {\n raf.cancel(this.updateStateRaf);\n\n if (isModeChanged) {\n this.updateStateRaf = raf(updateState);\n } else {\n updateState();\n }\n } // invoke customized ref to expose component to mixin\n\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !(parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.isRootMenu) || !isOpen) {\n return;\n }\n\n this.minWidthTimeout = setTimeout(function () {\n return _this2.adjustWidth();\n }, 0);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$props7 = this.props,\n onDestroy = _this$props7.onDestroy,\n eventKey = _this$props7.eventKey;\n\n if (onDestroy) {\n onDestroy(eventKey);\n }\n /* istanbul ignore if */\n\n\n if (this.minWidthTimeout) {\n clearTimeout(this.minWidthTimeout);\n }\n /* istanbul ignore if */\n\n\n if (this.mouseenterTimeout) {\n clearTimeout(this.mouseenterTimeout);\n }\n\n raf.cancel(this.updateStateRaf);\n }\n }, {\n key: \"renderPopupMenu\",\n value: function renderPopupMenu(className, style) {\n var baseProps = this.getBaseProps();\n /**\n * zombiej: Why SubPopupMenu here?\n * Seems whatever popup or inline mode both will render SubPopupMenu.\n * It's controlled by Trigger for popup or not.\n */\n\n return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n id: this.internalMenuId,\n className: className,\n style: style\n }), this.props.children);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n var baseProps = this.getBaseProps();\n var mode = baseProps.mode,\n visible = baseProps.visible,\n forceSubMenuRender = baseProps.forceSubMenuRender,\n direction = baseProps.direction; // [Legacy] getMotion must be called before `haveRendered`\n\n var mergedMotion = this.getMotion(mode, visible);\n this.haveRendered = true;\n this.haveOpened = this.haveOpened || visible || forceSubMenuRender; // never rendered not planning to, don't render\n\n if (!this.haveOpened) {\n return React.createElement(\"div\", null);\n }\n\n var sharedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), _defineProperty({}, \"\".concat(baseProps.prefixCls, \"-rtl\"), direction === 'rtl'));\n\n if (!this.isInlineMode()) {\n return this.renderPopupMenu(sharedClassName);\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: baseProps.visible\n }, mergedMotion), function (_ref) {\n var className = _ref.className,\n style = _ref.style;\n var mergedClassName = classNames(sharedClassName, className);\n return _this3.renderPopupMenu(mergedClassName, style);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames2, _props$parentMenu, _classNames3;\n\n var props = _objectSpread({}, this.props);\n\n var visible = this.getVisible();\n var prefixCls = this.getPrefixCls();\n var inline = this.isInlineMode();\n var mergedMode = this.getMode();\n var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedMode), (_classNames2 = {}, _defineProperty(_classNames2, props.className, !!props.className), _defineProperty(_classNames2, this.getOpenClassName(), visible), _defineProperty(_classNames2, this.getActiveClassName(), props.active || visible && !inline), _defineProperty(_classNames2, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames2, this.getSelectedClassName(), this.isChildrenSelected()), _classNames2));\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n } else {\n guid += 1;\n this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n\n if (!props.disabled) {\n mouseEvents = {\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter\n }; // only works in title, not outer li\n\n titleClickEvents = {\n onClick: this.onTitleClick\n };\n titleMouseEvents = {\n onMouseEnter: this.onTitleMouseEnter,\n onMouseLeave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n var direction = props.direction;\n var isRTL = direction === 'rtl';\n\n if (inline) {\n if (isRTL) {\n style.paddingRight = props.inlineIndent * props.level;\n } else {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n }\n\n var ariaOwns = {}; // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n\n if (this.getVisible()) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n var icon = null;\n\n if (mergedMode !== 'horizontal') {\n icon = this.props.expandIcon; // ReactNode\n\n if (typeof this.props.expandIcon === 'function') {\n icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n }\n }\n\n var title = React.createElement(\"div\", Object.assign({\n ref: this.saveSubMenuTitle,\n style: style,\n className: \"\".concat(prefixCls, \"-title\"),\n role: \"button\"\n }, titleMouseEvents, titleClickEvents, {\n \"aria-expanded\": visible\n }, ariaOwns, {\n \"aria-haspopup\": \"true\",\n title: typeof props.title === 'string' ? props.title : undefined\n }), props.title, icon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }));\n var children = this.renderChildren();\n var getPopupContainer = ((_props$parentMenu = props.parentMenu) === null || _props$parentMenu === void 0 ? void 0 : _props$parentMenu.isRootMenu) ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[mergedMode];\n var popupAlign = props.popupOffset ? {\n offset: props.popupOffset\n } : {};\n var popupClassName = classNames((_classNames3 = {}, _defineProperty(_classNames3, props.popupClassName, props.popupClassName && !inline), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-rtl\"), isRTL), _classNames3));\n var disabled = props.disabled,\n triggerSubMenuAction = props.triggerSubMenuAction,\n subMenuOpenDelay = props.subMenuOpenDelay,\n forceSubMenuRender = props.forceSubMenuRender,\n subMenuCloseDelay = props.subMenuCloseDelay,\n builtinPlacements = props.builtinPlacements;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n var placement = isRTL ? Object.assign({}, placementsRtl, builtinPlacements) : Object.assign({}, placements, builtinPlacements);\n delete props.direction; // [Legacy] It's a fast fix,\n // but we should check if we can refactor this to make code more easy to understand\n\n var baseProps = this.getBaseProps();\n var mergedMotion = inline ? null : this.getMotion(baseProps.mode, baseProps.visible);\n return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n className: className,\n role: \"menuitem\"\n }), React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), popupClassName),\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: inline ? false : visible,\n popupAlign: popupAlign,\n popup: inline ? null : children,\n action: disabled || inline ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: this.onPopupVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, title), inline ? children : null);\n }\n }]);\n\n return SubMenu;\n}(React.Component);\nSubMenu.defaultProps = {\n onMouseEnter: noop,\n onMouseLeave: noop,\n onTitleMouseEnter: noop,\n onTitleMouseLeave: noop,\n onTitleClick: noop,\n manualRef: noop,\n mode: 'vertical',\n title: ''\n};\nvar connected = connect(function (_ref2, _ref3) {\n var openKeys = _ref2.openKeys,\n activeKey = _ref2.activeKey,\n selectedKeys = _ref2.selectedKeys;\n var eventKey = _ref3.eventKey,\n subMenuKey = _ref3.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\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 _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 * as ReactDOM from 'react-dom';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport { getWidth, setStyle, menuAllProps } from './util';\nvar MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\nvar FLOAT_PRECISION_ADJUST = 0.5;\n\nvar DOMWrap = /*#__PURE__*/function (_React$Component) {\n _inherits(DOMWrap, _React$Component);\n\n var _super = _createSuper(DOMWrap);\n\n function DOMWrap() {\n var _this;\n\n _classCallCheck(this, DOMWrap);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.mutationObserver = null; // original scroll size of the list\n\n _this.originalTotalWidth = 0; // copy of overflowed items\n\n _this.overflowedItems = []; // cache item of the original items (so we can track the size and order)\n\n _this.menuItemSizes = [];\n _this.cancelFrameId = null;\n _this.state = {\n lastVisibleIndex: undefined\n }; // get all valid menuItem nodes\n\n _this.getMenuItemNodes = function () {\n var prefixCls = _this.props.prefixCls;\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return [];\n } // filter out all overflowed indicator placeholder\n\n\n return [].slice.call(ul.children).filter(function (node) {\n return node.className.split(' ').indexOf(\"\".concat(prefixCls, \"-overflowed-submenu\")) < 0;\n });\n };\n\n _this.getOverflowedSubMenuItem = function (keyPrefix, overflowedItems, renderPlaceholder) {\n var _this$props = _this.props,\n overflowedIndicator = _this$props.overflowedIndicator,\n level = _this$props.level,\n mode = _this$props.mode,\n prefixCls = _this$props.prefixCls,\n theme = _this$props.theme;\n\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n } // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n\n\n var copy = _this.props.children[0];\n\n var _copy$props = copy.props,\n throwAway = _copy$props.children,\n title = _copy$props.title,\n propStyle = _copy$props.style,\n rest = _objectWithoutProperties(_copy$props, [\"children\", \"title\", \"style\"]);\n\n var style = _objectSpread({}, propStyle);\n\n var key = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n var eventKey = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n display: 'none'\n });\n } else if (renderPlaceholder) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute'\n });\n key = \"\".concat(key, \"-placeholder\");\n eventKey = \"\".concat(eventKey, \"-placeholder\");\n }\n\n var popupClassName = theme ? \"\".concat(prefixCls, \"-\").concat(theme) : '';\n var props = {};\n menuAllProps.forEach(function (k) {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n return React.createElement(SubMenu, Object.assign({\n title: overflowedIndicator,\n className: \"\".concat(prefixCls, \"-overflowed-submenu\"),\n popupClassName: popupClassName\n }, props, {\n key: key,\n eventKey: eventKey,\n disabled: false,\n style: style\n }), overflowedItems);\n }; // memorize rendered menuSize\n\n\n _this.setChildrenWidthAndResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n var lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1]; // need last overflowed indicator for calculating length;\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n var menuItemNodes = _this.getMenuItemNodes(); // reset display attribute for all hidden elements caused by overflow to calculate updated width\n // and then reset to original state after width calculation\n\n\n var overflowedItems = menuItemNodes.filter(function (c) {\n return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'inline-block');\n });\n _this.menuItemSizes = menuItemNodes.map(function (c) {\n return getWidth(c, true);\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'none');\n });\n _this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1], true);\n _this.originalTotalWidth = _this.menuItemSizes.reduce(function (acc, cur) {\n return acc + cur;\n }, 0);\n\n _this.handleResize(); // prevent the overflowed indicator from taking space;\n\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n };\n\n _this.handleResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var width = getWidth(ul);\n _this.overflowedItems = [];\n var currentSumWidth = 0; // index for last visible child in horizontal mode\n\n var lastVisibleIndex; // float number comparison could be problematic\n // e.g. 0.1 + 0.2 > 0.3 =====> true\n // thus using FLOAT_PRECISION_ADJUST as buffer to help the situation\n\n if (_this.originalTotalWidth > width + FLOAT_PRECISION_ADJUST) {\n lastVisibleIndex = -1;\n\n _this.menuItemSizes.forEach(function (liWidth) {\n currentSumWidth += liWidth;\n\n if (currentSumWidth + _this.overflowedIndicatorWidth <= width) {\n lastVisibleIndex += 1;\n }\n });\n }\n\n _this.setState({\n lastVisibleIndex: lastVisibleIndex\n });\n };\n\n return _this;\n }\n\n _createClass(DOMWrap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.setChildrenWidthAndResize();\n\n if (this.props.level === 1 && this.props.mode === 'horizontal') {\n var menuUl = ReactDOM.findDOMNode(this);\n\n if (!menuUl) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function () {\n var cancelFrameId = _this2.cancelFrameId;\n cancelAnimationFrame(cancelFrameId);\n _this2.cancelFrameId = requestAnimationFrame(_this2.setChildrenWidthAndResize);\n });\n });\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n this.mutationObserver = new MutationObserver(function () {\n _this2.resizeObserver.disconnect();\n\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n _this2.setChildrenWidthAndResize();\n });\n this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n cancelAnimationFrame(this.cancelFrameId);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n // need to take care of overflowed items in horizontal mode\n var lastVisibleIndex = this.state.lastVisibleIndex;\n return (children || []).reduce(function (acc, childNode, index) {\n var item = childNode;\n\n if (_this3.props.mode === 'horizontal') {\n var overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, []);\n\n if (lastVisibleIndex !== undefined && _this3.props.className.indexOf(\"\".concat(_this3.props.prefixCls, \"-root\")) !== -1) {\n if (index > lastVisibleIndex) {\n item = React.cloneElement(childNode, // 这里修改 eventKey 是为了防止隐藏状态下还会触发 openkeys 事件\n {\n style: {\n display: 'none'\n },\n eventKey: \"\".concat(childNode.props.eventKey, \"-hidden\"),\n\n /**\n * Legacy code. Here `className` never used:\n * https://github.com/react-component/menu/commit/4cd6b49fce9d116726f4ea00dda85325d6f26500#diff-e2fa48f75c2dd2318295cde428556a76R240\n */\n className: \"\".concat(MENUITEM_OVERFLOWED_CLASSNAME)\n });\n }\n\n if (index === lastVisibleIndex + 1) {\n _this3.overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c) {\n return React.cloneElement(c, // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n {\n key: c.props.eventKey,\n mode: 'vertical-left'\n });\n });\n overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, _this3.overflowedItems);\n }\n }\n\n var ret = [].concat(_toConsumableArray(acc), [overflowed, item]);\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(_this3.getOverflowedSubMenuItem(childNode.props.eventKey, [], true));\n }\n\n return ret;\n }\n\n return [].concat(_toConsumableArray(acc), [item]);\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n visible = _this$props2.visible,\n prefixCls = _this$props2.prefixCls,\n overflowedIndicator = _this$props2.overflowedIndicator,\n mode = _this$props2.mode,\n level = _this$props2.level,\n tag = _this$props2.tag,\n children = _this$props2.children,\n theme = _this$props2.theme,\n rest = _objectWithoutProperties(_this$props2, [\"visible\", \"prefixCls\", \"overflowedIndicator\", \"mode\", \"level\", \"tag\", \"children\", \"theme\"]);\n\n var Tag = tag;\n return React.createElement(Tag, Object.assign({}, rest), this.renderChildren(children));\n }\n }]);\n\n return DOMWrap;\n}(React.Component);\n\nDOMWrap.defaultProps = {\n tag: 'div',\n className: ''\n};\nexport default DOMWrap;","import _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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { connect } from 'mini-store';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport createChainedFunction from \"rc-util/es/createChainedFunction\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport shallowEqual from 'shallowequal';\nimport classNames from 'classnames';\nimport { getKeyFromChildrenIndex, loopMenuItem, noop, menuAllProps, isMobileDevice } from './util';\nimport DOMWrap from './DOMWrap';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n\n return arr.every(function (c) {\n return !!c.props.disabled;\n });\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n var state = store.getState();\n store.setState({\n activeKey: _objectSpread(_objectSpread({}, state.activeKey), {}, _defineProperty({}, menuId, activeKey))\n });\n}\n\nfunction getEventKey(props) {\n // when eventKey not available ,it's menu and return menu id '0-menu-'\n return props.eventKey || '0-menu-';\n}\n\nexport function getActiveKey(props, originalActiveKey) {\n var activeKey = originalActiveKey;\n var children = props.children,\n eventKey = props.eventKey;\n\n if (activeKey) {\n var found;\n loopMenuItem(children, function (c, i) {\n if (c && c.props && !c.props.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n\n if (found) {\n return activeKey;\n }\n }\n\n activeKey = null;\n\n if (props.defaultActiveFirst) {\n loopMenuItem(children, function (c, i) {\n if (!activeKey && c && !c.props.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n\n return activeKey;\n}\nexport function saveRef(c) {\n if (c) {\n var index = this.instanceArray.indexOf(c);\n\n if (index !== -1) {\n // update component if it's already inside instanceArray\n this.instanceArray[index] = c;\n } else {\n // add component if it's not in instanceArray yet;\n this.instanceArray.push(c);\n }\n }\n}\nexport var SubPopupMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubPopupMenu, _React$Component);\n\n var _super = _createSuper(SubPopupMenu);\n\n function SubPopupMenu(props) {\n var _this;\n\n _classCallCheck(this, SubPopupMenu);\n\n _this = _super.call(this, props);\n /**\n * all keyboard events callbacks run from here at first\n *\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n _this.onKeyDown = function (e, callback) {\n var keyCode = e.keyCode;\n var handled;\n\n _this.getFlatInstanceArray().forEach(function (obj) {\n if (obj && obj.props.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n\n if (handled) {\n return 1;\n }\n\n var activeItem = null;\n\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = _this.step(keyCode === KeyCode.UP ? -1 : 1);\n }\n\n if (activeItem) {\n e.preventDefault();\n updateActiveKey(_this.props.store, getEventKey(_this.props), activeItem.props.eventKey);\n\n if (typeof callback === 'function') {\n callback(activeItem);\n }\n\n return 1;\n }\n\n return undefined;\n };\n\n _this.onItemHover = function (e) {\n var key = e.key,\n hover = e.hover;\n updateActiveKey(_this.props.store, getEventKey(_this.props), hover ? key : null);\n };\n\n _this.onDeselect = function (selectInfo) {\n _this.props.onDeselect(selectInfo);\n };\n\n _this.onSelect = function (selectInfo) {\n _this.props.onSelect(selectInfo);\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onDestroy = function (key) {\n /* istanbul ignore next */\n _this.props.onDestroy(key);\n };\n\n _this.getFlatInstanceArray = function () {\n return _this.instanceArray;\n };\n\n _this.step = function (direction) {\n var children = _this.getFlatInstanceArray();\n\n var activeKey = _this.props.store.getState().activeKey[getEventKey(_this.props)];\n\n var len = children.length;\n\n if (!len) {\n return null;\n }\n\n if (direction < 0) {\n children = children.concat().reverse();\n } // find current activeIndex\n\n\n var activeIndex = -1;\n children.every(function (c, ci) {\n if (c && c.props.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n\n return true;\n });\n\n if (!_this.props.defaultActiveFirst && activeIndex !== -1 && allDisabled(children.slice(activeIndex, len - 1))) {\n return undefined;\n }\n\n var start = (activeIndex + 1) % len;\n var i = start;\n\n do {\n var child = children[i];\n\n if (!child || child.props.disabled) {\n i = (i + 1) % len;\n } else {\n return child;\n }\n } while (i !== start);\n\n return null;\n };\n\n _this.renderCommonMenuItem = function (child, i, extraProps) {\n var state = _this.props.store.getState();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var key = getKeyFromChildrenIndex(child, props.eventKey, i);\n var childProps = child.props; // https://github.com/ant-design/ant-design/issues/11517#issuecomment-477403055\n\n if (!childProps || typeof child.type === 'string') {\n return child;\n }\n\n var isActive = key === state.activeKey;\n\n var newChildProps = _objectSpread(_objectSpread({\n mode: childProps.mode || props.mode,\n level: props.level,\n inlineIndent: props.inlineIndent,\n renderMenuItem: _this.renderMenuItem,\n rootPrefixCls: props.prefixCls,\n index: i,\n parentMenu: props.parentMenu,\n // customized ref function, need to be invoked manually in child's componentDidMount\n manualRef: childProps.disabled ? undefined : createChainedFunction(child.ref, saveRef.bind(_assertThisInitialized(_this))),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n onClick: function onClick(e) {\n (childProps.onClick || noop)(e);\n\n _this.onClick(e);\n },\n onItemHover: _this.onItemHover,\n motion: props.motion,\n subMenuOpenDelay: props.subMenuOpenDelay,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n onOpenChange: _this.onOpenChange,\n onDeselect: _this.onDeselect,\n onSelect: _this.onSelect,\n builtinPlacements: props.builtinPlacements,\n itemIcon: childProps.itemIcon || _this.props.itemIcon,\n expandIcon: childProps.expandIcon || _this.props.expandIcon\n }, extraProps), {}, {\n direction: props.direction\n }); // ref: https://github.com/ant-design/ant-design/issues/13943\n\n\n if (props.mode === 'inline' || isMobileDevice()) {\n newChildProps.triggerSubMenuAction = 'click';\n }\n\n return React.cloneElement(child, _objectSpread(_objectSpread({}, newChildProps), {}, {\n key: key || i\n }));\n };\n\n _this.renderMenuItem = function (c, i, subMenuKey) {\n /* istanbul ignore if */\n if (!c) {\n return null;\n }\n\n var state = _this.props.store.getState();\n\n var extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: _this.props.triggerSubMenuAction,\n subMenuKey: subMenuKey\n };\n return _this.renderCommonMenuItem(c, i, extraProps);\n };\n\n props.store.setState({\n activeKey: _objectSpread(_objectSpread({}, props.store.getState().activeKey), {}, _defineProperty({}, props.eventKey, getActiveKey(props, props.activeKey)))\n });\n _this.instanceArray = [];\n return _this;\n }\n\n _createClass(SubPopupMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return this.props.visible || nextProps.visible || this.props.className !== nextProps.className || !shallowEqual(this.props.style, nextProps.style);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var props = this.props;\n var originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n var activeKey = getActiveKey(props, originalActiveKey);\n\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n } else if ('activeKey' in prevProps) {\n // If prev activeKey is not same as current activeKey,\n // we should set it.\n var prevActiveKey = getActiveKey(prevProps, pr