Version Description
Download this release
Release Info
Developer | devowl |
Plugin | 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
- CHANGELOG.md +67 -0
- inc/Assets.php +7 -3
- inc/Core.php +24 -29
- inc/Utils.php +3 -2
- inc/base/others/cachebuster-lib.php +1 -1
- inc/base/others/cachebuster.php +71 -151
- inc/comp/PresetsPluginIntegrations.php +35 -5
- inc/overrides/lite/Core.php +47 -2
- inc/presets/PresetIdentifierMap.php +8 -0
- inc/presets/free/blocker/YoutubePreset.php +3 -1
- inc/presets/pro/Analytify4Preset.php +43 -0
- inc/presets/pro/ExactMetrics4Preset.php +43 -0
- inc/presets/pro/KlaviyoPreset.php +50 -0
- inc/presets/pro/KlikenPreset.php +51 -0
- inc/presets/pro/MonsterInsights4Preset.php +43 -0
- inc/presets/pro/TiWooCommerceWishlistPreset.php +52 -0
- inc/presets/pro/WooCommerceGoogleAnalyticsPreset.php +1 -3
- inc/presets/pro/WooCommerceGoogleAnalyticsProPreset.php +54 -0
- inc/presets/pro/blocker/Analytify4Preset.php +34 -0
- inc/presets/pro/blocker/ExactMetrics4Preset.php +34 -0
- inc/presets/pro/blocker/GoogleMapsPreset.php +4 -1
- inc/presets/pro/blocker/HappyFormsPreset.php +79 -0
- inc/presets/pro/blocker/KlaviyoPreset.php +30 -0
- inc/presets/pro/blocker/KlikenPreset.php +31 -0
- inc/presets/pro/blocker/MonsterInsights4Preset.php +34 -0
- inc/presets/pro/blocker/TiWooCommerceWishlistPreset.php +42 -0
- inc/presets/pro/blocker/VimeoPreset.php +3 -1
- inc/presets/pro/blocker/WooCommerceGoogleAnalyticsProPreset.php +35 -0
- inc/scanner/Persist.php +7 -257
- inc/scanner/Query.php +5 -1
- inc/scanner/Scanner.php +55 -159
- inc/view/Banner.php +10 -1
- inc/view/BannerCustomize.php +40 -0
- inc/view/Blocker.php +35 -6
- inc/view/ConfigPage.php +8 -6
- inc/view/customize/banner/Mobile.php +129 -0
- inc/view/shortcode/LinkShortcode.php +1 -1
- index.php +1 -1
- languages/real-cookie-banner-de_AT.mo +0 -0
- languages/real-cookie-banner-de_AT.po +138 -1
- languages/real-cookie-banner-de_CH.mo +0 -0
- languages/real-cookie-banner-de_CH.po +138 -1
- languages/real-cookie-banner-de_CH_informal.mo +0 -0
- languages/real-cookie-banner-de_CH_informal.po +138 -1
- languages/real-cookie-banner-de_DE.mo +0 -0
- languages/real-cookie-banner-de_DE.po +138 -1
- languages/real-cookie-banner-de_DE_formal.mo +0 -0
- languages/real-cookie-banner-de_DE_formal.po +139 -1
- languages/real-cookie-banner.pot +70 -1
- public/dist/138.lite.js +2 -2
- public/dist/138.lite.js.map +1 -1
- public/dist/152.lite.js +2 -2
- public/dist/152.lite.js.map +1 -1
- public/dist/{440.lite.js → 173.lite.js} +2 -2
- 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', [$
|
410 |
-
add_action('DevOwl/RealQueue/Job/Actions', [$
|
411 |
-
add_action('DevOwl/RealQueue/Error/Description', [$
|
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', [$
|
465 |
-
add_action('save_post', [$
|
466 |
-
add_action('delete_post', [$
|
467 |
-
add_action('wp_trash_post', [$
|
468 |
-
add_action('untrash_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', [$
|
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 ($
|
555 |
-
$
|
556 |
-
$
|
557 |
-
add_action('shutdown', [$
|
558 |
add_filter('show_admin_bar', '__return_false');
|
559 |
-
add_filter('RCB/Blocker/
|
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 |
-
$
|
|
|
157 |
if ($includeSlugs) {
|
158 |
$slug = \explode('/', $pluginFile)[0];
|
159 |
-
$result[$slug] = $
|
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 (
|
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 (
|
3 |
return [
|
4 |
-
'src/public/dist/138.lite.js' => '
|
5 |
-
'src/public/dist/152.lite.js' => '
|
6 |
-
'src/public/dist/
|
7 |
-
'src/public/dist/
|
8 |
-
'src/public/dist/
|
9 |
-
'src/public/dist/
|
10 |
-
'src/public/dist/
|
11 |
-
'src/public/dist/
|
12 |
-
'src/public/dist/
|
13 |
-
'src/public/dist/
|
14 |
-
'src/public/dist/
|
15 |
-
'src/public/dist/
|
16 |
-
'src/public/dist/
|
17 |
-
'src/public/dist/
|
18 |
-
'src/public/dist/
|
19 |
-
'src/public/dist/
|
20 |
-
'src/public/dist/
|
21 |
-
'src/public/dist/
|
22 |
-
'src/public/dist/
|
23 |
-
'src/public/dist/
|
24 |
-
'src/public/dist/
|
25 |
-
'src/public/dist/
|
26 |
-
'src/public/dist/
|
27 |
-
'src/public/dist/
|
28 |
-
'src/public/dist/
|
29 |
-
'src/public/dist/
|
30 |
-
'src/public/dist/
|
31 |
-
'src/public/dist/admin.lite.js' => '
|
32 |
-
'src/public/dist/admin.pro.js' => '
|
33 |
-
'src/public/dist/banner_tcf.pro.js' => '
|
34 |
-
'src/public/dist/banner.lite.js' => '
|
35 |
-
'src/public/dist/banner.pro.js' => '
|
36 |
-
'src/public/dist/blocker_tcf.pro.js' => '
|
37 |
-
'src/public/dist/blocker.lite.js' => '
|
38 |
-
'src/public/dist/blocker.pro.js' => '
|
39 |
-
'src/public/dist/chunk-config-tab-blocker.lite.js' => '
|
40 |
-
'src/public/dist/chunk-config-tab-blocker.pro.js' => '
|
41 |
-
'src/public/dist/chunk-config-tab-consent.lite.js' => '
|
42 |
-
'src/public/dist/chunk-config-tab-consent.pro.js' => '
|
43 |
-
'src/public/dist/chunk-config-tab-cookies.lite.js' => '
|
44 |
-
'src/public/dist/chunk-config-tab-cookies.pro.js' => '
|
45 |
-
'src/public/dist/chunk-config-tab-dashboard.lite.js' => '
|
46 |
-
'src/public/dist/chunk-config-tab-dashboard.pro.js' => '
|
47 |
-
'src/public/dist/chunk-config-tab-import.lite.js' => '
|
48 |
-
'src/public/dist/chunk-config-tab-import.pro.js' => '
|
49 |
-
'src/public/dist/chunk-config-tab-licensing.lite.js' => '
|
50 |
-
'src/public/dist/chunk-config-tab-licensing.pro.js' => '
|
51 |
-
'src/public/dist/chunk-config-tab-scanner.lite.js' => '
|
52 |
-
'src/public/dist/chunk-config-tab-scanner.pro.js' => '
|
53 |
-
'src/public/dist/chunk-config-tab-settings.lite.js' => '
|
54 |
-
'src/public/dist/chunk-config-tab-settings.pro.js' => '
|
55 |
-
'src/public/dist/chunk-config-tab-tcf.lite.js' => '
|
56 |
-
'src/public/dist/chunk-config-tab-tcf.pro.js' => '
|
57 |
-
'src/public/dist/customize_banner.lite.js' => '
|
58 |
-
'src/public/dist/customize_banner.pro.js' => '
|
59 |
-
'src/public/dist/customize.lite.js' => '
|
60 |
-
'src/public/dist/customize.pro.js' => '
|
61 |
'src/public/dist/queue.lite.js' => '4808189af9984edb3d6aa51c8bc988a2',
|
62 |
'src/public/dist/queue.pro.js' => 'b695e3488bd6ffb2eb6cf68f96be530b',
|
63 |
-
'src/public/dist/vendor-admin.lite.js' => '
|
64 |
-
'src/public/dist/vendor-admin.pro.js' => '
|
65 |
-
'src/public/dist/vendor-banner_tcf.pro.js' => '
|
66 |
-
'src/public/dist/vendor-banner.lite.js' => '
|
67 |
-
'src/public/dist/vendor-banner.pro.js' => '
|
68 |
-
'src/public/dist/vendor-customize_banner.lite.js' => '
|
69 |
-
'src/public/dist/vendor-customize_banner.pro.js' => '
|
70 |
-
'src/public/dist/vendor-customize.lite.js' => '
|
71 |
-
'src/public/dist/vendor-customize.pro.js' => '
|
72 |
-
'src/public/dist/vendor-queue.lite.js' => '
|
73 |
-
'src/public/dist/vendor-queue.pro.js' => '
|
74 |
-
'src/public/dist/admin.css' => '
|
75 |
-
'src/public/dist/customize.css' => '
|
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\
|
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 |
-
|
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
|
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\
|
|
|
|
|
|
|
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\
|
8 |
-
use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\
|
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([
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
$persist->persist();
|
105 |
list($afterPresets, $afterExternalHosts) = $query->getScannedCombinedResults();
|
106 |
-
$this->doActionAddedRemoved(
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
// Print result as HTML comment
|
108 |
-
\printf('<!--rcb-scan:%s-->', \json_encode($
|
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(
|
|
|
|
|
|
|
|
|
|
|
|
|
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, $
|
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, $
|
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, $
|
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, $
|
186 |
$changed = \true;
|
187 |
$removedExternalHosts[] = $beforeExternalHost;
|
188 |
}
|
@@ -205,7 +211,7 @@ class Scanner {
|
|
205 |
$addedExternalHosts,
|
206 |
$removedPresets,
|
207 |
$removedExternalHosts,
|
208 |
-
$
|
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\
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
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 |
-
<
|
65 |
-
<script>(function(
|
66 |
-
|
67 |
-
|
|
|
|
|
68 |
});
|
69 |
-
})(document.getElementById("rcb-ad-block-checker
|
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/
|
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 |
* 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:
|
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:
|
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:
|
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:
|
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:
|
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)
|
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=
|
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=
|
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":"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","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=
|
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
|