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

Version Description

Download this release

Release Info

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

Code changes from version 3.3.0 to 3.4.0

CHANGELOG.md CHANGED
@@ -3,6 +3,58 @@
3
  All notable changes to this project will be documented in this file.
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  # 3.3.0 (2022-10-31)
7
 
8
 
3
  All notable changes to this project will be documented in this file.
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
 
6
+ # 3.4.0 (2022-11-09)
7
+
8
+
9
+ ### chore
10
+
11
+ * review 1 (CU-1xgphqf)
12
+
13
+
14
+ ### feat
15
+
16
+ * automatic deletion of consents (CU-1xgphqf)
17
+
18
+
19
+ ### fix
20
+
21
+ * compatibility with blocked content for Jet Smart Filters lazyloading (CU-332jgxy)
22
+ * compatibility with Google Maps in Sober theme (CU-332ev4y)
23
+ * compatibility with latest version of WPImmomakler
24
+ * compatibility with MapPress Google Maps (CU-32wpgv9)
25
+ * compatibility with MapsMarkerPro unblocking (CU-32wnjpu)
26
+ * compatibility with Vehica theme
27
+ * do not show preset check when editing a template in services or content blocker form (CU-2wmf0yr)
28
+ * duplicate technical definition in Vimeo and JetPack Site Stats template (CU-32wkt35, CU-332f81e)
29
+ * improved compatibility with Elementor and Elementor PRO to block individual widgets (CU-32q09j9)
30
+ * listen to elementor init with vanilla JS event listener instead of jQuery (CU-332h9tj)
31
+ * skip elementor library and skip in scanner (CU-332fn7n)
32
+ * visual content blocker not visible when using content in Kadence Blocks accordion module (CU-32pzryx)
33
+
34
+
35
+ ### refactor
36
+
37
+ * improved compatibility with PHP 8.1 (CU-1y7vqm6)
38
+ * static trait access (Assets enqueue features, CU-1y7vqm6)
39
+ * static trait access (Assets handles, CU-1y7vqm6)
40
+ * static trait access (Assets types, CU-1y7vqm6)
41
+ * static trait access (Localization i18n public folder, CU-1y7vqm6)
42
+ * static trait access (Localization, CU-1y7vqm6)
43
+
44
+
45
+ ### revert
46
+
47
+ * handle child themes correctly when blocked (CU-32pymrn)
48
+
49
+
50
+ ### style
51
+
52
+ * full width content blocker for elementor widgets
53
+
54
+
55
+
56
+
57
+
58
  # 3.3.0 (2022-10-31)
59
 
60
 
README.txt CHANGED
@@ -1,7 +1,7 @@
1
  === Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent ===
2
  Contributors: devowl, mguenter, jankarres, mrguenter, styx
3
  Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
4
- Stable tag: 3.3.0
5
  Requires at least: 5.2
6
  Requires PHP: 7.2.0
7
  Tested up to: 6.1
1
  === Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent ===
2
  Contributors: devowl, mguenter, jankarres, mrguenter, styx
3
  Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
4
+ Stable tag: 3.4.0
5
  Requires at least: 5.2
6
  Requires PHP: 7.2.0
7
  Tested up to: 6.1
inc/Assets.php CHANGED
@@ -23,6 +23,7 @@ use DevOwl\RealCookieBanner\view\customize\banner\Texts;
23
  use DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\Core as RpmWpClientCore;
24
  use DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\license\License;
25
  use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Assets as UtilsAssets;
 
26
  // @codeCoverageIgnoreStart
27
  \defined('ABSPATH') or die('No script kiddies please!');
28
  // Avoid direct file request
@@ -96,9 +97,17 @@ class Assets {
96
  $shouldLoadAssets = $banner->shouldLoadAssets($type);
97
  $realUtils = RCB_ROOT_SLUG . '-real-utils-helper';
98
  // Do not enqueue anything if not needed
99
- if (!$isConfigPage && !\in_array($type, [self::$TYPE_CUSTOMIZE], \true) && !$shouldLoadAssets) {
 
 
 
 
 
 
 
 
100
  // We need to enqueue real-utils helper always in backend to keep cross-selling intact
101
- if ($type === self::$TYPE_ADMIN) {
102
  $this->enqueueUtils();
103
  wp_enqueue_script($realUtils);
104
  wp_enqueue_style($realUtils);
@@ -110,13 +119,16 @@ class Assets {
110
  // Our utils package relies on jQuery, but this shouldn't be a problem as the most themes still use jQuery (might be replaced with https://github.com/github/fetch)
111
  $scriptDeps = [];
112
  // Mobx should not be loaded on any frontend page, but in customize preview (see `customize_banner.tsx`)
113
- if ($type !== self::$TYPE_FRONTEND || is_customize_preview()) {
 
 
 
114
  $this->enqueueMobx();
115
  \array_unshift(
116
  $scriptDeps,
117
- self::$HANDLE_REACT,
118
- self::$HANDLE_REACT_DOM,
119
- self::$HANDLE_MOBX,
120
  'moment',
121
  'wp-i18n',
122
  'wp-editor',
@@ -135,7 +147,7 @@ class Assets {
135
  // Enqueue plugin entry points
136
  if ($isConfigPage) {
137
  $handle = $this->enqueueAdminPage($scriptDeps);
138
- } elseif ($type === self::$TYPE_CUSTOMIZE) {
139
  $handle = $this->enqueueScript(
140
  'customize',
141
  [[$this->isPro(), 'customize.pro.js'], 'customize.lite.js'],
@@ -147,7 +159,14 @@ class Assets {
147
  // Enqueue blocker if enabled
148
  if (
149
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive() &&
150
- \in_array($type, [self::$TYPE_FRONTEND, self::$TYPE_LOGIN], \true)
 
 
 
 
 
 
 
151
  ) {
152
  $this->enqueueBlocker(\array_merge($scriptDeps, [$handle]));
153
  }
@@ -157,7 +176,14 @@ class Assets {
157
  $handle,
158
  'realCookieBanner',
159
  $this->localizeScript($type),
160
- !\in_array($type, [self::$TYPE_FRONTEND, self::$TYPE_LOGIN], \true) || is_customize_preview()
 
 
 
 
 
 
 
161
  );
162
  }
163
  /**
@@ -181,7 +207,7 @@ class Assets {
181
  [$useNonMinifiedSources, 'react-router-dom/umd/react-router-dom.js'],
182
  'react-router-dom/umd/react-router-dom.min.js'
183
  ],
184
- [self::$HANDLE_REACT_DOM]
185
  )
186
  );
187
  // @antv/g2
@@ -264,10 +290,14 @@ class Assets {
264
  $excludeAssets = \DevOwl\RealCookieBanner\Core::getInstance()->getExcludeAssets();
265
  $preloadJs = ['iabtcf-stub', $handle];
266
  $preloadCss = ['animate-css'];
267
- $advancedFeatures = [self::$ADVANCED_ENQUEUE_FEATURE_PRIORITY_QUEUE];
 
 
268
  if (!$excludeAssets->hasFailureSupportPluginActive()) {
269
- $advancedFeatures[] = self::$ADVANCED_ENQUEUE_FEATURE_DEFER;
270
- $advancedFeatures[] = self::$ADVANCED_ENQUEUE_FEATURE_PRELOADING;
 
 
271
  }
272
  $this->enableAdvancedEnqueue($preloadJs, $advancedFeatures);
273
  $this->enableAdvancedEnqueue($preloadCss, $advancedFeatures, 'style');
@@ -340,7 +370,7 @@ class Assets {
340
  $isDevLicense =
341
  $licenseActivation->getInstallationType() ===
342
  \DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\license\License::INSTALLATION_TYPE_DEVELOPMENT;
343
- if ($context === self::$TYPE_ADMIN) {
344
  $colorScheme = \DevOwl\RealCookieBanner\Utils::get_admin_colors();
345
  if (\count($colorScheme) < 4) {
346
  // Backwards-compatibility: The "modern" color scheme has only three colors, but for all
@@ -389,7 +419,16 @@ class Assets {
389
  $result = $bannerCustomize->localizeValues();
390
  $bannerCustomize->expandLocalizeValues($result);
391
  }
392
- if (\in_array($context, [self::$TYPE_ADMIN, self::$TYPE_CUSTOMIZE], \true)) {
 
 
 
 
 
 
 
 
 
393
  /**
394
  * Create customized hints for specific actions in frontend. Currently supported:
395
  * `deleteCookieGroup`, `deleteCookie`, `export`, `dashboardTile`, `proDialog`. For detailed
23
  use DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\Core as RpmWpClientCore;
24
  use DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\license\License;
25
  use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Assets as UtilsAssets;
26
+ use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants;
27
  // @codeCoverageIgnoreStart
28
  \defined('ABSPATH') or die('No script kiddies please!');
29
  // Avoid direct file request
97
  $shouldLoadAssets = $banner->shouldLoadAssets($type);
98
  $realUtils = RCB_ROOT_SLUG . '-real-utils-helper';
99
  // Do not enqueue anything if not needed
100
+ if (
101
+ !$isConfigPage &&
102
+ !\in_array(
103
+ $type,
104
+ [\DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_CUSTOMIZE],
105
+ \true
106
+ ) &&
107
+ !$shouldLoadAssets
108
+ ) {
109
  // We need to enqueue real-utils helper always in backend to keep cross-selling intact
110
+ if ($type === \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_ADMIN) {
111
  $this->enqueueUtils();
112
  wp_enqueue_script($realUtils);
113
  wp_enqueue_style($realUtils);
119
  // Our utils package relies on jQuery, but this shouldn't be a problem as the most themes still use jQuery (might be replaced with https://github.com/github/fetch)
120
  $scriptDeps = [];
121
  // Mobx should not be loaded on any frontend page, but in customize preview (see `customize_banner.tsx`)
122
+ if (
123
+ $type !== \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND ||
124
+ is_customize_preview()
125
+ ) {
126
  $this->enqueueMobx();
127
  \array_unshift(
128
  $scriptDeps,
129
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_HANDLE_REACT,
130
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_HANDLE_REACT_DOM,
131
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_HANDLE_MOBX,
132
  'moment',
133
  'wp-i18n',
134
  'wp-editor',
147
  // Enqueue plugin entry points
148
  if ($isConfigPage) {
149
  $handle = $this->enqueueAdminPage($scriptDeps);
150
+ } elseif ($type === \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_CUSTOMIZE) {
151
  $handle = $this->enqueueScript(
152
  'customize',
153
  [[$this->isPro(), 'customize.pro.js'], 'customize.lite.js'],
159
  // Enqueue blocker if enabled
160
  if (
161
  \DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive() &&
162
+ \in_array(
163
+ $type,
164
+ [
165
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND,
166
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_LOGIN
167
+ ],
168
+ \true
169
+ )
170
  ) {
171
  $this->enqueueBlocker(\array_merge($scriptDeps, [$handle]));
172
  }
176
  $handle,
177
  'realCookieBanner',
178
  $this->localizeScript($type),
179
+ !\in_array(
180
+ $type,
181
+ [
182
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND,
183
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_LOGIN
184
+ ],
185
+ \true
186
+ ) || is_customize_preview()
187
  );
188
  }
189
  /**
207
  [$useNonMinifiedSources, 'react-router-dom/umd/react-router-dom.js'],
208
  'react-router-dom/umd/react-router-dom.min.js'
209
  ],
210
+ [\DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_HANDLE_REACT_DOM]
211
  )
212
  );
213
  // @antv/g2
290
  $excludeAssets = \DevOwl\RealCookieBanner\Core::getInstance()->getExcludeAssets();
291
  $preloadJs = ['iabtcf-stub', $handle];
292
  $preloadCss = ['animate-css'];
293
+ $advancedFeatures = [
294
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_ADVANCED_ENQUEUE_FEATURE_PRIORITY_QUEUE
295
+ ];
296
  if (!$excludeAssets->hasFailureSupportPluginActive()) {
297
+ $advancedFeatures[] =
298
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_ADVANCED_ENQUEUE_FEATURE_DEFER;
299
+ $advancedFeatures[] =
300
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_ADVANCED_ENQUEUE_FEATURE_PRELOADING;
301
  }
302
  $this->enableAdvancedEnqueue($preloadJs, $advancedFeatures);
303
  $this->enableAdvancedEnqueue($preloadCss, $advancedFeatures, 'style');
370
  $isDevLicense =
371
  $licenseActivation->getInstallationType() ===
372
  \DevOwl\RealCookieBanner\Vendor\DevOwl\RealProductManagerWpClient\license\License::INSTALLATION_TYPE_DEVELOPMENT;
373
+ if ($context === \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_ADMIN) {
374
  $colorScheme = \DevOwl\RealCookieBanner\Utils::get_admin_colors();
375
  if (\count($colorScheme) < 4) {
376
  // Backwards-compatibility: The "modern" color scheme has only three colors, but for all
419
  $result = $bannerCustomize->localizeValues();
420
  $bannerCustomize->expandLocalizeValues($result);
421
  }
422
+ if (
423
+ \in_array(
424
+ $context,
425
+ [
426
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_ADMIN,
427
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_CUSTOMIZE
428
+ ],
429
+ \true
430
+ )
431
+ ) {
432
  /**
433
  * Create customized hints for specific actions in frontend. Currently supported:
434
  * `deleteCookieGroup`, `deleteCookie`, `export`, `dashboardTile`, `proDialog`. For detailed
inc/Core.php CHANGED
@@ -334,6 +334,16 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
334
  \DevOwl\RealCookieBanner\settings\Consent::getInstance(),
335
  'option_cookie_duration'
336
  ]);
 
 
 
 
 
 
 
 
 
 
337
  // Cache relevant hooks
338
  add_filter('RCB/Customize/Updated', [\DevOwl\RealCookieBanner\Cache::getInstance(), 'customize_updated']);
339
  add_filter('RCB/Settings/Updated', [\DevOwl\RealCookieBanner\Cache::getInstance(), 'settings_updated']);
334
  \DevOwl\RealCookieBanner\settings\Consent::getInstance(),
335
  'option_cookie_duration'
336
  ]);
337
+ add_filter('option_' . \DevOwl\RealCookieBanner\settings\Consent::SETTING_CONSENT_DURATION, [
338
+ \DevOwl\RealCookieBanner\settings\Consent::getInstance(),
339
+ 'option_consent_duration'
340
+ ]);
341
+ add_action(
342
+ 'update_option_' . \DevOwl\RealCookieBanner\settings\Consent::SETTING_CONSENT_DURATION,
343
+ [\DevOwl\RealCookieBanner\settings\Consent::getInstance(), 'update_option_consent_transient_deletion'],
344
+ 10,
345
+ 2
346
+ );
347
  // Cache relevant hooks
348
  add_filter('RCB/Customize/Updated', [\DevOwl\RealCookieBanner\Cache::getInstance(), 'customize_updated']);
349
  add_filter('RCB/Settings/Updated', [\DevOwl\RealCookieBanner\Cache::getInstance(), 'settings_updated']);
inc/Localization.php CHANGED
@@ -4,6 +4,7 @@ namespace DevOwl\RealCookieBanner;
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin;
6
  use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\Sync;
 
7
  use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Localization as UtilsLocalization;
8
  use DevOwl\RealCookieBanner\base\UtilsProvider;
9
  use DevOwl\RealCookieBanner\lite\settings\TcfVendorConfiguration;
@@ -32,10 +33,16 @@ class Localization {
32
  * @return string[]
33
  */
34
  protected function getPackageInfo($type) {
35
- if ($type === \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Localization::$PACKAGE_INFO_BACKEND) {
36
  return [path_join(RCB_PATH, 'languages'), RCB_TD];
37
  } else {
38
- return [path_join(RCB_PATH, \DevOwl\RealCookieBanner\Assets::$PUBLIC_JSON_I18N), RCB_TD];
 
 
 
 
 
 
39
  }
40
  }
41
  /**
4
 
5
  use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin;
6
  use DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\Sync;
7
+ use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants;
8
  use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Localization as UtilsLocalization;
9
  use DevOwl\RealCookieBanner\base\UtilsProvider;
10
  use DevOwl\RealCookieBanner\lite\settings\TcfVendorConfiguration;
33
  * @return string[]
34
  */
35
  protected function getPackageInfo($type) {
36
+ if ($type === \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::LOCALIZATION_BACKEND) {
37
  return [path_join(RCB_PATH, 'languages'), RCB_TD];
38
  } else {
39
+ return [
40
+ path_join(
41
+ RCB_PATH,
42
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::LOCALIZATION_PUBLIC_JSON_I18N
43
+ ),
44
+ RCB_TD
45
+ ];
46
  }
47
  }
48
  /**
inc/MyConsent.php CHANGED
@@ -159,6 +159,7 @@ class MyConsent {
159
  \DevOwl\RealCookieBanner\Stats::getInstance()->persist($consent, $previousDecision, $previousCreated);
160
  }
161
  $result = \array_merge($this->getCurrentUser(\true), ['updated' => \true, 'consent_id' => $insertId]);
 
162
  /**
163
  * An user has given a new consent.
164
  *
159
  \DevOwl\RealCookieBanner\Stats::getInstance()->persist($consent, $previousDecision, $previousCreated);
160
  }
161
  $result = \array_merge($this->getCurrentUser(\true), ['updated' => \true, 'consent_id' => $insertId]);
162
+ \DevOwl\RealCookieBanner\UserConsent::getInstance()->scheduleDeletionOfConsents();
163
  /**
164
  * An user has given a new consent.
165
  *
inc/UserConsent.php CHANGED
@@ -8,6 +8,7 @@ use DevOwl\RealCookieBanner\lite\view\blocker\WordPressImagePreviewCache;
8
  use DevOwl\RealCookieBanner\settings\Cookie;
9
  use DevOwl\RealCookieBanner\settings\CookieGroup;
10
  use DevOwl\RealCookieBanner\settings\Revision;
 
11
  use DevOwl\RealCookieBanner\view\Blocker;
12
  use DevOwl\RealCookieBanner\view\blocker\Plugin;
13
  use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
@@ -472,4 +473,42 @@ class UserConsent {
472
  public static function getInstance() {
473
  return self::$me === null ? (self::$me = new \DevOwl\RealCookieBanner\UserConsent()) : self::$me;
474
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  }
8
  use DevOwl\RealCookieBanner\settings\Cookie;
9
  use DevOwl\RealCookieBanner\settings\CookieGroup;
10
  use DevOwl\RealCookieBanner\settings\Revision;
11
+ use DevOwl\RealCookieBanner\settings\Consent;
12
  use DevOwl\RealCookieBanner\view\Blocker;
13
  use DevOwl\RealCookieBanner\view\blocker\Plugin;
14
  use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
473
  public static function getInstance() {
474
  return self::$me === null ? (self::$me = new \DevOwl\RealCookieBanner\UserConsent()) : self::$me;
475
  }
476
+ /**
477
+ * Delete consents older than set duration time
478
+ */
479
+ public function scheduleDeletionOfConsents() {
480
+ $currentTime = current_time('mysql');
481
+ $lastDeletion = get_transient(\DevOwl\RealCookieBanner\settings\Consent::TRANSIENT_SCHEDULE_CONSENTS_DELETION);
482
+ if ($lastDeletion === \false) {
483
+ $this->deleteConsentsByConsentDurationPeriod();
484
+ set_transient(
485
+ \DevOwl\RealCookieBanner\settings\Consent::TRANSIENT_SCHEDULE_CONSENTS_DELETION,
486
+ $currentTime,
487
+ DAY_IN_SECONDS
488
+ );
489
+ }
490
+ }
491
+ /**
492
+ * Executing query for deletion consents
493
+ */
494
+ private function deleteConsentsByConsentDurationPeriod() {
495
+ global $wpdb;
496
+ $consent = \DevOwl\RealCookieBanner\settings\Consent::getInstance();
497
+ $consentDuration = $consent->getConsentDuration();
498
+ $endDate = \gmdate('Y-m-d', \strtotime('-' . $consentDuration . ' months'));
499
+ $table_name = $this->getTableName(\DevOwl\RealCookieBanner\UserConsent::TABLE_NAME);
500
+ $table_name_revision = $this->getTableName(\DevOwl\RealCookieBanner\settings\Revision::TABLE_NAME);
501
+ $table_name_revision_independent = $this->getTableName(
502
+ \DevOwl\RealCookieBanner\settings\Revision::TABLE_NAME_INDEPENDENT
503
+ );
504
+ // phpcs:disable WordPress.DB
505
+ $wpdb->query($wpdb->prepare("DELETE FROM `{$table_name}` WHERE `created` < %s", $endDate));
506
+ $wpdb->query(
507
+ "DELETE r FROM {$table_name_revision} AS r WHERE NOT EXISTS(SELECT * FROM {$table_name} AS c WHERE r.hash = c.revision)"
508
+ );
509
+ $wpdb->query(
510
+ "DELETE ri FROM {$table_name_revision_independent} AS ri WHERE NOT EXISTS(SELECT * FROM {$table_name} AS c WHERE ri.hash = c.revision_independent)"
511
+ );
512
+ // phpcs:enable WordPress.DB
513
+ }
514
  }
inc/base/others/cachebuster-lib.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- /* This file was automatically generated (Mon Oct 31 2022 14:59:23 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'animate.css' => '4.1.1',
5
  'mobx' => '4.15.7',
1
  <?php
2
+ /* This file was automatically generated (Wed Nov 09 2022 09:00:25 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,12 +1,12 @@
1
  <?php
2
- /* This file was automatically generated (Mon Oct 31 2022 14:59:23 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'src/public/dist/185.lite.js' => '9e887474aba51b4f9928199a56f2bdf3',
5
  'src/public/dist/185.pro.js' => 'adea5d90b090833e476303edf2de81e5',
6
  'src/public/dist/258.pro.js' => '1b427e24efdc4a854238aa3b2864ae5e',
7
  'src/public/dist/307.lite.js' => 'ef5766501c10758ca07612d07d1bd641',
8
  'src/public/dist/307.pro.js' => '16a55887d340c3cde6fa670a59e7a808',
9
- 'src/public/dist/327.pro.js' => 'f662dba1f94e056f67c873aa1d9bf7ea',
10
  'src/public/dist/414.lite.js' => '5456c68d06440f14d954b67d0d996fb2',
11
  'src/public/dist/414.pro.js' => 'a2b2d99e2f19dd74d8c75453352a7d66',
12
  'src/public/dist/446.lite.js' => '4e5f32128bc8df46da6ec013e6af48c6',
@@ -19,7 +19,7 @@ return [
19
  'src/public/dist/544.pro.js' => 'f0459fb8ea0293eb080c372035002ada',
20
  'src/public/dist/578.lite.js' => 'a66be43e1139603583bcc05e75d1bfb5',
21
  'src/public/dist/578.pro.js' => '06fbb448378d3e615b27de0128a2f9d3',
22
- 'src/public/dist/637.lite.js' => 'f10ed5328b98972312f037462bfb9639',
23
  'src/public/dist/647.pro.js' => '50ae6c21b92ac9ea861c8c638c83b687',
24
  'src/public/dist/737.lite.js' => '1aca0be3cefe4e46110f6699804e4a7c',
25
  'src/public/dist/737.pro.js' => '862c36d304e10caf212dc00aa01045f1',
@@ -33,38 +33,38 @@ return [
33
  'src/public/dist/853.pro.js' => 'e4a8499e561caacb0d9a93059a7078e2',
34
  'src/public/dist/902.lite.js' => '70499626f7c4e62fcf5fb49aa6b80c4c',
35
  'src/public/dist/902.pro.js' => 'faf26675683d9811b89eb7092fb85144',
36
- 'src/public/dist/925.pro.js' => '5672b3803aaedfd4a37f240acb250ad3',
37
- 'src/public/dist/932.lite.js' => '418f2c32a03cf522880265416a1c2e7b',
38
- 'src/public/dist/admin.lite.js' => '6aa6f7b5dfd8eb1f82665ea1ae836b23',
39
- 'src/public/dist/admin.pro.js' => 'a5b4b46e27583084a27ed60e8a60639b',
40
- 'src/public/dist/banner_tcf.pro.js' => '682628977d444b952ec9f5e8b6dff4b2',
41
- 'src/public/dist/banner.lite.js' => '1334e70482a888ecef8bf09b2eb78a3a',
42
- 'src/public/dist/banner.pro.js' => '4e94ba324b76f9c24697ccba3157cddc',
43
- 'src/public/dist/blocker_tcf.pro.js' => 'e08c46fa723217492c3c41713ff7153c',
44
- 'src/public/dist/blocker.lite.js' => '1a00675e063172ba2a07bd181678dfc5',
45
- 'src/public/dist/blocker.pro.js' => '577d8f281f77870784dfe107af1e2d7a',
46
- 'src/public/dist/chunk-config-tab-blocker.lite.js' => '61854deede130308c6c4498f844a2b64',
47
- 'src/public/dist/chunk-config-tab-blocker.pro.js' => '9b3123653faf27f75826ef23d28f60e5',
48
- 'src/public/dist/chunk-config-tab-consent.lite.js' => '4fe740b5a6622bab252e248227863c30',
49
- 'src/public/dist/chunk-config-tab-consent.pro.js' => '7d10ca0e28be3c0919883a93056cf05b',
50
- 'src/public/dist/chunk-config-tab-cookies.lite.js' => '2e653c350e51fce9b3f74096f89b6424',
51
- 'src/public/dist/chunk-config-tab-cookies.pro.js' => '7b65af4a6dd7d093e37f94d49a8d30a9',
52
  'src/public/dist/chunk-config-tab-dashboard.lite.js' => 'ea5bdd77f694dc2713f79e0ae78ce5eb',
53
  'src/public/dist/chunk-config-tab-dashboard.pro.js' => '3169cc92c5e660e3eca631d2eff612f0',
54
- 'src/public/dist/chunk-config-tab-import.lite.js' => '768e5e1f407b0ac1878fbe100fb6cebb',
55
- 'src/public/dist/chunk-config-tab-import.pro.js' => 'a5facd66bb06bb0ecb8f544a0bee2f2b',
56
  'src/public/dist/chunk-config-tab-licensing.lite.js' => '0c72a01b908f09e3052d1a83699e6c8c',
57
  'src/public/dist/chunk-config-tab-licensing.pro.js' => 'ee12ec03ad1425685a36d919791d1a18',
58
- 'src/public/dist/chunk-config-tab-scanner.lite.js' => 'c6cd38aec90a1054ea9e7680a8ec9961',
59
- 'src/public/dist/chunk-config-tab-scanner.pro.js' => 'f3f722a47c40d7b0c1574c863aeb9df8',
60
- 'src/public/dist/chunk-config-tab-settings.lite.js' => '742c1cc46141f5aafaa1c611b7231f89',
61
- 'src/public/dist/chunk-config-tab-settings.pro.js' => '89a0a817f7b7c2a6732dd612f9fcaf9d',
62
  'src/public/dist/chunk-config-tab-tcf.lite.js' => '68803b92a79b9f27ffef71008bee66a0',
63
  'src/public/dist/chunk-config-tab-tcf.pro.js' => '3932f3100529c45f93e24ccc1ddf9bca',
64
- 'src/public/dist/customize_banner.lite.js' => 'b7ab33c86a2b1dba5ee1e07ce5abef09',
65
- 'src/public/dist/customize_banner.pro.js' => '56b121a623eca07ded49120299342b41',
66
- 'src/public/dist/customize.lite.js' => '8939e3211eccb6eeb607dc7e8d235e10',
67
- 'src/public/dist/customize.pro.js' => '839b8798d5b85471d5b4dcd89dc80554',
68
  'src/public/dist/queue.lite.js' => '6cc52e57a6708e527df2732e9b919cc0',
69
  'src/public/dist/queue.pro.js' => '29eb2e2dba077fb3ddc19ed0d78d5af1',
70
  'src/public/dist/vendor-admin.lite.js' => '756618fd0f597fd33c4545b90602b75a',
1
  <?php
2
+ /* This file was automatically generated (Wed Nov 09 2022 09:00:25 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'src/public/dist/185.lite.js' => '9e887474aba51b4f9928199a56f2bdf3',
5
  'src/public/dist/185.pro.js' => 'adea5d90b090833e476303edf2de81e5',
6
  'src/public/dist/258.pro.js' => '1b427e24efdc4a854238aa3b2864ae5e',
7
  'src/public/dist/307.lite.js' => 'ef5766501c10758ca07612d07d1bd641',
8
  'src/public/dist/307.pro.js' => '16a55887d340c3cde6fa670a59e7a808',
9
+ 'src/public/dist/327.pro.js' => 'c80e32fe03b708c5ac8c841376cee7f0',
10
  'src/public/dist/414.lite.js' => '5456c68d06440f14d954b67d0d996fb2',
11
  'src/public/dist/414.pro.js' => 'a2b2d99e2f19dd74d8c75453352a7d66',
12
  'src/public/dist/446.lite.js' => '4e5f32128bc8df46da6ec013e6af48c6',
19
  'src/public/dist/544.pro.js' => 'f0459fb8ea0293eb080c372035002ada',
20
  'src/public/dist/578.lite.js' => 'a66be43e1139603583bcc05e75d1bfb5',
21
  'src/public/dist/578.pro.js' => '06fbb448378d3e615b27de0128a2f9d3',
22
+ 'src/public/dist/637.lite.js' => '4ad4390c92883681f1728f76785911cb',
23
  'src/public/dist/647.pro.js' => '50ae6c21b92ac9ea861c8c638c83b687',
24
  'src/public/dist/737.lite.js' => '1aca0be3cefe4e46110f6699804e4a7c',
25
  'src/public/dist/737.pro.js' => '862c36d304e10caf212dc00aa01045f1',
33
  'src/public/dist/853.pro.js' => 'e4a8499e561caacb0d9a93059a7078e2',
34
  'src/public/dist/902.lite.js' => '70499626f7c4e62fcf5fb49aa6b80c4c',
35
  'src/public/dist/902.pro.js' => 'faf26675683d9811b89eb7092fb85144',
36
+ 'src/public/dist/925.pro.js' => '4b48b245be01b7935d93f4fbd6c546bd',
37
+ 'src/public/dist/932.lite.js' => 'c1d5df6de963314380f6c2ae9183da87',
38
+ 'src/public/dist/admin.lite.js' => '32ab3b5b60684c8c038c249268ea7fd0',
39
+ 'src/public/dist/admin.pro.js' => 'a8a05aec70b950e9ecaf87d0b1e8e582',
40
+ 'src/public/dist/banner_tcf.pro.js' => 'a4059fcfc7b756e0963f808e72841fcf',
41
+ 'src/public/dist/banner.lite.js' => '3e8eab830f6e90b9ae8e445072f50c8f',
42
+ 'src/public/dist/banner.pro.js' => '8d10df7ad70c9a9c5edb41eb40fdc728',
43
+ 'src/public/dist/blocker_tcf.pro.js' => '25c71a2b7bd99a95498822ec719a0624',
44
+ 'src/public/dist/blocker.lite.js' => '0fd2a4fe2f6e803d2c6a88c10582bc93',
45
+ 'src/public/dist/blocker.pro.js' => 'c92e64f99aaca770a588cabc9ae2c4a2',
46
+ 'src/public/dist/chunk-config-tab-blocker.lite.js' => 'be118fc442c88ad214f657f1e43c9bed',
47
+ 'src/public/dist/chunk-config-tab-blocker.pro.js' => '253c7765a81468eea039f49ae185a7bc',
48
+ 'src/public/dist/chunk-config-tab-consent.lite.js' => 'f5782e981fad6c01f23ffcee8a2a9788',
49
+ 'src/public/dist/chunk-config-tab-consent.pro.js' => 'aedf35b366d2652d00e034e0aea397e2',
50
+ 'src/public/dist/chunk-config-tab-cookies.lite.js' => 'd11f3acd1aff6df6677e60b001c32b07',
51
+ 'src/public/dist/chunk-config-tab-cookies.pro.js' => '41ebe5c071bcb387b2e06fb13cc226f8',
52
  'src/public/dist/chunk-config-tab-dashboard.lite.js' => 'ea5bdd77f694dc2713f79e0ae78ce5eb',
53
  'src/public/dist/chunk-config-tab-dashboard.pro.js' => '3169cc92c5e660e3eca631d2eff612f0',
54
+ 'src/public/dist/chunk-config-tab-import.lite.js' => '3b83609d28a90fe79944788c192a9a02',
55
+ 'src/public/dist/chunk-config-tab-import.pro.js' => '1a527041fe1df8363212ec5e7e06d251',
56
  'src/public/dist/chunk-config-tab-licensing.lite.js' => '0c72a01b908f09e3052d1a83699e6c8c',
57
  'src/public/dist/chunk-config-tab-licensing.pro.js' => 'ee12ec03ad1425685a36d919791d1a18',
58
+ 'src/public/dist/chunk-config-tab-scanner.lite.js' => 'c59295df8695d497da5584204bd0f3d0',
59
+ 'src/public/dist/chunk-config-tab-scanner.pro.js' => '5687a41fe3b3a9fb89915997164a18bb',
60
+ 'src/public/dist/chunk-config-tab-settings.lite.js' => '0f4d3c94846aea37a1ab203faf38f920',
61
+ 'src/public/dist/chunk-config-tab-settings.pro.js' => '76ec71d779411d2877c484b31d66a24d',
62
  'src/public/dist/chunk-config-tab-tcf.lite.js' => '68803b92a79b9f27ffef71008bee66a0',
63
  'src/public/dist/chunk-config-tab-tcf.pro.js' => '3932f3100529c45f93e24ccc1ddf9bca',
64
+ 'src/public/dist/customize_banner.lite.js' => '10cbc9573a93980fbd3b615909256b3f',
65
+ 'src/public/dist/customize_banner.pro.js' => '8669e2c01537ba52f3dd316fd3a3c556',
66
+ 'src/public/dist/customize.lite.js' => '074d0bc3c9464bfc1d2056bfb52458d0',
67
+ 'src/public/dist/customize.pro.js' => '97566d7569a691a8f796dcc23f868e12',
68
  'src/public/dist/queue.lite.js' => '6cc52e57a6708e527df2732e9b919cc0',
69
  'src/public/dist/queue.pro.js' => '29eb2e2dba077fb3ddc19ed0d78d5af1',
70
  'src/public/dist/vendor-admin.lite.js' => '756618fd0f597fd33c4545b90602b75a',
inc/comp/ComingSoonPlugins.php CHANGED
@@ -7,6 +7,7 @@ use DevOwl\RealCookieBanner\base\UtilsProvider;
7
  use DevOwl\RealCookieBanner\Core;
8
  use DevOwl\RealCookieBanner\Utils;
9
  use WP_Post;
 
10
  // @codeCoverageIgnoreStart
11
  \defined('ABSPATH') or die('No script kiddies please!');
12
  // Avoid direct file request
@@ -79,7 +80,9 @@ class ComingSoonPlugins {
79
  public function maintenance_load_custom_style() {
80
  global $wp_scripts;
81
  $assets = \DevOwl\RealCookieBanner\Core::getInstance()->getAssets();
82
- $assets->enqueue_scripts_and_styles(\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND);
 
 
83
  // The plugin does not automatically print the head, instead it uses `do_items` explicitly
84
  $wp_scripts->do_items($assets->handleBanner);
85
  add_action('load_custom_scripts', function () use ($wp_scripts, $assets) {
@@ -95,7 +98,9 @@ class ComingSoonPlugins {
95
  public function cmp_before_header_scripts() {
96
  global $wp_scripts;
97
  $assets = \DevOwl\RealCookieBanner\Core::getInstance()->getAssets();
98
- $assets->enqueue_scripts_and_styles(\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND);
 
 
99
  // The plugin does not automatically print the head, instead it uses `do_items` explicitly
100
  $wp_scripts->do_items($assets->handleBanner);
101
  add_action('cmp-before-footer-scripts', function () use ($wp_scripts, $assets) {
7
  use DevOwl\RealCookieBanner\Core;
8
  use DevOwl\RealCookieBanner\Utils;
9
  use WP_Post;
10
+ use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants;
11
  // @codeCoverageIgnoreStart
12
  \defined('ABSPATH') or die('No script kiddies please!');
13
  // Avoid direct file request
80
  public function maintenance_load_custom_style() {
81
  global $wp_scripts;
82
  $assets = \DevOwl\RealCookieBanner\Core::getInstance()->getAssets();
83
+ $assets->enqueue_scripts_and_styles(
84
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND
85
+ );
86
  // The plugin does not automatically print the head, instead it uses `do_items` explicitly
87
  $wp_scripts->do_items($assets->handleBanner);
88
  add_action('load_custom_scripts', function () use ($wp_scripts, $assets) {
98
  public function cmp_before_header_scripts() {
99
  global $wp_scripts;
100
  $assets = \DevOwl\RealCookieBanner\Core::getInstance()->getAssets();
101
+ $assets->enqueue_scripts_and_styles(
102
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND
103
+ );
104
  // The plugin does not automatically print the head, instead it uses `do_items` explicitly
105
  $wp_scripts->do_items($assets->handleBanner);
106
  add_action('cmp-before-footer-scripts', function () use ($wp_scripts, $assets) {
inc/presets/free/JetpackSiteStatsPreset.php CHANGED
@@ -183,14 +183,6 @@ class JetpackSiteStatsPreset extends \DevOwl\RealCookieBanner\presets\AbstractCo
183
  'durationUnit' => 'mo',
184
  'isSessionDuration' => \false
185
  ],
186
- [
187
- 'type' => 'http',
188
- 'name' => '__Secure-SSID',
189
- 'host' => '.google.com',
190
- 'duration' => 1,
191
- 'durationUnit' => 'mo',
192
- 'isSessionDuration' => \false
193
- ],
194
  [
195
  'type' => 'http',
196
  'name' => '__Secure-SSID',
183
  'durationUnit' => 'mo',
184
  'isSessionDuration' => \false
185
  ],
 
 
 
 
 
 
 
 
186
  [
187
  'type' => 'http',
188
  'name' => '__Secure-SSID',
inc/presets/free/blocker/YoutubePreset.php CHANGED
@@ -62,9 +62,7 @@ class YoutubePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPres
62
  // [Plugin Comp] https://elementor.com/help/lightbox/
63
  'div[data-elementor-lightbox*="youtube.com"]',
64
  // [Plugin Comp] Impreza + WP Bakery
65
- 'div[class*="w-video"][onclick*="youtube.com"]',
66
- // [Plugin Comp] Elementor PRO
67
- 'div[class*="elementor-widget-video-playlist"][data-settings*="youtube"]'
68
  ],
69
  'serviceTemplates' => [\DevOwl\RealCookieBanner\presets\free\YoutubePreset::IDENTIFIER],
70
  'isVisual' => \true,
62
  // [Plugin Comp] https://elementor.com/help/lightbox/
63
  'div[data-elementor-lightbox*="youtube.com"]',
64
  // [Plugin Comp] Impreza + WP Bakery
65
+ 'div[class*="w-video"][onclick*="youtube.com"]'
 
 
66
  ],
67
  'serviceTemplates' => [\DevOwl\RealCookieBanner\presets\free\YoutubePreset::IDENTIFIER],
68
  'isVisual' => \true,
inc/presets/pro/blocker/GoogleMapsPreset.php CHANGED
@@ -90,7 +90,7 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
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
  // [Plugin Comp] https://codecanyon.net/item/progress-map-wordpress-plugin/5581719
95
  '*/wp-content/plugins/codespacing-progress-map/assets/js/*',
96
  'div[class*="codespacing_progress_map_area"]',
@@ -166,7 +166,15 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
166
  'div[class*="so-widget-sow-google-map"]',
167
  // [Plugin Comp] The Events Calendar
168
  'div[id^="tribe-events-gmap"]',
169
- '*/wp-content/plugins/the-events-calendar/src/resources/js/embedded-map*'
 
 
 
 
 
 
 
 
170
  ]
171
  ],
172
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
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
  // [Plugin Comp] https://codecanyon.net/item/progress-map-wordpress-plugin/5581719
95
  '*/wp-content/plugins/codespacing-progress-map/assets/js/*',
96
  'div[class*="codespacing_progress_map_area"]',
166
  'div[class*="so-widget-sow-google-map"]',
167
  // [Plugin Comp] The Events Calendar
168
  'div[id^="tribe-events-gmap"]',
169
+ '*/wp-content/plugins/the-events-calendar/src/resources/js/embedded-map*',
170
+ // [Plugin Comp] https://wordpress.org/plugins/mappress-google-maps-for-wordpress/
171
+ 'div[id^="mapp"][class*="mapp-layout"]',
172
+ '*/wp-content/plugins/mappress-google-maps-for-wordpress/build/index_mappress*',
173
+ // [Plugin Comp] https://themeforest.net/item/sober-woocommerce-wordpress-theme/18332889
174
+ 'div[class*="sober-map"]',
175
+ // [Plugin Comp] https://vehica.com/
176
+ 'div[class*="elementor-widget-vehica_location_single_car_widget"]',
177
+ 'div[class*="elementor-widget-vehica_map_general_widget"]'
178
  ]
179
  ],
180
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
inc/scanner/OnChangeDetection.php CHANGED
@@ -23,6 +23,11 @@ class OnChangeDetection {
23
  // [Plugin Comp] https://wordpress.org/plugins/coming-soon/
24
  'seedprod'
25
  ];
 
 
 
 
 
26
  private $scanner;
27
  /**
28
  * C'tor.
@@ -91,8 +96,9 @@ class OnChangeDetection {
91
  $link = $this->getPermalink($post);
92
  if (!empty($link)) {
93
  if (
94
- $post->post_status === 'publish' ||
95
- \in_array($post->post_type, self::USE_PREVIEW_LINK_FOR_POST_TYPE, \true)
 
96
  ) {
97
  $this->addUrlToScanner($link);
98
  } else {
23
  // [Plugin Comp] https://wordpress.org/plugins/coming-soon/
24
  'seedprod'
25
  ];
26
+ /**
27
+ * In some cases it does not make sense to scan viewable post types as they act e.g. as "template"
28
+ * posts which are reused in publicly available posts and pages.
29
+ */
30
+ const SKIP_POST_TYPE = ['elementor_library'];
31
  private $scanner;
32
  /**
33
  * C'tor.
96
  $link = $this->getPermalink($post);
97
  if (!empty($link)) {
98
  if (
99
+ ($post->post_status === 'publish' ||
100
+ \in_array($post->post_type, self::USE_PREVIEW_LINK_FOR_POST_TYPE, \true)) &&
101
+ !\in_array($post->post_type, self::SKIP_POST_TYPE, \true)
102
  ) {
103
  $this->addUrlToScanner($link);
104
  } else {
inc/scanner/Persist.php CHANGED
@@ -146,10 +146,7 @@ class Persist {
146
  ['2.16.0', '2.15.1'],
147
  function () use ($wpdb, $table_name_markup) {
148
  // phpcs:disable WordPress.DB.PreparedSQL
149
- $exists = \strcasecmp(
150
- $wpdb->get_var("SHOW TABLES LIKE '{$table_name_markup}'"),
151
- $table_name_markup
152
- );
153
  // phpcs:enable WordPress.DB.PreparedSQL
154
  return 0 !== $exists;
155
  }
146
  ['2.16.0', '2.15.1'],
147
  function () use ($wpdb, $table_name_markup) {
148
  // phpcs:disable WordPress.DB.PreparedSQL
149
+ $exists = $wpdb->get_var("SHOW TABLES LIKE '{$table_name_markup}'") === $table_name_markup;
 
 
 
150
  // phpcs:enable WordPress.DB.PreparedSQL
151
  return 0 !== $exists;
152
  }
inc/settings/Consent.php CHANGED
@@ -25,6 +25,7 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
25
  const SETTING_EPRIVACY_USA = RCB_OPT_PREFIX . '-eprivacy-usa';
26
  const SETTING_AGE_NOTICE = RCB_OPT_PREFIX . '-age-notice';
27
  const SETTING_LIST_SERVICES_NOTICE = RCB_OPT_PREFIX . '-list-services-notice';
 
28
  const DEFAULT_ACCEPT_ALL_FOR_BOTS = \true;
29
  const DEFAULT_RESPECT_DO_NOT_TRACK = \false;
30
  const DEFAULT_COOKIE_DURATION = 365;
@@ -32,6 +33,8 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
32
  const DEFAULT_EPRIVACY_USA = \false;
33
  const DEFAULT_AGE_NOTICE = \true;
34
  const DEFAULT_LIST_SERVICES_NOTICE = \true;
 
 
35
  /**
36
  * Search the coding for difference.
37
  */
@@ -89,6 +92,11 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
89
  self::DEFAULT_LIST_SERVICES_NOTICE,
90
  'boolval'
91
  );
 
 
 
 
 
92
  $this->overrideEnableOptionsAutoload();
93
  }
94
  /**
@@ -117,6 +125,10 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
117
  'type' => 'boolean',
118
  'show_in_rest' => \true
119
  ]);
 
 
 
 
120
  $this->overrideRegister();
121
  }
122
  /**
@@ -175,6 +187,14 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
175
  public function getCookieVersion() {
176
  return get_option(self::SETTING_COOKIE_VERSION);
177
  }
 
 
 
 
 
 
 
 
178
  /**
179
  * The cookie duration may not be greater than 365 days.
180
  *
@@ -188,6 +208,24 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
188
  }
189
  return $value;
190
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  /**
192
  * Get singleton instance.
193
  *
25
  const SETTING_EPRIVACY_USA = RCB_OPT_PREFIX . '-eprivacy-usa';
26
  const SETTING_AGE_NOTICE = RCB_OPT_PREFIX . '-age-notice';
27
  const SETTING_LIST_SERVICES_NOTICE = RCB_OPT_PREFIX . '-list-services-notice';
28
+ const SETTING_CONSENT_DURATION = RCB_OPT_PREFIX . '-consent-duration';
29
  const DEFAULT_ACCEPT_ALL_FOR_BOTS = \true;
30
  const DEFAULT_RESPECT_DO_NOT_TRACK = \false;
31
  const DEFAULT_COOKIE_DURATION = 365;
33
  const DEFAULT_EPRIVACY_USA = \false;
34
  const DEFAULT_AGE_NOTICE = \true;
35
  const DEFAULT_LIST_SERVICES_NOTICE = \true;
36
+ const DEFAULT_CONSENT_DURATION = 120;
37
+ const TRANSIENT_SCHEDULE_CONSENTS_DELETION = RCB_OPT_PREFIX . '-schedule-consents-deletion';
38
  /**
39
  * Search the coding for difference.
40
  */
92
  self::DEFAULT_LIST_SERVICES_NOTICE,
93
  'boolval'
94
  );
95
+ \DevOwl\RealCookieBanner\settings\General::enableOptionAutoload(
96
+ self::SETTING_CONSENT_DURATION,
97
+ self::DEFAULT_CONSENT_DURATION,
98
+ 'intval'
99
+ );
100
  $this->overrideEnableOptionsAutoload();
101
  }
102
  /**
125
  'type' => 'boolean',
126
  'show_in_rest' => \true
127
  ]);
128
+ register_setting(self::OPTION_GROUP, self::SETTING_CONSENT_DURATION, [
129
+ 'type' => 'number',
130
+ 'show_in_rest' => \true
131
+ ]);
132
  $this->overrideRegister();
133
  }
134
  /**
187
  public function getCookieVersion() {
188
  return get_option(self::SETTING_COOKIE_VERSION);
189
  }
190
+ /**
191
+ * Get the consent duration.
192
+ *
193
+ * @return int
194
+ */
195
+ public function getConsentDuration() {
196
+ return get_option(self::SETTING_CONSENT_DURATION);
197
+ }
198
  /**
199
  * The cookie duration may not be greater than 365 days.
200
  *
208
  }
209
  return $value;
210
  }
211
+ /**
212
+ * The consent duration may not be greater than 120 months.
213
+ *
214
+ * @param mixed $value
215
+ */
216
+ public function option_consent_duration($value) {
217
+ // Use `is_numeric` as it can be a string
218
+ if (\is_numeric($value) && \intval($value) > 120) {
219
+ return 120;
220
+ }
221
+ return $value;
222
+ }
223
+ /**
224
+ * Delete transient when settings are updated
225
+ */
226
+ public function update_option_consent_transient_deletion() {
227
+ delete_transient(self::TRANSIENT_SCHEDULE_CONSENTS_DELETION);
228
+ }
229
  /**
230
  * Get singleton instance.
231
  *
inc/settings/Revision.php CHANGED
@@ -36,7 +36,8 @@ class Revision {
36
  \DevOwl\RealCookieBanner\settings\General::SETTING_BLOCKER_ACTIVE,
37
  \DevOwl\RealCookieBanner\settings\General::SETTING_HIDE_PAGE_IDS,
38
  \DevOwl\RealCookieBanner\settings\Consent::SETTING_RESPECT_DO_NOT_TRACK,
39
- \DevOwl\RealCookieBanner\settings\Consent::SETTING_SAVE_IP
 
40
  ];
41
  /**
42
  * Singleton instance.
@@ -216,6 +217,11 @@ class Revision {
216
  $create = $this->create($recreate || \DevOwl\RealCookieBanner\UserConsent::getInstance()->getCount() === 0);
217
  $calculated = $create['hash'];
218
  $publicToUsers = $this->getCurrentHash();
 
 
 
 
 
219
  // Search for all available tag managers
220
  $setCookiesViaManager = \DevOwl\RealCookieBanner\settings\General::getInstance()->getSetCookiesViaManager();
221
  if ($setCookiesViaManager === 'none') {
@@ -265,7 +271,8 @@ class Revision {
265
  'public_cookie_count' => \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getPublicCount(),
266
  'all_cookie_count' => \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getAllCount(),
267
  'all_blocker_count' => \DevOwl\RealCookieBanner\settings\Blocker::getInstance()->getAllCount(),
268
- 'cookie_counts' => wp_count_posts(\DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME)
 
269
  ],
270
  $this->isPro()
271
  ? [
36
  \DevOwl\RealCookieBanner\settings\General::SETTING_BLOCKER_ACTIVE,
37
  \DevOwl\RealCookieBanner\settings\General::SETTING_HIDE_PAGE_IDS,
38
  \DevOwl\RealCookieBanner\settings\Consent::SETTING_RESPECT_DO_NOT_TRACK,
39
+ \DevOwl\RealCookieBanner\settings\Consent::SETTING_SAVE_IP,
40
+ \DevOwl\RealCookieBanner\settings\Consent::SETTING_CONSENT_DURATION
41
  ];
42
  /**
43
  * Singleton instance.
217
  $create = $this->create($recreate || \DevOwl\RealCookieBanner\UserConsent::getInstance()->getCount() === 0);
218
  $calculated = $create['hash'];
219
  $publicToUsers = $this->getCurrentHash();
220
+ $consentsDeletedAt = mysql2date(
221
+ 'c',
222
+ get_transient(\DevOwl\RealCookieBanner\settings\Consent::TRANSIENT_SCHEDULE_CONSENTS_DELETION),
223
+ \false
224
+ );
225
  // Search for all available tag managers
226
  $setCookiesViaManager = \DevOwl\RealCookieBanner\settings\General::getInstance()->getSetCookiesViaManager();
227
  if ($setCookiesViaManager === 'none') {
271
  'public_cookie_count' => \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getPublicCount(),
272
  'all_cookie_count' => \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getAllCount(),
273
  'all_blocker_count' => \DevOwl\RealCookieBanner\settings\Blocker::getInstance()->getAllCount(),
274
+ 'cookie_counts' => wp_count_posts(\DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME),
275
+ 'consents_deleted_at' => $consentsDeletedAt
276
  ],
277
  $this->isPro()
278
  ? [
inc/view/Banner.php CHANGED
@@ -24,6 +24,7 @@ use DevOwl\RealCookieBanner\view\customize\banner\CustomCss;
24
  use DevOwl\RealCookieBanner\view\customize\banner\FooterDesign;
25
  use DevOwl\RealCookieBanner\view\customize\banner\Legal;
26
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
 
27
  use WP_Admin_Bar;
28
  // @codeCoverageIgnoreStart
29
  \defined('ABSPATH') or die('No script kiddies please!');
@@ -82,7 +83,9 @@ class Banner {
82
  public function admin_bar_menu($admin_bar) {
83
  if (
84
  !is_admin() &&
85
- $this->shouldLoadAssets(\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND) &&
 
 
86
  current_user_can(\DevOwl\RealCookieBanner\Core::MANAGE_MIN_CAPABILITY)
87
  ) {
88
  if (isset($_GET[self::ACTION_CLEAR_CURRENT_COOKIE])) {
@@ -112,7 +115,10 @@ class Banner {
112
  if (
113
  !\in_array(
114
  $context,
115
- [\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND, \DevOwl\RealCookieBanner\Assets::$TYPE_LOGIN],
 
 
 
116
  \true
117
  ) ||
118
  \DevOwl\RealCookieBanner\Utils::isPageBuilder()
@@ -290,7 +296,9 @@ class Banner {
290
  // the `div[id]` should be available only once.
291
  remove_action('wp_footer', [$this, 'wp_footer']);
292
  $customize = $this->getCustomize();
293
- $shouldLoadAssets = $this->shouldLoadAssets(\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND);
 
 
294
  if ($shouldLoadAssets && !is_customize_preview()) {
295
  $type = $customize->getSetting(\DevOwl\RealCookieBanner\view\customize\banner\BasicLayout::SETTING_TYPE);
296
  $showOverlay = $customize->getSetting(
24
  use DevOwl\RealCookieBanner\view\customize\banner\FooterDesign;
25
  use DevOwl\RealCookieBanner\view\customize\banner\Legal;
26
  use DevOwl\RealCookieBanner\view\customize\banner\Texts;
27
+ use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants as UtilsConstants;
28
  use WP_Admin_Bar;
29
  // @codeCoverageIgnoreStart
30
  \defined('ABSPATH') or die('No script kiddies please!');
83
  public function admin_bar_menu($admin_bar) {
84
  if (
85
  !is_admin() &&
86
+ $this->shouldLoadAssets(
87
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND
88
+ ) &&
89
  current_user_can(\DevOwl\RealCookieBanner\Core::MANAGE_MIN_CAPABILITY)
90
  ) {
91
  if (isset($_GET[self::ACTION_CLEAR_CURRENT_COOKIE])) {
115
  if (
116
  !\in_array(
117
  $context,
118
+ [
119
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND,
120
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_LOGIN
121
+ ],
122
  \true
123
  ) ||
124
  \DevOwl\RealCookieBanner\Utils::isPageBuilder()
296
  // the `div[id]` should be available only once.
297
  remove_action('wp_footer', [$this, 'wp_footer']);
298
  $customize = $this->getCustomize();
299
+ $shouldLoadAssets = $this->shouldLoadAssets(
300
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND
301
+ );
302
  if ($shouldLoadAssets && !is_customize_preview()) {
303
  $type = $customize->getSetting(\DevOwl\RealCookieBanner\view\customize\banner\BasicLayout::SETTING_TYPE);
304
  $showOverlay = $customize->getSetting(
inc/view/Blocker.php CHANGED
@@ -59,7 +59,9 @@ class Blocker {
59
  '.w-popup-wrap',
60
  // [Plugin Comp] Oxygen Builder
61
  '.oxy-lightbox_inner[data-inner-content=true]',
62
- '.oxy-pro-accordion_body'
 
 
63
  ];
64
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
65
  /**
@@ -299,7 +301,9 @@ class Blocker {
299
  'wpdAddComment',
300
  'wpdSorting',
301
  // [Plugin Comp] Elementor
302
- 'e_elementor_popup'
 
 
303
  ],
304
  \true
305
  );
59
  '.w-popup-wrap',
60
  // [Plugin Comp] Oxygen Builder
61
  '.oxy-lightbox_inner[data-inner-content=true]',
62
+ '.oxy-pro-accordion_body',
63
+ // [Plugin Comp] https://wordpress.org/plugins/kadence-blocks/
64
+ '.kt-accordion-panel'
65
  ];
66
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
67
  /**
301
  'wpdAddComment',
302
  'wpdSorting',
303
  // [Plugin Comp] Elementor
304
+ 'e_elementor_popup',
305
+ // [Plugin Comp] https://crocoblock.com/plugins/jetsmartfilters/
306
+ 'jet_smart_filters'
307
  ],
308
  \true
309
  );
inc/view/blocker/Plugin.php CHANGED
@@ -136,7 +136,9 @@ class Plugin extends \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlock
136
  // [Plugin Comp] OnePress (controlled by jQuery hijack of `jQuery.each`)
137
  'onepress-map' => ['class'],
138
  // [Plugin Comp] https://themenectar.com/salient/ (controlled by jQuery hijack of `jQuery.fn.magnificPopup`)
139
- 'nectar_video_lightbox' => ['class']
 
 
140
  ]);
141
  $cb->addVisualParentIfClass([
142
  // [Theme Comp] FloThemes
@@ -688,16 +690,6 @@ class Plugin extends \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlock
688
  * @param AbstractBlockable $blockable
689
  */
690
  public function blockableStringExpression($expression, $blockable) {
691
- // Modify `wp-content/theme/my-child` to match parent child
692
- $currentTheme = wp_get_theme();
693
- $parentTheme = $currentTheme->parent();
694
- if ($parentTheme !== \false) {
695
- $expression = \str_replace(
696
- \sprintf('wp-content/themes/%s/', $parentTheme->stylesheet),
697
- \sprintf('wp-content/themes/%s/', $currentTheme->stylesheet),
698
- $expression
699
- );
700
- }
701
  // Modify `wp-content/{themes,plugins}` to the configured folder
702
  $expression = \str_replace(
703
  ['wp-content/themes', 'wp-content/plugins'],
136
  // [Plugin Comp] OnePress (controlled by jQuery hijack of `jQuery.each`)
137
  'onepress-map' => ['class'],
138
  // [Plugin Comp] https://themenectar.com/salient/ (controlled by jQuery hijack of `jQuery.fn.magnificPopup`)
139
+ 'nectar_video_lightbox' => ['class'],
140
+ // [Plugin Comp] https://themeforest.net/item/sober-woocommerce-wordpress-theme/18332889 (controlled by jQuery hijack of `jQuery.each`)
141
+ 'sober-map' => ['class']
142
  ]);
143
  $cb->addVisualParentIfClass([
144
  // [Theme Comp] FloThemes
690
  * @param AbstractBlockable $blockable
691
  */
692
  public function blockableStringExpression($expression, $blockable) {
 
 
 
 
 
 
 
 
 
 
693
  // Modify `wp-content/{themes,plugins}` to the configured folder
694
  $expression = \str_replace(
695
  ['wp-content/themes', 'wp-content/plugins'],
inc/view/shortcode/LinkShortcode.php CHANGED
@@ -7,6 +7,7 @@ use DevOwl\RealCookieBanner\base\UtilsProvider;
7
  use DevOwl\RealCookieBanner\Core;
8
  use DevOwl\RealCookieBanner\view\Checklist;
9
  use DevOwl\RealCookieBanner\view\checklist\Shortcode;
 
10
  // @codeCoverageIgnoreStart
11
  \defined('ABSPATH') or die('No script kiddies please!');
12
  // Avoid direct file request
@@ -55,7 +56,11 @@ class LinkShortcode {
55
  );
56
  }
57
  // Force to show banner
58
- $core->getAssets()->enqueue_scripts_and_styles(\DevOwl\RealCookieBanner\Assets::$TYPE_FRONTEND);
 
 
 
 
59
  \DevOwl\RealCookieBanner\view\Checklist::getInstance()->toggle(
60
  \DevOwl\RealCookieBanner\view\checklist\Shortcode::IDENTIFIER,
61
  \true
7
  use DevOwl\RealCookieBanner\Core;
8
  use DevOwl\RealCookieBanner\view\Checklist;
9
  use DevOwl\RealCookieBanner\view\checklist\Shortcode;
10
+ use DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants;
11
  // @codeCoverageIgnoreStart
12
  \defined('ABSPATH') or die('No script kiddies please!');
13
  // Avoid direct file request
56
  );
57
  }
58
  // Force to show banner
59
+ $core
60
+ ->getAssets()
61
+ ->enqueue_scripts_and_styles(
62
+ \DevOwl\RealCookieBanner\Vendor\MatthiasWeb\Utils\Constants::ASSETS_TYPE_FRONTEND
63
+ );
64
  \DevOwl\RealCookieBanner\view\Checklist::getInstance()->toggle(
65
  \DevOwl\RealCookieBanner\view\checklist\Shortcode::IDENTIFIER,
66
  \true
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: 3.3.0
12
  * Text Domain: real-cookie-banner
13
  * Domain Path: /languages
14
  */
8
  * Description: Obtain GDPR (DSGVO) and ePrivacy (EU cookie law) compliant opt-in consent. Find cookies and fill all legal information in your cookie banner. More than just a cookie notice!
9
  * Author: devowl.io
10
  * Author URI: https://devowl.io
11
+ * Version: 3.4.0
12
  * Text Domain: real-cookie-banner
13
  * Domain Path: /languages
14
  */
languages/real-cookie-banner-de_AT.mo CHANGED
Binary file
languages/real-cookie-banner-de_AT.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
4
  "POT-Creation-Date: n/a\n"
5
- "PO-Revision-Date: 2022-10-31 14:38+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"
@@ -8160,9 +8160,9 @@ msgid ""
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
- "anpasst, achte darauf, dass sie nicht irreführend oder vernietlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
- "Württeberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
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-11-08 07:36+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"
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
+ "anpasst, achte darauf, dass sie nicht irreführend oder verniedlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
+ "Württemberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
languages/real-cookie-banner-de_CH.mo CHANGED
Binary file
languages/real-cookie-banner-de_CH.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
4
  "POT-Creation-Date: n/a\n"
5
- "PO-Revision-Date: 2022-10-31 14:38+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"
@@ -8160,9 +8160,9 @@ msgid ""
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
- "anpasst, achte darauf, dass sie nicht irreführend oder vernietlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
- "Württeberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
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-11-08 07:36+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"
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
+ "anpasst, achte darauf, dass sie nicht irreführend oder verniedlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
+ "Württemberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
languages/real-cookie-banner-de_CH_informal.mo CHANGED
Binary file
languages/real-cookie-banner-de_CH_informal.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
4
  "POT-Creation-Date: n/a\n"
5
- "PO-Revision-Date: 2022-10-31 14:38+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"
@@ -8160,9 +8160,9 @@ msgid ""
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
- "anpasst, achte darauf, dass sie nicht irreführend oder vernietlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
- "Württeberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
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-11-08 07:36+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"
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
+ "anpasst, achte darauf, dass sie nicht irreführend oder verniedlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
+ "Württemberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
languages/real-cookie-banner-de_DE.mo CHANGED
Binary file
languages/real-cookie-banner-de_DE.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
4
  "POT-Creation-Date: n/a\n"
5
- "PO-Revision-Date: 2022-10-31 14:38+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"
@@ -8160,9 +8160,9 @@ msgid ""
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
- "anpasst, achte darauf, dass sie nicht irreführend oder vernietlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
- "Württeberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
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-11-08 07:36+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"
8160
  "\"We love cookies\" is already misleading."
8161
  msgstr ""
8162
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn du sie "
8163
+ "anpasst, achte darauf, dass sie nicht irreführend oder verniedlichend sind. "
8164
  "Nach dem <a href=\"%s\" target=\"_blank\">Datenschutzbeauftragen von Baden-"
8165
+ "Württemberg, Deutschland (Abschnitt B, 1.3.7.)</a> ist z.B. die Überschrift "
8166
  "\"Wir lieben Cookies\" bereits irreführend."
8167
 
8168
  #: inc/view/customize/banner/Texts.php:1
languages/real-cookie-banner-de_DE_formal.mo CHANGED
Binary file
languages/real-cookie-banner-de_DE_formal.po CHANGED
@@ -5,7 +5,7 @@ msgstr ""
5
  "Project-Id-Version: n/a\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
7
  "POT-Creation-Date: n/a\n"
8
- "PO-Revision-Date: 2022-10-31 14:38+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"
@@ -8184,8 +8184,8 @@ msgid ""
8184
  msgstr ""
8185
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn Sie "
8186
  "diese anpassen, achten Sie bitte darauf, dass diese nicht irreführend oder "
8187
- "vernietlichend sind. Nach dem <a href=\"%s\" target=\"_blank"
8188
- "\">Datenschutzbeauftragen von Baden-Württeberg, Deutschland (Abschnitt B, "
8189
  "1.3.7.)</a> ist z.B. die Überschrift \"Wir lieben Cookies\" bereits "
8190
  "irreführend."
8191
 
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-11-08 07:36+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"
8184
  msgstr ""
8185
  "Die Standardtexte im Cookie Banner sind mit Bedacht formuliert. Wenn Sie "
8186
  "diese anpassen, achten Sie bitte darauf, dass diese nicht irreführend oder "
8187
+ "verniedlichend sind. Nach dem <a href=\"%s\" target=\"_blank"
8188
+ "\">Datenschutzbeauftragen von Baden-Württemberg, Deutschland (Abschnitt B, "
8189
  "1.3.7.)</a> ist z.B. die Überschrift \"Wir lieben Cookies\" bereits "
8190
  "irreführend."
8191
 
public/dist/637.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[]).push([[637],{2637:(e,t,a)=>{a.d(t,{d:()=>me,$:()=>de});var l=a(8208),n=a(3307),o=a(7465),r=a(691),i=a(3751),s=a(1839),c=a(7363),u=a(3867),d=a(9204),m=a(5217),p=a(1712),v=a(9743),h=a(6711),b=a(1816),f=a(1487),y=a(4121),R=a(3642),E=a(3558);const g=({nonExistingServices:e,onCreated:t})=>{const[a,l]=(0,c.useState)(),[n,o]=(0,c.useState)([]),r=(e||[]).filter((({identifier:e})=>-1===n.indexOf(e))),s=null==e?void 0:e.map((({identifier:e,attributes:r,version:s})=>React.createElement(i.Z,{key:e,visible:a===e,title:(0,m.__)("Add service"),width:"calc(100% - 50px)",bodyStyle:{paddingBottom:0},footer:null,onCancel:()=>l(void 0)},React.createElement(E.Z,{navigateAfterCreation:!1,scrollToTop:!1,preset:{identifier:e,version:s},onCreated:e=>{l(void 0),o([...n,a]),t(e)}}))));return React.createElement(React.Fragment,null,s,0===r.length?null:React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,m.__)("Some services from the template could not be found. Please select (or create if not already exist) the following services:",r.join(", "))),React.createElement("ul",{style:{margin:"0 0 10px"}},r.map((({identifier:e,name:t,subHeadline:a})=>React.createElement("li",{key:e},React.createElement("strong",null,t,a?" (".concat(a,")"):"")," • ",React.createElement("a",{onClick:t=>{l(e),t.preventDefault()},style:{cursor:"pointer"}},(0,m.__)("Create now"))))))))};var k=a(8700),w=a(5998),T=a(9712),C=a(7669);const{addFilter:_}=w.hooks,{MediaUpload:V}=w.mediaUtils;_("editor.MediaUpload","core/edit-post/components/media-upload/replace-media-upload",(()=>V));const Z=({attachmentId:e,title:t,allowedTypes:a,render:n,onChange:o})=>{const r=e||void 0,{data:i,error:s,fetching:u}=function(e){const[t,a]=(0,c.useState)(!1),[l,n]=(0,c.useState)(),[o,r]=(0,c.useState)(),i=(0,c.useCallback)((async e=>{a(!0);const{currentLanguage:t}=(0,T.u)();try{const l=await(0,C.W)({location:{path:"/media/:id",method:k.RouteHttpVerb.GET,namespace:"wp/v2"},params:{id:e,_dataLocale:t}});n(l),r(void 0)}catch(e){n(void 0),r(e)}finally{a(!1)}}),[]);return(0,c.useEffect)((()=>{e?i(e):(n(void 0),r(void 0))}),[e]),{fetching:t,data:l,fetch:i,error:o}}(r),d=null==i?void 0:i.source_url;return(0,c.useEffect)((()=>{var e;"rest_post_invalid_id"===(null==s||null===(e=s.responseJSON)||void 0===e?void 0:e.code)&&o(void 0,void 0)}),[s]),React.createElement(l.Z,{spinning:u},React.createElement(V,{onSelect:e=>{null==o||o(null==e?void 0:e.id,e)},title:t,allowedTypes:a,value:r,render:({open:e})=>n({open:e,reset:()=>o(void 0,void 0),attachmentId:r,url:d})}))};var S=a(6541),I=a(3875);const P={labelCol:{span:6},wrapperCol:{span:16}};var F=a(2065),x=a(433);const D=()=>{const{__:e}=(0,I.f)(),t=(0,c.useRef)();return React.createElement(n.Z.Item,{label:e("Name"),required:!0},React.createElement(n.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:e("Please provide a name!")}]},React.createElement(F.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(x.A,{form:"blocker",valueName:"name",widthOfRef:t,renderDiff:e=>React.createElement(F.Z,{value:e,readOnly:!0})}),e('Each content blocker should have a descriptive name that is understandable to a non-professional user, e.g. "Google Maps".')))};var N=a(1088);const M=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Status"),required:!0},React.createElement(n.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"publish"},e("Enabled")),React.createElement(N.ZP.Button,{value:"private"},e("Disabled")),React.createElement(N.ZP.Button,{value:"draft"},e("Draft")))),React.createElement("p",{className:"description"},e('Content Blockers with the status "Draft" or "Disabled" are not visible to the public. In addition, a draft will be highlighted in the content blocker table so that you do not forget to configure it.')))},B=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Description")},React.createElement(n.Z.Item,{name:"description",noStyle:!0},React.createElement(F.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},e("You can give your visitors further explanations why a content has been blocked or, for example, how they can contact you alternatively instead of agreeing to load the contact form. The description is displayed only in visual content blockers.")))};var A=a(3115),q=a(7421);const U=()=>{const{__:e}=(0,I.f)();return React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span},e("General content blocker configuration")," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/")})),React.createElement(D,null),React.createElement(M,null),React.createElement(B,null))},O=()=>{const{__:e,_i:t,openCookieExperts:a}=(0,I.f)(),l=(0,c.useRef)();return React.createElement(n.Z.Item,{label:e("URLs / Elements to block"),required:!0},React.createElement(n.Z.Item,{name:"rules",noStyle:!0,rules:[{required:!0,message:e("Please provide at least one URL/element!")}]},React.createElement(F.Z.TextArea,{autoSize:{minRows:3,maxRows:15}})),React.createElement("p",{className:"description",ref:l},React.createElement(x.A,{form:"blocker",valueName:"rules",widthOfRef:l,difference:(e,t)=>{const a=e.split("\n"),l=t.split("\n").filter((e=>!a.includes(e)));return l.length>0?l:void 0},apply:(e,t,a)=>t({rules:a.split("\n").concat(e).join("\n")}),newValueText:e("Missing entries:"),renderDiff:(e,t)=>React.createElement(F.Z.TextArea,{value:t.join("\n"),readOnly:!0,autoSize:{minRows:3,maxRows:15}})}),t(e("Enter one rule per line to replace content with a content blocker. You can block all available URLs or HTML tags on your website including videos, iframes, scripts, inline scripts and stylesheets. Please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder)."),{code:React.createElement("code",null)})," • ",!!a&&React.createElement("button",{type:"button",className:"button-link",onClick:a},e("Can't handle it? Let a Cookie Expert help you!")),React.createElement("br",null),React.createElement("br",null),t(e('{{strong}}Pro tip:{{/strong}} Look up all available syntaxes like {{code}}div[class*="my-embed"]{{/code}} in our knowledge base to block content perfectly.'),{strong:React.createElement("strong",null),code:React.createElement("code",null)})," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/")})))},L=()=>{const{__:e,isTcf:t}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Block by"),required:!0,style:{display:t?void 0:"none"}},React.createElement(n.Z.Item,{name:"criteria",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"services"},e("Services")),React.createElement(N.ZP.Button,{value:"tcfVendors"},e("TCF Vendors")))),React.createElement("p",{className:"description"},e("You can block content through non-standard services or TCF vendors. If you want to block it through TCF vendors, then the visual content blocker cannot be displayed because TCF is usually used to obtain consent for ad networks. Moreover, after the initial consents in the cookie banner, users will probably never consent to the ad.")))},G=({dropdown:e,children:t})=>{const{__:a,_i:l,proModals:{visual:{modal:o}}}=(0,I.f)();return React.createElement(React.Fragment,null,o,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:o})=>"services"===o("criteria")&&React.createElement(n.Z.Item,{label:a("Connected services"),required:!0},React.createElement(n.Z.Item,{name:"services",noStyle:!0,rules:[{type:"array",required:!0,message:a("Please provide at least one service!")}]},e),React.createElement("p",{className:"description"},l(a("A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary services that would be used by loading the content. You must define all services that are loaded as soon as the user wants to see the blocked content."),{strong:React.createElement("strong",null)})),t))))},H=({dropdown:e,children:t})=>{const{__:a,_i:l,proModals:{visual:{modal:o}}}=(0,I.f)();return React.createElement(React.Fragment,null,o,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:o})=>"tcfVendors"===o("criteria")&&React.createElement(n.Z.Item,{label:a("Connected TCF Vendors"),required:!0},React.createElement(n.Z.Item,{name:"tcfVendors",noStyle:!0,rules:[{type:"array",required:!0,message:a("Please provide at least one vendor!")}]},e),React.createElement("p",{className:"description"},l(a("A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary TCF vendors that would be used by loading the content. You must define all TCF vendors that are loaded based on legitimate interest or consent as soon as the user wants to see the blocked content."),{strong:React.createElement("strong",null)})),t))))},j=({servicesFieldProps:e,tcfVendorsFieldProps:t})=>{const{__:a}=(0,I.f)();return React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span},a("Technical Definition")),React.createElement(O,null),React.createElement(L,null),React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:a})=>{switch(a("criteria")){case"services":return React.createElement(G,e);case"tcfVendors":return React.createElement(H,t);default:return null}})))};var Y=a(7818);const z=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"isVisual",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),React.createElement("span",null,"  ",e("Show the visual content blocker, if possible"))))};var W=a(7532);const J=()=>{const{__:e,isPro:t,proModals:{visual:{tag:a}}}=(0,I.f)(),l=(0,c.useMemo)((()=>({default:{title:e("Textbox"),description:e("Plain text with button")},wrapped:{title:e("Wrapped"),description:e("Image surrounding the content blocker")},hero:{title:e("Hero"),description:e("Image with content blocker on click")}})),[e]);return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual},(({getFieldValue:o})=>!!o("isVisual")&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span},style:{paddingBottom:10}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"visualType",noStyle:!0,rules:t?[]:[{required:!0,type:"enum",enum:["default"],message:e("This type of visual content blocker is available only in the PRO version of the plugin. Please choose a textbox content blocker!")}]},React.createElement(N.ZP.Group,{size:"large",buttonStyle:"solid",className:"rcb-antd-radio-button-card",style:{marginBottom:10}},Object.keys(l).map((e=>{const{description:t,title:n}=l[e];return React.createElement(N.ZP.Button,{value:e,key:e},React.createElement(W.Z,{style:{width:300},bordered:!1,cover:React.createElement("img",{style:{height:168.75},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,".png")})},React.createElement(W.Z.Meta,{title:React.createElement(React.Fragment,null,n," ","default"!==e&&a),description:t})))}))))))))},$=()=>{const{__:e,isPro:t,proModals:{visual:{tag:a}}}=(0,I.f)(),l=(0,c.useMemo)((()=>({map:e("Map"),"audio-player":e("Audio player"),"video-player":e("Video player"),"feed-text":e("Feed (text)"),"feed-video":e("Feed (image/video)"),generic:e("None of these")})),[e]);return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisualDarkMode!==t.isVisualDarkMode||e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:o})=>{const r=o("isVisual"),i=o("visualType");return!!r&&"default"!==i&&React.createElement(n.Z.Item,{label:e("Content type"),required:!0,extra:a},React.createElement(n.Z.Item,{name:"visualContentType",rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,{size:"large",buttonStyle:"solid",className:"rcb-antd-radio-button-card"},Object.keys(l).map((e=>{const a=l[e];return React.createElement(N.ZP.Button,{value:e,key:e,style:{margin:"0 5px 5px 0"},disabled:!t},React.createElement(W.Z,{style:{width:240},bordered:!1,size:"small",cover:React.createElement(React.Fragment,null,React.createElement("img",{style:{display:o("isVisualDarkMode")?"none":void 0},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,"-light.png")}),React.createElement("img",{style:{display:o("isVisualDarkMode")?void 0:"none"},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,"-dark.png")}))},React.createElement(W.Z.Meta,{title:a})))})))))}))},X=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"isVisualDarkMode",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),"  ",e("Enable dark mode"),React.createElement("p",{className:"description"},e("As soon as no image is found for the content blocker, a default image is automatically used. You can also specify whether the image should be displayed light or dark."))))}))};var K=a(8936);const Q=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualDownloadThumbnail!==t.visualDownloadThumbnail||e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t,setFieldsValue:a})=>{const l=t("visualDownloadThumbnail"),o=t("isVisual"),r=t("visualType");return!!o&&"default"!==r&&React.createElement(React.Fragment,null,React.createElement(n.Z.Item,{label:e("Automatic preview image")},React.createElement(n.Z.Item,{noStyle:!0,name:"visualDownloadThumbnail",required:!0,rules:[{required:!0,type:"boolean",message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,{style:{display:l?void 0:"none"}},React.createElement(N.ZP.Button,{value:!0},e("Download preview image and serve locally")),React.createElement(N.ZP.Button,{value:!1},e("Image from media library")))),!l&&React.createElement(N.ZP.Group,{value:l},React.createElement(K.Z,{title:e("I confirm that I have the required rights to embedded content and its thumbnails can be copied to my servers without e.g. copyright infringement."),cancelText:e("Cancel"),okText:e("Activate now"),overlayStyle:{maxWidth:450},onCancel:()=>a({visualDownloadThumbnail:!1}),onConfirm:()=>a({visualDownloadThumbnail:!0}),placement:"bottomLeft"},React.createElement(N.ZP.Button,{value:!0},e("Download preview image and serve locally"))),React.createElement(N.ZP.Button,{value:!1,onClick:()=>a({visualDownloadThumbnail:!1})},e("Image from media library"))),React.createElement("p",{className:"description"},e("If you block an external URL, this option will try to download an image for this URL using different mechanisms (oEmbed, OpenGraph, ...), saves it locally and use it as background image."))))}))},ee=({children:e})=>{const{__:t,isPro:a}=(0,I.f)();return a&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualDownloadThumbnail!==t.visualDownloadThumbnail||e.isVisual!==t.isVisual||e.visualType!==t.visualType||e.visualContentType!==t.visualContentType},(({getFieldValue:a})=>{const l=a("isVisual"),o=a("visualType"),r=a("visualContentType"),i=a("visualDownloadThumbnail");return!!l&&"default"!==o&&React.createElement(n.Z.Item,{label:t(i||"generic"===r?"Fallback preview image":"Preview image"),name:"visualMediaThumbnail",valuePropName:"attachmentId",style:{display:void 0===i?"none":void 0}},e)}))};var te=a(679);const ae=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{label:e("Blur image")},React.createElement(n.Z.Item,{name:"visualBlur",noStyle:!0},React.createElement(te.Z,{min:0,max:20,marks:{0:e("Disabled"),5:"5%",10:"10%",15:"15%",20:"20%"},tooltipVisible:!1,style:{marginLeft:40}})),React.createElement("p",{className:"description"},e("You can apply an additional blur to the background image. This can be useful e.g. for blocked contact forms to show it only schematically.")))}))},le=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualContentType!==t.visualContentType},(({getFieldValue:t})=>{const a=t("visualContentType"),l=t("visualType");return React.createElement(n.Z.Item,{label:e("Button text"),style:{display:["audio-player","video-player"].indexOf(a)>-1||"hero"!==l?"none":void 0}},React.createElement(n.Z.Item,{name:"visualHeroButtonText",noStyle:!0},React.createElement(F.Z,null)),React.createElement("p",{className:"description"},e("If you specify a button text, a button with this text will be centered in the image and only when you click on this button the content blocker will be opened. Otherwise, clicking on the image itself will open the Content Blocker.")))}))}))},ne=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual},(({getFieldValue:t})=>!!t("isVisual")&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"shouldForceToShowVisual",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),"  ",e("Force visual content blocker for hidden elements"),React.createElement("p",{className:"description"},e("In rare cases, visual content blockers are not displayed because the main element of the blocked content is not visible either. Enable this option if this is the case and you want to force to display a content blocker for non-visible elements."))))))},oe=({visualMediaThumbnailPicker:e})=>{const{__:t,proModals:{visual:{modal:a}}}=(0,I.f)();return React.createElement(React.Fragment,null,a,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:a})=>"services"===a("criteria")&&React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span,description:t("For each content blocker it can be defined if it should be visually visible. This means that if the user has not agreed to the respective services, a box with a button is displayed to adjust the privacy settings so that the actual content can be loaded. The design of the box is copied from the cookie banner.")},t("Visual")),React.createElement(z,null),React.createElement(J,null),React.createElement($,null),React.createElement(X,null),React.createElement(Q,null),React.createElement(ee,null,e),React.createElement(ae,null),React.createElement(le,null),React.createElement(ne,null)))))};var re=a(4217);const ie=()=>{const{__:e,presetCheck:t,isTemplateUpdate:a}=(0,I.f)();return!(!t&&!a)&&React.createElement(n.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:e=>e||void 0,message:e("Please confirm that you have checked the content of the content blocker.")}],wrapperCol:{offset:P.labelCol.span}},React.createElement(re.Z,null,e("I have checked the information in the content blocker template myself and added any missing information or corrected any information that does not fit to my use case.")," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))};var se=a(987),ce=a(5941);const ue=({technicalProps:e,visualProps:t})=>{const{__:a,_i:l}=(0,I.f)(),o=(0,c.useRef)(),r=se.x.Context();return React.createElement(r.Provider,{value:{__:a,_i:l}},React.createElement("div",{ref:o},React.createElement(ce.j,{containerRef:o,form:"blocker"}),React.createElement(U,null),React.createElement(j,e),React.createElement(oe,t),React.createElement(n.Z.Item,{className:"rcb-form-sticky-submit",labelCol:{span:0},wrapperCol:{span:24}},React.createElement(ie,null),React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("div",{style:{textAlign:"center"}},React.createElement("input",{type:"submit",className:"button button-primary",value:a("Save")}))))))};function de(){return(0,b.t)({title:(0,m.__)("Want a better integrated visual content blocker for your website?"),testDrive:!0,feature:"visual-content-blocker",assetName:(0,m.__)("pro-modal/visual-content-blocker.webp"),description:(0,m.__)("Instead of a lot of text, you can offer your visitor a more pleasant way to view blocked content. For example, you can replace your video embeds with a privacy-compliant dummy player with thumbnail, or an embedded map with a preview map.")})}const me=(0,u.Pi)((({preset:e,overwriteAttributes:t,navigateAfterCreation:a=!0,cookieCreationPrompt:u=!1})=>{var b,k;const{blocker:w,id:T,queried:C,fetched:_,link:V}=(0,f.w)(),F=(0,h.useHistory)(),[x,D]=(0,c.useState)(!1),{cookieStore:N,optionStore:{tcf:M,others:{isPro:B}}}=(0,v.m)(),A=(null==w?void 0:w.presetModel)||N.presetsBlocker.get(null==e?void 0:e.identifier),q={...null==A?void 0:A.attributes,...t},{form:U,isBusy:O,defaultValues:L,nonExistingServices:G,onFinish:H,onFinishFailed:j,onBeforeUnload:Y,onValuesChange:z,contextValue:W}=function(e){var t,a,l,n;const{isTcf:o,preset:r,attributes:i,__:s,_i:c}=e,u={name:(null==i?void 0:i.name)||"",status:"publish",description:(null==i?void 0:i.description)||"",criteria:o&&!r?"tcfVendors":"services",rules:(null==i||null===(t=i.rules)||void 0===t?void 0:t.join("\n"))||"",tcfVendors:(null==i||null===(a=i.tcfVendors)||void 0===a?void 0:a.filter(Number))||[],services:null==i||null===(l=i.serviceTemplates)||void 0===l?void 0:l.map((({created:e})=>!1===e?void 0:e)).filter(Boolean),isVisual:"boolean"!=typeof(null==i?void 0:i.isVisual)||i.isVisual,visualType:(null==i?void 0:i.visualType)||"default",visualMediaThumbnail:0,visualContentType:(null==i?void 0:i.visualContentType)||"generic",isVisualDarkMode:"boolean"==typeof(null==i?void 0:i.isVisualDarkMode)&&i.isVisualDarkMode,visualBlur:(null==i?void 0:i.visualBlur)||0,visualDownloadThumbnail:"boolean"==typeof(null==i?void 0:i.visualDownloadThumbnail)?i.visualDownloadThumbnail:void 0,visualHeroButtonText:(null==i?void 0:i.visualHeroButtonText)||"",shouldForceToShowVisual:(null==i?void 0:i.shouldForceToShowVisual)||!1,presetCheck:!r};return{...(0,S.f)({...e,defaultValues:u,i18n:{successMessage:s("You have successfully saved the content blocker."),validationError:s("The content blocker could not be saved due to missing/invalid form values."),unloadConfirm:s('You have unsaved changes. If you click on "confirm", your changes will be discarded.'),unloadConfirmInitialActive:s("You have already created a service. Are you sure that you don't want to create the corresponding content blocker?")}}),defaultValues:u,nonExistingServices:(null==i||null===(n=i.serviceTemplates)||void 0===n?void 0:n.filter((({created:e})=>!e)))||[],contextValue:{__:s,_i:c,isTcf:o,presetCheck:!!r,defaultPresetValues:r?u:{}}}}({__:m.__,_i:m._i,attributes:q,isTcf:M,preset:A?{identifier:A.data.identifier,version:A.data.version}:void 0,initialHasChanges:u,handleSave:async e=>{try{var t,l;const{name:n,status:o,description:r,...i}=e,s={...i,visualMediaThumbnail:i.visualMediaThumbnail||0,criteria:i.criteria,tcfVendors:(null===(t=i.tcfVendors)||void 0===t?void 0:t.join(","))||"",services:(null===(l=i.services)||void 0===l?void 0:l.join(","))||"",isVisual:"services"===i.criteria&&i.isVisual,presetId:null==A?void 0:A.data.identifier,presetVersion:null==A?void 0:A.data.version};if(delete s.presetCheck,C)w.setName(n),w.setStatus(o),w.setDescription(r),w.setMeta(s),await w.patch();else{const e=new R.p(J,{title:{rendered:n},content:{rendered:r,protected:!1},status:o,meta:s});await e.persist()}a&&setTimeout((()=>"string"==typeof a?window.location.href=a:F.push(V.slice(1))),0)}catch(e){throw e.responseJSON.message}}}),{blockers:J,essentialGroup:$}=N,{openDialog:X}=(0,y.u)(),K=_?{name:w.data.title.raw,status:w.data.status,description:w.data.content.raw,criteria:w.data.meta.criteria,rules:w.data.meta.rules,tcfVendors:w.tcfVendors,services:w.services,isVisual:w.data.meta.isVisual,visualType:B?w.data.meta.visualType:"default",visualMediaThumbnail:w.data.meta.visualMediaThumbnail,visualContentType:w.data.meta.visualContentType,isVisualDarkMode:w.data.meta.isVisualDarkMode,visualBlur:w.data.meta.visualBlur,visualDownloadThumbnail:w.data.meta.visualDownloadThumbnail,visualHeroButtonText:w.data.meta.visualHeroButtonText,shouldForceToShowVisual:w.data.meta.shouldForceToShowVisual,presetCheck:void 0}:L,Q=(0,c.useCallback)((e=>{U.setFieldsValue({services:[...U.getFieldValue("services"),e.key]})}),[U]);(0,c.useEffect)((()=>{C&&!_&&J.getSingle({params:{id:T,context:"edit"}})}),[C,_]),(0,c.useEffect)((()=>{!A||A.attributes||A.busy||A.fetchAttributes()}),[A]),(0,c.useEffect)((()=>{(0,p.X)(0),$||N.fetchGroups()}),[]);const ee=de(),te=I.$.Context();return C&&!_||A&&!A.attributes?React.createElement(s.Z,{active:!0,paragraph:{rows:8}}):React.createElement(te.Provider,{value:{...W,isPro:B,isEdit:_,isTemplateUpdate:!(!_||!A)&&(null===(b=w.data)||void 0===b||null===(k=b.meta)||void 0===k?void 0:k.presetVersion)!==A.data.version,proModals:{visual:ee},openCookieExperts:X}},React.createElement(l.Z,{spinning:O||(null==A?void 0:A.busy)||!1},React.createElement(h.Prompt,{message:Y}),React.createElement(n.Z,(0,o.Z)({name:"blocker-".concat(T),form:U},P,{initialValues:K,onFinish:H,onFinishFailed:j,onValuesChange:z}),React.createElement(ue,{technicalProps:{servicesFieldProps:{dropdown:React.createElement(d.m,{postType:"rcb-cookie",multiple:!0,filter:e=>e["rcb-cookie-group"][0]!==(null==$?void 0:$.key)}),children:React.createElement(React.Fragment,null,React.createElement("button",{type:"button",className:"button",onClick:()=>D(!0)},(0,m.__)("Create new service")),React.createElement(i.Z,{key:T,visible:x,title:(0,m.__)("Add service"),width:"calc(100% - 50px)",bodyStyle:{paddingBottom:0},footer:null,onCancel:()=>D(!1)},React.createElement(E.Z,{navigateAfterCreation:!1,scrollToTop:!1,onCreated:e=>{D(!1),Q(e)}})),React.createElement(g,{nonExistingServices:G,onCreated:Q}))},tcfVendorsFieldProps:{dropdown:React.createElement(d.m,{postType:"rcb-tcf-vendor-conf",multiple:!0,titleRender:({vendor:{name:e}})=>e})}},visualProps:{visualMediaThumbnailPicker:React.createElement(Z,{title:(0,m.__)("Select preview image"),allowedTypes:["image"],render:({open:e,reset:t,attachmentId:a,url:l})=>React.createElement(React.Fragment,null,React.createElement("p",{style:{marginTop:0}},React.createElement("a",{className:"button",onClick:e},a?(0,m.__)("Replace image"):(0,m.__)("Select from media library"))," ",a&&React.createElement("a",{className:"button",onClick:t},(0,m.__)("Remove image"))),l&&React.createElement(r.Z,{width:272,src:l}))})}}))))}))},9204:(e,t,a)=>{a.d(t,{m:()=>m});var l=a(9172),n=a(8208),o=a(7363),r=a(9712),i=a(7669),s=a(5217),c=a(5573),u=a(8700),d=a(4028);const m=({postType:e,postStatus:t=["draft","publish","private"],perPage:a=10,value:m,multiple:p,disabled:v,forceDefaultLanguage:h,onChange:b,titleRender:f=(({title:{rendered:e}})=>e),filter:y=(()=>!0)})=>{const[R,E]=(0,o.useState)(!1),[g,k]=(0,o.useState)(m),[w,T]=(0,o.useState)(!1),[C,_]=(0,o.useState)([]),V=(0,o.useCallback)((async a=>{T(!0);const{defaultLanguage:l,currentLanguage:n}=(0,r.u)(),o=await(0,i.W)({location:{path:"/".concat(e),method:u.RouteHttpVerb.GET,namespace:"wp/v2"},request:{status:a.include?["draft","publish","private"]:t,orderby:a.search?"relevance":"title",...a},params:{_dataLocale:h?l:n}});_(o),T(!1)}),[]);return(0,c.N)(R,""===R?0:800,(e=>{!1!==e&&V({search:e,per_page:e.length?50:a})}),(e=>{!1!==e&&T(!0),_([])})),(0,o.useEffect)((()=>{(g>0||Array.isArray(g)&&g.length>0)&&V({include:Array.isArray(g)?g:[g]})}),[]),(0,o.useEffect)((()=>{JSON.stringify(g)!==JSON.stringify(m)&&(m>0||Array.isArray(m)&&m.length>0)&&(k(m),V({include:Array.isArray(m)?m:[m]}))}),[m,g]),React.createElement(l.Z,{mode:p?"multiple":void 0,disabled:v,showSearch:!0,value:g,placeholder:(0,s.__)("Search..."),notFoundContent:w?React.createElement(n.Z,{size:"small"}):null,onClick:()=>E(""),onSearch:E,onChange:e=>{const t=Array.isArray(e)?e.map(Number):+e;k(t),null==b||b(t)},filterOption:!1,loading:w},!p&&!w&&React.createElement(l.Z.Option,{value:0},(0,s.__)("— Select —")),C.map((e=>{return React.createElement(l.Z.Option,{key:e.id,value:e.id,style:{display:y(e)?void 0:"none"}},(t=f(e),(0,d.C)(t)?null===(a=(new DOMParser).parseFromString('<a href="'.concat(t,'"></a>'),"text/html").querySelector("a"))||void 0===a?void 0:a.href:(new DOMParser).parseFromString(t,"text/html").documentElement.textContent));var t,a})))}},5573:(e,t,a)=>{a.d(t,{N:()=>n});var l=a(7363);function n(e,t,a,n){const[o,r]=(0,l.useState)(e);return(0,l.useEffect)((()=>{const a=setTimeout((()=>{r(e)}),t);return null==n||n(e),()=>{clearTimeout(a)}}),[e]),(0,l.useEffect)((()=>{a(o)}),[o]),o}},1487:(e,t,a)=>{a.d(t,{w:()=>i});var l=a(6711),n=a(9743),o=a(7363),r=a(3642);const i=()=>{const{params:e}=(0,l.useRouteMatch)(),{cookieStore:t}=(0,n.m)(),a=+e.blocker,i=isNaN(+a)?0:+a,s=!!a,c=t.blockers.entries.get(i)||new r.p(t.blockers,{id:0}),u=(0,o.useCallback)((({key:e})=>"#/blocker/edit/".concat(e)),[c]);return{blocker:c,id:i,queried:s,fetched:0!==c.key,link:"#/blocker",editLink:u,addLink:"#/blocker/new"}}}}]);
2
- //# sourceMappingURL=637.lite.js.map?ver=9448d3ae0292493cd01f
1
+ "use strict";(self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[]).push([[637],{2637:(e,t,a)=>{a.d(t,{d:()=>me,$:()=>de});var l=a(8208),n=a(3307),o=a(7465),r=a(691),i=a(3751),s=a(1839),c=a(7363),u=a(3867),d=a(9204),m=a(5217),p=a(1712),v=a(9743),h=a(6711),f=a(1816),b=a(1487),y=a(4121),R=a(3642),E=a(3558);const g=({nonExistingServices:e,onCreated:t})=>{const[a,l]=(0,c.useState)(),[n,o]=(0,c.useState)([]),r=(e||[]).filter((({identifier:e})=>-1===n.indexOf(e))),s=null==e?void 0:e.map((({identifier:e,attributes:r,version:s})=>React.createElement(i.Z,{key:e,visible:a===e,title:(0,m.__)("Add service"),width:"calc(100% - 50px)",bodyStyle:{paddingBottom:0},footer:null,onCancel:()=>l(void 0)},React.createElement(E.Z,{navigateAfterCreation:!1,scrollToTop:!1,preset:{identifier:e,version:s},onCreated:e=>{l(void 0),o([...n,a]),t(e)}}))));return React.createElement(React.Fragment,null,s,0===r.length?null:React.createElement("div",{className:"notice notice-warning below-h2 notice-alt"},React.createElement("p",null,(0,m.__)("Some services from the template could not be found. Please select (or create if not already exist) the following services:",r.join(", "))),React.createElement("ul",{style:{margin:"0 0 10px"}},r.map((({identifier:e,name:t,subHeadline:a})=>React.createElement("li",{key:e},React.createElement("strong",null,t,a?" (".concat(a,")"):"")," • ",React.createElement("a",{onClick:t=>{l(e),t.preventDefault()},style:{cursor:"pointer"}},(0,m.__)("Create now"))))))))};var k=a(8700),w=a(5998),T=a(9712),C=a(7669);const{addFilter:_}=w.hooks,{MediaUpload:V}=w.mediaUtils;_("editor.MediaUpload","core/edit-post/components/media-upload/replace-media-upload",(()=>V));const Z=({attachmentId:e,title:t,allowedTypes:a,render:n,onChange:o})=>{const r=e||void 0,{data:i,error:s,fetching:u}=function(e){const[t,a]=(0,c.useState)(!1),[l,n]=(0,c.useState)(),[o,r]=(0,c.useState)(),i=(0,c.useCallback)((async e=>{a(!0);const{currentLanguage:t}=(0,T.u)();try{const l=await(0,C.W)({location:{path:"/media/:id",method:k.RouteHttpVerb.GET,namespace:"wp/v2"},params:{id:e,_dataLocale:t}});n(l),r(void 0)}catch(e){n(void 0),r(e)}finally{a(!1)}}),[]);return(0,c.useEffect)((()=>{e?i(e):(n(void 0),r(void 0))}),[e]),{fetching:t,data:l,fetch:i,error:o}}(r),d=null==i?void 0:i.source_url;return(0,c.useEffect)((()=>{var e;"rest_post_invalid_id"===(null==s||null===(e=s.responseJSON)||void 0===e?void 0:e.code)&&o(void 0,void 0)}),[s]),React.createElement(l.Z,{spinning:u},React.createElement(V,{onSelect:e=>{null==o||o(null==e?void 0:e.id,e)},title:t,allowedTypes:a,value:r,render:({open:e})=>n({open:e,reset:()=>o(void 0,void 0),attachmentId:r,url:d})}))};var S=a(6541),I=a(3875);const P={labelCol:{span:6},wrapperCol:{span:16}};var F=a(2065),x=a(433);const D=()=>{const{__:e}=(0,I.f)(),t=(0,c.useRef)();return React.createElement(n.Z.Item,{label:e("Name"),required:!0},React.createElement(n.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:e("Please provide a name!")}]},React.createElement(F.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(x.A,{form:"blocker",valueName:"name",widthOfRef:t,renderDiff:e=>React.createElement(F.Z,{value:e,readOnly:!0})}),e('Each content blocker should have a descriptive name that is understandable to a non-professional user, e.g. "Google Maps".')))};var N=a(1088);const M=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Status"),required:!0},React.createElement(n.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"publish"},e("Enabled")),React.createElement(N.ZP.Button,{value:"private"},e("Disabled")),React.createElement(N.ZP.Button,{value:"draft"},e("Draft")))),React.createElement("p",{className:"description"},e('Content Blockers with the status "Draft" or "Disabled" are not visible to the public. In addition, a draft will be highlighted in the content blocker table so that you do not forget to configure it.')))},B=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Description")},React.createElement(n.Z.Item,{name:"description",noStyle:!0},React.createElement(F.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description"},e("You can give your visitors further explanations why a content has been blocked or, for example, how they can contact you alternatively instead of agreeing to load the contact form. The description is displayed only in visual content blockers.")))};var A=a(3115),q=a(7421);const U=()=>{const{__:e}=(0,I.f)();return React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span},e("General content blocker configuration")," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/")})),React.createElement(D,null),React.createElement(M,null),React.createElement(B,null))},O=()=>{const{__:e,_i:t,openCookieExperts:a}=(0,I.f)(),l=(0,c.useRef)();return React.createElement(n.Z.Item,{label:e("URLs / Elements to block"),required:!0},React.createElement(n.Z.Item,{name:"rules",noStyle:!0,rules:[{required:!0,message:e("Please provide at least one URL/element!")}]},React.createElement(F.Z.TextArea,{autoSize:{minRows:3,maxRows:15}})),React.createElement("p",{className:"description",ref:l},React.createElement(x.A,{form:"blocker",valueName:"rules",widthOfRef:l,difference:(e,t)=>{const a=e.split("\n"),l=t.split("\n").filter((e=>!a.includes(e)));return l.length>0?l:void 0},apply:(e,t,a)=>t({rules:a.split("\n").concat(e).join("\n")}),newValueText:e("Missing entries:"),renderDiff:(e,t)=>React.createElement(F.Z.TextArea,{value:t.join("\n"),readOnly:!0,autoSize:{minRows:3,maxRows:15}})}),t(e("Enter one rule per line to replace content with a content blocker. You can block all available URLs or HTML tags on your website including videos, iframes, scripts, inline scripts and stylesheets. Please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder)."),{code:React.createElement("code",null)})," • ",!!a&&React.createElement("button",{type:"button",className:"button-link",onClick:a},e("Can't handle it? Let a Cookie Expert help you!")),React.createElement("br",null),React.createElement("br",null),t(e('{{strong}}Pro tip:{{/strong}} Look up all available syntaxes like {{code}}div[class*="my-embed"]{{/code}} in our knowledge base to block content perfectly.'),{strong:React.createElement("strong",null),code:React.createElement("code",null)})," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/")})))},L=()=>{const{__:e,isTcf:t}=(0,I.f)();return React.createElement(n.Z.Item,{label:e("Block by"),required:!0,style:{display:t?void 0:"none"}},React.createElement(n.Z.Item,{name:"criteria",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,null,React.createElement(N.ZP.Button,{value:"services"},e("Services")),React.createElement(N.ZP.Button,{value:"tcfVendors"},e("TCF Vendors")))),React.createElement("p",{className:"description"},e("You can block content through non-standard services or TCF vendors. If you want to block it through TCF vendors, then the visual content blocker cannot be displayed because TCF is usually used to obtain consent for ad networks. Moreover, after the initial consents in the cookie banner, users will probably never consent to the ad.")))},G=({dropdown:e,children:t})=>{const{__:a,_i:l,proModals:{visual:{modal:o}}}=(0,I.f)();return React.createElement(React.Fragment,null,o,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:o})=>"services"===o("criteria")&&React.createElement(n.Z.Item,{label:a("Connected services"),required:!0},React.createElement(n.Z.Item,{name:"services",noStyle:!0,rules:[{type:"array",required:!0,message:a("Please provide at least one service!")}]},e),React.createElement("p",{className:"description"},l(a("A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary services that would be used by loading the content. You must define all services that are loaded as soon as the user wants to see the blocked content."),{strong:React.createElement("strong",null)})),t))))},H=({dropdown:e,children:t})=>{const{__:a,_i:l,proModals:{visual:{modal:o}}}=(0,I.f)();return React.createElement(React.Fragment,null,o,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:o})=>"tcfVendors"===o("criteria")&&React.createElement(n.Z.Item,{label:a("Connected TCF Vendors"),required:!0},React.createElement(n.Z.Item,{name:"tcfVendors",noStyle:!0,rules:[{type:"array",required:!0,message:a("Please provide at least one vendor!")}]},e),React.createElement("p",{className:"description"},l(a("A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary TCF vendors that would be used by loading the content. You must define all TCF vendors that are loaded based on legitimate interest or consent as soon as the user wants to see the blocked content."),{strong:React.createElement("strong",null)})),t))))},j=({servicesFieldProps:e,tcfVendorsFieldProps:t})=>{const{__:a}=(0,I.f)();return React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span},a("Technical Definition")),React.createElement(O,null),React.createElement(L,null),React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:a})=>{switch(a("criteria")){case"services":return React.createElement(G,e);case"tcfVendors":return React.createElement(H,t);default:return null}})))};var Y=a(7818);const z=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"isVisual",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),React.createElement("span",null,"  ",e("Show the visual content blocker, if possible"))))};var W=a(7532);const J=()=>{const{__:e,isPro:t,proModals:{visual:{tag:a}}}=(0,I.f)(),l=(0,c.useMemo)((()=>({default:{title:e("Textbox"),description:e("Plain text with button")},wrapped:{title:e("Wrapped"),description:e("Image surrounding the content blocker")},hero:{title:e("Hero"),description:e("Image with content blocker on click")}})),[e]);return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual},(({getFieldValue:o})=>!!o("isVisual")&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span},style:{paddingBottom:10}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"visualType",noStyle:!0,rules:t?[]:[{required:!0,type:"enum",enum:["default"],message:e("This type of visual content blocker is available only in the PRO version of the plugin. Please choose a textbox content blocker!")}]},React.createElement(N.ZP.Group,{size:"large",buttonStyle:"solid",className:"rcb-antd-radio-button-card",style:{marginBottom:10}},Object.keys(l).map((e=>{const{description:t,title:n}=l[e];return React.createElement(N.ZP.Button,{value:e,key:e},React.createElement(W.Z,{style:{width:300},bordered:!1,cover:React.createElement("img",{style:{height:168.75},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,".png")})},React.createElement(W.Z.Meta,{title:React.createElement(React.Fragment,null,n," ","default"!==e&&a),description:t})))}))))))))},$=()=>{const{__:e,isPro:t,proModals:{visual:{tag:a}}}=(0,I.f)(),l=(0,c.useMemo)((()=>({map:e("Map"),"audio-player":e("Audio player"),"video-player":e("Video player"),"feed-text":e("Feed (text)"),"feed-video":e("Feed (image/video)"),generic:e("None of these")})),[e]);return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisualDarkMode!==t.isVisualDarkMode||e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:o})=>{const r=o("isVisual"),i=o("visualType");return!!r&&"default"!==i&&React.createElement(n.Z.Item,{label:e("Content type"),required:!0,extra:a},React.createElement(n.Z.Item,{name:"visualContentType",rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,{size:"large",buttonStyle:"solid",className:"rcb-antd-radio-button-card"},Object.keys(l).map((e=>{const a=l[e];return React.createElement(N.ZP.Button,{value:e,key:e,style:{margin:"0 5px 5px 0"},disabled:!t},React.createElement(W.Z,{style:{width:240},bordered:!1,size:"small",cover:React.createElement(React.Fragment,null,React.createElement("img",{style:{display:o("isVisualDarkMode")?"none":void 0},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,"-light.png")}),React.createElement("img",{style:{display:o("isVisualDarkMode")?void 0:"none"},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/".concat(e,"-dark.png")}))},React.createElement(W.Z.Meta,{title:a})))})))))}))},X=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"isVisualDarkMode",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),"  ",e("Enable dark mode"),React.createElement("p",{className:"description"},e("As soon as no image is found for the content blocker, a default image is automatically used. You can also specify whether the image should be displayed light or dark."))))}))};var K=a(8936);const Q=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualDownloadThumbnail!==t.visualDownloadThumbnail||e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t,setFieldsValue:a})=>{const l=t("visualDownloadThumbnail"),o=t("isVisual"),r=t("visualType");return!!o&&"default"!==r&&React.createElement(React.Fragment,null,React.createElement(n.Z.Item,{label:e("Automatic preview image")},React.createElement(n.Z.Item,{noStyle:!0,name:"visualDownloadThumbnail",required:!0,rules:[{required:!0,type:"boolean",message:e("Please choose an option!")}]},React.createElement(N.ZP.Group,{style:{display:l?void 0:"none"}},React.createElement(N.ZP.Button,{value:!0},e("Download preview image and serve locally")),React.createElement(N.ZP.Button,{value:!1},e("Image from media library")))),!l&&React.createElement(N.ZP.Group,{value:l},React.createElement(K.Z,{title:e("I confirm that I have the required rights to embedded content and its thumbnails can be copied to my servers without e.g. copyright infringement."),cancelText:e("Cancel"),okText:e("Activate now"),overlayStyle:{maxWidth:450},onCancel:()=>a({visualDownloadThumbnail:!1}),onConfirm:()=>a({visualDownloadThumbnail:!0}),placement:"bottomLeft"},React.createElement(N.ZP.Button,{value:!0},e("Download preview image and serve locally"))),React.createElement(N.ZP.Button,{value:!1,onClick:()=>a({visualDownloadThumbnail:!1})},e("Image from media library"))),React.createElement("p",{className:"description"},e("If you block an external URL, this option will try to download an image for this URL using different mechanisms (oEmbed, OpenGraph, ...), saves it locally and use it as background image."))))}))},ee=({children:e})=>{const{__:t,isPro:a}=(0,I.f)();return a&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualDownloadThumbnail!==t.visualDownloadThumbnail||e.isVisual!==t.isVisual||e.visualType!==t.visualType||e.visualContentType!==t.visualContentType},(({getFieldValue:a})=>{const l=a("isVisual"),o=a("visualType"),r=a("visualContentType"),i=a("visualDownloadThumbnail");return!!l&&"default"!==o&&React.createElement(n.Z.Item,{label:t(i||"generic"===r?"Fallback preview image":"Preview image"),name:"visualMediaThumbnail",valuePropName:"attachmentId",style:{display:void 0===i?"none":void 0}},e)}))};var te=a(679);const ae=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{label:e("Blur image")},React.createElement(n.Z.Item,{name:"visualBlur",noStyle:!0},React.createElement(te.Z,{min:0,max:20,marks:{0:e("Disabled"),5:"5%",10:"10%",15:"15%",20:"20%"},tooltipVisible:!1,style:{marginLeft:40}})),React.createElement("p",{className:"description"},e("You can apply an additional blur to the background image. This can be useful e.g. for blocked contact forms to show it only schematically.")))}))},le=()=>{const{__:e,isPro:t}=(0,I.f)();return t&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual||e.visualType!==t.visualType},(({getFieldValue:t})=>{const a=t("isVisual"),l=t("visualType");return!!a&&"default"!==l&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.visualContentType!==t.visualContentType},(({getFieldValue:t})=>{const a=t("visualContentType"),l=t("visualType");return React.createElement(n.Z.Item,{label:e("Button text"),style:{display:["audio-player","video-player"].indexOf(a)>-1||"hero"!==l?"none":void 0}},React.createElement(n.Z.Item,{name:"visualHeroButtonText",noStyle:!0},React.createElement(F.Z,null)),React.createElement("p",{className:"description"},e("If you specify a button text, a button with this text will be centered in the image and only when you click on this button the content blocker will be opened. Otherwise, clicking on the image itself will open the Content Blocker.")))}))}))},ne=()=>{const{__:e}=(0,I.f)();return React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isVisual!==t.isVisual},(({getFieldValue:t})=>!!t("isVisual")&&React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("span",null,React.createElement(n.Z.Item,{name:"shouldForceToShowVisual",valuePropName:"checked",noStyle:!0},React.createElement(Y.Z,null)),"  ",e("Force visual content blocker for hidden elements"),React.createElement("p",{className:"description"},e("In rare cases, visual content blockers are not displayed because the main element of the blocked content is not visible either. Enable this option if this is the case and you want to force to display a content blocker for non-visible elements."))))))},oe=({visualMediaThumbnailPicker:e})=>{const{__:t,proModals:{visual:{modal:a}}}=(0,I.f)();return React.createElement(React.Fragment,null,a,React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.criteria!==t.criteria},(({getFieldValue:a})=>"services"===a("criteria")&&React.createElement(React.Fragment,null,React.createElement(A.C,{offset:P.labelCol.span,description:t("For each content blocker it can be defined if it should be visually visible. This means that if the user has not agreed to the respective services, a box with a button is displayed to adjust the privacy settings so that the actual content can be loaded. The design of the box is copied from the cookie banner.")},t("Visual")),React.createElement(z,null),React.createElement(J,null),React.createElement($,null),React.createElement(X,null),React.createElement(Q,null),React.createElement(ee,null,e),React.createElement(ae,null),React.createElement(le,null),React.createElement(ne,null)))))};var re=a(4217);const ie=()=>{const{__:e,presetCheck:t,isTemplateUpdate:a}=(0,I.f)();return!(!t&&!a)&&React.createElement(n.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:e=>e||void 0,message:e("Please confirm that you have checked the content of the content blocker.")}],wrapperCol:{offset:P.labelCol.span}},React.createElement(re.Z,null,e("I have checked the information in the content blocker template myself and added any missing information or corrected any information that does not fit to my use case.")," ",React.createElement(q.r,{url:e("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))};var se=a(987),ce=a(5941);const ue=({technicalProps:e,visualProps:t})=>{const{__:a,_i:l}=(0,I.f)(),o=(0,c.useRef)(),r=se.x.Context();return React.createElement(r.Provider,{value:{__:a,_i:l}},React.createElement("div",{ref:o},React.createElement(ce.j,{containerRef:o,form:"blocker"}),React.createElement(U,null),React.createElement(j,e),React.createElement(oe,t),React.createElement(n.Z.Item,{className:"rcb-form-sticky-submit",labelCol:{span:0},wrapperCol:{span:24}},React.createElement(ie,null),React.createElement(n.Z.Item,{wrapperCol:{offset:P.labelCol.span}},React.createElement("div",{style:{textAlign:"center"}},React.createElement("input",{type:"submit",className:"button button-primary",value:a("Save")}))))))};function de(){return(0,f.t)({title:(0,m.__)("Want a better integrated visual content blocker for your website?"),testDrive:!0,feature:"visual-content-blocker",assetName:(0,m.__)("pro-modal/visual-content-blocker.webp"),description:(0,m.__)("Instead of a lot of text, you can offer your visitor a more pleasant way to view blocked content. For example, you can replace your video embeds with a privacy-compliant dummy player with thumbnail, or an embedded map with a preview map.")})}const me=(0,u.Pi)((({preset:e,overwriteAttributes:t,navigateAfterCreation:a=!0,cookieCreationPrompt:u=!1})=>{var f,k;const{blocker:w,id:T,queried:C,fetched:_,link:V}=(0,b.w)(),F=(0,h.useHistory)(),[x,D]=(0,c.useState)(!1),{cookieStore:N,optionStore:{tcf:M,others:{isPro:B}}}=(0,v.m)(),A=(null==w?void 0:w.presetModel)||N.presetsBlocker.get(null==e?void 0:e.identifier),q={...null==A?void 0:A.attributes,...t},{form:U,isBusy:O,defaultValues:L,nonExistingServices:G,onFinish:H,onFinishFailed:j,onBeforeUnload:Y,onValuesChange:z,contextValue:W}=function(e){var t,a,l,n;const{isTcf:o,preset:r,attributes:i,__:s,_i:c}=e,u={name:(null==i?void 0:i.name)||"",status:"publish",description:(null==i?void 0:i.description)||"",criteria:o&&!r?"tcfVendors":"services",rules:(null==i||null===(t=i.rules)||void 0===t?void 0:t.join("\n"))||"",tcfVendors:(null==i||null===(a=i.tcfVendors)||void 0===a?void 0:a.filter(Number))||[],services:null==i||null===(l=i.serviceTemplates)||void 0===l?void 0:l.map((({created:e})=>!1===e?void 0:e)).filter(Boolean),isVisual:"boolean"!=typeof(null==i?void 0:i.isVisual)||i.isVisual,visualType:(null==i?void 0:i.visualType)||"default",visualMediaThumbnail:0,visualContentType:(null==i?void 0:i.visualContentType)||"generic",isVisualDarkMode:"boolean"==typeof(null==i?void 0:i.isVisualDarkMode)&&i.isVisualDarkMode,visualBlur:(null==i?void 0:i.visualBlur)||0,visualDownloadThumbnail:"boolean"==typeof(null==i?void 0:i.visualDownloadThumbnail)?i.visualDownloadThumbnail:void 0,visualHeroButtonText:(null==i?void 0:i.visualHeroButtonText)||"",shouldForceToShowVisual:(null==i?void 0:i.shouldForceToShowVisual)||!1,presetCheck:!r};return{...(0,S.f)({...e,defaultValues:u,i18n:{successMessage:s("You have successfully saved the content blocker."),validationError:s("The content blocker could not be saved due to missing/invalid form values."),unloadConfirm:s('You have unsaved changes. If you click on "confirm", your changes will be discarded.'),unloadConfirmInitialActive:s("You have already created a service. Are you sure that you don't want to create the corresponding content blocker?")}}),defaultValues:u,nonExistingServices:(null==i||null===(n=i.serviceTemplates)||void 0===n?void 0:n.filter((({created:e})=>!e)))||[],contextValue:{__:s,_i:c,isTcf:o,presetCheck:!!r,defaultPresetValues:r?u:{}}}}({__:m.__,_i:m._i,attributes:q,isTcf:M,preset:A?{identifier:A.data.identifier,version:A.data.version}:void 0,initialHasChanges:u,handleSave:async e=>{try{var t,l;const{name:n,status:o,description:r,...i}=e,s={...i,visualMediaThumbnail:i.visualMediaThumbnail||0,criteria:i.criteria,tcfVendors:(null===(t=i.tcfVendors)||void 0===t?void 0:t.join(","))||"",services:(null===(l=i.services)||void 0===l?void 0:l.join(","))||"",isVisual:"services"===i.criteria&&i.isVisual,presetId:null==A?void 0:A.data.identifier,presetVersion:null==A?void 0:A.data.version};if(delete s.presetCheck,C)w.setName(n),w.setStatus(o),w.setDescription(r),w.setMeta(s),await w.patch();else{const e=new R.p(J,{title:{rendered:n},content:{rendered:r,protected:!1},status:o,meta:s});await e.persist()}a&&setTimeout((()=>"string"==typeof a?window.location.href=a:F.push(V.slice(1))),0)}catch(e){throw e.responseJSON.message}}}),{blockers:J,essentialGroup:$}=N,{openDialog:X}=(0,y.u)(),K=_?{name:w.data.title.raw,status:w.data.status,description:w.data.content.raw,criteria:w.data.meta.criteria,rules:w.data.meta.rules,tcfVendors:w.tcfVendors,services:w.services,isVisual:w.data.meta.isVisual,visualType:B?w.data.meta.visualType:"default",visualMediaThumbnail:w.data.meta.visualMediaThumbnail,visualContentType:w.data.meta.visualContentType,isVisualDarkMode:w.data.meta.isVisualDarkMode,visualBlur:w.data.meta.visualBlur,visualDownloadThumbnail:w.data.meta.visualDownloadThumbnail,visualHeroButtonText:w.data.meta.visualHeroButtonText,shouldForceToShowVisual:w.data.meta.shouldForceToShowVisual,presetCheck:void 0}:L,Q=(0,c.useCallback)((e=>{U.setFieldsValue({services:[...U.getFieldValue("services"),e.key]})}),[U]);(0,c.useEffect)((()=>{C&&!_&&J.getSingle({params:{id:T,context:"edit"}})}),[C,_]),(0,c.useEffect)((()=>{!A||A.attributes||A.busy||A.fetchAttributes()}),[A]),(0,c.useEffect)((()=>{(0,p.X)(0),$||N.fetchGroups()}),[]);const ee=de(),te=I.$.Context();if(C&&!_||A&&!A.attributes)return React.createElement(s.Z,{active:!0,paragraph:{rows:8}});const ae=!(!_||!A)&&(null===(f=w.data)||void 0===f||null===(k=f.meta)||void 0===k?void 0:k.presetVersion)!==A.data.version;return React.createElement(te.Provider,{value:{...W,isPro:B,isEdit:_,isTemplateUpdate:ae,proModals:{visual:ee},openCookieExperts:X,presetCheck:!!A&&(ae||!_)}},React.createElement(l.Z,{spinning:O||(null==A?void 0:A.busy)||!1},React.createElement(h.Prompt,{message:Y}),React.createElement(n.Z,(0,o.Z)({name:"blocker-".concat(T),form:U},P,{initialValues:K,onFinish:H,onFinishFailed:j,onValuesChange:z}),React.createElement(ue,{technicalProps:{servicesFieldProps:{dropdown:React.createElement(d.m,{postType:"rcb-cookie",multiple:!0,filter:e=>e["rcb-cookie-group"][0]!==(null==$?void 0:$.key)}),children:React.createElement(React.Fragment,null,React.createElement("button",{type:"button",className:"button",onClick:()=>D(!0)},(0,m.__)("Create new service")),React.createElement(i.Z,{key:T,visible:x,title:(0,m.__)("Add service"),width:"calc(100% - 50px)",bodyStyle:{paddingBottom:0},footer:null,onCancel:()=>D(!1)},React.createElement(E.Z,{navigateAfterCreation:!1,scrollToTop:!1,onCreated:e=>{D(!1),Q(e)}})),React.createElement(g,{nonExistingServices:G,onCreated:Q}))},tcfVendorsFieldProps:{dropdown:React.createElement(d.m,{postType:"rcb-tcf-vendor-conf",multiple:!0,titleRender:({vendor:{name:e}})=>e})}},visualProps:{visualMediaThumbnailPicker:React.createElement(Z,{title:(0,m.__)("Select preview image"),allowedTypes:["image"],render:({open:e,reset:t,attachmentId:a,url:l})=>React.createElement(React.Fragment,null,React.createElement("p",{style:{marginTop:0}},React.createElement("a",{className:"button",onClick:e},a?(0,m.__)("Replace image"):(0,m.__)("Select from media library"))," ",a&&React.createElement("a",{className:"button",onClick:t},(0,m.__)("Remove image"))),l&&React.createElement(r.Z,{width:272,src:l}))})}}))))}))},9204:(e,t,a)=>{a.d(t,{m:()=>m});var l=a(9172),n=a(8208),o=a(7363),r=a(9712),i=a(7669),s=a(5217),c=a(5573),u=a(8700),d=a(4028);const m=({postType:e,postStatus:t=["draft","publish","private"],perPage:a=10,value:m,multiple:p,disabled:v,forceDefaultLanguage:h,onChange:f,titleRender:b=(({title:{rendered:e}})=>e),filter:y=(()=>!0)})=>{const[R,E]=(0,o.useState)(!1),[g,k]=(0,o.useState)(m),[w,T]=(0,o.useState)(!1),[C,_]=(0,o.useState)([]),V=(0,o.useCallback)((async a=>{T(!0);const{defaultLanguage:l,currentLanguage:n}=(0,r.u)(),o=await(0,i.W)({location:{path:"/".concat(e),method:u.RouteHttpVerb.GET,namespace:"wp/v2"},request:{status:a.include?["draft","publish","private"]:t,orderby:a.search?"relevance":"title",...a},params:{_dataLocale:h?l:n}});_(o),T(!1)}),[]);return(0,c.N)(R,""===R?0:800,(e=>{!1!==e&&V({search:e,per_page:e.length?50:a})}),(e=>{!1!==e&&T(!0),_([])})),(0,o.useEffect)((()=>{(g>0||Array.isArray(g)&&g.length>0)&&V({include:Array.isArray(g)?g:[g]})}),[]),(0,o.useEffect)((()=>{JSON.stringify(g)!==JSON.stringify(m)&&(m>0||Array.isArray(m)&&m.length>0)&&(k(m),V({include:Array.isArray(m)?m:[m]}))}),[m,g]),React.createElement(l.Z,{mode:p?"multiple":void 0,disabled:v,showSearch:!0,value:g,placeholder:(0,s.__)("Search..."),notFoundContent:w?React.createElement(n.Z,{size:"small"}):null,onClick:()=>E(""),onSearch:E,onChange:e=>{const t=Array.isArray(e)?e.map(Number):+e;k(t),null==f||f(t)},filterOption:!1,loading:w},!p&&!w&&React.createElement(l.Z.Option,{value:0},(0,s.__)("— Select —")),C.map((e=>{return React.createElement(l.Z.Option,{key:e.id,value:e.id,style:{display:y(e)?void 0:"none"}},(t=b(e),(0,d.C)(t)?null===(a=(new DOMParser).parseFromString('<a href="'.concat(t,'"></a>'),"text/html").querySelector("a"))||void 0===a?void 0:a.href:(new DOMParser).parseFromString(t,"text/html").documentElement.textContent));var t,a})))}},5573:(e,t,a)=>{a.d(t,{N:()=>n});var l=a(7363);function n(e,t,a,n){const[o,r]=(0,l.useState)(e);return(0,l.useEffect)((()=>{const a=setTimeout((()=>{r(e)}),t);return null==n||n(e),()=>{clearTimeout(a)}}),[e]),(0,l.useEffect)((()=>{a(o)}),[o]),o}},1487:(e,t,a)=>{a.d(t,{w:()=>i});var l=a(6711),n=a(9743),o=a(7363),r=a(3642);const i=()=>{const{params:e}=(0,l.useRouteMatch)(),{cookieStore:t}=(0,n.m)(),a=+e.blocker,i=isNaN(+a)?0:+a,s=!!a,c=t.blockers.entries.get(i)||new r.p(t.blockers,{id:0}),u=(0,o.useCallback)((({key:e})=>"#/blocker/edit/".concat(e)),[c]);return{blocker:c,id:i,queried:s,fetched:0!==c.key,link:"#/blocker",editLink:u,addLink:"#/blocker/new"}}}}]);
2
+ //# sourceMappingURL=637.lite.js.map?ver=ef6cb6d16781bb56366d
public/dist/637.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"637.lite.js?ver=9448d3ae0292493cd01f","mappings":"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","sources":["webpack:///./src/public/ts/components/config/blocker/noticeNoneExistingCookies.tsx","webpack:///./src/public/ts/components/mediaLibrarySelector.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/status.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/description.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/rules.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/criteria.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/services.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/tcfVendors.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/isVisual.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualType.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualContentType.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/isVisualDarkMode.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualDownloadThumbnail.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualMediaThumbnail.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualBlur.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualHeroButtonText.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/shouldForceToShowVisual.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/presetCheck.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/form.tsx","webpack:///./src/public/ts/components/config/blocker/form.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormContentBlockerHandler.tsx","webpack:///./src/public/ts/components/postTypeSelect.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/htmlDecode.tsx","webpack:///./src/public/ts/hooks/useDebounce.tsx","webpack:///./src/public/ts/hooks/useRouteBlocker.tsx"],"sourcesContent":["import _Modal from \"antd/es/modal\";\nimport { useState } from \"react\";\nimport { __ } from \"../../../utils\";\nimport { CookieEditForm } from \"..\";\n\nconst BlockerFormNoticeNoneExistingCookies = ({\n nonExistingServices,\n onCreated\n}) => {\n const [openId, setOpenId] = useState(); // Created presets to hide them from the list\n\n const [created, setCreated] = useState([]);\n const useNoneExistingCookies = (nonExistingServices || []).filter(({\n identifier\n }) => created.indexOf(identifier) === -1); // Create modal windows as they should always be available in React tree (avoid \"Can't perform a React state update on an unmounted component\")\n\n const modalWindows = nonExistingServices === null || nonExistingServices === void 0 ? void 0 : nonExistingServices.map(({\n identifier,\n attributes,\n version\n }) => /*#__PURE__*/React.createElement(_Modal, {\n key: identifier,\n visible: openId === identifier,\n title: __(\"Add service\"),\n width: \"calc(100% - 50px)\",\n bodyStyle: {\n paddingBottom: 0\n },\n footer: null,\n onCancel: () => setOpenId(undefined)\n }, /*#__PURE__*/React.createElement(CookieEditForm, {\n navigateAfterCreation: false,\n scrollToTop: false,\n preset: {\n identifier,\n version\n },\n onCreated: model => {\n setOpenId(undefined);\n setCreated([...created, openId]);\n onCreated(model);\n }\n })));\n return /*#__PURE__*/React.createElement(React.Fragment, null, modalWindows, useNoneExistingCookies.length === 0 ? null : /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"Some services from the template could not be found. Please select (or create if not already exist) the following services:\", useNoneExistingCookies.join(\", \"))), /*#__PURE__*/React.createElement(\"ul\", {\n style: {\n margin: \"0 0 10px\"\n }\n }, useNoneExistingCookies.map(({\n identifier,\n name,\n subHeadline\n }) => /*#__PURE__*/React.createElement(\"li\", {\n key: identifier\n }, /*#__PURE__*/React.createElement(\"strong\", null, name, subHeadline ? \" (\".concat(subHeadline, \")\") : \"\"), \"\\xA0\\u2022\\xA0\", /*#__PURE__*/React.createElement(\"a\", {\n onClick: e => {\n setOpenId(identifier);\n e.preventDefault();\n },\n style: {\n cursor: \"pointer\"\n }\n }, __(\"Create now\")))))));\n};\n\nexport { BlockerFormNoticeNoneExistingCookies };","import _Spin from \"antd/es/spin\";\nimport { RouteHttpVerb } from \"@devowl-wp/utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { hooks, mediaUtils } from \"wp\";\nimport { request as utilsRequest, getOtherOptionsFromWindow } from \"../utils\";\nconst {\n addFilter\n} = hooks;\nconst {\n MediaUpload\n} = mediaUtils;\n\nconst replaceMediaUpload = () => MediaUpload;\n\naddFilter(\"editor.MediaUpload\", \"core/edit-post/components/media-upload/replace-media-upload\", replaceMediaUpload);\n\nfunction useMediaAttachment(id) {\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState();\n const [error, setError] = useState();\n const fetch = useCallback(async id => {\n setFetching(true);\n const {\n currentLanguage\n } = getOtherOptionsFromWindow();\n\n try {\n const result = await utilsRequest({\n location: {\n path: \"/media/:id\",\n method: RouteHttpVerb.GET,\n namespace: \"wp/v2\"\n },\n params: {\n id,\n _dataLocale: currentLanguage\n }\n });\n setData(result);\n setError(undefined);\n } catch (e) {\n setData(undefined);\n setError(e);\n } finally {\n setFetching(false);\n }\n }, []);\n useEffect(() => {\n if (id) {\n fetch(id);\n } else {\n setData(undefined);\n setError(undefined);\n }\n }, [id]);\n return {\n fetching,\n data,\n fetch,\n error\n };\n}\n/**\n * @see https://github.com/WordPress/gutenberg/tree/trunk/packages/block-editor/src/components/media-upload\n * @see https://wordpress.stackexchange.com/a/385777/83335\n * @see https://www.liip.ch/en/blog/add-an-image-selector-to-a-gutenberg-block\n */\n\n\nconst MediaLibrarySelector = ({\n attachmentId,\n title,\n allowedTypes,\n render,\n onChange\n}) => {\n const useAttachmentId = attachmentId || undefined; // Zero should be treated as `undefined`\n\n const {\n data,\n error,\n fetching\n } = useMediaAttachment(useAttachmentId);\n const url = data === null || data === void 0 ? void 0 : data.source_url;\n useEffect(() => {\n var _error$responseJSON;\n\n if ((error === null || error === void 0 ? void 0 : (_error$responseJSON = error.responseJSON) === null || _error$responseJSON === void 0 ? void 0 : _error$responseJSON.code) === \"rest_post_invalid_id\") {\n onChange(undefined, undefined);\n }\n }, [error]);\n return /*#__PURE__*/React.createElement(_Spin, {\n spinning: fetching\n }, /*#__PURE__*/React.createElement(MediaUpload, {\n onSelect: media => {\n onChange === null || onChange === void 0 ? void 0 : onChange(media === null || media === void 0 ? void 0 : media.id, media);\n },\n title: title,\n allowedTypes: allowedTypes,\n value: useAttachmentId,\n render: ({\n open\n }) => render({\n open,\n reset: () => onChange(undefined, undefined),\n attachmentId: useAttachmentId,\n url\n })\n }));\n};\n\nexport { MediaLibrarySelector };","export const FormContentBlockerLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nexport * from \"./fields\";\nexport * from \"./form\";","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormContentBlockerFieldGeneralName = () => {\n const {\n __\n } = useFormContentBlocker();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"blocker\",\n valueName: \"name\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __('Each content blocker should have a descriptive name that is understandable to a non-professional user, e.g. \"Google Maps\".')));\n};\n\nexport { FormContentBlockerFieldGeneralName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldGeneralStatus = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__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 an option!\")\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 }, __('Content Blockers with the status \"Draft\" or \"Disabled\" are not visible to the public. In addition, a draft will be highlighted in the content blocker table so that you do not forget to configure it.')));\n};\n\nexport { FormContentBlockerFieldGeneralStatus };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldGeneralDescription = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Description\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"description\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can give your visitors further explanations why a content has been blocked or, for example, how they can contact you alternatively instead of agreeing to load the contact form. The description is displayed only in visual content blockers.\")));\n};\n\nexport { FormContentBlockerFieldGeneralDescription };","import { FormContentBlockerFieldGeneralDescription, FormContentBlockerFieldGeneralName, FormContentBlockerFieldGeneralStatus, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormContentBlockerFieldGeneralCompose = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span\n }, __(\"General content blocker configuration\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/\")\n })), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralName, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralStatus, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralDescription, null));\n};\n\nexport { FormContentBlockerFieldGeneralCompose };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../../valueDifferFromPresetTag\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormContentBlockerFieldTechnicalRules = () => {\n const {\n __,\n _i,\n openCookieExperts\n } = useFormContentBlocker();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"URLs / Elements to block\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"rules\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide at least one URL/element!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3,\n maxRows: 15\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"blocker\",\n valueName: \"rules\",\n widthOfRef: ref,\n difference: (oldValue, newValue) => {\n const currentRules = oldValue.split(\"\\n\");\n const diff = newValue.split(\"\\n\").filter(newRule => !currentRules.includes(newRule));\n return diff.length > 0 ? diff : undefined;\n },\n apply: (diff, setFieldsValue, oldValue) => setFieldsValue({\n rules: oldValue.split(\"\\n\").concat(diff).join(\"\\n\")\n }),\n newValueText: __(\"Missing entries:\"),\n renderDiff: (value, diff) => /*#__PURE__*/React.createElement(_Input.TextArea, {\n value: diff.join(\"\\n\"),\n readOnly: true,\n autoSize: {\n minRows: 3,\n maxRows: 15\n }\n })\n }), _i(__(\"Enter one rule per line to replace content with a content blocker. You can block all available URLs or HTML tags on your website including videos, iframes, scripts, inline scripts and stylesheets. Please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n }), \"\\xA0\\u2022\\xA0\", !!openCookieExperts && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"button-link\",\n onClick: openCookieExperts\n }, __(\"Can't handle it? Let a Cookie Expert help you!\")), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"br\", null), _i(__('{{strong}}Pro tip:{{/strong}} Look up all available syntaxes like {{code}}div[class*=\"my-embed\"]{{/code}} in our knowledge base to block content perfectly.'), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null),\n code: /*#__PURE__*/React.createElement(\"code\", null)\n }), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/\")\n })));\n};\n\nexport { FormContentBlockerFieldTechnicalRules };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalCriteria = () => {\n const {\n __,\n isTcf\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Block by\"),\n required: true,\n style: {\n display: isTcf ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"criteria\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, null, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"services\"\n }, __(\"Services\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"tcfVendors\"\n }, __(\"TCF Vendors\")))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can block content through non-standard services or TCF vendors. If you want to block it through TCF vendors, then the visual content blocker cannot be displayed because TCF is usually used to obtain consent for ad networks. Moreover, after the initial consents in the cookie banner, users will probably never consent to the ad.\")));\n};\n\nexport { FormContentBlockerFieldTechnicalCriteria };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalServices = ({\n dropdown,\n children\n}) => {\n const {\n __,\n _i,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"services\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Connected services\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"services\",\n noStyle: true,\n rules: [{\n type: \"array\",\n required: true,\n message: __(\"Please provide at least one service!\")\n }]\n }, dropdown), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary services that would be used by loading the content. You must define all services that are loaded as soon as the user wants to see the blocked content.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), children);\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalServices };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalTcfVendors = ({\n dropdown,\n children\n}) => {\n const {\n __,\n _i,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"tcfVendors\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Connected TCF Vendors\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"tcfVendors\",\n noStyle: true,\n rules: [{\n type: \"array\",\n required: true,\n message: __(\"Please provide at least one vendor!\")\n }]\n }, dropdown), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary TCF vendors that would be used by loading the content. You must define all TCF vendors that are loaded based on legitimate interest or consent as soon as the user wants to see the blocked content.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), children);\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalTcfVendors };","import _Form from \"antd/es/form\";\nimport { FormContentBlockerFieldTechnicalCriteria, FormContentBlockerFieldTechnicalRules, FormContentBlockerFieldTechnicalServices, FormContentBlockerFieldTechnicalTcfVendors, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\n\nconst FormContentBlockerFieldTechnicalCompose = ({\n servicesFieldProps,\n tcfVendorsFieldProps\n}) => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span\n }, __(\"Technical Definition\")), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalRules, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalCriteria, null), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n switch (getFieldValue(\"criteria\")) {\n case \"services\":\n return /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalServices, servicesFieldProps);\n\n case \"tcfVendors\":\n return /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalTcfVendors, tcfVendorsFieldProps);\n\n default:\n return null;\n }\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalCompose };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldIsVisual = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isVisual\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Show the visual content blocker, if possible\"))));\n};\n\nexport { FormContentBlockerFieldIsVisual };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport _Card from \"antd/es/card\";\nimport { useMemo } from \"react\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualType = () => {\n const {\n __,\n isPro,\n proModals: {\n visual: {\n tag\n }\n }\n } = useFormContentBlocker();\n const visualTypes = useMemo(() => ({\n default: {\n title: __(\"Textbox\"),\n description: __(\"Plain text with button\")\n },\n wrapped: {\n title: __(\"Wrapped\"),\n description: __(\"Image surrounding the content blocker\")\n },\n hero: {\n title: __(\"Hero\"),\n description: __(\"Image with content blocker on click\")\n }\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual\n }, ({\n getFieldValue\n }) => !!getFieldValue(\"isVisual\") && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n },\n style: {\n paddingBottom: 10\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualType\",\n noStyle: true,\n rules: isPro ? [] : [{\n required: true,\n type: \"enum\",\n enum: [\"default\"],\n message: __(\"This type of visual content blocker is available only in the PRO version of the plugin. Please choose a textbox content blocker!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n size: \"large\",\n buttonStyle: \"solid\",\n className: \"rcb-antd-radio-button-card\",\n style: {\n marginBottom: 10\n }\n }, Object.keys(visualTypes).map(type => {\n const {\n description,\n title\n } = visualTypes[type];\n return /*#__PURE__*/React.createElement(_Radio.Button, {\n value: type,\n key: type\n }, /*#__PURE__*/React.createElement(_Card, {\n style: {\n width: 300\n },\n bordered: false,\n cover: /*#__PURE__*/React.createElement(\"img\", {\n style: {\n height: 168.75\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \".png\")\n })\n }, /*#__PURE__*/React.createElement(_Card.Meta, {\n title: /*#__PURE__*/React.createElement(React.Fragment, null, title, \" \", type !== \"default\" && tag),\n description: description\n })));\n }))))));\n};\n\nexport { FormContentBlockerFieldVisualType };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport _Card from \"antd/es/card\";\nimport { useMemo } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualContentType = () => {\n const {\n __,\n isPro,\n proModals: {\n visual: {\n tag\n }\n }\n } = useFormContentBlocker();\n const visualContentTypeTitles = useMemo(() => ({\n map: __(\"Map\"),\n \"audio-player\": __(\"Audio player\"),\n \"video-player\": __(\"Video player\"),\n \"feed-text\": __(\"Feed (text)\"),\n \"feed-video\": __(\"Feed (image/video)\"),\n generic: __(\"None of these\")\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisualDarkMode !== nextValues.isVisualDarkMode || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Content type\"),\n required: true,\n extra: tag\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualContentType\",\n rules: [{\n required: true,\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n size: \"large\",\n buttonStyle: \"solid\",\n className: \"rcb-antd-radio-button-card\"\n }, Object.keys(visualContentTypeTitles).map(type => {\n const title = visualContentTypeTitles[type];\n return /*#__PURE__*/React.createElement(_Radio.Button, {\n value: type,\n key: type,\n style: {\n margin: \"0 5px 5px 0\"\n },\n disabled: !isPro\n }, /*#__PURE__*/React.createElement(_Card, {\n style: {\n width: 240\n },\n bordered: false,\n size: \"small\",\n cover: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"img\", {\n style: {\n display: getFieldValue(\"isVisualDarkMode\") ? \"none\" : undefined\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \"-light.png\")\n }), /*#__PURE__*/React.createElement(\"img\", {\n style: {\n display: getFieldValue(\"isVisualDarkMode\") ? undefined : \"none\"\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \"-dark.png\")\n }))\n }, /*#__PURE__*/React.createElement(_Card.Meta, {\n title: title\n })));\n }))));\n });\n};\n\nexport { FormContentBlockerFieldVisualContentType };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormContentBlockerLayout } from \"../..\";\n\nconst FormContentBlockerFieldIsVisualDarkMode = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isVisualDarkMode\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), \"\\xA0\\xA0\", __(\"Enable dark mode\"), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"As soon as no image is found for the content blocker, a default image is automatically used. You can also specify whether the image should be displayed light or dark.\"))));\n });\n};\n\nexport { FormContentBlockerFieldIsVisualDarkMode };","import _Popconfirm from \"antd/es/popconfirm\";\nimport _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualDownloadThumbnail = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualDownloadThumbnail !== nextValues.visualDownloadThumbnail || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n const visualDownloadThumbnail = getFieldValue(\"visualDownloadThumbnail\");\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Automatic preview image\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"visualDownloadThumbnail\",\n required: true,\n rules: [{\n required: true,\n type: \"boolean\",\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n style: {\n display: visualDownloadThumbnail ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: true\n }, __(\"Download preview image and serve locally\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: false\n }, __(\"Image from media library\")))), !visualDownloadThumbnail && /*#__PURE__*/React.createElement(_Radio.Group, {\n value: visualDownloadThumbnail\n }, /*#__PURE__*/React.createElement(_Popconfirm, {\n title: __(\"I confirm that I have the required rights to embedded content and its thumbnails can be copied to my servers without e.g. copyright infringement.\"),\n cancelText: __(\"Cancel\"),\n okText: __(\"Activate now\"),\n overlayStyle: {\n maxWidth: 450\n },\n onCancel: () => setFieldsValue({\n visualDownloadThumbnail: false\n }),\n onConfirm: () => setFieldsValue({\n visualDownloadThumbnail: true\n }),\n placement: \"bottomLeft\"\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: true\n }, __(\"Download preview image and serve locally\"))), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: false,\n onClick: () => setFieldsValue({\n visualDownloadThumbnail: false\n })\n }, __(\"Image from media library\"))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"If you block an external URL, this option will try to download an image for this URL using different mechanisms (oEmbed, OpenGraph, ...), saves it locally and use it as background image.\"))));\n });\n};\n\nexport { FormContentBlockerFieldVisualDownloadThumbnail };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualMediaThumbnail = ({\n children\n}) => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualDownloadThumbnail !== nextValues.visualDownloadThumbnail || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType || prevValues.visualContentType !== nextValues.visualContentType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n const visualContentType = getFieldValue(\"visualContentType\");\n const visualDownloadThumbnail = getFieldValue(\"visualDownloadThumbnail\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: visualDownloadThumbnail || visualContentType === \"generic\" ? __(\"Fallback preview image\") : __(\"Preview image\"),\n name: \"visualMediaThumbnail\",\n valuePropName: \"attachmentId\",\n style: {\n display: visualDownloadThumbnail === undefined ? \"none\" : undefined\n }\n }, children);\n });\n};\n\nexport { FormContentBlockerFieldVisualMediaThumbnail };","import _Form from \"antd/es/form\";\nimport _Slider from \"antd/es/slider\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualBlur = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Blur image\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualBlur\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Slider, {\n min: 0,\n max: 20,\n marks: {\n 0: __(\"Disabled\"),\n 5: \"5%\",\n 10: \"10%\",\n 15: \"15%\",\n 20: \"20%\"\n },\n tooltipVisible: false,\n style: {\n marginLeft: 40\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can apply an additional blur to the background image. This can be useful e.g. for blocked contact forms to show it only schematically.\")));\n });\n};\n\nexport { FormContentBlockerFieldVisualBlur };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualHeroButtonText = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualContentType !== nextValues.visualContentType\n }, ({\n getFieldValue\n }) => {\n const visualContentType = getFieldValue(\"visualContentType\");\n const visualType = getFieldValue(\"visualType\");\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Button text\"),\n style: {\n display: [\"audio-player\", \"video-player\"].indexOf(visualContentType) > -1 || visualType !== \"hero\" ? \"none\" : undefined\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualHeroButtonText\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"If you specify a button text, a button with this text will be centered in the image and only when you click on this button the content blocker will be opened. Otherwise, clicking on the image itself will open the Content Blocker.\")));\n });\n });\n};\n\nexport { FormContentBlockerFieldVisualHeroButtonText };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormContentBlockerLayout } from \"../..\";\n\nconst FormContentBlockerFieldShouldForceToShowVisual = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n return !!isVisual && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"shouldForceToShowVisual\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), \"\\xA0\\xA0\", __(\"Force visual content blocker for hidden elements\"), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"In rare cases, visual content blockers are not displayed because the main element of the blocked content is not visible either. Enable this option if this is the case and you want to force to display a content blocker for non-visible elements.\"))));\n });\n};\n\nexport { FormContentBlockerFieldShouldForceToShowVisual };","import _Form from \"antd/es/form\";\nimport { FormContentBlockerFieldIsVisual, FormContentBlockerFieldIsVisualDarkMode, FormContentBlockerFieldShouldForceToShowVisual, FormContentBlockerFieldVisualBlur, FormContentBlockerFieldVisualContentType, FormContentBlockerFieldVisualDownloadThumbnail, FormContentBlockerFieldVisualHeroButtonText, FormContentBlockerFieldVisualMediaThumbnail, FormContentBlockerFieldVisualType, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\n\nconst FormContentBlockerFieldVisualCompose = ({\n visualMediaThumbnailPicker\n}) => {\n const {\n __,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"services\" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span,\n description: __(\"For each content blocker it can be defined if it should be visually visible. This means that if the user has not agreed to the respective services, a box with a button is displayed to adjust the privacy settings so that the actual content can be loaded. The design of the box is copied from the cookie banner.\")\n }, __(\"Visual\")), /*#__PURE__*/React.createElement(FormContentBlockerFieldIsVisual, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualType, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualContentType, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldIsVisualDarkMode, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualDownloadThumbnail, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualMediaThumbnail, null, visualMediaThumbnailPicker), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualBlur, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualHeroButtonText, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldShouldForceToShowVisual, null));\n }));\n};\n\nexport { FormContentBlockerFieldVisualCompose };","import _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../contexts\";\nimport { LearnMoreTag } from \"../../../common\";\n\nconst FormContentBlockerFieldPresetCheck = () => {\n const {\n __,\n presetCheck,\n isTemplateUpdate\n } = useFormContentBlocker();\n return !!(presetCheck || isTemplateUpdate) && /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: value => value || undefined,\n message: __(\"Please confirm that you have checked the content of the content blocker.\")\n }],\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"I have checked the information in the content blocker 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 })));\n};\n\nexport { FormContentBlockerFieldPresetCheck };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { FormContentBlockerFieldGeneralCompose, FormContentBlockerFieldTechnicalCompose, FormContentBlockerFieldVisualCompose, FormContentBlockerFieldPresetCheck, FormContentBlockerLayout } from \".\";\nimport { I18nContextFactory, useFormContentBlocker } from \"../../../contexts\";\nimport { FormValueDifferFromPresetNotice } from \"..\";\n\nconst FormContentBlocker = ({\n technicalProps,\n visualProps\n}) => {\n const {\n __,\n _i\n } = useFormContentBlocker();\n const ref = useRef();\n const I18nContext = I18nContextFactory.Context();\n return /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: {\n __,\n _i\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetNotice, {\n containerRef: ref,\n form: \"blocker\"\n }), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralCompose, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalCompose, technicalProps), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualCompose, visualProps), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\",\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n }\n }, /*#__PURE__*/React.createElement(FormContentBlockerFieldPresetCheck, null), /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary\",\n value: __(\"Save\")\n }))))));\n};\n\nexport { FormContentBlocker };","import _Spin from \"antd/es/spin\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Image from \"antd/es/image\";\nimport _Modal from \"antd/es/modal\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { PostTypeSelect } from \"../..\";\nimport { __, scrollTo, _i } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { Prompt, useHistory } from \"react-router-dom\";\nimport { useCookieExpertsModal, useProModal, useRouteBlocker } from \"../../../hooks\";\nimport { BlockerModel } from \"../../../models\";\nimport { BlockerFormNoticeNoneExistingCookies } from \".\";\nimport { CookieEditForm } from \"..\";\nimport { MediaLibrarySelector } from \"../..\";\nimport { FormContentBlockerContextFactory, FormContentBlockerLayout, FormContentBlocker, useFormContentBlockerHandler } from \"@devowl-wp/react-cookie-banner-admin\";\n\nfunction useProModalVisualContentBlocker() {\n return useProModal({\n title: __(\"Want a better integrated visual content blocker for your website?\"),\n testDrive: true,\n feature: \"visual-content-blocker\",\n assetName: __(\"pro-modal/visual-content-blocker.webp\"),\n description: __(\"Instead of a lot of text, you can offer your visitor a more pleasant way to view blocked content. For example, you can replace your video embeds with a privacy-compliant dummy player with thumbnail, or an embedded map with a preview map.\")\n });\n}\n\nconst BlockerEditForm = observer(({\n preset,\n overwriteAttributes,\n navigateAfterCreation = true,\n cookieCreationPrompt = false\n}) => {\n var _blocker$data, _blocker$data$meta;\n\n const {\n blocker,\n id,\n queried,\n fetched,\n link\n } = useRouteBlocker();\n const history = useHistory();\n const [isCreatingNewCookie, setIsCreatingNewCookie] = useState(false);\n const {\n cookieStore,\n optionStore: {\n tcf,\n others: {\n isPro\n }\n }\n } = useStores();\n const presetModel = (blocker === null || blocker === void 0 ? void 0 : blocker.presetModel) || cookieStore.presetsBlocker.get(preset === null || preset === void 0 ? void 0 : preset.identifier);\n const attributes = { ...(presetModel === null || presetModel === void 0 ? void 0 : presetModel.attributes),\n ...overwriteAttributes\n };\n const {\n form,\n isBusy,\n defaultValues,\n nonExistingServices,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange,\n contextValue\n } = useFormContentBlockerHandler({\n __,\n _i,\n attributes,\n isTcf: tcf,\n preset: presetModel ? {\n identifier: presetModel.data.identifier,\n version: presetModel.data.version\n } : undefined,\n initialHasChanges: cookieCreationPrompt,\n handleSave: async values => {\n try {\n var _meta$tcfVendors, _meta$services;\n\n const {\n name,\n status,\n description,\n ...meta\n } = values;\n const newMeta = { ...meta,\n visualMediaThumbnail: meta.visualMediaThumbnail || 0,\n criteria: meta.criteria,\n tcfVendors: ((_meta$tcfVendors = meta.tcfVendors) === null || _meta$tcfVendors === void 0 ? void 0 : _meta$tcfVendors.join(\",\")) || \"\",\n services: ((_meta$services = meta.services) === null || _meta$services === void 0 ? void 0 : _meta$services.join(\",\")) || \"\",\n isVisual: meta.criteria === \"services\" ? meta.isVisual : false,\n presetId: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.identifier,\n presetVersion: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.version\n };\n delete newMeta.presetCheck;\n\n if (queried) {\n blocker.setName(name);\n blocker.setStatus(status);\n blocker.setDescription(description);\n blocker.setMeta(newMeta);\n await blocker.patch();\n } else {\n const draft = new BlockerModel(blockers, {\n title: {\n rendered: name\n },\n content: {\n rendered: description,\n protected: false\n },\n status,\n meta: newMeta\n });\n await draft.persist();\n }\n\n navigateAfterCreation && setTimeout(() => typeof navigateAfterCreation === \"string\" ? window.location.href = navigateAfterCreation : history.push(link.slice(1)), 0);\n } catch (e) {\n throw e.responseJSON.message;\n }\n }\n });\n const {\n blockers,\n essentialGroup\n } = cookieStore;\n const {\n openDialog: openCookieExperts\n } = useCookieExpertsModal();\n const initialValues = fetched ? {\n name: blocker.data.title.raw,\n status: blocker.data.status,\n description: blocker.data.content.raw,\n criteria: blocker.data.meta.criteria,\n rules: blocker.data.meta.rules,\n tcfVendors: blocker.tcfVendors,\n services: blocker.services,\n isVisual: blocker.data.meta.isVisual,\n visualType: isPro ? blocker.data.meta.visualType : \"default\",\n visualMediaThumbnail: blocker.data.meta.visualMediaThumbnail,\n visualContentType: blocker.data.meta.visualContentType,\n isVisualDarkMode: blocker.data.meta.isVisualDarkMode,\n visualBlur: blocker.data.meta.visualBlur,\n visualDownloadThumbnail: blocker.data.meta.visualDownloadThumbnail,\n visualHeroButtonText: blocker.data.meta.visualHeroButtonText,\n shouldForceToShowVisual: blocker.data.meta.shouldForceToShowVisual,\n presetCheck: undefined\n } : defaultValues; // Automatically add created presets to the dropdown\n\n const handleCreatedPreset = useCallback(model => {\n form.setFieldsValue({\n services: [...form.getFieldValue(\"services\"), model.key]\n });\n }, [form]); // Initially load the blocker if not yet done\n\n useEffect(() => {\n if (queried && !fetched) {\n blockers.getSingle({\n params: {\n id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]);\n useEffect(() => {\n if (presetModel && !presetModel.attributes && !presetModel.busy) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(() => {\n scrollTo(0); // Ensure the groups are loaded\n\n if (!essentialGroup) {\n cookieStore.fetchGroups();\n }\n }, []);\n const proModalVisualContentBlocker = useProModalVisualContentBlocker();\n const FormContentBlockerContext = FormContentBlockerContextFactory.Context();\n\n if (queried && !fetched || presetModel && !presetModel.attributes) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(FormContentBlockerContext.Provider, {\n value: { ...contextValue,\n isPro,\n isEdit: fetched,\n isTemplateUpdate: fetched && presetModel ? ((_blocker$data = blocker.data) === null || _blocker$data === void 0 ? void 0 : (_blocker$data$meta = _blocker$data.meta) === null || _blocker$data$meta === void 0 ? void 0 : _blocker$data$meta.presetVersion) !== presetModel.data.version : false,\n proModals: {\n visual: proModalVisualContentBlocker\n },\n openCookieExperts\n }\n }, /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: onBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"blocker-\".concat(id),\n form: form\n }, FormContentBlockerLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: onValuesChange\n }), /*#__PURE__*/React.createElement(FormContentBlocker, {\n technicalProps: {\n servicesFieldProps: {\n dropdown: /*#__PURE__*/React.createElement(PostTypeSelect, {\n postType: \"rcb-cookie\",\n multiple: true,\n filter: d => d[\"rcb-cookie-group\"][0] !== (essentialGroup === null || essentialGroup === void 0 ? void 0 : essentialGroup.key)\n }),\n children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"button\",\n onClick: () => setIsCreatingNewCookie(true)\n }, __(\"Create new service\")), /*#__PURE__*/React.createElement(_Modal, {\n key: id,\n visible: isCreatingNewCookie,\n title: __(\"Add service\"),\n width: \"calc(100% - 50px)\",\n bodyStyle: {\n paddingBottom: 0\n },\n footer: null,\n onCancel: () => setIsCreatingNewCookie(false)\n }, /*#__PURE__*/React.createElement(CookieEditForm, {\n navigateAfterCreation: false,\n scrollToTop: false,\n onCreated: model => {\n setIsCreatingNewCookie(false);\n handleCreatedPreset(model);\n }\n })), /*#__PURE__*/React.createElement(BlockerFormNoticeNoneExistingCookies, {\n nonExistingServices: nonExistingServices,\n onCreated: handleCreatedPreset\n }))\n },\n tcfVendorsFieldProps: {\n dropdown: /*#__PURE__*/React.createElement(PostTypeSelect, {\n postType: \"rcb-tcf-vendor-conf\",\n multiple: true,\n titleRender: ({\n vendor: {\n name\n }\n }) => name\n })\n }\n },\n visualProps: {\n visualMediaThumbnailPicker: /*#__PURE__*/React.createElement(MediaLibrarySelector, {\n title: __(\"Select preview image\"),\n allowedTypes: [\"image\"],\n render: ({\n open,\n reset,\n attachmentId,\n url\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n style: {\n marginTop: 0\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button\",\n onClick: open\n }, attachmentId ? __(\"Replace image\") : __(\"Select from media library\")), \"\\xA0\", attachmentId && /*#__PURE__*/React.createElement(\"a\", {\n className: \"button\",\n onClick: reset\n }, __(\"Remove image\"))), url && /*#__PURE__*/React.createElement(_Image, {\n width: 272,\n src: url\n }))\n })\n }\n }))));\n});\nexport { BlockerEditForm, useProModalVisualContentBlocker };","import { useFormHandler } from \".\";\n\nfunction useFormContentBlockerHandler(opts) {\n var _attributes$rules, _attributes$tcfVendor, _attributes$serviceTe, _attributes$serviceTe2;\n\n const {\n isTcf,\n preset,\n attributes,\n __,\n _i\n } = opts;\n const defaultValues = {\n name: (attributes === null || attributes === void 0 ? void 0 : attributes.name) || \"\",\n status: \"publish\",\n description: (attributes === null || attributes === void 0 ? void 0 : attributes.description) || \"\",\n criteria: isTcf && !preset ? \"tcfVendors\" : \"services\",\n rules: (attributes === null || attributes === void 0 ? void 0 : (_attributes$rules = attributes.rules) === null || _attributes$rules === void 0 ? void 0 : _attributes$rules.join(\"\\n\")) || \"\",\n tcfVendors: (attributes === null || attributes === void 0 ? void 0 : (_attributes$tcfVendor = attributes.tcfVendors) === null || _attributes$tcfVendor === void 0 ? void 0 : _attributes$tcfVendor.filter(Number)) || [],\n services: attributes === null || attributes === void 0 ? void 0 : (_attributes$serviceTe = attributes.serviceTemplates) === null || _attributes$serviceTe === void 0 ? void 0 : _attributes$serviceTe.map(({\n created\n }) => created === false ? undefined : created).filter(Boolean),\n isVisual: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.isVisual) === \"boolean\" ? attributes.isVisual : true,\n visualType: (attributes === null || attributes === void 0 ? void 0 : attributes.visualType) || \"default\",\n visualMediaThumbnail: 0,\n visualContentType: (attributes === null || attributes === void 0 ? void 0 : attributes.visualContentType) || \"generic\",\n isVisualDarkMode: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.isVisualDarkMode) === \"boolean\" ? attributes.isVisualDarkMode : false,\n visualBlur: (attributes === null || attributes === void 0 ? void 0 : attributes.visualBlur) || 0,\n visualDownloadThumbnail: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.visualDownloadThumbnail) === \"boolean\" ? attributes.visualDownloadThumbnail : undefined,\n visualHeroButtonText: (attributes === null || attributes === void 0 ? void 0 : attributes.visualHeroButtonText) || \"\",\n shouldForceToShowVisual: (attributes === null || attributes === void 0 ? void 0 : attributes.shouldForceToShowVisual) || false,\n presetCheck: !preset\n };\n const handlers = useFormHandler({ ...opts,\n defaultValues,\n i18n: {\n successMessage: __(\"You have successfully saved the content blocker.\"),\n validationError: __(\"The content blocker could not be saved due to missing/invalid form values.\"),\n unloadConfirm: __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.'),\n unloadConfirmInitialActive: __(\"You have already created a service. Are you sure that you don't want to create the corresponding content blocker?\")\n }\n }); // Find non-existing services and show a warning\n\n const nonExistingServices = (attributes === null || attributes === void 0 ? void 0 : (_attributes$serviceTe2 = attributes.serviceTemplates) === null || _attributes$serviceTe2 === void 0 ? void 0 : _attributes$serviceTe2.filter(({\n created\n }) => !created)) || [];\n return { ...handlers,\n defaultValues,\n nonExistingServices,\n contextValue: {\n __,\n _i,\n isTcf,\n presetCheck: !!preset,\n defaultPresetValues: preset ? defaultValues : {}\n }\n };\n}\n\nexport { useFormContentBlockerHandler };","import _Select from \"antd/es/select\";\nimport _Spin from \"antd/es/spin\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport { __, request as utilsRequest, getOtherOptionsFromWindow } from \"../utils\";\nimport { useDebounce } from \"../hooks\";\nimport { RouteHttpVerb } from \"@devowl-wp/utils\";\nimport { htmlDecode } from \"@devowl-wp/headless-content-unblocker\";\n\nconst PostTypeSelect = ({\n postType,\n postStatus = [\"draft\", \"publish\", \"private\"],\n perPage = 10,\n value,\n multiple,\n disabled,\n forceDefaultLanguage,\n onChange,\n titleRender = ({\n title: {\n rendered\n }\n }) => rendered,\n filter = () => true\n}) => {\n const [term, setTerm] = useState(false);\n const [postId, setPostId] = useState(value);\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState([]);\n const fetch = useCallback(async request => {\n setFetching(true);\n const {\n defaultLanguage,\n currentLanguage\n } = getOtherOptionsFromWindow();\n const pages = await utilsRequest({\n location: {\n path: \"/\".concat(postType),\n method: RouteHttpVerb.GET,\n namespace: \"wp/v2\"\n },\n request: {\n status: request.include ? [\"draft\", \"publish\", \"private\"] : postStatus,\n orderby: request.search ? \"relevance\" : \"title\",\n ...request\n },\n params: {\n _dataLocale: forceDefaultLanguage ? defaultLanguage : currentLanguage\n }\n });\n setData(pages);\n setFetching(false);\n }, []);\n useDebounce(term, term === \"\" ? 0 : 800, debouncedValue => {\n if (debouncedValue !== false) {\n fetch({\n search: debouncedValue,\n per_page: debouncedValue.length ? 50 : perPage\n });\n }\n }, changedValue => {\n if (changedValue !== false) {\n setFetching(true);\n }\n\n setData([]);\n });\n useEffect(() => {\n if (postId > 0 || Array.isArray(postId) && postId.length > 0) {\n fetch({\n include: Array.isArray(postId) ? postId : [postId]\n });\n }\n }, []); // Listen to changes from outside and refetch the data\n\n useEffect(() => {\n if (JSON.stringify(postId) !== JSON.stringify(value) && (value > 0 || Array.isArray(value) && value.length > 0)) {\n setPostId(value);\n fetch({\n include: Array.isArray(value) ? value : [value]\n });\n }\n }, [value, postId]);\n return /*#__PURE__*/React.createElement(_Select, {\n mode: multiple ? \"multiple\" : undefined,\n disabled: disabled,\n showSearch: true,\n value: postId,\n placeholder: __(\"Search...\"),\n notFoundContent: fetching ? /*#__PURE__*/React.createElement(_Spin, {\n size: \"small\"\n }) : null,\n onClick: () => setTerm(\"\"),\n onSearch: setTerm,\n onChange: e => {\n const value = Array.isArray(e) ? e.map(Number) : +e;\n setPostId(value);\n onChange === null || onChange === void 0 ? void 0 : onChange(value);\n },\n filterOption: false,\n loading: fetching\n }, !multiple && !fetching && /*#__PURE__*/React.createElement(_Select.Option, {\n value: 0\n }, __(\"— Select —\")), data.map(d => /*#__PURE__*/React.createElement(_Select.Option, {\n key: d.id,\n value: d.id,\n style: {\n display: filter(d) ? undefined : \"none\"\n }\n }, htmlDecode(titleRender(d)))));\n};\n\nexport { PostTypeSelect };","import { isUrl } from \".\";\n/**\n * Decode HTML entities in a given string.\n *\n * @see https://stackoverflow.com/a/34064434/5506547\n */\n\nfunction htmlDecode(input) {\n const inputIsUrl = isUrl(input);\n\n if (inputIsUrl) {\n var _doc$querySelector;\n\n // URLs needs to be handled a bit different as e.g. `?regionid` gets parsed to `&#39;ionid=`\n const doc = new DOMParser().parseFromString(\"<a href=\\\"\".concat(input, \"\\\"></a>\"), \"text/html\");\n return (_doc$querySelector = doc.querySelector(\"a\")) === null || _doc$querySelector === void 0 ? void 0 : _doc$querySelector.href;\n } else {\n // Keep XSS protection intact\n const doc = new DOMParser().parseFromString(input, \"text/html\");\n return doc.documentElement.textContent;\n }\n}\n\nexport { htmlDecode };","import { useState, useEffect } from \"react\";\n\nfunction useDebounce(value, delay, callback, changed) {\n const [debounce, setDebounce] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebounce(value);\n }, delay);\n changed === null || changed === void 0 ? void 0 : changed(value);\n return () => {\n clearTimeout(handler);\n };\n }, [value]);\n useEffect(() => {\n callback(debounce);\n }, [debounce]);\n return debounce;\n}\n\nexport { useDebounce };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { BlockerModel } from \"../models\";\n\nconst useRouteBlocker = () => {\n const {\n params\n } = useRouteMatch();\n const {\n cookieStore\n } = useStores(); // Get blocker or return draft object\n\n const blockerId = +params.blocker;\n const id = isNaN(+blockerId) ? 0 : +blockerId;\n const queried = !!blockerId;\n const blocker = cookieStore.blockers.entries.get(id) || new BlockerModel(cookieStore.blockers, {\n id: 0\n });\n const link = \"#/blocker\";\n const editLink = useCallback(({\n key\n }) => \"#/blocker/edit/\".concat(key), [blocker]);\n const addLink = \"#/blocker/new\";\n return {\n blocker,\n id,\n queried,\n fetched: blocker.key !== 0,\n link,\n editLink,\n addLink\n };\n};\n\nexport { useRouteBlocker };"],"names":["BlockerFormNoticeNoneExistingCookies","nonExistingServices","onCreated","openId","setOpenId","useState","created","setCreated","useNoneExistingCookies","filter","identifier","indexOf","modalWindows","map","attributes","version","React","createElement","key","visible","title","__","width","bodyStyle","paddingBottom","footer","onCancel","undefined","navigateAfterCreation","scrollToTop","preset","model","Fragment","length","className","join","style","margin","name","subHeadline","concat","onClick","e","preventDefault","cursor","addFilter","hooks","MediaUpload","mediaUtils","MediaLibrarySelector","attachmentId","allowedTypes","render","onChange","useAttachmentId","data","error","fetching","id","setFetching","setData","setError","fetch","useCallback","async","currentLanguage","getOtherOptionsFromWindow","result","location","path","method","RouteHttpVerb","namespace","params","_dataLocale","useEffect","useMediaAttachment","url","source_url","_error$responseJSON","responseJSON","code","spinning","onSelect","media","value","open","reset","FormContentBlockerLayout","labelCol","span","wrapperCol","FormContentBlockerFieldGeneralName","ref","useRef","label","required","noStyle","rules","message","form","valueName","widthOfRef","renderDiff","readOnly","FormContentBlockerFieldGeneralStatus","FormContentBlockerFieldGeneralDescription","autoSize","minRows","FormContentBlockerFieldGeneralCompose","offset","FormContentBlockerFieldTechnicalRules","_i","openCookieExperts","maxRows","difference","oldValue","newValue","currentRules","split","diff","newRule","includes","apply","setFieldsValue","newValueText","type","strong","FormContentBlockerFieldTechnicalCriteria","isTcf","display","FormContentBlockerFieldTechnicalServices","dropdown","children","proModals","visual","modal","shouldUpdate","prevValues","nextValues","criteria","getFieldValue","FormContentBlockerFieldTechnicalTcfVendors","FormContentBlockerFieldTechnicalCompose","servicesFieldProps","tcfVendorsFieldProps","FormContentBlockerFieldIsVisual","valuePropName","FormContentBlockerFieldVisualType","isPro","tag","visualTypes","useMemo","default","description","wrapped","hero","isVisual","enum","size","buttonStyle","marginBottom","Object","keys","bordered","cover","height","src","FormContentBlockerFieldVisualContentType","visualContentTypeTitles","generic","isVisualDarkMode","visualType","extra","disabled","FormContentBlockerFieldIsVisualDarkMode","FormContentBlockerFieldVisualDownloadThumbnail","visualDownloadThumbnail","cancelText","okText","overlayStyle","maxWidth","onConfirm","placement","FormContentBlockerFieldVisualMediaThumbnail","visualContentType","FormContentBlockerFieldVisualBlur","min","max","marks","tooltipVisible","marginLeft","FormContentBlockerFieldVisualHeroButtonText","FormContentBlockerFieldShouldForceToShowVisual","FormContentBlockerFieldVisualCompose","visualMediaThumbnailPicker","FormContentBlockerFieldPresetCheck","presetCheck","isTemplateUpdate","transform","FormContentBlocker","technicalProps","visualProps","I18nContext","Provider","containerRef","textAlign","useProModalVisualContentBlocker","useProModal","testDrive","feature","assetName","BlockerEditForm","overwriteAttributes","cookieCreationPrompt","_blocker$data","_blocker$data$meta","blocker","queried","fetched","link","useRouteBlocker","history","useHistory","isCreatingNewCookie","setIsCreatingNewCookie","cookieStore","optionStore","tcf","others","presetModel","presetsBlocker","get","isBusy","defaultValues","onFinish","onFinishFailed","onBeforeUnload","onValuesChange","contextValue","opts","_attributes$rules","_attributes$tcfVendor","_attributes$serviceTe","_attributes$serviceTe2","status","tcfVendors","Number","services","serviceTemplates","Boolean","visualMediaThumbnail","visualBlur","visualHeroButtonText","shouldForceToShowVisual","useFormHandler","i18n","successMessage","validationError","unloadConfirm","unloadConfirmInitialActive","defaultPresetValues","useFormContentBlockerHandler","initialHasChanges","handleSave","_meta$tcfVendors","_meta$services","meta","values","newMeta","presetId","presetVersion","setName","setStatus","setDescription","setMeta","patch","draft","blockers","rendered","content","protected","persist","setTimeout","window","href","push","slice","essentialGroup","openDialog","useCookieExpertsModal","u","initialValues","raw","handleCreatedPreset","getSingle","context","busy","fetchAttributes","scrollTo","fetchGroups","proModalVisualContentBlocker","FormContentBlockerContext","active","paragraph","rows","isEdit","Prompt","postType","multiple","d","titleRender","vendor","marginTop","PostTypeSelect","postStatus","perPage","forceDefaultLanguage","term","setTerm","postId","setPostId","defaultLanguage","pages","request","include","orderby","search","useDebounce","debouncedValue","per_page","changedValue","Array","isArray","JSON","stringify","mode","showSearch","placeholder","notFoundContent","onSearch","filterOption","loading","input","isUrl","_doc$querySelector","DOMParser","parseFromString","querySelector","documentElement","textContent","delay","callback","changed","debounce","setDebounce","handler","clearTimeout","useRouteMatch","blockerId","isNaN","entries","editLink","addLink"],"sourceRoot":""}
1
+ {"version":3,"file":"637.lite.js?ver=ef6cb6d16781bb56366d","mappings":"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","sources":["webpack:///./src/public/ts/components/config/blocker/noticeNoneExistingCookies.tsx","webpack:///./src/public/ts/components/mediaLibrarySelector.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/status.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/description.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/general/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/rules.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/criteria.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/services.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/tcfVendors.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/technical/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/isVisual.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualType.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualContentType.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/isVisualDarkMode.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualDownloadThumbnail.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualMediaThumbnail.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualBlur.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/visualHeroButtonText.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/shouldForceToShowVisual.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/visual/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/fields/presetCheck.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/contentBlocker/form.tsx","webpack:///./src/public/ts/components/config/blocker/form.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormContentBlockerHandler.tsx","webpack:///./src/public/ts/components/postTypeSelect.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/htmlDecode.tsx","webpack:///./src/public/ts/hooks/useDebounce.tsx","webpack:///./src/public/ts/hooks/useRouteBlocker.tsx"],"sourcesContent":["import _Modal from \"antd/es/modal\";\nimport { useState } from \"react\";\nimport { __ } from \"../../../utils\";\nimport { CookieEditForm } from \"..\";\n\nconst BlockerFormNoticeNoneExistingCookies = ({\n nonExistingServices,\n onCreated\n}) => {\n const [openId, setOpenId] = useState(); // Created presets to hide them from the list\n\n const [created, setCreated] = useState([]);\n const useNoneExistingCookies = (nonExistingServices || []).filter(({\n identifier\n }) => created.indexOf(identifier) === -1); // Create modal windows as they should always be available in React tree (avoid \"Can't perform a React state update on an unmounted component\")\n\n const modalWindows = nonExistingServices === null || nonExistingServices === void 0 ? void 0 : nonExistingServices.map(({\n identifier,\n attributes,\n version\n }) => /*#__PURE__*/React.createElement(_Modal, {\n key: identifier,\n visible: openId === identifier,\n title: __(\"Add service\"),\n width: \"calc(100% - 50px)\",\n bodyStyle: {\n paddingBottom: 0\n },\n footer: null,\n onCancel: () => setOpenId(undefined)\n }, /*#__PURE__*/React.createElement(CookieEditForm, {\n navigateAfterCreation: false,\n scrollToTop: false,\n preset: {\n identifier,\n version\n },\n onCreated: model => {\n setOpenId(undefined);\n setCreated([...created, openId]);\n onCreated(model);\n }\n })));\n return /*#__PURE__*/React.createElement(React.Fragment, null, modalWindows, useNoneExistingCookies.length === 0 ? null : /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning below-h2 notice-alt\"\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"Some services from the template could not be found. Please select (or create if not already exist) the following services:\", useNoneExistingCookies.join(\", \"))), /*#__PURE__*/React.createElement(\"ul\", {\n style: {\n margin: \"0 0 10px\"\n }\n }, useNoneExistingCookies.map(({\n identifier,\n name,\n subHeadline\n }) => /*#__PURE__*/React.createElement(\"li\", {\n key: identifier\n }, /*#__PURE__*/React.createElement(\"strong\", null, name, subHeadline ? \" (\".concat(subHeadline, \")\") : \"\"), \"\\xA0\\u2022\\xA0\", /*#__PURE__*/React.createElement(\"a\", {\n onClick: e => {\n setOpenId(identifier);\n e.preventDefault();\n },\n style: {\n cursor: \"pointer\"\n }\n }, __(\"Create now\")))))));\n};\n\nexport { BlockerFormNoticeNoneExistingCookies };","import _Spin from \"antd/es/spin\";\nimport { RouteHttpVerb } from \"@devowl-wp/utils\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { hooks, mediaUtils } from \"wp\";\nimport { request as utilsRequest, getOtherOptionsFromWindow } from \"../utils\";\nconst {\n addFilter\n} = hooks;\nconst {\n MediaUpload\n} = mediaUtils;\n\nconst replaceMediaUpload = () => MediaUpload;\n\naddFilter(\"editor.MediaUpload\", \"core/edit-post/components/media-upload/replace-media-upload\", replaceMediaUpload);\n\nfunction useMediaAttachment(id) {\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState();\n const [error, setError] = useState();\n const fetch = useCallback(async id => {\n setFetching(true);\n const {\n currentLanguage\n } = getOtherOptionsFromWindow();\n\n try {\n const result = await utilsRequest({\n location: {\n path: \"/media/:id\",\n method: RouteHttpVerb.GET,\n namespace: \"wp/v2\"\n },\n params: {\n id,\n _dataLocale: currentLanguage\n }\n });\n setData(result);\n setError(undefined);\n } catch (e) {\n setData(undefined);\n setError(e);\n } finally {\n setFetching(false);\n }\n }, []);\n useEffect(() => {\n if (id) {\n fetch(id);\n } else {\n setData(undefined);\n setError(undefined);\n }\n }, [id]);\n return {\n fetching,\n data,\n fetch,\n error\n };\n}\n/**\n * @see https://github.com/WordPress/gutenberg/tree/trunk/packages/block-editor/src/components/media-upload\n * @see https://wordpress.stackexchange.com/a/385777/83335\n * @see https://www.liip.ch/en/blog/add-an-image-selector-to-a-gutenberg-block\n */\n\n\nconst MediaLibrarySelector = ({\n attachmentId,\n title,\n allowedTypes,\n render,\n onChange\n}) => {\n const useAttachmentId = attachmentId || undefined; // Zero should be treated as `undefined`\n\n const {\n data,\n error,\n fetching\n } = useMediaAttachment(useAttachmentId);\n const url = data === null || data === void 0 ? void 0 : data.source_url;\n useEffect(() => {\n var _error$responseJSON;\n\n if ((error === null || error === void 0 ? void 0 : (_error$responseJSON = error.responseJSON) === null || _error$responseJSON === void 0 ? void 0 : _error$responseJSON.code) === \"rest_post_invalid_id\") {\n onChange(undefined, undefined);\n }\n }, [error]);\n return /*#__PURE__*/React.createElement(_Spin, {\n spinning: fetching\n }, /*#__PURE__*/React.createElement(MediaUpload, {\n onSelect: media => {\n onChange === null || onChange === void 0 ? void 0 : onChange(media === null || media === void 0 ? void 0 : media.id, media);\n },\n title: title,\n allowedTypes: allowedTypes,\n value: useAttachmentId,\n render: ({\n open\n }) => render({\n open,\n reset: () => onChange(undefined, undefined),\n attachmentId: useAttachmentId,\n url\n })\n }));\n};\n\nexport { MediaLibrarySelector };","export const FormContentBlockerLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nexport * from \"./fields\";\nexport * from \"./form\";","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormContentBlockerFieldGeneralName = () => {\n const {\n __\n } = useFormContentBlocker();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"blocker\",\n valueName: \"name\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __('Each content blocker should have a descriptive name that is understandable to a non-professional user, e.g. \"Google Maps\".')));\n};\n\nexport { FormContentBlockerFieldGeneralName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldGeneralStatus = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__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 an option!\")\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 }, __('Content Blockers with the status \"Draft\" or \"Disabled\" are not visible to the public. In addition, a draft will be highlighted in the content blocker table so that you do not forget to configure it.')));\n};\n\nexport { FormContentBlockerFieldGeneralStatus };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldGeneralDescription = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Description\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"description\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can give your visitors further explanations why a content has been blocked or, for example, how they can contact you alternatively instead of agreeing to load the contact form. The description is displayed only in visual content blockers.\")));\n};\n\nexport { FormContentBlockerFieldGeneralDescription };","import { FormContentBlockerFieldGeneralDescription, FormContentBlockerFieldGeneralName, FormContentBlockerFieldGeneralStatus, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormContentBlockerFieldGeneralCompose = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span\n }, __(\"General content blocker configuration\"), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/\")\n })), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralName, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralStatus, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralDescription, null));\n};\n\nexport { FormContentBlockerFieldGeneralCompose };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../../valueDifferFromPresetTag\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormContentBlockerFieldTechnicalRules = () => {\n const {\n __,\n _i,\n openCookieExperts\n } = useFormContentBlocker();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"URLs / Elements to block\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"rules\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please provide at least one URL/element!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3,\n maxRows: 15\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"blocker\",\n valueName: \"rules\",\n widthOfRef: ref,\n difference: (oldValue, newValue) => {\n const currentRules = oldValue.split(\"\\n\");\n const diff = newValue.split(\"\\n\").filter(newRule => !currentRules.includes(newRule));\n return diff.length > 0 ? diff : undefined;\n },\n apply: (diff, setFieldsValue, oldValue) => setFieldsValue({\n rules: oldValue.split(\"\\n\").concat(diff).join(\"\\n\")\n }),\n newValueText: __(\"Missing entries:\"),\n renderDiff: (value, diff) => /*#__PURE__*/React.createElement(_Input.TextArea, {\n value: diff.join(\"\\n\"),\n readOnly: true,\n autoSize: {\n minRows: 3,\n maxRows: 15\n }\n })\n }), _i(__(\"Enter one rule per line to replace content with a content blocker. You can block all available URLs or HTML tags on your website including videos, iframes, scripts, inline scripts and stylesheets. Please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n }), \"\\xA0\\u2022\\xA0\", !!openCookieExperts && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"button-link\",\n onClick: openCookieExperts\n }, __(\"Can't handle it? Let a Cookie Expert help you!\")), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"br\", null), _i(__('{{strong}}Pro tip:{{/strong}} Look up all available syntaxes like {{code}}div[class*=\"my-embed\"]{{/code}} in our knowledge base to block content perfectly.'), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null),\n code: /*#__PURE__*/React.createElement(\"code\", null)\n }), \" \", /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-create-individual-content-blocker/\")\n })));\n};\n\nexport { FormContentBlockerFieldTechnicalRules };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalCriteria = () => {\n const {\n __,\n isTcf\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Block by\"),\n required: true,\n style: {\n display: isTcf ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"criteria\",\n noStyle: true,\n rules: [{\n required: true,\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, null, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"services\"\n }, __(\"Services\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"tcfVendors\"\n }, __(\"TCF Vendors\")))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can block content through non-standard services or TCF vendors. If you want to block it through TCF vendors, then the visual content blocker cannot be displayed because TCF is usually used to obtain consent for ad networks. Moreover, after the initial consents in the cookie banner, users will probably never consent to the ad.\")));\n};\n\nexport { FormContentBlockerFieldTechnicalCriteria };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalServices = ({\n dropdown,\n children\n}) => {\n const {\n __,\n _i,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"services\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Connected services\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"services\",\n noStyle: true,\n rules: [{\n type: \"array\",\n required: true,\n message: __(\"Please provide at least one service!\")\n }]\n }, dropdown), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary services that would be used by loading the content. You must define all services that are loaded as soon as the user wants to see the blocked content.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), children);\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalServices };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldTechnicalTcfVendors = ({\n dropdown,\n children\n}) => {\n const {\n __,\n _i,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"tcfVendors\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Connected TCF Vendors\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"tcfVendors\",\n noStyle: true,\n rules: [{\n type: \"array\",\n required: true,\n message: __(\"Please provide at least one vendor!\")\n }]\n }, dropdown), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, _i(__(\"A content blocker is displayed until the user has agreed to {{strong}}all{{/strong}} necessary TCF vendors that would be used by loading the content. You must define all TCF vendors that are loaded based on legitimate interest or consent as soon as the user wants to see the blocked content.\"), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n })), children);\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalTcfVendors };","import _Form from \"antd/es/form\";\nimport { FormContentBlockerFieldTechnicalCriteria, FormContentBlockerFieldTechnicalRules, FormContentBlockerFieldTechnicalServices, FormContentBlockerFieldTechnicalTcfVendors, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\n\nconst FormContentBlockerFieldTechnicalCompose = ({\n servicesFieldProps,\n tcfVendorsFieldProps\n}) => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span\n }, __(\"Technical Definition\")), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalRules, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalCriteria, null), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n switch (getFieldValue(\"criteria\")) {\n case \"services\":\n return /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalServices, servicesFieldProps);\n\n case \"tcfVendors\":\n return /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalTcfVendors, tcfVendorsFieldProps);\n\n default:\n return null;\n }\n }));\n};\n\nexport { FormContentBlockerFieldTechnicalCompose };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldIsVisual = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isVisual\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", __(\"Show the visual content blocker, if possible\"))));\n};\n\nexport { FormContentBlockerFieldIsVisual };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport _Card from \"antd/es/card\";\nimport { useMemo } from \"react\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualType = () => {\n const {\n __,\n isPro,\n proModals: {\n visual: {\n tag\n }\n }\n } = useFormContentBlocker();\n const visualTypes = useMemo(() => ({\n default: {\n title: __(\"Textbox\"),\n description: __(\"Plain text with button\")\n },\n wrapped: {\n title: __(\"Wrapped\"),\n description: __(\"Image surrounding the content blocker\")\n },\n hero: {\n title: __(\"Hero\"),\n description: __(\"Image with content blocker on click\")\n }\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual\n }, ({\n getFieldValue\n }) => !!getFieldValue(\"isVisual\") && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n },\n style: {\n paddingBottom: 10\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualType\",\n noStyle: true,\n rules: isPro ? [] : [{\n required: true,\n type: \"enum\",\n enum: [\"default\"],\n message: __(\"This type of visual content blocker is available only in the PRO version of the plugin. Please choose a textbox content blocker!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n size: \"large\",\n buttonStyle: \"solid\",\n className: \"rcb-antd-radio-button-card\",\n style: {\n marginBottom: 10\n }\n }, Object.keys(visualTypes).map(type => {\n const {\n description,\n title\n } = visualTypes[type];\n return /*#__PURE__*/React.createElement(_Radio.Button, {\n value: type,\n key: type\n }, /*#__PURE__*/React.createElement(_Card, {\n style: {\n width: 300\n },\n bordered: false,\n cover: /*#__PURE__*/React.createElement(\"img\", {\n style: {\n height: 168.75\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \".png\")\n })\n }, /*#__PURE__*/React.createElement(_Card.Meta, {\n title: /*#__PURE__*/React.createElement(React.Fragment, null, title, \" \", type !== \"default\" && tag),\n description: description\n })));\n }))))));\n};\n\nexport { FormContentBlockerFieldVisualType };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport _Card from \"antd/es/card\";\nimport { useMemo } from \"react\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualContentType = () => {\n const {\n __,\n isPro,\n proModals: {\n visual: {\n tag\n }\n }\n } = useFormContentBlocker();\n const visualContentTypeTitles = useMemo(() => ({\n map: __(\"Map\"),\n \"audio-player\": __(\"Audio player\"),\n \"video-player\": __(\"Video player\"),\n \"feed-text\": __(\"Feed (text)\"),\n \"feed-video\": __(\"Feed (image/video)\"),\n generic: __(\"None of these\")\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisualDarkMode !== nextValues.isVisualDarkMode || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Content type\"),\n required: true,\n extra: tag\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualContentType\",\n rules: [{\n required: true,\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n size: \"large\",\n buttonStyle: \"solid\",\n className: \"rcb-antd-radio-button-card\"\n }, Object.keys(visualContentTypeTitles).map(type => {\n const title = visualContentTypeTitles[type];\n return /*#__PURE__*/React.createElement(_Radio.Button, {\n value: type,\n key: type,\n style: {\n margin: \"0 5px 5px 0\"\n },\n disabled: !isPro\n }, /*#__PURE__*/React.createElement(_Card, {\n style: {\n width: 240\n },\n bordered: false,\n size: \"small\",\n cover: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"img\", {\n style: {\n display: getFieldValue(\"isVisualDarkMode\") ? \"none\" : undefined\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \"-light.png\")\n }), /*#__PURE__*/React.createElement(\"img\", {\n style: {\n display: getFieldValue(\"isVisualDarkMode\") ? undefined : \"none\"\n },\n src: \"https://assets.devowl.io/in-app/wp-real-cookie-banner/visual-content-blocker-preview/\".concat(type, \"-dark.png\")\n }))\n }, /*#__PURE__*/React.createElement(_Card.Meta, {\n title: title\n })));\n }))));\n });\n};\n\nexport { FormContentBlockerFieldVisualContentType };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormContentBlockerLayout } from \"../..\";\n\nconst FormContentBlockerFieldIsVisualDarkMode = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isVisualDarkMode\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), \"\\xA0\\xA0\", __(\"Enable dark mode\"), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"As soon as no image is found for the content blocker, a default image is automatically used. You can also specify whether the image should be displayed light or dark.\"))));\n });\n};\n\nexport { FormContentBlockerFieldIsVisualDarkMode };","import _Popconfirm from \"antd/es/popconfirm\";\nimport _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualDownloadThumbnail = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualDownloadThumbnail !== nextValues.visualDownloadThumbnail || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n const visualDownloadThumbnail = getFieldValue(\"visualDownloadThumbnail\");\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Automatic preview image\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"visualDownloadThumbnail\",\n required: true,\n rules: [{\n required: true,\n type: \"boolean\",\n message: __(\"Please choose an option!\")\n }]\n }, /*#__PURE__*/React.createElement(_Radio.Group, {\n style: {\n display: visualDownloadThumbnail ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: true\n }, __(\"Download preview image and serve locally\")), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: false\n }, __(\"Image from media library\")))), !visualDownloadThumbnail && /*#__PURE__*/React.createElement(_Radio.Group, {\n value: visualDownloadThumbnail\n }, /*#__PURE__*/React.createElement(_Popconfirm, {\n title: __(\"I confirm that I have the required rights to embedded content and its thumbnails can be copied to my servers without e.g. copyright infringement.\"),\n cancelText: __(\"Cancel\"),\n okText: __(\"Activate now\"),\n overlayStyle: {\n maxWidth: 450\n },\n onCancel: () => setFieldsValue({\n visualDownloadThumbnail: false\n }),\n onConfirm: () => setFieldsValue({\n visualDownloadThumbnail: true\n }),\n placement: \"bottomLeft\"\n }, /*#__PURE__*/React.createElement(_Radio.Button, {\n value: true\n }, __(\"Download preview image and serve locally\"))), /*#__PURE__*/React.createElement(_Radio.Button, {\n value: false,\n onClick: () => setFieldsValue({\n visualDownloadThumbnail: false\n })\n }, __(\"Image from media library\"))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"If you block an external URL, this option will try to download an image for this URL using different mechanisms (oEmbed, OpenGraph, ...), saves it locally and use it as background image.\"))));\n });\n};\n\nexport { FormContentBlockerFieldVisualDownloadThumbnail };","import _Form from \"antd/es/form\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualMediaThumbnail = ({\n children\n}) => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualDownloadThumbnail !== nextValues.visualDownloadThumbnail || prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType || prevValues.visualContentType !== nextValues.visualContentType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n const visualContentType = getFieldValue(\"visualContentType\");\n const visualDownloadThumbnail = getFieldValue(\"visualDownloadThumbnail\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: visualDownloadThumbnail || visualContentType === \"generic\" ? __(\"Fallback preview image\") : __(\"Preview image\"),\n name: \"visualMediaThumbnail\",\n valuePropName: \"attachmentId\",\n style: {\n display: visualDownloadThumbnail === undefined ? \"none\" : undefined\n }\n }, children);\n });\n};\n\nexport { FormContentBlockerFieldVisualMediaThumbnail };","import _Form from \"antd/es/form\";\nimport _Slider from \"antd/es/slider\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualBlur = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Blur image\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualBlur\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Slider, {\n min: 0,\n max: 20,\n marks: {\n 0: __(\"Disabled\"),\n 5: \"5%\",\n 10: \"10%\",\n 15: \"15%\",\n 20: \"20%\"\n },\n tooltipVisible: false,\n style: {\n marginLeft: 40\n }\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"You can apply an additional blur to the background image. This can be useful e.g. for blocked contact forms to show it only schematically.\")));\n });\n};\n\nexport { FormContentBlockerFieldVisualBlur };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\n\nconst FormContentBlockerFieldVisualHeroButtonText = () => {\n const {\n __,\n isPro\n } = useFormContentBlocker();\n return isPro && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual || prevValues.visualType !== nextValues.visualType\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n const visualType = getFieldValue(\"visualType\");\n return !!isVisual && visualType !== \"default\" && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.visualContentType !== nextValues.visualContentType\n }, ({\n getFieldValue\n }) => {\n const visualContentType = getFieldValue(\"visualContentType\");\n const visualType = getFieldValue(\"visualType\");\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Button text\"),\n style: {\n display: [\"audio-player\", \"video-player\"].indexOf(visualContentType) > -1 || visualType !== \"hero\" ? \"none\" : undefined\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"visualHeroButtonText\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"If you specify a button text, a button with this text will be centered in the image and only when you click on this button the content blocker will be opened. Otherwise, clicking on the image itself will open the Content Blocker.\")));\n });\n });\n};\n\nexport { FormContentBlockerFieldVisualHeroButtonText };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormContentBlockerLayout } from \"../..\";\n\nconst FormContentBlockerFieldShouldForceToShowVisual = () => {\n const {\n __\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isVisual !== nextValues.isVisual\n }, ({\n getFieldValue\n }) => {\n const isVisual = getFieldValue(\"isVisual\");\n return !!isVisual && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"shouldForceToShowVisual\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), \"\\xA0\\xA0\", __(\"Force visual content blocker for hidden elements\"), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"In rare cases, visual content blockers are not displayed because the main element of the blocked content is not visible either. Enable this option if this is the case and you want to force to display a content blocker for non-visible elements.\"))));\n });\n};\n\nexport { FormContentBlockerFieldShouldForceToShowVisual };","import _Form from \"antd/es/form\";\nimport { FormContentBlockerFieldIsVisual, FormContentBlockerFieldIsVisualDarkMode, FormContentBlockerFieldShouldForceToShowVisual, FormContentBlockerFieldVisualBlur, FormContentBlockerFieldVisualContentType, FormContentBlockerFieldVisualDownloadThumbnail, FormContentBlockerFieldVisualHeroButtonText, FormContentBlockerFieldVisualMediaThumbnail, FormContentBlockerFieldVisualType, FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\n\nconst FormContentBlockerFieldVisualCompose = ({\n visualMediaThumbnailPicker\n}) => {\n const {\n __,\n proModals: {\n visual: {\n modal\n }\n }\n } = useFormContentBlocker();\n return /*#__PURE__*/React.createElement(React.Fragment, null, modal, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.criteria !== nextValues.criteria\n }, ({\n getFieldValue\n }) => {\n const criteria = getFieldValue(\"criteria\");\n return criteria === \"services\" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormContentBlockerLayout.labelCol.span,\n description: __(\"For each content blocker it can be defined if it should be visually visible. This means that if the user has not agreed to the respective services, a box with a button is displayed to adjust the privacy settings so that the actual content can be loaded. The design of the box is copied from the cookie banner.\")\n }, __(\"Visual\")), /*#__PURE__*/React.createElement(FormContentBlockerFieldIsVisual, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualType, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualContentType, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldIsVisualDarkMode, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualDownloadThumbnail, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualMediaThumbnail, null, visualMediaThumbnailPicker), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualBlur, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualHeroButtonText, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldShouldForceToShowVisual, null));\n }));\n};\n\nexport { FormContentBlockerFieldVisualCompose };","import _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormContentBlockerLayout } from \"../..\";\nimport { useFormContentBlocker } from \"../../../../contexts\";\nimport { LearnMoreTag } from \"../../../common\";\n\nconst FormContentBlockerFieldPresetCheck = () => {\n const {\n __,\n presetCheck,\n isTemplateUpdate\n } = useFormContentBlocker();\n return !!(presetCheck || isTemplateUpdate) && /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: value => value || undefined,\n message: __(\"Please confirm that you have checked the content of the content blocker.\")\n }],\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"I have checked the information in the content blocker 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 })));\n};\n\nexport { FormContentBlockerFieldPresetCheck };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { FormContentBlockerFieldGeneralCompose, FormContentBlockerFieldTechnicalCompose, FormContentBlockerFieldVisualCompose, FormContentBlockerFieldPresetCheck, FormContentBlockerLayout } from \".\";\nimport { I18nContextFactory, useFormContentBlocker } from \"../../../contexts\";\nimport { FormValueDifferFromPresetNotice } from \"..\";\n\nconst FormContentBlocker = ({\n technicalProps,\n visualProps\n}) => {\n const {\n __,\n _i\n } = useFormContentBlocker();\n const ref = useRef();\n const I18nContext = I18nContextFactory.Context();\n return /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: {\n __,\n _i\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetNotice, {\n containerRef: ref,\n form: \"blocker\"\n }), /*#__PURE__*/React.createElement(FormContentBlockerFieldGeneralCompose, null), /*#__PURE__*/React.createElement(FormContentBlockerFieldTechnicalCompose, technicalProps), /*#__PURE__*/React.createElement(FormContentBlockerFieldVisualCompose, visualProps), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\",\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n }\n }, /*#__PURE__*/React.createElement(FormContentBlockerFieldPresetCheck, null), /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormContentBlockerLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary\",\n value: __(\"Save\")\n }))))));\n};\n\nexport { FormContentBlocker };","import _Spin from \"antd/es/spin\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Image from \"antd/es/image\";\nimport _Modal from \"antd/es/modal\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { PostTypeSelect } from \"../..\";\nimport { __, scrollTo, _i } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { Prompt, useHistory } from \"react-router-dom\";\nimport { useCookieExpertsModal, useProModal, useRouteBlocker } from \"../../../hooks\";\nimport { BlockerModel } from \"../../../models\";\nimport { BlockerFormNoticeNoneExistingCookies } from \".\";\nimport { CookieEditForm } from \"..\";\nimport { MediaLibrarySelector } from \"../..\";\nimport { FormContentBlockerContextFactory, FormContentBlockerLayout, FormContentBlocker, useFormContentBlockerHandler } from \"@devowl-wp/react-cookie-banner-admin\";\n\nfunction useProModalVisualContentBlocker() {\n return useProModal({\n title: __(\"Want a better integrated visual content blocker for your website?\"),\n testDrive: true,\n feature: \"visual-content-blocker\",\n assetName: __(\"pro-modal/visual-content-blocker.webp\"),\n description: __(\"Instead of a lot of text, you can offer your visitor a more pleasant way to view blocked content. For example, you can replace your video embeds with a privacy-compliant dummy player with thumbnail, or an embedded map with a preview map.\")\n });\n}\n\nconst BlockerEditForm = observer(({\n preset,\n overwriteAttributes,\n navigateAfterCreation = true,\n cookieCreationPrompt = false\n}) => {\n var _blocker$data, _blocker$data$meta;\n\n const {\n blocker,\n id,\n queried,\n fetched,\n link\n } = useRouteBlocker();\n const history = useHistory();\n const [isCreatingNewCookie, setIsCreatingNewCookie] = useState(false);\n const {\n cookieStore,\n optionStore: {\n tcf,\n others: {\n isPro\n }\n }\n } = useStores();\n const presetModel = (blocker === null || blocker === void 0 ? void 0 : blocker.presetModel) || cookieStore.presetsBlocker.get(preset === null || preset === void 0 ? void 0 : preset.identifier);\n const attributes = { ...(presetModel === null || presetModel === void 0 ? void 0 : presetModel.attributes),\n ...overwriteAttributes\n };\n const {\n form,\n isBusy,\n defaultValues,\n nonExistingServices,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange,\n contextValue\n } = useFormContentBlockerHandler({\n __,\n _i,\n attributes,\n isTcf: tcf,\n preset: presetModel ? {\n identifier: presetModel.data.identifier,\n version: presetModel.data.version\n } : undefined,\n initialHasChanges: cookieCreationPrompt,\n handleSave: async values => {\n try {\n var _meta$tcfVendors, _meta$services;\n\n const {\n name,\n status,\n description,\n ...meta\n } = values;\n const newMeta = { ...meta,\n visualMediaThumbnail: meta.visualMediaThumbnail || 0,\n criteria: meta.criteria,\n tcfVendors: ((_meta$tcfVendors = meta.tcfVendors) === null || _meta$tcfVendors === void 0 ? void 0 : _meta$tcfVendors.join(\",\")) || \"\",\n services: ((_meta$services = meta.services) === null || _meta$services === void 0 ? void 0 : _meta$services.join(\",\")) || \"\",\n isVisual: meta.criteria === \"services\" ? meta.isVisual : false,\n presetId: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.identifier,\n presetVersion: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.version\n };\n delete newMeta.presetCheck;\n\n if (queried) {\n blocker.setName(name);\n blocker.setStatus(status);\n blocker.setDescription(description);\n blocker.setMeta(newMeta);\n await blocker.patch();\n } else {\n const draft = new BlockerModel(blockers, {\n title: {\n rendered: name\n },\n content: {\n rendered: description,\n protected: false\n },\n status,\n meta: newMeta\n });\n await draft.persist();\n }\n\n navigateAfterCreation && setTimeout(() => typeof navigateAfterCreation === \"string\" ? window.location.href = navigateAfterCreation : history.push(link.slice(1)), 0);\n } catch (e) {\n throw e.responseJSON.message;\n }\n }\n });\n const {\n blockers,\n essentialGroup\n } = cookieStore;\n const {\n openDialog: openCookieExperts\n } = useCookieExpertsModal();\n const initialValues = fetched ? {\n name: blocker.data.title.raw,\n status: blocker.data.status,\n description: blocker.data.content.raw,\n criteria: blocker.data.meta.criteria,\n rules: blocker.data.meta.rules,\n tcfVendors: blocker.tcfVendors,\n services: blocker.services,\n isVisual: blocker.data.meta.isVisual,\n visualType: isPro ? blocker.data.meta.visualType : \"default\",\n visualMediaThumbnail: blocker.data.meta.visualMediaThumbnail,\n visualContentType: blocker.data.meta.visualContentType,\n isVisualDarkMode: blocker.data.meta.isVisualDarkMode,\n visualBlur: blocker.data.meta.visualBlur,\n visualDownloadThumbnail: blocker.data.meta.visualDownloadThumbnail,\n visualHeroButtonText: blocker.data.meta.visualHeroButtonText,\n shouldForceToShowVisual: blocker.data.meta.shouldForceToShowVisual,\n presetCheck: undefined\n } : defaultValues; // Automatically add created presets to the dropdown\n\n const handleCreatedPreset = useCallback(model => {\n form.setFieldsValue({\n services: [...form.getFieldValue(\"services\"), model.key]\n });\n }, [form]); // Initially load the blocker if not yet done\n\n useEffect(() => {\n if (queried && !fetched) {\n blockers.getSingle({\n params: {\n id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]);\n useEffect(() => {\n if (presetModel && !presetModel.attributes && !presetModel.busy) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(() => {\n scrollTo(0); // Ensure the groups are loaded\n\n if (!essentialGroup) {\n cookieStore.fetchGroups();\n }\n }, []);\n const proModalVisualContentBlocker = useProModalVisualContentBlocker();\n const FormContentBlockerContext = FormContentBlockerContextFactory.Context();\n\n if (queried && !fetched || presetModel && !presetModel.attributes) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n const isTemplateUpdate = fetched && presetModel ? ((_blocker$data = blocker.data) === null || _blocker$data === void 0 ? void 0 : (_blocker$data$meta = _blocker$data.meta) === null || _blocker$data$meta === void 0 ? void 0 : _blocker$data$meta.presetVersion) !== presetModel.data.version : false;\n return /*#__PURE__*/React.createElement(FormContentBlockerContext.Provider, {\n value: { ...contextValue,\n isPro,\n isEdit: fetched,\n isTemplateUpdate,\n proModals: {\n visual: proModalVisualContentBlocker\n },\n openCookieExperts,\n presetCheck: presetModel ? isTemplateUpdate || !fetched : false\n }\n }, /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: onBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"blocker-\".concat(id),\n form: form\n }, FormContentBlockerLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: onValuesChange\n }), /*#__PURE__*/React.createElement(FormContentBlocker, {\n technicalProps: {\n servicesFieldProps: {\n dropdown: /*#__PURE__*/React.createElement(PostTypeSelect, {\n postType: \"rcb-cookie\",\n multiple: true,\n filter: d => d[\"rcb-cookie-group\"][0] !== (essentialGroup === null || essentialGroup === void 0 ? void 0 : essentialGroup.key)\n }),\n children: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"button\",\n onClick: () => setIsCreatingNewCookie(true)\n }, __(\"Create new service\")), /*#__PURE__*/React.createElement(_Modal, {\n key: id,\n visible: isCreatingNewCookie,\n title: __(\"Add service\"),\n width: \"calc(100% - 50px)\",\n bodyStyle: {\n paddingBottom: 0\n },\n footer: null,\n onCancel: () => setIsCreatingNewCookie(false)\n }, /*#__PURE__*/React.createElement(CookieEditForm, {\n navigateAfterCreation: false,\n scrollToTop: false,\n onCreated: model => {\n setIsCreatingNewCookie(false);\n handleCreatedPreset(model);\n }\n })), /*#__PURE__*/React.createElement(BlockerFormNoticeNoneExistingCookies, {\n nonExistingServices: nonExistingServices,\n onCreated: handleCreatedPreset\n }))\n },\n tcfVendorsFieldProps: {\n dropdown: /*#__PURE__*/React.createElement(PostTypeSelect, {\n postType: \"rcb-tcf-vendor-conf\",\n multiple: true,\n titleRender: ({\n vendor: {\n name\n }\n }) => name\n })\n }\n },\n visualProps: {\n visualMediaThumbnailPicker: /*#__PURE__*/React.createElement(MediaLibrarySelector, {\n title: __(\"Select preview image\"),\n allowedTypes: [\"image\"],\n render: ({\n open,\n reset,\n attachmentId,\n url\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", {\n style: {\n marginTop: 0\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button\",\n onClick: open\n }, attachmentId ? __(\"Replace image\") : __(\"Select from media library\")), \"\\xA0\", attachmentId && /*#__PURE__*/React.createElement(\"a\", {\n className: \"button\",\n onClick: reset\n }, __(\"Remove image\"))), url && /*#__PURE__*/React.createElement(_Image, {\n width: 272,\n src: url\n }))\n })\n }\n }))));\n});\nexport { BlockerEditForm, useProModalVisualContentBlocker };","import { useFormHandler } from \".\";\n\nfunction useFormContentBlockerHandler(opts) {\n var _attributes$rules, _attributes$tcfVendor, _attributes$serviceTe, _attributes$serviceTe2;\n\n const {\n isTcf,\n preset,\n attributes,\n __,\n _i\n } = opts;\n const defaultValues = {\n name: (attributes === null || attributes === void 0 ? void 0 : attributes.name) || \"\",\n status: \"publish\",\n description: (attributes === null || attributes === void 0 ? void 0 : attributes.description) || \"\",\n criteria: isTcf && !preset ? \"tcfVendors\" : \"services\",\n rules: (attributes === null || attributes === void 0 ? void 0 : (_attributes$rules = attributes.rules) === null || _attributes$rules === void 0 ? void 0 : _attributes$rules.join(\"\\n\")) || \"\",\n tcfVendors: (attributes === null || attributes === void 0 ? void 0 : (_attributes$tcfVendor = attributes.tcfVendors) === null || _attributes$tcfVendor === void 0 ? void 0 : _attributes$tcfVendor.filter(Number)) || [],\n services: attributes === null || attributes === void 0 ? void 0 : (_attributes$serviceTe = attributes.serviceTemplates) === null || _attributes$serviceTe === void 0 ? void 0 : _attributes$serviceTe.map(({\n created\n }) => created === false ? undefined : created).filter(Boolean),\n isVisual: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.isVisual) === \"boolean\" ? attributes.isVisual : true,\n visualType: (attributes === null || attributes === void 0 ? void 0 : attributes.visualType) || \"default\",\n visualMediaThumbnail: 0,\n visualContentType: (attributes === null || attributes === void 0 ? void 0 : attributes.visualContentType) || \"generic\",\n isVisualDarkMode: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.isVisualDarkMode) === \"boolean\" ? attributes.isVisualDarkMode : false,\n visualBlur: (attributes === null || attributes === void 0 ? void 0 : attributes.visualBlur) || 0,\n visualDownloadThumbnail: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.visualDownloadThumbnail) === \"boolean\" ? attributes.visualDownloadThumbnail : undefined,\n visualHeroButtonText: (attributes === null || attributes === void 0 ? void 0 : attributes.visualHeroButtonText) || \"\",\n shouldForceToShowVisual: (attributes === null || attributes === void 0 ? void 0 : attributes.shouldForceToShowVisual) || false,\n presetCheck: !preset\n };\n const handlers = useFormHandler({ ...opts,\n defaultValues,\n i18n: {\n successMessage: __(\"You have successfully saved the content blocker.\"),\n validationError: __(\"The content blocker could not be saved due to missing/invalid form values.\"),\n unloadConfirm: __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.'),\n unloadConfirmInitialActive: __(\"You have already created a service. Are you sure that you don't want to create the corresponding content blocker?\")\n }\n }); // Find non-existing services and show a warning\n\n const nonExistingServices = (attributes === null || attributes === void 0 ? void 0 : (_attributes$serviceTe2 = attributes.serviceTemplates) === null || _attributes$serviceTe2 === void 0 ? void 0 : _attributes$serviceTe2.filter(({\n created\n }) => !created)) || [];\n return { ...handlers,\n defaultValues,\n nonExistingServices,\n contextValue: {\n __,\n _i,\n isTcf,\n presetCheck: !!preset,\n defaultPresetValues: preset ? defaultValues : {}\n }\n };\n}\n\nexport { useFormContentBlockerHandler };","import _Select from \"antd/es/select\";\nimport _Spin from \"antd/es/spin\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport { __, request as utilsRequest, getOtherOptionsFromWindow } from \"../utils\";\nimport { useDebounce } from \"../hooks\";\nimport { RouteHttpVerb } from \"@devowl-wp/utils\";\nimport { htmlDecode } from \"@devowl-wp/headless-content-unblocker\";\n\nconst PostTypeSelect = ({\n postType,\n postStatus = [\"draft\", \"publish\", \"private\"],\n perPage = 10,\n value,\n multiple,\n disabled,\n forceDefaultLanguage,\n onChange,\n titleRender = ({\n title: {\n rendered\n }\n }) => rendered,\n filter = () => true\n}) => {\n const [term, setTerm] = useState(false);\n const [postId, setPostId] = useState(value);\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState([]);\n const fetch = useCallback(async request => {\n setFetching(true);\n const {\n defaultLanguage,\n currentLanguage\n } = getOtherOptionsFromWindow();\n const pages = await utilsRequest({\n location: {\n path: \"/\".concat(postType),\n method: RouteHttpVerb.GET,\n namespace: \"wp/v2\"\n },\n request: {\n status: request.include ? [\"draft\", \"publish\", \"private\"] : postStatus,\n orderby: request.search ? \"relevance\" : \"title\",\n ...request\n },\n params: {\n _dataLocale: forceDefaultLanguage ? defaultLanguage : currentLanguage\n }\n });\n setData(pages);\n setFetching(false);\n }, []);\n useDebounce(term, term === \"\" ? 0 : 800, debouncedValue => {\n if (debouncedValue !== false) {\n fetch({\n search: debouncedValue,\n per_page: debouncedValue.length ? 50 : perPage\n });\n }\n }, changedValue => {\n if (changedValue !== false) {\n setFetching(true);\n }\n\n setData([]);\n });\n useEffect(() => {\n if (postId > 0 || Array.isArray(postId) && postId.length > 0) {\n fetch({\n include: Array.isArray(postId) ? postId : [postId]\n });\n }\n }, []); // Listen to changes from outside and refetch the data\n\n useEffect(() => {\n if (JSON.stringify(postId) !== JSON.stringify(value) && (value > 0 || Array.isArray(value) && value.length > 0)) {\n setPostId(value);\n fetch({\n include: Array.isArray(value) ? value : [value]\n });\n }\n }, [value, postId]);\n return /*#__PURE__*/React.createElement(_Select, {\n mode: multiple ? \"multiple\" : undefined,\n disabled: disabled,\n showSearch: true,\n value: postId,\n placeholder: __(\"Search...\"),\n notFoundContent: fetching ? /*#__PURE__*/React.createElement(_Spin, {\n size: \"small\"\n }) : null,\n onClick: () => setTerm(\"\"),\n onSearch: setTerm,\n onChange: e => {\n const value = Array.isArray(e) ? e.map(Number) : +e;\n setPostId(value);\n onChange === null || onChange === void 0 ? void 0 : onChange(value);\n },\n filterOption: false,\n loading: fetching\n }, !multiple && !fetching && /*#__PURE__*/React.createElement(_Select.Option, {\n value: 0\n }, __(\"— Select —\")), data.map(d => /*#__PURE__*/React.createElement(_Select.Option, {\n key: d.id,\n value: d.id,\n style: {\n display: filter(d) ? undefined : \"none\"\n }\n }, htmlDecode(titleRender(d)))));\n};\n\nexport { PostTypeSelect };","import { isUrl } from \".\";\n/**\n * Decode HTML entities in a given string.\n *\n * @see https://stackoverflow.com/a/34064434/5506547\n */\n\nfunction htmlDecode(input) {\n const inputIsUrl = isUrl(input);\n\n if (inputIsUrl) {\n var _doc$querySelector;\n\n // URLs needs to be handled a bit different as e.g. `?regionid` gets parsed to `&#39;ionid=`\n const doc = new DOMParser().parseFromString(\"<a href=\\\"\".concat(input, \"\\\"></a>\"), \"text/html\");\n return (_doc$querySelector = doc.querySelector(\"a\")) === null || _doc$querySelector === void 0 ? void 0 : _doc$querySelector.href;\n } else {\n // Keep XSS protection intact\n const doc = new DOMParser().parseFromString(input, \"text/html\");\n return doc.documentElement.textContent;\n }\n}\n\nexport { htmlDecode };","import { useState, useEffect } from \"react\";\n\nfunction useDebounce(value, delay, callback, changed) {\n const [debounce, setDebounce] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebounce(value);\n }, delay);\n changed === null || changed === void 0 ? void 0 : changed(value);\n return () => {\n clearTimeout(handler);\n };\n }, [value]);\n useEffect(() => {\n callback(debounce);\n }, [debounce]);\n return debounce;\n}\n\nexport { useDebounce };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { BlockerModel } from \"../models\";\n\nconst useRouteBlocker = () => {\n const {\n params\n } = useRouteMatch();\n const {\n cookieStore\n } = useStores(); // Get blocker or return draft object\n\n const blockerId = +params.blocker;\n const id = isNaN(+blockerId) ? 0 : +blockerId;\n const queried = !!blockerId;\n const blocker = cookieStore.blockers.entries.get(id) || new BlockerModel(cookieStore.blockers, {\n id: 0\n });\n const link = \"#/blocker\";\n const editLink = useCallback(({\n key\n }) => \"#/blocker/edit/\".concat(key), [blocker]);\n const addLink = \"#/blocker/new\";\n return {\n blocker,\n id,\n queried,\n fetched: blocker.key !== 0,\n link,\n editLink,\n addLink\n };\n};\n\nexport { useRouteBlocker };"],"names":["BlockerFormNoticeNoneExistingCookies","nonExistingServices","onCreated","openId","setOpenId","useState","created","setCreated","useNoneExistingCookies","filter","identifier","indexOf","modalWindows","map","attributes","version","React","createElement","key","visible","title","__","width","bodyStyle","paddingBottom","footer","onCancel","undefined","navigateAfterCreation","scrollToTop","preset","model","Fragment","length","className","join","style","margin","name","subHeadline","concat","onClick","e","preventDefault","cursor","addFilter","hooks","MediaUpload","mediaUtils","MediaLibrarySelector","attachmentId","allowedTypes","render","onChange","useAttachmentId","data","error","fetching","id","setFetching","setData","setError","fetch","useCallback","async","currentLanguage","getOtherOptionsFromWindow","result","location","path","method","RouteHttpVerb","namespace","params","_dataLocale","useEffect","useMediaAttachment","url","source_url","_error$responseJSON","responseJSON","code","spinning","onSelect","media","value","open","reset","FormContentBlockerLayout","labelCol","span","wrapperCol","FormContentBlockerFieldGeneralName","ref","useRef","label","required","noStyle","rules","message","form","valueName","widthOfRef","renderDiff","readOnly","FormContentBlockerFieldGeneralStatus","FormContentBlockerFieldGeneralDescription","autoSize","minRows","FormContentBlockerFieldGeneralCompose","offset","FormContentBlockerFieldTechnicalRules","_i","openCookieExperts","maxRows","difference","oldValue","newValue","currentRules","split","diff","newRule","includes","apply","setFieldsValue","newValueText","type","strong","FormContentBlockerFieldTechnicalCriteria","isTcf","display","FormContentBlockerFieldTechnicalServices","dropdown","children","proModals","visual","modal","shouldUpdate","prevValues","nextValues","criteria","getFieldValue","FormContentBlockerFieldTechnicalTcfVendors","FormContentBlockerFieldTechnicalCompose","servicesFieldProps","tcfVendorsFieldProps","FormContentBlockerFieldIsVisual","valuePropName","FormContentBlockerFieldVisualType","isPro","tag","visualTypes","useMemo","default","description","wrapped","hero","isVisual","enum","size","buttonStyle","marginBottom","Object","keys","bordered","cover","height","src","FormContentBlockerFieldVisualContentType","visualContentTypeTitles","generic","isVisualDarkMode","visualType","extra","disabled","FormContentBlockerFieldIsVisualDarkMode","FormContentBlockerFieldVisualDownloadThumbnail","visualDownloadThumbnail","cancelText","okText","overlayStyle","maxWidth","onConfirm","placement","FormContentBlockerFieldVisualMediaThumbnail","visualContentType","FormContentBlockerFieldVisualBlur","min","max","marks","tooltipVisible","marginLeft","FormContentBlockerFieldVisualHeroButtonText","FormContentBlockerFieldShouldForceToShowVisual","FormContentBlockerFieldVisualCompose","visualMediaThumbnailPicker","FormContentBlockerFieldPresetCheck","presetCheck","isTemplateUpdate","transform","FormContentBlocker","technicalProps","visualProps","I18nContext","Provider","containerRef","textAlign","useProModalVisualContentBlocker","useProModal","testDrive","feature","assetName","BlockerEditForm","overwriteAttributes","cookieCreationPrompt","_blocker$data","_blocker$data$meta","blocker","queried","fetched","link","useRouteBlocker","history","useHistory","isCreatingNewCookie","setIsCreatingNewCookie","cookieStore","optionStore","tcf","others","presetModel","presetsBlocker","get","isBusy","defaultValues","onFinish","onFinishFailed","onBeforeUnload","onValuesChange","contextValue","opts","_attributes$rules","_attributes$tcfVendor","_attributes$serviceTe","_attributes$serviceTe2","status","tcfVendors","Number","services","serviceTemplates","Boolean","visualMediaThumbnail","visualBlur","visualHeroButtonText","shouldForceToShowVisual","useFormHandler","i18n","successMessage","validationError","unloadConfirm","unloadConfirmInitialActive","defaultPresetValues","useFormContentBlockerHandler","initialHasChanges","handleSave","_meta$tcfVendors","_meta$services","meta","values","newMeta","presetId","presetVersion","setName","setStatus","setDescription","setMeta","patch","draft","blockers","rendered","content","protected","persist","setTimeout","window","href","push","slice","essentialGroup","openDialog","useCookieExpertsModal","u","initialValues","raw","handleCreatedPreset","getSingle","context","busy","fetchAttributes","scrollTo","fetchGroups","proModalVisualContentBlocker","FormContentBlockerContext","active","paragraph","rows","isEdit","Prompt","postType","multiple","d","titleRender","vendor","marginTop","PostTypeSelect","postStatus","perPage","forceDefaultLanguage","term","setTerm","postId","setPostId","defaultLanguage","pages","request","include","orderby","search","useDebounce","debouncedValue","per_page","changedValue","Array","isArray","JSON","stringify","mode","showSearch","placeholder","notFoundContent","onSearch","filterOption","loading","input","isUrl","_doc$querySelector","DOMParser","parseFromString","querySelector","documentElement","textContent","delay","callback","changed","debounce","setDebounce","handler","clearTimeout","useRouteMatch","blockerId","isNaN","entries","editLink","addLink"],"sourceRoot":""}
public/dist/932.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[]).push([[932],{4028:(e,t,a)=>{function n(e){return!!/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/.test(e)}a.d(t,{C:()=>n})},7421:(e,t,a)=>{a.d(t,{r:()=>l});var n=a(9511),r=a(3364),o=a(987);const l=({url:e,style:t,label:a})=>{const{__:l}=(0,o.Q)(),c={cursor:"pointer",...t};return React.createElement(n.Z,{style:c,onClick:()=>window.open(e,"_blank")},React.createElement(r.Z,null)," ",a||l("Learn more"))}},194:(e,t,a)=>{a.d(t,{w:()=>n});const n=({notices:e})=>React.createElement(React.Fragment,null,null==e?void 0:e.map((({message:e,severity:t})=>e?t?React.createElement("div",{className:"notice notice-".concat(t," below-h2 notice-alt"),key:e},"string"==typeof e?React.createElement("p",{dangerouslySetInnerHTML:{__html:e}}):React.createElement("p",null,e)):e:null)))},3115:(e,t,a)=>{a.d(t,{C:()=>r});var n=a(3307);const r=({children:e,description:t,extra:a,offset:r})=>React.createElement(n.Z.Item,{wrapperCol:{offset:r},style:{borderBottom:"1px solid #e7e7e7"}},React.createElement("h3",{style:{margin:"0 0 ".concat(t?3:15,"px 0")}},e),!!t&&React.createElement("p",{className:"description",style:{marginBottom:15}},t),a)},44:(e,t,a)=>{a.d(t,{Or:()=>n});const n={labelCol:{span:6},wrapperCol:{span:16}}},5941:(e,t,a)=>{a.d(t,{C:()=>u,j:()=>m});var n=a(3307),r=a(9511),o=a(7363),l=a(563),c=a(3875),i=a(433),s=a(44),d=a(194);const u="rcb-value-differ-from-preset-pseudo",m=({containerRef:e,form:t})=>{const{__:a,_i:m,isTemplateUpdate:p}="service"===t?(0,l.I)():(0,c.f)(),[h,f]=(0,o.useState)([]),[g,v]=(0,o.useState)(!1),y=(0,o.useCallback)((()=>{if(e.current){const t=[...e.current.querySelectorAll(".".concat(u))];return f(t),t}return[]}),[g]);return(0,o.useLayoutEffect)((()=>{const t=setInterval(y,800);return async function(e,t=500,a=0){let n=0;for(;!e();){if(a>0&&n>=a)return;await new Promise((e=>setTimeout(e,t))),n++}return e()}((()=>e.current),100).then(y),document.addEventListener(i.S,y),()=>{clearInterval(t),document.removeEventListener(i.S,y)}}),[]),p&&(h.length>0||g)?React.createElement(n.Z.Item,{wrapperCol:{offset:s.Or.labelCol.span,span:s.Or.wrapperCol.span},style:{marginBottom:0}},React.createElement(d.w,{notices:[{severity:"info",message:React.createElement(React.Fragment,null,m(a("The blocker template has been updated to provide current legal and technical information. Fields with outdated values or values you manually adjusted are marked with {{tag/}}. You can apply all changes with one click!"),{tag:React.createElement(r.Z,{color:"blue"},a("Differing from template"))}),React.createElement("br",null),React.createElement("a",{className:"button ".concat(0===h.length&&g?"button-disabled":""),onClick:()=>{y().forEach((e=>e.click())),f([]),v(!0)},style:{marginTop:5}},0===h.length&&g?a("Applied!"):a("Use default values")))}]})):null}},433:(e,t,a)=>{a.d(t,{A:()=>f,S:()=>h});var n=a(3307),r=a(5969),o=a(7465),l=a(3751),c=a(9511),i=a(7363),s=a(563),d=a(3875),u=a(5941),m=a(9562),p=a.n(m);const h="RCB/FormValueDifferFromPresetTag/Apply";function f({useModal:e,form:t,valueName:a,difference:m,apply:f,newValueText:g,renderDiff:v,widthOfRef:y,placement:R="bottomLeft",noBr:E=!1,className:b,style:k,popoverProps:w}){const{__:C,defaultPresetValues:{[a]:I}}="service"===t?(0,s.I)():(0,d.f)(),[O,Z]=(0,i.useState)(!1);let S;return void 0!==I&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e[a]!==t[a]},(({getFieldValue:t,setFieldsValue:n})=>{var i;const s=t(a),d=m?m(s,I):s!==I||void 0,x=()=>{"function"==typeof f?f(d,n,s):n({[a]:I}),document.dispatchEvent(new CustomEvent(h)),Z(!1)};if(S=(null==y||null===(i=y.current)||void 0===i?void 0:i.clientWidth)||S,!d)return null;const _=React.createElement("p",{className:"description",style:{marginBottom:10}},C("The value you entered is different from the value in the template.")),D=React.createElement(React.Fragment,null,!1!==g&&React.createElement("p",null,React.createElement("strong",null,g||C("New value:"))),"function"==typeof v?v(I,d):React.createElement(p(),{oldStr:s,newStr:I,context:100,outputFormat:"line-by-line"})),N=React.createElement(c.Z,{color:"blue",style:{cursor:"pointer",...k},className:b,onClick:()=>e&&Z(!0)},C("Differing from template"),React.createElement("span",{className:u.C,style:{display:"none"},onClick:x}));return React.createElement(React.Fragment,null,e?React.createElement(React.Fragment,null,React.createElement(l.Z,{visible:O,onOk:x,onCancel:()=>Z(!1),okText:C("Use default value"),cancelText:C("Cancel"),width:"calc(100% - 50px)"},_,D),N):React.createElement(r.Z,(0,o.Z)({destroyTooltipOnHide:!0,overlayStyle:{width:S},content:React.createElement("div",{className:"wp-clearfix"},_,React.createElement("div",{style:{margin:"10px 0"}},D),React.createElement("a",{className:"button button-primary alignright",onClick:x},C("Use default value"))),title:void 0,placement:R},w),N),!E&&React.createElement("br",null))}))}},3875:(e,t,a)=>{a.d(t,{$:()=>r,f:()=>o});var n=a(7363);class r{static Context(){return this.context=this.context||(0,n.createContext)({})}}function o(){return(0,n.useContext)(r.Context())}r.context=void 0},563:(e,t,a)=>{a.d(t,{I:()=>o,N:()=>r});var n=a(7363);class r{static Context(){return this.context=this.context||(0,n.createContext)({})}}function o(){return(0,n.useContext)(r.Context())}r.context=void 0},6541:(e,t,a)=>{a.d(t,{f:()=>l});var n=a(1246),r=a(3307),o=a(7363);function l({defaultValues:e,handleSave:t,i18n:a,initialHasChanges:l,trackFieldsDifferFromDefaultValues:c=[]}){const[i]=r.Z.useForm(),[s,d]=(0,o.useState)(!1),[u,m]=(0,o.useState)(l||!1),p=[],h=(0,o.useCallback)((async e=>{d(!0);try{await t(e),i.resetFields(),n.ZP.success(a.successMessage),m(!1)}catch(e){n.ZP.error(e)}finally{d(!1)}}),[i,t]),f=(0,o.useCallback)((e=>{n.ZP.error(a.validationError),e.errorFields.length&&i.getFieldInstance(e.errorFields[0].name).parentElement.scrollIntoView({behavior:"smooth",block:"center"})}),[i,a]),g=(0,o.useCallback)((()=>!u||(l&&a.unloadConfirmInitialActive?a.unloadConfirmInitialActive:a.unloadConfirm)),[u,a,l]),v=(0,o.useCallback)(((t,a)=>{if(c&&e){p.splice(0,p.length);for(const t of c)a[t]!==e[t]&&p.push(t)}m(!0)}),[c,e]);return{form:i,isBusy:s,hasChanges:u,hasTrackedFieldDifferenceToDefaultValue:e=>p.indexOf(e)>-1,onFinish:h,onFinishFailed:f,onBeforeUnload:g,onValuesChange:v}}},9631:(e,t,a)=>{function n(){return{http:{name:"HTTP Cookie",abbr:"HTTP",backgroundColor:"black"},local:{name:"Local Storage",abbr:"Local",backgroundColor:"#b3983c"},session:{name:"Session Storage",abbr:"Session",backgroundColor:"#3c99b3"},flash:{name:"Flash Local Shared Object",abbr:"Flash",backgroundColor:"#b33c3c"},indexedDb:{name:"IndexedDB",abbr:"I-DB",backgroundColor:"#4ab33c"}}}a.d(t,{X:()=>n}),a(7363)},3493:(e,t,a)=>{a.d(t,{Y:()=>l});var n=a(7363),r=a(5998),o=a.n(r);const l=({settings:e={},value:t="",onChange:a})=>{const r=(0,n.useRef)(),{codeEditor:l}=o();(0,n.useEffect)((()=>{if(l){const{codemirror:t}=l.initialize(r.current,e);t.on("change",(e=>{null==a||a(e.getValue())}))}}),[]);const c=(0,n.useCallback)((()=>{}),[]);return React.createElement("textarea",{ref:r,value:t,onChange:l?c:({target:{value:e}})=>a(e),style:{width:"100%"}})}},3558:(e,t,a)=>{a.d(t,{Z:()=>Ce});var n=a(8208),r=a(3307),o=a(7465),l=a(1839),c=a(7363),i=a(3867),s=a(2698),d=a(5217),u=a(1712),m=a(7669),p=a(9743),h=a(6711),f=a(164),g=a(3493),v=a(6541);const y={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",isSessionDuration:!1,purpose:""};var R=a(194),E=a(8924),b=a(44),k=a(2065),w=a(563),C=a(433);const I=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Name"),required:!0},React.createElement(r.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:e("Please provide a name!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"name",widthOfRef:t,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".')))};var O=a(1088);const Z=()=>{const{__:e}=(0,w.I)();return React.createElement(r.Z.Item,{label:e("Status"),required:!0},React.createElement(r.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(O.ZP.Group,null,React.createElement(O.ZP.Button,{value:"publish"},e("Enabled")),React.createElement(O.ZP.Button,{value:"private"},e("Disabled")),React.createElement(O.ZP.Button,{value:"draft"},e("Draft")))),React.createElement("p",{className:"description"},e('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.')))};var S=a(9172);const x=()=>{const{__:e,serviceIsManager:t,setCookiesViaManager:a,essentialGroupId:n,groups:o,notices:{group:l}}=(0,w.I)(),i=(0,c.useRef)(),{managerLabel:s}=(0,E.Lg)(a);return React.createElement(r.Z.Item,{label:e("Group"),required:!0},React.createElement(r.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:e("Please provide a group!")}]},React.createElement(S.Z,null,o.map((({id:e,name:t})=>React.createElement(S.Z.Option,{key:e,value:e},t))))),React.createElement("p",{className:"description",ref:i},React.createElement(C.A,{form:"service",valueName:"group",widthOfRef:i,style:{marginBottom:3},renderDiff:e=>React.createElement(S.Z,{value:e,disabled:!0},o.map((({id:e,name:t})=>React.createElement(S.Z.Option,{key:e,value:e},t))))}),e("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.")),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:a})=>React.createElement(R.w,{notices:[{message:t&&a("group")!==n?e("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.",s):void 0,severity:"warning"},...l]}))))},_=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Provider"),required:!0},React.createElement(r.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:e("Please name a provider!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"provider",widthOfRef:t,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e('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.')))},D=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Purpose")},React.createElement(r.Z.Item,{name:"purpose",noStyle:!0},React.createElement(k.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"purpose",widthOfRef:t,renderDiff:e=>React.createElement(k.Z.TextArea,{autoSize:{minRows:3},value:e,readOnly:!0})}),e("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.")))},N=()=>{const{__:e,notices:{providerPrivacyPolicyUrl:t}}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Privacy policy of the provider"),required:!0},React.createElement(r.Z.Item,{name:"providerPrivacyPolicyUrl",noStyle:!0,rules:[{required:!0,type:"url",message:e("Please provide a valid URL!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:a},React.createElement(C.A,{form:"service",valueName:"providerPrivacyPolicyUrl",widthOfRef:a,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),React.createElement(R.w,{notices:t}))};function P(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();const t="àáäâèéëêìíïîòóöôùúüûñç·/_,:;";for(let 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,"-")}const B=()=>{const{__:e,essentialGroupId:t,isConsentForwarding:a,isEdit:n,hasServiceByConsentForwardingUniqueName:o}=(0,w.I)(),l=(0,c.useCallback)((async(t,a)=>{const n=await o(t);if(n){if(!a)throw e("A service with the same unique name already exists.");{const e=/^(.*)-(\d+)$/;let r=t,l=n;for(;l;)r=r.match(e)?r.replace(e,((e,t,a)=>"".concat(t,"-").concat(+a+1))):"".concat(r,"-1"),l=await o(r);a(r)}}}),[o]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:o,setFieldsValue:c})=>{const i=o("group")===t,s=P(o("name"));return React.createElement(r.Z.Item,{label:e("Consent Forwarding Unique Name"),required:!0,style:{display:a?void 0:"none"}},React.createElement(r.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:async(e,t)=>l(t||s,a&&t?void 0:e=>c({consentForwardingUniqueName:e}))}]},React.createElement(k.Z,{placeholder:n?"":s})),React.createElement("p",{className:"description"},e("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.")),i&&React.createElement(R.w,{notices:[{message:e("You can define a unique name, but essential services are automatically accepted when a consent is forwarded."),severity:"info"}]}))}))};var T=a(7421);const F=e=>{const{__:t,allowLegalBasisLegalRequirement:a}=(0,w.I)();return React.createElement(O.ZP.Group,e,React.createElement(O.ZP.Button,{value:"consent"},t("Consent (Opt-in)")),React.createElement(O.ZP.Button,{value:"legitimate-interest"},t("Legitimate interest (Opt-out)")),a&&React.createElement(O.ZP.Button,{value:"legal-requirement"},t("Compliance with a legal obligation")))},A=()=>{const{__:e,_i:t,allowLegalBasisLegalRequirement:a,essentialGroupId:n}=(0,w.I)(),o=(0,c.useRef)();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:l})=>{const c=l("group")===n;return React.createElement(r.Z.Item,{label:e("Legal basis"),required:!0},React.createElement(r.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(F,{disabled:c})),React.createElement("p",{className:"description",ref:o},React.createElement(C.A,{form:"service",valueName:"legalBasis",widthOfRef:o,style:{marginBottom:3},renderDiff:e=>React.createElement(F,{disabled:!0,value:e})}),React.createElement(T.r,{url:e("https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/")}),React.createElement("br",null),t(e('Services can be used on various legal bases according to {{aGdpr}}Art. 6 GDPR{{/aGdpr}}. "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),aGdpr:React.createElement("a",{href:e("https://gdpr-info.eu/art-6-gdpr/"),target:"_blank",rel:"noreferrer"})})),c&&!a&&React.createElement(R.w,{notices:[{message:e('Your service is currently grouped as "Essential". This group implies the legitimate interest, with the only difference that this service cannot be opted out.'),severity:"info"}]}))}))};var U=a(7818);const M=()=>{const{__:e,essentialGroupId:t,isDataProcessingInUnsafeCountries:a}=(0,w.I)(),n=(0,c.useRef)(),o=e("This service processes data in the USA or transfers data to US companies or servers");return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group||e.ePrivacyUSA!==t.ePrivacyUSA},(({getFieldValue:l})=>React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span},style:{display:a?void 0:"none"}},React.createElement(r.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",o),React.createElement("div",{style:{marginTop:10}},React.createElement(C.A,{form:"service",valueName:"ePrivacyUSA",widthOfRef:n,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",o)),noBr:!0})),l("ePrivacyUSA")&&l("group")===t&&React.createElement(R.w,{notices:[{message:e("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."),severity:"warning"}]}))))},q=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)(),a=e("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.");return React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:"isEmbeddingOnlyExternalResources",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",a),React.createElement("div",{style:{marginTop:10},ref:t},React.createElement(C.A,{form:"service",valueName:"isEmbeddingOnlyExternalResources",widthOfRef:t,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",a)),noBr:!0})))};var V=a(3115);const L=()=>{const{__:e}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(V.C,{offset:b.Or.labelCol.span},e("General service configuration")," ",React.createElement(T.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(I,null),React.createElement(Z,null),React.createElement(x,null),React.createElement(_,null),React.createElement(D,null),React.createElement(N,null),React.createElement(B,null),React.createElement(A,null),React.createElement(M,null),React.createElement(q,null))};var G=a(301),H=a(3364),W=a(406),j=a(9520),z=a(9631);const $=({field:e,readOnly:t=!1})=>{const{__:a}=(0,w.I)(),n=(0,z.X)();return React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"type"],name:[e.name,"type"],rules:[{required:!0,message:a("Please provide a cookie type!")}]}),React.createElement(S.Z,{disabled:t},Object.keys(n).map((e=>React.createElement(S.Z.Option,{key:e,value:e,style:{display:"flash"===e?"none":void 0}},n[e].name)))))},Y=({field:e,readOnly:t})=>{const{__:a,_i:n}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"name"],name:[e.name,"name"],rules:[{required:!0,message:a("Please provide a technical cookie name!")}]}),React.createElement(k.Z,{disabled:t})),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.name)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.name)}},(({getFieldValue:t})=>{const r=t(["technicalDefinitions",e.name,"name"]);return[/\[/gm,[/([{]+)/gm,e=>1===e.length],/\(/gm].filter((e=>Array.isArray(e)?e[0].test(r)&&r.match(e[0]).filter(e[1]).length>0:e.test(r))).length>0&&React.createElement(R.w,{notices:[{message:n(a("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)}),severity:"warning"}]})})))};var K=a(4028);const J=({field:e,readOnly:t})=>{const{__:a,_i:n}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r,o,l;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.type)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.type)||(null===(o=t.technicalDefinitions[e.name])||void 0===o?void 0:o.host)!==(null===(l=a.technicalDefinitions[e.name])||void 0===l?void 0:l.host)}},(({getFieldValue:l})=>{const c=l(["technicalDefinitions",e.name,"type"]),i=l(["technicalDefinitions",e.name,"host"]);return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"host"],name:[e.name,"host"],rules:[{validator:(e,t)=>(["local","session","indexedDb"].indexOf(c)>-1?(0,K.C)(t):/^\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(t))||""===t&&"http"!==c?Promise.resolve():Promise.reject(a("Please provide a valid hostname!"))}]}),React.createElement(k.Z,{disabled:t})),i.startsWith("*.")&&i.length>2&&React.createElement(R.w,{notices:[{message:n(a("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",i.substr(2)),{code:React.createElement("code",null)}),severity:"warning"}]}))})))};var X=a(4217);const Q=({field:e,readOnly:t})=>{const{__:a}=(0,w.I)(),n=(0,c.useMemo)((()=>({s:a("second(s)"),m:a("minute(s)"),h:a("hour(s)"),d:a("day(s)"),mo:a("month(s)"),y:a("year(s)")})),[a]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r,o,l;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.type)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.type)||(null===(o=t.technicalDefinitions[e.name])||void 0===o?void 0:o.isSessionDuration)!==(null===(l=a.technicalDefinitions[e.name])||void 0===l?void 0:l.isSessionDuration)}},(({getFieldValue:l})=>{const c=l(["technicalDefinitions",e.name,"type"]),i=l(["technicalDefinitions",e.name,"isSessionDuration"]);return["local","session","indexedDb","flash"].indexOf(c)>-1?null:React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,{key:"isSessionDuration",fieldKey:[e.fieldKey,"isSessionDuration"],name:[e.name,"isSessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(X.Z,{style:{float:"left",marginTop:5},disabled:t},React.createElement(G.Z,{title:a("This cookie is active as long as the session is active")},React.createElement("span",null,a("Session"))))),React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{key:"duration",fieldKey:[e.fieldKey,"duration"],name:[e.name,"duration"],rules:[{required:!i,message:a("Please provide a valid duration!")}]}),React.createElement(k.Z,{disabled:t,min:"0",addonAfter:React.createElement(r.Z.Item,{fieldKey:[e.fieldKey,"durationUnit"],name:[e.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:a("Please provide an unit!")}]},React.createElement(S.Z,{disabled:t},Object.keys(n).map((e=>React.createElement(S.Z.Option,{key:e,value:e},n[e]))))),type:"number",style:{maxWidth:200,display:i?"none":void 0}})))}))},ee=({field:e,readOnly:t})=>React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"purpose"],name:[e.name,"purpose"]}),React.createElement(k.Z.TextArea,{disabled:t,rows:1,autoSize:{maxRows:3}}));var te=a(7462),ae=a(6500);const ne={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},re=({technicalDefinitions:e})=>{const[t]=r.Z.useForm();return React.createElement(r.Z,{form:t,initialValues:{isEmbeddingOnlyExternalResources:!1,technicalDefinitions:e}},React.createElement(le,{isDiff:!0}))},oe=(e,t)=>{const a=[],n=e.reduce(((e,{name:t,host:n,duration:r,durationUnit:o,isSessionDuration:l,type:c,purpose:i})=>{const s="".concat(c,"/").concat(t,"/").concat(n);return e[s]="".concat(r,"/").concat(o,"/").concat(l,"/").concat(c,"/").concat(i),a.push(s),e}),{}),r=t.map((e=>{const{name:t,host:r,duration:o,durationUnit:l,isSessionDuration:c,type:i,purpose:s}=e,d="".concat(i,"/").concat(t,"/").concat(r),u=n[d];return void 0===u||u==="".concat(o,"/").concat(l,"/").concat(c,"/").concat(i,"/").concat(s)?void 0:{...e,position:a.indexOf(d)}})).filter(Boolean),o=e.map((({type:e,name:t,host:a})=>"".concat(e,"/").concat(t,"/").concat(a))),l=t.map(((e,t)=>{const{type:a,name:n,host:r}=e;return o.includes("".concat(a,"/").concat(n,"/").concat(r))?void 0:{...e,position:t}})).filter(Boolean);return l.length||r.length?{added:l,modified:r}:void 0},le=({isDiff:e=!1})=>{const{__:t,_i:a}=(0,w.I)(),{SortableBodyConnected:n,SortableItem:l,DragHandle:i}=function(){const e=(0,c.useRef)(),{DragHandle:t,SortableItem:a,SortableBody:n}=(0,c.useMemo)((()=>({DragHandle:(0,ae.W6)((()=>React.createElement(te.Z,{style:{cursor:"grab",color:"#999",marginTop:5},className:"button button-small button-link"}))),SortableItem:(0,ae.W8)((e=>React.createElement("tr",e))),SortableBody:(0,ae.JN)((t=>React.createElement("tbody",(0,o.Z)({ref:e},t))))})),[]),r=(0,c.useCallback)((({node:e,helper:t})=>{e.childNodes.forEach(((e,a)=>{t.childNodes[a].style.width="".concat(e.offsetWidth,"px")}))}),[]);return{tbodyRef:e,DragHandle:t,SortableItem:a,SortableBody:n,SortableBodyConnected:({onSortEnd:t,children:a})=>React.createElement(n,{useDragHandle:!0,onSortEnd:({oldIndex:e,newIndex:a})=>t(e,a),onSortStart:r,helperContainer:()=>e.current},a),handleSortStart:r}}();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isEmbeddingOnlyExternalResources!==t.isEmbeddingOnlyExternalResources||e.technicalDefinitions.length!==t.technicalDefinitions.length},(({getFieldValue:o})=>o("isEmbeddingOnlyExternalResources")?null:React.createElement(r.Z.List,{name:"technicalDefinitions"},((r,{add:o,remove:c,move:s})=>React.createElement("div",null,!e&&React.createElement(V.C,{offset:b.Or.labelCol.span,description:a(t("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 according to {{aEprivacy}}ePrivacy Directive (Directive 2009/136/EC) Art. 66{{/aEprivacy}} you have to inform your visitors not only about (HTTP) cookies, but also about cookie-like information."),{aEprivacy:React.createElement("a",{href:t("https://devowl.io/go/eu-directive-2009-136-ec"),target:"_blank",rel:"noreferrer"})})},t("Technical cookie information")),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list",style:{marginBottom:25}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("td",{width:45,align:"right"}," "),React.createElement("td",{width:150},t("Cookie type")),React.createElement("td",null,React.createElement(G.Z,{title:a(t("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,t("Technical cookie name")," ",React.createElement(H.Z,null)))),React.createElement("td",null,React.createElement(G.Z,{title:t("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,t("Technical cookie host")," ",React.createElement(H.Z,null)))),React.createElement("td",{width:290},React.createElement(G.Z,{title:t("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,t("Cookie duration")," ",React.createElement(H.Z,null)))),React.createElement("td",null,React.createElement(G.Z,{title:t("Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.")},React.createElement("span",null,t("Purpose")," ",React.createElement(H.Z,null)))),React.createElement("td",{width:70,align:"right"}," "))),React.createElement(n,{onSortEnd:s},r.map(((t,a)=>React.createElement(l,{key:t.key,index:a},React.createElement("td",null,r.length>1&&!e?React.createElement(i,null):void 0),React.createElement("td",null,React.createElement($,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(Y,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(J,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(Q,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(ee,{field:t,readOnly:e})),React.createElement("td",null,r.length>1&&!e?React.createElement("a",{className:"button button-small",onClick:()=>{c(t.name)}},React.createElement(W.Z,null)):null))))),!e&&React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:7,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:()=>{o(y)}},React.createElement(j.Z,null)," ",t("Add another cookie definition")),React.createElement(C.A,{useModal:!0,form:"service",valueName:"technicalDefinitions",noBr:!0,style:{marginTop:4},difference:oe,apply:({added:e,modified:t},a,n)=>{const r=n;t.forEach((({position:e,...t})=>{r[e]=t})),e.forEach((({position:e,...t})=>{r.splice(e,0,t)})),a({technicalDefinitions:r})},newValueText:!1,renderDiff:(e,{added:a,modified:n})=>React.createElement(React.Fragment,null,a.length>0&&React.createElement(React.Fragment,null,React.createElement("p",null,React.createElement("strong",null,t("Missing entries:"))),React.createElement(re,{technicalDefinitions:a})),n.length>0&&React.createElement(React.Fragment,null,React.createElement("p",null,React.createElement("strong",null,t("Modified entries:"))),React.createElement(re,{technicalDefinitions:n})))}))))))))))},ce=()=>{const{__:e,setCookiesViaManager:t,serviceIsManager:a,hasManager:n}=(0,w.I)(),{managerLabel:o}=(0,E.Lg)(t);return"none"!==t&&!a&&React.createElement(r.Z.Item,{label:e("Event names for %s",o),required:!0},React.createElement(r.Z.Item,{name:"tagManagerOptInEventName",noStyle:!0},React.createElement(k.Z,{addonBefore:e("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(r.Z.Item,{name:"tagManagerOptOutEventName",noStyle:!0},React.createElement(k.Z,{addonBefore:e("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("p",{className:"description"},React.createElement(T.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.tagManagerOptInEventName!==t.tagManagerOptInEventName||e.tagManagerOptOutEventName!==t.tagManagerOptOutEventName},(({getFieldValue:t})=>{const a=t("tagManagerOptInEventName"),r=t("tagManagerOptOutEventName");return(a.length>0||r.length>0)&&!n&&React.createElement(R.w,{notices:[{message:e("You have not yet defined a %s service. To use event names, you must create a %s service.",o,o),severity:"warning"}]})})))},ie=/{{([A-Za-z0-9_]+)}}/gm,se=["codeOptIn","codeOptOut","codeOnPageLoad"],de=()=>{const{__:e,dynamicFields:t}=(0,w.I)();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>se.map((a=>e[a]!==t[a])).filter(Boolean).length>0},(({getFieldValue:a})=>{const n=se.map((e=>a(e))).join(""),o=Array.from(n.matchAll(ie)).map((([,e])=>e)),l=[];return o?o.map((a=>{const n=["codeDynamics",a],{label:o,invalidMessage:c=e("Please fill in a value!"),example:i,expression:s,hint:d}=(null==t?void 0:t.find((e=>e.name===a)))||{};return l.indexOf(a)>-1?null:(l.push(a),React.createElement(r.Z.Item,{key:a,label:o||React.createElement("code",null,a),required:!0},React.createElement(r.Z.Item,{noStyle:!0,name:n,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(k.Z,{placeholder:i})),React.createElement(R.w,{notices:[{message:d,severity:"info"}]})))})):null}))},ue=({name:e})=>{const{__:t,_i:a,skipIfActiveComponents:n}=(0,w.I)(),o=(0,c.useMemo)((()=>Object.keys(n)),[n]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>t[e]!==a[e]},(({getFieldValue:r})=>{const l=[...r(e).matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)].map((([,,e])=>e.split(",").filter((e=>o.indexOf(e)>-1)))).flat(),c=l.filter(((e,t)=>l.indexOf(e)===t));return 0===c.length?null:React.createElement("div",{style:{marginTop:10}},React.createElement(R.w,{notices:[{message:a(t("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,c.map((e=>n[e])).join(", ")),i:React.createElement("i",null)}),severity:"info"}]}))}))},me=({name:e})=>{const{__:t,_i:a,isPro:n,setCookiesViaManager:o,serviceIsManager:l}=(0,w.I)(),i=(0,c.useRef)(),{managerLabel:s}=(0,E.Lg)(o),d=a(t("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",s),{u:React.createElement("u",null)});return"none"!==o&&!l&&n?React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:e,valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",d),React.createElement("div",{style:{marginTop:10},ref:i},React.createElement(C.A,{form:"service",valueName:e,widthOfRef:i,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",d)),noBr:!0}))):null},pe=()=>{const{__:e,renderCodeMirror:t}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{label:e("Code executed on opt-in")},React.createElement(r.Z.Item,{name:"codeOptIn",noStyle:!0},t()),React.createElement(ue,{name:"codeOptIn"}),React.createElement("div",{ref:a},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOptIn",widthOfRef:a,noBr:!0}))),React.createElement(me,{name:"executeCodeOptInWhenNoTagManagerConsentIsGiven"}))},he=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)(),a=e("Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.");return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isEmbeddingOnlyExternalResources!==t.isEmbeddingOnlyExternalResources},(({getFieldValue:e})=>e("isEmbeddingOnlyExternalResources")?null:React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:"deleteTechnicalDefinitionsAfterOptOut",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",a),React.createElement("div",{style:{marginTop:10},ref:t},React.createElement(C.A,{form:"service",valueName:"deleteTechnicalDefinitionsAfterOptOut",widthOfRef:t,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",a)),noBr:!0})))))},fe=()=>{const{__:e,renderCodeMirror:t,essentialGroupId:a}=(0,w.I)(),n=(0,c.useRef)(),o=(0,c.useCallback)((e=>({opacity:e?void 0:0,height:e?void 0:0,margin:e?void 0:0})),[]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:l})=>{const c=l("group")!==a;return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{label:e("Code executed on opt-out"),style:o(c)},React.createElement(r.Z.Item,{name:"codeOptOut",noStyle:!0},t()),React.createElement(ue,{name:"codeOptOut"}),React.createElement("div",{ref:n},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOptOut",widthOfRef:n,noBr:!0}))),c&&React.createElement(React.Fragment,null,React.createElement(me,{name:"executeCodeOptOutWhenNoTagManagerConsentIsGiven"}),React.createElement(he,null)))}))},ge=()=>{const{__:e,renderCodeMirror:t}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Code executed on page load")},React.createElement(r.Z.Item,{name:"codeOnPageLoad",noStyle:!0},t()),React.createElement(ue,{name:"codeOnPageLoad"}),React.createElement("div",{ref:a},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOnPageLoad",widthOfRef:a,noBr:!0})))},ve=()=>{const{__:e,serviceGotScanned:t,setCookiesViaManager:a,contentBlockerTemplates:n,notices:{technicalHandling:o},defaultPresetValues:l}=(0,w.I)(),c=(null==l?void 0:l.name)||"",{managerLabel:i}=(0,E.Lg)(a),s=[...o,t&&{message:n.length>0?e('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.',c):e("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.",c),severity:"warning"}].filter(Boolean).filter((({message:e})=>e));return React.createElement(React.Fragment,null,React.createElement(V.C,{offset:b.Or.labelCol.span,description:"none"===a?e("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."):e("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.",i)},e("Technical handling")),React.createElement(ce,null),React.createElement(de,null),s.length>0&&React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span},style:{marginBottom:0}},React.createElement(R.w,{notices:s})),React.createElement(pe,null),React.createElement(fe,null),React.createElement(ge,null))},ye=()=>{const{__:e,essentialGroupId:t,allowContentBlockerCreation:a,contentBlockerTemplates:n,notices:{createContentBlocker:o}}=(0,w.I)();return a&&(null==n?void 0:n.length)>0&&React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span}},React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:a})=>React.createElement(r.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:(n,r)=>a("group")===t&&r?Promise.reject(e('Services that should be associated with a content blocker cannot be in the "Essential" group, because it cannot be rejected.')):Promise.resolve()}]},React.createElement(X.Z,null,e("Create content blocker for this service."))))),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.createContentBlocker!==t.createContentBlocker},(({getFieldValue:t})=>React.createElement(React.Fragment,null,t("createContentBlocker")&&React.createElement(React.Fragment,null,n.length>1&&React.createElement(r.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:e("Please select a template for the Content Blocker!")}]},React.createElement(S.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:e("Select Content Blocker template...")},n.map((({identifier:e,name:t,subHeadline:a})=>React.createElement(S.Z.Option,{key:e,value:e},"".concat(t).concat(a?" (".concat(a,")"):""))))))),React.createElement(R.w,{notices:[{message:t("createContentBlocker")?e("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker."):void 0,severity:"info"},...o]})))))},Re=()=>{const{__:e,presetCheck:t,isTemplateUpdate:a}=(0,w.I)();return!(!t&&!a)&&React.createElement(r.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:e=>e||void 0,message:e("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:b.Or.labelCol.span}},React.createElement(X.Z,null,e("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(T.r,{url:e("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))};var Ee=a(987),be=a(5941);const ke=()=>{const{__:e,_i:t}=(0,w.I)(),a=(0,c.useRef)(),n=Ee.x.Context();return React.createElement(n.Provider,{value:{__:e,_i:t}},React.createElement("div",{ref:a},React.createElement(be.j,{containerRef:a,form:"service"}),React.createElement(L,null),React.createElement(le,null),React.createElement(ve,null),React.createElement(ye,null),React.createElement(r.Z.Item,{className:"rcb-form-sticky-submit",labelCol:{span:0},wrapperCol:{span:24}},React.createElement(Re,null),React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span}},React.createElement("div",{style:{textAlign:"center"}},React.createElement("input",{type:"submit",className:"button button-primary",value:e("Save")}))))))};var we=a(4161);const Ce=(0,i.Pi)((({preset:e,overwriteAttributes:t,navigateAfterCreation:a=!0,scrollToTop:i=!0,onCreated:k})=>{var C,I,O,Z,S,x,_;const{routeGroup:{group:D,link:N},cookie:B,id:T,queried:F,fetched:A}=(()=>{const e=(0,f.R)(),{group:t}=e,{params:a}=(0,h.useRouteMatch)(),n=isNaN(+a.cookie)?0:+a.cookie,r=!!a.cookie,o=t.cookies.entries.get(+a.cookie)||new s.U(t.cookies,{id:0});return{routeGroup:e,cookie:o,id:n,queried:r,fetched:0!==o.key}})(),U=(0,h.useHistory)(),{cookieStore:M,optionStore:{tcf:q,ePrivacyUSA:V,consentForwarding:L,setCookiesViaManager:G,hasManager:H,others:{useEncodedStringForScriptInputs:W,isPro:j,activePlugins:z}}}=(0,p.m)(),{essentialGroup:$}=M,Y=(null==B?void 0:B.presetModel)||M.presetsCookie.get(null==e?void 0:e.identifier),K=M.groups.sortedGroups.map((({data:{id:e,name:t}})=>({id:e,name:t}))),J=!!a,X=(null==Y?void 0:Y.data.contentBlockerTemplates)||[],Q={...null==Y?void 0:Y.attributes,...t},{form:ee,isBusy:te,defaultValues:ae,onFinish:ne,onFinishFailed:re,onBeforeUnload:oe,onValuesChange:le,contextValue:ce}=function(e){var t,a;const{setCookiesViaManager:n,selectedGroup:o,groups:l,contentBlockerTemplates:i,allowContentBlockerCreation:s,shouldUncheckContentBlockerCheckbox:d,preset:u,attributes:m,__:p,_i:h}=e,f=m?m.group?(null===(t=l.filter((({name:e})=>e===m.group)))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.id)||"preset-group-not-found":void 0:o,g={name:(null==m?void 0:m.name)||"",status:"publish",group:"number"==typeof f&&f||void 0,purpose:(null==m?void 0:m.purpose)||"",provider:(null==m?void 0:m.provider)||"",providerPrivacyPolicyUrl:(null==m?void 0:m.providerPrivacyPolicyUrl)||"",consentForwardingUniqueName:(null==m?void 0:m.consentForwardingUniqueName)||(null==u?void 0:u.identifier)||"",isEmbeddingOnlyExternalResources:(null==m?void 0:m.isEmbeddingOnlyExternalResources)||!1,legalBasis:(null==m?void 0:m.legalBasis)||"consent",ePrivacyUSA:(null==m?void 0:m.ePrivacyUSA)||!1,technicalDefinitions:null!=m&&m.technicalDefinitions?JSON.parse(JSON.stringify(m.technicalDefinitions)):[y],codeDynamics:(null==m?void 0:m.codeDynamics)||{},tagManagerOptInEventName:(null==m?void 0:m.tagManagerOptInEventName)||"",tagManagerOptOutEventName:(null==m?void 0:m.tagManagerOptOutEventName)||"",codeOptIn:(null==m?void 0:m.codeOptIn)||"",executeCodeOptInWhenNoTagManagerConsentIsGiven:(null==m?void 0:m.executeCodeOptInWhenNoTagManagerConsentIsGiven)||!1,codeOptOut:(null==m?void 0:m.codeOptOut)||"",codeOnPageLoad:(null==m?void 0:m.codeOnPageLoad)||"",executeCodeOptOutWhenNoTagManagerConsentIsGiven:(null==m?void 0:m.executeCodeOptOutWhenNoTagManagerConsentIsGiven)||!1,deleteTechnicalDefinitionsAfterOptOut:(null==m?void 0:m.deleteTechnicalDefinitionsAfterOptOut)||!1,createContentBlocker:"boolean"==typeof(null==m?void 0:m.createContentBlocker)?m.createContentBlocker:i.length>0&&s&&!d,createContentBlockerId:null==m?void 0:m.createContentBlockerId,presetCheck:!u},b=(0,v.f)({...e,defaultValues:g,i18n:{successMessage:p("You have successfully saved the service."),validationError:p("The service could not be saved due to missing/invalid form values."),unloadConfirm:p('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}}),k=(0,c.useCallback)(((e,t)=>{b.onValuesChange(e,t);const{technicalDefinitions:a}=e,n=(a||[]).filter(Boolean);if(1===n.length){const e=Object.keys(n[0]);1===e.length&&["isSessionDuration","type"].indexOf(e[0])>-1&&setTimeout((()=>b.form.validateFields()),100)}}),[b.onValuesChange,b.form]),{serviceIsManager:w}=(0,E.Lg)(n,null==u?void 0:u.identifier);return{...b,onValuesChange:k,useGroup:f,defaultValues:g,contextValue:{__:p,_i:h,setCookiesViaManager:n,serviceIsManager:w,presetCheck:!!u,defaultPresetValues:u?g:{},allowLegalBasisLegalRequirement:"real-cookie-banner"===(null==u?void 0:u.identifier),groups:l,allowContentBlockerCreation:s,contentBlockerTemplates:i,notices:{group:[{message:"preset-group-not-found"===f?p("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",m.group):void 0,severity:"warning"},{message:React.createElement(r.Z.Item,{noStyle:!0,key:"groupDiff",shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:e})=>React.createElement(R.w,{notices:[{message:u&&"number"==typeof f&&b.hasTrackedFieldDifferenceToDefaultValue("group")&&e("group")!==f?p("The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?"):void 0,severity:"warning"}]})))}]}}}}({__:d.__,_i:d._i,attributes:Q,selectedGroup:D.key,trackFieldsDifferFromDefaultValues:["group"],setCookiesViaManager:G,groups:K,preset:Y?{identifier:Y.data.identifier,version:Y.data.version}:void 0,allowContentBlockerCreation:J,shouldUncheckContentBlockerCheckbox:null==Q?void 0:Q.shouldUncheckContentBlockerCheckbox,contentBlockerTemplates:X,handleSave:async t=>{try{var n;const o=e=>W?"encodedScript:".concat(function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(t,16)))))}(e)):e,{name:l,status:c,purpose:i,isEmbeddingOnlyExternalResources:d,technicalDefinitions:u,group:m,codeDynamics:p,createContentBlocker:h,createContentBlockerId:f,consentForwardingUniqueName:g,codeOptIn:v,codeOptOut:y,codeOnPageLoad:R,...E}=t,b={...E,codeOptIn:o(v),codeOptOut:o(y),codeOnPageLoad:o(R),isEmbeddingOnlyExternalResources:d,codeDynamics:JSON.stringify(p),technicalDefinitions:JSON.stringify(d?se.technicalDefinitions:u),consentForwardingUniqueName:g||P(l),presetId:null==Y?void 0:Y.data.identifier,presetVersion:null==Y?void 0:Y.data.version};if(delete b.presetCheck,F)B.setName(l),B.setStatus(c),B.setPurpose(i),B.setMeta(b),B.setGroup(m),await B.patch();else{const e=M.groups.entries.get(m),t=new s.U(e.cookies,{title:{rendered:l},content:{rendered:i,protected:!1},status:c,meta:b});await t.persist(),null==k||k(t)}const w="#rcb-services-with-empty-privacy-policy-notice";var r;null===(n=document.querySelector("".concat(w,' li[data-id="').concat(T,'"]')))||void 0===n||n.classList.add("hidden"),document.querySelectorAll("".concat(w," > ul > li:not(.hidden)")).length||null===(r=document.querySelector(w))||void 0===r||r.remove(),a&&setTimeout((()=>h?U.push("/blocker/new?force=".concat(f||e.identifier,"&cookieCreationPrompt=1").concat("string"==typeof a?"&navigateAfterCreation=".concat(encodeURIComponent(a)):"")):"string"==typeof a?window.location.href=a:U.push("".concat(N.slice(1),"/").concat(m))),0)}catch(e){throw e.responseJSON.message}}}),ie=(null==Q?void 0:Q.createContentBlockerNotice)||(null==Y||null===(C=Y.attributes)||void 0===C?void 0:C.createContentBlockerNotice),se=A?{name:B.data.title.raw,status:B.data.status,group:D.key||void 0,purpose:B.data.content.raw,provider:B.data.meta.provider,providerPrivacyPolicyUrl:B.data.meta.providerPrivacyPolicyUrl,consentForwardingUniqueName:B.data.meta.consentForwardingUniqueName||B.data.slug,isEmbeddingOnlyExternalResources:B.data.meta.isEmbeddingOnlyExternalResources,legalBasis:B.data.meta.legalBasis,ePrivacyUSA:B.data.meta.ePrivacyUSA,technicalDefinitions:JSON.parse(JSON.stringify(B.technicalDefinitions||"[]")),codeDynamics:JSON.parse(JSON.stringify(B.codeDynamics||"{}")),tagManagerOptInEventName:B.data.meta.tagManagerOptInEventName,tagManagerOptOutEventName:B.data.meta.tagManagerOptOutEventName,codeOptIn:B.data.meta.codeOptIn,executeCodeOptInWhenNoTagManagerConsentIsGiven:B.data.meta.executeCodeOptInWhenNoTagManagerConsentIsGiven,codeOptOut:B.data.meta.codeOptOut,executeCodeOptOutWhenNoTagManagerConsentIsGiven:B.data.meta.executeCodeOptOutWhenNoTagManagerConsentIsGiven,codeOnPageLoad:B.data.meta.codeOnPageLoad,deleteTechnicalDefinitionsAfterOptOut:B.data.meta.deleteTechnicalDefinitionsAfterOptOut,createContentBlocker:!1,createContentBlockerId:void 0,presetCheck:void 0}:ae;(0,c.useEffect)((()=>{F&&!A&&([...M.groups.entries.values()].filter((({cookies:e})=>e.entries.get(T)))[0]||D).cookies.getSingle({params:{id:T,context:"edit"}})}),[F,A]),(0,c.useEffect)((()=>{Y&&!Y.attributes&&Y.fetchAttributes()}),[Y]),(0,c.useEffect)((()=>{!Y||Y.attributes||Y.busy||Y.fetchAttributes()}),[Y]),(0,c.useEffect)((()=>{i&&(0,u.X)(0)}),[]);const de=(0,c.useCallback)((async e=>{try{return(await(0,m.W)({location:we.V,params:{slug:e}})).filter((e=>e.ID!==B.key)).length>0}catch(e){return!1}}),[B.key]),ue=w.N.Context();return F&&!A||Y&&!Y.attributes?React.createElement(l.Z,{active:!0,paragraph:{rows:8}}):React.createElement(ue.Provider,{value:{...ce,isEdit:A,isPro:j,isTemplateUpdate:!(!A||!Y)&&(null===(I=B.data)||void 0===I||null===(O=I.meta)||void 0===O?void 0:O.presetVersion)!==Y.data.version,isTcf:q,isDataProcessingInUnsafeCountries:V,isConsentForwarding:L,hasServiceByConsentForwardingUniqueName:de,serviceGotScanned:!(null==Y||!Y.data.scanned||null===(Z=Y.attributes)||void 0===Z||!Z.codeOptIn||-1!==["wordpress-comments"].indexOf(Y.data.identifier)),hasManager:H>0,dynamicFields:(null==Q?void 0:Q.dynamicFields)||(null==Y||null===(S=Y.attributes)||void 0===S?void 0:S.dynamicFields),essentialGroupId:$.key,skipIfActiveComponents:z,renderCodeMirror:()=>React.createElement(g.Y,{settings:window.cm_settings}),notices:{group:[...ce.notices.group,{message:(null==Q?void 0:Q.groupNotice)||(null==Y||null===(x=Y.attributes)||void 0===x?void 0:x.groupNotice),severity:"info"}],providerPrivacyPolicyUrl:[{message:A||null==Y||!Y.attributes||se.providerPrivacyPolicyUrl?void 0:(0,d.__)('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href="%s" target="_blank">set the corresponding page in your settings.</a>',"#/settings"),severity:"warning"}],createContentBlocker:[{message:ie,severity:"info"}],technicalHandling:[{message:(null==Q?void 0:Q.technicalHandlingNotice)||(null==Y||null===(_=Y.attributes)||void 0===_?void 0:_.technicalHandlingNotice),severity:"info"}]}}},React.createElement(n.Z,{spinning:te||(null==Y?void 0:Y.busy)||!1},React.createElement(h.Prompt,{message:oe}),React.createElement(r.Z,(0,o.Z)({name:"cookie-".concat(D.key,"-").concat(T),form:ee},b.Or,{initialValues:se,onFinish:ne,onFinishFailed:re,onValuesChange:le}),React.createElement(ke,null))))}))},4121:(e,t,a)=>{a.d(t,{u:()=>s});var n=a(3404),r=a(7759),o=a(3751),l=a(7363),c=a(9743),i=a(5217);function s(){const{optionStore:{others:{assetsUrl:e}}}=(0,c.m)(),t="".concat(e,"cookie-experts.svg"),a=(0,l.useCallback)((()=>{o.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,i.__)("Let our team help you with the setup")),React.createElement(n.Z,null,React.createElement(r.C.Group,{size:"large"},React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg"}),React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg"}),React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg"}))),React.createElement("a",{href:(0,i.__)("https://devowl.io/wordpress-real-cookie-banner/cookie-experts/"),target:"_blank",rel:"noreferrer",className:"button button-large button-primary"},(0,i.__)("Get help from Cookie Experts")),React.createElement("p",null,(0,i.__)("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,i.__)("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:()=>o.Z.destroyAll()},(0,i.__)("Close")))})}),[]);return{logoUrl:t,openDialog:a}}},164:(e,t,a)=>{a.d(t,{R:()=>c});var n=a(6711),r=a(9743),o=a(7363),l=a(9532);const c=()=>{const{params:{cookieGroup:e}}=(0,n.useRouteMatch)(),{cookieStore:t}=(0,r.m)(),a=isNaN(+e)?0:+e,c=!!e,i=t.groups.entries.get(a)||new l.O(t.groups,{id:0}),s=(0,o.useCallback)((({key:e})=>"#/cookies/".concat(i.key,"/edit/").concat(e)),[i]),d="#/cookies/".concat(i.key,"/new");return{group:i,id:a,queried:c,fetched:0!==i.key,link:"#/cookies",editLink:s,addCookieLink:d}}}}]);
2
- //# sourceMappingURL=932.lite.js.map?ver=4223cc985ee59bf46502
1
+ "use strict";(self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[]).push([[932],{4028:(e,t,a)=>{function n(e){return!!/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/.test(e)}a.d(t,{C:()=>n})},7421:(e,t,a)=>{a.d(t,{r:()=>l});var n=a(9511),r=a(3364),o=a(987);const l=({url:e,style:t,label:a})=>{const{__:l}=(0,o.Q)(),c={cursor:"pointer",...t};return React.createElement(n.Z,{style:c,onClick:()=>window.open(e,"_blank")},React.createElement(r.Z,null)," ",a||l("Learn more"))}},194:(e,t,a)=>{a.d(t,{w:()=>n});const n=({notices:e})=>React.createElement(React.Fragment,null,null==e?void 0:e.map((({message:e,severity:t})=>e?t?React.createElement("div",{className:"notice notice-".concat(t," below-h2 notice-alt"),key:e},"string"==typeof e?React.createElement("p",{dangerouslySetInnerHTML:{__html:e}}):React.createElement("p",null,e)):e:null)))},3115:(e,t,a)=>{a.d(t,{C:()=>r});var n=a(3307);const r=({children:e,description:t,extra:a,offset:r})=>React.createElement(n.Z.Item,{wrapperCol:{offset:r},style:{borderBottom:"1px solid #e7e7e7"}},React.createElement("h3",{style:{margin:"0 0 ".concat(t?3:15,"px 0")}},e),!!t&&React.createElement("p",{className:"description",style:{marginBottom:15}},t),a)},44:(e,t,a)=>{a.d(t,{Or:()=>n});const n={labelCol:{span:6},wrapperCol:{span:16}}},5941:(e,t,a)=>{a.d(t,{C:()=>u,j:()=>m});var n=a(3307),r=a(9511),o=a(7363),l=a(563),c=a(3875),i=a(433),s=a(44),d=a(194);const u="rcb-value-differ-from-preset-pseudo",m=({containerRef:e,form:t})=>{const{__:a,_i:m,isTemplateUpdate:p}="service"===t?(0,l.I)():(0,c.f)(),[h,f]=(0,o.useState)([]),[g,v]=(0,o.useState)(!1),y=(0,o.useCallback)((()=>{if(e.current){const t=[...e.current.querySelectorAll(".".concat(u))];return f(t),t}return[]}),[g]);return(0,o.useLayoutEffect)((()=>{const t=setInterval(y,800);return async function(e,t=500,a=0){let n=0;for(;!e();){if(a>0&&n>=a)return;await new Promise((e=>setTimeout(e,t))),n++}return e()}((()=>e.current),100).then(y),document.addEventListener(i.S,y),()=>{clearInterval(t),document.removeEventListener(i.S,y)}}),[]),p&&(h.length>0||g)?React.createElement(n.Z.Item,{wrapperCol:{offset:s.Or.labelCol.span,span:s.Or.wrapperCol.span},style:{marginBottom:0}},React.createElement(d.w,{notices:[{severity:"info",message:React.createElement(React.Fragment,null,m(a("The blocker template has been updated to provide current legal and technical information. Fields with outdated values or values you manually adjusted are marked with {{tag/}}. You can apply all changes with one click!"),{tag:React.createElement(r.Z,{color:"blue"},a("Differing from template"))}),React.createElement("br",null),React.createElement("a",{className:"button ".concat(0===h.length&&g?"button-disabled":""),onClick:()=>{y().forEach((e=>e.click())),f([]),v(!0)},style:{marginTop:5}},0===h.length&&g?a("Applied!"):a("Use default values")))}]})):null}},433:(e,t,a)=>{a.d(t,{A:()=>f,S:()=>h});var n=a(3307),r=a(5969),o=a(7465),l=a(3751),c=a(9511),i=a(7363),s=a(563),d=a(3875),u=a(5941),m=a(9562),p=a.n(m);const h="RCB/FormValueDifferFromPresetTag/Apply";function f({useModal:e,form:t,valueName:a,difference:m,apply:f,newValueText:g,renderDiff:v,widthOfRef:y,placement:R="bottomLeft",noBr:E=!1,className:b,style:k,popoverProps:w}){const{__:C,defaultPresetValues:{[a]:I}}="service"===t?(0,s.I)():(0,d.f)(),[O,Z]=(0,i.useState)(!1);let S;return void 0!==I&&React.createElement(n.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e[a]!==t[a]},(({getFieldValue:t,setFieldsValue:n})=>{var i;const s=t(a),d=m?m(s,I):s!==I||void 0,x=()=>{"function"==typeof f?f(d,n,s):n({[a]:I}),document.dispatchEvent(new CustomEvent(h)),Z(!1)};if(S=(null==y||null===(i=y.current)||void 0===i?void 0:i.clientWidth)||S,!d)return null;const _=React.createElement("p",{className:"description",style:{marginBottom:10}},C("The value you entered is different from the value in the template.")),D=React.createElement(React.Fragment,null,!1!==g&&React.createElement("p",null,React.createElement("strong",null,g||C("New value:"))),"function"==typeof v?v(I,d):React.createElement(p(),{oldStr:s,newStr:I,context:100,outputFormat:"line-by-line"})),N=React.createElement(c.Z,{color:"blue",style:{cursor:"pointer",...k},className:b,onClick:()=>e&&Z(!0)},C("Differing from template"),React.createElement("span",{className:u.C,style:{display:"none"},onClick:x}));return React.createElement(React.Fragment,null,e?React.createElement(React.Fragment,null,React.createElement(l.Z,{visible:O,onOk:x,onCancel:()=>Z(!1),okText:C("Use default value"),cancelText:C("Cancel"),width:"calc(100% - 50px)"},_,D),N):React.createElement(r.Z,(0,o.Z)({destroyTooltipOnHide:!0,overlayStyle:{width:S},content:React.createElement("div",{className:"wp-clearfix"},_,React.createElement("div",{style:{margin:"10px 0"}},D),React.createElement("a",{className:"button button-primary alignright",onClick:x},C("Use default value"))),title:void 0,placement:R},w),N),!E&&React.createElement("br",null))}))}},3875:(e,t,a)=>{a.d(t,{$:()=>r,f:()=>o});var n=a(7363);class r{static Context(){return this.context=this.context||(0,n.createContext)({})}}function o(){return(0,n.useContext)(r.Context())}r.context=void 0},563:(e,t,a)=>{a.d(t,{I:()=>o,N:()=>r});var n=a(7363);class r{static Context(){return this.context=this.context||(0,n.createContext)({})}}function o(){return(0,n.useContext)(r.Context())}r.context=void 0},6541:(e,t,a)=>{a.d(t,{f:()=>l});var n=a(1246),r=a(3307),o=a(7363);function l({defaultValues:e,handleSave:t,i18n:a,initialHasChanges:l,trackFieldsDifferFromDefaultValues:c=[]}){const[i]=r.Z.useForm(),[s,d]=(0,o.useState)(!1),[u,m]=(0,o.useState)(l||!1),p=[],h=(0,o.useCallback)((async e=>{d(!0);try{await t(e),i.resetFields(),n.ZP.success(a.successMessage),m(!1)}catch(e){n.ZP.error(e)}finally{d(!1)}}),[i,t]),f=(0,o.useCallback)((e=>{n.ZP.error(a.validationError),e.errorFields.length&&i.getFieldInstance(e.errorFields[0].name).parentElement.scrollIntoView({behavior:"smooth",block:"center"})}),[i,a]),g=(0,o.useCallback)((()=>!u||(l&&a.unloadConfirmInitialActive?a.unloadConfirmInitialActive:a.unloadConfirm)),[u,a,l]),v=(0,o.useCallback)(((t,a)=>{if(c&&e){p.splice(0,p.length);for(const t of c)a[t]!==e[t]&&p.push(t)}m(!0)}),[c,e]);return{form:i,isBusy:s,hasChanges:u,hasTrackedFieldDifferenceToDefaultValue:e=>p.indexOf(e)>-1,onFinish:h,onFinishFailed:f,onBeforeUnload:g,onValuesChange:v}}},9631:(e,t,a)=>{function n(){return{http:{name:"HTTP Cookie",abbr:"HTTP",backgroundColor:"black"},local:{name:"Local Storage",abbr:"Local",backgroundColor:"#b3983c"},session:{name:"Session Storage",abbr:"Session",backgroundColor:"#3c99b3"},flash:{name:"Flash Local Shared Object",abbr:"Flash",backgroundColor:"#b33c3c"},indexedDb:{name:"IndexedDB",abbr:"I-DB",backgroundColor:"#4ab33c"}}}a.d(t,{X:()=>n}),a(7363)},3493:(e,t,a)=>{a.d(t,{Y:()=>l});var n=a(7363),r=a(5998),o=a.n(r);const l=({settings:e={},value:t="",onChange:a})=>{const r=(0,n.useRef)(),{codeEditor:l}=o();(0,n.useEffect)((()=>{if(l){const{codemirror:t}=l.initialize(r.current,e);t.on("change",(e=>{null==a||a(e.getValue())}))}}),[]);const c=(0,n.useCallback)((()=>{}),[]);return React.createElement("textarea",{ref:r,value:t,onChange:l?c:({target:{value:e}})=>a(e),style:{width:"100%"}})}},3558:(e,t,a)=>{a.d(t,{Z:()=>Ce});var n=a(8208),r=a(3307),o=a(7465),l=a(1839),c=a(7363),i=a(3867),s=a(2698),d=a(5217),u=a(1712),m=a(7669),p=a(9743),h=a(6711),f=a(164),g=a(3493),v=a(6541);const y={type:"http",name:"",host:"",duration:void 0,durationUnit:"y",isSessionDuration:!1,purpose:""};var R=a(194),E=a(8924),b=a(44),k=a(2065),w=a(563),C=a(433);const I=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Name"),required:!0},React.createElement(r.Z.Item,{name:"name",noStyle:!0,rules:[{required:!0,message:e("Please provide a name!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"name",widthOfRef:t,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e('Each service used should have a descriptive name that is understandable to a non-professional user. Example: "Google Analytics".')))};var O=a(1088);const Z=()=>{const{__:e}=(0,w.I)();return React.createElement(r.Z.Item,{label:e("Status"),required:!0},React.createElement(r.Z.Item,{name:"status",noStyle:!0,rules:[{required:!0,message:e("Please choose an option!")}]},React.createElement(O.ZP.Group,null,React.createElement(O.ZP.Button,{value:"publish"},e("Enabled")),React.createElement(O.ZP.Button,{value:"private"},e("Disabled")),React.createElement(O.ZP.Button,{value:"draft"},e("Draft")))),React.createElement("p",{className:"description"},e('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.')))};var S=a(9172);const x=()=>{const{__:e,serviceIsManager:t,setCookiesViaManager:a,essentialGroupId:n,groups:o,notices:{group:l}}=(0,w.I)(),i=(0,c.useRef)(),{managerLabel:s}=(0,E.Lg)(a);return React.createElement(r.Z.Item,{label:e("Group"),required:!0},React.createElement(r.Z.Item,{name:"group",noStyle:!0,rules:[{required:!0,message:e("Please provide a group!")}]},React.createElement(S.Z,null,o.map((({id:e,name:t})=>React.createElement(S.Z.Option,{key:e,value:e},t))))),React.createElement("p",{className:"description",ref:i},React.createElement(C.A,{form:"service",valueName:"group",widthOfRef:i,style:{marginBottom:3},renderDiff:e=>React.createElement(S.Z,{value:e,disabled:!0},o.map((({id:e,name:t})=>React.createElement(S.Z.Option,{key:e,value:e},t))))}),e("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.")),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:a})=>React.createElement(R.w,{notices:[{message:t&&a("group")!==n?e("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.",s):void 0,severity:"warning"},...l]}))))},_=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Provider"),required:!0},React.createElement(r.Z.Item,{name:"provider",noStyle:!0,rules:[{required:!0,message:e("Please name a provider!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"provider",widthOfRef:t,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e('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.')))},D=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Purpose")},React.createElement(r.Z.Item,{name:"purpose",noStyle:!0},React.createElement(k.Z.TextArea,{autoSize:{minRows:3}})),React.createElement("p",{className:"description",ref:t},React.createElement(C.A,{form:"service",valueName:"purpose",widthOfRef:t,renderDiff:e=>React.createElement(k.Z.TextArea,{autoSize:{minRows:3},value:e,readOnly:!0})}),e("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.")))},N=()=>{const{__:e,notices:{providerPrivacyPolicyUrl:t}}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Privacy policy of the provider"),required:!0},React.createElement(r.Z.Item,{name:"providerPrivacyPolicyUrl",noStyle:!0,rules:[{required:!0,type:"url",message:e("Please provide a valid URL!")}]},React.createElement(k.Z,null)),React.createElement("p",{className:"description",ref:a},React.createElement(C.A,{form:"service",valueName:"providerPrivacyPolicyUrl",widthOfRef:a,renderDiff:e=>React.createElement(k.Z,{value:e,readOnly:!0})}),e("Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).")),React.createElement(R.w,{notices:t}))};function P(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();const t="àáäâèéëêìíïîòóöôùúüûñç·/_,:;";for(let 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,"-")}const B=()=>{const{__:e,essentialGroupId:t,isConsentForwarding:a,isEdit:n,hasServiceByConsentForwardingUniqueName:o}=(0,w.I)(),l=(0,c.useCallback)((async(t,a)=>{const n=await o(t);if(n){if(!a)throw e("A service with the same unique name already exists.");{const e=/^(.*)-(\d+)$/;let r=t,l=n;for(;l;)r=r.match(e)?r.replace(e,((e,t,a)=>"".concat(t,"-").concat(+a+1))):"".concat(r,"-1"),l=await o(r);a(r)}}}),[o]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:o,setFieldsValue:c})=>{const i=o("group")===t,s=P(o("name"));return React.createElement(r.Z.Item,{label:e("Consent Forwarding Unique Name"),required:!0,style:{display:a?void 0:"none"}},React.createElement(r.Z.Item,{name:"consentForwardingUniqueName",noStyle:!0,validateTrigger:"onBlur",rules:[{validator:async(e,t)=>l(t||s,a&&t?void 0:e=>c({consentForwardingUniqueName:e}))}]},React.createElement(k.Z,{placeholder:n?"":s})),React.createElement("p",{className:"description"},e("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.")),i&&React.createElement(R.w,{notices:[{message:e("You can define a unique name, but essential services are automatically accepted when a consent is forwarded."),severity:"info"}]}))}))};var T=a(7421);const F=e=>{const{__:t,allowLegalBasisLegalRequirement:a}=(0,w.I)();return React.createElement(O.ZP.Group,e,React.createElement(O.ZP.Button,{value:"consent"},t("Consent (Opt-in)")),React.createElement(O.ZP.Button,{value:"legitimate-interest"},t("Legitimate interest (Opt-out)")),a&&React.createElement(O.ZP.Button,{value:"legal-requirement"},t("Compliance with a legal obligation")))},A=()=>{const{__:e,_i:t,allowLegalBasisLegalRequirement:a,essentialGroupId:n}=(0,w.I)(),o=(0,c.useRef)();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:l})=>{const c=l("group")===n;return React.createElement(r.Z.Item,{label:e("Legal basis"),required:!0},React.createElement(r.Z.Item,{name:"legalBasis",noStyle:!0,rules:[{required:!0}]},React.createElement(F,{disabled:c})),React.createElement("p",{className:"description",ref:o},React.createElement(C.A,{form:"service",valueName:"legalBasis",widthOfRef:o,style:{marginBottom:3},renderDiff:e=>React.createElement(F,{disabled:!0,value:e})}),React.createElement(T.r,{url:e("https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/")}),React.createElement("br",null),t(e('Services can be used on various legal bases according to {{aGdpr}}Art. 6 GDPR{{/aGdpr}}. "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),aGdpr:React.createElement("a",{href:e("https://gdpr-info.eu/art-6-gdpr/"),target:"_blank",rel:"noreferrer"})})),c&&!a&&React.createElement(R.w,{notices:[{message:e('Your service is currently grouped as "Essential". This group implies the legitimate interest, with the only difference that this service cannot be opted out.'),severity:"info"}]}))}))};var U=a(7818);const M=()=>{const{__:e,essentialGroupId:t,isDataProcessingInUnsafeCountries:a}=(0,w.I)(),n=(0,c.useRef)(),o=e("This service processes data in the USA or transfers data to US companies or servers");return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group||e.ePrivacyUSA!==t.ePrivacyUSA},(({getFieldValue:l})=>React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span},style:{display:a?void 0:"none"}},React.createElement(r.Z.Item,{name:"ePrivacyUSA",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",o),React.createElement("div",{style:{marginTop:10}},React.createElement(C.A,{form:"service",valueName:"ePrivacyUSA",widthOfRef:n,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",o)),noBr:!0})),l("ePrivacyUSA")&&l("group")===t&&React.createElement(R.w,{notices:[{message:e("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."),severity:"warning"}]}))))},q=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)(),a=e("This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.");return React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:"isEmbeddingOnlyExternalResources",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",a),React.createElement("div",{style:{marginTop:10},ref:t},React.createElement(C.A,{form:"service",valueName:"isEmbeddingOnlyExternalResources",widthOfRef:t,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",a)),noBr:!0})))};var V=a(3115);const L=()=>{const{__:e}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(V.C,{offset:b.Or.labelCol.span},e("General service configuration")," ",React.createElement(T.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-create-individual-cookie/")})),React.createElement(I,null),React.createElement(Z,null),React.createElement(x,null),React.createElement(_,null),React.createElement(D,null),React.createElement(N,null),React.createElement(B,null),React.createElement(A,null),React.createElement(M,null),React.createElement(q,null))};var G=a(301),H=a(3364),W=a(406),j=a(9520),z=a(9631);const $=({field:e,readOnly:t=!1})=>{const{__:a}=(0,w.I)(),n=(0,z.X)();return React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"type"],name:[e.name,"type"],rules:[{required:!0,message:a("Please provide a cookie type!")}]}),React.createElement(S.Z,{disabled:t},Object.keys(n).map((e=>React.createElement(S.Z.Option,{key:e,value:e,style:{display:"flash"===e?"none":void 0}},n[e].name)))))},Y=({field:e,readOnly:t})=>{const{__:a,_i:n}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"name"],name:[e.name,"name"],rules:[{required:!0,message:a("Please provide a technical cookie name!")}]}),React.createElement(k.Z,{disabled:t})),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.name)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.name)}},(({getFieldValue:t})=>{const r=t(["technicalDefinitions",e.name,"name"]);return[/\[/gm,[/([{]+)/gm,e=>1===e.length],/\(/gm].filter((e=>Array.isArray(e)?e[0].test(r)&&r.match(e[0]).filter(e[1]).length>0:e.test(r))).length>0&&React.createElement(R.w,{notices:[{message:n(a("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)}),severity:"warning"}]})})))};var K=a(4028);const J=({field:e,readOnly:t})=>{const{__:a,_i:n}=(0,w.I)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r,o,l;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.type)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.type)||(null===(o=t.technicalDefinitions[e.name])||void 0===o?void 0:o.host)!==(null===(l=a.technicalDefinitions[e.name])||void 0===l?void 0:l.host)}},(({getFieldValue:l})=>{const c=l(["technicalDefinitions",e.name,"type"]),i=l(["technicalDefinitions",e.name,"host"]);return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"host"],name:[e.name,"host"],rules:[{validator:(e,t)=>(["local","session","indexedDb"].indexOf(c)>-1?(0,K.C)(t):/^\.?(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/gm.test(t))||""===t&&"http"!==c?Promise.resolve():Promise.reject(a("Please provide a valid hostname!"))}]}),React.createElement(k.Z,{disabled:t})),i.startsWith("*.")&&i.length>2&&React.createElement(R.w,{notices:[{message:n(a("You are using an invalid wildcard (placeholder) syntax {{code}}*.{{/code}} to match subdomains. Use {{code}}.%s{{/code}} to include subdomains.",i.substr(2)),{code:React.createElement("code",null)}),severity:"warning"}]}))})))};var X=a(4217);const Q=({field:e,readOnly:t})=>{const{__:a}=(0,w.I)(),n=(0,c.useMemo)((()=>({s:a("second(s)"),m:a("minute(s)"),h:a("hour(s)"),d:a("day(s)"),mo:a("month(s)"),y:a("year(s)")})),[a]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>{var n,r,o,l;return(null===(n=t.technicalDefinitions[e.name])||void 0===n?void 0:n.type)!==(null===(r=a.technicalDefinitions[e.name])||void 0===r?void 0:r.type)||(null===(o=t.technicalDefinitions[e.name])||void 0===o?void 0:o.isSessionDuration)!==(null===(l=a.technicalDefinitions[e.name])||void 0===l?void 0:l.isSessionDuration)}},(({getFieldValue:l})=>{const c=l(["technicalDefinitions",e.name,"type"]),i=l(["technicalDefinitions",e.name,"isSessionDuration"]);return["local","session","indexedDb","flash"].indexOf(c)>-1?null:React.createElement(React.Fragment,null,React.createElement(r.Z.Item,(0,o.Z)({},e,{key:"isSessionDuration",fieldKey:[e.fieldKey,"isSessionDuration"],name:[e.name,"isSessionDuration"],noStyle:!0,valuePropName:"checked"}),React.createElement(X.Z,{style:{float:"left",marginTop:5},disabled:t},React.createElement(G.Z,{title:a("This cookie is active as long as the session is active")},React.createElement("span",null,a("Session"))))),React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{key:"duration",fieldKey:[e.fieldKey,"duration"],name:[e.name,"duration"],rules:[{required:!i,message:a("Please provide a valid duration!")}]}),React.createElement(k.Z,{disabled:t,min:"0",addonAfter:React.createElement(r.Z.Item,{fieldKey:[e.fieldKey,"durationUnit"],name:[e.name,"durationUnit"],noStyle:!0,rules:[{required:!0,message:a("Please provide an unit!")}]},React.createElement(S.Z,{disabled:t},Object.keys(n).map((e=>React.createElement(S.Z.Option,{key:e,value:e},n[e]))))),type:"number",style:{maxWidth:200,display:i?"none":void 0}})))}))},ee=({field:e,readOnly:t})=>React.createElement(r.Z.Item,(0,o.Z)({},e,ne,{fieldKey:[e.fieldKey,"purpose"],name:[e.name,"purpose"]}),React.createElement(k.Z.TextArea,{disabled:t,rows:1,autoSize:{maxRows:3}}));var te=a(7462),ae=a(6500);const ne={labelCol:{span:0},wrapperCol:{span:24},style:{margin:0}},re=({technicalDefinitions:e})=>{const[t]=r.Z.useForm();return React.createElement(r.Z,{form:t,initialValues:{isEmbeddingOnlyExternalResources:!1,technicalDefinitions:e}},React.createElement(le,{isDiff:!0}))},oe=(e,t)=>{const a=[],n=e.reduce(((e,{name:t,host:n,duration:r,durationUnit:o,isSessionDuration:l,type:c,purpose:i})=>{const s="".concat(c,"/").concat(t,"/").concat(n);return e[s]="".concat(r,"/").concat(o,"/").concat(l,"/").concat(c,"/").concat(i),a.push(s),e}),{}),r=t.map((e=>{const{name:t,host:r,duration:o,durationUnit:l,isSessionDuration:c,type:i,purpose:s}=e,d="".concat(i,"/").concat(t,"/").concat(r),u=n[d];return void 0===u||u==="".concat(o,"/").concat(l,"/").concat(c,"/").concat(i,"/").concat(s)?void 0:{...e,position:a.indexOf(d)}})).filter(Boolean),o=e.map((({type:e,name:t,host:a})=>"".concat(e,"/").concat(t,"/").concat(a))),l=t.map(((e,t)=>{const{type:a,name:n,host:r}=e;return o.includes("".concat(a,"/").concat(n,"/").concat(r))?void 0:{...e,position:t}})).filter(Boolean);return l.length||r.length?{added:l,modified:r}:void 0},le=({isDiff:e=!1})=>{const{__:t,_i:a}=(0,w.I)(),{SortableBodyConnected:n,SortableItem:l,DragHandle:i}=function(){const e=(0,c.useRef)(),{DragHandle:t,SortableItem:a,SortableBody:n}=(0,c.useMemo)((()=>({DragHandle:(0,ae.W6)((()=>React.createElement(te.Z,{style:{cursor:"grab",color:"#999",marginTop:5},className:"button button-small button-link"}))),SortableItem:(0,ae.W8)((e=>React.createElement("tr",e))),SortableBody:(0,ae.JN)((t=>React.createElement("tbody",(0,o.Z)({ref:e},t))))})),[]),r=(0,c.useCallback)((({node:e,helper:t})=>{e.childNodes.forEach(((e,a)=>{t.childNodes[a].style.width="".concat(e.offsetWidth,"px")}))}),[]);return{tbodyRef:e,DragHandle:t,SortableItem:a,SortableBody:n,SortableBodyConnected:({onSortEnd:t,children:a})=>React.createElement(n,{useDragHandle:!0,onSortEnd:({oldIndex:e,newIndex:a})=>t(e,a),onSortStart:r,helperContainer:()=>e.current},a),handleSortStart:r}}();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isEmbeddingOnlyExternalResources!==t.isEmbeddingOnlyExternalResources||e.technicalDefinitions.length!==t.technicalDefinitions.length},(({getFieldValue:o})=>o("isEmbeddingOnlyExternalResources")?null:React.createElement(r.Z.List,{name:"technicalDefinitions"},((r,{add:o,remove:c,move:s})=>React.createElement("div",null,!e&&React.createElement(V.C,{offset:b.Or.labelCol.span,description:a(t("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 according to {{aEprivacy}}ePrivacy Directive (Directive 2009/136/EC) Art. 66{{/aEprivacy}} you have to inform your visitors not only about (HTTP) cookies, but also about cookie-like information."),{aEprivacy:React.createElement("a",{href:t("https://devowl.io/go/eu-directive-2009-136-ec"),target:"_blank",rel:"noreferrer"})})},t("Technical cookie information")),React.createElement("table",{className:"wp-list-table widefat fixed striped table-view-list",style:{marginBottom:25}},React.createElement("thead",null,React.createElement("tr",null,React.createElement("td",{width:45,align:"right"}," "),React.createElement("td",{width:150},t("Cookie type")),React.createElement("td",null,React.createElement(G.Z,{title:a(t("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,t("Technical cookie name")," ",React.createElement(H.Z,null)))),React.createElement("td",null,React.createElement(G.Z,{title:t("Every cookie is associated to a domain or hostname.")},React.createElement("span",null,t("Technical cookie host")," ",React.createElement(H.Z,null)))),React.createElement("td",{width:290},React.createElement(G.Z,{title:t("A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.")},React.createElement("span",null,t("Cookie duration")," ",React.createElement(H.Z,null)))),React.createElement("td",null,React.createElement(G.Z,{title:t("Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.")},React.createElement("span",null,t("Purpose")," ",React.createElement(H.Z,null)))),React.createElement("td",{width:70,align:"right"}," "))),React.createElement(n,{onSortEnd:s},r.map(((t,a)=>React.createElement(l,{key:t.key,index:a},React.createElement("td",null,r.length>1&&!e?React.createElement(i,null):void 0),React.createElement("td",null,React.createElement($,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(Y,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(J,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(Q,{field:t,readOnly:e})),React.createElement("td",null,React.createElement(ee,{field:t,readOnly:e})),React.createElement("td",null,r.length>1&&!e?React.createElement("a",{className:"button button-small",onClick:()=>{c(t.name)}},React.createElement(W.Z,null)):null))))),!e&&React.createElement("tfoot",null,React.createElement("tr",null,React.createElement("td",{colSpan:7,align:"right"},React.createElement("a",{className:"button button-primary alignright",onClick:()=>{o(y)}},React.createElement(j.Z,null)," ",t("Add another cookie definition")),React.createElement(C.A,{useModal:!0,form:"service",valueName:"technicalDefinitions",noBr:!0,style:{marginTop:4},difference:oe,apply:({added:e,modified:t},a,n)=>{const r=n;t.forEach((({position:e,...t})=>{r[e]=t})),e.forEach((({position:e,...t})=>{r.splice(e,0,t)})),a({technicalDefinitions:r})},newValueText:!1,renderDiff:(e,{added:a,modified:n})=>React.createElement(React.Fragment,null,a.length>0&&React.createElement(React.Fragment,null,React.createElement("p",null,React.createElement("strong",null,t("Missing entries:"))),React.createElement(re,{technicalDefinitions:a})),n.length>0&&React.createElement(React.Fragment,null,React.createElement("p",null,React.createElement("strong",null,t("Modified entries:"))),React.createElement(re,{technicalDefinitions:n})))}))))))))))},ce=()=>{const{__:e,setCookiesViaManager:t,serviceIsManager:a,hasManager:n}=(0,w.I)(),{managerLabel:o}=(0,E.Lg)(t);return"none"!==t&&!a&&React.createElement(r.Z.Item,{label:e("Event names for %s",o),required:!0},React.createElement(r.Z.Item,{name:"tagManagerOptInEventName",noStyle:!0},React.createElement(k.Z,{addonBefore:e("Opt-in"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement(r.Z.Item,{name:"tagManagerOptOutEventName",noStyle:!0},React.createElement(k.Z,{addonBefore:e("Opt-out"),style:{maxWidth:400,marginRight:10,marginBottom:5}})),React.createElement("p",{className:"description"},React.createElement(T.r,{url:e("https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/")})),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.tagManagerOptInEventName!==t.tagManagerOptInEventName||e.tagManagerOptOutEventName!==t.tagManagerOptOutEventName},(({getFieldValue:t})=>{const a=t("tagManagerOptInEventName"),r=t("tagManagerOptOutEventName");return(a.length>0||r.length>0)&&!n&&React.createElement(R.w,{notices:[{message:e("You have not yet defined a %s service. To use event names, you must create a %s service.",o,o),severity:"warning"}]})})))},ie=/{{([A-Za-z0-9_]+)}}/gm,se=["codeOptIn","codeOptOut","codeOnPageLoad"],de=()=>{const{__:e,dynamicFields:t}=(0,w.I)();return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>se.map((a=>e[a]!==t[a])).filter(Boolean).length>0},(({getFieldValue:a})=>{const n=se.map((e=>a(e))).join(""),o=Array.from(n.matchAll(ie)).map((([,e])=>e)),l=[];return o?o.map((a=>{const n=["codeDynamics",a],{label:o,invalidMessage:c=e("Please fill in a value!"),example:i,expression:s,hint:d}=(null==t?void 0:t.find((e=>e.name===a)))||{};return l.indexOf(a)>-1?null:(l.push(a),React.createElement(r.Z.Item,{key:a,label:o||React.createElement("code",null,a),required:!0},React.createElement(r.Z.Item,{noStyle:!0,name:n,rules:[{required:!0,pattern:s?new RegExp(s):void 0,message:c}]},React.createElement(k.Z,{placeholder:i})),React.createElement(R.w,{notices:[{message:d,severity:"info"}]})))})):null}))},ue=({name:e})=>{const{__:t,_i:a,skipIfActiveComponents:n}=(0,w.I)(),o=(0,c.useMemo)((()=>Object.keys(n)),[n]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(t,a)=>t[e]!==a[e]},(({getFieldValue:r})=>{const l=[...r(e).matchAll(/\s+(skip-if-active=")([^"]+)(")/gm)].map((([,,e])=>e.split(",").filter((e=>o.indexOf(e)>-1)))).flat(),c=l.filter(((e,t)=>l.indexOf(e)===t));return 0===c.length?null:React.createElement("div",{style:{marginTop:10}},React.createElement(R.w,{notices:[{message:a(t("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,c.map((e=>n[e])).join(", ")),i:React.createElement("i",null)}),severity:"info"}]}))}))},me=({name:e})=>{const{__:t,_i:a,isPro:n,setCookiesViaManager:o,serviceIsManager:l}=(0,w.I)(),i=(0,c.useRef)(),{managerLabel:s}=(0,E.Lg)(o),d=a(t("Only run this script if the user has {{u}}not{{/u}} allowed to use %s",s),{u:React.createElement("u",null)});return"none"!==o&&!l&&n?React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:e,valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",d),React.createElement("div",{style:{marginTop:10},ref:i},React.createElement(C.A,{form:"service",valueName:e,widthOfRef:i,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",d)),noBr:!0}))):null},pe=()=>{const{__:e,renderCodeMirror:t}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{label:e("Code executed on opt-in")},React.createElement(r.Z.Item,{name:"codeOptIn",noStyle:!0},t()),React.createElement(ue,{name:"codeOptIn"}),React.createElement("div",{ref:a},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOptIn",widthOfRef:a,noBr:!0}))),React.createElement(me,{name:"executeCodeOptInWhenNoTagManagerConsentIsGiven"}))},he=()=>{const{__:e}=(0,w.I)(),t=(0,c.useRef)(),a=e("Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.");return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.isEmbeddingOnlyExternalResources!==t.isEmbeddingOnlyExternalResources},(({getFieldValue:e})=>e("isEmbeddingOnlyExternalResources")?null:React.createElement(r.Z.Item,{required:!0,wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span}},React.createElement(r.Z.Item,{name:"deleteTechnicalDefinitionsAfterOptOut",valuePropName:"checked",noStyle:!0},React.createElement(U.Z,null)),React.createElement("span",null,"  ",a),React.createElement("div",{style:{marginTop:10},ref:t},React.createElement(C.A,{form:"service",valueName:"deleteTechnicalDefinitionsAfterOptOut",widthOfRef:t,renderDiff:e=>React.createElement(React.Fragment,null,React.createElement(U.Z,{disabled:!0,checked:e}),React.createElement("span",null,"  ",a)),noBr:!0})))))},fe=()=>{const{__:e,renderCodeMirror:t,essentialGroupId:a}=(0,w.I)(),n=(0,c.useRef)(),o=(0,c.useCallback)((e=>({opacity:e?void 0:0,height:e?void 0:0,margin:e?void 0:0})),[]);return React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:l})=>{const c=l("group")!==a;return React.createElement(React.Fragment,null,React.createElement(r.Z.Item,{label:e("Code executed on opt-out"),style:o(c)},React.createElement(r.Z.Item,{name:"codeOptOut",noStyle:!0},t()),React.createElement(ue,{name:"codeOptOut"}),React.createElement("div",{ref:n},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOptOut",widthOfRef:n,noBr:!0}))),c&&React.createElement(React.Fragment,null,React.createElement(me,{name:"executeCodeOptOutWhenNoTagManagerConsentIsGiven"}),React.createElement(he,null)))}))},ge=()=>{const{__:e,renderCodeMirror:t}=(0,w.I)(),a=(0,c.useRef)();return React.createElement(r.Z.Item,{label:e("Code executed on page load")},React.createElement(r.Z.Item,{name:"codeOnPageLoad",noStyle:!0},t()),React.createElement(ue,{name:"codeOnPageLoad"}),React.createElement("div",{ref:a},React.createElement(C.A,{style:{marginTop:10},form:"service",valueName:"codeOnPageLoad",widthOfRef:a,noBr:!0})))},ve=()=>{const{__:e,serviceGotScanned:t,setCookiesViaManager:a,contentBlockerTemplates:n,notices:{technicalHandling:o},defaultPresetValues:l}=(0,w.I)(),c=(null==l?void 0:l.name)||"",{managerLabel:i}=(0,E.Lg)(a),s=[...o,t&&{message:n.length>0?e('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.',c):e("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.",c),severity:"warning"}].filter(Boolean).filter((({message:e})=>e));return React.createElement(React.Fragment,null,React.createElement(V.C,{offset:b.Or.labelCol.span,description:"none"===a?e("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."):e("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.",i)},e("Technical handling")),React.createElement(ce,null),React.createElement(de,null),s.length>0&&React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span,span:b.Or.wrapperCol.span},style:{marginBottom:0}},React.createElement(R.w,{notices:s})),React.createElement(pe,null),React.createElement(fe,null),React.createElement(ge,null))},ye=()=>{const{__:e,essentialGroupId:t,allowContentBlockerCreation:a,contentBlockerTemplates:n,notices:{createContentBlocker:o}}=(0,w.I)();return a&&(null==n?void 0:n.length)>0&&React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span}},React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:a})=>React.createElement(r.Z.Item,{noStyle:!0,name:"createContentBlocker",valuePropName:"checked",dependencies:["group"],rules:[{validator:(n,r)=>a("group")===t&&r?Promise.reject(e('Services that should be associated with a content blocker cannot be in the "Essential" group, because it cannot be rejected.')):Promise.resolve()}]},React.createElement(X.Z,null,e("Create content blocker for this service."))))),React.createElement(r.Z.Item,{noStyle:!0,shouldUpdate:(e,t)=>e.createContentBlocker!==t.createContentBlocker},(({getFieldValue:t})=>React.createElement(React.Fragment,null,t("createContentBlocker")&&React.createElement(React.Fragment,null,n.length>1&&React.createElement(r.Z.Item,{noStyle:!0,name:"createContentBlockerId",rules:[{required:!0,message:e("Please select a template for the Content Blocker!")}]},React.createElement(S.Z,{style:{maxWidth:500,marginTop:10,display:"block"},placeholder:e("Select Content Blocker template...")},n.map((({identifier:e,name:t,subHeadline:a})=>React.createElement(S.Z.Option,{key:e,value:e},"".concat(t).concat(a?" (".concat(a,")"):""))))))),React.createElement(R.w,{notices:[{message:t("createContentBlocker")?e("Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker."):void 0,severity:"info"},...o]})))))},Re=()=>{const{__:e,presetCheck:t,isTemplateUpdate:a}=(0,w.I)();return!(!t&&!a)&&React.createElement(r.Z.Item,{name:"presetCheck",valuePropName:"checked",required:!0,rules:[{type:"boolean",required:!0,transform:e=>e||void 0,message:e("Please confirm that you have checked the contents of the service.")}],wrapperCol:{offset:b.Or.labelCol.span}},React.createElement(X.Z,null,e("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(T.r,{url:e("https://devowl.io/knowledge-base/is-real-cookie-banner-legally-compliant/")})))};var Ee=a(987),be=a(5941);const ke=()=>{const{__:e,_i:t}=(0,w.I)(),a=(0,c.useRef)(),n=Ee.x.Context();return React.createElement(n.Provider,{value:{__:e,_i:t}},React.createElement("div",{ref:a},React.createElement(be.j,{containerRef:a,form:"service"}),React.createElement(L,null),React.createElement(le,null),React.createElement(ve,null),React.createElement(ye,null),React.createElement(r.Z.Item,{className:"rcb-form-sticky-submit",labelCol:{span:0},wrapperCol:{span:24}},React.createElement(Re,null),React.createElement(r.Z.Item,{wrapperCol:{offset:b.Or.labelCol.span}},React.createElement("div",{style:{textAlign:"center"}},React.createElement("input",{type:"submit",className:"button button-primary",value:e("Save")}))))))};var we=a(4161);const Ce=(0,i.Pi)((({preset:e,overwriteAttributes:t,navigateAfterCreation:a=!0,scrollToTop:i=!0,onCreated:k})=>{var C,I,O,Z,S,x,_;const{routeGroup:{group:D,link:N},cookie:B,id:T,queried:F,fetched:A}=(()=>{const e=(0,f.R)(),{group:t}=e,{params:a}=(0,h.useRouteMatch)(),n=isNaN(+a.cookie)?0:+a.cookie,r=!!a.cookie,o=t.cookies.entries.get(+a.cookie)||new s.U(t.cookies,{id:0});return{routeGroup:e,cookie:o,id:n,queried:r,fetched:0!==o.key}})(),U=(0,h.useHistory)(),{cookieStore:M,optionStore:{tcf:q,ePrivacyUSA:V,consentForwarding:L,setCookiesViaManager:G,hasManager:H,others:{useEncodedStringForScriptInputs:W,isPro:j,activePlugins:z}}}=(0,p.m)(),{essentialGroup:$}=M,Y=(null==B?void 0:B.presetModel)||M.presetsCookie.get(null==e?void 0:e.identifier),K=M.groups.sortedGroups.map((({data:{id:e,name:t}})=>({id:e,name:t}))),J=!!a,X=(null==Y?void 0:Y.data.contentBlockerTemplates)||[],Q={...null==Y?void 0:Y.attributes,...t},{form:ee,isBusy:te,defaultValues:ae,onFinish:ne,onFinishFailed:re,onBeforeUnload:oe,onValuesChange:le,contextValue:ce}=function(e){var t,a;const{setCookiesViaManager:n,selectedGroup:o,groups:l,contentBlockerTemplates:i,allowContentBlockerCreation:s,shouldUncheckContentBlockerCheckbox:d,preset:u,attributes:m,__:p,_i:h}=e,f=m?m.group?(null===(t=l.filter((({name:e})=>e===m.group)))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.id)||"preset-group-not-found":void 0:o,g={name:(null==m?void 0:m.name)||"",status:"publish",group:"number"==typeof f&&f||void 0,purpose:(null==m?void 0:m.purpose)||"",provider:(null==m?void 0:m.provider)||"",providerPrivacyPolicyUrl:(null==m?void 0:m.providerPrivacyPolicyUrl)||"",consentForwardingUniqueName:(null==m?void 0:m.consentForwardingUniqueName)||(null==u?void 0:u.identifier)||"",isEmbeddingOnlyExternalResources:(null==m?void 0:m.isEmbeddingOnlyExternalResources)||!1,legalBasis:(null==m?void 0:m.legalBasis)||"consent",ePrivacyUSA:(null==m?void 0:m.ePrivacyUSA)||!1,technicalDefinitions:null!=m&&m.technicalDefinitions?JSON.parse(JSON.stringify(m.technicalDefinitions)):[y],codeDynamics:(null==m?void 0:m.codeDynamics)||{},tagManagerOptInEventName:(null==m?void 0:m.tagManagerOptInEventName)||"",tagManagerOptOutEventName:(null==m?void 0:m.tagManagerOptOutEventName)||"",codeOptIn:(null==m?void 0:m.codeOptIn)||"",executeCodeOptInWhenNoTagManagerConsentIsGiven:(null==m?void 0:m.executeCodeOptInWhenNoTagManagerConsentIsGiven)||!1,codeOptOut:(null==m?void 0:m.codeOptOut)||"",codeOnPageLoad:(null==m?void 0:m.codeOnPageLoad)||"",executeCodeOptOutWhenNoTagManagerConsentIsGiven:(null==m?void 0:m.executeCodeOptOutWhenNoTagManagerConsentIsGiven)||!1,deleteTechnicalDefinitionsAfterOptOut:(null==m?void 0:m.deleteTechnicalDefinitionsAfterOptOut)||!1,createContentBlocker:"boolean"==typeof(null==m?void 0:m.createContentBlocker)?m.createContentBlocker:i.length>0&&s&&!d,createContentBlockerId:null==m?void 0:m.createContentBlockerId,presetCheck:!u},b=(0,v.f)({...e,defaultValues:g,i18n:{successMessage:p("You have successfully saved the service."),validationError:p("The service could not be saved due to missing/invalid form values."),unloadConfirm:p('You have unsaved changes. If you click on "confirm", your changes will be discarded.')}}),k=(0,c.useCallback)(((e,t)=>{b.onValuesChange(e,t);const{technicalDefinitions:a}=e,n=(a||[]).filter(Boolean);if(1===n.length){const e=Object.keys(n[0]);1===e.length&&["isSessionDuration","type"].indexOf(e[0])>-1&&setTimeout((()=>b.form.validateFields()),100)}}),[b.onValuesChange,b.form]),{serviceIsManager:w}=(0,E.Lg)(n,null==u?void 0:u.identifier);return{...b,onValuesChange:k,useGroup:f,defaultValues:g,contextValue:{__:p,_i:h,setCookiesViaManager:n,serviceIsManager:w,presetCheck:!!u,defaultPresetValues:u?g:{},allowLegalBasisLegalRequirement:"real-cookie-banner"===(null==u?void 0:u.identifier),groups:l,allowContentBlockerCreation:s,contentBlockerTemplates:i,notices:{group:[{message:"preset-group-not-found"===f?p("The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.",m.group):void 0,severity:"warning"},{message:React.createElement(r.Z.Item,{noStyle:!0,key:"groupDiff",shouldUpdate:(e,t)=>e.group!==t.group},(({getFieldValue:e})=>React.createElement(R.w,{notices:[{message:u&&"number"==typeof f&&b.hasTrackedFieldDifferenceToDefaultValue("group")&&e("group")!==f?p("The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?"):void 0,severity:"warning"}]})))}]}}}}({__:d.__,_i:d._i,attributes:Q,selectedGroup:D.key,trackFieldsDifferFromDefaultValues:["group"],setCookiesViaManager:G,groups:K,preset:Y?{identifier:Y.data.identifier,version:Y.data.version}:void 0,allowContentBlockerCreation:J,shouldUncheckContentBlockerCheckbox:null==Q?void 0:Q.shouldUncheckContentBlockerCheckbox,contentBlockerTemplates:X,handleSave:async t=>{try{var n;const o=e=>W?"encodedScript:".concat(function(e){return btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(t,16)))))}(e)):e,{name:l,status:c,purpose:i,isEmbeddingOnlyExternalResources:d,technicalDefinitions:u,group:m,codeDynamics:p,createContentBlocker:h,createContentBlockerId:f,consentForwardingUniqueName:g,codeOptIn:v,codeOptOut:y,codeOnPageLoad:R,...E}=t,b={...E,codeOptIn:o(v),codeOptOut:o(y),codeOnPageLoad:o(R),isEmbeddingOnlyExternalResources:d,codeDynamics:JSON.stringify(p),technicalDefinitions:JSON.stringify(d?se.technicalDefinitions:u),consentForwardingUniqueName:g||P(l),presetId:null==Y?void 0:Y.data.identifier,presetVersion:null==Y?void 0:Y.data.version};if(delete b.presetCheck,F)B.setName(l),B.setStatus(c),B.setPurpose(i),B.setMeta(b),B.setGroup(m),await B.patch();else{const e=M.groups.entries.get(m),t=new s.U(e.cookies,{title:{rendered:l},content:{rendered:i,protected:!1},status:c,meta:b});await t.persist(),null==k||k(t)}const w="#rcb-services-with-empty-privacy-policy-notice";var r;null===(n=document.querySelector("".concat(w,' li[data-id="').concat(T,'"]')))||void 0===n||n.classList.add("hidden"),document.querySelectorAll("".concat(w," > ul > li:not(.hidden)")).length||null===(r=document.querySelector(w))||void 0===r||r.remove(),a&&setTimeout((()=>h?U.push("/blocker/new?force=".concat(f||e.identifier,"&cookieCreationPrompt=1").concat("string"==typeof a?"&navigateAfterCreation=".concat(encodeURIComponent(a)):"")):"string"==typeof a?window.location.href=a:U.push("".concat(N.slice(1),"/").concat(m))),0)}catch(e){throw e.responseJSON.message}}}),ie=(null==Q?void 0:Q.createContentBlockerNotice)||(null==Y||null===(C=Y.attributes)||void 0===C?void 0:C.createContentBlockerNotice),se=A?{name:B.data.title.raw,status:B.data.status,group:D.key||void 0,purpose:B.data.content.raw,provider:B.data.meta.provider,providerPrivacyPolicyUrl:B.data.meta.providerPrivacyPolicyUrl,consentForwardingUniqueName:B.data.meta.consentForwardingUniqueName||B.data.slug,isEmbeddingOnlyExternalResources:B.data.meta.isEmbeddingOnlyExternalResources,legalBasis:B.data.meta.legalBasis,ePrivacyUSA:B.data.meta.ePrivacyUSA,technicalDefinitions:JSON.parse(JSON.stringify(B.technicalDefinitions||"[]")),codeDynamics:JSON.parse(JSON.stringify(B.codeDynamics||"{}")),tagManagerOptInEventName:B.data.meta.tagManagerOptInEventName,tagManagerOptOutEventName:B.data.meta.tagManagerOptOutEventName,codeOptIn:B.data.meta.codeOptIn,executeCodeOptInWhenNoTagManagerConsentIsGiven:B.data.meta.executeCodeOptInWhenNoTagManagerConsentIsGiven,codeOptOut:B.data.meta.codeOptOut,executeCodeOptOutWhenNoTagManagerConsentIsGiven:B.data.meta.executeCodeOptOutWhenNoTagManagerConsentIsGiven,codeOnPageLoad:B.data.meta.codeOnPageLoad,deleteTechnicalDefinitionsAfterOptOut:B.data.meta.deleteTechnicalDefinitionsAfterOptOut,createContentBlocker:!1,createContentBlockerId:void 0,presetCheck:void 0}:ae;(0,c.useEffect)((()=>{F&&!A&&([...M.groups.entries.values()].filter((({cookies:e})=>e.entries.get(T)))[0]||D).cookies.getSingle({params:{id:T,context:"edit"}})}),[F,A]),(0,c.useEffect)((()=>{Y&&!Y.attributes&&Y.fetchAttributes()}),[Y]),(0,c.useEffect)((()=>{!Y||Y.attributes||Y.busy||Y.fetchAttributes()}),[Y]),(0,c.useEffect)((()=>{i&&(0,u.X)(0)}),[]);const de=(0,c.useCallback)((async e=>{try{return(await(0,m.W)({location:we.V,params:{slug:e}})).filter((e=>e.ID!==B.key)).length>0}catch(e){return!1}}),[B.key]),ue=w.N.Context();if(F&&!A||Y&&!Y.attributes)return React.createElement(l.Z,{active:!0,paragraph:{rows:8}});const me=!(!A||!Y)&&(null===(I=B.data)||void 0===I||null===(O=I.meta)||void 0===O?void 0:O.presetVersion)!==Y.data.version;return React.createElement(ue.Provider,{value:{...ce,isEdit:A,isPro:j,isTemplateUpdate:me,isTcf:q,isDataProcessingInUnsafeCountries:V,isConsentForwarding:L,hasServiceByConsentForwardingUniqueName:de,presetCheck:!!Y&&(me||!A),serviceGotScanned:!(null==Y||!Y.data.scanned||null===(Z=Y.attributes)||void 0===Z||!Z.codeOptIn||-1!==["wordpress-comments"].indexOf(Y.data.identifier)),hasManager:H>0,dynamicFields:(null==Q?void 0:Q.dynamicFields)||(null==Y||null===(S=Y.attributes)||void 0===S?void 0:S.dynamicFields),essentialGroupId:$.key,skipIfActiveComponents:z,renderCodeMirror:()=>React.createElement(g.Y,{settings:window.cm_settings}),notices:{group:[...ce.notices.group,{message:(null==Q?void 0:Q.groupNotice)||(null==Y||null===(x=Y.attributes)||void 0===x?void 0:x.groupNotice),severity:"info"}],providerPrivacyPolicyUrl:[{message:A||null==Y||!Y.attributes||se.providerPrivacyPolicyUrl?void 0:(0,d.__)('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href="%s" target="_blank">set the corresponding page in your settings.</a>',"#/settings"),severity:"warning"}],createContentBlocker:[{message:ie,severity:"info"}],technicalHandling:[{message:(null==Q?void 0:Q.technicalHandlingNotice)||(null==Y||null===(_=Y.attributes)||void 0===_?void 0:_.technicalHandlingNotice),severity:"info"}]}}},React.createElement(n.Z,{spinning:te||(null==Y?void 0:Y.busy)||!1},React.createElement(h.Prompt,{message:oe}),React.createElement(r.Z,(0,o.Z)({name:"cookie-".concat(D.key,"-").concat(T),form:ee},b.Or,{initialValues:se,onFinish:ne,onFinishFailed:re,onValuesChange:le}),React.createElement(ke,null))))}))},4121:(e,t,a)=>{a.d(t,{u:()=>s});var n=a(3404),r=a(7759),o=a(3751),l=a(7363),c=a(9743),i=a(5217);function s(){const{optionStore:{others:{assetsUrl:e}}}=(0,c.m)(),t="".concat(e,"cookie-experts.svg"),a=(0,l.useCallback)((()=>{o.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,i.__)("Let our team help you with the setup")),React.createElement(n.Z,null,React.createElement(r.C.Group,{size:"large"},React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/jan.karres.jpeg"}),React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/mario.guenter.jpeg"}),React.createElement(r.C,{src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/cookie-experts-faces/matthias.guenter.jpeg"}))),React.createElement("a",{href:(0,i.__)("https://devowl.io/wordpress-real-cookie-banner/cookie-experts/"),target:"_blank",rel:"noreferrer",className:"button button-large button-primary"},(0,i.__)("Get help from Cookie Experts")),React.createElement("p",null,(0,i.__)("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,i.__)("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:()=>o.Z.destroyAll()},(0,i.__)("Close")))})}),[]);return{logoUrl:t,openDialog:a}}},164:(e,t,a)=>{a.d(t,{R:()=>c});var n=a(6711),r=a(9743),o=a(7363),l=a(9532);const c=()=>{const{params:{cookieGroup:e}}=(0,n.useRouteMatch)(),{cookieStore:t}=(0,r.m)(),a=isNaN(+e)?0:+e,c=!!e,i=t.groups.entries.get(a)||new l.O(t.groups,{id:0}),s=(0,o.useCallback)((({key:e})=>"#/cookies/".concat(i.key,"/edit/").concat(e)),[i]),d="#/cookies/".concat(i.key,"/new");return{group:i,id:a,queried:c,fetched:0!==i.key,link:"#/cookies",editLink:s,addCookieLink:d}}}}]);
2
+ //# sourceMappingURL=932.lite.js.map?ver=cba370a1023bd0e9d17c
public/dist/932.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"932.lite.js?ver=4223cc985ee59bf46502","mappings":"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","sources":["webpack:///../../frontend-packages/headless-content-unblocker/src/utils/isUrl.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/common/learnMoreTag.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/common/notices.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/headline.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/valueDifferFromPresetNotice.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/waitObject.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/valueDifferFromPresetTag.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/contexts/formContentBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/contexts/formService.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormHandler.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///./src/public/ts/components/codemirror.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/status.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/group.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/provider.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/purpose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/providerPrivacyPolicyUrl.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/utils/slugify.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/consentForwardingUniqueName.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/legalBasis.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/dataProcessingInUnsafeCountries.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/isEmbeddingOnlyExternalResources.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/type.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/host.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/utils/isHost.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/duration.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/purpose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/table.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormServiceTechnicalDefinitionsTable.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/tagManagerEventName.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/dynamicField.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/skipIfActiveNotice.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/executeCodeWhenNoTagManagerConsentIsGiven.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOptIn.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/deleteTechnicalDefinitionsAfterOptOut.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOpOut.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOnPageLoad.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/createContentBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/presetCheck.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/form.tsx","webpack:///./src/public/ts/components/config/cookies/form.tsx","webpack:///./src/public/ts/hooks/useRouteCookie.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormServiceHandler.tsx","webpack:///./src/public/ts/utils/base64EncodeUnicodeSafe.tsx","webpack:///./src/public/ts/hooks/useCookieExpertsModal.tsx","webpack:///./src/public/ts/hooks/useRouteCookieGroup.tsx"],"sourcesContent":["/**\n * Check if a given string is an URL.\n *\n * @see https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php\n */\nfunction isUrl(url) {\n const pattern = /^(?:(?:https?|ftp):\\/\\/)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:\\/\\S*)?$/;\n return !!pattern.test(url);\n}\n\nexport { isUrl };","import _Tag from \"antd/es/tag\";\nimport { QuestionCircleFilled } from \"@ant-design/icons\";\nimport { useI18n } from \"../../contexts\";\n\nconst LearnMoreTag = ({\n url,\n style = undefined,\n label\n}) => {\n const {\n __\n } = useI18n();\n const useStyle = {\n cursor: \"pointer\",\n ...style\n };\n return /*#__PURE__*/React.createElement(_Tag, {\n style: useStyle,\n onClick: () => window.open(url, \"_blank\")\n }, /*#__PURE__*/React.createElement(QuestionCircleFilled, null), \" \", label || __(\"Learn more\"));\n};\n\nexport { LearnMoreTag };","const Notices = ({\n notices\n}) => /*#__PURE__*/React.createElement(React.Fragment, null, notices === null || notices === void 0 ? void 0 : notices.map(({\n message,\n severity\n}) => message ? severity ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-\".concat(severity, \" below-h2 notice-alt\"),\n key: message\n}, typeof message === \"string\" ? /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: message\n }\n}) : /*#__PURE__*/React.createElement(\"p\", null, message)) : message : null));\n\nexport { Notices };","import _Form from \"antd/es/form\";\n\nconst FormHeadline = ({\n children,\n description,\n extra,\n offset\n}) => /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n 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), extra);\n\nexport { FormHeadline };","export const FormServiceLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nexport * from \"./fields\";\nexport * from \"./form\";","import _Form from \"antd/es/form\";\nimport _Tag from \"antd/es/tag\";\nimport { useCallback, useLayoutEffect, useState } from \"react\";\nimport { useFormContentBlocker, useFormService } from \"../../contexts\";\nimport { FormServiceLayout, FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT } from \".\";\nimport { Notices } from \"../common\";\nimport { waitObject } from \"@devowl-wp/cookie-consent-web-client\";\nconst FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME = \"rcb-value-differ-from-preset-pseudo\";\n\nconst FormValueDifferFromPresetNotice = ({\n containerRef,\n form\n}) => {\n const {\n __,\n _i,\n isTemplateUpdate\n } = form === \"service\" ? useFormService() : useFormContentBlocker();\n const [pseudoElements, setPseudoElements] = useState([]);\n const [applied, setApplied] = useState(false);\n const updatePseudoElements = useCallback(() => {\n if (containerRef.current) {\n const p = [...containerRef.current.querySelectorAll(\".\".concat(FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME))];\n setPseudoElements(p);\n return p;\n }\n\n return [];\n }, [applied]);\n useLayoutEffect(() => {\n const interval = setInterval(updatePseudoElements, 800);\n waitObject(() => containerRef.current, 100).then(updatePseudoElements);\n document.addEventListener(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT, updatePseudoElements);\n return () => {\n clearInterval(interval);\n document.removeEventListener(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT, updatePseudoElements);\n };\n }, []);\n\n const handleApply = () => {\n const p = updatePseudoElements();\n p.forEach(p => p.click());\n setPseudoElements([]);\n setApplied(true);\n };\n\n return isTemplateUpdate && (pseudoElements.length > 0 || applied) ? /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n marginBottom: 0\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n severity: \"info\",\n message: /*#__PURE__*/React.createElement(React.Fragment, null, _i(__(\"The blocker template has been updated to provide current legal and technical information. Fields with outdated values or values you manually adjusted are marked with {{tag/}}. You can apply all changes with one click!\"), {\n tag: /*#__PURE__*/React.createElement(_Tag, {\n color: \"blue\"\n }, __(\"Differing from template\"))\n }), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"a\", {\n className: \"button \".concat(pseudoElements.length === 0 && applied ? \"button-disabled\" : \"\"),\n onClick: handleApply,\n style: {\n marginTop: 5\n }\n }, pseudoElements.length === 0 && applied ? __(\"Applied!\") : __(\"Use default values\")))\n }]\n })) : null;\n};\n\nexport { FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME, FormValueDifferFromPresetNotice };","/**\n * Wait for a given object which is calculated through a callback.\n */\nasync function waitObject(getObject, delayNextCheck = 500, maxTries = 0) {\n let i = 0;\n\n while (!getObject()) {\n if (maxTries > 0 && i >= maxTries) {\n return undefined;\n }\n\n await new Promise(r => setTimeout(r, delayNextCheck));\n i++;\n }\n\n return getObject();\n}\n\nexport { waitObject };","import _Form from \"antd/es/form\";\nimport _Popover from \"antd/es/popover\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Modal from \"antd/es/modal\";\nimport _Tag from \"antd/es/tag\";\nimport { useState } from \"react\";\nimport { useFormContentBlocker, useFormService } from \"../../contexts\";\nimport { FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME } from \".\";\nimport Diff from \"react-code-diff-lite\";\nconst FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT = \"RCB/FormValueDifferFromPresetTag/Apply\";\n\nfunction FormValueDifferFromPresetTag({\n useModal,\n form,\n valueName,\n difference,\n apply,\n newValueText,\n renderDiff,\n widthOfRef,\n placement = \"bottomLeft\",\n noBr = false,\n className,\n style,\n popoverProps\n}) {\n const {\n __,\n defaultPresetValues: {\n [valueName]: defaultValue\n }\n } = form === \"service\" ? useFormService() : useFormContentBlocker();\n const [isModalVisible, setIsModalVisible] = useState(false); // Memoize width as it could be `undefined` due to UI lacks\n\n let width;\n return typeof defaultValue !== \"undefined\" && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues[valueName] !== nextValues[valueName]\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n var _widthOfRef$current;\n\n const value = getFieldValue(valueName);\n const diff = difference ? difference(value, defaultValue) : value !== defaultValue ? true : undefined;\n\n const handleApply = () => {\n if (typeof apply === \"function\") {\n apply(diff, setFieldsValue, value);\n } else {\n setFieldsValue({\n [valueName]: defaultValue\n });\n }\n\n document.dispatchEvent(new CustomEvent(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT));\n setIsModalVisible(false);\n };\n\n width = (widthOfRef === null || widthOfRef === void 0 ? void 0 : (_widthOfRef$current = widthOfRef.current) === null || _widthOfRef$current === void 0 ? void 0 : _widthOfRef$current.clientWidth) || width;\n\n if (!diff) {\n return null;\n }\n\n const descriptionComponent = /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n style: {\n marginBottom: 10\n }\n }, __(\"The value you entered is different from the value in the template.\"));\n const contentComponent = /*#__PURE__*/React.createElement(React.Fragment, null, newValueText !== false && /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, newValueText || __(\"New value:\"))), typeof renderDiff === \"function\" ? renderDiff(defaultValue, diff) : /*#__PURE__*/React.createElement(Diff, {\n oldStr: value,\n newStr: defaultValue,\n context: 100,\n outputFormat: \"line-by-line\"\n }));\n const tagComponent = /*#__PURE__*/React.createElement(_Tag, {\n color: \"blue\",\n style: {\n cursor: \"pointer\",\n ...style\n },\n className: className,\n onClick: () => useModal && setIsModalVisible(true)\n }, __(\"Differing from template\"), /*#__PURE__*/React.createElement(\"span\", {\n className: FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME,\n style: {\n display: \"none\"\n },\n onClick: handleApply\n }));\n return /*#__PURE__*/React.createElement(React.Fragment, null, useModal ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Modal, {\n visible: isModalVisible,\n onOk: handleApply,\n onCancel: () => setIsModalVisible(false),\n okText: __(\"Use default value\"),\n cancelText: __(\"Cancel\"),\n width: \"calc(100% - 50px)\"\n }, descriptionComponent, contentComponent), tagComponent) : /*#__PURE__*/React.createElement(_Popover, _extends({\n destroyTooltipOnHide: true,\n overlayStyle: {\n width\n },\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: \"wp-clearfix\"\n }, descriptionComponent, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"10px 0\"\n }\n }, contentComponent), /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: handleApply\n }, __(\"Use default value\"))),\n title: undefined,\n placement: placement\n }, popoverProps), tagComponent), !noBr && /*#__PURE__*/React.createElement(\"br\", null));\n });\n}\n\nexport { FormValueDifferFromPresetTag, FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass FormContentBlockerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nFormContentBlockerContextFactory.context = void 0;\n\nfunction useFormContentBlocker() {\n return useContext(FormContentBlockerContextFactory.Context());\n}\n\nexport { FormContentBlockerContextFactory, useFormContentBlocker };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass FormServiceContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nFormServiceContextFactory.context = void 0;\n\nfunction useFormService() {\n return useContext(FormServiceContextFactory.Context());\n}\n\nexport { FormServiceContextFactory, useFormService };","import _message from \"antd/es/message\";\nimport _Form from \"antd/es/form\";\nimport { useCallback, useState } from \"react\";\n\nfunction useFormHandler({\n defaultValues,\n handleSave,\n i18n,\n initialHasChanges,\n trackFieldsDifferFromDefaultValues = []\n}) {\n const [form] = _Form.useForm();\n\n const [isBusy, setIsBusy] = useState(false);\n const [hasChanges, setHasChanges] = useState(initialHasChanges || false); // Do not hold in state as it could lead to input focus loss due to reactivity. Use `hasTrackedFieldDifferenceToDefaultValue` instead.\n\n const trackedFieldsDifferFromDefaultValues = [];\n\n const hasTrackedFieldDifferenceToDefaultValue = field => trackedFieldsDifferFromDefaultValues.indexOf(field) > -1;\n\n const onFinish = useCallback(async values => {\n setIsBusy(true);\n\n try {\n await handleSave(values);\n form.resetFields();\n\n _message.success(i18n.successMessage);\n\n setHasChanges(false);\n } catch (e) {\n _message.error(e);\n } finally {\n setIsBusy(false);\n }\n }, [form, handleSave]);\n const onFinishFailed = useCallback(errorInfo => {\n _message.error(i18n.validationError);\n\n if (errorInfo.errorFields.length) {\n // form.scrollToField() does not play nicely with some controls (e.g. `RadioGroup`), so use custom implementation\n const instance = form.getFieldInstance(errorInfo.errorFields[0].name);\n instance.parentElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n }, [form, i18n]);\n const onBeforeUnload = useCallback(() => !hasChanges ? true : initialHasChanges && i18n.unloadConfirmInitialActive ? i18n.unloadConfirmInitialActive : i18n.unloadConfirm, [hasChanges, i18n, initialHasChanges]);\n const onValuesChange = useCallback((changedValues, values) => {\n if (trackFieldsDifferFromDefaultValues && defaultValues) {\n // Change without reactivity and keep reference so `hasTrackedFieldDifferenceToDefaultValue` keeps intact\n trackedFieldsDifferFromDefaultValues.splice(0, trackedFieldsDifferFromDefaultValues.length);\n\n for (const trackFieldChange of trackFieldsDifferFromDefaultValues) {\n const currentValue = values[trackFieldChange];\n const defaultValue = defaultValues[trackFieldChange];\n\n if (currentValue !== defaultValue) {\n trackedFieldsDifferFromDefaultValues.push(trackFieldChange);\n }\n }\n }\n\n setHasChanges(true);\n }, [trackFieldsDifferFromDefaultValues, defaultValues]);\n return {\n form,\n isBusy,\n hasChanges,\n hasTrackedFieldDifferenceToDefaultValue,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange\n };\n}\n\nexport { useFormHandler };","import { Fragment } from \"react\";\nimport { CookieProperty } from \".\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\n\nconst CookiePropertyList = ({\n cookie: {\n purpose,\n provider,\n providerPrivacyPolicyUrl,\n legalBasis,\n ePrivacyUSA,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n codeDynamics\n },\n isEssentialGroup\n}) => {\n const {\n i18n,\n ePrivacyUSA: ePrivacyUSAEnabled\n } = useBannerOrBlocker();\n const types = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(Fragment, null, !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicyUrl && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.providerPrivacyPolicyUrl,\n value: providerPrivacyPolicyUrl\n }), !!ePrivacyUSAEnabled && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.ePrivacyUSA,\n value: ePrivacyUSA,\n printValueAs: \"boolean\"\n }), !isEmbeddingOnlyExternalResources && technicalDefinitions.map(({\n type,\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n purpose\n }) => /*#__PURE__*/React.createElement(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.host,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.duration,\n value: [\"local\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? i18n.noExpiration : isSessionDuration || type === \"session\" ? \"Session\" : \"\".concat(duration, \" \").concat(i18n.durationUnit[durationUnit])\n }))));\n};\n\nfunction getCookieTypeLocalizationMap() {\n return {\n http: {\n name: \"HTTP Cookie\",\n abbr: \"HTTP\",\n backgroundColor: \"black\"\n },\n local: {\n name: \"Local Storage\",\n abbr: \"Local\",\n backgroundColor: \"#b3983c\"\n },\n session: {\n name: \"Session Storage\",\n abbr: \"Session\",\n backgroundColor: \"#3c99b3\"\n },\n flash: {\n name: \"Flash Local Shared Object\",\n abbr: \"Flash\",\n backgroundColor: \"#b33c3c\"\n },\n indexedDb: {\n name: \"IndexedDB\",\n abbr: \"I-DB\",\n backgroundColor: \"#4ab33c\"\n }\n };\n}\n\nexport { CookiePropertyList, getCookieTypeLocalizationMap };","import { useRef, useEffect, useCallback } from \"react\";\nimport wp from \"wp\";\n\nconst CodeMirror = ({\n settings = {},\n value = \"\",\n onChange\n}) => {\n const ref = useRef();\n const {\n codeEditor\n } = wp;\n useEffect(() => {\n // Check if the current profile allows syntax highlighting\n if (codeEditor) {\n const {\n codemirror\n } = codeEditor.initialize(ref.current, settings);\n codemirror.on(\"change\", 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 const noop = useCallback(() => {// Silence is golden.\n }, []);\n return /*#__PURE__*/React.createElement(\"textarea\", {\n ref: ref,\n value: value,\n onChange: codeEditor ? noop : ({\n target: {\n value\n }\n }) => onChange(value),\n style: {\n width: \"100%\"\n }\n });\n};\n\nexport { CodeMirror };","export const TECHNICAL_DEFINITION_DEFAULTS = {\n type: \"http\",\n name: \"\",\n host: \"\",\n duration: undefined,\n durationUnit: \"y\",\n isSessionDuration: false,\n purpose: \"\"\n};\nexport * from \"./definitions\";","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralName = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"name\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __('Each service used should have a descriptive name that is understandable to a non-professional user. Example: \"Google Analytics\".')));\n};\n\nexport { FormServiceFieldGeneralName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormService } from \"../../../../../contexts\";\n\nconst FormServiceFieldGeneralStatus = () => {\n const {\n __\n } = useFormService();\n return /*#__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 an option!\")\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.')));\n};\n\nexport { FormServiceFieldGeneralStatus };","import _Form from \"antd/es/form\";\nimport _Select from \"antd/es/select\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldGeneralGroup = () => {\n const {\n __,\n serviceIsManager,\n setCookiesViaManager,\n essentialGroupId,\n groups,\n notices: {\n group: groupNotices\n }\n } = useFormService();\n const ref = useRef();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n return /*#__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.map(({\n id,\n name\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name)))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"group\",\n widthOfRef: ref,\n style: {\n marginBottom: 3\n },\n renderDiff: value => /*#__PURE__*/React.createElement(_Select, {\n value: value,\n disabled: true\n }, groups.map(({\n id,\n name\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name)))\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.\")), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, curValues) => prevValues.group !== curValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: serviceIsManager && getFieldValue(\"group\") !== essentialGroupId ? __(\"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.\", managerLabel) : undefined,\n severity: \"warning\"\n }, ...groupNotices]\n })));\n};\n\nexport { FormServiceFieldGeneralGroup };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralProvider = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"provider\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\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.')));\n};\n\nexport { FormServiceFieldGeneralProvider };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../../valueDifferFromPresetTag\";\n\nconst FormServiceFieldGeneralPurpose = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"purpose\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n },\n value: value,\n readOnly: true\n })\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.\")));\n};\n\nexport { FormServiceFieldGeneralPurpose };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralProviderPrivacyPolicyUrl = () => {\n const {\n __,\n notices: {\n providerPrivacyPolicyUrl: providerPrivacyPolicyUrlNotices\n }\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicyUrl\",\n noStyle: true,\n rules: [{\n required: true,\n type: \"url\",\n message: __(\"Please provide a valid URL!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"providerPrivacyPolicyUrl\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __(\"Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).\")), /*#__PURE__*/React.createElement(Notices, {\n notices: providerPrivacyPolicyUrlNotices\n }));\n};\n\nexport { FormServiceFieldGeneralProviderPrivacyPolicyUrl };","/**\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 const from = \"àáäâèéëêìíïîòóöôùúüûñç·/_,:;\";\n const to = \"aaaaeeeeiiiioooouuuunc------\";\n\n for (let 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 _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useCallback } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { slugify } from \"../../../../../utils\";\n\nconst FormServiceFieldGeneralConsentForwardingUniqueName = () => {\n const {\n __,\n essentialGroupId,\n isConsentForwarding,\n isEdit,\n hasServiceByConsentForwardingUniqueName\n } = useFormService();\n const validateConsentForwardingUniqueName = useCallback(async (slug, overwrite) => {\n const found = await hasServiceByConsentForwardingUniqueName(slug);\n\n if (found) {\n if (!overwrite) {\n throw __(\"A service with the same unique name already exists.\");\n } else {\n // Consent Forwarding is deactivated, so we need to generate an unique name for the user\n const matchRegexp = /^(.*)-(\\d+)$/;\n let consentForwardingUniqueName = slug;\n let foundGenerated = found;\n\n while (foundGenerated) {\n consentForwardingUniqueName = consentForwardingUniqueName.match(matchRegexp) ? consentForwardingUniqueName.replace(matchRegexp, (_, g1, g2) => \"\".concat(g1, \"-\").concat(+g2 + 1)) : \"\".concat(consentForwardingUniqueName, \"-1\");\n foundGenerated = await hasServiceByConsentForwardingUniqueName(consentForwardingUniqueName);\n } // Overwrite in form\n\n\n overwrite(consentForwardingUniqueName);\n }\n }\n }, [hasServiceByConsentForwardingUniqueName]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n const isEssentialGroup = getFieldValue(\"group\") === essentialGroupId;\n const name = getFieldValue(\"name\");\n const nameSlug = slugify(name);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Consent Forwarding Unique Name\"),\n required: true,\n style: {\n display: isConsentForwarding ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"consentForwardingUniqueName\",\n noStyle: true,\n validateTrigger: \"onBlur\",\n rules: [{\n validator: async (rules, value) => {\n const allowOverwrite = isConsentForwarding ? !value : true;\n return validateConsentForwardingUniqueName(value || nameSlug, allowOverwrite ? consentForwardingUniqueName => setFieldsValue({\n consentForwardingUniqueName\n }) : undefined);\n }\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: isEdit ? \"\" : nameSlug\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(Notices, {\n notices: [{\n message: __(\"You can define a unique name, but essential services are automatically accepted when a consent is forwarded.\"),\n severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldGeneralConsentForwardingUniqueName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { LearnMoreTag, Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst Field = props => {\n const {\n __,\n allowLegalBasisLegalRequirement\n } = useFormService();\n return /*#__PURE__*/React.createElement(_Radio.Group, props, /*#__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)\")), allowLegalBasisLegalRequirement && /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legal-requirement\"\n }, __(\"Compliance with a legal obligation\")));\n};\n\nconst FormServiceFieldGeneralLegalBasis = () => {\n const {\n __,\n _i,\n allowLegalBasisLegalRequirement,\n essentialGroupId\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => {\n const isEssentialGroup = getFieldValue(\"group\") === essentialGroupId;\n return /*#__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(Field, {\n disabled: isEssentialGroup\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"legalBasis\",\n widthOfRef: ref,\n style: {\n marginBottom: 3\n },\n renderDiff: value => /*#__PURE__*/React.createElement(Field, {\n disabled: true,\n value: value\n })\n }), /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/\")\n }), /*#__PURE__*/React.createElement(\"br\", null), _i(__('Services can be used on various legal bases according to {{aGdpr}}Art. 6 GDPR{{/aGdpr}}. \"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 aGdpr: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://gdpr-info.eu/art-6-gdpr/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n })), isEssentialGroup && !allowLegalBasisLegalRequirement && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __('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 severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldGeneralLegalBasis };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralDataProcessingInUnsafeCountries = () => {\n const {\n __,\n essentialGroupId,\n isDataProcessingInUnsafeCountries\n } = useFormService();\n const ref = useRef();\n\n const dataProcessingInUnsafeCountriesLabel = __(\"This service processes data in the USA or transfers data to US companies or servers\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group || prevValues.ePrivacyUSA !== nextValues.ePrivacyUSA\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n display: isDataProcessingInUnsafeCountries ? 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\", dataProcessingInUnsafeCountriesLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"ePrivacyUSA\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", dataProcessingInUnsafeCountriesLabel)),\n noBr: true\n })), getFieldValue(\"ePrivacyUSA\") && getFieldValue(\"group\") === essentialGroupId && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __(\"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 severity: \"warning\"\n }]\n })));\n};\n\nexport { FormServiceFieldGeneralDataProcessingInUnsafeCountries };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralIsEmbeddingOnlyExternalResources = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n\n const isEmbeddingOnlyExternalResourcesLabel = __(\"This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isEmbeddingOnlyExternalResources\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", isEmbeddingOnlyExternalResourcesLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"isEmbeddingOnlyExternalResources\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", isEmbeddingOnlyExternalResourcesLabel)),\n noBr: true\n })));\n};\n\nexport { FormServiceFieldGeneralIsEmbeddingOnlyExternalResources };","import { FormServiceFieldGeneralName, FormServiceFieldGeneralPurpose, FormServiceFieldGeneralStatus, FormServiceFieldGeneralProvider, FormServiceFieldGeneralProviderPrivacyPolicyUrl, FormServiceFieldGeneralGroup, FormServiceFieldGeneralIsEmbeddingOnlyExternalResources, FormServiceLayout, FormServiceFieldGeneralDataProcessingInUnsafeCountries, FormServiceFieldGeneralLegalBasis, FormServiceFieldGeneralConsentForwardingUniqueName } from \"../..\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormServiceFieldGeneralCompose = () => {\n const {\n __\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.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(FormServiceFieldGeneralName, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralStatus, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralGroup, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralProvider, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralPurpose, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralProviderPrivacyPolicyUrl, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralConsentForwardingUniqueName, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralLegalBasis, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralDataProcessingInUnsafeCountries, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralIsEmbeddingOnlyExternalResources, null));\n};\n\nexport { FormServiceFieldGeneralCompose };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { getCookieTypeLocalizationMap } from \"@devowl-wp/react-cookie-banner/src\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieType = ({\n field,\n readOnly = false\n}) => {\n const {\n __\n } = useFormService();\n const cookieTypeLocalized = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\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, {\n disabled: readOnly\n }, Object.keys(cookieTypeLocalized).map(key => /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key,\n style: {\n display: key === \"flash\" ? \"none\" : undefined\n }\n }, cookieTypeLocalized[key].name))));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieType };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { Notices } from \"../../../../../../common\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieName = ({\n field,\n readOnly\n}) => {\n const {\n __,\n _i\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\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, {\n disabled: readOnly\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n 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 }, ({\n getFieldValue\n }) => {\n const cookieName = getFieldValue([\"technicalDefinitions\", field.name, \"name\"]);\n const notSupportedCookieNamePlaceholders = [/\\[/gm, [/([{]+)/gm, match => match.length === 1], /\\(/gm];\n return notSupportedCookieNamePlaceholders.filter(r => Array.isArray(r) ? r[0].test(cookieName) && cookieName.match(r[0]).filter(r[1]).length > 0 : r.test(cookieName)).length > 0 && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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 severity: \"warning\"\n }]\n });\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieName };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { isHost } from \"../../../../../../../utils\";\nimport { Notices } from \"../../../../../../common\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieHost = ({\n field,\n readOnly\n}) => {\n const {\n __,\n _i\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => {\n var _prevValues$technical, _nextValues$technical, _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.type) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.type) || ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.host) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.host);\n }\n }, ({\n getFieldValue\n }) => {\n const type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n const host = getFieldValue([\"technicalDefinitions\", field.name, \"host\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n fieldKey: [field.fieldKey, \"host\"],\n name: [field.name, \"host\"],\n rules: [{\n validator: (_, value) => ([\"local\", \"session\", \"indexedDb\"].indexOf(type) > -1 ? isUrl(value) : isHost(value)) || value === \"\" && type !== \"http\" ? Promise.resolve() : Promise.reject(__(\"Please provide a valid hostname!\"))\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n disabled: readOnly\n })), host.startsWith(\"*.\") && host.length > 2 && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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 severity: \"warning\"\n }]\n }));\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieHost };","/**\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 _Select from \"antd/es/select\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport { useMemo } from \"react\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieDuration = ({\n field,\n readOnly\n}) => {\n const {\n __\n } = useFormService();\n const durations = useMemo(() => ({\n s: __(\"second(s)\"),\n m: __(\"minute(s)\"),\n h: __(\"hour(s)\"),\n d: __(\"day(s)\"),\n mo: __(\"month(s)\"),\n y: __(\"year(s)\")\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => {\n var _prevValues$technical, _nextValues$technical, _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.type) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.type) || ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.isSessionDuration) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.isSessionDuration);\n }\n }, ({\n getFieldValue\n }) => {\n const type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n const isSessionDuration = getFieldValue([\"technicalDefinitions\", field.name, \"isSessionDuration\"]);\n\n if ([\"local\", \"session\", \"indexedDb\", \"flash\"].indexOf(type) > -1) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {\n key: \"isSessionDuration\",\n fieldKey: [field.fieldKey, \"isSessionDuration\"],\n name: [field.name, \"isSessionDuration\"],\n noStyle: true,\n valuePropName: \"checked\"\n }), /*#__PURE__*/React.createElement(_Checkbox, {\n style: {\n float: \"left\",\n marginTop: 5\n },\n disabled: readOnly\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, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n key: \"duration\",\n fieldKey: [field.fieldKey, \"duration\"],\n name: [field.name, \"duration\"],\n rules: [{\n required: !isSessionDuration,\n message: __(\"Please provide a valid duration!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n disabled: readOnly,\n min: \"0\",\n addonAfter: /*#__PURE__*/React.createElement(_Form.Item, {\n fieldKey: [field.fieldKey, \"durationUnit\"],\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, {\n disabled: readOnly\n }, Object.keys(durations).map(key => /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key\n }, durations[key])))),\n type: \"number\",\n style: {\n maxWidth: 200,\n display: isSessionDuration ? \"none\" : undefined\n }\n })));\n });\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieDuration };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\n\nconst FormServiceFieldTechnicalDefinitionsCookiePurpose = ({\n field,\n readOnly\n}) => {\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n fieldKey: [field.fieldKey, \"purpose\"],\n name: [field.name, \"purpose\"]\n }), /*#__PURE__*/React.createElement(_Input.TextArea, {\n disabled: readOnly,\n rows: 1,\n autoSize: {\n maxRows: 3\n }\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookiePurpose };","import _Tooltip from \"antd/es/tooltip\";\nimport _Form from \"antd/es/form\";\nimport { DeleteOutlined, PlusOutlined, QuestionCircleFilled } from \"@ant-design/icons\";\nimport { FormServiceFieldTechnicalDefinitionsCookieDuration, FormServiceFieldTechnicalDefinitionsCookieHost, FormServiceFieldTechnicalDefinitionsCookieName, FormServiceFieldTechnicalDefinitionsCookiePurpose, FormServiceFieldTechnicalDefinitionsCookieType, TECHNICAL_DEFINITION_DEFAULTS } from \"..\";\nimport { FormServiceLayout } from \"../../..\";\nimport { useFormService } from \"../../../../../../contexts\";\nimport { useFormServiceTechnicalDefinitionsTable } from \"../../../../../../hooks\";\nimport { FormHeadline, FormValueDifferFromPresetTag } from \"../../../..\";\nconst FormServiceFieldTechnicalDefinitionsLayout = {\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n },\n style: {\n margin: 0\n }\n};\n\nconst DiffTable = ({\n technicalDefinitions\n}) => {\n const [form] = _Form.useForm();\n\n return /*#__PURE__*/React.createElement(_Form, {\n form: form,\n initialValues: {\n isEmbeddingOnlyExternalResources: false,\n technicalDefinitions\n }\n }, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsTable, {\n isDiff: true\n }));\n};\n\nconst diffCalculate = (oldValue, newValue) => {\n // Compose entries by all available keys for \"modified\" calculation\n const numberedIndexedForPosition = [];\n const oldEntriesModified = oldValue.reduce((a, {\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n type,\n purpose\n }) => {\n const idx = \"\".concat(type, \"/\").concat(name, \"/\").concat(host);\n a[idx] = \"\".concat(duration, \"/\").concat(durationUnit, \"/\").concat(isSessionDuration, \"/\").concat(type, \"/\").concat(purpose);\n numberedIndexedForPosition.push(idx);\n return a;\n }, {});\n const modified = newValue.map(definition => {\n const {\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n type,\n purpose\n } = definition;\n const idxName = \"\".concat(type, \"/\").concat(name, \"/\").concat(host);\n const oldModified = oldEntriesModified[idxName];\n return typeof oldModified === \"undefined\" || oldModified === \"\".concat(duration, \"/\").concat(durationUnit, \"/\").concat(isSessionDuration, \"/\").concat(type, \"/\").concat(purpose) ? undefined : { ...definition,\n position: numberedIndexedForPosition.indexOf(idxName)\n };\n }).filter(Boolean); // Compose entries by name and host for \"addition\" calculation\n\n const oldEntriesComposedAdded = oldValue.map(({\n type,\n name,\n host\n }) => \"\".concat(type, \"/\").concat(name, \"/\").concat(host));\n const added = newValue.map((definition, position) => {\n const {\n type,\n name,\n host\n } = definition;\n return !oldEntriesComposedAdded.includes(\"\".concat(type, \"/\").concat(name, \"/\").concat(host)) ? { ...definition,\n position\n } : undefined;\n }).filter(Boolean);\n return added.length || modified.length ? {\n added,\n modified\n } : undefined;\n};\n\nconst FormServiceFieldTechnicalDefinitionsTable = ({\n isDiff = false\n}) => {\n const {\n __,\n _i\n } = useFormService();\n const {\n SortableBodyConnected,\n SortableItem,\n DragHandle\n } = useFormServiceTechnicalDefinitionsTable();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isEmbeddingOnlyExternalResources !== nextValues.isEmbeddingOnlyExternalResources || prevValues.technicalDefinitions.length !== nextValues.technicalDefinitions.length\n }, ({\n getFieldValue\n }) => getFieldValue(\"isEmbeddingOnlyExternalResources\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, (fields, {\n add,\n remove,\n move\n }) => {\n return /*#__PURE__*/React.createElement(\"div\", null, !isDiff && /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.labelCol.span,\n description: _i(__(\"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 according to {{aEprivacy}}ePrivacy Directive (Directive 2009/136/EC) Art. 66{{/aEprivacy}} you have to inform your visitors not only about (HTTP) cookies, but also about cookie-like information.\"), {\n aEprivacy: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/go/eu-directive-2009-136-ec\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n })\n }, __(\"Technical cookie information\")), /*#__PURE__*/React.createElement(\"table\", {\n className: \"wp-list-table widefat fixed striped table-view-list\",\n style: {\n marginBottom: 25\n }\n }, /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n width: 45,\n align: \"right\"\n }, \"\\xA0\"), /*#__PURE__*/React.createElement(\"td\", {\n width: 150\n }, __(\"Cookie type\")), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: _i(__(\"Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie name\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Every cookie is associated to a domain or hostname.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie host\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 290\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Cookie duration\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Purpose\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 70,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(SortableBodyConnected, {\n onSortEnd: move\n }, fields.map((field, index) => /*#__PURE__*/React.createElement(SortableItem, {\n key: field.key,\n index: index\n }, /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 && !isDiff ? /*#__PURE__*/React.createElement(DragHandle, null) : undefined), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieType, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieName, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieHost, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieDuration, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookiePurpose, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 && !isDiff ? /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-small\",\n onClick: () => {\n remove(field.name);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)) : null)))), !isDiff && /*#__PURE__*/React.createElement(\"tfoot\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: 7,\n align: \"right\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: () => {\n add(TECHNICAL_DEFINITION_DEFAULTS);\n }\n }, /*#__PURE__*/React.createElement(PlusOutlined, null), \" \", __(\"Add another cookie definition\")), /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n useModal: true,\n form: \"service\",\n valueName: \"technicalDefinitions\",\n noBr: true,\n style: {\n marginTop: 4\n },\n difference: diffCalculate,\n apply: ({\n added,\n modified\n }, setFieldsValue, oldValue) => {\n const technicalDefinitions = oldValue;\n modified.forEach(({\n position,\n ...rest\n }) => {\n technicalDefinitions[position] = rest;\n });\n added.forEach(({\n position,\n ...rest\n }) => {\n technicalDefinitions.splice(position, 0, rest);\n });\n setFieldsValue({\n technicalDefinitions\n });\n },\n newValueText: false,\n renderDiff: (value, {\n added,\n modified\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, added.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, __(\"Missing entries:\"))), /*#__PURE__*/React.createElement(DiffTable, {\n technicalDefinitions: added\n })), modified.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, __(\"Modified entries:\"))), /*#__PURE__*/React.createElement(DiffTable, {\n technicalDefinitions: modified\n })))\n }))))));\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsLayout, FormServiceFieldTechnicalDefinitionsTable };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { MenuOutlined } from \"@ant-design/icons\";\nimport { useRef, useMemo, useCallback } from \"react\";\nimport { SortableHandle, SortableElement, SortableContainer } from \"react-sortable-hoc\";\n\nfunction useFormServiceTechnicalDefinitionsTable() {\n const tbodyRef = useRef();\n const {\n DragHandle,\n SortableItem,\n SortableBody\n } = useMemo(() => ({\n DragHandle: SortableHandle(() => /*#__PURE__*/React.createElement(MenuOutlined, {\n style: {\n cursor: \"grab\",\n color: \"#999\",\n marginTop: 5\n },\n className: \"button button-small button-link\"\n })),\n SortableItem: SortableElement(props => /*#__PURE__*/React.createElement(\"tr\", props)),\n SortableBody: SortableContainer(props => /*#__PURE__*/React.createElement(\"tbody\", _extends({\n ref: tbodyRef\n }, props)))\n }), []);\n const handleSortStart = useCallback(({\n node,\n helper\n }) => {\n node.childNodes.forEach((td, index) => {\n helper.childNodes[index].style.width = \"\".concat(td.offsetWidth, \"px\");\n });\n }, []);\n\n const SortableBodyConnected = ({\n onSortEnd,\n children\n }) => /*#__PURE__*/React.createElement(SortableBody, {\n useDragHandle: true,\n onSortEnd: ({\n oldIndex,\n newIndex\n }) => onSortEnd(oldIndex, newIndex),\n onSortStart: handleSortStart,\n helperContainer: () => tbodyRef.current\n }, children);\n\n return {\n tbodyRef,\n DragHandle,\n SortableItem,\n SortableBody,\n SortableBodyConnected,\n handleSortStart\n };\n}\n\nexport { useFormServiceTechnicalDefinitionsTable };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { LearnMoreTag, Notices } from \"../../../../common\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingTagManagerEventName = () => {\n const {\n __,\n setCookiesViaManager,\n serviceIsManager,\n hasManager\n } = useFormService();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n return setCookiesViaManager !== \"none\" && !serviceIsManager && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Event names for %s\", managerLabel),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"tagManagerOptInEventName\",\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: \"tagManagerOptOutEventName\",\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(\"p\", {\n className: \"description\"\n }, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/\")\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, curValues) => prevValues.tagManagerOptInEventName !== curValues.tagManagerOptInEventName || prevValues.tagManagerOptOutEventName !== curValues.tagManagerOptOutEventName\n }, ({\n getFieldValue\n }) => {\n const inEventName = getFieldValue(\"tagManagerOptInEventName\");\n const outEventName = getFieldValue(\"tagManagerOptOutEventName\");\n return (inEventName.length > 0 || outEventName.length > 0) && !hasManager && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __(\"You have not yet defined a %s service. To use event names, you must create a %s service.\", managerLabel, managerLabel),\n severity: \"warning\"\n }]\n });\n }));\n};\n\nexport { FormServiceFieldHandlingTagManagerEventName };","const DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\n/**\n * Takes any string and replaces `{{myVariable}}` with the value of the passed `dynamics` map.\n */\n\nfunction applyDynamicsToHtml(src, dynamics) {\n return src.replace(DYNAMICS_VARIABLE_REGEXP, (fullMatch, variableName) => Object.prototype.hasOwnProperty.call(dynamics, variableName) ? dynamics[variableName] : fullMatch);\n}\n\nexport { applyDynamicsToHtml, DYNAMICS_VARIABLE_REGEXP };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { DYNAMICS_VARIABLE_REGEXP } from \"@devowl-wp/headless-content-unblocker\";\nimport { Notices } from \"../../../../common\";\nconst DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\n\nconst FormServiceFieldHandlingDynamicField = () => {\n const {\n __,\n dynamicFields\n } = useFormService();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => DYNAMICS_SEARCH_IN.map(k => prevValues[k] !== nextValues[k]).filter(Boolean).length > 0\n }, ({\n getFieldValue\n }) => {\n const searchInResolved = DYNAMICS_SEARCH_IN.map(k => getFieldValue(k)).join(\"\");\n const matches = Array.from(searchInResolved.matchAll(DYNAMICS_VARIABLE_REGEXP)).map(([, m]) => m);\n const added = [];\n return matches ? matches.map(name => {\n const formName = [\"codeDynamics\", name];\n const {\n label,\n invalidMessage = __(\"Please fill in a value!\"),\n example,\n expression,\n hint\n } = (dynamicFields === null || dynamicFields === void 0 ? void 0 : dynamicFields.find(dynamicField => dynamicField.name === name)) || {};\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\n })), /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: hint,\n severity: \"info\"\n }]\n }));\n }) : null;\n });\n};\n\nexport { FormServiceFieldHandlingDynamicField };","import _Form from \"antd/es/form\";\nimport { useMemo } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\n\nconst FormServiceFieldHandlingSkipIfActiveNotice = ({\n name\n}) => {\n const {\n __,\n _i,\n skipIfActiveComponents\n } = useFormService();\n const componentKeys = useMemo(() => Object.keys(skipIfActiveComponents), [skipIfActiveComponents]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues[name] !== nextValues[name]\n }, ({\n getFieldValue\n }) => {\n const value = getFieldValue(name); // Find `skip-if-active` and their active components\n\n const matches = [...value.matchAll(/\\s+(skip-if-active=\")([^\"]+)(\")/gm)].map(([,, components]) => components.split(\",\").filter(plugin => componentKeys.indexOf(plugin) > -1)).flat();\n const uniq = matches.filter((plugin, i) => matches.indexOf(plugin) === i);\n\n if (uniq.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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(plugin => skipIfActiveComponents[plugin]).join(\", \")),\n i: /*#__PURE__*/React.createElement(\"i\", null)\n }),\n severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldHandlingSkipIfActiveNotice };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven = ({\n name\n}) => {\n const {\n __,\n _i,\n isPro,\n setCookiesViaManager,\n serviceIsManager\n } = useFormService();\n const ref = useRef();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n\n const executeCodeWhenNoTagManagerConsentIsGivenLabel = _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", managerLabel), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n });\n\n return setCookiesViaManager !== \"none\" && !serviceIsManager && isPro ? /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: name,\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", executeCodeWhenNoTagManagerConsentIsGivenLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: name,\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", executeCodeWhenNoTagManagerConsentIsGivenLabel)),\n noBr: true\n }))) : null;\n};\n\nexport { FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice, FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOptIn = () => {\n const {\n __,\n renderCodeMirror\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-in\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptIn\",\n noStyle: true\n }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOptIn\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOptIn\",\n widthOfRef: ref,\n noBr: true\n }))), /*#__PURE__*/React.createElement(FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, {\n name: \"executeCodeOptInWhenNoTagManagerConsentIsGiven\"\n }));\n};\n\nexport { FormServiceFieldHandlingCodeOptIn };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n\n const deleteTechnicalDefinitionsAfterOptOutLabel = __(\"Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isEmbeddingOnlyExternalResources !== nextValues.isEmbeddingOnlyExternalResources\n }, ({\n getFieldValue\n }) => getFieldValue(\"isEmbeddingOnlyExternalResources\") ? null : /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"deleteTechnicalDefinitionsAfterOptOut\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", deleteTechnicalDefinitionsAfterOptOutLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"deleteTechnicalDefinitionsAfterOptOut\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", deleteTechnicalDefinitionsAfterOptOutLabel)),\n noBr: true\n }))));\n};\n\nexport { FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useCallback } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice, FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOptOut = () => {\n const {\n __,\n renderCodeMirror,\n essentialGroupId\n } = useFormService();\n const ref = useRef(); // CodeMirror does not support \"display:none;\", we need to hide it in a hacky way\n\n const createHiddenFormItemsWithCodeMirror = useCallback(visible => ({\n opacity: visible ? undefined : 0,\n height: visible ? undefined : 0,\n margin: visible ? undefined : 0\n }), []);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => {\n const visible = getFieldValue(\"group\") !== essentialGroupId;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-out\"),\n style: createHiddenFormItemsWithCodeMirror(visible)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOut\",\n noStyle: true\n }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOptOut\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOptOut\",\n widthOfRef: ref,\n noBr: true\n }))), visible && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, {\n name: \"executeCodeOptOutWhenNoTagManagerConsentIsGiven\"\n }), /*#__PURE__*/React.createElement(FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut, null)));\n });\n};\n\nexport { FormServiceFieldHandlingCodeOptOut };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOnPageLoad = () => {\n const {\n __,\n renderCodeMirror\n } = useFormService();\n const ref = useRef();\n return /*#__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 }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOnPageLoad\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOnPageLoad\",\n widthOfRef: ref,\n noBr: true\n })));\n};\n\nexport { FormServiceFieldHandlingCodeOnPageLoad };","import _Form from \"antd/es/form\";\nimport { FormServiceLayout, FormServiceFieldHandlingCodeOnPageLoad, FormServiceFieldHandlingCodeOptIn, FormServiceFieldHandlingCodeOptOut, FormServiceFieldHandlingDynamicField, FormServiceFieldHandlingTagManagerEventName } from \"../..\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { Notices } from \"../../../../common\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingCompose = () => {\n const {\n __,\n serviceGotScanned,\n setCookiesViaManager,\n contentBlockerTemplates,\n notices: {\n technicalHandling: technicalHandlingNotices\n },\n defaultPresetValues\n } = useFormService();\n const presetDefaultName = (defaultPresetValues === null || defaultPresetValues === void 0 ? void 0 : defaultPresetValues.name) || \"\";\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n const notices = [...technicalHandlingNotices, serviceGotScanned && {\n message: contentBlockerTemplates.length > 0 ? __('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.', presetDefaultName) : __(\"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.\", presetDefaultName),\n severity: \"warning\"\n }].filter(Boolean).filter(({\n message\n }) => message);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.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.\", managerLabel)\n }, __(\"Technical handling\")), /*#__PURE__*/React.createElement(FormServiceFieldHandlingTagManagerEventName, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingDynamicField, null), notices.length > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n marginBottom: 0\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: notices\n })), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOptIn, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOptOut, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOnPageLoad, null));\n};\n\nexport { FormServiceFieldHandlingCompose };","import _Select from \"antd/es/select\";\nimport _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormServiceLayout } from \"../..\";\nimport { useFormService } from \"../../../../contexts\";\nimport { Notices } from \"../../../common\";\n\nconst FormServiceFieldCreateContentBlocker = () => {\n const {\n __,\n essentialGroupId,\n allowContentBlockerCreation,\n contentBlockerTemplates,\n notices: {\n createContentBlocker: createContentBlockerNotices\n }\n } = useFormService();\n return allowContentBlockerCreation && (contentBlockerTemplates === null || contentBlockerTemplates === void 0 ? void 0 : contentBlockerTemplates.length) > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlocker\",\n valuePropName: \"checked\",\n dependencies: [\"group\"],\n rules: [{\n validator: (_, value) => getFieldValue(\"group\") === essentialGroupId && 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 }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"Create content blocker for this service.\")))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.createContentBlocker !== nextValues.createContentBlocker\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, getFieldValue(\"createContentBlocker\") && /*#__PURE__*/React.createElement(React.Fragment, null, contentBlockerTemplates.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 }, contentBlockerTemplates.map(({\n identifier,\n name,\n subHeadline\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: identifier,\n value: identifier\n }, \"\".concat(name).concat(subHeadline ? \" (\".concat(subHeadline, \")\") : \"\")))))), /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: getFieldValue(\"createContentBlocker\") ? __(\"Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.\") : undefined,\n severity: \"info\"\n }, ...createContentBlockerNotices]\n }))));\n};\n\nexport { FormServiceFieldCreateContentBlocker };","import _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormServiceLayout } from \"../..\";\nimport { useFormService } from \"../../../../contexts\";\nimport { LearnMoreTag } from \"../../../common\";\n\nconst FormServiceFieldPresetCheck = () => {\n const {\n __,\n presetCheck,\n isTemplateUpdate\n } = useFormService();\n return !!(presetCheck || isTemplateUpdate) && /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: value => value || undefined,\n message: __(\"Please confirm that you have checked the contents of the service.\")\n }],\n wrapperCol: {\n offset: FormServiceLayout.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 })));\n};\n\nexport { FormServiceFieldPresetCheck };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { FormServiceFieldGeneralCompose, FormServiceFieldPresetCheck, FormServiceFieldCreateContentBlocker, FormServiceFieldHandlingCompose, FormServiceFieldTechnicalDefinitionsTable, FormServiceLayout } from \".\";\nimport { I18nContextFactory, useFormService } from \"../../../contexts\";\nimport { FormValueDifferFromPresetNotice } from \"..\";\n\nconst FormService = () => {\n const {\n __,\n _i\n } = useFormService();\n const ref = useRef();\n const I18nContext = I18nContextFactory.Context();\n return /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: {\n __,\n _i\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetNotice, {\n containerRef: ref,\n form: \"service\"\n }), /*#__PURE__*/React.createElement(FormServiceFieldGeneralCompose, null), /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsTable, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCompose, null), /*#__PURE__*/React.createElement(FormServiceFieldCreateContentBlocker, null), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\",\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n }\n }, /*#__PURE__*/React.createElement(FormServiceFieldPresetCheck, null), /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary\",\n value: __(\"Save\")\n }))))));\n};\n\nexport { FormService };","import _Spin from \"antd/es/spin\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport { useCallback, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { CookieModel } from \"../../../models\";\nimport { __, scrollTo, base64EncodeUnicodeSafe, _i, request } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { useHistory, Prompt } from \"react-router-dom\";\nimport { useRouteCookie } from \"../../../hooks\";\nimport { CodeMirror } from \"../..\";\nimport { FormService, useFormServiceHandler } from \"@devowl-wp/react-cookie-banner-admin\";\nimport { slugify, FormServiceContextFactory, FormServiceLayout } from \"@devowl-wp/react-cookie-banner-admin\";\nimport { locationRestForwardCookieGet } from \"../../../wp-api\";\nconst CookieEditForm = observer(({\n preset,\n overwriteAttributes,\n navigateAfterCreation = true,\n scrollToTop = true,\n onCreated\n}) => {\n var _presetModel$attribut, _cookie$data, _cookie$data$meta, _presetModel$attribut2, _presetModel$attribut3, _presetModel$attribut4, _presetModel$attribut5;\n\n const {\n routeGroup: {\n group,\n link\n },\n cookie,\n id,\n queried,\n fetched\n } = useRouteCookie();\n const history = useHistory();\n const {\n cookieStore,\n optionStore: {\n tcf,\n ePrivacyUSA,\n consentForwarding,\n setCookiesViaManager,\n hasManager,\n others: {\n useEncodedStringForScriptInputs,\n isPro,\n activePlugins\n }\n }\n } = useStores();\n const {\n essentialGroup\n } = cookieStore;\n const presetModel = (cookie === null || cookie === void 0 ? void 0 : cookie.presetModel) || cookieStore.presetsCookie.get(preset === null || preset === void 0 ? void 0 : preset.identifier);\n const groups = cookieStore.groups.sortedGroups.map(({\n data: {\n id,\n name\n }\n }) => ({\n id,\n name\n }));\n const allowContentBlockerCreation = !!navigateAfterCreation;\n const contentBlockerTemplates = (presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.contentBlockerTemplates) || [];\n const attributes = { ...(presetModel === null || presetModel === void 0 ? void 0 : presetModel.attributes),\n ...overwriteAttributes\n };\n const {\n form,\n isBusy,\n defaultValues,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange,\n contextValue\n } = useFormServiceHandler({\n __,\n _i,\n attributes,\n selectedGroup: group.key,\n trackFieldsDifferFromDefaultValues: [\"group\"],\n setCookiesViaManager,\n groups,\n preset: presetModel ? {\n identifier: presetModel.data.identifier,\n version: presetModel.data.version\n } : undefined,\n allowContentBlockerCreation,\n shouldUncheckContentBlockerCheckbox: attributes === null || attributes === void 0 ? void 0 : attributes.shouldUncheckContentBlockerCheckbox,\n contentBlockerTemplates,\n handleSave: async values => {\n try {\n var _document$querySelect;\n\n // Pass as base64-encoded string to avoid Cloudflare XSS issues\n const codeToBase64 = str => useEncodedStringForScriptInputs ? \"encodedScript:\".concat(base64EncodeUnicodeSafe(str)) : str;\n\n const {\n name,\n status,\n purpose,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n group,\n codeDynamics,\n createContentBlocker,\n createContentBlockerId,\n consentForwardingUniqueName,\n codeOptIn,\n codeOptOut,\n codeOnPageLoad,\n ...meta\n } = values;\n const newMeta = { ...meta,\n codeOptIn: codeToBase64(codeOptIn),\n codeOptOut: codeToBase64(codeOptOut),\n codeOnPageLoad: codeToBase64(codeOnPageLoad),\n isEmbeddingOnlyExternalResources,\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(isEmbeddingOnlyExternalResources ? initialValues.technicalDefinitions : technicalDefinitions),\n consentForwardingUniqueName: consentForwardingUniqueName || slugify(name),\n presetId: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.identifier,\n presetVersion: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.version\n };\n delete newMeta.presetCheck;\n\n if (queried) {\n cookie.setName(name);\n cookie.setStatus(status);\n cookie.setPurpose(purpose);\n cookie.setMeta(newMeta);\n cookie.setGroup(group);\n await cookie.patch();\n } else {\n const useGroup = cookieStore.groups.entries.get(group);\n const draft = new CookieModel(useGroup.cookies, {\n title: {\n rendered: name\n },\n content: {\n rendered: purpose,\n protected: false\n },\n status,\n meta: newMeta\n });\n await draft.persist();\n onCreated === null || onCreated === void 0 ? void 0 : onCreated(draft);\n } // Remove the item from the \"Services with empty privacy policy\" global notice\n\n\n const noticeId = \"#rcb-services-with-empty-privacy-policy-notice\";\n (_document$querySelect = document.querySelector(\"\".concat(noticeId, \" li[data-id=\\\"\").concat(id, \"\\\"]\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.classList.add(\"hidden\");\n\n if (!document.querySelectorAll(\"\".concat(noticeId, \" > ul > li:not(.hidden)\")).length) {\n var _document$querySelect2;\n\n (_document$querySelect2 = document.querySelector(noticeId)) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.remove();\n } // Navigate back after creation\n\n\n navigateAfterCreation && setTimeout(() => 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)), 0);\n } catch (e) {\n throw e.responseJSON.message;\n }\n }\n });\n const 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 const 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 providerPrivacyPolicyUrl: cookie.data.meta.providerPrivacyPolicyUrl,\n consentForwardingUniqueName: cookie.data.meta.consentForwardingUniqueName || cookie.data.slug,\n isEmbeddingOnlyExternalResources: cookie.data.meta.isEmbeddingOnlyExternalResources,\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 tagManagerOptInEventName: cookie.data.meta.tagManagerOptInEventName,\n tagManagerOptOutEventName: cookie.data.meta.tagManagerOptOutEventName,\n codeOptIn: cookie.data.meta.codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven: cookie.data.meta.executeCodeOptInWhenNoTagManagerConsentIsGiven,\n codeOptOut: cookie.data.meta.codeOptOut,\n executeCodeOptOutWhenNoTagManagerConsentIsGiven: cookie.data.meta.executeCodeOptOutWhenNoTagManagerConsentIsGiven,\n codeOnPageLoad: cookie.data.meta.codeOnPageLoad,\n deleteTechnicalDefinitionsAfterOptOut: cookie.data.meta.deleteTechnicalDefinitionsAfterOptOut,\n createContentBlocker: false,\n createContentBlockerId: undefined,\n presetCheck: undefined\n } : defaultValues; // Initially load the cookie if not yet done\n\n useEffect(() => {\n if (queried && !fetched) {\n // Fetch the cookie within the correct group collection so it gets removed\n // from the original cookie group when it got moved to another cookie group.\n const groupToFetch = [...cookieStore.groups.entries.values()].filter(({\n cookies\n }) => cookies.entries.get(id))[0] || group;\n groupToFetch.cookies.getSingle({\n params: {\n id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]); // Lazy load attributes of preset model\n\n useEffect(() => {\n if (presetModel && !presetModel.attributes) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]);\n useEffect(() => {\n if (presetModel && !presetModel.attributes && !presetModel.busy) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(() => {\n if (scrollToTop) {\n scrollTo(0);\n }\n }, []);\n const hasServiceByConsentForwardingUniqueName = useCallback(async slug => {\n try {\n return (await request({\n location: locationRestForwardCookieGet,\n params: {\n slug\n }\n })).filter(d => d.ID !== cookie.key).length > 0;\n } catch (e) {\n return false;\n }\n }, [cookie.key]);\n const FormServiceContext = FormServiceContextFactory.Context();\n\n if (queried && !fetched || presetModel && !presetModel.attributes) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n return /*#__PURE__*/React.createElement(FormServiceContext.Provider, {\n value: { ...contextValue,\n isEdit: fetched,\n isPro,\n isTemplateUpdate: fetched && presetModel ? ((_cookie$data = cookie.data) === null || _cookie$data === void 0 ? void 0 : (_cookie$data$meta = _cookie$data.meta) === null || _cookie$data$meta === void 0 ? void 0 : _cookie$data$meta.presetVersion) !== presetModel.data.version : false,\n isTcf: tcf,\n isDataProcessingInUnsafeCountries: ePrivacyUSA,\n isConsentForwarding: consentForwarding,\n hasServiceByConsentForwardingUniqueName,\n serviceGotScanned: !!(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 hasManager: hasManager > 0,\n dynamicFields: (attributes === null || attributes === void 0 ? void 0 : attributes.dynamicFields) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut3 = presetModel.attributes) === null || _presetModel$attribut3 === void 0 ? void 0 : _presetModel$attribut3.dynamicFields),\n essentialGroupId: essentialGroup.key,\n skipIfActiveComponents: activePlugins,\n // eslint-disable-next-line react/display-name\n renderCodeMirror: () => /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n }),\n notices: {\n group: [...contextValue.notices.group, {\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.groupNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut4 = presetModel.attributes) === null || _presetModel$attribut4 === void 0 ? void 0 : _presetModel$attribut4.groupNotice),\n severity: \"info\"\n }],\n providerPrivacyPolicyUrl: [{\n message: !fetched && presetModel !== null && presetModel !== void 0 && presetModel.attributes && !initialValues.providerPrivacyPolicyUrl ? __('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href=\"%s\" target=\"_blank\">set the corresponding page in your settings.</a>', \"#/settings\") : undefined,\n severity: \"warning\"\n }],\n createContentBlocker: [{\n message: createContentBlockerNotice,\n severity: \"info\"\n }],\n technicalHandling: [{\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 }\n }\n }, /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: onBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"cookie-\".concat(group.key, \"-\").concat(id),\n form: form\n }, FormServiceLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: onValuesChange\n }), /*#__PURE__*/React.createElement(FormService, null))));\n});\nexport { CookieEditForm };","import { useRouteMatch } from \"react-router-dom\";\nimport { CookieModel } from \"../models\";\nimport { useRouteCookieGroup } from \".\";\n\nconst useRouteCookie = () => {\n const routeGroup = useRouteCookieGroup();\n const {\n group\n } = routeGroup;\n const {\n params\n } = useRouteMatch(); // Get cookie or return draft object\n\n const id = isNaN(+params.cookie) ? 0 : +params.cookie;\n const queried = !!params.cookie;\n const cookie = group.cookies.entries.get(+params.cookie) || new CookieModel(group.cookies, {\n id: 0\n });\n return {\n routeGroup,\n cookie,\n id,\n queried,\n fetched: cookie.key !== 0\n };\n};\n\nexport { useRouteCookie };","import _Form from \"antd/es/form\";\nimport { useFormHandler } from \".\";\nimport { useCallback } from \"react\";\nimport { Notices, TECHNICAL_DEFINITION_DEFAULTS } from \"../components\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nfunction useFormServiceHandler(opts) {\n var _groups$filter, _groups$filter$;\n\n const {\n setCookiesViaManager,\n selectedGroup,\n groups,\n contentBlockerTemplates,\n allowContentBlockerCreation,\n shouldUncheckContentBlockerCheckbox,\n preset,\n attributes,\n __,\n _i\n } = opts; // Determine the group to use for a given preset, otherwise use current opened group tab\n\n const useGroup = attributes ? attributes.group ? ((_groups$filter = groups.filter(({\n name\n }) => name === attributes.group)) === null || _groups$filter === void 0 ? void 0 : (_groups$filter$ = _groups$filter[0]) === null || _groups$filter$ === void 0 ? void 0 : _groups$filter$.id) || \"preset-group-not-found\" : undefined : selectedGroup;\n const defaultValues = {\n // General\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 providerPrivacyPolicyUrl: (attributes === null || attributes === void 0 ? void 0 : attributes.providerPrivacyPolicyUrl) || \"\",\n consentForwardingUniqueName: (attributes === null || attributes === void 0 ? void 0 : attributes.consentForwardingUniqueName) || (preset === null || preset === void 0 ? void 0 : preset.identifier) || \"\",\n isEmbeddingOnlyExternalResources: (attributes === null || attributes === void 0 ? void 0 : attributes.isEmbeddingOnlyExternalResources) || 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 // Technical\n technicalDefinitions: attributes !== null && attributes !== void 0 && attributes.technicalDefinitions ? JSON.parse(JSON.stringify(attributes.technicalDefinitions)) : [TECHNICAL_DEFINITION_DEFAULTS],\n // Handling\n codeDynamics: (attributes === null || attributes === void 0 ? void 0 : attributes.codeDynamics) || {},\n tagManagerOptInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.tagManagerOptInEventName) || \"\",\n tagManagerOptOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.tagManagerOptOutEventName) || \"\",\n codeOptIn: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptIn) || \"\",\n executeCodeOptInWhenNoTagManagerConsentIsGiven: (attributes === null || attributes === void 0 ? void 0 : attributes.executeCodeOptInWhenNoTagManagerConsentIsGiven) || false,\n codeOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOut) || \"\",\n codeOnPageLoad: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOnPageLoad) || \"\",\n executeCodeOptOutWhenNoTagManagerConsentIsGiven: (attributes === null || attributes === void 0 ? void 0 : attributes.executeCodeOptOutWhenNoTagManagerConsentIsGiven) || false,\n deleteTechnicalDefinitionsAfterOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.deleteTechnicalDefinitionsAfterOptOut) || false,\n createContentBlocker: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlocker) === \"boolean\" ? attributes.createContentBlocker : contentBlockerTemplates.length > 0 && allowContentBlockerCreation && !shouldUncheckContentBlockerCheckbox,\n createContentBlockerId: attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerId,\n presetCheck: !preset\n };\n const handlers = useFormHandler({ ...opts,\n defaultValues,\n i18n: {\n successMessage: __(\"You have successfully saved the service.\"),\n validationError: __(\"The service could not be saved due to missing/invalid form values.\"),\n unloadConfirm: __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.')\n }\n });\n const onValuesChange = useCallback((changedValues, values) => {\n handlers.onValuesChange(changedValues, values);\n const {\n technicalDefinitions\n } = changedValues; // Listen to `isSessionDuration` changes and validate the `required` field\n // Listen to `type` changes and validate the technical host field\n\n const td = (technicalDefinitions || []).filter(Boolean);\n\n if (td.length === 1) {\n const tdChangedKeys = Object.keys(td[0]);\n\n if (tdChangedKeys.length === 1 && [\"isSessionDuration\", \"type\"].indexOf(tdChangedKeys[0]) > -1) {\n setTimeout(() => handlers.form.validateFields(), 100); // wait a bit so there are not false-positives\n }\n }\n }, [handlers.onValuesChange, handlers.form]);\n const {\n serviceIsManager\n } = getManagerDependingVariables(setCookiesViaManager, preset === null || preset === void 0 ? void 0 : preset.identifier);\n return { ...handlers,\n onValuesChange,\n useGroup,\n defaultValues,\n contextValue: {\n __,\n _i,\n setCookiesViaManager,\n serviceIsManager,\n presetCheck: !!preset,\n defaultPresetValues: preset ? defaultValues : {},\n allowLegalBasisLegalRequirement: (preset === null || preset === void 0 ? void 0 : preset.identifier) === \"real-cookie-banner\",\n groups,\n allowContentBlockerCreation,\n contentBlockerTemplates,\n notices: {\n group: [{\n message: useGroup === \"preset-group-not-found\" ? __(\"The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.\", attributes.group) : undefined,\n severity: \"warning\"\n }, {\n message: /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n key: \"groupDiff\",\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: preset && typeof useGroup === \"number\" && handlers.hasTrackedFieldDifferenceToDefaultValue(\"group\") && getFieldValue(\"group\") !== useGroup ? __(\"The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?\") : undefined,\n severity: \"warning\"\n }]\n }))\n }]\n }\n }\n };\n}\n\nexport { useFormServiceHandler };","/**\n * Unicode-safe base64 encoding.\n *\n * @see https://stackoverflow.com/a/30106551/5506547\n */\nfunction base64EncodeUnicodeSafe(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(parseInt(p1, 16))));\n}\n\nexport { base64EncodeUnicodeSafe };","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 const {\n optionStore: {\n others: {\n assetsUrl\n }\n }\n } = useStores();\n const logoUrl = \"\".concat(assetsUrl, \"cookie-experts.svg\");\n const openDialog = useCallback(() => {\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: () => _Modal.destroyAll()\n }, __(\"Close\")))\n });\n }, []);\n return {\n logoUrl,\n openDialog\n };\n}\n\nexport { useCookieExpertsModal };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { CookieGroupModel } from \"../models\";\n\nconst useRouteCookieGroup = () => {\n const {\n params: {\n cookieGroup\n }\n } = useRouteMatch();\n const {\n cookieStore\n } = useStores(); // Get cookie group or return draft object\n\n const id = isNaN(+cookieGroup) ? 0 : +cookieGroup;\n const queried = !!cookieGroup;\n const group = cookieStore.groups.entries.get(id) || new CookieGroupModel(cookieStore.groups, {\n id: 0\n });\n const link = \"#/cookies\";\n const editLink = useCallback(({\n key\n }) => \"#/cookies/\".concat(group.key, \"/edit/\").concat(key), [group]);\n const addCookieLink = \"#/cookies/\".concat(group.key, \"/new\");\n return {\n group,\n id,\n queried,\n fetched: group.key !== 0,\n link,\n editLink,\n addCookieLink\n };\n};\n\nexport { useRouteCookieGroup };"],"names":["isUrl","url","test","LearnMoreTag","style","label","__","useStyle","cursor","React","createElement","onClick","window","open","Notices","notices","Fragment","map","message","severity","className","concat","key","dangerouslySetInnerHTML","__html","FormHeadline","children","description","extra","offset","wrapperCol","borderBottom","margin","marginBottom","FormServiceLayout","labelCol","span","FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME","FormValueDifferFromPresetNotice","containerRef","form","_i","isTemplateUpdate","pseudoElements","setPseudoElements","useState","applied","setApplied","updatePseudoElements","useCallback","current","p","querySelectorAll","useLayoutEffect","interval","setInterval","async","getObject","delayNextCheck","maxTries","i","Promise","r","setTimeout","waitObject","then","document","addEventListener","clearInterval","removeEventListener","length","tag","color","forEach","click","marginTop","FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT","FormValueDifferFromPresetTag","useModal","valueName","difference","apply","newValueText","renderDiff","widthOfRef","placement","noBr","popoverProps","defaultPresetValues","defaultValue","isModalVisible","setIsModalVisible","width","noStyle","shouldUpdate","prevValues","nextValues","getFieldValue","setFieldsValue","_widthOfRef$current","value","diff","undefined","handleApply","dispatchEvent","CustomEvent","clientWidth","descriptionComponent","contentComponent","oldStr","newStr","context","outputFormat","tagComponent","display","visible","onOk","onCancel","okText","cancelText","destroyTooltipOnHide","overlayStyle","content","title","FormContentBlockerContextFactory","static","this","createContext","useFormContentBlocker","useContext","Context","FormServiceContextFactory","useFormService","useFormHandler","defaultValues","handleSave","i18n","initialHasChanges","trackFieldsDifferFromDefaultValues","isBusy","setIsBusy","hasChanges","setHasChanges","trackedFieldsDifferFromDefaultValues","onFinish","values","resetFields","successMessage","e","onFinishFailed","errorInfo","validationError","errorFields","getFieldInstance","name","parentElement","scrollIntoView","behavior","block","onBeforeUnload","unloadConfirmInitialActive","unloadConfirm","onValuesChange","changedValues","splice","trackFieldChange","push","hasTrackedFieldDifferenceToDefaultValue","field","indexOf","getCookieTypeLocalizationMap","http","abbr","backgroundColor","local","session","flash","indexedDb","CodeMirror","settings","onChange","ref","useRef","codeEditor","useEffect","codemirror","initialize","on","instance","getValue","noop","target","TECHNICAL_DEFINITION_DEFAULTS","type","host","duration","durationUnit","isSessionDuration","purpose","FormServiceFieldGeneralName","required","rules","readOnly","FormServiceFieldGeneralStatus","FormServiceFieldGeneralGroup","serviceIsManager","setCookiesViaManager","essentialGroupId","groups","group","groupNotices","managerLabel","getManagerDependingVariables","id","disabled","curValues","FormServiceFieldGeneralProvider","FormServiceFieldGeneralPurpose","autoSize","minRows","FormServiceFieldGeneralProviderPrivacyPolicyUrl","providerPrivacyPolicyUrl","providerPrivacyPolicyUrlNotices","slugify","str","replace","toLowerCase","from","l","RegExp","charAt","FormServiceFieldGeneralConsentForwardingUniqueName","isConsentForwarding","isEdit","hasServiceByConsentForwardingUniqueName","validateConsentForwardingUniqueName","slug","overwrite","found","matchRegexp","consentForwardingUniqueName","foundGenerated","match","_","g1","g2","isEssentialGroup","nameSlug","validateTrigger","validator","placeholder","Field","props","allowLegalBasisLegalRequirement","FormServiceFieldGeneralLegalBasis","strong","aGdpr","href","rel","FormServiceFieldGeneralDataProcessingInUnsafeCountries","isDataProcessingInUnsafeCountries","dataProcessingInUnsafeCountriesLabel","ePrivacyUSA","valuePropName","checked","FormServiceFieldGeneralIsEmbeddingOnlyExternalResources","isEmbeddingOnlyExternalResourcesLabel","FormServiceFieldGeneralCompose","FormServiceFieldTechnicalDefinitionsCookieType","cookieTypeLocalized","FormServiceFieldTechnicalDefinitionsLayout","fieldKey","Object","keys","FormServiceFieldTechnicalDefinitionsCookieName","_prevValues$technical","_nextValues$technical","technicalDefinitions","cookieName","filter","Array","isArray","code","FormServiceFieldTechnicalDefinitionsCookieHost","_prevValues$technical2","_nextValues$technical2","resolve","reject","startsWith","substr","FormServiceFieldTechnicalDefinitionsCookieDuration","durations","useMemo","s","m","h","d","mo","y","float","min","addonAfter","maxWidth","FormServiceFieldTechnicalDefinitionsCookiePurpose","rows","maxRows","DiffTable","initialValues","isEmbeddingOnlyExternalResources","FormServiceFieldTechnicalDefinitionsTable","isDiff","diffCalculate","oldValue","newValue","numberedIndexedForPosition","oldEntriesModified","reduce","a","idx","modified","definition","idxName","oldModified","position","Boolean","oldEntriesComposedAdded","added","includes","SortableBodyConnected","SortableItem","DragHandle","tbodyRef","SortableBody","MenuOutlined","handleSortStart","node","helper","childNodes","td","index","offsetWidth","onSortEnd","useDragHandle","oldIndex","newIndex","onSortStart","helperContainer","useFormServiceTechnicalDefinitionsTable","fields","add","remove","move","aEprivacy","align","QuestionCircleFilled","DeleteOutlined","colSpan","PlusOutlined","rest","FormServiceFieldHandlingTagManagerEventName","hasManager","addonBefore","marginRight","tagManagerOptInEventName","tagManagerOptOutEventName","inEventName","outEventName","DYNAMICS_VARIABLE_REGEXP","DYNAMICS_SEARCH_IN","FormServiceFieldHandlingDynamicField","dynamicFields","k","searchInResolved","join","matches","matchAll","formName","invalidMessage","example","expression","hint","find","dynamicField","pattern","FormServiceFieldHandlingSkipIfActiveNotice","skipIfActiveComponents","componentKeys","components","split","plugin","flat","uniq","FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven","isPro","executeCodeWhenNoTagManagerConsentIsGivenLabel","u","FormServiceFieldHandlingCodeOptIn","renderCodeMirror","FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut","deleteTechnicalDefinitionsAfterOptOutLabel","FormServiceFieldHandlingCodeOptOut","createHiddenFormItemsWithCodeMirror","opacity","height","FormServiceFieldHandlingCodeOnPageLoad","FormServiceFieldHandlingCompose","serviceGotScanned","contentBlockerTemplates","technicalHandling","technicalHandlingNotices","presetDefaultName","FormServiceFieldCreateContentBlocker","allowContentBlockerCreation","createContentBlocker","createContentBlockerNotices","dependencies","identifier","subHeadline","FormServiceFieldPresetCheck","presetCheck","transform","FormService","I18nContext","Provider","textAlign","CookieEditForm","preset","overwriteAttributes","navigateAfterCreation","scrollToTop","onCreated","_presetModel$attribut","_cookie$data","_cookie$data$meta","_presetModel$attribut2","_presetModel$attribut3","_presetModel$attribut4","_presetModel$attribut5","routeGroup","link","cookie","queried","fetched","useRouteCookieGroup","params","useRouteMatch","isNaN","cookies","entries","get","useRouteCookie","history","useHistory","cookieStore","optionStore","tcf","consentForwarding","others","useEncodedStringForScriptInputs","activePlugins","essentialGroup","presetModel","presetsCookie","sortedGroups","data","attributes","contextValue","opts","_groups$filter","_groups$filter$","selectedGroup","shouldUncheckContentBlockerCheckbox","useGroup","status","provider","legalBasis","JSON","parse","stringify","codeDynamics","codeOptIn","executeCodeOptInWhenNoTagManagerConsentIsGiven","codeOptOut","codeOnPageLoad","executeCodeOptOutWhenNoTagManagerConsentIsGiven","deleteTechnicalDefinitionsAfterOptOut","createContentBlockerId","handlers","tdChangedKeys","validateFields","useFormServiceHandler","version","_document$querySelect","codeToBase64","btoa","encodeURIComponent","p1","String","fromCharCode","parseInt","base64EncodeUnicodeSafe","meta","newMeta","presetId","presetVersion","setName","setStatus","setPurpose","setMeta","setGroup","patch","draft","rendered","protected","persist","noticeId","_document$querySelect2","querySelector","classList","location","slice","responseJSON","createContentBlockerNotice","raw","getSingle","fetchAttributes","busy","scrollTo","request","ID","FormServiceContext","active","paragraph","isTcf","scanned","cm_settings","groupNotice","technicalHandlingNotice","spinning","Prompt","useCookieExpertsModal","assetsUrl","logoUrl","openDialog","icon","closable","okButtonProps","src","paddingTop","size","textDecoration","cookieGroup","editLink","addCookieLink"],"sourceRoot":""}
1
+ {"version":3,"file":"932.lite.js?ver=cba370a1023bd0e9d17c","mappings":"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","sources":["webpack:///../../frontend-packages/headless-content-unblocker/src/utils/isUrl.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/common/learnMoreTag.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/common/notices.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/headline.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/valueDifferFromPresetNotice.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/waitObject.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/valueDifferFromPresetTag.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/contexts/formContentBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/contexts/formService.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormHandler.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///./src/public/ts/components/codemirror.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/index.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/status.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/group.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/provider.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/purpose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/providerPrivacyPolicyUrl.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/utils/slugify.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/consentForwardingUniqueName.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/legalBasis.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/dataProcessingInUnsafeCountries.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/isEmbeddingOnlyExternalResources.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/general/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/type.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/name.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/host.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/utils/isHost.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/duration.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/columns/purpose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/technical/definitions/table.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormServiceTechnicalDefinitionsTable.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/tagManagerEventName.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/dynamicField.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/skipIfActiveNotice.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/executeCodeWhenNoTagManagerConsentIsGiven.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOptIn.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/deleteTechnicalDefinitionsAfterOptOut.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOpOut.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/codeOnPageLoad.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/handling/compose.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/createContentBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/fields/presetCheck.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/components/forms/service/form.tsx","webpack:///./src/public/ts/components/config/cookies/form.tsx","webpack:///./src/public/ts/hooks/useRouteCookie.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/hooks/useFormServiceHandler.tsx","webpack:///./src/public/ts/utils/base64EncodeUnicodeSafe.tsx","webpack:///./src/public/ts/hooks/useCookieExpertsModal.tsx","webpack:///./src/public/ts/hooks/useRouteCookieGroup.tsx"],"sourcesContent":["/**\n * Check if a given string is an URL.\n *\n * @see https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php\n */\nfunction isUrl(url) {\n const pattern = /^(?:(?:https?|ftp):\\/\\/)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:\\/\\S*)?$/;\n return !!pattern.test(url);\n}\n\nexport { isUrl };","import _Tag from \"antd/es/tag\";\nimport { QuestionCircleFilled } from \"@ant-design/icons\";\nimport { useI18n } from \"../../contexts\";\n\nconst LearnMoreTag = ({\n url,\n style = undefined,\n label\n}) => {\n const {\n __\n } = useI18n();\n const useStyle = {\n cursor: \"pointer\",\n ...style\n };\n return /*#__PURE__*/React.createElement(_Tag, {\n style: useStyle,\n onClick: () => window.open(url, \"_blank\")\n }, /*#__PURE__*/React.createElement(QuestionCircleFilled, null), \" \", label || __(\"Learn more\"));\n};\n\nexport { LearnMoreTag };","const Notices = ({\n notices\n}) => /*#__PURE__*/React.createElement(React.Fragment, null, notices === null || notices === void 0 ? void 0 : notices.map(({\n message,\n severity\n}) => message ? severity ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-\".concat(severity, \" below-h2 notice-alt\"),\n key: message\n}, typeof message === \"string\" ? /*#__PURE__*/React.createElement(\"p\", {\n dangerouslySetInnerHTML: {\n __html: message\n }\n}) : /*#__PURE__*/React.createElement(\"p\", null, message)) : message : null));\n\nexport { Notices };","import _Form from \"antd/es/form\";\n\nconst FormHeadline = ({\n children,\n description,\n extra,\n offset\n}) => /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n 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), extra);\n\nexport { FormHeadline };","export const FormServiceLayout = {\n labelCol: {\n span: 6\n },\n wrapperCol: {\n span: 16\n }\n};\nexport * from \"./fields\";\nexport * from \"./form\";","import _Form from \"antd/es/form\";\nimport _Tag from \"antd/es/tag\";\nimport { useCallback, useLayoutEffect, useState } from \"react\";\nimport { useFormContentBlocker, useFormService } from \"../../contexts\";\nimport { FormServiceLayout, FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT } from \".\";\nimport { Notices } from \"../common\";\nimport { waitObject } from \"@devowl-wp/cookie-consent-web-client\";\nconst FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME = \"rcb-value-differ-from-preset-pseudo\";\n\nconst FormValueDifferFromPresetNotice = ({\n containerRef,\n form\n}) => {\n const {\n __,\n _i,\n isTemplateUpdate\n } = form === \"service\" ? useFormService() : useFormContentBlocker();\n const [pseudoElements, setPseudoElements] = useState([]);\n const [applied, setApplied] = useState(false);\n const updatePseudoElements = useCallback(() => {\n if (containerRef.current) {\n const p = [...containerRef.current.querySelectorAll(\".\".concat(FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME))];\n setPseudoElements(p);\n return p;\n }\n\n return [];\n }, [applied]);\n useLayoutEffect(() => {\n const interval = setInterval(updatePseudoElements, 800);\n waitObject(() => containerRef.current, 100).then(updatePseudoElements);\n document.addEventListener(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT, updatePseudoElements);\n return () => {\n clearInterval(interval);\n document.removeEventListener(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT, updatePseudoElements);\n };\n }, []);\n\n const handleApply = () => {\n const p = updatePseudoElements();\n p.forEach(p => p.click());\n setPseudoElements([]);\n setApplied(true);\n };\n\n return isTemplateUpdate && (pseudoElements.length > 0 || applied) ? /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n marginBottom: 0\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n severity: \"info\",\n message: /*#__PURE__*/React.createElement(React.Fragment, null, _i(__(\"The blocker template has been updated to provide current legal and technical information. Fields with outdated values or values you manually adjusted are marked with {{tag/}}. You can apply all changes with one click!\"), {\n tag: /*#__PURE__*/React.createElement(_Tag, {\n color: \"blue\"\n }, __(\"Differing from template\"))\n }), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"a\", {\n className: \"button \".concat(pseudoElements.length === 0 && applied ? \"button-disabled\" : \"\"),\n onClick: handleApply,\n style: {\n marginTop: 5\n }\n }, pseudoElements.length === 0 && applied ? __(\"Applied!\") : __(\"Use default values\")))\n }]\n })) : null;\n};\n\nexport { FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME, FormValueDifferFromPresetNotice };","/**\n * Wait for a given object which is calculated through a callback.\n */\nasync function waitObject(getObject, delayNextCheck = 500, maxTries = 0) {\n let i = 0;\n\n while (!getObject()) {\n if (maxTries > 0 && i >= maxTries) {\n return undefined;\n }\n\n await new Promise(r => setTimeout(r, delayNextCheck));\n i++;\n }\n\n return getObject();\n}\n\nexport { waitObject };","import _Form from \"antd/es/form\";\nimport _Popover from \"antd/es/popover\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Modal from \"antd/es/modal\";\nimport _Tag from \"antd/es/tag\";\nimport { useState } from \"react\";\nimport { useFormContentBlocker, useFormService } from \"../../contexts\";\nimport { FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME } from \".\";\nimport Diff from \"react-code-diff-lite\";\nconst FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT = \"RCB/FormValueDifferFromPresetTag/Apply\";\n\nfunction FormValueDifferFromPresetTag({\n useModal,\n form,\n valueName,\n difference,\n apply,\n newValueText,\n renderDiff,\n widthOfRef,\n placement = \"bottomLeft\",\n noBr = false,\n className,\n style,\n popoverProps\n}) {\n const {\n __,\n defaultPresetValues: {\n [valueName]: defaultValue\n }\n } = form === \"service\" ? useFormService() : useFormContentBlocker();\n const [isModalVisible, setIsModalVisible] = useState(false); // Memoize width as it could be `undefined` due to UI lacks\n\n let width;\n return typeof defaultValue !== \"undefined\" && /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues[valueName] !== nextValues[valueName]\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n var _widthOfRef$current;\n\n const value = getFieldValue(valueName);\n const diff = difference ? difference(value, defaultValue) : value !== defaultValue ? true : undefined;\n\n const handleApply = () => {\n if (typeof apply === \"function\") {\n apply(diff, setFieldsValue, value);\n } else {\n setFieldsValue({\n [valueName]: defaultValue\n });\n }\n\n document.dispatchEvent(new CustomEvent(FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT));\n setIsModalVisible(false);\n };\n\n width = (widthOfRef === null || widthOfRef === void 0 ? void 0 : (_widthOfRef$current = widthOfRef.current) === null || _widthOfRef$current === void 0 ? void 0 : _widthOfRef$current.clientWidth) || width;\n\n if (!diff) {\n return null;\n }\n\n const descriptionComponent = /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n style: {\n marginBottom: 10\n }\n }, __(\"The value you entered is different from the value in the template.\"));\n const contentComponent = /*#__PURE__*/React.createElement(React.Fragment, null, newValueText !== false && /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, newValueText || __(\"New value:\"))), typeof renderDiff === \"function\" ? renderDiff(defaultValue, diff) : /*#__PURE__*/React.createElement(Diff, {\n oldStr: value,\n newStr: defaultValue,\n context: 100,\n outputFormat: \"line-by-line\"\n }));\n const tagComponent = /*#__PURE__*/React.createElement(_Tag, {\n color: \"blue\",\n style: {\n cursor: \"pointer\",\n ...style\n },\n className: className,\n onClick: () => useModal && setIsModalVisible(true)\n }, __(\"Differing from template\"), /*#__PURE__*/React.createElement(\"span\", {\n className: FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME,\n style: {\n display: \"none\"\n },\n onClick: handleApply\n }));\n return /*#__PURE__*/React.createElement(React.Fragment, null, useModal ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Modal, {\n visible: isModalVisible,\n onOk: handleApply,\n onCancel: () => setIsModalVisible(false),\n okText: __(\"Use default value\"),\n cancelText: __(\"Cancel\"),\n width: \"calc(100% - 50px)\"\n }, descriptionComponent, contentComponent), tagComponent) : /*#__PURE__*/React.createElement(_Popover, _extends({\n destroyTooltipOnHide: true,\n overlayStyle: {\n width\n },\n content: /*#__PURE__*/React.createElement(\"div\", {\n className: \"wp-clearfix\"\n }, descriptionComponent, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"10px 0\"\n }\n }, contentComponent), /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: handleApply\n }, __(\"Use default value\"))),\n title: undefined,\n placement: placement\n }, popoverProps), tagComponent), !noBr && /*#__PURE__*/React.createElement(\"br\", null));\n });\n}\n\nexport { FormValueDifferFromPresetTag, FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass FormContentBlockerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nFormContentBlockerContextFactory.context = void 0;\n\nfunction useFormContentBlocker() {\n return useContext(FormContentBlockerContextFactory.Context());\n}\n\nexport { FormContentBlockerContextFactory, useFormContentBlocker };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass FormServiceContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nFormServiceContextFactory.context = void 0;\n\nfunction useFormService() {\n return useContext(FormServiceContextFactory.Context());\n}\n\nexport { FormServiceContextFactory, useFormService };","import _message from \"antd/es/message\";\nimport _Form from \"antd/es/form\";\nimport { useCallback, useState } from \"react\";\n\nfunction useFormHandler({\n defaultValues,\n handleSave,\n i18n,\n initialHasChanges,\n trackFieldsDifferFromDefaultValues = []\n}) {\n const [form] = _Form.useForm();\n\n const [isBusy, setIsBusy] = useState(false);\n const [hasChanges, setHasChanges] = useState(initialHasChanges || false); // Do not hold in state as it could lead to input focus loss due to reactivity. Use `hasTrackedFieldDifferenceToDefaultValue` instead.\n\n const trackedFieldsDifferFromDefaultValues = [];\n\n const hasTrackedFieldDifferenceToDefaultValue = field => trackedFieldsDifferFromDefaultValues.indexOf(field) > -1;\n\n const onFinish = useCallback(async values => {\n setIsBusy(true);\n\n try {\n await handleSave(values);\n form.resetFields();\n\n _message.success(i18n.successMessage);\n\n setHasChanges(false);\n } catch (e) {\n _message.error(e);\n } finally {\n setIsBusy(false);\n }\n }, [form, handleSave]);\n const onFinishFailed = useCallback(errorInfo => {\n _message.error(i18n.validationError);\n\n if (errorInfo.errorFields.length) {\n // form.scrollToField() does not play nicely with some controls (e.g. `RadioGroup`), so use custom implementation\n const instance = form.getFieldInstance(errorInfo.errorFields[0].name);\n instance.parentElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\"\n });\n }\n }, [form, i18n]);\n const onBeforeUnload = useCallback(() => !hasChanges ? true : initialHasChanges && i18n.unloadConfirmInitialActive ? i18n.unloadConfirmInitialActive : i18n.unloadConfirm, [hasChanges, i18n, initialHasChanges]);\n const onValuesChange = useCallback((changedValues, values) => {\n if (trackFieldsDifferFromDefaultValues && defaultValues) {\n // Change without reactivity and keep reference so `hasTrackedFieldDifferenceToDefaultValue` keeps intact\n trackedFieldsDifferFromDefaultValues.splice(0, trackedFieldsDifferFromDefaultValues.length);\n\n for (const trackFieldChange of trackFieldsDifferFromDefaultValues) {\n const currentValue = values[trackFieldChange];\n const defaultValue = defaultValues[trackFieldChange];\n\n if (currentValue !== defaultValue) {\n trackedFieldsDifferFromDefaultValues.push(trackFieldChange);\n }\n }\n }\n\n setHasChanges(true);\n }, [trackFieldsDifferFromDefaultValues, defaultValues]);\n return {\n form,\n isBusy,\n hasChanges,\n hasTrackedFieldDifferenceToDefaultValue,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange\n };\n}\n\nexport { useFormHandler };","import { Fragment } from \"react\";\nimport { CookieProperty } from \".\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\n\nconst CookiePropertyList = ({\n cookie: {\n purpose,\n provider,\n providerPrivacyPolicyUrl,\n legalBasis,\n ePrivacyUSA,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n codeDynamics\n },\n isEssentialGroup\n}) => {\n const {\n i18n,\n ePrivacyUSA: ePrivacyUSAEnabled\n } = useBannerOrBlocker();\n const types = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(Fragment, null, !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicyUrl && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.providerPrivacyPolicyUrl,\n value: providerPrivacyPolicyUrl\n }), !!ePrivacyUSAEnabled && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.ePrivacyUSA,\n value: ePrivacyUSA,\n printValueAs: \"boolean\"\n }), !isEmbeddingOnlyExternalResources && technicalDefinitions.map(({\n type,\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n purpose\n }) => /*#__PURE__*/React.createElement(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.host,\n value: /*#__PURE__*/React.createElement(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), /*#__PURE__*/React.createElement(CookieProperty, {\n label: i18n.duration,\n value: [\"local\", \"indexedDb\", \"flash\"].indexOf(type) > -1 ? i18n.noExpiration : isSessionDuration || type === \"session\" ? \"Session\" : \"\".concat(duration, \" \").concat(i18n.durationUnit[durationUnit])\n }))));\n};\n\nfunction getCookieTypeLocalizationMap() {\n return {\n http: {\n name: \"HTTP Cookie\",\n abbr: \"HTTP\",\n backgroundColor: \"black\"\n },\n local: {\n name: \"Local Storage\",\n abbr: \"Local\",\n backgroundColor: \"#b3983c\"\n },\n session: {\n name: \"Session Storage\",\n abbr: \"Session\",\n backgroundColor: \"#3c99b3\"\n },\n flash: {\n name: \"Flash Local Shared Object\",\n abbr: \"Flash\",\n backgroundColor: \"#b33c3c\"\n },\n indexedDb: {\n name: \"IndexedDB\",\n abbr: \"I-DB\",\n backgroundColor: \"#4ab33c\"\n }\n };\n}\n\nexport { CookiePropertyList, getCookieTypeLocalizationMap };","import { useRef, useEffect, useCallback } from \"react\";\nimport wp from \"wp\";\n\nconst CodeMirror = ({\n settings = {},\n value = \"\",\n onChange\n}) => {\n const ref = useRef();\n const {\n codeEditor\n } = wp;\n useEffect(() => {\n // Check if the current profile allows syntax highlighting\n if (codeEditor) {\n const {\n codemirror\n } = codeEditor.initialize(ref.current, settings);\n codemirror.on(\"change\", 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 const noop = useCallback(() => {// Silence is golden.\n }, []);\n return /*#__PURE__*/React.createElement(\"textarea\", {\n ref: ref,\n value: value,\n onChange: codeEditor ? noop : ({\n target: {\n value\n }\n }) => onChange(value),\n style: {\n width: \"100%\"\n }\n });\n};\n\nexport { CodeMirror };","export const TECHNICAL_DEFINITION_DEFAULTS = {\n type: \"http\",\n name: \"\",\n host: \"\",\n duration: undefined,\n durationUnit: \"y\",\n isSessionDuration: false,\n purpose: \"\"\n};\nexport * from \"./definitions\";","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralName = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"name\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __('Each service used should have a descriptive name that is understandable to a non-professional user. Example: \"Google Analytics\".')));\n};\n\nexport { FormServiceFieldGeneralName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useFormService } from \"../../../../../contexts\";\n\nconst FormServiceFieldGeneralStatus = () => {\n const {\n __\n } = useFormService();\n return /*#__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 an option!\")\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.')));\n};\n\nexport { FormServiceFieldGeneralStatus };","import _Form from \"antd/es/form\";\nimport _Select from \"antd/es/select\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldGeneralGroup = () => {\n const {\n __,\n serviceIsManager,\n setCookiesViaManager,\n essentialGroupId,\n groups,\n notices: {\n group: groupNotices\n }\n } = useFormService();\n const ref = useRef();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n return /*#__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.map(({\n id,\n name\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name)))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"group\",\n widthOfRef: ref,\n style: {\n marginBottom: 3\n },\n renderDiff: value => /*#__PURE__*/React.createElement(_Select, {\n value: value,\n disabled: true\n }, groups.map(({\n id,\n name\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: id,\n value: id\n }, name)))\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.\")), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, curValues) => prevValues.group !== curValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: serviceIsManager && getFieldValue(\"group\") !== essentialGroupId ? __(\"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.\", managerLabel) : undefined,\n severity: \"warning\"\n }, ...groupNotices]\n })));\n};\n\nexport { FormServiceFieldGeneralGroup };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralProvider = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"provider\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\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.')));\n};\n\nexport { FormServiceFieldGeneralProvider };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormValueDifferFromPresetTag } from \"../../../valueDifferFromPresetTag\";\n\nconst FormServiceFieldGeneralPurpose = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n return /*#__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 ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"purpose\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input.TextArea, {\n autoSize: {\n minRows: 3\n },\n value: value,\n readOnly: true\n })\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.\")));\n};\n\nexport { FormServiceFieldGeneralPurpose };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralProviderPrivacyPolicyUrl = () => {\n const {\n __,\n notices: {\n providerPrivacyPolicyUrl: providerPrivacyPolicyUrlNotices\n }\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Privacy policy of the provider\"),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"providerPrivacyPolicyUrl\",\n noStyle: true,\n rules: [{\n required: true,\n type: \"url\",\n message: __(\"Please provide a valid URL!\")\n }]\n }, /*#__PURE__*/React.createElement(_Input, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"providerPrivacyPolicyUrl\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(_Input, {\n value: value,\n readOnly: true\n })\n }), __(\"Provide a direct link to the privacy policy of the provider that runs this service (in the language of your website).\")), /*#__PURE__*/React.createElement(Notices, {\n notices: providerPrivacyPolicyUrlNotices\n }));\n};\n\nexport { FormServiceFieldGeneralProviderPrivacyPolicyUrl };","/**\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 const from = \"àáäâèéëêìíïîòóöôùúüûñç·/_,:;\";\n const to = \"aaaaeeeeiiiioooouuuunc------\";\n\n for (let 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 _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useCallback } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { slugify } from \"../../../../../utils\";\n\nconst FormServiceFieldGeneralConsentForwardingUniqueName = () => {\n const {\n __,\n essentialGroupId,\n isConsentForwarding,\n isEdit,\n hasServiceByConsentForwardingUniqueName\n } = useFormService();\n const validateConsentForwardingUniqueName = useCallback(async (slug, overwrite) => {\n const found = await hasServiceByConsentForwardingUniqueName(slug);\n\n if (found) {\n if (!overwrite) {\n throw __(\"A service with the same unique name already exists.\");\n } else {\n // Consent Forwarding is deactivated, so we need to generate an unique name for the user\n const matchRegexp = /^(.*)-(\\d+)$/;\n let consentForwardingUniqueName = slug;\n let foundGenerated = found;\n\n while (foundGenerated) {\n consentForwardingUniqueName = consentForwardingUniqueName.match(matchRegexp) ? consentForwardingUniqueName.replace(matchRegexp, (_, g1, g2) => \"\".concat(g1, \"-\").concat(+g2 + 1)) : \"\".concat(consentForwardingUniqueName, \"-1\");\n foundGenerated = await hasServiceByConsentForwardingUniqueName(consentForwardingUniqueName);\n } // Overwrite in form\n\n\n overwrite(consentForwardingUniqueName);\n }\n }\n }, [hasServiceByConsentForwardingUniqueName]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue,\n setFieldsValue\n }) => {\n const isEssentialGroup = getFieldValue(\"group\") === essentialGroupId;\n const name = getFieldValue(\"name\");\n const nameSlug = slugify(name);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Consent Forwarding Unique Name\"),\n required: true,\n style: {\n display: isConsentForwarding ? undefined : \"none\"\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"consentForwardingUniqueName\",\n noStyle: true,\n validateTrigger: \"onBlur\",\n rules: [{\n validator: async (rules, value) => {\n const allowOverwrite = isConsentForwarding ? !value : true;\n return validateConsentForwardingUniqueName(value || nameSlug, allowOverwrite ? consentForwardingUniqueName => setFieldsValue({\n consentForwardingUniqueName\n }) : undefined);\n }\n }]\n }, /*#__PURE__*/React.createElement(_Input, {\n placeholder: isEdit ? \"\" : nameSlug\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(Notices, {\n notices: [{\n message: __(\"You can define a unique name, but essential services are automatically accepted when a consent is forwarded.\"),\n severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldGeneralConsentForwardingUniqueName };","import _Form from \"antd/es/form\";\nimport _Radio from \"antd/es/radio\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { LearnMoreTag, Notices } from \"../../../../common\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst Field = props => {\n const {\n __,\n allowLegalBasisLegalRequirement\n } = useFormService();\n return /*#__PURE__*/React.createElement(_Radio.Group, props, /*#__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)\")), allowLegalBasisLegalRequirement && /*#__PURE__*/React.createElement(_Radio.Button, {\n value: \"legal-requirement\"\n }, __(\"Compliance with a legal obligation\")));\n};\n\nconst FormServiceFieldGeneralLegalBasis = () => {\n const {\n __,\n _i,\n allowLegalBasisLegalRequirement,\n essentialGroupId\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => {\n const isEssentialGroup = getFieldValue(\"group\") === essentialGroupId;\n return /*#__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(Field, {\n disabled: isEssentialGroup\n })), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"legalBasis\",\n widthOfRef: ref,\n style: {\n marginBottom: 3\n },\n renderDiff: value => /*#__PURE__*/React.createElement(Field, {\n disabled: true,\n value: value\n })\n }), /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/2021/opt-in-opt-out-double-opt-in-definition/\")\n }), /*#__PURE__*/React.createElement(\"br\", null), _i(__('Services can be used on various legal bases according to {{aGdpr}}Art. 6 GDPR{{/aGdpr}}. \"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 aGdpr: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://gdpr-info.eu/art-6-gdpr/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n })), isEssentialGroup && !allowLegalBasisLegalRequirement && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __('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 severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldGeneralLegalBasis };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralDataProcessingInUnsafeCountries = () => {\n const {\n __,\n essentialGroupId,\n isDataProcessingInUnsafeCountries\n } = useFormService();\n const ref = useRef();\n\n const dataProcessingInUnsafeCountriesLabel = __(\"This service processes data in the USA or transfers data to US companies or servers\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group || prevValues.ePrivacyUSA !== nextValues.ePrivacyUSA\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n display: isDataProcessingInUnsafeCountries ? 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\", dataProcessingInUnsafeCountriesLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"ePrivacyUSA\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", dataProcessingInUnsafeCountriesLabel)),\n noBr: true\n })), getFieldValue(\"ePrivacyUSA\") && getFieldValue(\"group\") === essentialGroupId && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __(\"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 severity: \"warning\"\n }]\n })));\n};\n\nexport { FormServiceFieldGeneralDataProcessingInUnsafeCountries };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldGeneralIsEmbeddingOnlyExternalResources = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n\n const isEmbeddingOnlyExternalResourcesLabel = __(\"This service does not set any technical cookies on the client of the visitor, but e.g. integrates a script.\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"isEmbeddingOnlyExternalResources\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", isEmbeddingOnlyExternalResourcesLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"isEmbeddingOnlyExternalResources\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", isEmbeddingOnlyExternalResourcesLabel)),\n noBr: true\n })));\n};\n\nexport { FormServiceFieldGeneralIsEmbeddingOnlyExternalResources };","import { FormServiceFieldGeneralName, FormServiceFieldGeneralPurpose, FormServiceFieldGeneralStatus, FormServiceFieldGeneralProvider, FormServiceFieldGeneralProviderPrivacyPolicyUrl, FormServiceFieldGeneralGroup, FormServiceFieldGeneralIsEmbeddingOnlyExternalResources, FormServiceLayout, FormServiceFieldGeneralDataProcessingInUnsafeCountries, FormServiceFieldGeneralLegalBasis, FormServiceFieldGeneralConsentForwardingUniqueName } from \"../..\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { LearnMoreTag } from \"../../../../common\";\n\nconst FormServiceFieldGeneralCompose = () => {\n const {\n __\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.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(FormServiceFieldGeneralName, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralStatus, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralGroup, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralProvider, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralPurpose, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralProviderPrivacyPolicyUrl, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralConsentForwardingUniqueName, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralLegalBasis, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralDataProcessingInUnsafeCountries, null), /*#__PURE__*/React.createElement(FormServiceFieldGeneralIsEmbeddingOnlyExternalResources, null));\n};\n\nexport { FormServiceFieldGeneralCompose };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Select from \"antd/es/select\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { getCookieTypeLocalizationMap } from \"@devowl-wp/react-cookie-banner/src\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieType = ({\n field,\n readOnly = false\n}) => {\n const {\n __\n } = useFormService();\n const cookieTypeLocalized = getCookieTypeLocalizationMap();\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\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, {\n disabled: readOnly\n }, Object.keys(cookieTypeLocalized).map(key => /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key,\n style: {\n display: key === \"flash\" ? \"none\" : undefined\n }\n }, cookieTypeLocalized[key].name))));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieType };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { Notices } from \"../../../../../../common\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieName = ({\n field,\n readOnly\n}) => {\n const {\n __,\n _i\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\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, {\n disabled: readOnly\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n 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 }, ({\n getFieldValue\n }) => {\n const cookieName = getFieldValue([\"technicalDefinitions\", field.name, \"name\"]);\n const notSupportedCookieNamePlaceholders = [/\\[/gm, [/([{]+)/gm, match => match.length === 1], /\\(/gm];\n return notSupportedCookieNamePlaceholders.filter(r => Array.isArray(r) ? r[0].test(cookieName) && cookieName.match(r[0]).filter(r[1]).length > 0 : r.test(cookieName)).length > 0 && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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 severity: \"warning\"\n }]\n });\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieName };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { isHost } from \"../../../../../../../utils\";\nimport { Notices } from \"../../../../../../common\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieHost = ({\n field,\n readOnly\n}) => {\n const {\n __,\n _i\n } = useFormService();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => {\n var _prevValues$technical, _nextValues$technical, _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.type) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.type) || ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.host) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.host);\n }\n }, ({\n getFieldValue\n }) => {\n const type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n const host = getFieldValue([\"technicalDefinitions\", field.name, \"host\"]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n fieldKey: [field.fieldKey, \"host\"],\n name: [field.name, \"host\"],\n rules: [{\n validator: (_, value) => ([\"local\", \"session\", \"indexedDb\"].indexOf(type) > -1 ? isUrl(value) : isHost(value)) || value === \"\" && type !== \"http\" ? Promise.resolve() : Promise.reject(__(\"Please provide a valid hostname!\"))\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n disabled: readOnly\n })), host.startsWith(\"*.\") && host.length > 2 && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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 severity: \"warning\"\n }]\n }));\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieHost };","/**\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 _Select from \"antd/es/select\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport _Tooltip from \"antd/es/tooltip\";\nimport { useMemo } from \"react\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\nimport { useFormService } from \"../../../../../../../contexts\";\n\nconst FormServiceFieldTechnicalDefinitionsCookieDuration = ({\n field,\n readOnly\n}) => {\n const {\n __\n } = useFormService();\n const durations = useMemo(() => ({\n s: __(\"second(s)\"),\n m: __(\"minute(s)\"),\n h: __(\"hour(s)\"),\n d: __(\"day(s)\"),\n mo: __(\"month(s)\"),\n y: __(\"year(s)\")\n }), [__]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => {\n var _prevValues$technical, _nextValues$technical, _prevValues$technical2, _nextValues$technical2;\n\n return ((_prevValues$technical = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical === void 0 ? void 0 : _prevValues$technical.type) !== ((_nextValues$technical = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical === void 0 ? void 0 : _nextValues$technical.type) || ((_prevValues$technical2 = prevValues.technicalDefinitions[field.name]) === null || _prevValues$technical2 === void 0 ? void 0 : _prevValues$technical2.isSessionDuration) !== ((_nextValues$technical2 = nextValues.technicalDefinitions[field.name]) === null || _nextValues$technical2 === void 0 ? void 0 : _nextValues$technical2.isSessionDuration);\n }\n }, ({\n getFieldValue\n }) => {\n const type = getFieldValue([\"technicalDefinitions\", field.name, \"type\"]);\n const isSessionDuration = getFieldValue([\"technicalDefinitions\", field.name, \"isSessionDuration\"]);\n\n if ([\"local\", \"session\", \"indexedDb\", \"flash\"].indexOf(type) > -1) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {\n key: \"isSessionDuration\",\n fieldKey: [field.fieldKey, \"isSessionDuration\"],\n name: [field.name, \"isSessionDuration\"],\n noStyle: true,\n valuePropName: \"checked\"\n }), /*#__PURE__*/React.createElement(_Checkbox, {\n style: {\n float: \"left\",\n marginTop: 5\n },\n disabled: readOnly\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, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n key: \"duration\",\n fieldKey: [field.fieldKey, \"duration\"],\n name: [field.name, \"duration\"],\n rules: [{\n required: !isSessionDuration,\n message: __(\"Please provide a valid duration!\")\n }]\n }), /*#__PURE__*/React.createElement(_Input, {\n disabled: readOnly,\n min: \"0\",\n addonAfter: /*#__PURE__*/React.createElement(_Form.Item, {\n fieldKey: [field.fieldKey, \"durationUnit\"],\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, {\n disabled: readOnly\n }, Object.keys(durations).map(key => /*#__PURE__*/React.createElement(_Select.Option, {\n key: key,\n value: key\n }, durations[key])))),\n type: \"number\",\n style: {\n maxWidth: 200,\n display: isSessionDuration ? \"none\" : undefined\n }\n })));\n });\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookieDuration };","import _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Input from \"antd/es/input\";\nimport { FormServiceFieldTechnicalDefinitionsLayout } from \"../table\";\n\nconst FormServiceFieldTechnicalDefinitionsCookiePurpose = ({\n field,\n readOnly\n}) => {\n return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, FormServiceFieldTechnicalDefinitionsLayout, {\n fieldKey: [field.fieldKey, \"purpose\"],\n name: [field.name, \"purpose\"]\n }), /*#__PURE__*/React.createElement(_Input.TextArea, {\n disabled: readOnly,\n rows: 1,\n autoSize: {\n maxRows: 3\n }\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsCookiePurpose };","import _Tooltip from \"antd/es/tooltip\";\nimport _Form from \"antd/es/form\";\nimport { DeleteOutlined, PlusOutlined, QuestionCircleFilled } from \"@ant-design/icons\";\nimport { FormServiceFieldTechnicalDefinitionsCookieDuration, FormServiceFieldTechnicalDefinitionsCookieHost, FormServiceFieldTechnicalDefinitionsCookieName, FormServiceFieldTechnicalDefinitionsCookiePurpose, FormServiceFieldTechnicalDefinitionsCookieType, TECHNICAL_DEFINITION_DEFAULTS } from \"..\";\nimport { FormServiceLayout } from \"../../..\";\nimport { useFormService } from \"../../../../../../contexts\";\nimport { useFormServiceTechnicalDefinitionsTable } from \"../../../../../../hooks\";\nimport { FormHeadline, FormValueDifferFromPresetTag } from \"../../../..\";\nconst FormServiceFieldTechnicalDefinitionsLayout = {\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n },\n style: {\n margin: 0\n }\n};\n\nconst DiffTable = ({\n technicalDefinitions\n}) => {\n const [form] = _Form.useForm();\n\n return /*#__PURE__*/React.createElement(_Form, {\n form: form,\n initialValues: {\n isEmbeddingOnlyExternalResources: false,\n technicalDefinitions\n }\n }, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsTable, {\n isDiff: true\n }));\n};\n\nconst diffCalculate = (oldValue, newValue) => {\n // Compose entries by all available keys for \"modified\" calculation\n const numberedIndexedForPosition = [];\n const oldEntriesModified = oldValue.reduce((a, {\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n type,\n purpose\n }) => {\n const idx = \"\".concat(type, \"/\").concat(name, \"/\").concat(host);\n a[idx] = \"\".concat(duration, \"/\").concat(durationUnit, \"/\").concat(isSessionDuration, \"/\").concat(type, \"/\").concat(purpose);\n numberedIndexedForPosition.push(idx);\n return a;\n }, {});\n const modified = newValue.map(definition => {\n const {\n name,\n host,\n duration,\n durationUnit,\n isSessionDuration,\n type,\n purpose\n } = definition;\n const idxName = \"\".concat(type, \"/\").concat(name, \"/\").concat(host);\n const oldModified = oldEntriesModified[idxName];\n return typeof oldModified === \"undefined\" || oldModified === \"\".concat(duration, \"/\").concat(durationUnit, \"/\").concat(isSessionDuration, \"/\").concat(type, \"/\").concat(purpose) ? undefined : { ...definition,\n position: numberedIndexedForPosition.indexOf(idxName)\n };\n }).filter(Boolean); // Compose entries by name and host for \"addition\" calculation\n\n const oldEntriesComposedAdded = oldValue.map(({\n type,\n name,\n host\n }) => \"\".concat(type, \"/\").concat(name, \"/\").concat(host));\n const added = newValue.map((definition, position) => {\n const {\n type,\n name,\n host\n } = definition;\n return !oldEntriesComposedAdded.includes(\"\".concat(type, \"/\").concat(name, \"/\").concat(host)) ? { ...definition,\n position\n } : undefined;\n }).filter(Boolean);\n return added.length || modified.length ? {\n added,\n modified\n } : undefined;\n};\n\nconst FormServiceFieldTechnicalDefinitionsTable = ({\n isDiff = false\n}) => {\n const {\n __,\n _i\n } = useFormService();\n const {\n SortableBodyConnected,\n SortableItem,\n DragHandle\n } = useFormServiceTechnicalDefinitionsTable();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isEmbeddingOnlyExternalResources !== nextValues.isEmbeddingOnlyExternalResources || prevValues.technicalDefinitions.length !== nextValues.technicalDefinitions.length\n }, ({\n getFieldValue\n }) => getFieldValue(\"isEmbeddingOnlyExternalResources\") ? null : /*#__PURE__*/React.createElement(_Form.List, {\n name: \"technicalDefinitions\"\n }, (fields, {\n add,\n remove,\n move\n }) => {\n return /*#__PURE__*/React.createElement(\"div\", null, !isDiff && /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.labelCol.span,\n description: _i(__(\"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 according to {{aEprivacy}}ePrivacy Directive (Directive 2009/136/EC) Art. 66{{/aEprivacy}} you have to inform your visitors not only about (HTTP) cookies, but also about cookie-like information.\"), {\n aEprivacy: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/go/eu-directive-2009-136-ec\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n })\n })\n }, __(\"Technical cookie information\")), /*#__PURE__*/React.createElement(\"table\", {\n className: \"wp-list-table widefat fixed striped table-view-list\",\n style: {\n marginBottom: 25\n }\n }, /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n width: 45,\n align: \"right\"\n }, \"\\xA0\"), /*#__PURE__*/React.createElement(\"td\", {\n width: 150\n }, __(\"Cookie type\")), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: _i(__(\"Every cookie has a technical name, which you must provide. If a cookie name is dynamically composed, please use an asterisk ({{code}}*{{/code}}) as a wildcard (placeholder).\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie name\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Every cookie is associated to a domain or hostname.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Technical cookie host\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 290\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"A HTTP cookie is only valid for a certain time, which is defined when the cookie is set.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Cookie duration\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(_Tooltip, {\n title: __(\"Each cookie serves a purpose (e.g. user identification for tracking), which should be explained.\")\n }, /*#__PURE__*/React.createElement(\"span\", null, __(\"Purpose\"), \" \", /*#__PURE__*/React.createElement(QuestionCircleFilled, null)))), /*#__PURE__*/React.createElement(\"td\", {\n width: 70,\n align: \"right\"\n }, \"\\xA0\"))), /*#__PURE__*/React.createElement(SortableBodyConnected, {\n onSortEnd: move\n }, fields.map((field, index) => /*#__PURE__*/React.createElement(SortableItem, {\n key: field.key,\n index: index\n }, /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 && !isDiff ? /*#__PURE__*/React.createElement(DragHandle, null) : undefined), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieType, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieName, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieHost, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookieDuration, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsCookiePurpose, {\n field: field,\n readOnly: isDiff\n })), /*#__PURE__*/React.createElement(\"td\", null, fields.length > 1 && !isDiff ? /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-small\",\n onClick: () => {\n remove(field.name);\n }\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)) : null)))), !isDiff && /*#__PURE__*/React.createElement(\"tfoot\", null, /*#__PURE__*/React.createElement(\"tr\", null, /*#__PURE__*/React.createElement(\"td\", {\n colSpan: 7,\n align: \"right\"\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"button button-primary alignright\",\n onClick: () => {\n add(TECHNICAL_DEFINITION_DEFAULTS);\n }\n }, /*#__PURE__*/React.createElement(PlusOutlined, null), \" \", __(\"Add another cookie definition\")), /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n useModal: true,\n form: \"service\",\n valueName: \"technicalDefinitions\",\n noBr: true,\n style: {\n marginTop: 4\n },\n difference: diffCalculate,\n apply: ({\n added,\n modified\n }, setFieldsValue, oldValue) => {\n const technicalDefinitions = oldValue;\n modified.forEach(({\n position,\n ...rest\n }) => {\n technicalDefinitions[position] = rest;\n });\n added.forEach(({\n position,\n ...rest\n }) => {\n technicalDefinitions.splice(position, 0, rest);\n });\n setFieldsValue({\n technicalDefinitions\n });\n },\n newValueText: false,\n renderDiff: (value, {\n added,\n modified\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, added.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, __(\"Missing entries:\"))), /*#__PURE__*/React.createElement(DiffTable, {\n technicalDefinitions: added\n })), modified.length > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, /*#__PURE__*/React.createElement(\"strong\", null, __(\"Modified entries:\"))), /*#__PURE__*/React.createElement(DiffTable, {\n technicalDefinitions: modified\n })))\n }))))));\n }));\n};\n\nexport { FormServiceFieldTechnicalDefinitionsLayout, FormServiceFieldTechnicalDefinitionsTable };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { MenuOutlined } from \"@ant-design/icons\";\nimport { useRef, useMemo, useCallback } from \"react\";\nimport { SortableHandle, SortableElement, SortableContainer } from \"react-sortable-hoc\";\n\nfunction useFormServiceTechnicalDefinitionsTable() {\n const tbodyRef = useRef();\n const {\n DragHandle,\n SortableItem,\n SortableBody\n } = useMemo(() => ({\n DragHandle: SortableHandle(() => /*#__PURE__*/React.createElement(MenuOutlined, {\n style: {\n cursor: \"grab\",\n color: \"#999\",\n marginTop: 5\n },\n className: \"button button-small button-link\"\n })),\n SortableItem: SortableElement(props => /*#__PURE__*/React.createElement(\"tr\", props)),\n SortableBody: SortableContainer(props => /*#__PURE__*/React.createElement(\"tbody\", _extends({\n ref: tbodyRef\n }, props)))\n }), []);\n const handleSortStart = useCallback(({\n node,\n helper\n }) => {\n node.childNodes.forEach((td, index) => {\n helper.childNodes[index].style.width = \"\".concat(td.offsetWidth, \"px\");\n });\n }, []);\n\n const SortableBodyConnected = ({\n onSortEnd,\n children\n }) => /*#__PURE__*/React.createElement(SortableBody, {\n useDragHandle: true,\n onSortEnd: ({\n oldIndex,\n newIndex\n }) => onSortEnd(oldIndex, newIndex),\n onSortStart: handleSortStart,\n helperContainer: () => tbodyRef.current\n }, children);\n\n return {\n tbodyRef,\n DragHandle,\n SortableItem,\n SortableBody,\n SortableBodyConnected,\n handleSortStart\n };\n}\n\nexport { useFormServiceTechnicalDefinitionsTable };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { LearnMoreTag, Notices } from \"../../../../common\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingTagManagerEventName = () => {\n const {\n __,\n setCookiesViaManager,\n serviceIsManager,\n hasManager\n } = useFormService();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n return setCookiesViaManager !== \"none\" && !serviceIsManager && /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Event names for %s\", managerLabel),\n required: true\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"tagManagerOptInEventName\",\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: \"tagManagerOptOutEventName\",\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(\"p\", {\n className: \"description\"\n }, /*#__PURE__*/React.createElement(LearnMoreTag, {\n url: __(\"https://devowl.io/knowledge-base/real-cookie-banner-with-google-tag-manager-or-matomo-tag-manager/\")\n })), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, curValues) => prevValues.tagManagerOptInEventName !== curValues.tagManagerOptInEventName || prevValues.tagManagerOptOutEventName !== curValues.tagManagerOptOutEventName\n }, ({\n getFieldValue\n }) => {\n const inEventName = getFieldValue(\"tagManagerOptInEventName\");\n const outEventName = getFieldValue(\"tagManagerOptOutEventName\");\n return (inEventName.length > 0 || outEventName.length > 0) && !hasManager && /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: __(\"You have not yet defined a %s service. To use event names, you must create a %s service.\", managerLabel, managerLabel),\n severity: \"warning\"\n }]\n });\n }));\n};\n\nexport { FormServiceFieldHandlingTagManagerEventName };","const DYNAMICS_VARIABLE_REGEXP = /{{([A-Za-z0-9_]+)}}/gm;\n/**\n * Takes any string and replaces `{{myVariable}}` with the value of the passed `dynamics` map.\n */\n\nfunction applyDynamicsToHtml(src, dynamics) {\n return src.replace(DYNAMICS_VARIABLE_REGEXP, (fullMatch, variableName) => Object.prototype.hasOwnProperty.call(dynamics, variableName) ? dynamics[variableName] : fullMatch);\n}\n\nexport { applyDynamicsToHtml, DYNAMICS_VARIABLE_REGEXP };","import _Form from \"antd/es/form\";\nimport _Input from \"antd/es/input\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { DYNAMICS_VARIABLE_REGEXP } from \"@devowl-wp/headless-content-unblocker\";\nimport { Notices } from \"../../../../common\";\nconst DYNAMICS_SEARCH_IN = [\"codeOptIn\", \"codeOptOut\", \"codeOnPageLoad\"];\n\nconst FormServiceFieldHandlingDynamicField = () => {\n const {\n __,\n dynamicFields\n } = useFormService();\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => DYNAMICS_SEARCH_IN.map(k => prevValues[k] !== nextValues[k]).filter(Boolean).length > 0\n }, ({\n getFieldValue\n }) => {\n const searchInResolved = DYNAMICS_SEARCH_IN.map(k => getFieldValue(k)).join(\"\");\n const matches = Array.from(searchInResolved.matchAll(DYNAMICS_VARIABLE_REGEXP)).map(([, m]) => m);\n const added = [];\n return matches ? matches.map(name => {\n const formName = [\"codeDynamics\", name];\n const {\n label,\n invalidMessage = __(\"Please fill in a value!\"),\n example,\n expression,\n hint\n } = (dynamicFields === null || dynamicFields === void 0 ? void 0 : dynamicFields.find(dynamicField => dynamicField.name === name)) || {};\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\n })), /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: hint,\n severity: \"info\"\n }]\n }));\n }) : null;\n });\n};\n\nexport { FormServiceFieldHandlingDynamicField };","import _Form from \"antd/es/form\";\nimport { useMemo } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { Notices } from \"../../../../common\";\n\nconst FormServiceFieldHandlingSkipIfActiveNotice = ({\n name\n}) => {\n const {\n __,\n _i,\n skipIfActiveComponents\n } = useFormService();\n const componentKeys = useMemo(() => Object.keys(skipIfActiveComponents), [skipIfActiveComponents]);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues[name] !== nextValues[name]\n }, ({\n getFieldValue\n }) => {\n const value = getFieldValue(name); // Find `skip-if-active` and their active components\n\n const matches = [...value.matchAll(/\\s+(skip-if-active=\")([^\"]+)(\")/gm)].map(([,, components]) => components.split(\",\").filter(plugin => componentKeys.indexOf(plugin) > -1)).flat();\n const uniq = matches.filter((plugin, i) => matches.indexOf(plugin) === i);\n\n if (uniq.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: _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(plugin => skipIfActiveComponents[plugin]).join(\", \")),\n i: /*#__PURE__*/React.createElement(\"i\", null)\n }),\n severity: \"info\"\n }]\n }));\n });\n};\n\nexport { FormServiceFieldHandlingSkipIfActiveNotice };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven = ({\n name\n}) => {\n const {\n __,\n _i,\n isPro,\n setCookiesViaManager,\n serviceIsManager\n } = useFormService();\n const ref = useRef();\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n\n const executeCodeWhenNoTagManagerConsentIsGivenLabel = _i(__(\"Only run this script if the user has {{u}}not{{/u}} allowed to use %s\", managerLabel), {\n u: /*#__PURE__*/React.createElement(\"u\", null)\n });\n\n return setCookiesViaManager !== \"none\" && !serviceIsManager && isPro ? /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: name,\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", executeCodeWhenNoTagManagerConsentIsGivenLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: name,\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", executeCodeWhenNoTagManagerConsentIsGivenLabel)),\n noBr: true\n }))) : null;\n};\n\nexport { FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice, FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOptIn = () => {\n const {\n __,\n renderCodeMirror\n } = useFormService();\n const ref = useRef();\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-in\")\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptIn\",\n noStyle: true\n }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOptIn\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOptIn\",\n widthOfRef: ref,\n noBr: true\n }))), /*#__PURE__*/React.createElement(FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, {\n name: \"executeCodeOptInWhenNoTagManagerConsentIsGiven\"\n }));\n};\n\nexport { FormServiceFieldHandlingCodeOptIn };","import _Form from \"antd/es/form\";\nimport _Switch from \"antd/es/switch\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceLayout } from \"../..\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut = () => {\n const {\n __\n } = useFormService();\n const ref = useRef();\n\n const deleteTechnicalDefinitionsAfterOptOutLabel = __(\"Delete all first-party cookies after opt-out. First-party cookies are only cookies that are set by or for this domain.\");\n\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.isEmbeddingOnlyExternalResources !== nextValues.isEmbeddingOnlyExternalResources\n }, ({\n getFieldValue\n }) => getFieldValue(\"isEmbeddingOnlyExternalResources\") ? null : /*#__PURE__*/React.createElement(_Form.Item, {\n required: true,\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"deleteTechnicalDefinitionsAfterOptOut\",\n valuePropName: \"checked\",\n noStyle: true\n }, /*#__PURE__*/React.createElement(_Switch, null)), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", deleteTechnicalDefinitionsAfterOptOutLabel), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n marginTop: 10\n },\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n form: \"service\",\n valueName: \"deleteTechnicalDefinitionsAfterOptOut\",\n widthOfRef: ref,\n renderDiff: value => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {\n disabled: true,\n checked: value\n }), /*#__PURE__*/React.createElement(\"span\", null, \"\\xA0\\xA0\", deleteTechnicalDefinitionsAfterOptOutLabel)),\n noBr: true\n }))));\n};\n\nexport { FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useCallback } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice, FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOptOut = () => {\n const {\n __,\n renderCodeMirror,\n essentialGroupId\n } = useFormService();\n const ref = useRef(); // CodeMirror does not support \"display:none;\", we need to hide it in a hacky way\n\n const createHiddenFormItemsWithCodeMirror = useCallback(visible => ({\n opacity: visible ? undefined : 0,\n height: visible ? undefined : 0,\n margin: visible ? undefined : 0\n }), []);\n return /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => {\n const visible = getFieldValue(\"group\") !== essentialGroupId;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form.Item, {\n label: __(\"Code executed on opt-out\"),\n style: createHiddenFormItemsWithCodeMirror(visible)\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"codeOptOut\",\n noStyle: true\n }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOptOut\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOptOut\",\n widthOfRef: ref,\n noBr: true\n }))), visible && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven, {\n name: \"executeCodeOptOutWhenNoTagManagerConsentIsGiven\"\n }), /*#__PURE__*/React.createElement(FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut, null)));\n });\n};\n\nexport { FormServiceFieldHandlingCodeOptOut };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormServiceFieldHandlingSkipIfActiveNotice } from \".\";\nimport { FormValueDifferFromPresetTag } from \"../../..\";\n\nconst FormServiceFieldHandlingCodeOnPageLoad = () => {\n const {\n __,\n renderCodeMirror\n } = useFormService();\n const ref = useRef();\n return /*#__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 }, renderCodeMirror()), /*#__PURE__*/React.createElement(FormServiceFieldHandlingSkipIfActiveNotice, {\n name: \"codeOnPageLoad\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetTag, {\n style: {\n marginTop: 10\n },\n form: \"service\",\n valueName: \"codeOnPageLoad\",\n widthOfRef: ref,\n noBr: true\n })));\n};\n\nexport { FormServiceFieldHandlingCodeOnPageLoad };","import _Form from \"antd/es/form\";\nimport { FormServiceLayout, FormServiceFieldHandlingCodeOnPageLoad, FormServiceFieldHandlingCodeOptIn, FormServiceFieldHandlingCodeOptOut, FormServiceFieldHandlingDynamicField, FormServiceFieldHandlingTagManagerEventName } from \"../..\";\nimport { useFormService } from \"../../../../../contexts\";\nimport { FormHeadline } from \"../../..\";\nimport { Notices } from \"../../../../common\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst FormServiceFieldHandlingCompose = () => {\n const {\n __,\n serviceGotScanned,\n setCookiesViaManager,\n contentBlockerTemplates,\n notices: {\n technicalHandling: technicalHandlingNotices\n },\n defaultPresetValues\n } = useFormService();\n const presetDefaultName = (defaultPresetValues === null || defaultPresetValues === void 0 ? void 0 : defaultPresetValues.name) || \"\";\n const {\n managerLabel\n } = getManagerDependingVariables(setCookiesViaManager);\n const notices = [...technicalHandlingNotices, serviceGotScanned && {\n message: contentBlockerTemplates.length > 0 ? __('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.', presetDefaultName) : __(\"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.\", presetDefaultName),\n severity: \"warning\"\n }].filter(Boolean).filter(({\n message\n }) => message);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormHeadline, {\n offset: FormServiceLayout.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.\", managerLabel)\n }, __(\"Technical handling\")), /*#__PURE__*/React.createElement(FormServiceFieldHandlingTagManagerEventName, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingDynamicField, null), notices.length > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span,\n span: FormServiceLayout.wrapperCol.span\n },\n style: {\n marginBottom: 0\n }\n }, /*#__PURE__*/React.createElement(Notices, {\n notices: notices\n })), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOptIn, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOptOut, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCodeOnPageLoad, null));\n};\n\nexport { FormServiceFieldHandlingCompose };","import _Select from \"antd/es/select\";\nimport _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormServiceLayout } from \"../..\";\nimport { useFormService } from \"../../../../contexts\";\nimport { Notices } from \"../../../common\";\n\nconst FormServiceFieldCreateContentBlocker = () => {\n const {\n __,\n essentialGroupId,\n allowContentBlockerCreation,\n contentBlockerTemplates,\n notices: {\n createContentBlocker: createContentBlockerNotices\n }\n } = useFormService();\n return allowContentBlockerCreation && (contentBlockerTemplates === null || contentBlockerTemplates === void 0 ? void 0 : contentBlockerTemplates.length) > 0 && /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n name: \"createContentBlocker\",\n valuePropName: \"checked\",\n dependencies: [\"group\"],\n rules: [{\n validator: (_, value) => getFieldValue(\"group\") === essentialGroupId && 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 }, /*#__PURE__*/React.createElement(_Checkbox, null, __(\"Create content blocker for this service.\")))), /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n shouldUpdate: (prevValues, nextValues) => prevValues.createContentBlocker !== nextValues.createContentBlocker\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(React.Fragment, null, getFieldValue(\"createContentBlocker\") && /*#__PURE__*/React.createElement(React.Fragment, null, contentBlockerTemplates.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 }, contentBlockerTemplates.map(({\n identifier,\n name,\n subHeadline\n }) => /*#__PURE__*/React.createElement(_Select.Option, {\n key: identifier,\n value: identifier\n }, \"\".concat(name).concat(subHeadline ? \" (\".concat(subHeadline, \")\") : \"\")))))), /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: getFieldValue(\"createContentBlocker\") ? __(\"Immediately after submitting this form you will be forwarded to another form that allows you to create the Content Blocker.\") : undefined,\n severity: \"info\"\n }, ...createContentBlockerNotices]\n }))));\n};\n\nexport { FormServiceFieldCreateContentBlocker };","import _Form from \"antd/es/form\";\nimport _Checkbox from \"antd/es/checkbox\";\nimport { FormServiceLayout } from \"../..\";\nimport { useFormService } from \"../../../../contexts\";\nimport { LearnMoreTag } from \"../../../common\";\n\nconst FormServiceFieldPresetCheck = () => {\n const {\n __,\n presetCheck,\n isTemplateUpdate\n } = useFormService();\n return !!(presetCheck || isTemplateUpdate) && /*#__PURE__*/React.createElement(_Form.Item, {\n name: \"presetCheck\",\n valuePropName: \"checked\",\n required: true,\n rules: [{\n type: \"boolean\",\n required: true,\n transform: value => value || undefined,\n message: __(\"Please confirm that you have checked the contents of the service.\")\n }],\n wrapperCol: {\n offset: FormServiceLayout.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 })));\n};\n\nexport { FormServiceFieldPresetCheck };","import _Form from \"antd/es/form\";\nimport { useRef } from \"react\";\nimport { FormServiceFieldGeneralCompose, FormServiceFieldPresetCheck, FormServiceFieldCreateContentBlocker, FormServiceFieldHandlingCompose, FormServiceFieldTechnicalDefinitionsTable, FormServiceLayout } from \".\";\nimport { I18nContextFactory, useFormService } from \"../../../contexts\";\nimport { FormValueDifferFromPresetNotice } from \"..\";\n\nconst FormService = () => {\n const {\n __,\n _i\n } = useFormService();\n const ref = useRef();\n const I18nContext = I18nContextFactory.Context();\n return /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: {\n __,\n _i\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, /*#__PURE__*/React.createElement(FormValueDifferFromPresetNotice, {\n containerRef: ref,\n form: \"service\"\n }), /*#__PURE__*/React.createElement(FormServiceFieldGeneralCompose, null), /*#__PURE__*/React.createElement(FormServiceFieldTechnicalDefinitionsTable, null), /*#__PURE__*/React.createElement(FormServiceFieldHandlingCompose, null), /*#__PURE__*/React.createElement(FormServiceFieldCreateContentBlocker, null), /*#__PURE__*/React.createElement(_Form.Item, {\n className: \"rcb-form-sticky-submit\",\n labelCol: {\n span: 0\n },\n wrapperCol: {\n span: 24\n }\n }, /*#__PURE__*/React.createElement(FormServiceFieldPresetCheck, null), /*#__PURE__*/React.createElement(_Form.Item, {\n wrapperCol: {\n offset: FormServiceLayout.labelCol.span\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n textAlign: \"center\"\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"submit\",\n className: \"button button-primary\",\n value: __(\"Save\")\n }))))));\n};\n\nexport { FormService };","import _Spin from \"antd/es/spin\";\nimport _Form from \"antd/es/form\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Skeleton from \"antd/es/skeleton\";\nimport { useCallback, useEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { CookieModel } from \"../../../models\";\nimport { __, scrollTo, base64EncodeUnicodeSafe, _i, request } from \"../../../utils\";\nimport { useStores } from \"../../../store\";\nimport { useHistory, Prompt } from \"react-router-dom\";\nimport { useRouteCookie } from \"../../../hooks\";\nimport { CodeMirror } from \"../..\";\nimport { FormService, useFormServiceHandler } from \"@devowl-wp/react-cookie-banner-admin\";\nimport { slugify, FormServiceContextFactory, FormServiceLayout } from \"@devowl-wp/react-cookie-banner-admin\";\nimport { locationRestForwardCookieGet } from \"../../../wp-api\";\nconst CookieEditForm = observer(({\n preset,\n overwriteAttributes,\n navigateAfterCreation = true,\n scrollToTop = true,\n onCreated\n}) => {\n var _presetModel$attribut, _cookie$data, _cookie$data$meta, _presetModel$attribut2, _presetModel$attribut3, _presetModel$attribut4, _presetModel$attribut5;\n\n const {\n routeGroup: {\n group,\n link\n },\n cookie,\n id,\n queried,\n fetched\n } = useRouteCookie();\n const history = useHistory();\n const {\n cookieStore,\n optionStore: {\n tcf,\n ePrivacyUSA,\n consentForwarding,\n setCookiesViaManager,\n hasManager,\n others: {\n useEncodedStringForScriptInputs,\n isPro,\n activePlugins\n }\n }\n } = useStores();\n const {\n essentialGroup\n } = cookieStore;\n const presetModel = (cookie === null || cookie === void 0 ? void 0 : cookie.presetModel) || cookieStore.presetsCookie.get(preset === null || preset === void 0 ? void 0 : preset.identifier);\n const groups = cookieStore.groups.sortedGroups.map(({\n data: {\n id,\n name\n }\n }) => ({\n id,\n name\n }));\n const allowContentBlockerCreation = !!navigateAfterCreation;\n const contentBlockerTemplates = (presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.contentBlockerTemplates) || [];\n const attributes = { ...(presetModel === null || presetModel === void 0 ? void 0 : presetModel.attributes),\n ...overwriteAttributes\n };\n const {\n form,\n isBusy,\n defaultValues,\n onFinish,\n onFinishFailed,\n onBeforeUnload,\n onValuesChange,\n contextValue\n } = useFormServiceHandler({\n __,\n _i,\n attributes,\n selectedGroup: group.key,\n trackFieldsDifferFromDefaultValues: [\"group\"],\n setCookiesViaManager,\n groups,\n preset: presetModel ? {\n identifier: presetModel.data.identifier,\n version: presetModel.data.version\n } : undefined,\n allowContentBlockerCreation,\n shouldUncheckContentBlockerCheckbox: attributes === null || attributes === void 0 ? void 0 : attributes.shouldUncheckContentBlockerCheckbox,\n contentBlockerTemplates,\n handleSave: async values => {\n try {\n var _document$querySelect;\n\n // Pass as base64-encoded string to avoid Cloudflare XSS issues\n const codeToBase64 = str => useEncodedStringForScriptInputs ? \"encodedScript:\".concat(base64EncodeUnicodeSafe(str)) : str;\n\n const {\n name,\n status,\n purpose,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n group,\n codeDynamics,\n createContentBlocker,\n createContentBlockerId,\n consentForwardingUniqueName,\n codeOptIn,\n codeOptOut,\n codeOnPageLoad,\n ...meta\n } = values;\n const newMeta = { ...meta,\n codeOptIn: codeToBase64(codeOptIn),\n codeOptOut: codeToBase64(codeOptOut),\n codeOnPageLoad: codeToBase64(codeOnPageLoad),\n isEmbeddingOnlyExternalResources,\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(isEmbeddingOnlyExternalResources ? initialValues.technicalDefinitions : technicalDefinitions),\n consentForwardingUniqueName: consentForwardingUniqueName || slugify(name),\n presetId: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.identifier,\n presetVersion: presetModel === null || presetModel === void 0 ? void 0 : presetModel.data.version\n };\n delete newMeta.presetCheck;\n\n if (queried) {\n cookie.setName(name);\n cookie.setStatus(status);\n cookie.setPurpose(purpose);\n cookie.setMeta(newMeta);\n cookie.setGroup(group);\n await cookie.patch();\n } else {\n const useGroup = cookieStore.groups.entries.get(group);\n const draft = new CookieModel(useGroup.cookies, {\n title: {\n rendered: name\n },\n content: {\n rendered: purpose,\n protected: false\n },\n status,\n meta: newMeta\n });\n await draft.persist();\n onCreated === null || onCreated === void 0 ? void 0 : onCreated(draft);\n } // Remove the item from the \"Services with empty privacy policy\" global notice\n\n\n const noticeId = \"#rcb-services-with-empty-privacy-policy-notice\";\n (_document$querySelect = document.querySelector(\"\".concat(noticeId, \" li[data-id=\\\"\").concat(id, \"\\\"]\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.classList.add(\"hidden\");\n\n if (!document.querySelectorAll(\"\".concat(noticeId, \" > ul > li:not(.hidden)\")).length) {\n var _document$querySelect2;\n\n (_document$querySelect2 = document.querySelector(noticeId)) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.remove();\n } // Navigate back after creation\n\n\n navigateAfterCreation && setTimeout(() => 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)), 0);\n } catch (e) {\n throw e.responseJSON.message;\n }\n }\n });\n const 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 const 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 providerPrivacyPolicyUrl: cookie.data.meta.providerPrivacyPolicyUrl,\n consentForwardingUniqueName: cookie.data.meta.consentForwardingUniqueName || cookie.data.slug,\n isEmbeddingOnlyExternalResources: cookie.data.meta.isEmbeddingOnlyExternalResources,\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 tagManagerOptInEventName: cookie.data.meta.tagManagerOptInEventName,\n tagManagerOptOutEventName: cookie.data.meta.tagManagerOptOutEventName,\n codeOptIn: cookie.data.meta.codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven: cookie.data.meta.executeCodeOptInWhenNoTagManagerConsentIsGiven,\n codeOptOut: cookie.data.meta.codeOptOut,\n executeCodeOptOutWhenNoTagManagerConsentIsGiven: cookie.data.meta.executeCodeOptOutWhenNoTagManagerConsentIsGiven,\n codeOnPageLoad: cookie.data.meta.codeOnPageLoad,\n deleteTechnicalDefinitionsAfterOptOut: cookie.data.meta.deleteTechnicalDefinitionsAfterOptOut,\n createContentBlocker: false,\n createContentBlockerId: undefined,\n presetCheck: undefined\n } : defaultValues; // Initially load the cookie if not yet done\n\n useEffect(() => {\n if (queried && !fetched) {\n // Fetch the cookie within the correct group collection so it gets removed\n // from the original cookie group when it got moved to another cookie group.\n const groupToFetch = [...cookieStore.groups.entries.values()].filter(({\n cookies\n }) => cookies.entries.get(id))[0] || group;\n groupToFetch.cookies.getSingle({\n params: {\n id,\n context: \"edit\"\n }\n });\n }\n }, [queried, fetched]); // Lazy load attributes of preset model\n\n useEffect(() => {\n if (presetModel && !presetModel.attributes) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]);\n useEffect(() => {\n if (presetModel && !presetModel.attributes && !presetModel.busy) {\n presetModel.fetchAttributes();\n }\n }, [presetModel]); // Scroll to top when opening the form\n\n useEffect(() => {\n if (scrollToTop) {\n scrollTo(0);\n }\n }, []);\n const hasServiceByConsentForwardingUniqueName = useCallback(async slug => {\n try {\n return (await request({\n location: locationRestForwardCookieGet,\n params: {\n slug\n }\n })).filter(d => d.ID !== cookie.key).length > 0;\n } catch (e) {\n return false;\n }\n }, [cookie.key]);\n const FormServiceContext = FormServiceContextFactory.Context();\n\n if (queried && !fetched || presetModel && !presetModel.attributes) {\n return /*#__PURE__*/React.createElement(_Skeleton, {\n active: true,\n paragraph: {\n rows: 8\n }\n });\n }\n\n const isTemplateUpdate = fetched && presetModel ? ((_cookie$data = cookie.data) === null || _cookie$data === void 0 ? void 0 : (_cookie$data$meta = _cookie$data.meta) === null || _cookie$data$meta === void 0 ? void 0 : _cookie$data$meta.presetVersion) !== presetModel.data.version : false;\n return /*#__PURE__*/React.createElement(FormServiceContext.Provider, {\n value: { ...contextValue,\n isEdit: fetched,\n isPro,\n isTemplateUpdate,\n isTcf: tcf,\n isDataProcessingInUnsafeCountries: ePrivacyUSA,\n isConsentForwarding: consentForwarding,\n hasServiceByConsentForwardingUniqueName,\n presetCheck: presetModel ? isTemplateUpdate || !fetched : false,\n serviceGotScanned: !!(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 hasManager: hasManager > 0,\n dynamicFields: (attributes === null || attributes === void 0 ? void 0 : attributes.dynamicFields) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut3 = presetModel.attributes) === null || _presetModel$attribut3 === void 0 ? void 0 : _presetModel$attribut3.dynamicFields),\n essentialGroupId: essentialGroup.key,\n skipIfActiveComponents: activePlugins,\n // eslint-disable-next-line react/display-name\n renderCodeMirror: () => /*#__PURE__*/React.createElement(CodeMirror, {\n settings: window.cm_settings\n }),\n notices: {\n group: [...contextValue.notices.group, {\n message: (attributes === null || attributes === void 0 ? void 0 : attributes.groupNotice) || (presetModel === null || presetModel === void 0 ? void 0 : (_presetModel$attribut4 = presetModel.attributes) === null || _presetModel$attribut4 === void 0 ? void 0 : _presetModel$attribut4.groupNotice),\n severity: \"info\"\n }],\n providerPrivacyPolicyUrl: [{\n message: !fetched && presetModel !== null && presetModel !== void 0 && presetModel.attributes && !initialValues.providerPrivacyPolicyUrl ? __('You have not yet set a privacy policy in the settings, so this field could not be filled in automatically. Please enter the URL of your privacy policy here and <a href=\"%s\" target=\"_blank\">set the corresponding page in your settings.</a>', \"#/settings\") : undefined,\n severity: \"warning\"\n }],\n createContentBlocker: [{\n message: createContentBlockerNotice,\n severity: \"info\"\n }],\n technicalHandling: [{\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 }\n }\n }, /*#__PURE__*/React.createElement(_Spin, {\n spinning: isBusy || (presetModel === null || presetModel === void 0 ? void 0 : presetModel.busy) || false\n }, /*#__PURE__*/React.createElement(Prompt, {\n message: onBeforeUnload\n }), /*#__PURE__*/React.createElement(_Form, _extends({\n name: \"cookie-\".concat(group.key, \"-\").concat(id),\n form: form\n }, FormServiceLayout, {\n initialValues: initialValues,\n onFinish: onFinish,\n onFinishFailed: onFinishFailed,\n onValuesChange: onValuesChange\n }), /*#__PURE__*/React.createElement(FormService, null))));\n});\nexport { CookieEditForm };","import { useRouteMatch } from \"react-router-dom\";\nimport { CookieModel } from \"../models\";\nimport { useRouteCookieGroup } from \".\";\n\nconst useRouteCookie = () => {\n const routeGroup = useRouteCookieGroup();\n const {\n group\n } = routeGroup;\n const {\n params\n } = useRouteMatch(); // Get cookie or return draft object\n\n const id = isNaN(+params.cookie) ? 0 : +params.cookie;\n const queried = !!params.cookie;\n const cookie = group.cookies.entries.get(+params.cookie) || new CookieModel(group.cookies, {\n id: 0\n });\n return {\n routeGroup,\n cookie,\n id,\n queried,\n fetched: cookie.key !== 0\n };\n};\n\nexport { useRouteCookie };","import _Form from \"antd/es/form\";\nimport { useFormHandler } from \".\";\nimport { useCallback } from \"react\";\nimport { Notices, TECHNICAL_DEFINITION_DEFAULTS } from \"../components\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\n\nfunction useFormServiceHandler(opts) {\n var _groups$filter, _groups$filter$;\n\n const {\n setCookiesViaManager,\n selectedGroup,\n groups,\n contentBlockerTemplates,\n allowContentBlockerCreation,\n shouldUncheckContentBlockerCheckbox,\n preset,\n attributes,\n __,\n _i\n } = opts; // Determine the group to use for a given preset, otherwise use current opened group tab\n\n const useGroup = attributes ? attributes.group ? ((_groups$filter = groups.filter(({\n name\n }) => name === attributes.group)) === null || _groups$filter === void 0 ? void 0 : (_groups$filter$ = _groups$filter[0]) === null || _groups$filter$ === void 0 ? void 0 : _groups$filter$.id) || \"preset-group-not-found\" : undefined : selectedGroup;\n const defaultValues = {\n // General\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 providerPrivacyPolicyUrl: (attributes === null || attributes === void 0 ? void 0 : attributes.providerPrivacyPolicyUrl) || \"\",\n consentForwardingUniqueName: (attributes === null || attributes === void 0 ? void 0 : attributes.consentForwardingUniqueName) || (preset === null || preset === void 0 ? void 0 : preset.identifier) || \"\",\n isEmbeddingOnlyExternalResources: (attributes === null || attributes === void 0 ? void 0 : attributes.isEmbeddingOnlyExternalResources) || 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 // Technical\n technicalDefinitions: attributes !== null && attributes !== void 0 && attributes.technicalDefinitions ? JSON.parse(JSON.stringify(attributes.technicalDefinitions)) : [TECHNICAL_DEFINITION_DEFAULTS],\n // Handling\n codeDynamics: (attributes === null || attributes === void 0 ? void 0 : attributes.codeDynamics) || {},\n tagManagerOptInEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.tagManagerOptInEventName) || \"\",\n tagManagerOptOutEventName: (attributes === null || attributes === void 0 ? void 0 : attributes.tagManagerOptOutEventName) || \"\",\n codeOptIn: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptIn) || \"\",\n executeCodeOptInWhenNoTagManagerConsentIsGiven: (attributes === null || attributes === void 0 ? void 0 : attributes.executeCodeOptInWhenNoTagManagerConsentIsGiven) || false,\n codeOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOptOut) || \"\",\n codeOnPageLoad: (attributes === null || attributes === void 0 ? void 0 : attributes.codeOnPageLoad) || \"\",\n executeCodeOptOutWhenNoTagManagerConsentIsGiven: (attributes === null || attributes === void 0 ? void 0 : attributes.executeCodeOptOutWhenNoTagManagerConsentIsGiven) || false,\n deleteTechnicalDefinitionsAfterOptOut: (attributes === null || attributes === void 0 ? void 0 : attributes.deleteTechnicalDefinitionsAfterOptOut) || false,\n createContentBlocker: typeof (attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlocker) === \"boolean\" ? attributes.createContentBlocker : contentBlockerTemplates.length > 0 && allowContentBlockerCreation && !shouldUncheckContentBlockerCheckbox,\n createContentBlockerId: attributes === null || attributes === void 0 ? void 0 : attributes.createContentBlockerId,\n presetCheck: !preset\n };\n const handlers = useFormHandler({ ...opts,\n defaultValues,\n i18n: {\n successMessage: __(\"You have successfully saved the service.\"),\n validationError: __(\"The service could not be saved due to missing/invalid form values.\"),\n unloadConfirm: __('You have unsaved changes. If you click on \"confirm\", your changes will be discarded.')\n }\n });\n const onValuesChange = useCallback((changedValues, values) => {\n handlers.onValuesChange(changedValues, values);\n const {\n technicalDefinitions\n } = changedValues; // Listen to `isSessionDuration` changes and validate the `required` field\n // Listen to `type` changes and validate the technical host field\n\n const td = (technicalDefinitions || []).filter(Boolean);\n\n if (td.length === 1) {\n const tdChangedKeys = Object.keys(td[0]);\n\n if (tdChangedKeys.length === 1 && [\"isSessionDuration\", \"type\"].indexOf(tdChangedKeys[0]) > -1) {\n setTimeout(() => handlers.form.validateFields(), 100); // wait a bit so there are not false-positives\n }\n }\n }, [handlers.onValuesChange, handlers.form]);\n const {\n serviceIsManager\n } = getManagerDependingVariables(setCookiesViaManager, preset === null || preset === void 0 ? void 0 : preset.identifier);\n return { ...handlers,\n onValuesChange,\n useGroup,\n defaultValues,\n contextValue: {\n __,\n _i,\n setCookiesViaManager,\n serviceIsManager,\n presetCheck: !!preset,\n defaultPresetValues: preset ? defaultValues : {},\n allowLegalBasisLegalRequirement: (preset === null || preset === void 0 ? void 0 : preset.identifier) === \"real-cookie-banner\",\n groups,\n allowContentBlockerCreation,\n contentBlockerTemplates,\n notices: {\n group: [{\n message: useGroup === \"preset-group-not-found\" ? __(\"The service group in which this service is normally placed (%s) has been deleted by you. Please group the service yourself.\", attributes.group) : undefined,\n severity: \"warning\"\n }, {\n message: /*#__PURE__*/React.createElement(_Form.Item, {\n noStyle: true,\n key: \"groupDiff\",\n shouldUpdate: (prevValues, nextValues) => prevValues.group !== nextValues.group\n }, ({\n getFieldValue\n }) => /*#__PURE__*/React.createElement(Notices, {\n notices: [{\n message: preset && typeof useGroup === \"number\" && handlers.hasTrackedFieldDifferenceToDefaultValue(\"group\") && getFieldValue(\"group\") !== useGroup ? __(\"The groups specified in service templates were chosen wisely. Are you sure that this service should be assigned to another group for your case?\") : undefined,\n severity: \"warning\"\n }]\n }))\n }]\n }\n }\n };\n}\n\nexport { useFormServiceHandler };","/**\n * Unicode-safe base64 encoding.\n *\n * @see https://stackoverflow.com/a/30106551/5506547\n */\nfunction base64EncodeUnicodeSafe(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(parseInt(p1, 16))));\n}\n\nexport { base64EncodeUnicodeSafe };","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 const {\n optionStore: {\n others: {\n assetsUrl\n }\n }\n } = useStores();\n const logoUrl = \"\".concat(assetsUrl, \"cookie-experts.svg\");\n const openDialog = useCallback(() => {\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: () => _Modal.destroyAll()\n }, __(\"Close\")))\n });\n }, []);\n return {\n logoUrl,\n openDialog\n };\n}\n\nexport { useCookieExpertsModal };","import { useRouteMatch } from \"react-router-dom\";\nimport { useStores } from \"../store\";\nimport { useCallback } from \"react\";\nimport { CookieGroupModel } from \"../models\";\n\nconst useRouteCookieGroup = () => {\n const {\n params: {\n cookieGroup\n }\n } = useRouteMatch();\n const {\n cookieStore\n } = useStores(); // Get cookie group or return draft object\n\n const id = isNaN(+cookieGroup) ? 0 : +cookieGroup;\n const queried = !!cookieGroup;\n const group = cookieStore.groups.entries.get(id) || new CookieGroupModel(cookieStore.groups, {\n id: 0\n });\n const link = \"#/cookies\";\n const editLink = useCallback(({\n key\n }) => \"#/cookies/\".concat(group.key, \"/edit/\").concat(key), [group]);\n const addCookieLink = \"#/cookies/\".concat(group.key, \"/new\");\n return {\n group,\n id,\n queried,\n fetched: group.key !== 0,\n link,\n editLink,\n addCookieLink\n };\n};\n\nexport { useRouteCookieGroup };"],"names":["isUrl","url","test","LearnMoreTag","style","label","__","useStyle","cursor","React","createElement","onClick","window","open","Notices","notices","Fragment","map","message","severity","className","concat","key","dangerouslySetInnerHTML","__html","FormHeadline","children","description","extra","offset","wrapperCol","borderBottom","margin","marginBottom","FormServiceLayout","labelCol","span","FORM_VALUE_DIFFER_FROM_PRESET_NOTICE_PSEUDO_ELEMENT_CLASS_NAME","FormValueDifferFromPresetNotice","containerRef","form","_i","isTemplateUpdate","pseudoElements","setPseudoElements","useState","applied","setApplied","updatePseudoElements","useCallback","current","p","querySelectorAll","useLayoutEffect","interval","setInterval","async","getObject","delayNextCheck","maxTries","i","Promise","r","setTimeout","waitObject","then","document","addEventListener","clearInterval","removeEventListener","length","tag","color","forEach","click","marginTop","FORM_VALUE_DIFFER_FROM_PRESET_TAG_APPLY_EVENT","FormValueDifferFromPresetTag","useModal","valueName","difference","apply","newValueText","renderDiff","widthOfRef","placement","noBr","popoverProps","defaultPresetValues","defaultValue","isModalVisible","setIsModalVisible","width","noStyle","shouldUpdate","prevValues","nextValues","getFieldValue","setFieldsValue","_widthOfRef$current","value","diff","undefined","handleApply","dispatchEvent","CustomEvent","clientWidth","descriptionComponent","contentComponent","oldStr","newStr","context","outputFormat","tagComponent","display","visible","onOk","onCancel","okText","cancelText","destroyTooltipOnHide","overlayStyle","content","title","FormContentBlockerContextFactory","static","this","createContext","useFormContentBlocker","useContext","Context","FormServiceContextFactory","useFormService","useFormHandler","defaultValues","handleSave","i18n","initialHasChanges","trackFieldsDifferFromDefaultValues","isBusy","setIsBusy","hasChanges","setHasChanges","trackedFieldsDifferFromDefaultValues","onFinish","values","resetFields","successMessage","e","onFinishFailed","errorInfo","validationError","errorFields","getFieldInstance","name","parentElement","scrollIntoView","behavior","block","onBeforeUnload","unloadConfirmInitialActive","unloadConfirm","onValuesChange","changedValues","splice","trackFieldChange","push","hasTrackedFieldDifferenceToDefaultValue","field","indexOf","getCookieTypeLocalizationMap","http","abbr","backgroundColor","local","session","flash","indexedDb","CodeMirror","settings","onChange","ref","useRef","codeEditor","useEffect","codemirror","initialize","on","instance","getValue","noop","target","TECHNICAL_DEFINITION_DEFAULTS","type","host","duration","durationUnit","isSessionDuration","purpose","FormServiceFieldGeneralName","required","rules","readOnly","FormServiceFieldGeneralStatus","FormServiceFieldGeneralGroup","serviceIsManager","setCookiesViaManager","essentialGroupId","groups","group","groupNotices","managerLabel","getManagerDependingVariables","id","disabled","curValues","FormServiceFieldGeneralProvider","FormServiceFieldGeneralPurpose","autoSize","minRows","FormServiceFieldGeneralProviderPrivacyPolicyUrl","providerPrivacyPolicyUrl","providerPrivacyPolicyUrlNotices","slugify","str","replace","toLowerCase","from","l","RegExp","charAt","FormServiceFieldGeneralConsentForwardingUniqueName","isConsentForwarding","isEdit","hasServiceByConsentForwardingUniqueName","validateConsentForwardingUniqueName","slug","overwrite","found","matchRegexp","consentForwardingUniqueName","foundGenerated","match","_","g1","g2","isEssentialGroup","nameSlug","validateTrigger","validator","placeholder","Field","props","allowLegalBasisLegalRequirement","FormServiceFieldGeneralLegalBasis","strong","aGdpr","href","rel","FormServiceFieldGeneralDataProcessingInUnsafeCountries","isDataProcessingInUnsafeCountries","dataProcessingInUnsafeCountriesLabel","ePrivacyUSA","valuePropName","checked","FormServiceFieldGeneralIsEmbeddingOnlyExternalResources","isEmbeddingOnlyExternalResourcesLabel","FormServiceFieldGeneralCompose","FormServiceFieldTechnicalDefinitionsCookieType","cookieTypeLocalized","FormServiceFieldTechnicalDefinitionsLayout","fieldKey","Object","keys","FormServiceFieldTechnicalDefinitionsCookieName","_prevValues$technical","_nextValues$technical","technicalDefinitions","cookieName","filter","Array","isArray","code","FormServiceFieldTechnicalDefinitionsCookieHost","_prevValues$technical2","_nextValues$technical2","resolve","reject","startsWith","substr","FormServiceFieldTechnicalDefinitionsCookieDuration","durations","useMemo","s","m","h","d","mo","y","float","min","addonAfter","maxWidth","FormServiceFieldTechnicalDefinitionsCookiePurpose","rows","maxRows","DiffTable","initialValues","isEmbeddingOnlyExternalResources","FormServiceFieldTechnicalDefinitionsTable","isDiff","diffCalculate","oldValue","newValue","numberedIndexedForPosition","oldEntriesModified","reduce","a","idx","modified","definition","idxName","oldModified","position","Boolean","oldEntriesComposedAdded","added","includes","SortableBodyConnected","SortableItem","DragHandle","tbodyRef","SortableBody","MenuOutlined","handleSortStart","node","helper","childNodes","td","index","offsetWidth","onSortEnd","useDragHandle","oldIndex","newIndex","onSortStart","helperContainer","useFormServiceTechnicalDefinitionsTable","fields","add","remove","move","aEprivacy","align","QuestionCircleFilled","DeleteOutlined","colSpan","PlusOutlined","rest","FormServiceFieldHandlingTagManagerEventName","hasManager","addonBefore","marginRight","tagManagerOptInEventName","tagManagerOptOutEventName","inEventName","outEventName","DYNAMICS_VARIABLE_REGEXP","DYNAMICS_SEARCH_IN","FormServiceFieldHandlingDynamicField","dynamicFields","k","searchInResolved","join","matches","matchAll","formName","invalidMessage","example","expression","hint","find","dynamicField","pattern","FormServiceFieldHandlingSkipIfActiveNotice","skipIfActiveComponents","componentKeys","components","split","plugin","flat","uniq","FormServiceFieldHandlingExecuteCodeWhenNoTagManagerConsentIsGiven","isPro","executeCodeWhenNoTagManagerConsentIsGivenLabel","u","FormServiceFieldHandlingCodeOptIn","renderCodeMirror","FormServiceFieldHandlingDeleteTechnicalDefinitionsAfterOptOut","deleteTechnicalDefinitionsAfterOptOutLabel","FormServiceFieldHandlingCodeOptOut","createHiddenFormItemsWithCodeMirror","opacity","height","FormServiceFieldHandlingCodeOnPageLoad","FormServiceFieldHandlingCompose","serviceGotScanned","contentBlockerTemplates","technicalHandling","technicalHandlingNotices","presetDefaultName","FormServiceFieldCreateContentBlocker","allowContentBlockerCreation","createContentBlocker","createContentBlockerNotices","dependencies","identifier","subHeadline","FormServiceFieldPresetCheck","presetCheck","transform","FormService","I18nContext","Provider","textAlign","CookieEditForm","preset","overwriteAttributes","navigateAfterCreation","scrollToTop","onCreated","_presetModel$attribut","_cookie$data","_cookie$data$meta","_presetModel$attribut2","_presetModel$attribut3","_presetModel$attribut4","_presetModel$attribut5","routeGroup","link","cookie","queried","fetched","useRouteCookieGroup","params","useRouteMatch","isNaN","cookies","entries","get","useRouteCookie","history","useHistory","cookieStore","optionStore","tcf","consentForwarding","others","useEncodedStringForScriptInputs","activePlugins","essentialGroup","presetModel","presetsCookie","sortedGroups","data","attributes","contextValue","opts","_groups$filter","_groups$filter$","selectedGroup","shouldUncheckContentBlockerCheckbox","useGroup","status","provider","legalBasis","JSON","parse","stringify","codeDynamics","codeOptIn","executeCodeOptInWhenNoTagManagerConsentIsGiven","codeOptOut","codeOnPageLoad","executeCodeOptOutWhenNoTagManagerConsentIsGiven","deleteTechnicalDefinitionsAfterOptOut","createContentBlockerId","handlers","tdChangedKeys","validateFields","useFormServiceHandler","version","_document$querySelect","codeToBase64","btoa","encodeURIComponent","p1","String","fromCharCode","parseInt","base64EncodeUnicodeSafe","meta","newMeta","presetId","presetVersion","setName","setStatus","setPurpose","setMeta","setGroup","patch","draft","rendered","protected","persist","noticeId","_document$querySelect2","querySelector","classList","location","slice","responseJSON","createContentBlockerNotice","raw","getSingle","fetchAttributes","busy","scrollTo","request","ID","FormServiceContext","active","paragraph","isTcf","scanned","cm_settings","groupNotice","technicalHandlingNotice","spinning","Prompt","useCookieExpertsModal","assetsUrl","logoUrl","openDialog","icon","closable","okButtonProps","src","paddingTop","size","textDecoration","cookieGroup","editLink","addCookieLink"],"sourceRoot":""}
public/dist/admin.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- var realCookieBanner_admin;(()=>{"use strict";var e,t,o,r={7747:(e,t,o)=>{var r,i;o.d(t,{r:()=>r}),function(e){e.Cookie="cookie",e.Web="web",e.App="app"}(r||(r={})),function(e){e.Bulgarian="bg",e.Catalan="ca",e.Czech="cs",e.Danish="da",e.German="de",e.Greek="el",e.Spanish="es",e.Estonian="et",e.Basque="eus",e.Finnish="fi",e.French="fr",e.Galician="gl",e.Croatian="hr",e.Hungarian="hu",e.Italian="it",e.Japanese="ja",e.Lithuanian="lt",e.Latvian="lv",e.Maltese="mt",e.Dutch="nl",e.Norwegian="no",e.Polish="pl",e.Portuguese="pt",e.Romanian="ro",e.SerbianCyrillic="sr-Cyrl",e.SerbianLatin="sr-Latn",e.Russian="ru",e.Slovak="sk",e.Slovenian="sl",e.Swedish="sv",e.Turkish="tr",e.Chinese="zh"}(i||(i={}))},8924:(e,t,o)=>{o.d(t,{I4:()=>i,Lg:()=>n,TK:()=>r});const r="Google Tag Manager",i="Matomo Tag Manager";function n(e,t){let o,n,s,a=!1,l="";if(e&&"none"!==e){const c="googleTagManager"===e,p="matomoTagManager"===e;c?(s="gtm",o="dataLayer",l=r):p&&(s="mtm",o="_mtm",l=i),(c||p)&&(n=()=>(window[o]=window[o]||[],window[o])),s&&t===s&&(a=!0)}return{getDataLayer:n,serviceIsManager:a,managerLabel:l,expectedManagerPresetId:s}}},987:(e,t,o)=>{o.d(t,{Q:()=>n,x:()=>i});var r=o(7363);class i{static Context(){return this.context=this.context||(0,r.createContext)({})}}function n(){return(0,r.useContext)(i.Context())}i.context=void 0},8057:(e,t,o)=>{o.d(t,{E:()=>n});var r=o(7363);const i=/(\r\n|\r|\n|<br[ ]?\/>)/g,n=e=>e.split(i).map(((e,t)=>e.match(i)?(0,r.createElement)("br",{key:t}):e))},6974:(e,t,o)=>{o.r(t),o.d(t,{ChecklistStore:()=>f.L_,ConsentStore:()=>f.v,CookieStore:()=>f.hc,CustomizeBannerStore:()=>f.WS,OptionStore:()=>f.aZ,RootStore:()=>f.My,ScannerStore:()=>f.Cu,StatsStore:()=>f.et,TcfStore:()=>f.z,locationRestChecklistGet:()=>y.gn,locationRestChecklistPut:()=>y.s5,locationRestConsentAllDelete:()=>y.Ok,locationRestConsentAllGet:()=>y.cI,locationRestConsentClearDelete:()=>y.rz,locationRestConsentDynamicPredecisionGet:()=>y.aY,locationRestConsentForwardPost:()=>y.vY,locationRestConsentGet:()=>y.JQ,locationRestConsentPost:()=>y.PM,locationRestConsentRefererGet:()=>y.qD,locationRestCookieGroupOrderPut:()=>y.BI,locationRestCookieUnassignedGet:()=>y.pV,locationRestCookiesOrderPut:()=>y.It,locationRestCountryBypassDatabasePut:()=>y._3,locationRestExportConsentsGet:()=>y.QB,locationRestExportGet:()=>y.Vm,locationRestForwardCookieGet:()=>y.Vc,locationRestForwardEndpointsGet:()=>y.AW,locationRestImportPost:()=>y.HR,locationRestLiteDismissConfigPageProNotice:()=>y.nQ,locationRestMigrationDelete:()=>y.oW,locationRestMigrationPost:()=>y.nX,locationRestNavMenuAddLinksPost:()=>y.iO,locationRestPresetsBannerGet:()=>y.tX,locationRestPresetsBlockerAttributesGet:()=>y.N9,locationRestPresetsBlockerGet:()=>y.Wu,locationRestPresetsCookiesAttributesGet:()=>y.tw,locationRestPresetsCookiesGet:()=>y.zf,locationRestRevisionCurrentGet:()=>y.GQ,locationRestRevisionCurrentPut:()=>y.a4,locationRestRevisionGet:()=>y.Z1,locationRestRevisionIndependentGet:()=>y.TB,locationRestScannerQueuePost:()=>y.kv,locationRestScannerResultAllExternalUrlsByHostGet:()=>y.ME,locationRestScannerResultExternalPatch:()=>y.Ce,locationRestScannerResultExternalsGet:()=>y.MQ,locationRestScannerResultMarkupGet:()=>y.$5,locationRestScannerResultPresetsGet:()=>y.eO,locationRestStatsButtonsClickedGet:()=>y.$Q,locationRestStatsCustomBypassGet:()=>y.gh,locationRestStatsMainGet:()=>y.BV,locationRestTcfDeclarationsGet:()=>y.Y3,locationRestTcfGvlPut:()=>y.yR,locationRestTcfVendorsGet:()=>y.fs,locationRestWpSettings:()=>y.g3,locationRestWpSettingsPatch:()=>y.J3,useStores:()=>f.mZ});var r=o(1246),i=o(8653),n=(o(1913),o(1533)),s=o(9743),a=o(4990),l=(o(9494),o(8852),o(8488)),c=o.n(l),p=o(8700),u=o(7669),h=o(5217),b=o(987),d={};for(const e in p)"default"!==e&&(d[e]=()=>p[e]);o.d(t,d);var y=o(6568),f=o(8919);o.p=(0,p.getWebpackPublicPath)("real-cookie-banner"),null===p.handleCorrupRestApi||void 0===p.handleCorrupRestApi||(0,p.handleCorrupRestApi)({[s.M.get.optionStore.restNamespace]:async()=>{await(0,u.W)({location:{path:"/plugin"}})},"wp/v2":async()=>{await(0,u.W)({location:{path:"/settings",namespace:"wp/v2"}})}}),i.ZP.config({prefixCls:"rcb-antd"}),r.ZP.config({top:50});const m=document.getElementById("".concat(s.M.get.optionStore.slug,"-component"));if(m){const e=b.x.Context();(0,n.render)(React.createElement(e.Provider,{value:{__:h.__,_i:h._i}},React.createElement(i.ZP,{prefixCls:"rcb-antd",locale:{locale:c().locale()}},React.createElement(s.M.StoreProvider,null,React.createElement(a.K,null)))),m)}},4144:(e,t,o)=>{o.d(t,{b:()=>w});var r=o(8208),i=o(8612),n=o(7465),s=o(9511),a=o(7363),l=o(3867),c=o(5217),p=o(301),u=o(5230),h=o(7921),b=o(886),d=o(9743),y=o(2684),f=o(1816),m=o(2411);const g=(0,l.Pi)((({id:e,checked:t,title:o,description:r,link:i,linkText:n,linkTarget:a,needsPro:l,onLinkClick:g})=>{const{optionStore:{others:{isPro:v},fomoCoupon:w}}=(0,d.m)(),k=!v&&l;let Z=null,C=null,R=i;switch(e){case"scanner":{const{percent:e,remaining:t,currentJob:o}=(0,y.p)();t>0&&e>0&&(null==o?void 0:o.group_position)>0&&(Z=React.createElement(s.Z,null,(0,c.__)("Currently scanning (%d %%)",e)));break}case"get-pro":C=React.createElement(m.S,null),w&&(R+="&".concat(m.Q))}return React.createElement("div",{style:{margin:"5px 0"}},React.createElement(p.Z,{title:t&&r},React.createElement("span",null,k?React.createElement(u.Z,{style:{color:"#7ec8ec"}}):t?React.createElement(h.Z,{style:{color:"#52c41a"}}):React.createElement(b.Z,{style:{color:"#e2e2e2"}})," ",React.createElement("span",{style:{textDecoration:t?"line-through":void 0,fontWeight:"bold"}},o),!!R&&!!n&&React.createElement(React.Fragment,null,"  •  ",React.createElement("a",{href:R,target:a,rel:"noreferrer",onClick:g},n)))),k&&"get-pro"!==e&&React.createElement(React.Fragment,null," ",React.createElement(s.Z,{color:f.k},(0,c.__)("Needs PRO"))),!!Z&&React.createElement(React.Fragment,null," ",Z),!!r&&!t&&React.createElement("p",{className:"description",style:{paddingLeft:17}},r),!!C&&React.createElement("div",{style:{paddingLeft:17}},C))}));var v=o(2185);const w=(0,l.Pi)((({onLinkClick:e,...t})=>{const{checklistStore:o}=(0,d.m)(),{busyChecklist:l,items:p,completed:u,checkable:h,done:y,checklist:{overdue:f}}=o,[m,w]=(0,a.useState)("boolean"==typeof t.showHidden?t.showHidden:!y);return React.createElement(r.Z,{spinning:l},React.createElement(i.Z,{direction:"vertical",size:"large"},f&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:0}},React.createElement("p",null,(0,c.__)("How time flies! You have installed Real Cookie Banner some time ago, but you still haven't finished the configuration yet."))),React.createElement("p",{className:"description"},(0,c.__)("We have collected all relevant steps for the legally compliant use of Real Cookie Banner after the first installation. Set up the cookie banner step by step to add a cookie banner to your website in compliance with the ePrivacy Directive and GDPR.")),React.createElement("div",null,y&&(m?React.createElement(s.Z,{icon:React.createElement(v.Z,null),color:"default",style:{cursor:"pointer"},onClick:()=>w(!1)},(0,c.__)("Hide completed steps")):React.createElement(s.Z,{icon:React.createElement(b.Z,null),color:"success",style:{cursor:"pointer"},onClick:()=>w(!0)},(0,c.__)("%d / %d steps completed",u.length>h.length?h.length:u.length,h.length))),p.map((({id:t,...r})=>!m&&r.checked?null:React.createElement(g,(0,n.Z)({key:t,id:t},r,{onLinkClick:r=>{["get-pro"].indexOf(t)>-1&&o.toggleChecklistItem(t,!0),null==e||e(r)}})))))))}))},4990:(e,t,o)=>{o.d(t,{K:()=>N,m:()=>D});var r=o(918),i=o(8208),n=o(7363),s=o(3867),a=o(6711),l=o(5217),c=o(9743),p=o(8936);const u=(0,s.Pi)((()=>{const{optionStore:e}=(0,c.m)(),{pathname:t}=(0,a.useLocation)();return e.needsRevisionRetrigger&&-1===t.indexOf("/edit/")&&-1===t.indexOf("/new")&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l.__)("You have changed settings that affect the content or behavior of the cookie banner. You should ask all visitors for their consent again.")," ","•"," ",React.createElement("a",{style:{cursor:"pointer",textDecoration:"underline"},onClick:()=>e.updateCurrentRevision({needs_retrigger:!0})},(0,l.__)("Request new consent"))," ","•"," ",React.createElement(p.Z,{title:React.createElement(React.Fragment,null,React.createElement("strong",null,(0,l.__)("Are you sure you don't want to collect new consents?")),React.createElement("br",null),React.createElement("br",null),(0,l._i)((0,l.__)("Consent must be obtained in accordance with {{a}}Art. 7 GDPR{{/a}}. Your visitor must be informed about all circumstances of the consent. However, you have made changes to your cookie banner, which lead to the fact that previously visitors have consented differently or to something different than is now in the cookie banner. Therefore, previously collected consents may have become partially invalid."),{a:React.createElement("a",{href:(0,l.__)("https://gdpr-info.eu/art-7-gdpr/"),rel:"noreferrer",target:"_blank"})}),React.createElement("br",null),React.createElement("br",null),(0,l.__)("If you have created a new service like Google Analytics (without visual content blocker), previous visitors can never consent without collecting new consents and you cannot track them, for example.")),placement:"bottomRight",onConfirm:()=>e.updateCurrentRevision({needs_retrigger:!1}),okText:(0,l.__)("Dismiss notice"),cancelText:(0,l.__)("Cancel"),overlayStyle:{maxWidth:450}},React.createElement("a",{style:{cursor:"pointer",textDecoration:"underline"}},(0,l.__)("Dismiss notice")))))})),h=(0,s.Pi)((()=>{const{optionStore:{publicCookieCount:e,busySettings:t,bannerActive:o}}=(0,c.m)();return o&&!e&&!t&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l.__)("The cookie banner is activated, but unfortunately you have not yet created or enabled services.")))}));var b=o(9712);const d=(0,s.Pi)((()=>{const{showNoticeAnonymousScriptNotWritable:e}=(0,b.u)();return!!e&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l._i)((0,l.__)("Your {{code}}wp-content{{/code}} folder is not writable. Please check your permissions!"),{code:React.createElement("code",null)})))}));var y=o(8924);const f=(0,s.Pi)((()=>{const{optionStore:{setCookiesViaManager:e,hasManager:t}}=(0,c.m)(),{managerLabel:o,expectedManagerPresetId:r}=(0,y.Lg)(e),{pathname:i}=(0,a.useLocation)();return o&&!t&&/^\/cookies\/\d+$/.test(i)&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l._i)((0,l.__)("You have not yet defined a %s service. To use {{strong}}%s{{/strong}} with Real Cookie Banner, you must create the appropriate service.",o,o),{strong:React.createElement("strong",null)})," ","• ",React.createElement("a",{href:"#".concat(i,"/new?force=").concat(r)},(0,l.__)("Create now"))))}));var m=o(1712);const g=()=>{const{listen:e}=(0,a.useHistory)();return(0,n.useEffect)((()=>{const t=e((()=>{(0,m.X)(0)}));return()=>{t()}}),[e]),null};var v=o(3751),w=o(886),k=o(6363);const Z=(0,s.Pi)((()=>{const{optionStore:e}=(0,c.m)(),{others:{proUrl:t,isPro:o,isConfigProNoticeVisible:r}}=e,i="".concat(t,"&feature=main-button"),s=(0,n.useCallback)((()=>{window.open(i,"_blank"),e.dismissConfigProNotice()}),[e]),a=(0,n.useCallback)((()=>{e.dismissConfigProNotice()}),[e]);return!o&&React.createElement(p.Z,{visible:!!r,title:(0,l.__)("Thank you for using the free version of Real Cookie Banner. You might also be interested in the PRO version, which offers you more features, 20+ design templates, 100+ service templates, 60+ content blocker templates and much more."),icon:React.createElement(k.Z,{style:{color:"#1890ff"}}),placement:"bottom",onConfirm:s,onCancel:a,cancelText:(0,l.__)("No, not interested..."),okText:(0,l.__)("I want to learn more!"),overlayStyle:{maxWidth:450}},React.createElement("a",{className:"page-title-action",rel:"noreferrer",onClick:s},(0,l.__)("Get PRO version")))}));var C=o(4144);const R=(0,s.Pi)((()=>{const[e,t]=(0,n.useState)(!1),{optionStore:o,checklistStore:r}=(0,c.m)(),{pathname:i}=(0,a.useLocation)(),{others:{customizeBannerUrl:s},publicUrl:p}=o,{completed:u,checkable:h,done:b}=r;(0,n.useEffect)((()=>{r.fetchChecklist()}),[]);const d=(0,n.useCallback)((e=>{window.location.href="".concat(s,"&return=").concat(encodeURIComponent(window.location.href)),e.preventDefault()}),[]),y=(0,n.useCallback)((()=>{t(!0),r.fetchChecklist()}),[t]),f=(0,n.useCallback)((()=>{t(!1)}),[t]);return React.createElement(React.Fragment,null,React.createElement("h1",{className:"wp-heading-inline"},(0,l.__)("Real Cookie Banner")),React.createElement("img",{className:"rcb-nav-logo",src:"".concat(p,"images/logos/real-cookie-banner.svg")}),React.createElement("a",{className:"page-title-action",href:"#",onClick:d},(0,l.__)("Customize banner")),React.createElement(Z,null),!b&&"/"!==i&&React.createElement(React.Fragment,null,React.createElement("a",{className:"page-title-action",style:{color:"#52c41a",background:"#f6ffed",borderColor:"#85af65"},onClick:y},React.createElement(w.Z,null)," ",(0,l.__)("%d / %d steps completed",u.length>h.length?h.length:u.length,h.length)),React.createElement(v.Z,{visible:e,title:(0,l.__)("Set up the cookie banner"),onCancel:f,okButtonProps:{style:{display:"none"}},cancelText:(0,l.__)("Close"),width:800},React.createElement(C.b,{showHidden:!0,onLinkClick:f}))),React.createElement("hr",{className:"wp-header-end"}))}));var P=o(697);const S=(0,s.Pi)((()=>{const{optionStore:{publicUrl:e}}=(0,c.m)();return React.createElement("div",{className:"rcb-config-footer"},(0,l._i)((0,l.__)("Real Cookie Banner is brought to you with {{icon/}} by"),{icon:React.createElement(P.Z,{style:{color:"#dca7a7"}})}),React.createElement("a",{href:(0,l.__)("https://devowl.io/"),target:"_blank",rel:"noreferrer"},React.createElement("img",{src:"".concat(e,"images/logos/devowl-with-text.svg")})))}));var O=o(8700),E=o(2684),_=o(6),z=o(2208);const x={display:"block",marginTop:10},D=(e,t)=>({default:()=>React.createElement(O.SuspenseChunkTranslation,{chunkFile:o.u("chunk-config-tab-".concat(e)),options:()=>(0,c.m)().optionStore,fallback:React.createElement(i.Z,{spinning:!0,style:x})},t)}),T=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(414),o.e(544),o.e(85),o.e(932),o.e(637),o.e(379)]).then(o.bind(o,1429)).then((({DashboardCards:e})=>D("dashboard",React.createElement(e,null)))))),A=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(768)]).then(o.bind(o,5053)).then((({SettingsForm:e})=>D("settings",React.createElement(e,null)))))),M=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(81),o.e(793),o.e(466),o.e(474),o.e(737),o.e(578),o.e(3)]).then(o.bind(o,38)).then((({ScannerRouter:e})=>D("scanner",React.createElement(e,null)))))),I=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(544),o.e(466),o.e(853),o.e(932),o.e(718)]).then(o.bind(o,7248)).then((({CookieGroupsTabRouter:e})=>D("cookies",React.createElement(e,null)))))),j=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(414),o.e(466),o.e(474),o.e(625)]).then(o.bind(o,8687)).then((({ConsentTabRouter:e})=>D("consent",React.createElement(e,null)))))),B=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(544),o.e(85),o.e(932),o.e(637),o.e(478)]).then(o.bind(o,9069)).then((({BlockerRouter:e})=>D("blocker",React.createElement(e,null)))))),V=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(414),o.e(737),o.e(902),o.e(357)]).then(o.bind(o,8058)).then((({ImportExportCards:e})=>D("import",React.createElement(e,null)))))),U=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(307),o.e(81),o.e(322)]).then(o.bind(o,3761)).then((({ConfigLicensing:e})=>D("licensing",React.createElement(e,null)))))),N=(0,s.Pi)((()=>{const{percent:e,remaining:t,currentJob:o}=(0,E.p)(),{optionStore:s,checklistStore:p}=(0,c.m)(),{others:{showLicenseFormImmediate:b,colorScheme:[,,y]}}=s;return(0,n.useLayoutEffect)((()=>{s.fetchSettings();const e=()=>{p.fetchChecklist()},t="".concat(_.JOB_DONE_EVENT_PREFIX).concat(z.b);return document.addEventListener(t,e),()=>{document.removeEventListener(t,e)}}),[]),b?React.createElement(n.Suspense,{fallback:React.createElement(i.Z,{spinning:!0,style:x})},React.createElement(U,null)):React.createElement(a.HashRouter,null,React.createElement(R,null),React.createElement("nav",{className:"nav-tab-wrapper wp-clearfix"},React.createElement(a.NavLink,{to:"/",className:"nav-tab",activeClassName:"nav-tab-active",exact:!0},(0,l.__)("Dashboard")),React.createElement(a.NavLink,{to:"/settings",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Settings")),React.createElement(a.NavLink,{to:"/scanner",className:"nav-tab",activeClassName:"nav-tab-active"},t>0&&e>0&&(null==o?void 0:o.group_position)>0?React.createElement(r.Z,{count:"".concat(e," %"),style:{top:-11,fontSize:10,height:16,lineHeight:"16px",background:y}},(0,l.__)("Scanner")):(0,l.__)("Scanner")),React.createElement(a.NavLink,{to:"/cookies",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Services (Cookies)")),React.createElement(a.NavLink,{to:"/blocker",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Content Blocker")),React.createElement(a.NavLink,{to:"/consent",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Consent")),React.createElement(a.NavLink,{to:"/import",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Import / Export")),"try.devowl.io"!==window.location.host&&React.createElement(a.NavLink,{to:"/licensing",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Licensing")),React.createElement("a",{href:(0,l.__)("https://devowl.io/support/"),className:"nav-tab",target:"_blank",rel:"noreferrer"},(0,l.__)("Support"))),React.createElement(u,null),React.createElement(h,null),React.createElement(d,null),React.createElement(f,null),React.createElement(g,null),React.createElement(n.Suspense,{fallback:React.createElement(i.Z,{spinning:!0,style:x})},React.createElement(a.Switch,null,React.createElement(a.Route,{path:"/",exact:!0},React.createElement(T,null)),React.createElement(a.Route,{path:"/settings/:tab?"},s.areSettingsFetched?React.createElement(A,null):null),React.createElement(a.Route,{path:"/scanner"},React.createElement(M,null)),React.createElement(a.Route,{path:"/cookies/:cookieGroup?"},React.createElement(I,null)),React.createElement(a.Route,{path:"/consent/:tab?"},React.createElement(j,null)),React.createElement(a.Route,{path:"/blocker"},React.createElement(B,null)),React.createElement(a.Route,{path:"/import"},React.createElement(V,null)),React.createElement(a.Route,{path:"/licensing"},React.createElement(U,null)))),React.createElement(S,null))}))},2411:(e,t,o)=>{o.d(t,{Q:()=>u,S:()=>h});var r=o(1063),i=o(9511),n=o(1246),s=o(3867),a=o(7363),l=o(9743),c=o(5217),p=o(1589);const u="promo=in-app",h=(0,s.Pi)((({style:e})=>{const{optionStore:{fomoCoupon:t}}=(0,l.m)(),o=null==t?void 0:t.coupon,s=null==t?void 0:t.valueInPercent,u=null==t?void 0:t.validUntil,h=(0,a.useCallback)((()=>{if(u){const e=new Date(u).getTime()-(new Date).getTime();if(e<=0)return;const t=e/1e3;return[Math.floor(t/3600),Math.floor(t/60)%60,Math.floor(t%60)].map((e=>e<10?"0".concat(e):e)).filter(((e,t)=>"00"!==e||t>0)).join(":")}}),[u]),[,b]=(0,a.useState)();(0,a.useEffect)((()=>{const e=setInterval((()=>{b((new Date).getTime())}),1e3);return()=>{clearInterval(e)}}),[]);const d=h();return d?React.createElement(r.Z,{style:e,message:(0,c._i)((0,c.__)("Use coupon {{tag}}%s{{/tag}} in the next {{strongHours}}%s hours{{/strongHours}} and save {{strongPercent}}%d %%{{/strongPercent}} in the first year!",o,d,s),{tag:React.createElement(i.Z,{color:"success",style:{marginRight:0,cursor:"pointer"},onClick:()=>{(0,p.v)(o),n.ZP.success((0,c.__)("Successfully copied coupon to clipboard!"))}}),strongHours:React.createElement("strong",{style:{color:"#d33131"}}),strongPercent:React.createElement("strong",null)})}):null}))},4251:(e,t,o)=>{o.d(t,{B:()=>u});var r=o(3751),i=o(7363),n=o(3541),s=o(9712),a=o(5217),l=o(2411),c=o(6178),p=o(8057);const u=({visible:e=!1,showHints:t=!0,showFomoCouponCounter:o=!0,title:u,testDrive:h=!1,assetName:b,description:d,feature:y,onClose:f,inContainer:m,inContainerElement:g})=>{const{proUrl:v,hints:w}=(0,s.u)(),[k,Z]=(0,i.useState)(),C=(0,i.useCallback)((()=>{window.open("".concat(v,"&feature=").concat(y,"&").concat(l.Q),"_blank").focus(),null==f||f()}),[f]);(0,i.useEffect)((()=>{m&&k&&(null==k?void 0:k.parentElement.parentElement.previousElementSibling).removeAttribute("tabIndex")}),[k]);const R=null==w?void 0:w.proDialog;return m&&!g?null:React.createElement(r.Z,{visible:!!m||e,title:React.createElement("span",null,React.createElement(n.Z,null)," ",u," ",(0,a.__)("Get PRO!")),onOk:C,onCancel:f,cancelText:(0,a.__)("No, not interested..."),okText:(0,a.__)("I want to learn more!"),className:"rcb-pro-modal",width:b?800:700,getContainer:m?g:void 0},!!b&&React.createElement("img",{style:{marginTop:10},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/".concat(b)}),React.createElement("div",{style:{maxWidth:600,margin:"auto"},ref:Z},React.createElement("p",null,(0,p.E)(d)),h&&React.createElement("p",null,(0,a._i)((0,a.__)("Check out this feature with a {{a}}free sandbox{{/a}} before buying!"),{a:React.createElement("a",{href:(0,a.__)("https://try.devowl.io/?product=RCB"),target:"_blank",rel:"noreferrer"})}))),!!R&&t&&React.createElement("div",{style:{maxWidth:600,margin:"auto",textAlign:"left"}},React.createElement(c.j,R)),o&&React.createElement(l.S,{style:{marginBottom:15}}))}},6178:(e,t,o)=>{o.d(t,{j:()=>s});var r=o(7743),i=o(2605),n=o(3404);const s=({title:e,description:t,link:o,linkText:s,logo:a})=>React.createElement(React.Fragment,null,React.createElement(n.Z,null,e),React.createElement(r.Z,{wrap:!1,style:{marginBottom:10}},React.createElement(i.Z,{flex:"auto"},!!t&&React.createElement("p",{style:{margin:0}},React.createElement("span",{dangerouslySetInnerHTML:{__html:t}})," ",!!o&&!!s&&React.createElement("a",{href:o,target:"_blank",rel:"noreferrer",className:"button-link"},s))),React.createElement(i.Z,{flex:"150px",style:{alignSelf:"center"}},!!a&&React.createElement("img",{src:a,style:{maxWidth:"calc(100% - 20px)",height:"auto",marginLeft:20}}))))},1816:(e,t,o)=>{o.d(t,{k:()=>p,t:()=>u});var r=o(7465),i=o(9511),n=o(2465),s=o(5217),a=o(9743),l=o(7363),c=o(4251);const p="#2db7f5";function u(e,t){const[o,u]=(0,l.useState)(!1),{optionStore:{others:{isPro:h}}}=(0,a.m)(),b="boolean"==typeof t?t:h,d=(0,l.useCallback)((e=>{u(!0),null==e||e.preventDefault()}),[u]),y=(0,l.useMemo)((()=>b?null:React.createElement(i.Z,{icon:React.createElement(n.Z,null),color:p,style:{cursor:"pointer"},onClick:d},e.tagText||(0,s.__)("Unlock feature"))),[d,e]),f=(0,l.useMemo)((()=>b?null:React.createElement(c.B,(0,r.Z)({visible:o,onClose:()=>u(!1)},e))),[o,u,e]);return{isPro:b,tag:y,modal:f,open:d}}},2684:(e,t,o)=>{o.d(t,{p:()=>a});var r=o(6),i=o(7363),n=o(9743),s=o(2208);function a(e,t=!1,o){const{scannerStore:a}=(0,n.m)();return(0,r.useProgress)({type:s.u,fetchStatusInterval:e,fetchAdditionalData:t,onAdditionalData:(0,i.useCallback)((({"rcb-scan-list":e})=>{const{presets:t,externalUrls:o}=e;a.resultPresetsFromResponse(t),a.resultExternalUrlsFromResponse(o)}),[a]),onCancel:o})}},6613:(e,t,o)=>{o.d(t,{p:()=>d});var r,i,n,s,a,l,c,p=o(6921),u=o(9888),h=o(7821),b=o(490);let d=(r=class e{constructor(e,t){(0,p.Z)(this,"id",i,this),(0,p.Z)(this,"name",n,this),(0,p.Z)(this,"needsPro",s,this),(0,p.Z)(this,"description",a,this),(0,p.Z)(this,"tags",l,this),(0,p.Z)(this,"settings",c,this),this.store=void 0,this.resetPreviewInUiSettings=void 0,(0,h.runInAction)((()=>(0,h.set)(this,e))),this.store=t}static getIframeStore(){try{return document.querySelector("#customize-preview > iframe").contentWindow.realCookieBanner_customize_banner.RootStore.get}catch(e){return}}applyInUi(){return!(!this.store.rootStore.optionStore.others.isPro&&this.needsPro||(this.previewInUi(),setTimeout((()=>{const e=(0,b.getSidebarCustomize)();this.store.presetDefaults.forEach(((t,o)=>{e(o).set(void 0===this.settings[o]?t:this.settings[o])}))}),100),0))}previewInUi(){const t=(0,b.getSidebarCustomize)(),{presetDefaults:o}=this.store,{settings:r}=this.store.rootStore.optionStore.others.customizeIdsBanner,i=[];this.resetPreviewInUiSettings={};for(const e of Object.keys(r)){const n=r[e];for(const r of Object.keys(n)){const s=n[r];if(!o.has(s))continue;this.resetPreviewInUiSettings[s]=[e,r,t(s).get()];const a=Object.prototype.hasOwnProperty.call(this.settings,s)?this.settings[s]:o.get(s);i.push([e,r,a])}}e.getIframeStore().customizeBannerStore.setBannerFromPreset(i)}resetPreviewInUi(){this.resetPreviewInUiSettings&&(e.getIframeStore().customizeBannerStore.setBannerFromPreset(Object.values(this.resetPreviewInUiSettings)),this.resetPreviewInUiSettings={})}},i=(0,u.Z)(r.prototype,"id",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,u.Z)(r.prototype,"name",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,u.Z)(r.prototype,"needsPro",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a=(0,u.Z)(r.prototype,"description",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,u.Z)(r.prototype,"tags",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=(0,u.Z)(r.prototype,"settings",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},8578:(e,t,o)=>{o.d(t,{R:()=>a});var r,i=o(8700),n=o(7669),s=o(3642);let a=i.ClientCollection.annotate({path:"/rcb-blocker",singlePath:"/rcb-blocker/:id",namespace:"wp/v2",methods:[i.RouteHttpVerb.GET],request:n.W})(r=class extends i.AbstractPostCollection{constructor(e){super(),this.store=void 0,this.store=e}instance(e){return new s.p(this).fromResponse(e)}})||r},3642:(e,t,o)=>{o.d(t,{p:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(6054),u=o(7821),h=o(9743);let b=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-blocker"},patch:{path:"/rcb-blocker/:id"},delete:{path:"/rcb-blocker/:id"}})((i=class extends l.AbstractPost{get rules(){var e;return null===(e=this.data)||void 0===e?void 0:e.meta.rules.split("\n")}get tcfVendors(){var e;return null!==(e=this.data)&&void 0!==e&&e.meta.tcfVendors?this.data.meta.tcfVendors.split(",").filter(Boolean).map(Number):[]}get services(){var e;return null===(e=this.data)||void 0===e?void 0:e.meta.services.split(",").filter(Boolean).map(Number)}constructor(e,t={}){super(e,t),(0,s.Z)(this,"presetModel",n,this),(0,u.reaction)((()=>{var e;return null===(e=this.data)||void 0===e?void 0:e.preset}),(e=>(0,u.runInAction)((()=>{this.presetModel=e?new p.w(e,h.M.get.cookieStore):void 0}))),{fireImmediately:!0})}setName(e){this.data.title.rendered=e}setStatus(e){this.data.status=e}setDescription(e){this.data.content.rendered=e}setMeta(e){this.data.meta=e}transformDataForPatch(){const e=super.transformDataForPatch();return{title:e.title,content:e.content,status:e.status,meta:e.meta,slug:e.title}}afterPatch(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}afterDelete(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,a.Z)(i.prototype,"presetModel",[u.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"rules",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"rules"),i.prototype),(0,a.Z)(i.prototype,"tcfVendors",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"tcfVendors"),i.prototype),(0,a.Z)(i.prototype,"services",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"services"),i.prototype),(0,a.Z)(i.prototype,"setName",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setDescription",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setDescription"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},6054:(e,t,o)=>{o.d(t,{w:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(6406),u=o(7669);let h=(r=class{get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,u.W)({location:p.N,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),r)},97:(e,t,o)=>{o.d(t,{y:()=>I});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m,g,v,w,k,Z,C,R,P,S,O,E,_,z,x,D,T=o(6921),A=o(9888),M=o(7821);let I=(r=class{get revision(){return this.store.revisions.get(this.revision_hash)}get revision_independent(){return this.store.revisionsIndependent.get(this.revision_independent_hash)}get custom_bypass_readable(){const{custom_bypass:e}=this;return e?e.charAt(0).toUpperCase()+e.slice(1):""}get export(){return JSON.parse(JSON.stringify({...this.plain,revision:this.revision.data,revision_independent:this.revision_independent.data}))}constructor(e,t){(0,T.Z)(this,"id",i,this),(0,T.Z)(this,"plugin_version",n,this),(0,T.Z)(this,"design_version",s,this),(0,T.Z)(this,"ipv4",a,this),(0,T.Z)(this,"ipv6",l,this),(0,T.Z)(this,"ipv4_hash",c,this),(0,T.Z)(this,"ipv6_hash",p,this),(0,T.Z)(this,"uuid",u,this),(0,T.Z)(this,"previous_decision",h,this),(0,T.Z)(this,"decision",b,this),(0,T.Z)(this,"decision_labels",d,this),(0,T.Z)(this,"created",y,this),(0,T.Z)(this,"blocker",f,this),(0,T.Z)(this,"blocker_thumbnail",m,this),(0,T.Z)(this,"dnt",g,this),(0,T.Z)(this,"custom_bypass",v,this),(0,T.Z)(this,"user_country",w,this),(0,T.Z)(this,"revision_hash",k,this),(0,T.Z)(this,"revision_independent_hash",Z,this),(0,T.Z)(this,"button_clicked",C,this),(0,T.Z)(this,"context",R,this),(0,T.Z)(this,"viewport_width",P,this),(0,T.Z)(this,"viewport_height",S,this),(0,T.Z)(this,"viewed_page",O,this),(0,T.Z)(this,"url_imprint",E,this),(0,T.Z)(this,"url_privacy_policy",_,this),(0,T.Z)(this,"forwarded",z,this),(0,T.Z)(this,"forwarded_blocker",x,this),(0,T.Z)(this,"tcf_string",D,this),this.store=void 0,this.plain=void 0,(0,M.runInAction)((()=>(0,M.set)(this,e))),this.store=t,this.plain=e}fetchRevisions(){return Promise.all([this.store.fetchRevision({hash:this.revision_hash}),this.store.fetchRevisionIndependent({hash:this.revision_independent_hash})])}},i=(0,A.Z)(r.prototype,"id",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,A.Z)(r.prototype,"plugin_version",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,A.Z)(r.prototype,"design_version",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a=(0,A.Z)(r.prototype,"ipv4",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,A.Z)(r.prototype,"ipv6",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=(0,A.Z)(r.prototype,"ipv4_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=(0,A.Z)(r.prototype,"ipv6_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=(0,A.Z)(r.prototype,"uuid",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=(0,A.Z)(r.prototype,"previous_decision",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=(0,A.Z)(r.prototype,"decision",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=(0,A.Z)(r.prototype,"decision_labels",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=(0,A.Z)(r.prototype,"created",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=(0,A.Z)(r.prototype,"blocker",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=(0,A.Z)(r.prototype,"blocker_thumbnail",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=(0,A.Z)(r.prototype,"dnt",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=(0,A.Z)(r.prototype,"custom_bypass",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=(0,A.Z)(r.prototype,"user_country",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=(0,A.Z)(r.prototype,"revision_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=(0,A.Z)(r.prototype,"revision_independent_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=(0,A.Z)(r.prototype,"button_clicked",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=(0,A.Z)(r.prototype,"context",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=(0,A.Z)(r.prototype,"viewport_width",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=(0,A.Z)(r.prototype,"viewport_height",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=(0,A.Z)(r.prototype,"viewed_page",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=(0,A.Z)(r.prototype,"url_imprint",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=(0,A.Z)(r.prototype,"url_privacy_policy",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=(0,A.Z)(r.prototype,"forwarded",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=(0,A.Z)(r.prototype,"forwarded_blocker",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=(0,A.Z)(r.prototype,"tcf_string",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,A.Z)(r.prototype,"revision",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"revision"),r.prototype),(0,A.Z)(r.prototype,"revision_independent",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"revision_independent"),r.prototype),(0,A.Z)(r.prototype,"custom_bypass_readable",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"custom_bypass_readable"),r.prototype),r)},4620:(e,t,o)=>{o.d(t,{b:()=>u});var r,i,n=o(9888),s=o(8700),a=o(7669),l=o(2698),c=o(7821),p=o(8903);let u=s.ClientCollection.annotate({path:"/rcb-cookie",singlePath:"/rcb-cookie/:id",namespace:"wp/v2",methods:[s.RouteHttpVerb.GET],request:a.W})((i=class extends s.AbstractPostCollection{get sortedCookies(){const e=Array.from(this.entries.values());return e.sort(((e,t)=>e.data.menu_order<t.data.menu_order?-1:e.data.menu_order>t.data.menu_order||e.key<t.key?1:e.key>t.key?-1:0)),e}constructor(e){super(),this.store=void 0,this.orderCookies=(0,c.flow)((function*(e){this.busy=!0;try{yield(0,a.W)({location:p.I,request:{ids:e}});let t=0;for(const o of e)this.entries.get(o).setOrder(t),t++}catch(e){throw console.log(e),e}finally{this.busy=!1}})),this.store=e}instance(e){return new l.U(this).fromResponse(e)}},(0,n.Z)(i.prototype,"sortedCookies",[c.computed],Object.getOwnPropertyDescriptor(i.prototype,"sortedCookies"),i.prototype),r=i))||r},8626:(e,t,o)=>{o.d(t,{w:()=>u});var r,i,n=o(9888),s=o(8700),a=o(7669),l=o(9532),c=o(7821),p=o(8067);let u=s.ClientCollection.annotate({path:"/rcb-cookie-group",singlePath:"/rcb-cookie-group/:id",namespace:"wp/v2",methods:[s.RouteHttpVerb.GET],request:a.W})((i=class extends s.AbstractCategoryCollection{get sortedGroups(){const e=Array.from(this.entries.values());return e.sort(((e,t)=>e.data.meta.order<t.data.meta.order?-1:e.data.meta.order>t.data.meta.order?1:0)),e}constructor(e){super(),this.store=void 0,this.orderCookieGroups=(0,c.flow)((function*(e){this.busy=!0;try{yield(0,a.W)({location:p.B,request:{ids:e}});let t=0;for(const o of e)this.entries.get(o).setOrder(t),t++}catch(e){throw console.log(e),e}finally{this.busy=!1}})),this.store=e}instance(e){return new l.O(this).fromResponse(e)}},(0,n.Z)(i.prototype,"sortedGroups",[c.computed],Object.getOwnPropertyDescriptor(i.prototype,"sortedGroups"),i.prototype),r=i))||r},9532:(e,t,o)=>{o.d(t,{O:()=>b});var r,i,n,s,a=o(6921),l=o(9888),c=o(8700),p=o(7669),u=o(4620),h=o(7821);let b=c.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:p.W,create:{path:"/rcb-cookie-group"},patch:{path:"/rcb-cookie-group/:id"},delete:{path:"/rcb-cookie-group/:id"}})((i=class extends c.AbstractCategory{get cookiesCount(){return this.fetchedAllCookies?this.cookies.entries.size:this.data.count}constructor(e,t={}){super(e,t),(0,a.Z)(this,"cookies",n,this),(0,a.Z)(this,"fetchedAllCookies",s,this),this.fetchCookies=(0,h.flow)((function*(){yield this.cookies.get({request:{status:["draft","publish","private"]},params:{per_page:100,"rcb-cookie-group":this.key,context:"edit"}}),this.fetchedAllCookies=!0})),(0,h.runInAction)((()=>{this.cookies=new u.b(this)}))}setName(e){this.data.name=e}setDescription(e){this.data.description=e}setOrder(e){this.data.meta.order=e}afterDelete(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPatch(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,l.Z)(i.prototype,"cookies",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(i.prototype,"fetchedAllCookies",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),(0,l.Z)(i.prototype,"cookiesCount",[h.computed],Object.getOwnPropertyDescriptor(i.prototype,"cookiesCount"),i.prototype),(0,l.Z)(i.prototype,"setName",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,l.Z)(i.prototype,"setDescription",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setDescription"),i.prototype),(0,l.Z)(i.prototype,"setOrder",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setOrder"),i.prototype),r=i))||r},2698:(e,t,o)=>{o.d(t,{U:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(1355),u=o(7821),h=o(9743);let b=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-cookie"},patch:{path:"/rcb-cookie/:id"},delete:{path:"/rcb-cookie/:id"}})((i=class extends l.AbstractPost{get rootStore(){return this.collection.store.collection.store.rootStore}get technicalDefinitions(){return JSON.parse(this.data.meta.technicalDefinitions)}get codeDynamics(){return JSON.parse(this.data.meta.codeDynamics||"{}")}constructor(e,t={}){super(e,t),(0,s.Z)(this,"presetModel",n,this),this.store=void 0,(0,u.reaction)((()=>{var e;return null===(e=this.data)||void 0===e?void 0:e.preset}),(e=>(0,u.runInAction)((()=>{this.presetModel=e?new p.g(e,h.M.get.cookieStore):void 0}))),{fireImmediately:!0})}afterPatch(){const e=this.collection.store.collection,[t]=this.data["rcb-cookie-group"];e.entries.forEach((e=>{t!==e.key?e.cookies.entries.delete(this.key):e.cookies.entries.set(this.key,this)})),this.rootStore.optionStore.fetchCurrentRevision(),this.rootStore.cookieStore.unassignedCookies.delete(this.key)}setOrder(e){this.data.menu_order=e}setName(e){this.data.title.rendered=e}setStatus(e){this.data.status=e}setPurpose(e){this.data.content.rendered=e}setGroup(e){this.data["rcb-cookie-group"]=[e]}setMeta(e){this.data.meta=e}transformDataForPersist(){return{...super.transformDataForPersist(),"rcb-cookie-group":[this.collection.store.key]}}transformDataForPatch(){const e=super.transformDataForPatch();return{title:e.title,content:e.content,status:e.status,meta:e.meta,menu_order:e.menu_order,"rcb-cookie-group":this.data["rcb-cookie-group"],slug:e.title}}afterDelete(){this.collection.store.cookies.store.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){const{optionStore:e,checklistStore:t}=this.collection.store.cookies.store.collection.store.rootStore;e.fetchCurrentRevision(),t.probablyFetchByChangedItem("add-cookie")}},n=(0,a.Z)(i.prototype,"presetModel",[u.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"rootStore",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"rootStore"),i.prototype),(0,a.Z)(i.prototype,"technicalDefinitions",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"technicalDefinitions"),i.prototype),(0,a.Z)(i.prototype,"codeDynamics",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"codeDynamics"),i.prototype),(0,a.Z)(i.prototype,"afterPatch",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"afterPatch"),i.prototype),(0,a.Z)(i.prototype,"setOrder",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setOrder"),i.prototype),(0,a.Z)(i.prototype,"setName",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setPurpose",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setPurpose"),i.prototype),(0,a.Z)(i.prototype,"setGroup",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setGroup"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},1355:(e,t,o)=>{o.d(t,{g:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(6364),u=o(7669);let h=(r=class{get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,u.W)({location:p.t,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),r)},6827:(e,t,o)=>{o.d(t,{k:()=>r});class r{constructor(e,t){this.data=void 0,this.store=void 0,this.data=e,this.store=t}}},6213:(e,t,o)=>{o.d(t,{I:()=>r});class r{constructor(e,t){this.data=void 0,this.store=void 0,this.data=e,this.store=t}}},1339:(e,t,o)=>{o.d(t,{o:()=>h});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(3943),p=o(5217),u=o(7669);let h=(r=class{get identifier(){return this.data.host}get inactive(){return"full"===this.blockedStatus||this.data.ignored}get blockedStatus(){const{foundCount:e,blockedCount:t}=this.data;return 0===t?"none":e===t?"full":"partial"}get blockedStatusText(){switch(this.blockedStatus){case"full":return(0,p.__)("Fully blocked");case"partial":return(0,p.__)("Partially blocked");default:return(0,p.__)("Not blocked")}}constructor(e,t){(0,s.Z)(this,"busy",i,this),(0,s.Z)(this,"data",n,this),this.store=void 0,this.ignore=(0,l.flow)((function*(e=!0){try{yield(0,u.W)({location:c.C,request:{ignored:e},params:{host:this.data.host.replace(/\./g,"_")}}),this.data.ignored=e}catch(e){throw console.log(e),e}})),(0,l.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,a.Z)(r.prototype,"busy",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"identifier",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"identifier"),r.prototype),(0,a.Z)(r.prototype,"inactive",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"inactive"),r.prototype),(0,a.Z)(r.prototype,"blockedStatus",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedStatus"),r.prototype),(0,a.Z)(r.prototype,"blockedStatusText",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedStatusText"),r.prototype),r)},3792:(e,t,o)=>{o.d(t,{a:()=>p});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(8503);let p=(r=class{get markup(){return this.store.resultMarkup.get(this.data.id)}get blockedUrlTruncate(){return(0,c.r)(this.data.blockedUrl,50,"[...]")}get sourceUrlTruncate(){return(0,c.r)(this.data.sourceUrl,50,"[...]")}constructor(e,t){(0,s.Z)(this,"busy",i,this),(0,s.Z)(this,"data",n,this),this.store=void 0,this.fetchMarkup=(0,l.flow)((function*(){yield this.store.fetchMarkup(this.data.id)})),(0,l.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,a.Z)(r.prototype,"busy",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"markup",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"markup"),r.prototype),(0,a.Z)(r.prototype,"blockedUrlTruncate",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedUrlTruncate"),r.prototype),(0,a.Z)(r.prototype,"sourceUrlTruncate",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"sourceUrlTruncate"),r.prototype),r)},8318:(e,t,o)=>{o.d(t,{g:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(7669),u=o(6406);let h=(r=class{get identifier(){return this.data.identifier}get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}get inactive(){return this.data.created}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,p.W)({location:u.N,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"identifier",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"identifier"),r.prototype),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),(0,l.Z)(r.prototype,"inactive",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"inactive"),r.prototype),r)},1112:(e,t,o)=>{o.d(t,{i:()=>c});var r,i,n,s=o(6921),a=o(9888),l=o(7821);let c=(r=class{constructor(e,t,o){(0,s.Z)(this,"data",i,this),(0,s.Z)(this,"special",n,this),this.store=void 0,(0,l.runInAction)((()=>{this.special=t,this.data=e})),this.store=o}},i=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,a.Z)(r.prototype,"special",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},8272:(e,t,o)=>{o.d(t,{v:()=>c});var r,i,n,s=o(6921),a=o(9888),l=o(7821);let c=(r=class{constructor(e,t,o){(0,s.Z)(this,"data",i,this),(0,s.Z)(this,"special",n,this),this.store=void 0,(0,l.runInAction)((()=>{this.special=t,this.data=e})),this.store=o}},i=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,a.Z)(r.prototype,"special",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},2515:(e,t,o)=>{o.d(t,{C:()=>c});var r,i,n=o(6921),s=o(9888),a=o(7821),l=o(7747);let c=(r=class{get vendorConfiguration(){for(const e of this.store.vendorConfigurations.entries.values())if(e.vendorModel.data.id===this.data.id)return e}get deviceStorageDisclosure(){const{usesCookies:e,cookieMaxAgeSeconds:t,cookieRefresh:o,usesNonCookieAccess:r,deviceStorageDisclosure:i}=this.data,n=null!=i&&i.disclosures.length?[...i.disclosures]:[];return r&&n.unshift({type:l.r.Web,identifier:"*",purposes:void 0,cookieRefresh:void 0,domain:"*",maxAgeSeconds:null}),e&&n.unshift({type:l.r.Cookie,identifier:"*",purposes:void 0,cookieRefresh:o,domain:"*",maxAgeSeconds:t}),n}get allPurposes(){return[...this.legIntPurposes,...this.purposes,...this.specialPurposes].filter(Boolean)}get allFeatures(){return[...this.features,...this.specialFeatures].filter(Boolean)}get restrictivePurposes(){const e={normal:{}};for(const t of[...this.legIntPurposes,...this.purposes])e.normal[t.data.id.toString()]={enabled:!0,legInt:this.legIntPurposes.indexOf(t)>-1&&!t.special?"yes":"no"};return e}get purposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.purposes.map((e=>this.store.purposes.get("".concat(e))))}get legIntPurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.legIntPurposes.map((e=>this.store.purposes.get("".concat(e))))}get flexiblePurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.flexiblePurposes.map((e=>this.store.purposes.get("".concat(e))))}get specialPurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.specialPurposes.map((e=>this.store.specialPurposes.get("".concat(e))))}get features(){var e;return null===(e=this.data)||void 0===e?void 0:e.features.map((e=>this.store.features.get("".concat(e))))}get specialFeatures(){var e;return null===(e=this.data)||void 0===e?void 0:e.specialFeatures.map((e=>this.store.specialFeatures.get("".concat(e))))}constructor(e,t){(0,n.Z)(this,"data",i,this),this.store=void 0,(0,a.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,s.Z)(r.prototype,"data",[a.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,s.Z)(r.prototype,"vendorConfiguration",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"vendorConfiguration"),r.prototype),(0,s.Z)(r.prototype,"deviceStorageDisclosure",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"deviceStorageDisclosure"),r.prototype),(0,s.Z)(r.prototype,"allPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"allPurposes"),r.prototype),(0,s.Z)(r.prototype,"allFeatures",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"allFeatures"),r.prototype),(0,s.Z)(r.prototype,"restrictivePurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"restrictivePurposes"),r.prototype),(0,s.Z)(r.prototype,"purposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"purposes"),r.prototype),(0,s.Z)(r.prototype,"legIntPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"legIntPurposes"),r.prototype),(0,s.Z)(r.prototype,"flexiblePurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"flexiblePurposes"),r.prototype),(0,s.Z)(r.prototype,"specialPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"specialPurposes"),r.prototype),(0,s.Z)(r.prototype,"features",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"features"),r.prototype),(0,s.Z)(r.prototype,"specialFeatures",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"specialFeatures"),r.prototype),r)},303:(e,t,o)=>{o.d(t,{C:()=>a});var r,i=o(8700),n=o(7669),s=o(9894);let a=i.ClientCollection.annotate({path:"/rcb-tcf-vendor-conf",singlePath:"/rcb-tcf-vendor-conf/:id",namespace:"wp/v2",methods:[i.RouteHttpVerb.GET],request:n.W})(r=class extends i.AbstractPostCollection{constructor(e){super(),this.store=void 0,this.store=e}instance(e){return new s.S(this).fromResponse(e)}})||r},9894:(e,t,o)=>{o.d(t,{S:()=>d});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(7821),u=o(2515),h=o(5311),b=o.n(h);let d=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-tcf-vendor-conf"},patch:{path:"/rcb-tcf-vendor-conf/:id"},delete:{path:"/rcb-tcf-vendor-conf/:id"}})((i=class extends l.AbstractPost{get hasVendor(){return!!this.vendorModel}get restrictivePurposes(){var e,t;const o="global"===this.collection.store.rootStore.optionStore.tcfScopeOfConsent,r=(null===(e=this.vendorModel)||void 0===e?void 0:e.restrictivePurposes)||{normal:{}};if(o)return r;const i=JSON.parse(this.data.meta.restrictivePurposes);return b().extend(!0,{},(null===(t=this.vendorModel)||void 0===t?void 0:t.restrictivePurposes)||{},i)}get stats(){var e;const{normal:t}=this.restrictivePurposes,o=[...Object.values(t)];return{activePurposes:o.filter((({enabled:e})=>e)).length,legIntPurposes:o.filter((({enabled:e,legInt:t})=>e&&"yes"===t)).length,activeFeatures:(null===(e=this.vendorModel)||void 0===e?void 0:e.allFeatures.length)||0}}constructor(e,t={}){super(e,t),(0,s.Z)(this,"vendorModel",n,this),(0,p.reaction)((()=>this.data.vendor),(e=>(0,p.runInAction)((()=>{if(e){const{vendors:t}=this.collection.store,o=e.id.toString();let r=t.get(o);r||(r=new u.C(e,this.collection.store),t.set(o,r)),this.vendorModel=r}}))),{fireImmediately:!0}),(0,p.reaction)((()=>{var e;return null===(e=this.data.meta)||void 0===e?void 0:e.vendorId}),(e=>{e&&(this.vendorModel=this.collection.store.vendors.get(e.toString()))}),{fireImmediately:!0})}setStatus(e){this.data.status=e}setMeta(e){this.data.meta=e}transformDataForPatch(){const e=super.transformDataForPatch();return{status:e.status,meta:e.meta}}afterPatch(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterDelete(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,a.Z)(i.prototype,"vendorModel",[p.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"hasVendor",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"hasVendor"),i.prototype),(0,a.Z)(i.prototype,"restrictivePurposes",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"restrictivePurposes"),i.prototype),(0,a.Z)(i.prototype,"stats",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"stats"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[p.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[p.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},9171:(e,t,o)=>{o.d(t,{L:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(8700),p=o(2377),u=o(5654),h=o(7669);let b=(r=class extends c.BaseOptions{constructor(e){super(),(0,s.Z)(this,"busyChecklist",i,this),(0,s.Z)(this,"checklist",n,this),this.rootStore=void 0,this.probablyFetchByChangedItem=(0,l.flow)((function*(e,t){if(t)return void(yield this.fetchChecklist());const o=Array.isArray(e)?e:[e];this.items.filter((({id:e,checked:t})=>o.indexOf(e)>-1&&!t)).length>0&&(yield this.fetchChecklist())})),this.fetchChecklist=(0,l.flow)((function*(){this.busyChecklist=!0;try{this.checklist=yield(0,h.W)({location:p.g,params:{_wp_http_referer:window.location.href}})}catch(e){throw console.log(e),e}finally{this.busyChecklist=!1}})),this.toggleChecklistItem=(0,l.flow)((function*(e,t){this.busyChecklist=!0;try{this.checklist=yield(0,h.W)({location:u.s,request:{state:t},params:{id:e,_wp_http_referer:window.location.href}})}catch(e){throw console.log(e),e}finally{this.busyChecklist=!1}})),this.rootStore=e}get items(){return this.checklist&&Object.keys(this.checklist.items).map((e=>({id:e,...this.checklist.items[e]})))||[]}get completed(){return this.items.filter((({checked:e})=>e))}get checkable(){const{isPro:e}=this.rootStore.optionStore.others;return this.items.filter((({needsPro:t})=>!t||e&&t))}get done(){var e;return this.completed.length>=this.checkable.length||!(null===(e=this.checklist)||void 0===e||!e.dismissed)}},i=(0,a.Z)(r.prototype,"busyChecklist",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"checklist",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"items",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"items"),r.prototype),(0,a.Z)(r.prototype,"completed",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"completed"),r.prototype),(0,a.Z)(r.prototype,"checkable",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"checkable"),r.prototype),(0,a.Z)(r.prototype,"done",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"done"),r.prototype),r)},3721:(e,t,o)=>{o.d(t,{v:()=>O});var r,i,n,s,a,l,c,p,u,h,b,d=o(6921),y=o(9888),f=o(7821),m=o(8700),g=o(7669),v=o(8516),w=o(9560),k=o(6521),Z=o(8420),C=o(3612),R=o(97),P=o(6827),S=o(6213);let O=(r=class extends m.BaseOptions{constructor(e){super(),(0,d.Z)(this,"busyConsent",i,this),(0,d.Z)(this,"busyReferer",n,this),(0,d.Z)(this,"count",s,this),(0,d.Z)(this,"truncatedIpsCount",a,this),(0,d.Z)(this,"perPage",l,this),(0,d.Z)(this,"offset",c,this),(0,d.Z)(this,"pageCollection",p,this),(0,d.Z)(this,"revisions",u,this),(0,d.Z)(this,"revisionsIndependent",h,this),(0,d.Z)(this,"referer",b,this),this.filters=f.observable.object({page:1,dates:[void 0,void 0],context:void 0,referer:void 0,ip:void 0,uuid:void 0},{},{deep:!1}),this.rootStore=void 0,this.fetchAll=(0,f.flow)((function*(){this.busyConsent=!0;try{const{page:e,referer:t,ip:o,uuid:r,context:i}=this.filters,n=this.filters.dates.map((e=>e?e.format("YYYY-MM-DD"):"")),{count:s,truncatedIpsCount:a,items:l}=yield(0,g.W)({location:v.c,params:{per_page:this.perPage,offset:(e-1)*this.perPage,from:n[0],to:n[1],ip:o,uuid:r,referer:t,context:i}});this.count=s,this.truncatedIpsCount=a,this.pageCollection.clear();for(const e of l)this.pageCollection.set(e.id,new R.y(e,this))}catch(e){throw this.count=0,this.truncatedIpsCount=0,this.pageCollection.clear(),console.log(e),e}finally{this.busyConsent=!1}})),this.fetchRevision=(0,f.flow)((function*(e){try{const t=yield(0,g.W)({location:w.Z,params:e});this.revisions.set(e.hash,new P.k(t,this))}catch(e){throw console.log(e),e}})),this.fetchRevisionIndependent=(0,f.flow)((function*(e){try{const t=yield(0,g.W)({location:k.T,params:e});this.revisionsIndependent.set(e.hash,new S.I(t,this))}catch(e){throw console.log(e),e}})),this.fetchReferer=(0,f.flow)((function*(e){this.busyReferer=!0;try{const t=yield(0,g.W)({location:Z.q,params:e});this.referer=t.items}catch(e){throw console.log(e),e}finally{this.busyReferer=!1}})),this.deleteAll=(0,f.flow)((function*(){this.busyConsent=!0;try{yield(0,g.W)({location:C.O}),this.applyPage(0),yield this.fetchAll()}catch(e){throw console.log(e),e}finally{this.busyConsent=!1}})),this.rootStore=e,(0,f.runInAction)((()=>{this.filters.context=this.rootStore.optionStore.others.context}))}applyPage(e){this.filters.page=e}applyDates(e){this.filters.dates=e}applyContext(e){this.filters.context=e}applyReferer(e){this.filters.referer=e}applyIp(e){this.filters.ip=e}applyUuid(e){this.filters.uuid=e}},i=(0,y.Z)(r.prototype,"busyConsent",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,y.Z)(r.prototype,"busyReferer",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,y.Z)(r.prototype,"count",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),a=(0,y.Z)(r.prototype,"truncatedIpsCount",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),l=(0,y.Z)(r.prototype,"perPage",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 50}}),c=(0,y.Z)(r.prototype,"offset",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),p=(0,y.Z)(r.prototype,"pageCollection",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),u=(0,y.Z)(r.prototype,"revisions",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),h=(0,y.Z)(r.prototype,"revisionsIndependent",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),b=(0,y.Z)(r.prototype,"referer",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),(0,y.Z)(r.prototype,"applyPage",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyPage"),r.prototype),(0,y.Z)(r.prototype,"applyDates",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyDates"),r.prototype),(0,y.Z)(r.prototype,"applyContext",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyContext"),r.prototype),(0,y.Z)(r.prototype,"applyReferer",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyReferer"),r.prototype),(0,y.Z)(r.prototype,"applyIp",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyIp"),r.prototype),(0,y.Z)(r.prototype,"applyUuid",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyUuid"),r.prototype),r)},6649:(e,t,o)=>{o.d(t,{h:()=>R});var r,i,n,s,a,l,c,p,u,h,b=o(6921),d=o(9888),y=o(7821),f=o(6054),m=o(1355),g=o(8626),v=o(8578),w=o(3950),k=o(8213),Z=o(702),C=o(7669);let R=(r=class{get blockersCount(){return this.fetchedAllBlockers?this.blockers.entries.size:this.rootStore.optionStore.allBlockerCount}get cookiesCount(){return Array.from(this.groups.entries.values()).map((({cookiesCount:e})=>e)).reduce(((e,t)=>e+t),0)}constructor(e){(0,b.Z)(this,"busy",i,this),(0,b.Z)(this,"groups",n,this),(0,b.Z)(this,"unassignedCookies",s,this),(0,b.Z)(this,"blockers",a,this),(0,b.Z)(this,"presetsBlocker",l,this),(0,b.Z)(this,"busyPresetsBlocker",c,this),(0,b.Z)(this,"presetsCookie",p,this),(0,b.Z)(this,"busyPresetsCookie",u,this),(0,b.Z)(this,"fetchedAllBlockers",h,this),this.rootStore=void 0,this.fetchGroups=(0,y.flow)((function*(){yield this.groups.get({params:{per_page:100}}),yield this.fetchUnassignedCookies()})),this.fetchUnassignedCookies=(0,y.flow)((function*(){try{const e=yield(0,C.W)({location:w.p});for(const t of Object.values(e))this.unassignedCookies.set(t.id,t)}catch(e){throw console.log(e),e}})),this.fetchBlockers=(0,y.flow)((function*(){yield this.blockers.get({request:{status:["draft","publish","private"]},params:{per_page:100,context:"edit"}}),this.fetchedAllBlockers=!0})),this.fetchPresetsBlocker=(0,y.flow)((function*(){this.busyPresetsBlocker=!0;try{const{items:e}=yield(0,C.W)({location:k.W});for(const t of Object.keys(e))this.presetsBlocker.set(t,new f.w(e[t],this))}catch(e){throw console.log(e),e}finally{this.busyPresetsBlocker=!1}})),this.fetchPresetsCookie=(0,y.flow)((function*(){this.busyPresetsCookie=!0;try{const{items:e}=yield(0,C.W)({location:Z.z});for(const t of Object.keys(e))this.presetsCookie.set(t,new m.g(e[t],this))}catch(e){throw console.log(e),e}finally{this.busyPresetsCookie=!1}})),this.rootStore=e,(0,y.runInAction)((()=>{this.groups=new g.w(this),this.blockers=new v.R(this)}))}get essentialGroup(){if(0===this.groups.entries.size)return;const e=this.groups.entries.values();let t;for(;(t=e.next().value)&&t.data.slug!==this.rootStore.optionStore.others.essentialGroup;);return t}},i=(0,d.Z)(r.prototype,"busy",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,d.Z)(r.prototype,"groups",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,d.Z)(r.prototype,"unassignedCookies",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),a=(0,d.Z)(r.prototype,"blockers",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,d.Z)(r.prototype,"presetsBlocker",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),c=(0,d.Z)(r.prototype,"busyPresetsBlocker",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),p=(0,d.Z)(r.prototype,"presetsCookie",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),u=(0,d.Z)(r.prototype,"busyPresetsCookie",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=(0,d.Z)(r.prototype,"fetchedAllBlockers",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),(0,d.Z)(r.prototype,"blockersCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockersCount"),r.prototype),(0,d.Z)(r.prototype,"cookiesCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"cookiesCount"),r.prototype),(0,d.Z)(r.prototype,"essentialGroup",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"essentialGroup"),r.prototype),r)},8943:(e,t,o)=>{o.d(t,{W:()=>m});var r,i,n,s,a,l,c,p=o(6921),u=o(9888),h=o(7821),b=o(8172),d=o(7669),y=o(6613),f=o(490);let m=(r=class{constructor(e){(0,p.Z)(this,"visible",i,this),(0,p.Z)(this,"animationVisible",n,this),(0,p.Z)(this,"individualPrivacyOpen",s,this),(0,p.Z)(this,"previewCheckboxActiveState",a,this),(0,p.Z)(this,"busyPresets",l,this),(0,p.Z)(this,"presets",c,this),this.rootStore=void 0,this.presetConstants=new Map,this.presetDefaults=new Map,this.debounceFromCustomize={},this.fetchPresets=(0,h.flow)((function*(){this.busyPresets=!0;try{const{defaults:e,constants:t,items:o}=yield(0,d.W)({location:b.t});for(const t of Object.keys(e))this.presetDefaults.set(t,e[t]);for(const e of Object.keys(t))this.presetConstants.set(e,t[e]);for(const e of Object.keys(o))this.presets.set(e,new y.p({id:e,...o[e]},this))}catch(e){throw console.log(e),e}finally{this.busyPresets=!1}})),this.rootStore=e}setBannerFromCustomize(e,t,o,r=!0){const{customizeValuesBanner:i}=this.rootStore.optionStore.others,n=t.toString();if(r&&["css","animationInDuration","animationOutDuration"].indexOf(n)>-1)clearTimeout(this.debounceFromCustomize[n]),this.debounceFromCustomize[n]=setTimeout((()=>this.setBannerFromCustomize(e,t,o,!1)),500);else{const r=i[e][t];i[e][t]=o,n.startsWith("animationOut")&&r!==o&&this.forceAnimationOutSimulation()}}setBannerFromPreset(e){for(const t of e){const[e,o,r]=t;this.rootStore.optionStore.others.customizeValuesBanner[e][o]=r}}forceAnimationOutSimulation(){const{customizeValuesBanner:e}=this.rootStore.optionStore.others;"none"!==e.layout.animationOut&&(this.animationVisible=!1,setTimeout((()=>(0,h.runInAction)((()=>{this.animationVisible=!0}))),+e.layout.animationOutDuration+1e3))}setVisible(e){this.visible=e}setIndividualPrivacyOpen(e){this.individualPrivacyOpen=e}setPreviewCheckboxActiveState(e){this.previewCheckboxActiveState=e}exportPhp(){const e={},t=(0,f.getSidebarCustomize)();return this.presetDefaults.forEach(((o,r)=>{let i=t(r).get();"boolean"==typeof o?i=!!+i:isNaN(i)||""===i||(i=+i),JSON.stringify(o)!==JSON.stringify(i)&&(e[this.presetConstants.get(r)]=i)})),this.jsonToPHPArray(e)}jsonToPHPArray(e){const t=JSON.stringify(e,null,4).split("\n");return t.shift(),t.pop(),t.join("\n").replace(/^(\s+)"([A-Za-z\\]+::[A-Z_]+)"(:)/gm,"$1$2 =>").replace(/^(\s+)([A-Za-z\\]+)::/gm,((e,t,o)=>"".concat(t).concat(o.replace(/\\\\/gm,"\\"),"::")))}},i=(0,u.Z)(r.prototype,"visible",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,u.Z)(r.prototype,"animationVisible",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),s=(0,u.Z)(r.prototype,"individualPrivacyOpen",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,u.Z)(r.prototype,"previewCheckboxActiveState",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l=(0,u.Z)(r.prototype,"busyPresets",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),c=(0,u.Z)(r.prototype,"presets",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,u.Z)(r.prototype,"setBannerFromCustomize",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setBannerFromCustomize"),r.prototype),(0,u.Z)(r.prototype,"setBannerFromPreset",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setBannerFromPreset"),r.prototype),(0,u.Z)(r.prototype,"forceAnimationOutSimulation",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"forceAnimationOutSimulation"),r.prototype),(0,u.Z)(r.prototype,"setVisible",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setVisible"),r.prototype),(0,u.Z)(r.prototype,"setIndividualPrivacyOpen",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setIndividualPrivacyOpen"),r.prototype),(0,u.Z)(r.prototype,"setPreviewCheckboxActiveState",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setPreviewCheckboxActiveState"),r.prototype),r)},8919:(e,t,o)=>{o.d(t,{Cu:()=>u.C,L_:()=>c.L,My:()=>r.M,WS:()=>n.W,aZ:()=>i.a,et:()=>l.e,hc:()=>s.h,mZ:()=>r.m,v:()=>a.v,z:()=>p.z});var r=o(9743),i=o(2654),n=o(8943),s=o(6649),a=o(3721),l=o(6484),c=o(9171),p=o(2793),u=o(1637)},2654:(e,t,o)=>{o.d(t,{a:()=>de});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m,g,v,w,k,Z,C,R,P,S,O,E,_,z,x,D,T,A,M,I,j,B,V,U,N,G,F,W,L,H,q,Q,Y,J,$,X,K,ee=o(6921),te=o(9888),oe=o(7821),re=o(8700),ie=o(5391),ne=o(1211),se=o(4791),ae=o(1734),le=o(4474),ce=o(9190),pe=o(1515),ue=o(648),he=o(7669),be=o(6265);let de=(r=class extends re.BaseOptions{get isOnlyRcbCookieCreated(){return!(1!==this.allCookieCount||this.tcf&&this.allTcfVendorConfigurationCount)}get areSettingsFetched(){return void 0!==this.respectDoNotTrack}constructor(e){super(),(0,ee.Z)(this,"busySettings",i,this),(0,ee.Z)(this,"busyCountryBypassUpdate",n,this),(0,ee.Z)(this,"busyAddLinksToNavigationMenu",s,this),(0,ee.Z)(this,"needsRevisionRetrigger",a,this),(0,ee.Z)(this,"publicCookieCount",l,this),(0,ee.Z)(this,"allCookieCount",c,this),(0,ee.Z)(this,"allBlockerCount",p,this),(0,ee.Z)(this,"allTcfVendorConfigurationCount",u,this),(0,ee.Z)(this,"allScannerResultPresetsCount",h,this),(0,ee.Z)(this,"allScannerResultExternalUrlsCount",b,this),(0,ee.Z)(this,"cookieCounts",d,this),(0,ee.Z)(this,"nav_menus",y,this),(0,ee.Z)(this,"tcfVendorConfigurationCounts",f,this),(0,ee.Z)(this,"hasManager",m,this),(0,ee.Z)(this,"contexts",g,this),(0,ee.Z)(this,"dashboardMigration",v,this),(0,ee.Z)(this,"fomoCoupon",w,this),(0,ee.Z)(this,"bannerActive",k,this),(0,ee.Z)(this,"blockerActive",Z,this),(0,ee.Z)(this,"imprintId",C,this),(0,ee.Z)(this,"imprintExternalUrl",R,this),(0,ee.Z)(this,"imprintIsExternalUrl",P,this),(0,ee.Z)(this,"privacyPolicyId",S,this),(0,ee.Z)(this,"privacyPolicyExternalUrl",O,this),(0,ee.Z)(this,"privacyPolicyIsExternalUrl",E,this),(0,ee.Z)(this,"hidePageIds",_,this),(0,ee.Z)(this,"setCookiesViaManager",z,this),(0,ee.Z)(this,"acceptAllForBots",x,this),(0,ee.Z)(this,"respectDoNotTrack",D,this),(0,ee.Z)(this,"cookieDuration",T,this),(0,ee.Z)(this,"saveIp",A,this),(0,ee.Z)(this,"ePrivacyUSA",M,this),(0,ee.Z)(this,"ageNotice",I,this),(0,ee.Z)(this,"listServicesNotice",j,this),(0,ee.Z)(this,"consentForwarding",B,this),(0,ee.Z)(this,"forwardTo",V,this),(0,ee.Z)(this,"crossDomains",U,this),(0,ee.Z)(this,"affiliateLink",N,this),(0,ee.Z)(this,"affiliateLabelBehind",G,this),(0,ee.Z)(this,"affiliateLabelDescription",F,this),(0,ee.Z)(this,"countryBypass",W,this),(0,ee.Z)(this,"countryBypassCountries",L,this),(0,ee.Z)(this,"countryBypassType",H,this),(0,ee.Z)(this,"countryBypassDbDownloadTime",q,this),(0,ee.Z)(this,"tcf",Q,this),(0,ee.Z)(this,"tcfPublisherCc",Y,this),(0,ee.Z)(this,"tcfAcceptedTime",J,this),(0,ee.Z)(this,"tcfGvlDownloadTime",$,this),(0,ee.Z)(this,"tcfScopeOfConsent",X,this),(0,ee.Z)(this,"others",K,this),this.pureSlug=void 0,this.pureSlugCamelCased=void 0,this.rootStore=void 0,this.fetchSettings=(0,oe.flow)((function*(e){this.busySettings=!0;try{const t=e||(yield(0,he.W)({location:ie.g}));this.bannerActive=t["rcb-banner-active"],this.blockerActive=t["rcb-blocker-active"],this.imprintId=t["rcb-banner-legal-imprint"],this.imprintExternalUrl=t["rcb-banner-legal-imprint-external-url"],this.imprintIsExternalUrl=t["rcb-banner-legal-imprint-is-external-url"],this.privacyPolicyId=t["rcb-banner-legal-privacy-policy"],this.privacyPolicyExternalUrl=t["rcb-banner-legal-privacy-policy-external-url"],this.privacyPolicyIsExternalUrl=t["rcb-banner-legal-privacy-policy-is-external-url"],this.hidePageIds=(t["rcb-hide-page-ids"]||"").split(",").map(Number).filter(Boolean),this.setCookiesViaManager=t["rcb-set-cookies-via-manager"]||"none",this.acceptAllForBots=t["rcb-accept-all-for-bots"],this.respectDoNotTrack=t["rcb-respect-do-not-track"],this.cookieDuration=t["rcb-cookie-duration"],this.saveIp=t["rcb-save-ip"],this.ePrivacyUSA=t["rcb-eprivacy-usa"],this.ageNotice=t["rcb-age-notice"],this.listServicesNotice=t["rcb-list-services-notice"],this.consentForwarding=t["rcb-consent-forwarding"]||!1,this.forwardTo=(t["rcb-forward-to"]||"").split("|").filter(Boolean),this.crossDomains=t["rcb-cross-domains"]||"",this.countryBypass=t["rcb-country-bypass"],this.countryBypassCountries=(t["rcb-country-bypass-countries"]||"").split(",").filter(Boolean),this.countryBypassType=t["rcb-country-bypass-type"],this.countryBypassDbDownloadTime=t["rcb-country-bypass-db-download-time"],this.tcf=t["rcb-tcf"],this.tcfPublisherCc=t["rcb-tcf-publisher-cc"],this.tcfAcceptedTime=t["rcb-tcf-accepted-time"],this.tcfGvlDownloadTime=t["rcb-tcf-gvl-download-time"],this.tcfScopeOfConsent=t["rcb-tcf-scope-of-consent"],yield this.fetchCurrentRevision()}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.updateSettings=(0,oe.flow)((function*({bannerActive:e,blockerActive:t,imprintId:o,privacyPolicyId:r,hidePageIds:i,setCookiesViaManager:n,acceptAllForBots:s,respectDoNotTrack:a,cookieDuration:l,saveIp:c,ePrivacyUSA:p,ageNotice:u,listServicesNotice:h,consentForwarding:b,forwardTo:d,crossDomains:y,affiliateLink:f,affiliateLabelBehind:m,affiliateLabelDescription:g,countryBypass:v,countryBypassCountries:w,countryBypassType:k,tcf:Z,tcfPublisherCc:C,tcfScopeOfConsent:R}){this.busySettings=!0;try{const f=yield(0,he.W)({location:ne.J,request:{...void 0===e?{}:{"rcb-banner-active":e},...void 0===t?{}:{"rcb-blocker-active":t},...void 0===o?{}:{"rcb-banner-legal-imprint":o},...void 0===r?{}:{"rcb-banner-legal-privacy-policy":r},...void 0===i?{}:{"rcb-hide-page-ids":i.join(",")},...void 0===n?{}:{"rcb-set-cookies-via-manager":n},...void 0===s?{}:{"rcb-accept-all-for-bots":s},...void 0===a?{}:{"rcb-respect-do-not-track":a},...void 0===l?{}:{"rcb-cookie-duration":l},...void 0===c?{}:{"rcb-save-ip":c},...void 0===p?{}:{"rcb-eprivacy-usa":p},...void 0===u?{}:{"rcb-age-notice":u},...void 0===h?{}:{"rcb-list-services-notice":h},...void 0===b?{}:{"rcb-consent-forwarding":b},...void 0===d?{}:{"rcb-forward-to":d.join("|")},...void 0===y?{}:{"rcb-cross-domains":y},...void 0===v?{}:{"rcb-country-bypass":v},...void 0===w?{}:{"rcb-country-bypass-countries":w.join(",")},...void 0===k?{}:{"rcb-country-bypass-type":k},...void 0===Z?{}:{"rcb-tcf":Z},...void 0===C?{}:{"rcb-tcf-publisher-cc":C},...void 0===R?{}:{"rcb-tcf-scope-of-consent":R}}});this.fetchSettings(f),this.rootStore.checklistStore.probablyFetchByChangedItem(["save-settings","activate-banner","privacy-policy"])}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.fetchCurrentRevision=(0,oe.flow)((function*(){this.busySettings=!0;try{this.setFromCurrentRevision(yield(0,he.W)({location:se.G}))}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.updateCurrentRevision=(0,oe.flow)((function*(e){this.busySettings=!0;try{this.setFromCurrentRevision(yield(0,he.W)({location:ae.a,request:e}))}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.setModalHintSeen=(0,oe.flow)((function*(e){this.busySettings=!0;try{this.others.modalHints.push(e),yield(0,he.W)({location:be.C,request:{identifier:e}})}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.dismissConfigProNotice=(0,oe.flow)((function*(){try{this.others.isConfigProNoticeVisible=!1,yield(0,he.W)({location:le.n})}catch(e){throw console.log(e),e}})),this.dismissMigration=(0,oe.flow)((function*(){try{const{id:e}=this.dashboardMigration;this.dashboardMigration=void 0,yield(0,he.W)({location:ce.o,params:{migration:e}})}catch(e){throw console.log(e),e}})),this.addLinksToNavigationMenu=(0,oe.flow)((function*(e){this.busyAddLinksToNavigationMenu=!0;try{const{success:t}=yield(0,he.W)({location:pe.i,request:{id:e}});return t&&(this.rootStore.checklistStore.fetchChecklist(),yield this.fetchCurrentRevision()),t}catch(e){throw console.log(e),e}finally{this.busyAddLinksToNavigationMenu=!1}})),this.updateCountryBypassDatabase=(0,oe.flow)((function*(){this.busyCountryBypassUpdate=!0;try{const{dbDownloadTime:e}=yield(0,he.W)({location:ue._});this.countryBypassDbDownloadTime=e}catch(e){throw console.log(e),e}finally{this.busyCountryBypassUpdate=!1}})),this.rootStore=e,this.pureSlug=re.BaseOptions.getPureSlug("real-cookie-banner"),this.pureSlugCamelCased=re.BaseOptions.getPureSlug("real-cookie-banner",!0),(0,oe.runInAction)((()=>Object.assign(this,window[this.pureSlugCamelCased])))}setFromCurrentRevision({contexts:e,has_manager:t,needs_retrigger:o,public_cookie_count:r,all_cookie_count:i,all_blocker_count:n,all_tcf_vendor_configuration_count:s,all_scanner_result_presets_count:a,all_scanner_result_external_urls_count:l,cookie_counts:c,nav_menus:p,tcf_vendor_configuration_counts:u,dashboard_migration:h,fomo_coupon:b}){this.hasManager=t,this.needsRevisionRetrigger=o,this.publicCookieCount=r,this.allCookieCount=i,this.allBlockerCount=n,this.allTcfVendorConfigurationCount=s,this.allScannerResultPresetsCount=a,this.allScannerResultExternalUrlsCount=l,this.cookieCounts=c,this.nav_menus=p,this.tcfVendorConfigurationCounts=u,this.contexts=e,this.dashboardMigration=h,this.fomoCoupon=b}setShowLicenseFormImmediate(e,t){this.others.showLicenseFormImmediate=e,this.others.isLicensed=t}},i=(0,te.Z)(r.prototype,"busySettings",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,te.Z)(r.prototype,"busyCountryBypassUpdate",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,te.Z)(r.prototype,"busyAddLinksToNavigationMenu",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,te.Z)(r.prototype,"needsRevisionRetrigger",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l=(0,te.Z)(r.prototype,"publicCookieCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),c=(0,te.Z)(r.prototype,"allCookieCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),p=(0,te.Z)(r.prototype,"allBlockerCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),u=(0,te.Z)(r.prototype,"allTcfVendorConfigurationCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),h=(0,te.Z)(r.prototype,"allScannerResultPresetsCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),b=(0,te.Z)(r.prototype,"allScannerResultExternalUrlsCount",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),d=(0,te.Z)(r.prototype,"cookieCounts",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{draft:0,private:0,publish:0}}}),y=(0,te.Z)(r.prototype,"nav_menus",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),f=(0,te.Z)(r.prototype,"tcfVendorConfigurationCounts",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=(0,te.Z)(r.prototype,"hasManager",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),g=(0,te.Z)(r.prototype,"contexts",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{"":""}}}),v=(0,te.Z)(r.prototype,"dashboardMigration",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=(0,te.Z)(r.prototype,"fomoCoupon",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=(0,te.Z)(r.prototype,"bannerActive",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Z=(0,te.Z)(r.prototype,"blockerActive",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),C=(0,te.Z)(r.prototype,"imprintId",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=(0,te.Z)(r.prototype,"imprintExternalUrl",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=(0,te.Z)(r.prototype,"imprintIsExternalUrl",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=(0,te.Z)(r.prototype,"privacyPolicyId",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=(0,te.Z)(r.prototype,"privacyPolicyExternalUrl",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=(0,te.Z)(r.prototype,"privacyPolicyIsExternalUrl",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=(0,te.Z)(r.prototype,"hidePageIds",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=(0,te.Z)(r.prototype,"setCookiesViaManager",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=(0,te.Z)(r.prototype,"acceptAllForBots",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=(0,te.Z)(r.prototype,"respectDoNotTrack",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=(0,te.Z)(r.prototype,"cookieDuration",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=(0,te.Z)(r.prototype,"saveIp",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=(0,te.Z)(r.prototype,"ePrivacyUSA",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=(0,te.Z)(r.prototype,"ageNotice",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=(0,te.Z)(r.prototype,"listServicesNotice",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=(0,te.Z)(r.prototype,"consentForwarding",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=(0,te.Z)(r.prototype,"forwardTo",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=(0,te.Z)(r.prototype,"crossDomains",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=(0,te.Z)(r.prototype,"affiliateLink",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=(0,te.Z)(r.prototype,"affiliateLabelBehind",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=(0,te.Z)(r.prototype,"affiliateLabelDescription",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=(0,te.Z)(r.prototype,"countryBypass",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=(0,te.Z)(r.prototype,"countryBypassCountries",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=(0,te.Z)(r.prototype,"countryBypassType",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=(0,te.Z)(r.prototype,"countryBypassDbDownloadTime",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=(0,te.Z)(r.prototype,"tcf",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=(0,te.Z)(r.prototype,"tcfPublisherCc",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=(0,te.Z)(r.prototype,"tcfAcceptedTime",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=(0,te.Z)(r.prototype,"tcfGvlDownloadTime",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=(0,te.Z)(r.prototype,"tcfScopeOfConsent",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=(0,te.Z)(r.prototype,"others",[oe.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,te.Z)(r.prototype,"isOnlyRcbCookieCreated",[oe.computed],Object.getOwnPropertyDescriptor(r.prototype,"isOnlyRcbCookieCreated"),r.prototype),(0,te.Z)(r.prototype,"areSettingsFetched",[oe.computed],Object.getOwnPropertyDescriptor(r.prototype,"areSettingsFetched"),r.prototype),(0,te.Z)(r.prototype,"setFromCurrentRevision",[oe.action],Object.getOwnPropertyDescriptor(r.prototype,"setFromCurrentRevision"),r.prototype),(0,te.Z)(r.prototype,"setShowLicenseFormImmediate",[oe.action],Object.getOwnPropertyDescriptor(r.prototype,"setShowLicenseFormImmediate"),r.prototype),r)},1637:(e,t,o)=>{o.d(t,{C:()=>P});var r,i,n,s,a,l,c,p,u,h,b=o(6921),d=o(9888),y=o(7821),f=o(1339),m=o(3792),g=o(8318),v=o(7669),w=o(2115),k=o(9601),Z=o(5593),C=o(6372),R=o(7244);let P=(r=class{get sortedExternalUrls(){const e=Array.from(this.resultExternalUrls.values());return e.sort(((e,t)=>e.inactive===t.inactive?0:e.inactive?1:-1)),e}get presetsCount(){return this.fetchedAllResultPresets?this.resultPresets.size:this.rootStore.optionStore.allScannerResultPresetsCount}get externalUrlsCount(){return this.fetchedAllResultExternalUrls?this.resultExternalUrls.size:this.rootStore.optionStore.allScannerResultExternalUrlsCount}get canShowResults(){var e;return this.presetsCount+this.externalUrlsCount>0&&(null===(e=this.rootStore.checklistStore.checklist)||void 0===e?void 0:e.items.scanner.checked)}get foundScanResultsCount(){return this.resultPresets.size+this.resultExternalUrls.size}get needsAttentionCount(){return[...this.resultPresets.values(),...this.resultExternalUrls.values()].filter((({inactive:e})=>!e)).length}constructor(e){(0,b.Z)(this,"resultPresets",i,this),(0,b.Z)(this,"busyResultPresets",n,this),(0,b.Z)(this,"fetchedAllResultPresets",s,this),(0,b.Z)(this,"resultExternalUrls",a,this),(0,b.Z)(this,"resultAllExternalUrls",l,this),(0,b.Z)(this,"busyExternalUrls",c,this),(0,b.Z)(this,"fetchedAllResultExternalUrls",p,this),(0,b.Z)(this,"busyMarkup",u,this),(0,b.Z)(this,"resultMarkup",h,this),this.rootStore=void 0,this.addUrlsToQueue=(0,y.flow)((function*(e){return yield(0,v.W)({location:w.k,request:e})})),this.fetchResultPresets=(0,y.flow)((function*(){this.busyResultPresets=!0;try{this.resultPresetsFromResponse(yield(0,v.W)({location:k.e})),this.fetchedAllResultPresets=!0}catch(e){throw console.log(e),e}finally{this.busyResultPresets=!1}})),this.fetchResultExternals=(0,y.flow)((function*(){this.busyExternalUrls=!0;try{this.resultExternalUrlsFromResponse(yield(0,v.W)({location:Z.M})),this.fetchedAllResultExternalUrls=!0}catch(e){throw console.log(e),e}finally{this.busyExternalUrls=!1}})),this.fetchResultAllExternals=(0,y.flow)((function*(e){const t=e instanceof f.o?"host":"preset",{identifier:o}=e;e.busy=!0;try{const{items:r}=yield(0,v.W)({location:C.M,params:{type:t,identifier:"host"===t?o.replace(/\./g,"_"):o}});let i=this.resultAllExternalUrls.get(o);if(i){const e=r.map((({id:e})=>e));for(const t of i.keys())-1===e.indexOf(t)&&i.delete(t)}else i=new Map;for(const e of Object.values(r))i.set(e.id,new m.a(e,this)),this.resultAllExternalUrls.set(o,i)}catch(e){throw console.log(e),e}finally{e.busy=!1}})),this.fetchMarkup=(0,y.flow)((function*(e){this.busyMarkup=!0;try{const t=yield(0,v.W)({location:R.$,params:{id:e}});this.resultMarkup.set(e,t)}catch(e){throw console.log(e),e}finally{this.busyMarkup=!1}})),this.rootStore=e}resultPresetsFromResponse({items:e}){const t=Object.keys(e);for(const e of this.resultPresets.keys())-1===t.indexOf(e)&&this.resultPresets.delete(e);for(const o of t)this.resultPresets.set(o,new g.g(e[o],this))}resultExternalUrlsFromResponse({items:e}){const t=Object.keys(e);for(const e of this.resultExternalUrls.keys())-1===t.indexOf(e)&&this.resultExternalUrls.delete(e);for(const o of t)this.resultExternalUrls.set(o,new f.o(e[o],this))}},i=(0,d.Z)(r.prototype,"resultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),n=(0,d.Z)(r.prototype,"busyResultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,d.Z)(r.prototype,"fetchedAllResultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,d.Z)(r.prototype,"resultExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),l=(0,d.Z)(r.prototype,"resultAllExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),c=(0,d.Z)(r.prototype,"busyExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),p=(0,d.Z)(r.prototype,"fetchedAllResultExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),u=(0,d.Z)(r.prototype,"busyMarkup",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=(0,d.Z)(r.prototype,"resultMarkup",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,d.Z)(r.prototype,"sortedExternalUrls",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"sortedExternalUrls"),r.prototype),(0,d.Z)(r.prototype,"presetsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"presetsCount"),r.prototype),(0,d.Z)(r.prototype,"externalUrlsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"externalUrlsCount"),r.prototype),(0,d.Z)(r.prototype,"canShowResults",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"canShowResults"),r.prototype),(0,d.Z)(r.prototype,"foundScanResultsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"foundScanResultsCount"),r.prototype),(0,d.Z)(r.prototype,"needsAttentionCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"needsAttentionCount"),r.prototype),(0,d.Z)(r.prototype,"resultPresetsFromResponse",[y.action],Object.getOwnPropertyDescriptor(r.prototype,"resultPresetsFromResponse"),r.prototype),(0,d.Z)(r.prototype,"resultExternalUrlsFromResponse",[y.action],Object.getOwnPropertyDescriptor(r.prototype,"resultExternalUrlsFromResponse"),r.prototype),r)},6484:(e,t,o)=>{o.d(t,{e:()=>u});var r,i,n=o(6921),s=o(9888),a=o(7821),l=o(8700),c=o(8488),p=o.n(c);let u=(r=class extends l.BaseOptions{constructor(e){super(),(0,n.Z)(this,"busyStats",i,this),this.rootStore=void 0,this.stats=a.observable.object({main:void 0,buttonsClicked:void 0,customBypass:void 0},{},{deep:!1}),this.filters=a.observable.object({dates:void 0,context:void 0},{},{deep:!1}),this.fetchMain=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.fetchButtonsClicked=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.fetchCustomBypass=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.rootStore=e,(0,a.runInAction)((()=>{this.filters.dates=[p()().subtract(30,"days"),p()()],this.filters.context=this.rootStore.optionStore.others.context}))}applyDates(e){this.filters.dates=e}applyContext(e){this.filters.context=e}},i=(0,s.Z)(r.prototype,"busyStats",[a.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{main:!1,buttonClicked:!1,customBypass:!1}}}),(0,s.Z)(r.prototype,"applyDates",[a.action],Object.getOwnPropertyDescriptor(r.prototype,"applyDates"),r.prototype),(0,s.Z)(r.prototype,"applyContext",[a.action],Object.getOwnPropertyDescriptor(r.prototype,"applyContext"),r.prototype),r)},9743:(e,t,o)=>{o.d(t,{M:()=>b,m:()=>d});var r=o(7821),i=o(8700),n=o(2654),s=o(8943),a=o(6649),l=o(3721),c=o(6484),p=o(9171),u=o(2793),h=o(1637);(0,r.configure)({enforceActions:"always"});class b{get context(){return this.contextMemo?this.contextMemo:this.contextMemo=(0,i.createContextFactory)(this)}constructor(){this.optionStore=void 0,this.customizeBannerStore=void 0,this.cookieStore=void 0,this.consentStore=void 0,this.statsStore=void 0,this.checklistStore=void 0,this.tcfStore=void 0,this.scannerStore=void 0,this.contextMemo=void 0,this.optionStore=new n.a(this),this.customizeBannerStore=new s.W(this),this.cookieStore=new a.h(this),this.consentStore=new l.v(this),this.statsStore=new c.e(this),this.checklistStore=new p.L(this),this.tcfStore=new u.z(this),this.scannerStore=new h.C(this)}static get StoreProvider(){return b.get.context.StoreProvider}static get get(){return b.me?b.me:b.me=new b}}b.me=void 0;const d=()=>b.get.context.useStores()},2793:(e,t,o)=>{o.d(t,{z:()=>_});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m=o(6921),g=o(9888),v=o(7821),w=o(8700),k=o(515),Z=o(4747),C=o(1039),R=o(7669),P=o(2515),S=o(8272),O=o(1112),E=o(303);let _=(r=class extends w.BaseOptions{get vendorConfigurationCount(){return this.fetchedAllVendorConfigurations?this.vendorConfigurations.entries.size:this.rootStore.optionStore.allTcfVendorConfigurationCount}constructor(e){super(),(0,m.Z)(this,"busyGvl",i,this),(0,m.Z)(this,"busyVendors",n,this),(0,m.Z)(this,"busyDeclarations",s,this),(0,m.Z)(this,"vendorConfigurations",a,this),(0,m.Z)(this,"fetchedAllVendorConfigurations",l,this),(0,m.Z)(this,"vendorListVersion",c,this),(0,m.Z)(this,"gvlSpecificationVersion",p,this),(0,m.Z)(this,"tcfPolicyVersion",u,this),(0,m.Z)(this,"vendors",h,this),(0,m.Z)(this,"purposes",b,this),(0,m.Z)(this,"specialPurposes",d,this),(0,m.Z)(this,"features",y,this),(0,m.Z)(this,"specialFeatures",f,this),this.rootStore=void 0,this.fetchVendorConfigurations=(0,v.flow)((function*(){const e=Math.ceil(this.vendorConfigurationCount/100);for(let t=0;t<e;t++)yield this.vendorConfigurations.get({request:{status:["draft","publish","private"]},params:{offset:100*t,per_page:100,context:"edit"}});this.fetchedAllVendorConfigurations=!0})),this.fetchVendors=(0,v.flow)((function*(){this.busyVendors=!0;try{const{vendorListVersion:e,vendors:t}=yield(0,R.W)({location:Z.f});for(const e of Object.keys(t))this.vendors.set(e,new P.C(t[e],this));this.vendorListVersion=e}catch(e){throw console.log(e),e}finally{this.busyVendors=!1}})),this.fetchDeclarations=(0,v.flow)((function*(){this.busyDeclarations=!0;try{const{gvlSpecificationVersion:e,tcfPolicyVersion:t,purposes:o,specialPurposes:r,features:i,specialFeatures:n}=yield(0,R.W)({location:k.Y});for(const e of Object.keys(o))this.purposes.set(e,new S.v(o[e],!1,this));for(const e of Object.keys(r))this.specialPurposes.set(e,new S.v(r[e],!0,this));for(const e of Object.keys(i))this.features.set(e,new O.i(i[e],!1,this));for(const e of Object.keys(n))this.specialFeatures.set(e,new O.i(n[e],!0,this));this.gvlSpecificationVersion=e,this.tcfPolicyVersion=t}catch(e){throw console.log(e),e}finally{this.busyDeclarations=!1}})),this.updateGvl=(0,v.flow)((function*(){this.busyGvl=!0;try{const{gvlDownloadTime:e}=yield(0,R.W)({location:C.y});this.rootStore.optionStore.tcfGvlDownloadTime=e}catch(e){throw console.log(e),e}finally{this.busyGvl=!1}})),this.rootStore=e,(0,v.runInAction)((()=>{this.vendorConfigurations=new E.C(this)}))}},i=(0,g.Z)(r.prototype,"busyGvl",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,g.Z)(r.prototype,"busyVendors",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,g.Z)(r.prototype,"busyDeclarations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,g.Z)(r.prototype,"vendorConfigurations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,g.Z)(r.prototype,"fetchedAllVendorConfigurations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),c=(0,g.Z)(r.prototype,"vendorListVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=(0,g.Z)(r.prototype,"gvlSpecificationVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=(0,g.Z)(r.prototype,"tcfPolicyVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=(0,g.Z)(r.prototype,"vendors",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),b=(0,g.Z)(r.prototype,"purposes",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),d=(0,g.Z)(r.prototype,"specialPurposes",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),y=(0,g.Z)(r.prototype,"features",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),f=(0,g.Z)(r.prototype,"specialFeatures",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,g.Z)(r.prototype,"vendorConfigurationCount",[v.computed],Object.getOwnPropertyDescriptor(r.prototype,"vendorConfigurationCount"),r.prototype),r)},2208:(e,t,o)=>{o.d(t,{b:()=>i,u:()=>r});const r="rcb-scan",i="rcb-automatic-scan-starter"},1589:(e,t,o)=>{function r(e){const t=document.createElement("textarea");t.innerText=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),t.remove()}o.d(t,{v:()=>r})},1048:(e,t,o)=>{function r(){return window["real-cookie-banner".replace(/-([a-z])/g,(e=>e[1].toUpperCase()))]}o.d(t,{m:()=>r})},9712:(e,t,o)=>{o.d(t,{u:()=>i});var r=o(1048);function i(){return(0,r.m)().others}},5217:(e,t,o)=>{o.d(t,{__:()=>l,_i:()=>c,_n:()=>s,_x:()=>a});var r=o(8700);let i;function n(){return i||(i=(0,r.createLocalizationFactory)(r.BaseOptions.getPureSlug("real-cookie-banner")))}const s=(...e)=>n()._n(...e),a=(...e)=>n()._x(...e),l=(...e)=>n().__(...e),c=(...e)=>n()._i(...e)},7669:(e,t,o)=>{o.d(t,{W:()=>a,Y:()=>s});var r=o(8700);let i;function n(){return i||(i=(0,r.createRequestFactory)(window[r.BaseOptions.getPureSlug("real-cookie-banner",!0)]))}const s=(...e)=>n().urlBuilder(...e),a=(...e)=>n().request(...e)},1712:(e,t,o)=>{function r(e=0){document.body.scrollTop=e,document.documentElement.scrollTop=e}o.d(t,{X:()=>r})},8503:(e,t,o)=>{function r(e,t=50,o="..."){if(!e||e.length<=t)return e;const r=t-o.length,i=Math.ceil(r/2),n=Math.floor(r/2);return e.substr(0,i)+o+e.substr(e.length-n)}o.d(t,{r:()=>r})},2377:(e,t,o)=>{o.d(t,{g:()=>r});const r={path:"/checklist",method:o(8700).RouteHttpVerb.GET}},5654:(e,t,o)=>{o.d(t,{s:()=>r});const r={path:"/checklist/:id",method:o(8700).RouteHttpVerb.PUT}},3612:(e,t,o)=>{o.d(t,{O:()=>r});const r={path:"/consent/all",method:o(8700).RouteHttpVerb.DELETE}},8516:(e,t,o)=>{o.d(t,{c:()=>r});const r={path:"/consent/all",method:o(8700).RouteHttpVerb.GET}},8420:(e,t,o)=>{o.d(t,{q:()=>r});const r={path:"/consent/referer",method:o(8700).RouteHttpVerb.GET}},8067:(e,t,o)=>{o.d(t,{B:()=>r});const r={path:"/cookie-groups/order",method:o(8700).RouteHttpVerb.PUT}},3950:(e,t,o)=>{o.d(t,{p:()=>r});const r={path:"/cookies/unassigned",method:o(8700).RouteHttpVerb.GET}},8903:(e,t,o)=>{o.d(t,{I:()=>r});const r={path:"/cookies/order",method:o(8700).RouteHttpVerb.PUT}},648:(e,t,o)=>{o.d(t,{_:()=>r});const r={path:"/country-bypass/database",method:o(8700).RouteHttpVerb.PUT}},534:(e,t,o)=>{o.d(t,{V:()=>r});const r={path:"/export",method:o(8700).RouteHttpVerb.GET}},9338:(e,t,o)=>{o.d(t,{Q:()=>r});const r={path:"/export/consents",method:o(8700).RouteHttpVerb.GET}},4161:(e,t,o)=>{o.d(t,{V:()=>r});const r={path:"/forward/cookie/:slug",method:o(8700).RouteHttpVerb.GET}},1079:(e,t,o)=>{o.d(t,{A:()=>r});const r={path:"/forward/endpoints",method:o(8700).RouteHttpVerb.GET}},4018:(e,t,o)=>{o.d(t,{H:()=>r});const r={path:"/import",method:o(8700).RouteHttpVerb.POST}},6568:(e,t,o)=>{o.d(t,{gn:()=>R.g,s5:()=>P.s,Ok:()=>f.O,cI:()=>y.c,rz:()=>Z,aY:()=>B,vY:()=>E,JQ:()=>h,PM:()=>u,qD:()=>Q.q,BI:()=>l.B,pV:()=>S.p,It:()=>c.I,_3:()=>V._,QB:()=>C.Q,Vm:()=>w.V,Vc:()=>_.V,AW:()=>O.A,HR:()=>k.H,nQ:()=>z.n,oW:()=>N.o,nX:()=>U.n,iO:()=>Y.i,tX:()=>n.t,N9:()=>T.N,Wu:()=>s.W,tw:()=>A.t,zf:()=>a.z,GQ:()=>b.G,a4:()=>d.a,Z1:()=>x.Z,TB:()=>D.T,kv:()=>G.k,ME:()=>H.M,Ce:()=>L.C,MQ:()=>W.M,$5:()=>q.$,eO:()=>F.e,$Q:()=>v,gh:()=>g,BV:()=>m,Y3:()=>j.Y,yR:()=>M.y,fs:()=>I.f,g3:()=>r.g,J3:()=>i.J});var r=o(5391),i=o(1211),n=o(8172),s=o(8213),a=o(702),l=o(8067),c=o(8903),p=o(8700);const u={path:"/consent",method:p.RouteHttpVerb.POST},h={path:"/consent",method:p.RouteHttpVerb.GET};var b=o(4791),d=o(1734),y=o(8516),f=o(3612);const m={path:"/stats/main",method:p.RouteHttpVerb.GET},g={path:"/stats/customBypass",method:p.RouteHttpVerb.GET},v={path:"/stats/buttonsClicked",method:p.RouteHttpVerb.GET};var w=o(534),k=o(4018);const Z={path:"/consent/clear",method:p.RouteHttpVerb.DELETE};var C=o(9338),R=o(2377),P=o(5654),S=o(3950),O=o(1079);const E={path:"/consent/forward",method:p.RouteHttpVerb.POST};var _=o(4161),z=o(4474),x=o(9560),D=o(6521),T=o(6406),A=o(6364),M=o(1039),I=o(4747),j=o(515);const B={path:"/consent/dynamic-predecision",method:p.RouteHttpVerb.POST};var V=o(648),U=o(4358),N=o(9190),G=o(2115),F=o(9601),W=o(5593),L=o(3943),H=o(6372),q=o(7244),Q=o(8420),Y=o(1515)},4474:(e,t,o)=>{o.d(t,{n:()=>r});const r={path:"/dismiss-config-page-pro-notice",method:o(8700).RouteHttpVerb.DELETE}},9190:(e,t,o)=>{o.d(t,{o:()=>r});const r={path:"/migration/:migration",method:o(8700).RouteHttpVerb.DELETE}},4358:(e,t,o)=>{o.d(t,{n:()=>r});const r={path:"/migration/:migration/:action",method:o(8700).RouteHttpVerb.POST}},6265:(e,t,o)=>{o.d(t,{C:()=>r});const r={path:"/modal-hint",method:o(8700).RouteHttpVerb.PUT}},1515:(e,t,o)=>{o.d(t,{i:()=>r});const r={path:"/nav-menu/add-links",method:o(8700).RouteHttpVerb.POST}},8172:(e,t,o)=>{o.d(t,{t:()=>r});const r={path:"/presets/banner",method:o(8700).RouteHttpVerb.GET}},8213:(e,t,o)=>{o.d(t,{W:()=>r});const r={path:"/presets/blocker",method:o(8700).RouteHttpVerb.GET}},6406:(e,t,o)=>{o.d(t,{N:()=>r});const r={path:"/presets/blocker/:identifier",method:o(8700).RouteHttpVerb.GET}},702:(e,t,o)=>{o.d(t,{z:()=>r});const r={path:"/presets/cookies",method:o(8700).RouteHttpVerb.GET}},6364:(e,t,o)=>{o.d(t,{t:()=>r});const r={path:"/presets/cookies/:identifier",method:o(8700).RouteHttpVerb.GET}},9560:(e,t,o)=>{o.d(t,{Z:()=>r});const r={path:"/revision/:hash",method:o(8700).RouteHttpVerb.GET}},4791:(e,t,o)=>{o.d(t,{G:()=>r});const r={path:"/revision/current",method:o(8700).RouteHttpVerb.GET}},1734:(e,t,o)=>{o.d(t,{a:()=>r});const r={path:"/revision/current",method:o(8700).RouteHttpVerb.PUT}},6521:(e,t,o)=>{o.d(t,{T:()=>r});const r={path:"/revision/independent/:hash",method:o(8700).RouteHttpVerb.GET}},2115:(e,t,o)=>{o.d(t,{k:()=>r});const r={path:"/scanner/queue",method:o(8700).RouteHttpVerb.POST}},6372:(e,t,o)=>{o.d(t,{M:()=>r});const r={path:"/scanner/result/externals/:type/:identifier",method:o(8700).RouteHttpVerb.GET}},5593:(e,t,o)=>{o.d(t,{M:()=>r});const r={path:"/scanner/result/externals",method:o(8700).RouteHttpVerb.GET}},3943:(e,t,o)=>{o.d(t,{C:()=>r});const r={path:"/scanner/result/externals/:host",method:o(8700).RouteHttpVerb.PUT}},7244:(e,t,o)=>{o.d(t,{$:()=>r});const r={path:"/scanner/result/markup/:id",method:o(8700).RouteHttpVerb.GET}},9601:(e,t,o)=>{o.d(t,{e:()=>r});const r={path:"/scanner/result/presets",method:o(8700).RouteHttpVerb.GET}},515:(e,t,o)=>{o.d(t,{Y:()=>r});const r={path:"/tcf/declarations",method:o(8700).RouteHttpVerb.GET}},1039:(e,t,o)=>{o.d(t,{y:()=>r});const r={path:"/tcf/gvl",method:o(8700).RouteHttpVerb.PUT}},4747:(e,t,o)=>{o.d(t,{f:()=>r});const r={path:"/tcf/vendors",method:o(8700).RouteHttpVerb.GET}},5391:(e,t,o)=>{o.d(t,{g:()=>r});const r={path:"/settings",namespace:"wp/v2",method:o(8700).RouteHttpVerb.GET}},1211:(e,t,o)=>{o.d(t,{J:()=>r});const r={path:"/settings",namespace:"wp/v2",method:o(8700).RouteHttpVerb.PATCH}},8852:()=>{},9494:()=>{},7363:e=>{e.exports=React},1533:e=>{e.exports=ReactDOM},6711:e=>{e.exports=ReactRouterDOM},490:e=>{e.exports=devowlWp_customize},9445:e=>{e.exports=devowlWp_realProductManagerWpClient},6:e=>{e.exports=devowlWp_realQueue},8700:e=>{e.exports=devowlWp_utils},5311:e=>{e.exports=jQuery},7821:e=>{e.exports=mobx},8488:e=>{e.exports=moment},5998:e=>{e.exports=wp}},i={};function n(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return r[e](o,o.exports,n),o.loaded=!0,o.exports}n.m=r,e=[],n.O=(t,o,r,i)=>{if(!o){var s=1/0;for(p=0;p<e.length;p++){for(var[o,r,i]=e[p],a=!0,l=0;l<o.length;l++)(!1&i||s>=i)&&Object.keys(n.O).every((e=>n.O[e](o[l])))?o.splice(l--,1):(a=!1,i<s&&(s=i));if(a){e.splice(p--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var p=e.length;p>0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[o,r,i]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,o)=>(n.f[o](e,t),t)),[])),n.u=e=>(({3:"chunk-config-tab-scanner",184:"chunk-config-tab-tcf",322:"chunk-config-tab-licensing",357:"chunk-config-tab-import",379:"chunk-config-tab-dashboard",478:"chunk-config-tab-blocker",625:"chunk-config-tab-consent",718:"chunk-config-tab-cookies",768:"chunk-config-tab-settings"}[e]||e)+".lite.js?ver="+{3:"07a379e3534d420121dd",81:"1597b7ea247ebc729b3f",85:"c1cace28db802702418a",184:"fe97b05fb51ed960cc94",185:"06765c274e74fab6e574",307:"73276fcc2cfb96b77e26",322:"5e85950ce97d48f995ac",357:"d787c22d5c45cbe48344",379:"54231007934f68c04f42",414:"80bd17f5390c8b52cd65",446:"8bd9b252600f8f721c0e",466:"b69d94a17213c9cde347",474:"acc17755b51f87dc3229",478:"d56eb89960084f2a4afb",544:"046af70c36e9f6a7dfd9",578:"36d419efcf879ad47d09",625:"a957b17ad4e5873c2979",637:"9448d3ae0292493cd01f",718:"3c49113e9bfaefdc71ae",737:"f0776900ca027073c701",768:"c74e5758e330894a7213",793:"20235de6234cd515b3d0",853:"e18a682e86c2a3514386",902:"dff6cad5a218cf713e40",932:"4223cc985ee59bf46502"}[e]),n.miniCssF=e=>"admin.css",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},o="realCookieBanner_:",n.l=(e,r,i,s)=>{if(t[e])t[e].push(r);else{var a,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),p=0;p<c.length;p++){var u=c[p];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+i){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,n.nc&&a.setAttribute("nonce",n.nc),a.setAttribute("data-webpack",o+i),a.src=e),t[e]=[r];var h=(o,r)=>{a.onerror=a.onload=null,clearTimeout(b);var i=t[e];if(delete t[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach((e=>e(r))),o)return o(r)},b=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),l&&document.head.appendChild(a)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{var e={328:0};n.f.j=(t,o)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)o.push(r[2]);else{var i=new Promise(((o,i)=>r=e[t]=[o,i]));o.push(r[2]=i);var s=n.p+n.u(t),a=new Error;n.l(s,(o=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+s+")",a.name="ChunkLoadError",a.type=i,a.request=s,r[1](a)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,o)=>{var r,i,[s,a,l]=o,c=0;if(s.some((t=>0!==e[t]))){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(l)var p=l(n)}for(t&&t(o);c<s.length;c++)i=s[c],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(p)},o=self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})();var s=n.O(void 0,[194],(()=>n(6974)));s=n.O(s),realCookieBanner_admin=s})();
2
  //# sourceMappingURL=admin.lite.js.map
1
+ var realCookieBanner_admin;(()=>{"use strict";var e,t,o,r={7747:(e,t,o)=>{var r,i;o.d(t,{r:()=>r}),function(e){e.Cookie="cookie",e.Web="web",e.App="app"}(r||(r={})),function(e){e.Bulgarian="bg",e.Catalan="ca",e.Czech="cs",e.Danish="da",e.German="de",e.Greek="el",e.Spanish="es",e.Estonian="et",e.Basque="eus",e.Finnish="fi",e.French="fr",e.Galician="gl",e.Croatian="hr",e.Hungarian="hu",e.Italian="it",e.Japanese="ja",e.Lithuanian="lt",e.Latvian="lv",e.Maltese="mt",e.Dutch="nl",e.Norwegian="no",e.Polish="pl",e.Portuguese="pt",e.Romanian="ro",e.SerbianCyrillic="sr-Cyrl",e.SerbianLatin="sr-Latn",e.Russian="ru",e.Slovak="sk",e.Slovenian="sl",e.Swedish="sv",e.Turkish="tr",e.Chinese="zh"}(i||(i={}))},8924:(e,t,o)=>{o.d(t,{I4:()=>i,Lg:()=>n,TK:()=>r});const r="Google Tag Manager",i="Matomo Tag Manager";function n(e,t){let o,n,s,a=!1,l="";if(e&&"none"!==e){const c="googleTagManager"===e,p="matomoTagManager"===e;c?(s="gtm",o="dataLayer",l=r):p&&(s="mtm",o="_mtm",l=i),(c||p)&&(n=()=>(window[o]=window[o]||[],window[o])),s&&t===s&&(a=!0)}return{getDataLayer:n,serviceIsManager:a,managerLabel:l,expectedManagerPresetId:s}}},987:(e,t,o)=>{o.d(t,{Q:()=>n,x:()=>i});var r=o(7363);class i{static Context(){return this.context=this.context||(0,r.createContext)({})}}function n(){return(0,r.useContext)(i.Context())}i.context=void 0},8057:(e,t,o)=>{o.d(t,{E:()=>n});var r=o(7363);const i=/(\r\n|\r|\n|<br[ ]?\/>)/g,n=e=>e.split(i).map(((e,t)=>e.match(i)?(0,r.createElement)("br",{key:t}):e))},6974:(e,t,o)=>{o.r(t),o.d(t,{ChecklistStore:()=>f.L_,ConsentStore:()=>f.v,CookieStore:()=>f.hc,CustomizeBannerStore:()=>f.WS,OptionStore:()=>f.aZ,RootStore:()=>f.My,ScannerStore:()=>f.Cu,StatsStore:()=>f.et,TcfStore:()=>f.z,locationRestChecklistGet:()=>y.gn,locationRestChecklistPut:()=>y.s5,locationRestConsentAllDelete:()=>y.Ok,locationRestConsentAllGet:()=>y.cI,locationRestConsentClearDelete:()=>y.rz,locationRestConsentDynamicPredecisionGet:()=>y.aY,locationRestConsentForwardPost:()=>y.vY,locationRestConsentGet:()=>y.JQ,locationRestConsentPost:()=>y.PM,locationRestConsentRefererGet:()=>y.qD,locationRestCookieGroupOrderPut:()=>y.BI,locationRestCookieUnassignedGet:()=>y.pV,locationRestCookiesOrderPut:()=>y.It,locationRestCountryBypassDatabasePut:()=>y._3,locationRestExportConsentsGet:()=>y.QB,locationRestExportGet:()=>y.Vm,locationRestForwardCookieGet:()=>y.Vc,locationRestForwardEndpointsGet:()=>y.AW,locationRestImportPost:()=>y.HR,locationRestLiteDismissConfigPageProNotice:()=>y.nQ,locationRestMigrationDelete:()=>y.oW,locationRestMigrationPost:()=>y.nX,locationRestNavMenuAddLinksPost:()=>y.iO,locationRestPresetsBannerGet:()=>y.tX,locationRestPresetsBlockerAttributesGet:()=>y.N9,locationRestPresetsBlockerGet:()=>y.Wu,locationRestPresetsCookiesAttributesGet:()=>y.tw,locationRestPresetsCookiesGet:()=>y.zf,locationRestRevisionCurrentGet:()=>y.GQ,locationRestRevisionCurrentPut:()=>y.a4,locationRestRevisionGet:()=>y.Z1,locationRestRevisionIndependentGet:()=>y.TB,locationRestScannerQueuePost:()=>y.kv,locationRestScannerResultAllExternalUrlsByHostGet:()=>y.ME,locationRestScannerResultExternalPatch:()=>y.Ce,locationRestScannerResultExternalsGet:()=>y.MQ,locationRestScannerResultMarkupGet:()=>y.$5,locationRestScannerResultPresetsGet:()=>y.eO,locationRestStatsButtonsClickedGet:()=>y.$Q,locationRestStatsCustomBypassGet:()=>y.gh,locationRestStatsMainGet:()=>y.BV,locationRestTcfDeclarationsGet:()=>y.Y3,locationRestTcfGvlPut:()=>y.yR,locationRestTcfVendorsGet:()=>y.fs,locationRestWpSettings:()=>y.g3,locationRestWpSettingsPatch:()=>y.J3,useStores:()=>f.mZ});var r=o(1246),i=o(8653),n=(o(1913),o(1533)),s=o(9743),a=o(4990),l=(o(9494),o(8852),o(8488)),c=o.n(l),p=o(8700),u=o(7669),h=o(5217),b=o(987),d={};for(const e in p)"default"!==e&&(d[e]=()=>p[e]);o.d(t,d);var y=o(6568),f=o(8919);o.p=(0,p.getWebpackPublicPath)("real-cookie-banner"),null===p.handleCorrupRestApi||void 0===p.handleCorrupRestApi||(0,p.handleCorrupRestApi)({[s.M.get.optionStore.restNamespace]:async()=>{await(0,u.W)({location:{path:"/plugin"}})},"wp/v2":async()=>{await(0,u.W)({location:{path:"/settings",namespace:"wp/v2"}})}}),i.ZP.config({prefixCls:"rcb-antd"}),r.ZP.config({top:50});const m=document.getElementById("".concat(s.M.get.optionStore.slug,"-component"));if(m){const e=b.x.Context();(0,n.render)(React.createElement(e.Provider,{value:{__:h.__,_i:h._i}},React.createElement(i.ZP,{prefixCls:"rcb-antd",locale:{locale:c().locale()}},React.createElement(s.M.StoreProvider,null,React.createElement(a.K,null)))),m)}},4144:(e,t,o)=>{o.d(t,{b:()=>w});var r=o(8208),i=o(8612),n=o(7465),s=o(9511),a=o(7363),l=o(3867),c=o(5217),p=o(301),u=o(5230),h=o(7921),b=o(886),d=o(9743),y=o(2684),f=o(1816),m=o(2411);const g=(0,l.Pi)((({id:e,checked:t,title:o,description:r,link:i,linkText:n,linkTarget:a,needsPro:l,onLinkClick:g})=>{const{optionStore:{others:{isPro:v},fomoCoupon:w}}=(0,d.m)(),k=!v&&l;let Z=null,C=null,R=i;switch(e){case"scanner":{const{percent:e,remaining:t,currentJob:o}=(0,y.p)();t>0&&e>0&&(null==o?void 0:o.group_position)>0&&(Z=React.createElement(s.Z,null,(0,c.__)("Currently scanning (%d %%)",e)));break}case"get-pro":C=React.createElement(m.S,null),w&&(R+="&".concat(m.Q))}return React.createElement("div",{style:{margin:"5px 0"}},React.createElement(p.Z,{title:t&&r},React.createElement("span",null,k?React.createElement(u.Z,{style:{color:"#7ec8ec"}}):t?React.createElement(h.Z,{style:{color:"#52c41a"}}):React.createElement(b.Z,{style:{color:"#e2e2e2"}})," ",React.createElement("span",{style:{textDecoration:t?"line-through":void 0,fontWeight:"bold"}},o),!!R&&!!n&&React.createElement(React.Fragment,null,"  •  ",React.createElement("a",{href:R,target:a,rel:"noreferrer",onClick:g},n)))),k&&"get-pro"!==e&&React.createElement(React.Fragment,null," ",React.createElement(s.Z,{color:f.k},(0,c.__)("Needs PRO"))),!!Z&&React.createElement(React.Fragment,null," ",Z),!!r&&!t&&React.createElement("p",{className:"description",style:{paddingLeft:17}},r),!!C&&React.createElement("div",{style:{paddingLeft:17}},C))}));var v=o(2185);const w=(0,l.Pi)((({onLinkClick:e,...t})=>{const{checklistStore:o}=(0,d.m)(),{busyChecklist:l,items:p,completed:u,checkable:h,done:y,checklist:{overdue:f}}=o,[m,w]=(0,a.useState)("boolean"==typeof t.showHidden?t.showHidden:!y);return React.createElement(r.Z,{spinning:l},React.createElement(i.Z,{direction:"vertical",size:"large"},f&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:0}},React.createElement("p",null,(0,c.__)("How time flies! You have installed Real Cookie Banner some time ago, but you still haven't finished the configuration yet."))),React.createElement("p",{className:"description"},(0,c.__)("We have collected all relevant steps for the legally compliant use of Real Cookie Banner after the first installation. Set up the cookie banner step by step to add a cookie banner to your website in compliance with the ePrivacy Directive and GDPR.")),React.createElement("div",null,y&&(m?React.createElement(s.Z,{icon:React.createElement(v.Z,null),color:"default",style:{cursor:"pointer"},onClick:()=>w(!1)},(0,c.__)("Hide completed steps")):React.createElement(s.Z,{icon:React.createElement(b.Z,null),color:"success",style:{cursor:"pointer"},onClick:()=>w(!0)},(0,c.__)("%d / %d steps completed",u.length>h.length?h.length:u.length,h.length))),p.map((({id:t,...r})=>!m&&r.checked?null:React.createElement(g,(0,n.Z)({key:t,id:t},r,{onLinkClick:r=>{["get-pro"].indexOf(t)>-1&&o.toggleChecklistItem(t,!0),null==e||e(r)}})))))))}))},4990:(e,t,o)=>{o.d(t,{K:()=>N,m:()=>D});var r=o(918),i=o(8208),n=o(7363),s=o(3867),a=o(6711),l=o(5217),c=o(9743),p=o(8936);const u=(0,s.Pi)((()=>{const{optionStore:e}=(0,c.m)(),{pathname:t}=(0,a.useLocation)();return e.needsRevisionRetrigger&&-1===t.indexOf("/edit/")&&-1===t.indexOf("/new")&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l.__)("You have changed settings that affect the content or behavior of the cookie banner. You should ask all visitors for their consent again.")," ","•"," ",React.createElement("a",{style:{cursor:"pointer",textDecoration:"underline"},onClick:()=>e.updateCurrentRevision({needs_retrigger:!0})},(0,l.__)("Request new consent"))," ","•"," ",React.createElement(p.Z,{title:React.createElement(React.Fragment,null,React.createElement("strong",null,(0,l.__)("Are you sure you don't want to collect new consents?")),React.createElement("br",null),React.createElement("br",null),(0,l._i)((0,l.__)("Consent must be obtained in accordance with {{a}}Art. 7 GDPR{{/a}}. Your visitor must be informed about all circumstances of the consent. However, you have made changes to your cookie banner, which lead to the fact that previously visitors have consented differently or to something different than is now in the cookie banner. Therefore, previously collected consents may have become partially invalid."),{a:React.createElement("a",{href:(0,l.__)("https://gdpr-info.eu/art-7-gdpr/"),rel:"noreferrer",target:"_blank"})}),React.createElement("br",null),React.createElement("br",null),(0,l.__)("If you have created a new service like Google Analytics (without visual content blocker), previous visitors can never consent without collecting new consents and you cannot track them, for example.")),placement:"bottomRight",onConfirm:()=>e.updateCurrentRevision({needs_retrigger:!1}),okText:(0,l.__)("Dismiss notice"),cancelText:(0,l.__)("Cancel"),overlayStyle:{maxWidth:450}},React.createElement("a",{style:{cursor:"pointer",textDecoration:"underline"}},(0,l.__)("Dismiss notice")))))})),h=(0,s.Pi)((()=>{const{optionStore:{publicCookieCount:e,busySettings:t,bannerActive:o}}=(0,c.m)();return o&&!e&&!t&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l.__)("The cookie banner is activated, but unfortunately you have not yet created or enabled services.")))}));var b=o(9712);const d=(0,s.Pi)((()=>{const{showNoticeAnonymousScriptNotWritable:e}=(0,b.u)();return!!e&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l._i)((0,l.__)("Your {{code}}wp-content{{/code}} folder is not writable. Please check your permissions!"),{code:React.createElement("code",null)})))}));var y=o(8924);const f=(0,s.Pi)((()=>{const{optionStore:{setCookiesViaManager:e,hasManager:t}}=(0,c.m)(),{managerLabel:o,expectedManagerPresetId:r}=(0,y.Lg)(e),{pathname:i}=(0,a.useLocation)();return o&&!t&&/^\/cookies\/\d+$/.test(i)&&React.createElement("div",{className:"notice notice-warning inline below-h2 notice-alt",style:{margin:"10px 0 0 0"}},React.createElement("p",null,(0,l._i)((0,l.__)("You have not yet defined a %s service. To use {{strong}}%s{{/strong}} with Real Cookie Banner, you must create the appropriate service.",o,o),{strong:React.createElement("strong",null)})," ","• ",React.createElement("a",{href:"#".concat(i,"/new?force=").concat(r)},(0,l.__)("Create now"))))}));var m=o(1712);const g=()=>{const{listen:e}=(0,a.useHistory)();return(0,n.useEffect)((()=>{const t=e((()=>{(0,m.X)(0)}));return()=>{t()}}),[e]),null};var v=o(3751),w=o(886),k=o(6363);const Z=(0,s.Pi)((()=>{const{optionStore:e}=(0,c.m)(),{others:{proUrl:t,isPro:o,isConfigProNoticeVisible:r}}=e,i="".concat(t,"&feature=main-button"),s=(0,n.useCallback)((()=>{window.open(i,"_blank"),e.dismissConfigProNotice()}),[e]),a=(0,n.useCallback)((()=>{e.dismissConfigProNotice()}),[e]);return!o&&React.createElement(p.Z,{visible:!!r,title:(0,l.__)("Thank you for using the free version of Real Cookie Banner. You might also be interested in the PRO version, which offers you more features, 20+ design templates, 100+ service templates, 60+ content blocker templates and much more."),icon:React.createElement(k.Z,{style:{color:"#1890ff"}}),placement:"bottom",onConfirm:s,onCancel:a,cancelText:(0,l.__)("No, not interested..."),okText:(0,l.__)("I want to learn more!"),overlayStyle:{maxWidth:450}},React.createElement("a",{className:"page-title-action",rel:"noreferrer",onClick:s},(0,l.__)("Get PRO version")))}));var C=o(4144);const R=(0,s.Pi)((()=>{const[e,t]=(0,n.useState)(!1),{optionStore:o,checklistStore:r}=(0,c.m)(),{pathname:i}=(0,a.useLocation)(),{others:{customizeBannerUrl:s},publicUrl:p}=o,{completed:u,checkable:h,done:b}=r;(0,n.useEffect)((()=>{r.fetchChecklist()}),[]);const d=(0,n.useCallback)((e=>{window.location.href="".concat(s,"&return=").concat(encodeURIComponent(window.location.href)),e.preventDefault()}),[]),y=(0,n.useCallback)((()=>{t(!0),r.fetchChecklist()}),[t]),f=(0,n.useCallback)((()=>{t(!1)}),[t]);return React.createElement(React.Fragment,null,React.createElement("h1",{className:"wp-heading-inline"},(0,l.__)("Real Cookie Banner")),React.createElement("img",{className:"rcb-nav-logo",src:"".concat(p,"images/logos/real-cookie-banner.svg")}),React.createElement("a",{className:"page-title-action",href:"#",onClick:d},(0,l.__)("Customize banner")),React.createElement(Z,null),!b&&"/"!==i&&React.createElement(React.Fragment,null,React.createElement("a",{className:"page-title-action",style:{color:"#52c41a",background:"#f6ffed",borderColor:"#85af65"},onClick:y},React.createElement(w.Z,null)," ",(0,l.__)("%d / %d steps completed",u.length>h.length?h.length:u.length,h.length)),React.createElement(v.Z,{visible:e,title:(0,l.__)("Set up the cookie banner"),onCancel:f,okButtonProps:{style:{display:"none"}},cancelText:(0,l.__)("Close"),width:800},React.createElement(C.b,{showHidden:!0,onLinkClick:f}))),React.createElement("hr",{className:"wp-header-end"}))}));var P=o(697);const S=(0,s.Pi)((()=>{const{optionStore:{publicUrl:e}}=(0,c.m)();return React.createElement("div",{className:"rcb-config-footer"},(0,l._i)((0,l.__)("Real Cookie Banner is brought to you with {{icon/}} by"),{icon:React.createElement(P.Z,{style:{color:"#dca7a7"}})}),React.createElement("a",{href:(0,l.__)("https://devowl.io/"),target:"_blank",rel:"noreferrer"},React.createElement("img",{src:"".concat(e,"images/logos/devowl-with-text.svg")})))}));var O=o(8700),E=o(2684),_=o(6),z=o(2208);const x={display:"block",marginTop:10},D=(e,t)=>({default:()=>React.createElement(O.SuspenseChunkTranslation,{chunkFile:o.u("chunk-config-tab-".concat(e)),options:()=>(0,c.m)().optionStore,fallback:React.createElement(i.Z,{spinning:!0,style:x})},t)}),T=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(414),o.e(544),o.e(85),o.e(932),o.e(637),o.e(379)]).then(o.bind(o,1429)).then((({DashboardCards:e})=>D("dashboard",React.createElement(e,null)))))),A=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(768)]).then(o.bind(o,5053)).then((({SettingsForm:e})=>D("settings",React.createElement(e,null)))))),M=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(81),o.e(793),o.e(466),o.e(474),o.e(737),o.e(578),o.e(3)]).then(o.bind(o,38)).then((({ScannerRouter:e})=>D("scanner",React.createElement(e,null)))))),I=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(544),o.e(466),o.e(853),o.e(932),o.e(718)]).then(o.bind(o,7248)).then((({CookieGroupsTabRouter:e})=>D("cookies",React.createElement(e,null)))))),j=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(414),o.e(466),o.e(474),o.e(625)]).then(o.bind(o,8687)).then((({ConsentTabRouter:e})=>D("consent",React.createElement(e,null)))))),B=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(793),o.e(544),o.e(85),o.e(932),o.e(637),o.e(478)]).then(o.bind(o,9069)).then((({BlockerRouter:e})=>D("blocker",React.createElement(e,null)))))),V=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(185),o.e(307),o.e(81),o.e(414),o.e(737),o.e(902),o.e(357)]).then(o.bind(o,8058)).then((({ImportExportCards:e})=>D("import",React.createElement(e,null)))))),U=(0,n.lazy)((()=>Promise.all([o.e(446),o.e(307),o.e(81),o.e(322)]).then(o.bind(o,3761)).then((({ConfigLicensing:e})=>D("licensing",React.createElement(e,null)))))),N=(0,s.Pi)((()=>{const{percent:e,remaining:t,currentJob:o}=(0,E.p)(),{optionStore:s,checklistStore:p}=(0,c.m)(),{others:{showLicenseFormImmediate:b,colorScheme:[,,y]}}=s;return(0,n.useLayoutEffect)((()=>{s.fetchSettings();const e=()=>{p.fetchChecklist()},t="".concat(_.JOB_DONE_EVENT_PREFIX).concat(z.b);return document.addEventListener(t,e),()=>{document.removeEventListener(t,e)}}),[]),b?React.createElement(n.Suspense,{fallback:React.createElement(i.Z,{spinning:!0,style:x})},React.createElement(U,null)):React.createElement(a.HashRouter,null,React.createElement(R,null),React.createElement("nav",{className:"nav-tab-wrapper wp-clearfix"},React.createElement(a.NavLink,{to:"/",className:"nav-tab",activeClassName:"nav-tab-active",exact:!0},(0,l.__)("Dashboard")),React.createElement(a.NavLink,{to:"/settings",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Settings")),React.createElement(a.NavLink,{to:"/scanner",className:"nav-tab",activeClassName:"nav-tab-active"},t>0&&e>0&&(null==o?void 0:o.group_position)>0?React.createElement(r.Z,{count:"".concat(e," %"),style:{top:-11,fontSize:10,height:16,lineHeight:"16px",background:y}},(0,l.__)("Scanner")):(0,l.__)("Scanner")),React.createElement(a.NavLink,{to:"/cookies",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Services (Cookies)")),React.createElement(a.NavLink,{to:"/blocker",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Content Blocker")),React.createElement(a.NavLink,{to:"/consent",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Consent")),React.createElement(a.NavLink,{to:"/import",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Import / Export")),"try.devowl.io"!==window.location.host&&React.createElement(a.NavLink,{to:"/licensing",className:"nav-tab",activeClassName:"nav-tab-active"},(0,l.__)("Licensing")),React.createElement("a",{href:(0,l.__)("https://devowl.io/support/"),className:"nav-tab",target:"_blank",rel:"noreferrer"},(0,l.__)("Support"))),React.createElement(u,null),React.createElement(h,null),React.createElement(d,null),React.createElement(f,null),React.createElement(g,null),React.createElement(n.Suspense,{fallback:React.createElement(i.Z,{spinning:!0,style:x})},React.createElement(a.Switch,null,React.createElement(a.Route,{path:"/",exact:!0},React.createElement(T,null)),React.createElement(a.Route,{path:"/settings/:tab?"},s.areSettingsFetched?React.createElement(A,null):null),React.createElement(a.Route,{path:"/scanner"},React.createElement(M,null)),React.createElement(a.Route,{path:"/cookies/:cookieGroup?"},React.createElement(I,null)),React.createElement(a.Route,{path:"/consent/:tab?"},React.createElement(j,null)),React.createElement(a.Route,{path:"/blocker"},React.createElement(B,null)),React.createElement(a.Route,{path:"/import"},React.createElement(V,null)),React.createElement(a.Route,{path:"/licensing"},React.createElement(U,null)))),React.createElement(S,null))}))},2411:(e,t,o)=>{o.d(t,{Q:()=>u,S:()=>h});var r=o(1063),i=o(9511),n=o(1246),s=o(3867),a=o(7363),l=o(9743),c=o(5217),p=o(1589);const u="promo=in-app",h=(0,s.Pi)((({style:e})=>{const{optionStore:{fomoCoupon:t}}=(0,l.m)(),o=null==t?void 0:t.coupon,s=null==t?void 0:t.valueInPercent,u=null==t?void 0:t.validUntil,h=(0,a.useCallback)((()=>{if(u){const e=new Date(u).getTime()-(new Date).getTime();if(e<=0)return;const t=e/1e3;return[Math.floor(t/3600),Math.floor(t/60)%60,Math.floor(t%60)].map((e=>e<10?"0".concat(e):e)).filter(((e,t)=>"00"!==e||t>0)).join(":")}}),[u]),[,b]=(0,a.useState)();(0,a.useEffect)((()=>{const e=setInterval((()=>{b((new Date).getTime())}),1e3);return()=>{clearInterval(e)}}),[]);const d=h();return d?React.createElement(r.Z,{style:e,message:(0,c._i)((0,c.__)("Use coupon {{tag}}%s{{/tag}} in the next {{strongHours}}%s hours{{/strongHours}} and save {{strongPercent}}%d %%{{/strongPercent}} in the first year!",o,d,s),{tag:React.createElement(i.Z,{color:"success",style:{marginRight:0,cursor:"pointer"},onClick:()=>{(0,p.v)(o),n.ZP.success((0,c.__)("Successfully copied coupon to clipboard!"))}}),strongHours:React.createElement("strong",{style:{color:"#d33131"}}),strongPercent:React.createElement("strong",null)})}):null}))},4251:(e,t,o)=>{o.d(t,{B:()=>u});var r=o(3751),i=o(7363),n=o(3541),s=o(9712),a=o(5217),l=o(2411),c=o(6178),p=o(8057);const u=({visible:e=!1,showHints:t=!0,showFomoCouponCounter:o=!0,title:u,testDrive:h=!1,assetName:b,description:d,feature:y,onClose:f,inContainer:m,inContainerElement:g})=>{const{proUrl:v,hints:w}=(0,s.u)(),[k,Z]=(0,i.useState)(),C=(0,i.useCallback)((()=>{window.open("".concat(v,"&feature=").concat(y,"&").concat(l.Q),"_blank").focus(),null==f||f()}),[f]);(0,i.useEffect)((()=>{m&&k&&(null==k?void 0:k.parentElement.parentElement.previousElementSibling).removeAttribute("tabIndex")}),[k]);const R=null==w?void 0:w.proDialog;return m&&!g?null:React.createElement(r.Z,{visible:!!m||e,title:React.createElement("span",null,React.createElement(n.Z,null)," ",u," ",(0,a.__)("Get PRO!")),onOk:C,onCancel:f,cancelText:(0,a.__)("No, not interested..."),okText:(0,a.__)("I want to learn more!"),className:"rcb-pro-modal",width:b?800:700,getContainer:m?g:void 0},!!b&&React.createElement("img",{style:{marginTop:10},src:"https://assets.devowl.io/in-app/wp-real-cookie-banner/".concat(b)}),React.createElement("div",{style:{maxWidth:600,margin:"auto"},ref:Z},React.createElement("p",null,(0,p.E)(d)),h&&React.createElement("p",null,(0,a._i)((0,a.__)("Check out this feature with a {{a}}free sandbox{{/a}} before buying!"),{a:React.createElement("a",{href:(0,a.__)("https://try.devowl.io/?product=RCB"),target:"_blank",rel:"noreferrer"})}))),!!R&&t&&React.createElement("div",{style:{maxWidth:600,margin:"auto",textAlign:"left"}},React.createElement(c.j,R)),o&&React.createElement(l.S,{style:{marginBottom:15}}))}},6178:(e,t,o)=>{o.d(t,{j:()=>s});var r=o(7743),i=o(2605),n=o(3404);const s=({title:e,description:t,link:o,linkText:s,logo:a})=>React.createElement(React.Fragment,null,React.createElement(n.Z,null,e),React.createElement(r.Z,{wrap:!1,style:{marginBottom:10}},React.createElement(i.Z,{flex:"auto"},!!t&&React.createElement("p",{style:{margin:0}},React.createElement("span",{dangerouslySetInnerHTML:{__html:t}})," ",!!o&&!!s&&React.createElement("a",{href:o,target:"_blank",rel:"noreferrer",className:"button-link"},s))),React.createElement(i.Z,{flex:"150px",style:{alignSelf:"center"}},!!a&&React.createElement("img",{src:a,style:{maxWidth:"calc(100% - 20px)",height:"auto",marginLeft:20}}))))},1816:(e,t,o)=>{o.d(t,{k:()=>p,t:()=>u});var r=o(7465),i=o(9511),n=o(2465),s=o(5217),a=o(9743),l=o(7363),c=o(4251);const p="#2db7f5";function u(e,t){const[o,u]=(0,l.useState)(!1),{optionStore:{others:{isPro:h}}}=(0,a.m)(),b="boolean"==typeof t?t:h,d=(0,l.useCallback)((e=>{u(!0),null==e||e.preventDefault()}),[u]),y=(0,l.useMemo)((()=>b?null:React.createElement(i.Z,{icon:React.createElement(n.Z,null),color:p,style:{cursor:"pointer"},onClick:d},e.tagText||(0,s.__)("Unlock feature"))),[d,e]),f=(0,l.useMemo)((()=>b?null:React.createElement(c.B,(0,r.Z)({visible:o,onClose:()=>u(!1)},e))),[o,u,e]);return{isPro:b,tag:y,modal:f,open:d}}},2684:(e,t,o)=>{o.d(t,{p:()=>a});var r=o(6),i=o(7363),n=o(9743),s=o(2208);function a(e,t=!1,o){const{scannerStore:a}=(0,n.m)();return(0,r.useProgress)({type:s.u,fetchStatusInterval:e,fetchAdditionalData:t,onAdditionalData:(0,i.useCallback)((({"rcb-scan-list":e})=>{const{presets:t,externalUrls:o}=e;a.resultPresetsFromResponse(t),a.resultExternalUrlsFromResponse(o)}),[a]),onCancel:o})}},6613:(e,t,o)=>{o.d(t,{p:()=>d});var r,i,n,s,a,l,c,p=o(6921),u=o(9888),h=o(7821),b=o(490);let d=(r=class e{constructor(e,t){(0,p.Z)(this,"id",i,this),(0,p.Z)(this,"name",n,this),(0,p.Z)(this,"needsPro",s,this),(0,p.Z)(this,"description",a,this),(0,p.Z)(this,"tags",l,this),(0,p.Z)(this,"settings",c,this),this.store=void 0,this.resetPreviewInUiSettings=void 0,(0,h.runInAction)((()=>(0,h.set)(this,e))),this.store=t}static getIframeStore(){try{return document.querySelector("#customize-preview > iframe").contentWindow.realCookieBanner_customize_banner.RootStore.get}catch(e){return}}applyInUi(){return!(!this.store.rootStore.optionStore.others.isPro&&this.needsPro||(this.previewInUi(),setTimeout((()=>{const e=(0,b.getSidebarCustomize)();this.store.presetDefaults.forEach(((t,o)=>{e(o).set(void 0===this.settings[o]?t:this.settings[o])}))}),100),0))}previewInUi(){const t=(0,b.getSidebarCustomize)(),{presetDefaults:o}=this.store,{settings:r}=this.store.rootStore.optionStore.others.customizeIdsBanner,i=[];this.resetPreviewInUiSettings={};for(const e of Object.keys(r)){const n=r[e];for(const r of Object.keys(n)){const s=n[r];if(!o.has(s))continue;this.resetPreviewInUiSettings[s]=[e,r,t(s).get()];const a=Object.prototype.hasOwnProperty.call(this.settings,s)?this.settings[s]:o.get(s);i.push([e,r,a])}}e.getIframeStore().customizeBannerStore.setBannerFromPreset(i)}resetPreviewInUi(){this.resetPreviewInUiSettings&&(e.getIframeStore().customizeBannerStore.setBannerFromPreset(Object.values(this.resetPreviewInUiSettings)),this.resetPreviewInUiSettings={})}},i=(0,u.Z)(r.prototype,"id",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,u.Z)(r.prototype,"name",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,u.Z)(r.prototype,"needsPro",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a=(0,u.Z)(r.prototype,"description",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,u.Z)(r.prototype,"tags",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=(0,u.Z)(r.prototype,"settings",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},8578:(e,t,o)=>{o.d(t,{R:()=>a});var r,i=o(8700),n=o(7669),s=o(3642);let a=i.ClientCollection.annotate({path:"/rcb-blocker",singlePath:"/rcb-blocker/:id",namespace:"wp/v2",methods:[i.RouteHttpVerb.GET],request:n.W})(r=class extends i.AbstractPostCollection{constructor(e){super(),this.store=void 0,this.store=e}instance(e){return new s.p(this).fromResponse(e)}})||r},3642:(e,t,o)=>{o.d(t,{p:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(6054),u=o(7821),h=o(9743);let b=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-blocker"},patch:{path:"/rcb-blocker/:id"},delete:{path:"/rcb-blocker/:id"}})((i=class extends l.AbstractPost{get rules(){var e;return null===(e=this.data)||void 0===e?void 0:e.meta.rules.split("\n")}get tcfVendors(){var e;return null!==(e=this.data)&&void 0!==e&&e.meta.tcfVendors?this.data.meta.tcfVendors.split(",").filter(Boolean).map(Number):[]}get services(){var e;return null===(e=this.data)||void 0===e?void 0:e.meta.services.split(",").filter(Boolean).map(Number)}constructor(e,t={}){super(e,t),(0,s.Z)(this,"presetModel",n,this),(0,u.reaction)((()=>{var e;return null===(e=this.data)||void 0===e?void 0:e.preset}),(e=>(0,u.runInAction)((()=>{this.presetModel=e?new p.w(e,h.M.get.cookieStore):void 0}))),{fireImmediately:!0})}setName(e){this.data.title.rendered=e}setStatus(e){this.data.status=e}setDescription(e){this.data.content.rendered=e}setMeta(e){this.data.meta=e}transformDataForPatch(){const e=super.transformDataForPatch();return{title:e.title,content:e.content,status:e.status,meta:e.meta,slug:e.title}}afterPatch(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}afterDelete(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.blockers.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,a.Z)(i.prototype,"presetModel",[u.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"rules",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"rules"),i.prototype),(0,a.Z)(i.prototype,"tcfVendors",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"tcfVendors"),i.prototype),(0,a.Z)(i.prototype,"services",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"services"),i.prototype),(0,a.Z)(i.prototype,"setName",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setDescription",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setDescription"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},6054:(e,t,o)=>{o.d(t,{w:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(6406),u=o(7669);let h=(r=class{get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,u.W)({location:p.N,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),r)},97:(e,t,o)=>{o.d(t,{y:()=>I});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m,g,v,w,k,Z,C,R,P,S,O,E,_,z,x,D,T=o(6921),A=o(9888),M=o(7821);let I=(r=class{get revision(){return this.store.revisions.get(this.revision_hash)}get revision_independent(){return this.store.revisionsIndependent.get(this.revision_independent_hash)}get custom_bypass_readable(){const{custom_bypass:e}=this;return e?e.charAt(0).toUpperCase()+e.slice(1):""}get export(){return JSON.parse(JSON.stringify({...this.plain,revision:this.revision.data,revision_independent:this.revision_independent.data}))}constructor(e,t){(0,T.Z)(this,"id",i,this),(0,T.Z)(this,"plugin_version",n,this),(0,T.Z)(this,"design_version",s,this),(0,T.Z)(this,"ipv4",a,this),(0,T.Z)(this,"ipv6",l,this),(0,T.Z)(this,"ipv4_hash",c,this),(0,T.Z)(this,"ipv6_hash",p,this),(0,T.Z)(this,"uuid",u,this),(0,T.Z)(this,"previous_decision",h,this),(0,T.Z)(this,"decision",b,this),(0,T.Z)(this,"decision_labels",d,this),(0,T.Z)(this,"created",y,this),(0,T.Z)(this,"blocker",f,this),(0,T.Z)(this,"blocker_thumbnail",m,this),(0,T.Z)(this,"dnt",g,this),(0,T.Z)(this,"custom_bypass",v,this),(0,T.Z)(this,"user_country",w,this),(0,T.Z)(this,"revision_hash",k,this),(0,T.Z)(this,"revision_independent_hash",Z,this),(0,T.Z)(this,"button_clicked",C,this),(0,T.Z)(this,"context",R,this),(0,T.Z)(this,"viewport_width",P,this),(0,T.Z)(this,"viewport_height",S,this),(0,T.Z)(this,"viewed_page",O,this),(0,T.Z)(this,"url_imprint",E,this),(0,T.Z)(this,"url_privacy_policy",_,this),(0,T.Z)(this,"forwarded",z,this),(0,T.Z)(this,"forwarded_blocker",x,this),(0,T.Z)(this,"tcf_string",D,this),this.store=void 0,this.plain=void 0,(0,M.runInAction)((()=>(0,M.set)(this,e))),this.store=t,this.plain=e}fetchRevisions(){return Promise.all([this.store.fetchRevision({hash:this.revision_hash}),this.store.fetchRevisionIndependent({hash:this.revision_independent_hash})])}},i=(0,A.Z)(r.prototype,"id",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,A.Z)(r.prototype,"plugin_version",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,A.Z)(r.prototype,"design_version",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a=(0,A.Z)(r.prototype,"ipv4",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,A.Z)(r.prototype,"ipv6",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=(0,A.Z)(r.prototype,"ipv4_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=(0,A.Z)(r.prototype,"ipv6_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=(0,A.Z)(r.prototype,"uuid",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=(0,A.Z)(r.prototype,"previous_decision",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=(0,A.Z)(r.prototype,"decision",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=(0,A.Z)(r.prototype,"decision_labels",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=(0,A.Z)(r.prototype,"created",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=(0,A.Z)(r.prototype,"blocker",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=(0,A.Z)(r.prototype,"blocker_thumbnail",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=(0,A.Z)(r.prototype,"dnt",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=(0,A.Z)(r.prototype,"custom_bypass",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=(0,A.Z)(r.prototype,"user_country",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=(0,A.Z)(r.prototype,"revision_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=(0,A.Z)(r.prototype,"revision_independent_hash",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=(0,A.Z)(r.prototype,"button_clicked",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=(0,A.Z)(r.prototype,"context",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=(0,A.Z)(r.prototype,"viewport_width",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=(0,A.Z)(r.prototype,"viewport_height",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=(0,A.Z)(r.prototype,"viewed_page",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=(0,A.Z)(r.prototype,"url_imprint",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=(0,A.Z)(r.prototype,"url_privacy_policy",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=(0,A.Z)(r.prototype,"forwarded",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=(0,A.Z)(r.prototype,"forwarded_blocker",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=(0,A.Z)(r.prototype,"tcf_string",[M.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,A.Z)(r.prototype,"revision",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"revision"),r.prototype),(0,A.Z)(r.prototype,"revision_independent",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"revision_independent"),r.prototype),(0,A.Z)(r.prototype,"custom_bypass_readable",[M.computed],Object.getOwnPropertyDescriptor(r.prototype,"custom_bypass_readable"),r.prototype),r)},4620:(e,t,o)=>{o.d(t,{b:()=>u});var r,i,n=o(9888),s=o(8700),a=o(7669),l=o(2698),c=o(7821),p=o(8903);let u=s.ClientCollection.annotate({path:"/rcb-cookie",singlePath:"/rcb-cookie/:id",namespace:"wp/v2",methods:[s.RouteHttpVerb.GET],request:a.W})((i=class extends s.AbstractPostCollection{get sortedCookies(){const e=Array.from(this.entries.values());return e.sort(((e,t)=>e.data.menu_order<t.data.menu_order?-1:e.data.menu_order>t.data.menu_order||e.key<t.key?1:e.key>t.key?-1:0)),e}constructor(e){super(),this.store=void 0,this.orderCookies=(0,c.flow)((function*(e){this.busy=!0;try{yield(0,a.W)({location:p.I,request:{ids:e}});let t=0;for(const o of e)this.entries.get(o).setOrder(t),t++}catch(e){throw console.log(e),e}finally{this.busy=!1}})),this.store=e}instance(e){return new l.U(this).fromResponse(e)}},(0,n.Z)(i.prototype,"sortedCookies",[c.computed],Object.getOwnPropertyDescriptor(i.prototype,"sortedCookies"),i.prototype),r=i))||r},8626:(e,t,o)=>{o.d(t,{w:()=>u});var r,i,n=o(9888),s=o(8700),a=o(7669),l=o(9532),c=o(7821),p=o(8067);let u=s.ClientCollection.annotate({path:"/rcb-cookie-group",singlePath:"/rcb-cookie-group/:id",namespace:"wp/v2",methods:[s.RouteHttpVerb.GET],request:a.W})((i=class extends s.AbstractCategoryCollection{get sortedGroups(){const e=Array.from(this.entries.values());return e.sort(((e,t)=>e.data.meta.order<t.data.meta.order?-1:e.data.meta.order>t.data.meta.order?1:0)),e}constructor(e){super(),this.store=void 0,this.orderCookieGroups=(0,c.flow)((function*(e){this.busy=!0;try{yield(0,a.W)({location:p.B,request:{ids:e}});let t=0;for(const o of e)this.entries.get(o).setOrder(t),t++}catch(e){throw console.log(e),e}finally{this.busy=!1}})),this.store=e}instance(e){return new l.O(this).fromResponse(e)}},(0,n.Z)(i.prototype,"sortedGroups",[c.computed],Object.getOwnPropertyDescriptor(i.prototype,"sortedGroups"),i.prototype),r=i))||r},9532:(e,t,o)=>{o.d(t,{O:()=>b});var r,i,n,s,a=o(6921),l=o(9888),c=o(8700),p=o(7669),u=o(4620),h=o(7821);let b=c.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:p.W,create:{path:"/rcb-cookie-group"},patch:{path:"/rcb-cookie-group/:id"},delete:{path:"/rcb-cookie-group/:id"}})((i=class extends c.AbstractCategory{get cookiesCount(){return this.fetchedAllCookies?this.cookies.entries.size:this.data.count}constructor(e,t={}){super(e,t),(0,a.Z)(this,"cookies",n,this),(0,a.Z)(this,"fetchedAllCookies",s,this),this.fetchCookies=(0,h.flow)((function*(){yield this.cookies.get({request:{status:["draft","publish","private"]},params:{per_page:100,"rcb-cookie-group":this.key,context:"edit"}}),this.fetchedAllCookies=!0})),(0,h.runInAction)((()=>{this.cookies=new u.b(this)}))}setName(e){this.data.name=e}setDescription(e){this.data.description=e}setOrder(e){this.data.meta.order=e}afterDelete(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPatch(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,l.Z)(i.prototype,"cookies",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(i.prototype,"fetchedAllCookies",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),(0,l.Z)(i.prototype,"cookiesCount",[h.computed],Object.getOwnPropertyDescriptor(i.prototype,"cookiesCount"),i.prototype),(0,l.Z)(i.prototype,"setName",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,l.Z)(i.prototype,"setDescription",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setDescription"),i.prototype),(0,l.Z)(i.prototype,"setOrder",[h.action],Object.getOwnPropertyDescriptor(i.prototype,"setOrder"),i.prototype),r=i))||r},2698:(e,t,o)=>{o.d(t,{U:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(1355),u=o(7821),h=o(9743);let b=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-cookie"},patch:{path:"/rcb-cookie/:id"},delete:{path:"/rcb-cookie/:id"}})((i=class extends l.AbstractPost{get rootStore(){return this.collection.store.collection.store.rootStore}get technicalDefinitions(){return JSON.parse(this.data.meta.technicalDefinitions)}get codeDynamics(){return JSON.parse(this.data.meta.codeDynamics||"{}")}constructor(e,t={}){super(e,t),(0,s.Z)(this,"presetModel",n,this),this.store=void 0,(0,u.reaction)((()=>{var e;return null===(e=this.data)||void 0===e?void 0:e.preset}),(e=>(0,u.runInAction)((()=>{this.presetModel=e?new p.g(e,h.M.get.cookieStore):void 0}))),{fireImmediately:!0})}afterPatch(){const e=this.collection.store.collection,[t]=this.data["rcb-cookie-group"];e.entries.forEach((e=>{t!==e.key?e.cookies.entries.delete(this.key):e.cookies.entries.set(this.key,this)})),this.rootStore.optionStore.fetchCurrentRevision(),this.rootStore.cookieStore.unassignedCookies.delete(this.key)}setOrder(e){this.data.menu_order=e}setName(e){this.data.title.rendered=e}setStatus(e){this.data.status=e}setPurpose(e){this.data.content.rendered=e}setGroup(e){this.data["rcb-cookie-group"]=[e]}setMeta(e){this.data.meta=e}transformDataForPersist(){return{...super.transformDataForPersist(),"rcb-cookie-group":[this.collection.store.key]}}transformDataForPatch(){const e=super.transformDataForPatch();return{title:e.title,content:e.content,status:e.status,meta:e.meta,menu_order:e.menu_order,"rcb-cookie-group":this.data["rcb-cookie-group"],slug:e.title}}afterDelete(){this.collection.store.cookies.store.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){const{optionStore:e,checklistStore:t}=this.collection.store.cookies.store.collection.store.rootStore;e.fetchCurrentRevision(),t.probablyFetchByChangedItem("add-cookie")}},n=(0,a.Z)(i.prototype,"presetModel",[u.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"rootStore",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"rootStore"),i.prototype),(0,a.Z)(i.prototype,"technicalDefinitions",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"technicalDefinitions"),i.prototype),(0,a.Z)(i.prototype,"codeDynamics",[u.computed],Object.getOwnPropertyDescriptor(i.prototype,"codeDynamics"),i.prototype),(0,a.Z)(i.prototype,"afterPatch",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"afterPatch"),i.prototype),(0,a.Z)(i.prototype,"setOrder",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setOrder"),i.prototype),(0,a.Z)(i.prototype,"setName",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setName"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setPurpose",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setPurpose"),i.prototype),(0,a.Z)(i.prototype,"setGroup",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setGroup"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[u.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},1355:(e,t,o)=>{o.d(t,{g:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(6364),u=o(7669);let h=(r=class{get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,u.W)({location:p.t,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),r)},6827:(e,t,o)=>{o.d(t,{k:()=>r});class r{constructor(e,t){this.data=void 0,this.store=void 0,this.data=e,this.store=t}}},6213:(e,t,o)=>{o.d(t,{I:()=>r});class r{constructor(e,t){this.data=void 0,this.store=void 0,this.data=e,this.store=t}}},1339:(e,t,o)=>{o.d(t,{o:()=>h});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(3943),p=o(5217),u=o(7669);let h=(r=class{get identifier(){return this.data.host}get inactive(){return"full"===this.blockedStatus||this.data.ignored}get blockedStatus(){const{foundCount:e,blockedCount:t}=this.data;return 0===t?"none":e===t?"full":"partial"}get blockedStatusText(){switch(this.blockedStatus){case"full":return(0,p.__)("Fully blocked");case"partial":return(0,p.__)("Partially blocked");default:return(0,p.__)("Not blocked")}}constructor(e,t){(0,s.Z)(this,"busy",i,this),(0,s.Z)(this,"data",n,this),this.store=void 0,this.ignore=(0,l.flow)((function*(e=!0){try{yield(0,u.W)({location:c.C,request:{ignored:e},params:{host:this.data.host.replace(/\./g,"_")}}),this.data.ignored=e}catch(e){throw console.log(e),e}})),(0,l.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,a.Z)(r.prototype,"busy",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"identifier",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"identifier"),r.prototype),(0,a.Z)(r.prototype,"inactive",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"inactive"),r.prototype),(0,a.Z)(r.prototype,"blockedStatus",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedStatus"),r.prototype),(0,a.Z)(r.prototype,"blockedStatusText",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedStatusText"),r.prototype),r)},3792:(e,t,o)=>{o.d(t,{a:()=>p});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(8503);let p=(r=class{get markup(){return this.store.resultMarkup.get(this.data.id)}get blockedUrlTruncate(){return(0,c.r)(this.data.blockedUrl,50,"[...]")}get sourceUrlTruncate(){return(0,c.r)(this.data.sourceUrl,50,"[...]")}constructor(e,t){(0,s.Z)(this,"busy",i,this),(0,s.Z)(this,"data",n,this),this.store=void 0,this.fetchMarkup=(0,l.flow)((function*(){yield this.store.fetchMarkup(this.data.id)})),(0,l.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,a.Z)(r.prototype,"busy",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"markup",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"markup"),r.prototype),(0,a.Z)(r.prototype,"blockedUrlTruncate",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockedUrlTruncate"),r.prototype),(0,a.Z)(r.prototype,"sourceUrlTruncate",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"sourceUrlTruncate"),r.prototype),r)},8318:(e,t,o)=>{o.d(t,{g:()=>h});var r,i,n,s,a=o(6921),l=o(9888),c=o(7821),p=o(7669),u=o(6406);let h=(r=class{get identifier(){return this.data.identifier}get fullLogoUrl(){const{logoFile:e}=this.data,{publicUrl:t}=this.store.rootStore.optionStore;return e.startsWith("http")?e:"".concat(t,"images/logos/").concat(e)}get inactive(){return this.data.created}constructor(e,t){(0,a.Z)(this,"busy",i,this),(0,a.Z)(this,"data",n,this),(0,a.Z)(this,"attributes",s,this),this.store=void 0,this.fetchAttributes=(0,c.flow)((function*(){try{this.busy=!0;const e=yield(0,p.W)({location:u.N,params:{identifier:this.data.identifier}});this.attributes=e}catch(e){throw console.log(e),e}finally{this.busy=!1}})),(0,c.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,l.Z)(r.prototype,"busy",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,l.Z)(r.prototype,"data",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,l.Z)(r.prototype,"attributes",[c.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,l.Z)(r.prototype,"identifier",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"identifier"),r.prototype),(0,l.Z)(r.prototype,"fullLogoUrl",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"fullLogoUrl"),r.prototype),(0,l.Z)(r.prototype,"inactive",[c.computed],Object.getOwnPropertyDescriptor(r.prototype,"inactive"),r.prototype),r)},1112:(e,t,o)=>{o.d(t,{i:()=>c});var r,i,n,s=o(6921),a=o(9888),l=o(7821);let c=(r=class{constructor(e,t,o){(0,s.Z)(this,"data",i,this),(0,s.Z)(this,"special",n,this),this.store=void 0,(0,l.runInAction)((()=>{this.special=t,this.data=e})),this.store=o}},i=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,a.Z)(r.prototype,"special",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},8272:(e,t,o)=>{o.d(t,{v:()=>c});var r,i,n,s=o(6921),a=o(9888),l=o(7821);let c=(r=class{constructor(e,t,o){(0,s.Z)(this,"data",i,this),(0,s.Z)(this,"special",n,this),this.store=void 0,(0,l.runInAction)((()=>{this.special=t,this.data=e})),this.store=o}},i=(0,a.Z)(r.prototype,"data",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n=(0,a.Z)(r.prototype,"special",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)},2515:(e,t,o)=>{o.d(t,{C:()=>c});var r,i,n=o(6921),s=o(9888),a=o(7821),l=o(7747);let c=(r=class{get vendorConfiguration(){for(const e of this.store.vendorConfigurations.entries.values())if(e.vendorModel.data.id===this.data.id)return e}get deviceStorageDisclosure(){const{usesCookies:e,cookieMaxAgeSeconds:t,cookieRefresh:o,usesNonCookieAccess:r,deviceStorageDisclosure:i}=this.data,n=null!=i&&i.disclosures.length?[...i.disclosures]:[];return r&&n.unshift({type:l.r.Web,identifier:"*",purposes:void 0,cookieRefresh:void 0,domain:"*",maxAgeSeconds:null}),e&&n.unshift({type:l.r.Cookie,identifier:"*",purposes:void 0,cookieRefresh:o,domain:"*",maxAgeSeconds:t}),n}get allPurposes(){return[...this.legIntPurposes,...this.purposes,...this.specialPurposes].filter(Boolean)}get allFeatures(){return[...this.features,...this.specialFeatures].filter(Boolean)}get restrictivePurposes(){const e={normal:{}};for(const t of[...this.legIntPurposes,...this.purposes])e.normal[t.data.id.toString()]={enabled:!0,legInt:this.legIntPurposes.indexOf(t)>-1&&!t.special?"yes":"no"};return e}get purposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.purposes.map((e=>this.store.purposes.get("".concat(e))))}get legIntPurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.legIntPurposes.map((e=>this.store.purposes.get("".concat(e))))}get flexiblePurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.flexiblePurposes.map((e=>this.store.purposes.get("".concat(e))))}get specialPurposes(){var e;return null===(e=this.data)||void 0===e?void 0:e.specialPurposes.map((e=>this.store.specialPurposes.get("".concat(e))))}get features(){var e;return null===(e=this.data)||void 0===e?void 0:e.features.map((e=>this.store.features.get("".concat(e))))}get specialFeatures(){var e;return null===(e=this.data)||void 0===e?void 0:e.specialFeatures.map((e=>this.store.specialFeatures.get("".concat(e))))}constructor(e,t){(0,n.Z)(this,"data",i,this),this.store=void 0,(0,a.runInAction)((()=>{this.data=e})),this.store=t}},i=(0,s.Z)(r.prototype,"data",[a.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,s.Z)(r.prototype,"vendorConfiguration",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"vendorConfiguration"),r.prototype),(0,s.Z)(r.prototype,"deviceStorageDisclosure",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"deviceStorageDisclosure"),r.prototype),(0,s.Z)(r.prototype,"allPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"allPurposes"),r.prototype),(0,s.Z)(r.prototype,"allFeatures",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"allFeatures"),r.prototype),(0,s.Z)(r.prototype,"restrictivePurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"restrictivePurposes"),r.prototype),(0,s.Z)(r.prototype,"purposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"purposes"),r.prototype),(0,s.Z)(r.prototype,"legIntPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"legIntPurposes"),r.prototype),(0,s.Z)(r.prototype,"flexiblePurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"flexiblePurposes"),r.prototype),(0,s.Z)(r.prototype,"specialPurposes",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"specialPurposes"),r.prototype),(0,s.Z)(r.prototype,"features",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"features"),r.prototype),(0,s.Z)(r.prototype,"specialFeatures",[a.computed],Object.getOwnPropertyDescriptor(r.prototype,"specialFeatures"),r.prototype),r)},303:(e,t,o)=>{o.d(t,{C:()=>a});var r,i=o(8700),n=o(7669),s=o(9894);let a=i.ClientCollection.annotate({path:"/rcb-tcf-vendor-conf",singlePath:"/rcb-tcf-vendor-conf/:id",namespace:"wp/v2",methods:[i.RouteHttpVerb.GET],request:n.W})(r=class extends i.AbstractPostCollection{constructor(e){super(),this.store=void 0,this.store=e}instance(e){return new s.S(this).fromResponse(e)}})||r},9894:(e,t,o)=>{o.d(t,{S:()=>d});var r,i,n,s=o(6921),a=o(9888),l=o(8700),c=o(7669),p=o(7821),u=o(2515),h=o(5311),b=o.n(h);let d=l.ClientModel.annotate({keyId:"id",namespace:"wp/v2",request:c.W,create:{path:"/rcb-tcf-vendor-conf"},patch:{path:"/rcb-tcf-vendor-conf/:id"},delete:{path:"/rcb-tcf-vendor-conf/:id"}})((i=class extends l.AbstractPost{get hasVendor(){return!!this.vendorModel}get restrictivePurposes(){var e,t;const o="global"===this.collection.store.rootStore.optionStore.tcfScopeOfConsent,r=(null===(e=this.vendorModel)||void 0===e?void 0:e.restrictivePurposes)||{normal:{}};if(o)return r;const i=JSON.parse(this.data.meta.restrictivePurposes);return b().extend(!0,{},(null===(t=this.vendorModel)||void 0===t?void 0:t.restrictivePurposes)||{},i)}get stats(){var e;const{normal:t}=this.restrictivePurposes,o=[...Object.values(t)];return{activePurposes:o.filter((({enabled:e})=>e)).length,legIntPurposes:o.filter((({enabled:e,legInt:t})=>e&&"yes"===t)).length,activeFeatures:(null===(e=this.vendorModel)||void 0===e?void 0:e.allFeatures.length)||0}}constructor(e,t={}){super(e,t),(0,s.Z)(this,"vendorModel",n,this),(0,p.reaction)((()=>this.data.vendor),(e=>(0,p.runInAction)((()=>{if(e){const{vendors:t}=this.collection.store,o=e.id.toString();let r=t.get(o);r||(r=new u.C(e,this.collection.store),t.set(o,r)),this.vendorModel=r}}))),{fireImmediately:!0}),(0,p.reaction)((()=>{var e;return null===(e=this.data.meta)||void 0===e?void 0:e.vendorId}),(e=>{e&&(this.vendorModel=this.collection.store.vendors.get(e.toString()))}),{fireImmediately:!0})}setStatus(e){this.data.status=e}setMeta(e){this.data.meta=e}transformDataForPatch(){const e=super.transformDataForPatch();return{status:e.status,meta:e.meta}}afterPatch(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterDelete(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}afterPersist(){this.collection.store.rootStore.optionStore.fetchCurrentRevision()}},n=(0,a.Z)(i.prototype,"vendorModel",[p.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(i.prototype,"hasVendor",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"hasVendor"),i.prototype),(0,a.Z)(i.prototype,"restrictivePurposes",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"restrictivePurposes"),i.prototype),(0,a.Z)(i.prototype,"stats",[p.computed],Object.getOwnPropertyDescriptor(i.prototype,"stats"),i.prototype),(0,a.Z)(i.prototype,"setStatus",[p.action],Object.getOwnPropertyDescriptor(i.prototype,"setStatus"),i.prototype),(0,a.Z)(i.prototype,"setMeta",[p.action],Object.getOwnPropertyDescriptor(i.prototype,"setMeta"),i.prototype),r=i))||r},9171:(e,t,o)=>{o.d(t,{L:()=>b});var r,i,n,s=o(6921),a=o(9888),l=o(7821),c=o(8700),p=o(2377),u=o(5654),h=o(7669);let b=(r=class extends c.BaseOptions{constructor(e){super(),(0,s.Z)(this,"busyChecklist",i,this),(0,s.Z)(this,"checklist",n,this),this.rootStore=void 0,this.probablyFetchByChangedItem=(0,l.flow)((function*(e,t){if(t)return void(yield this.fetchChecklist());const o=Array.isArray(e)?e:[e];this.items.filter((({id:e,checked:t})=>o.indexOf(e)>-1&&!t)).length>0&&(yield this.fetchChecklist())})),this.fetchChecklist=(0,l.flow)((function*(){this.busyChecklist=!0;try{this.checklist=yield(0,h.W)({location:p.g,params:{_wp_http_referer:window.location.href}})}catch(e){throw console.log(e),e}finally{this.busyChecklist=!1}})),this.toggleChecklistItem=(0,l.flow)((function*(e,t){this.busyChecklist=!0;try{this.checklist=yield(0,h.W)({location:u.s,request:{state:t},params:{id:e,_wp_http_referer:window.location.href}})}catch(e){throw console.log(e),e}finally{this.busyChecklist=!1}})),this.rootStore=e}get items(){return this.checklist&&Object.keys(this.checklist.items).map((e=>({id:e,...this.checklist.items[e]})))||[]}get completed(){return this.items.filter((({checked:e})=>e))}get checkable(){const{isPro:e}=this.rootStore.optionStore.others;return this.items.filter((({needsPro:t})=>!t||e&&t))}get done(){var e;return this.completed.length>=this.checkable.length||!(null===(e=this.checklist)||void 0===e||!e.dismissed)}},i=(0,a.Z)(r.prototype,"busyChecklist",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,a.Z)(r.prototype,"checklist",[l.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,a.Z)(r.prototype,"items",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"items"),r.prototype),(0,a.Z)(r.prototype,"completed",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"completed"),r.prototype),(0,a.Z)(r.prototype,"checkable",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"checkable"),r.prototype),(0,a.Z)(r.prototype,"done",[l.computed],Object.getOwnPropertyDescriptor(r.prototype,"done"),r.prototype),r)},3721:(e,t,o)=>{o.d(t,{v:()=>O});var r,i,n,s,a,l,c,p,u,h,b,d=o(6921),y=o(9888),f=o(7821),m=o(8700),g=o(7669),v=o(8516),w=o(9560),k=o(6521),Z=o(8420),C=o(3612),R=o(97),P=o(6827),S=o(6213);let O=(r=class extends m.BaseOptions{constructor(e){super(),(0,d.Z)(this,"busyConsent",i,this),(0,d.Z)(this,"busyReferer",n,this),(0,d.Z)(this,"count",s,this),(0,d.Z)(this,"truncatedIpsCount",a,this),(0,d.Z)(this,"perPage",l,this),(0,d.Z)(this,"offset",c,this),(0,d.Z)(this,"pageCollection",p,this),(0,d.Z)(this,"revisions",u,this),(0,d.Z)(this,"revisionsIndependent",h,this),(0,d.Z)(this,"referer",b,this),this.filters=f.observable.object({page:1,dates:[void 0,void 0],context:void 0,referer:void 0,ip:void 0,uuid:void 0},{},{deep:!1}),this.rootStore=void 0,this.fetchAll=(0,f.flow)((function*(){this.busyConsent=!0;try{const{page:e,referer:t,ip:o,uuid:r,context:i}=this.filters,n=this.filters.dates.map((e=>e?e.format("YYYY-MM-DD"):"")),{count:s,truncatedIpsCount:a,items:l}=yield(0,g.W)({location:v.c,params:{per_page:this.perPage,offset:(e-1)*this.perPage,from:n[0],to:n[1],ip:o,uuid:r,referer:t,context:i}});this.count=s,this.truncatedIpsCount=a,this.pageCollection.clear();for(const e of l)this.pageCollection.set(e.id,new R.y(e,this))}catch(e){throw this.count=0,this.truncatedIpsCount=0,this.pageCollection.clear(),console.log(e),e}finally{this.busyConsent=!1}})),this.fetchRevision=(0,f.flow)((function*(e){try{const t=yield(0,g.W)({location:w.Z,params:e});this.revisions.set(e.hash,new P.k(t,this))}catch(e){throw console.log(e),e}})),this.fetchRevisionIndependent=(0,f.flow)((function*(e){try{const t=yield(0,g.W)({location:k.T,params:e});this.revisionsIndependent.set(e.hash,new S.I(t,this))}catch(e){throw console.log(e),e}})),this.fetchReferer=(0,f.flow)((function*(e){this.busyReferer=!0;try{const t=yield(0,g.W)({location:Z.q,params:e});this.referer=t.items}catch(e){throw console.log(e),e}finally{this.busyReferer=!1}})),this.deleteAll=(0,f.flow)((function*(){this.busyConsent=!0;try{yield(0,g.W)({location:C.O}),this.applyPage(0),yield this.fetchAll()}catch(e){throw console.log(e),e}finally{this.busyConsent=!1}})),this.rootStore=e,(0,f.runInAction)((()=>{this.filters.context=this.rootStore.optionStore.others.context}))}applyPage(e){this.filters.page=e}applyDates(e){this.filters.dates=e}applyContext(e){this.filters.context=e}applyReferer(e){this.filters.referer=e}applyIp(e){this.filters.ip=e}applyUuid(e){this.filters.uuid=e}},i=(0,y.Z)(r.prototype,"busyConsent",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,y.Z)(r.prototype,"busyReferer",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,y.Z)(r.prototype,"count",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),a=(0,y.Z)(r.prototype,"truncatedIpsCount",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),l=(0,y.Z)(r.prototype,"perPage",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 50}}),c=(0,y.Z)(r.prototype,"offset",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),p=(0,y.Z)(r.prototype,"pageCollection",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),u=(0,y.Z)(r.prototype,"revisions",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),h=(0,y.Z)(r.prototype,"revisionsIndependent",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),b=(0,y.Z)(r.prototype,"referer",[f.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),(0,y.Z)(r.prototype,"applyPage",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyPage"),r.prototype),(0,y.Z)(r.prototype,"applyDates",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyDates"),r.prototype),(0,y.Z)(r.prototype,"applyContext",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyContext"),r.prototype),(0,y.Z)(r.prototype,"applyReferer",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyReferer"),r.prototype),(0,y.Z)(r.prototype,"applyIp",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyIp"),r.prototype),(0,y.Z)(r.prototype,"applyUuid",[f.action],Object.getOwnPropertyDescriptor(r.prototype,"applyUuid"),r.prototype),r)},6649:(e,t,o)=>{o.d(t,{h:()=>R});var r,i,n,s,a,l,c,p,u,h,b=o(6921),d=o(9888),y=o(7821),f=o(6054),m=o(1355),g=o(8626),v=o(8578),w=o(3950),k=o(8213),Z=o(702),C=o(7669);let R=(r=class{get blockersCount(){return this.fetchedAllBlockers?this.blockers.entries.size:this.rootStore.optionStore.allBlockerCount}get cookiesCount(){return Array.from(this.groups.entries.values()).map((({cookiesCount:e})=>e)).reduce(((e,t)=>e+t),0)}constructor(e){(0,b.Z)(this,"busy",i,this),(0,b.Z)(this,"groups",n,this),(0,b.Z)(this,"unassignedCookies",s,this),(0,b.Z)(this,"blockers",a,this),(0,b.Z)(this,"presetsBlocker",l,this),(0,b.Z)(this,"busyPresetsBlocker",c,this),(0,b.Z)(this,"presetsCookie",p,this),(0,b.Z)(this,"busyPresetsCookie",u,this),(0,b.Z)(this,"fetchedAllBlockers",h,this),this.rootStore=void 0,this.fetchGroups=(0,y.flow)((function*(){yield this.groups.get({params:{per_page:100}}),yield this.fetchUnassignedCookies()})),this.fetchUnassignedCookies=(0,y.flow)((function*(){try{const e=yield(0,C.W)({location:w.p});for(const t of Object.values(e))this.unassignedCookies.set(t.id,t)}catch(e){throw console.log(e),e}})),this.fetchBlockers=(0,y.flow)((function*(){yield this.blockers.get({request:{status:["draft","publish","private"]},params:{per_page:100,context:"edit"}}),this.fetchedAllBlockers=!0})),this.fetchPresetsBlocker=(0,y.flow)((function*(){this.busyPresetsBlocker=!0;try{const{items:e}=yield(0,C.W)({location:k.W});for(const t of Object.keys(e))this.presetsBlocker.set(t,new f.w(e[t],this))}catch(e){throw console.log(e),e}finally{this.busyPresetsBlocker=!1}})),this.fetchPresetsCookie=(0,y.flow)((function*(){this.busyPresetsCookie=!0;try{const{items:e}=yield(0,C.W)({location:Z.z});for(const t of Object.keys(e))this.presetsCookie.set(t,new m.g(e[t],this))}catch(e){throw console.log(e),e}finally{this.busyPresetsCookie=!1}})),this.rootStore=e,(0,y.runInAction)((()=>{this.groups=new g.w(this),this.blockers=new v.R(this)}))}get essentialGroup(){if(0===this.groups.entries.size)return;const e=this.groups.entries.values();let t;for(;(t=e.next().value)&&t.data.slug!==this.rootStore.optionStore.others.essentialGroup;);return t}},i=(0,d.Z)(r.prototype,"busy",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,d.Z)(r.prototype,"groups",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=(0,d.Z)(r.prototype,"unassignedCookies",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),a=(0,d.Z)(r.prototype,"blockers",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,d.Z)(r.prototype,"presetsBlocker",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),c=(0,d.Z)(r.prototype,"busyPresetsBlocker",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),p=(0,d.Z)(r.prototype,"presetsCookie",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),u=(0,d.Z)(r.prototype,"busyPresetsCookie",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=(0,d.Z)(r.prototype,"fetchedAllBlockers",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),(0,d.Z)(r.prototype,"blockersCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"blockersCount"),r.prototype),(0,d.Z)(r.prototype,"cookiesCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"cookiesCount"),r.prototype),(0,d.Z)(r.prototype,"essentialGroup",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"essentialGroup"),r.prototype),r)},8943:(e,t,o)=>{o.d(t,{W:()=>m});var r,i,n,s,a,l,c,p=o(6921),u=o(9888),h=o(7821),b=o(8172),d=o(7669),y=o(6613),f=o(490);let m=(r=class{constructor(e){(0,p.Z)(this,"visible",i,this),(0,p.Z)(this,"animationVisible",n,this),(0,p.Z)(this,"individualPrivacyOpen",s,this),(0,p.Z)(this,"previewCheckboxActiveState",a,this),(0,p.Z)(this,"busyPresets",l,this),(0,p.Z)(this,"presets",c,this),this.rootStore=void 0,this.presetConstants=new Map,this.presetDefaults=new Map,this.debounceFromCustomize={},this.fetchPresets=(0,h.flow)((function*(){this.busyPresets=!0;try{const{defaults:e,constants:t,items:o}=yield(0,d.W)({location:b.t});for(const t of Object.keys(e))this.presetDefaults.set(t,e[t]);for(const e of Object.keys(t))this.presetConstants.set(e,t[e]);for(const e of Object.keys(o))this.presets.set(e,new y.p({id:e,...o[e]},this))}catch(e){throw console.log(e),e}finally{this.busyPresets=!1}})),this.rootStore=e}setBannerFromCustomize(e,t,o,r=!0){const{customizeValuesBanner:i}=this.rootStore.optionStore.others,n=t.toString();if(r&&["css","animationInDuration","animationOutDuration"].indexOf(n)>-1)clearTimeout(this.debounceFromCustomize[n]),this.debounceFromCustomize[n]=setTimeout((()=>this.setBannerFromCustomize(e,t,o,!1)),500);else{const r=i[e][t];i[e][t]=o,n.startsWith("animationOut")&&r!==o&&this.forceAnimationOutSimulation()}}setBannerFromPreset(e){for(const t of e){const[e,o,r]=t;this.rootStore.optionStore.others.customizeValuesBanner[e][o]=r}}forceAnimationOutSimulation(){const{customizeValuesBanner:e}=this.rootStore.optionStore.others;"none"!==e.layout.animationOut&&(this.animationVisible=!1,setTimeout((()=>(0,h.runInAction)((()=>{this.animationVisible=!0}))),+e.layout.animationOutDuration+1e3))}setVisible(e){this.visible=e}setIndividualPrivacyOpen(e){this.individualPrivacyOpen=e}setPreviewCheckboxActiveState(e){this.previewCheckboxActiveState=e}exportPhp(){const e={},t=(0,f.getSidebarCustomize)();return this.presetDefaults.forEach(((o,r)=>{let i=t(r).get();"boolean"==typeof o?i=!!+i:isNaN(i)||""===i||(i=+i),JSON.stringify(o)!==JSON.stringify(i)&&(e[this.presetConstants.get(r)]=i)})),this.jsonToPHPArray(e)}jsonToPHPArray(e){const t=JSON.stringify(e,null,4).split("\n");return t.shift(),t.pop(),t.join("\n").replace(/^(\s+)"([A-Za-z\\]+::[A-Z_]+)"(:)/gm,"$1$2 =>").replace(/^(\s+)([A-Za-z\\]+)::/gm,((e,t,o)=>"".concat(t).concat(o.replace(/\\\\/gm,"\\"),"::")))}},i=(0,u.Z)(r.prototype,"visible",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,u.Z)(r.prototype,"animationVisible",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),s=(0,u.Z)(r.prototype,"individualPrivacyOpen",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,u.Z)(r.prototype,"previewCheckboxActiveState",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l=(0,u.Z)(r.prototype,"busyPresets",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),c=(0,u.Z)(r.prototype,"presets",[h.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,u.Z)(r.prototype,"setBannerFromCustomize",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setBannerFromCustomize"),r.prototype),(0,u.Z)(r.prototype,"setBannerFromPreset",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setBannerFromPreset"),r.prototype),(0,u.Z)(r.prototype,"forceAnimationOutSimulation",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"forceAnimationOutSimulation"),r.prototype),(0,u.Z)(r.prototype,"setVisible",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setVisible"),r.prototype),(0,u.Z)(r.prototype,"setIndividualPrivacyOpen",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setIndividualPrivacyOpen"),r.prototype),(0,u.Z)(r.prototype,"setPreviewCheckboxActiveState",[h.action],Object.getOwnPropertyDescriptor(r.prototype,"setPreviewCheckboxActiveState"),r.prototype),r)},8919:(e,t,o)=>{o.d(t,{Cu:()=>u.C,L_:()=>c.L,My:()=>r.M,WS:()=>n.W,aZ:()=>i.a,et:()=>l.e,hc:()=>s.h,mZ:()=>r.m,v:()=>a.v,z:()=>p.z});var r=o(9743),i=o(2654),n=o(8943),s=o(6649),a=o(3721),l=o(6484),c=o(9171),p=o(2793),u=o(1637)},2654:(e,t,o)=>{o.d(t,{a:()=>fe});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m,g,v,w,k,Z,C,R,P,S,O,E,_,z,x,D,T,A,M,I,j,B,V,U,N,G,F,W,L,H,q,Q,Y,J,$,X,K,ee,te,oe=o(6921),re=o(9888),ie=o(7821),ne=o(8700),se=o(5391),ae=o(1211),le=o(4791),ce=o(1734),pe=o(4474),ue=o(9190),he=o(1515),be=o(648),de=o(7669),ye=o(6265);let fe=(r=class extends ne.BaseOptions{get isOnlyRcbCookieCreated(){return!(1!==this.allCookieCount||this.tcf&&this.allTcfVendorConfigurationCount)}get areSettingsFetched(){return void 0!==this.respectDoNotTrack}constructor(e){super(),(0,oe.Z)(this,"busySettings",i,this),(0,oe.Z)(this,"busyCountryBypassUpdate",n,this),(0,oe.Z)(this,"busyAddLinksToNavigationMenu",s,this),(0,oe.Z)(this,"needsRevisionRetrigger",a,this),(0,oe.Z)(this,"publicCookieCount",l,this),(0,oe.Z)(this,"allCookieCount",c,this),(0,oe.Z)(this,"allBlockerCount",p,this),(0,oe.Z)(this,"allTcfVendorConfigurationCount",u,this),(0,oe.Z)(this,"allScannerResultPresetsCount",h,this),(0,oe.Z)(this,"allScannerResultExternalUrlsCount",b,this),(0,oe.Z)(this,"cookieCounts",d,this),(0,oe.Z)(this,"nav_menus",y,this),(0,oe.Z)(this,"tcfVendorConfigurationCounts",f,this),(0,oe.Z)(this,"hasManager",m,this),(0,oe.Z)(this,"contexts",g,this),(0,oe.Z)(this,"dashboardMigration",v,this),(0,oe.Z)(this,"fomoCoupon",w,this),(0,oe.Z)(this,"bannerActive",k,this),(0,oe.Z)(this,"blockerActive",Z,this),(0,oe.Z)(this,"imprintId",C,this),(0,oe.Z)(this,"imprintExternalUrl",R,this),(0,oe.Z)(this,"imprintIsExternalUrl",P,this),(0,oe.Z)(this,"privacyPolicyId",S,this),(0,oe.Z)(this,"privacyPolicyExternalUrl",O,this),(0,oe.Z)(this,"privacyPolicyIsExternalUrl",E,this),(0,oe.Z)(this,"hidePageIds",_,this),(0,oe.Z)(this,"setCookiesViaManager",z,this),(0,oe.Z)(this,"acceptAllForBots",x,this),(0,oe.Z)(this,"respectDoNotTrack",D,this),(0,oe.Z)(this,"cookieDuration",T,this),(0,oe.Z)(this,"saveIp",A,this),(0,oe.Z)(this,"ePrivacyUSA",M,this),(0,oe.Z)(this,"ageNotice",I,this),(0,oe.Z)(this,"listServicesNotice",j,this),(0,oe.Z)(this,"consentForwarding",B,this),(0,oe.Z)(this,"forwardTo",V,this),(0,oe.Z)(this,"crossDomains",U,this),(0,oe.Z)(this,"affiliateLink",N,this),(0,oe.Z)(this,"affiliateLabelBehind",G,this),(0,oe.Z)(this,"affiliateLabelDescription",F,this),(0,oe.Z)(this,"countryBypass",W,this),(0,oe.Z)(this,"countryBypassCountries",L,this),(0,oe.Z)(this,"countryBypassType",H,this),(0,oe.Z)(this,"countryBypassDbDownloadTime",q,this),(0,oe.Z)(this,"tcf",Q,this),(0,oe.Z)(this,"tcfPublisherCc",Y,this),(0,oe.Z)(this,"tcfAcceptedTime",J,this),(0,oe.Z)(this,"tcfGvlDownloadTime",$,this),(0,oe.Z)(this,"tcfScopeOfConsent",X,this),(0,oe.Z)(this,"consentDuration",K,this),(0,oe.Z)(this,"consentsDeletedAt",ee,this),(0,oe.Z)(this,"others",te,this),this.pureSlug=void 0,this.pureSlugCamelCased=void 0,this.rootStore=void 0,this.fetchSettings=(0,ie.flow)((function*(e){this.busySettings=!0;try{const t=e||(yield(0,de.W)({location:se.g}));this.bannerActive=t["rcb-banner-active"],this.blockerActive=t["rcb-blocker-active"],this.imprintId=t["rcb-banner-legal-imprint"],this.imprintExternalUrl=t["rcb-banner-legal-imprint-external-url"],this.imprintIsExternalUrl=t["rcb-banner-legal-imprint-is-external-url"],this.privacyPolicyId=t["rcb-banner-legal-privacy-policy"],this.privacyPolicyExternalUrl=t["rcb-banner-legal-privacy-policy-external-url"],this.privacyPolicyIsExternalUrl=t["rcb-banner-legal-privacy-policy-is-external-url"],this.hidePageIds=(t["rcb-hide-page-ids"]||"").split(",").map(Number).filter(Boolean),this.setCookiesViaManager=t["rcb-set-cookies-via-manager"]||"none",this.acceptAllForBots=t["rcb-accept-all-for-bots"],this.respectDoNotTrack=t["rcb-respect-do-not-track"],this.cookieDuration=t["rcb-cookie-duration"],this.saveIp=t["rcb-save-ip"],this.ePrivacyUSA=t["rcb-eprivacy-usa"],this.ageNotice=t["rcb-age-notice"],this.listServicesNotice=t["rcb-list-services-notice"],this.consentForwarding=t["rcb-consent-forwarding"]||!1,this.forwardTo=(t["rcb-forward-to"]||"").split("|").filter(Boolean),this.crossDomains=t["rcb-cross-domains"]||"",this.countryBypass=t["rcb-country-bypass"],this.countryBypassCountries=(t["rcb-country-bypass-countries"]||"").split(",").filter(Boolean),this.countryBypassType=t["rcb-country-bypass-type"],this.countryBypassDbDownloadTime=t["rcb-country-bypass-db-download-time"],this.tcf=t["rcb-tcf"],this.tcfPublisherCc=t["rcb-tcf-publisher-cc"],this.tcfAcceptedTime=t["rcb-tcf-accepted-time"],this.tcfGvlDownloadTime=t["rcb-tcf-gvl-download-time"],this.tcfScopeOfConsent=t["rcb-tcf-scope-of-consent"],this.consentDuration=t["rcb-consent-duration"],yield this.fetchCurrentRevision()}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.updateSettings=(0,ie.flow)((function*({bannerActive:e,blockerActive:t,imprintId:o,privacyPolicyId:r,hidePageIds:i,setCookiesViaManager:n,acceptAllForBots:s,respectDoNotTrack:a,cookieDuration:l,saveIp:c,ePrivacyUSA:p,ageNotice:u,listServicesNotice:h,consentForwarding:b,forwardTo:d,crossDomains:y,affiliateLink:f,affiliateLabelBehind:m,affiliateLabelDescription:g,countryBypass:v,countryBypassCountries:w,countryBypassType:k,tcf:Z,tcfPublisherCc:C,tcfScopeOfConsent:R,consentDuration:P}){this.busySettings=!0;try{const f=yield(0,de.W)({location:ae.J,request:{...void 0===e?{}:{"rcb-banner-active":e},...void 0===t?{}:{"rcb-blocker-active":t},...void 0===o?{}:{"rcb-banner-legal-imprint":o},...void 0===r?{}:{"rcb-banner-legal-privacy-policy":r},...void 0===i?{}:{"rcb-hide-page-ids":i.join(",")},...void 0===n?{}:{"rcb-set-cookies-via-manager":n},...void 0===s?{}:{"rcb-accept-all-for-bots":s},...void 0===a?{}:{"rcb-respect-do-not-track":a},...void 0===l?{}:{"rcb-cookie-duration":l},...void 0===c?{}:{"rcb-save-ip":c},...void 0===p?{}:{"rcb-eprivacy-usa":p},...void 0===u?{}:{"rcb-age-notice":u},...void 0===h?{}:{"rcb-list-services-notice":h},...void 0===b?{}:{"rcb-consent-forwarding":b},...void 0===d?{}:{"rcb-forward-to":d.join("|")},...void 0===y?{}:{"rcb-cross-domains":y},...void 0===v?{}:{"rcb-country-bypass":v},...void 0===w?{}:{"rcb-country-bypass-countries":w.join(",")},...void 0===k?{}:{"rcb-country-bypass-type":k},...void 0===Z?{}:{"rcb-tcf":Z},...void 0===C?{}:{"rcb-tcf-publisher-cc":C},...void 0===R?{}:{"rcb-tcf-scope-of-consent":R},...void 0===P?{}:{"rcb-consent-duration":P}}});this.fetchSettings(f),this.rootStore.checklistStore.probablyFetchByChangedItem(["save-settings","activate-banner","privacy-policy"])}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.fetchCurrentRevision=(0,ie.flow)((function*(){this.busySettings=!0;try{this.setFromCurrentRevision(yield(0,de.W)({location:le.G}))}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.updateCurrentRevision=(0,ie.flow)((function*(e){this.busySettings=!0;try{this.setFromCurrentRevision(yield(0,de.W)({location:ce.a,request:e}))}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.setModalHintSeen=(0,ie.flow)((function*(e){this.busySettings=!0;try{this.others.modalHints.push(e),yield(0,de.W)({location:ye.C,request:{identifier:e}})}catch(e){throw console.log(e),e}finally{this.busySettings=!1}})),this.dismissConfigProNotice=(0,ie.flow)((function*(){try{this.others.isConfigProNoticeVisible=!1,yield(0,de.W)({location:pe.n})}catch(e){throw console.log(e),e}})),this.dismissMigration=(0,ie.flow)((function*(){try{const{id:e}=this.dashboardMigration;this.dashboardMigration=void 0,yield(0,de.W)({location:ue.o,params:{migration:e}})}catch(e){throw console.log(e),e}})),this.addLinksToNavigationMenu=(0,ie.flow)((function*(e){this.busyAddLinksToNavigationMenu=!0;try{const{success:t}=yield(0,de.W)({location:he.i,request:{id:e}});return t&&(this.rootStore.checklistStore.fetchChecklist(),yield this.fetchCurrentRevision()),t}catch(e){throw console.log(e),e}finally{this.busyAddLinksToNavigationMenu=!1}})),this.updateCountryBypassDatabase=(0,ie.flow)((function*(){this.busyCountryBypassUpdate=!0;try{const{dbDownloadTime:e}=yield(0,de.W)({location:be._});this.countryBypassDbDownloadTime=e}catch(e){throw console.log(e),e}finally{this.busyCountryBypassUpdate=!1}})),this.rootStore=e,this.pureSlug=ne.BaseOptions.getPureSlug("real-cookie-banner"),this.pureSlugCamelCased=ne.BaseOptions.getPureSlug("real-cookie-banner",!0),(0,ie.runInAction)((()=>Object.assign(this,window[this.pureSlugCamelCased])))}setFromCurrentRevision({contexts:e,has_manager:t,needs_retrigger:o,public_cookie_count:r,all_cookie_count:i,all_blocker_count:n,all_tcf_vendor_configuration_count:s,all_scanner_result_presets_count:a,all_scanner_result_external_urls_count:l,cookie_counts:c,consents_deleted_at:p,nav_menus:u,tcf_vendor_configuration_counts:h,dashboard_migration:b,fomo_coupon:d}){this.hasManager=t,this.needsRevisionRetrigger=o,this.publicCookieCount=r,this.allCookieCount=i,this.allBlockerCount=n,this.allTcfVendorConfigurationCount=s,this.allScannerResultPresetsCount=a,this.allScannerResultExternalUrlsCount=l,this.cookieCounts=c,this.consentsDeletedAt=p,this.nav_menus=u,this.tcfVendorConfigurationCounts=h,this.contexts=e,this.dashboardMigration=b,this.fomoCoupon=d}setShowLicenseFormImmediate(e,t){this.others.showLicenseFormImmediate=e,this.others.isLicensed=t}},i=(0,re.Z)(r.prototype,"busySettings",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,re.Z)(r.prototype,"busyCountryBypassUpdate",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,re.Z)(r.prototype,"busyAddLinksToNavigationMenu",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,re.Z)(r.prototype,"needsRevisionRetrigger",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l=(0,re.Z)(r.prototype,"publicCookieCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),c=(0,re.Z)(r.prototype,"allCookieCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),p=(0,re.Z)(r.prototype,"allBlockerCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),u=(0,re.Z)(r.prototype,"allTcfVendorConfigurationCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),h=(0,re.Z)(r.prototype,"allScannerResultPresetsCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),b=(0,re.Z)(r.prototype,"allScannerResultExternalUrlsCount",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),d=(0,re.Z)(r.prototype,"cookieCounts",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{draft:0,private:0,publish:0}}}),y=(0,re.Z)(r.prototype,"nav_menus",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),f=(0,re.Z)(r.prototype,"tcfVendorConfigurationCounts",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=(0,re.Z)(r.prototype,"hasManager",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),g=(0,re.Z)(r.prototype,"contexts",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{"":""}}}),v=(0,re.Z)(r.prototype,"dashboardMigration",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=(0,re.Z)(r.prototype,"fomoCoupon",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=(0,re.Z)(r.prototype,"bannerActive",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Z=(0,re.Z)(r.prototype,"blockerActive",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),C=(0,re.Z)(r.prototype,"imprintId",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=(0,re.Z)(r.prototype,"imprintExternalUrl",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=(0,re.Z)(r.prototype,"imprintIsExternalUrl",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=(0,re.Z)(r.prototype,"privacyPolicyId",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=(0,re.Z)(r.prototype,"privacyPolicyExternalUrl",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=(0,re.Z)(r.prototype,"privacyPolicyIsExternalUrl",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=(0,re.Z)(r.prototype,"hidePageIds",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=(0,re.Z)(r.prototype,"setCookiesViaManager",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=(0,re.Z)(r.prototype,"acceptAllForBots",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=(0,re.Z)(r.prototype,"respectDoNotTrack",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=(0,re.Z)(r.prototype,"cookieDuration",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=(0,re.Z)(r.prototype,"saveIp",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=(0,re.Z)(r.prototype,"ePrivacyUSA",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=(0,re.Z)(r.prototype,"ageNotice",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=(0,re.Z)(r.prototype,"listServicesNotice",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=(0,re.Z)(r.prototype,"consentForwarding",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=(0,re.Z)(r.prototype,"forwardTo",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=(0,re.Z)(r.prototype,"crossDomains",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=(0,re.Z)(r.prototype,"affiliateLink",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=(0,re.Z)(r.prototype,"affiliateLabelBehind",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=(0,re.Z)(r.prototype,"affiliateLabelDescription",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=(0,re.Z)(r.prototype,"countryBypass",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=(0,re.Z)(r.prototype,"countryBypassCountries",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=(0,re.Z)(r.prototype,"countryBypassType",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=(0,re.Z)(r.prototype,"countryBypassDbDownloadTime",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=(0,re.Z)(r.prototype,"tcf",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=(0,re.Z)(r.prototype,"tcfPublisherCc",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=(0,re.Z)(r.prototype,"tcfAcceptedTime",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=(0,re.Z)(r.prototype,"tcfGvlDownloadTime",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=(0,re.Z)(r.prototype,"tcfScopeOfConsent",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=(0,re.Z)(r.prototype,"consentDuration",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=(0,re.Z)(r.prototype,"consentsDeletedAt",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=(0,re.Z)(r.prototype,"others",[ie.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),(0,re.Z)(r.prototype,"isOnlyRcbCookieCreated",[ie.computed],Object.getOwnPropertyDescriptor(r.prototype,"isOnlyRcbCookieCreated"),r.prototype),(0,re.Z)(r.prototype,"areSettingsFetched",[ie.computed],Object.getOwnPropertyDescriptor(r.prototype,"areSettingsFetched"),r.prototype),(0,re.Z)(r.prototype,"setFromCurrentRevision",[ie.action],Object.getOwnPropertyDescriptor(r.prototype,"setFromCurrentRevision"),r.prototype),(0,re.Z)(r.prototype,"setShowLicenseFormImmediate",[ie.action],Object.getOwnPropertyDescriptor(r.prototype,"setShowLicenseFormImmediate"),r.prototype),r)},1637:(e,t,o)=>{o.d(t,{C:()=>P});var r,i,n,s,a,l,c,p,u,h,b=o(6921),d=o(9888),y=o(7821),f=o(1339),m=o(3792),g=o(8318),v=o(7669),w=o(2115),k=o(9601),Z=o(5593),C=o(6372),R=o(7244);let P=(r=class{get sortedExternalUrls(){const e=Array.from(this.resultExternalUrls.values());return e.sort(((e,t)=>e.inactive===t.inactive?0:e.inactive?1:-1)),e}get presetsCount(){return this.fetchedAllResultPresets?this.resultPresets.size:this.rootStore.optionStore.allScannerResultPresetsCount}get externalUrlsCount(){return this.fetchedAllResultExternalUrls?this.resultExternalUrls.size:this.rootStore.optionStore.allScannerResultExternalUrlsCount}get canShowResults(){var e;return this.presetsCount+this.externalUrlsCount>0&&(null===(e=this.rootStore.checklistStore.checklist)||void 0===e?void 0:e.items.scanner.checked)}get foundScanResultsCount(){return this.resultPresets.size+this.resultExternalUrls.size}get needsAttentionCount(){return[...this.resultPresets.values(),...this.resultExternalUrls.values()].filter((({inactive:e})=>!e)).length}constructor(e){(0,b.Z)(this,"resultPresets",i,this),(0,b.Z)(this,"busyResultPresets",n,this),(0,b.Z)(this,"fetchedAllResultPresets",s,this),(0,b.Z)(this,"resultExternalUrls",a,this),(0,b.Z)(this,"resultAllExternalUrls",l,this),(0,b.Z)(this,"busyExternalUrls",c,this),(0,b.Z)(this,"fetchedAllResultExternalUrls",p,this),(0,b.Z)(this,"busyMarkup",u,this),(0,b.Z)(this,"resultMarkup",h,this),this.rootStore=void 0,this.addUrlsToQueue=(0,y.flow)((function*(e){return yield(0,v.W)({location:w.k,request:e})})),this.fetchResultPresets=(0,y.flow)((function*(){this.busyResultPresets=!0;try{this.resultPresetsFromResponse(yield(0,v.W)({location:k.e})),this.fetchedAllResultPresets=!0}catch(e){throw console.log(e),e}finally{this.busyResultPresets=!1}})),this.fetchResultExternals=(0,y.flow)((function*(){this.busyExternalUrls=!0;try{this.resultExternalUrlsFromResponse(yield(0,v.W)({location:Z.M})),this.fetchedAllResultExternalUrls=!0}catch(e){throw console.log(e),e}finally{this.busyExternalUrls=!1}})),this.fetchResultAllExternals=(0,y.flow)((function*(e){const t=e instanceof f.o?"host":"preset",{identifier:o}=e;e.busy=!0;try{const{items:r}=yield(0,v.W)({location:C.M,params:{type:t,identifier:"host"===t?o.replace(/\./g,"_"):o}});let i=this.resultAllExternalUrls.get(o);if(i){const e=r.map((({id:e})=>e));for(const t of i.keys())-1===e.indexOf(t)&&i.delete(t)}else i=new Map;for(const e of Object.values(r))i.set(e.id,new m.a(e,this)),this.resultAllExternalUrls.set(o,i)}catch(e){throw console.log(e),e}finally{e.busy=!1}})),this.fetchMarkup=(0,y.flow)((function*(e){this.busyMarkup=!0;try{const t=yield(0,v.W)({location:R.$,params:{id:e}});this.resultMarkup.set(e,t)}catch(e){throw console.log(e),e}finally{this.busyMarkup=!1}})),this.rootStore=e}resultPresetsFromResponse({items:e}){const t=Object.keys(e);for(const e of this.resultPresets.keys())-1===t.indexOf(e)&&this.resultPresets.delete(e);for(const o of t)this.resultPresets.set(o,new g.g(e[o],this))}resultExternalUrlsFromResponse({items:e}){const t=Object.keys(e);for(const e of this.resultExternalUrls.keys())-1===t.indexOf(e)&&this.resultExternalUrls.delete(e);for(const o of t)this.resultExternalUrls.set(o,new f.o(e[o],this))}},i=(0,d.Z)(r.prototype,"resultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),n=(0,d.Z)(r.prototype,"busyResultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,d.Z)(r.prototype,"fetchedAllResultPresets",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,d.Z)(r.prototype,"resultExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),l=(0,d.Z)(r.prototype,"resultAllExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),c=(0,d.Z)(r.prototype,"busyExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),p=(0,d.Z)(r.prototype,"fetchedAllResultExternalUrls",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),u=(0,d.Z)(r.prototype,"busyMarkup",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=(0,d.Z)(r.prototype,"resultMarkup",[y.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,d.Z)(r.prototype,"sortedExternalUrls",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"sortedExternalUrls"),r.prototype),(0,d.Z)(r.prototype,"presetsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"presetsCount"),r.prototype),(0,d.Z)(r.prototype,"externalUrlsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"externalUrlsCount"),r.prototype),(0,d.Z)(r.prototype,"canShowResults",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"canShowResults"),r.prototype),(0,d.Z)(r.prototype,"foundScanResultsCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"foundScanResultsCount"),r.prototype),(0,d.Z)(r.prototype,"needsAttentionCount",[y.computed],Object.getOwnPropertyDescriptor(r.prototype,"needsAttentionCount"),r.prototype),(0,d.Z)(r.prototype,"resultPresetsFromResponse",[y.action],Object.getOwnPropertyDescriptor(r.prototype,"resultPresetsFromResponse"),r.prototype),(0,d.Z)(r.prototype,"resultExternalUrlsFromResponse",[y.action],Object.getOwnPropertyDescriptor(r.prototype,"resultExternalUrlsFromResponse"),r.prototype),r)},6484:(e,t,o)=>{o.d(t,{e:()=>u});var r,i,n=o(6921),s=o(9888),a=o(7821),l=o(8700),c=o(8488),p=o.n(c);let u=(r=class extends l.BaseOptions{constructor(e){super(),(0,n.Z)(this,"busyStats",i,this),this.rootStore=void 0,this.stats=a.observable.object({main:void 0,buttonsClicked:void 0,customBypass:void 0},{},{deep:!1}),this.filters=a.observable.object({dates:void 0,context:void 0},{},{deep:!1}),this.fetchMain=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.fetchButtonsClicked=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.fetchCustomBypass=(0,a.flow)((function*(){throw new Error("This feature is not available in the free version.")})),this.rootStore=e,(0,a.runInAction)((()=>{this.filters.dates=[p()().subtract(30,"days"),p()()],this.filters.context=this.rootStore.optionStore.others.context}))}applyDates(e){this.filters.dates=e}applyContext(e){this.filters.context=e}},i=(0,s.Z)(r.prototype,"busyStats",[a.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{main:!1,buttonClicked:!1,customBypass:!1}}}),(0,s.Z)(r.prototype,"applyDates",[a.action],Object.getOwnPropertyDescriptor(r.prototype,"applyDates"),r.prototype),(0,s.Z)(r.prototype,"applyContext",[a.action],Object.getOwnPropertyDescriptor(r.prototype,"applyContext"),r.prototype),r)},9743:(e,t,o)=>{o.d(t,{M:()=>b,m:()=>d});var r=o(7821),i=o(8700),n=o(2654),s=o(8943),a=o(6649),l=o(3721),c=o(6484),p=o(9171),u=o(2793),h=o(1637);(0,r.configure)({enforceActions:"always"});class b{get context(){return this.contextMemo?this.contextMemo:this.contextMemo=(0,i.createContextFactory)(this)}constructor(){this.optionStore=void 0,this.customizeBannerStore=void 0,this.cookieStore=void 0,this.consentStore=void 0,this.statsStore=void 0,this.checklistStore=void 0,this.tcfStore=void 0,this.scannerStore=void 0,this.contextMemo=void 0,this.optionStore=new n.a(this),this.customizeBannerStore=new s.W(this),this.cookieStore=new a.h(this),this.consentStore=new l.v(this),this.statsStore=new c.e(this),this.checklistStore=new p.L(this),this.tcfStore=new u.z(this),this.scannerStore=new h.C(this)}static get StoreProvider(){return b.get.context.StoreProvider}static get get(){return b.me?b.me:b.me=new b}}b.me=void 0;const d=()=>b.get.context.useStores()},2793:(e,t,o)=>{o.d(t,{z:()=>_});var r,i,n,s,a,l,c,p,u,h,b,d,y,f,m=o(6921),g=o(9888),v=o(7821),w=o(8700),k=o(515),Z=o(4747),C=o(1039),R=o(7669),P=o(2515),S=o(8272),O=o(1112),E=o(303);let _=(r=class extends w.BaseOptions{get vendorConfigurationCount(){return this.fetchedAllVendorConfigurations?this.vendorConfigurations.entries.size:this.rootStore.optionStore.allTcfVendorConfigurationCount}constructor(e){super(),(0,m.Z)(this,"busyGvl",i,this),(0,m.Z)(this,"busyVendors",n,this),(0,m.Z)(this,"busyDeclarations",s,this),(0,m.Z)(this,"vendorConfigurations",a,this),(0,m.Z)(this,"fetchedAllVendorConfigurations",l,this),(0,m.Z)(this,"vendorListVersion",c,this),(0,m.Z)(this,"gvlSpecificationVersion",p,this),(0,m.Z)(this,"tcfPolicyVersion",u,this),(0,m.Z)(this,"vendors",h,this),(0,m.Z)(this,"purposes",b,this),(0,m.Z)(this,"specialPurposes",d,this),(0,m.Z)(this,"features",y,this),(0,m.Z)(this,"specialFeatures",f,this),this.rootStore=void 0,this.fetchVendorConfigurations=(0,v.flow)((function*(){const e=Math.ceil(this.vendorConfigurationCount/100);for(let t=0;t<e;t++)yield this.vendorConfigurations.get({request:{status:["draft","publish","private"]},params:{offset:100*t,per_page:100,context:"edit"}});this.fetchedAllVendorConfigurations=!0})),this.fetchVendors=(0,v.flow)((function*(){this.busyVendors=!0;try{const{vendorListVersion:e,vendors:t}=yield(0,R.W)({location:Z.f});for(const e of Object.keys(t))this.vendors.set(e,new P.C(t[e],this));this.vendorListVersion=e}catch(e){throw console.log(e),e}finally{this.busyVendors=!1}})),this.fetchDeclarations=(0,v.flow)((function*(){this.busyDeclarations=!0;try{const{gvlSpecificationVersion:e,tcfPolicyVersion:t,purposes:o,specialPurposes:r,features:i,specialFeatures:n}=yield(0,R.W)({location:k.Y});for(const e of Object.keys(o))this.purposes.set(e,new S.v(o[e],!1,this));for(const e of Object.keys(r))this.specialPurposes.set(e,new S.v(r[e],!0,this));for(const e of Object.keys(i))this.features.set(e,new O.i(i[e],!1,this));for(const e of Object.keys(n))this.specialFeatures.set(e,new O.i(n[e],!0,this));this.gvlSpecificationVersion=e,this.tcfPolicyVersion=t}catch(e){throw console.log(e),e}finally{this.busyDeclarations=!1}})),this.updateGvl=(0,v.flow)((function*(){this.busyGvl=!0;try{const{gvlDownloadTime:e}=yield(0,R.W)({location:C.y});this.rootStore.optionStore.tcfGvlDownloadTime=e}catch(e){throw console.log(e),e}finally{this.busyGvl=!1}})),this.rootStore=e,(0,v.runInAction)((()=>{this.vendorConfigurations=new E.C(this)}))}},i=(0,g.Z)(r.prototype,"busyGvl",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),n=(0,g.Z)(r.prototype,"busyVendors",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),s=(0,g.Z)(r.prototype,"busyDeclarations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),a=(0,g.Z)(r.prototype,"vendorConfigurations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=(0,g.Z)(r.prototype,"fetchedAllVendorConfigurations",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),c=(0,g.Z)(r.prototype,"vendorListVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=(0,g.Z)(r.prototype,"gvlSpecificationVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=(0,g.Z)(r.prototype,"tcfPolicyVersion",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=(0,g.Z)(r.prototype,"vendors",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),b=(0,g.Z)(r.prototype,"purposes",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),d=(0,g.Z)(r.prototype,"specialPurposes",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),y=(0,g.Z)(r.prototype,"features",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),f=(0,g.Z)(r.prototype,"specialFeatures",[v.observable],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Map}}),(0,g.Z)(r.prototype,"vendorConfigurationCount",[v.computed],Object.getOwnPropertyDescriptor(r.prototype,"vendorConfigurationCount"),r.prototype),r)},2208:(e,t,o)=>{o.d(t,{b:()=>i,u:()=>r});const r="rcb-scan",i="rcb-automatic-scan-starter"},1589:(e,t,o)=>{function r(e){const t=document.createElement("textarea");t.innerText=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),t.remove()}o.d(t,{v:()=>r})},1048:(e,t,o)=>{function r(){return window["real-cookie-banner".replace(/-([a-z])/g,(e=>e[1].toUpperCase()))]}o.d(t,{m:()=>r})},9712:(e,t,o)=>{o.d(t,{u:()=>i});var r=o(1048);function i(){return(0,r.m)().others}},5217:(e,t,o)=>{o.d(t,{__:()=>l,_i:()=>c,_n:()=>s,_x:()=>a});var r=o(8700);let i;function n(){return i||(i=(0,r.createLocalizationFactory)(r.BaseOptions.getPureSlug("real-cookie-banner")))}const s=(...e)=>n()._n(...e),a=(...e)=>n()._x(...e),l=(...e)=>n().__(...e),c=(...e)=>n()._i(...e)},7669:(e,t,o)=>{o.d(t,{W:()=>a,Y:()=>s});var r=o(8700);let i;function n(){return i||(i=(0,r.createRequestFactory)(window[r.BaseOptions.getPureSlug("real-cookie-banner",!0)]))}const s=(...e)=>n().urlBuilder(...e),a=(...e)=>n().request(...e)},1712:(e,t,o)=>{function r(e=0){document.body.scrollTop=e,document.documentElement.scrollTop=e}o.d(t,{X:()=>r})},8503:(e,t,o)=>{function r(e,t=50,o="..."){if(!e||e.length<=t)return e;const r=t-o.length,i=Math.ceil(r/2),n=Math.floor(r/2);return e.substr(0,i)+o+e.substr(e.length-n)}o.d(t,{r:()=>r})},2377:(e,t,o)=>{o.d(t,{g:()=>r});const r={path:"/checklist",method:o(8700).RouteHttpVerb.GET}},5654:(e,t,o)=>{o.d(t,{s:()=>r});const r={path:"/checklist/:id",method:o(8700).RouteHttpVerb.PUT}},3612:(e,t,o)=>{o.d(t,{O:()=>r});const r={path:"/consent/all",method:o(8700).RouteHttpVerb.DELETE}},8516:(e,t,o)=>{o.d(t,{c:()=>r});const r={path:"/consent/all",method:o(8700).RouteHttpVerb.GET}},8420:(e,t,o)=>{o.d(t,{q:()=>r});const r={path:"/consent/referer",method:o(8700).RouteHttpVerb.GET}},8067:(e,t,o)=>{o.d(t,{B:()=>r});const r={path:"/cookie-groups/order",method:o(8700).RouteHttpVerb.PUT}},3950:(e,t,o)=>{o.d(t,{p:()=>r});const r={path:"/cookies/unassigned",method:o(8700).RouteHttpVerb.GET}},8903:(e,t,o)=>{o.d(t,{I:()=>r});const r={path:"/cookies/order",method:o(8700).RouteHttpVerb.PUT}},648:(e,t,o)=>{o.d(t,{_:()=>r});const r={path:"/country-bypass/database",method:o(8700).RouteHttpVerb.PUT}},534:(e,t,o)=>{o.d(t,{V:()=>r});const r={path:"/export",method:o(8700).RouteHttpVerb.GET}},9338:(e,t,o)=>{o.d(t,{Q:()=>r});const r={path:"/export/consents",method:o(8700).RouteHttpVerb.GET}},4161:(e,t,o)=>{o.d(t,{V:()=>r});const r={path:"/forward/cookie/:slug",method:o(8700).RouteHttpVerb.GET}},1079:(e,t,o)=>{o.d(t,{A:()=>r});const r={path:"/forward/endpoints",method:o(8700).RouteHttpVerb.GET}},4018:(e,t,o)=>{o.d(t,{H:()=>r});const r={path:"/import",method:o(8700).RouteHttpVerb.POST}},6568:(e,t,o)=>{o.d(t,{gn:()=>R.g,s5:()=>P.s,Ok:()=>f.O,cI:()=>y.c,rz:()=>Z,aY:()=>B,vY:()=>E,JQ:()=>h,PM:()=>u,qD:()=>Q.q,BI:()=>l.B,pV:()=>S.p,It:()=>c.I,_3:()=>V._,QB:()=>C.Q,Vm:()=>w.V,Vc:()=>_.V,AW:()=>O.A,HR:()=>k.H,nQ:()=>z.n,oW:()=>N.o,nX:()=>U.n,iO:()=>Y.i,tX:()=>n.t,N9:()=>T.N,Wu:()=>s.W,tw:()=>A.t,zf:()=>a.z,GQ:()=>b.G,a4:()=>d.a,Z1:()=>x.Z,TB:()=>D.T,kv:()=>G.k,ME:()=>H.M,Ce:()=>L.C,MQ:()=>W.M,$5:()=>q.$,eO:()=>F.e,$Q:()=>v,gh:()=>g,BV:()=>m,Y3:()=>j.Y,yR:()=>M.y,fs:()=>I.f,g3:()=>r.g,J3:()=>i.J});var r=o(5391),i=o(1211),n=o(8172),s=o(8213),a=o(702),l=o(8067),c=o(8903),p=o(8700);const u={path:"/consent",method:p.RouteHttpVerb.POST},h={path:"/consent",method:p.RouteHttpVerb.GET};var b=o(4791),d=o(1734),y=o(8516),f=o(3612);const m={path:"/stats/main",method:p.RouteHttpVerb.GET},g={path:"/stats/customBypass",method:p.RouteHttpVerb.GET},v={path:"/stats/buttonsClicked",method:p.RouteHttpVerb.GET};var w=o(534),k=o(4018);const Z={path:"/consent/clear",method:p.RouteHttpVerb.DELETE};var C=o(9338),R=o(2377),P=o(5654),S=o(3950),O=o(1079);const E={path:"/consent/forward",method:p.RouteHttpVerb.POST};var _=o(4161),z=o(4474),x=o(9560),D=o(6521),T=o(6406),A=o(6364),M=o(1039),I=o(4747),j=o(515);const B={path:"/consent/dynamic-predecision",method:p.RouteHttpVerb.POST};var V=o(648),U=o(4358),N=o(9190),G=o(2115),F=o(9601),W=o(5593),L=o(3943),H=o(6372),q=o(7244),Q=o(8420),Y=o(1515)},4474:(e,t,o)=>{o.d(t,{n:()=>r});const r={path:"/dismiss-config-page-pro-notice",method:o(8700).RouteHttpVerb.DELETE}},9190:(e,t,o)=>{o.d(t,{o:()=>r});const r={path:"/migration/:migration",method:o(8700).RouteHttpVerb.DELETE}},4358:(e,t,o)=>{o.d(t,{n:()=>r});const r={path:"/migration/:migration/:action",method:o(8700).RouteHttpVerb.POST}},6265:(e,t,o)=>{o.d(t,{C:()=>r});const r={path:"/modal-hint",method:o(8700).RouteHttpVerb.PUT}},1515:(e,t,o)=>{o.d(t,{i:()=>r});const r={path:"/nav-menu/add-links",method:o(8700).RouteHttpVerb.POST}},8172:(e,t,o)=>{o.d(t,{t:()=>r});const r={path:"/presets/banner",method:o(8700).RouteHttpVerb.GET}},8213:(e,t,o)=>{o.d(t,{W:()=>r});const r={path:"/presets/blocker",method:o(8700).RouteHttpVerb.GET}},6406:(e,t,o)=>{o.d(t,{N:()=>r});const r={path:"/presets/blocker/:identifier",method:o(8700).RouteHttpVerb.GET}},702:(e,t,o)=>{o.d(t,{z:()=>r});const r={path:"/presets/cookies",method:o(8700).RouteHttpVerb.GET}},6364:(e,t,o)=>{o.d(t,{t:()=>r});const r={path:"/presets/cookies/:identifier",method:o(8700).RouteHttpVerb.GET}},9560:(e,t,o)=>{o.d(t,{Z:()=>r});const r={path:"/revision/:hash",method:o(8700).RouteHttpVerb.GET}},4791:(e,t,o)=>{o.d(t,{G:()=>r});const r={path:"/revision/current",method:o(8700).RouteHttpVerb.GET}},1734:(e,t,o)=>{o.d(t,{a:()=>r});const r={path:"/revision/current",method:o(8700).RouteHttpVerb.PUT}},6521:(e,t,o)=>{o.d(t,{T:()=>r});const r={path:"/revision/independent/:hash",method:o(8700).RouteHttpVerb.GET}},2115:(e,t,o)=>{o.d(t,{k:()=>r});const r={path:"/scanner/queue",method:o(8700).RouteHttpVerb.POST}},6372:(e,t,o)=>{o.d(t,{M:()=>r});const r={path:"/scanner/result/externals/:type/:identifier",method:o(8700).RouteHttpVerb.GET}},5593:(e,t,o)=>{o.d(t,{M:()=>r});const r={path:"/scanner/result/externals",method:o(8700).RouteHttpVerb.GET}},3943:(e,t,o)=>{o.d(t,{C:()=>r});const r={path:"/scanner/result/externals/:host",method:o(8700).RouteHttpVerb.PUT}},7244:(e,t,o)=>{o.d(t,{$:()=>r});const r={path:"/scanner/result/markup/:id",method:o(8700).RouteHttpVerb.GET}},9601:(e,t,o)=>{o.d(t,{e:()=>r});const r={path:"/scanner/result/presets",method:o(8700).RouteHttpVerb.GET}},515:(e,t,o)=>{o.d(t,{Y:()=>r});const r={path:"/tcf/declarations",method:o(8700).RouteHttpVerb.GET}},1039:(e,t,o)=>{o.d(t,{y:()=>r});const r={path:"/tcf/gvl",method:o(8700).RouteHttpVerb.PUT}},4747:(e,t,o)=>{o.d(t,{f:()=>r});const r={path:"/tcf/vendors",method:o(8700).RouteHttpVerb.GET}},5391:(e,t,o)=>{o.d(t,{g:()=>r});const r={path:"/settings",namespace:"wp/v2",method:o(8700).RouteHttpVerb.GET}},1211:(e,t,o)=>{o.d(t,{J:()=>r});const r={path:"/settings",namespace:"wp/v2",method:o(8700).RouteHttpVerb.PATCH}},8852:()=>{},9494:()=>{},7363:e=>{e.exports=React},1533:e=>{e.exports=ReactDOM},6711:e=>{e.exports=ReactRouterDOM},490:e=>{e.exports=devowlWp_customize},9445:e=>{e.exports=devowlWp_realProductManagerWpClient},6:e=>{e.exports=devowlWp_realQueue},8700:e=>{e.exports=devowlWp_utils},5311:e=>{e.exports=jQuery},7821:e=>{e.exports=mobx},8488:e=>{e.exports=moment},5998:e=>{e.exports=wp}},i={};function n(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return r[e](o,o.exports,n),o.loaded=!0,o.exports}n.m=r,e=[],n.O=(t,o,r,i)=>{if(!o){var s=1/0;for(p=0;p<e.length;p++){for(var[o,r,i]=e[p],a=!0,l=0;l<o.length;l++)(!1&i||s>=i)&&Object.keys(n.O).every((e=>n.O[e](o[l])))?o.splice(l--,1):(a=!1,i<s&&(s=i));if(a){e.splice(p--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var p=e.length;p>0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[o,r,i]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,o)=>(n.f[o](e,t),t)),[])),n.u=e=>(({3:"chunk-config-tab-scanner",184:"chunk-config-tab-tcf",322:"chunk-config-tab-licensing",357:"chunk-config-tab-import",379:"chunk-config-tab-dashboard",478:"chunk-config-tab-blocker",625:"chunk-config-tab-consent",718:"chunk-config-tab-cookies",768:"chunk-config-tab-settings"}[e]||e)+".lite.js?ver="+{3:"fda8a3d7baf68c23de17",81:"1597b7ea247ebc729b3f",85:"c1cace28db802702418a",184:"fe97b05fb51ed960cc94",185:"06765c274e74fab6e574",307:"73276fcc2cfb96b77e26",322:"5e85950ce97d48f995ac",357:"7df71e03e569097e1232",379:"54231007934f68c04f42",414:"80bd17f5390c8b52cd65",446:"8bd9b252600f8f721c0e",466:"b69d94a17213c9cde347",474:"acc17755b51f87dc3229",478:"76f4ec784e34db6f7508",544:"046af70c36e9f6a7dfd9",578:"36d419efcf879ad47d09",625:"076d92e5df126e3aa1fd",637:"ef6cb6d16781bb56366d",718:"7bc9539bfbf1059837b6",737:"f0776900ca027073c701",768:"9cbb4b6f33a116a0e1b5",793:"20235de6234cd515b3d0",853:"e18a682e86c2a3514386",902:"dff6cad5a218cf713e40",932:"cba370a1023bd0e9d17c"}[e]),n.miniCssF=e=>"admin.css",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},o="realCookieBanner_:",n.l=(e,r,i,s)=>{if(t[e])t[e].push(r);else{var a,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),p=0;p<c.length;p++){var u=c[p];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+i){a=u;break}}a||(l=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,n.nc&&a.setAttribute("nonce",n.nc),a.setAttribute("data-webpack",o+i),a.src=e),t[e]=[r];var h=(o,r)=>{a.onerror=a.onload=null,clearTimeout(b);var i=t[e];if(delete t[e],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach((e=>e(r))),o)return o(r)},b=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),l&&document.head.appendChild(a)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{var e={328:0};n.f.j=(t,o)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)o.push(r[2]);else{var i=new Promise(((o,i)=>r=e[t]=[o,i]));o.push(r[2]=i);var s=n.p+n.u(t),a=new Error;n.l(s,(o=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+i+": "+s+")",a.name="ChunkLoadError",a.type=i,a.request=s,r[1](a)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,o)=>{var r,i,[s,a,l]=o,c=0;if(s.some((t=>0!==e[t]))){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(l)var p=l(n)}for(t&&t(o);c<s.length;c++)i=s[c],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(p)},o=self.webpackChunkrealCookieBanner_=self.webpackChunkrealCookieBanner_||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})();var s=n.O(void 0,[194],(()=>n(6974)));s=n.O(s),realCookieBanner_admin=s})();
2
  //# sourceMappingURL=admin.lite.js.map
public/dist/admin.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"admin.lite.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/load script","webpack:///../../backends/real-cookie-banner-backend/src/types/service/tcf.ts","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/getManagerDependingVariables.tsx","webpack:///../../frontend-packages/react-cookie-banner-admin/src/contexts/i18n.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/reactNl2Br.tsx","webpack:///./src/public/ts/admin.tsx","webpack:///./src/public/ts/components/config/dashboard/checklistItem.tsx","webpack:///./src/public/ts/components/config/dashboard/checklist.tsx","webpack:///./src/public/ts/components/config/noticeRevisionNeedsRetrigger.tsx","webpack:///./src/public/ts/components/config/noticeBannerActiveNoCookies.tsx","webpack:///./src/public/ts/components/config/noticeAnonymousScriptNotWritable.tsx","webpack:///./src/public/ts/components/config/noticeNoManager.tsx","webpack:///./src/public/ts/components/routerScrollToTop.tsx","webpack:///./src/public/ts/components/proHeadlineButton.tsx","webpack:///./src/public/ts/components/config/header.tsx","webpack:///./src/public/ts/components/config/footer.tsx","webpack:///./src/public/ts/components/configApp.tsx","webpack:///./src/public/ts/components/inAppFomoCouponCounter.tsx","webpack:///./src/public/ts/components/proModal.tsx","webpack:///./src/public/ts/components/proModalHint.tsx","webpack:///./src/public/ts/hooks/useProModal.tsx","webpack:///./src/public/ts/hooks/useScannerProgress.tsx","webpack:///./src/public/ts/models/bannerPreset.tsx","webpack:///./src/public/ts/models/blockerCollection.tsx","webpack:///./src/public/ts/models/blockerModel.tsx","webpack:///./src/public/ts/models/blockerPreset.tsx","webpack:///./src/public/ts/models/consent.tsx","webpack:///./src/public/ts/models/cookieCollection.tsx","webpack:///./src/public/ts/models/cookieGroupCollection.tsx","webpack:///./src/public/ts/models/cookieGroupModel.tsx","webpack:///./src/public/ts/models/cookieModel.tsx","webpack:///./src/public/ts/models/cookiePreset.tsx","webpack:///./src/public/ts/models/revision.tsx","webpack:///./src/public/ts/models/revisionIndependent.tsx","webpack:///./src/public/ts/models/scannerResultExternalUrl.tsx","webpack:///./src/public/ts/models/scannerResultExternalUrlSingle.tsx","webpack:///./src/public/ts/models/scannerResultPreset.tsx","webpack:///./src/public/ts/models/tcfFeature.tsx","webpack:///./src/public/ts/models/tcfPurpose.tsx","webpack:///./src/public/ts/models/tcfVendor.tsx","webpack:///./src/public/ts/models/tcfVendorConfigurationCollection.tsx","webpack:///./src/public/ts/models/tcfVendorConfigurationModel.tsx","webpack:///./src/public/ts/store/checklist.tsx","webpack:///./src/public/ts/store/consent.tsx","webpack:///./src/public/ts/store/cookie.tsx","webpack:///./src/public/ts/store/customizeBanner.tsx","webpack:///./src/public/ts/store/option.tsx","webpack:///./src/public/ts/store/scanner.tsx","webpack:///./src/public/ts/store/stats.tsx","webpack:///./src/public/ts/store/stores.tsx","webpack:///./src/public/ts/store/tcf.tsx","webpack:///./src/public/ts/types/queue.tsx","webpack:///./src/public/ts/utils/copyToClipboard.tsx","webpack:///./src/public/ts/utils/getOptionsFromWindow.tsx","webpack:///./src/public/ts/utils/getOtherOptionsFromWindow.tsx","webpack:///./src/public/ts/utils/i18n.tsx","webpack:///./src/public/ts/utils/request.tsx","webpack:///./src/public/ts/utils/scrollTo.tsx","webpack:///./src/public/ts/utils/truncateMiddle.tsx","webpack:///./src/public/ts/wp-api/checklist.get.tsx","webpack:///./src/public/ts/wp-api/checklist.put.tsx","webpack:///./src/public/ts/wp-api/consentAll.delete.tsx","webpack:///./src/public/ts/wp-api/consentAll.get.tsx","webpack:///./src/public/ts/wp-api/consentReferer.get.tsx","webpack:///./src/public/ts/wp-api/cookieGroupOrder.put.tsx","webpack:///./src/public/ts/wp-api/cookieUnassigned.get.tsx","webpack:///./src/public/ts/wp-api/cookiesOrder.put.tsx","webpack:///./src/public/ts/wp-api/countryBypassDatabase.put.tsx","webpack:///./src/public/ts/wp-api/export.get.tsx","webpack:///./src/public/ts/wp-api/exportConsents.get.tsx","webpack:///./src/public/ts/wp-api/forwardCookie.get.tsx","webpack:///./src/public/ts/wp-api/forwardEndpoints.get.tsx","webpack:///./src/public/ts/wp-api/import.post.tsx","webpack:///./src/public/ts/wp-api/consent.post.tsx","webpack:///./src/public/ts/wp-api/consent.get.tsx","webpack:///./src/public/ts/wp-api/statsMain.get.tsx","webpack:///./src/public/ts/wp-api/statsCustomBypass.get.tsx","webpack:///./src/public/ts/wp-api/statsButtonsClicked.tsx","webpack:///./src/public/ts/wp-api/consentClear.delete.tsx","webpack:///./src/public/ts/wp-api/consentForward.post.tsx","webpack:///./src/public/ts/wp-api/consentDynamicPredecision.get.tsx","webpack:///./src/public/ts/wp-api/liteDismissConfigPageProNotice.delete.tsx","webpack:///./src/public/ts/wp-api/migration.delete.tsx","webpack:///./src/public/ts/wp-api/migration.post.tsx","webpack:///./src/public/ts/wp-api/modalHintSeen.put.tsx","webpack:///./src/public/ts/wp-api/navMenuAddLinks.post.tsx","webpack:///./src/public/ts/wp-api/presetsBanner.get.tsx","webpack:///./src/public/ts/wp-api/presetsBlocker.get.tsx","webpack:///./src/public/ts/wp-api/presetsBlockerAttributes.get.tsx","webpack:///./src/public/ts/wp-api/presetsCookies.get.tsx","webpack:///./src/public/ts/wp-api/presetsCookiesAttributes.get.tsx","webpack:///./src/public/ts/wp-api/revision.get.tsx","webpack:///./src/public/ts/wp-api/revisionCurrent.get.tsx","webpack:///./src/public/ts/wp-api/revisionCurrent.put.tsx","webpack:///./src/public/ts/wp-api/revisionIndependent.get.tsx","webpack:///./src/public/ts/wp-api/scannerQueue.post.tsx","webpack:///./src/public/ts/wp-api/scannerResultsAllExternalUrls.get.tsx","webpack:///./src/public/ts/wp-api/scannerResultsExternal.get.tsx","webpack:///./src/public/ts/wp-api/scannerResultsExternalHost.put.tsx","webpack:///./src/public/ts/wp-api/scannerResultsMarkup.get.tsx","webpack:///./src/public/ts/wp-api/scannerResultsPreset.get.tsx","webpack:///./src/public/ts/wp-api/tcfDeclarations.get.tsx","webpack:///./src/public/ts/wp-api/tcfGvl.put.tsx","webpack:///./src/public/ts/wp-api/tcfVendors.get.tsx","webpack:///./src/public/ts/wp-api/wp/settings.get.tsx","webpack:///./src/public/ts/wp-api/wp/settings.patch.tsx","webpack:///external var \"React\"","webpack:///external var \"ReactDOM\"","webpack:///external var \"ReactRouterDOM\"","webpack:///external var \"devowlWp_customize\"","webpack:///external var \"devowlWp_realProductManagerWpClient\"","webpack:///external var \"devowlWp_realQueue\"","webpack:///external var \"devowlWp_utils\"","webpack:///external var \"jQuery\"","webpack:///external var \"mobx\"","webpack:///external var \"moment\"","webpack:///external var \"wp\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"realCookieBanner_:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/* eslint-disable @typescript-eslint/no-empty-interface */\nvar ETcfGvlDisclosureType;\n\n(function (ETcfGvlDisclosureType) {\n ETcfGvlDisclosureType[\"Cookie\"] = \"cookie\";\n ETcfGvlDisclosureType[\"Web\"] = \"web\";\n ETcfGvlDisclosureType[\"App\"] = \"app\";\n})(ETcfGvlDisclosureType || (ETcfGvlDisclosureType = {}));\n\nvar ETcfGvlLanguage;\n\n(function (ETcfGvlLanguage) {\n ETcfGvlLanguage[\"Bulgarian\"] = \"bg\";\n ETcfGvlLanguage[\"Catalan\"] = \"ca\";\n ETcfGvlLanguage[\"Czech\"] = \"cs\";\n ETcfGvlLanguage[\"Danish\"] = \"da\";\n ETcfGvlLanguage[\"German\"] = \"de\";\n ETcfGvlLanguage[\"Greek\"] = \"el\";\n ETcfGvlLanguage[\"Spanish\"] = \"es\";\n ETcfGvlLanguage[\"Estonian\"] = \"et\";\n ETcfGvlLanguage[\"Basque\"] = \"eus\";\n ETcfGvlLanguage[\"Finnish\"] = \"fi\";\n ETcfGvlLanguage[\"French\"] = \"fr\";\n ETcfGvlLanguage[\"Galician\"] = \"gl\";\n ETcfGvlLanguage[\"Croatian\"] = \"hr\";\n ETcfGvlLanguage[\"Hungarian\"] = \"hu\";\n ETcfGvlLanguage[\"Italian\"] = \"it\";\n ETcfGvlLanguage[\"Japanese\"] = \"ja\";\n ETcfGvlLanguage[\"Lithuanian\"] = \"lt\";\n ETcfGvlLanguage[\"Latvian\"] = \"lv\";\n ETcfGvlLanguage[\"Maltese\"] = \"mt\";\n ETcfGvlLanguage[\"Dutch\"] = \"nl\";\n ETcfGvlLanguage[\"Norwegian\"] = \"no\";\n ETcfGvlLanguage[\"Polish\"] = \"pl\";\n ETcfGvlLanguage[\"Portuguese\"] = \"pt\";\n ETcfGvlLanguage[\"Romanian\"] = \"ro\";\n ETcfGvlLanguage[\"SerbianCyrillic\"] = \"sr-Cyrl\";\n ETcfGvlLanguage[\"SerbianLatin\"] = \"sr-Latn\";\n ETcfGvlLanguage[\"Russian\"] = \"ru\";\n ETcfGvlLanguage[\"Slovak\"] = \"sk\";\n ETcfGvlLanguage[\"Slovenian\"] = \"sl\";\n ETcfGvlLanguage[\"Swedish\"] = \"sv\";\n ETcfGvlLanguage[\"Turkish\"] = \"tr\";\n ETcfGvlLanguage[\"Chinese\"] = \"zh\";\n})(ETcfGvlLanguage || (ETcfGvlLanguage = {}));\n\nexport { ETcfGvlLanguage, ETcfGvlDisclosureType };","export const LABEL_GTM = \"Google Tag Manager\";\nexport const LABEL_MTM = \"Matomo Tag Manager\";\n\nfunction getManagerDependingVariables(setCookiesViaManager, presetId) {\n let useGlobalObjectName;\n let getDataLayer;\n let serviceIsManager = false;\n let managerLabel = \"\";\n let expectedManagerPresetId;\n\n if (setCookiesViaManager && setCookiesViaManager !== \"none\") {\n const isGtm = setCookiesViaManager === \"googleTagManager\";\n const isMtm = setCookiesViaManager === \"matomoTagManager\";\n\n if (isGtm) {\n expectedManagerPresetId = \"gtm\";\n useGlobalObjectName = \"dataLayer\";\n managerLabel = LABEL_GTM;\n } else if (isMtm) {\n expectedManagerPresetId = \"mtm\";\n useGlobalObjectName = \"_mtm\";\n managerLabel = LABEL_MTM;\n }\n\n if (isGtm || isMtm) {\n getDataLayer = () => {\n window[useGlobalObjectName] = window[useGlobalObjectName] || [];\n return window[useGlobalObjectName];\n };\n }\n\n if (expectedManagerPresetId && presetId === expectedManagerPresetId) {\n serviceIsManager = true;\n }\n }\n\n return {\n getDataLayer,\n serviceIsManager,\n managerLabel,\n expectedManagerPresetId\n };\n}\n\nexport { getManagerDependingVariables };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass I18nContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nI18nContextFactory.context = void 0;\n\nfunction useI18n() {\n return useContext(I18nContextFactory.Context());\n}\n\nexport { I18nContextFactory, useI18n };","import { createElement } from \"react\";\nconst newlineRegex = /(\\r\\n|\\r|\\n|<br[ ]?\\/>)/g;\n/**\n * @see https://codesandbox.io/s/94k7k80jxy\n */\n\nconst reactNl2Br = text => text.split(newlineRegex).map((line, index) => line.match(newlineRegex) ? /*#__PURE__*/createElement(\"br\", {\n key: index\n}) : line);\n\nexport { reactNl2Br };","import _message from \"antd/es/message\";\nimport _ConfigProvider from \"antd/es/config-provider\";\n\n/* istanbul ignore file: we do not need to care about the entry point file as errors are detected through integration tests (E2E) */\n\n/**\n * The entry point for the admin side wp-admin resource (config page).\n */\nimport \"mobx-react/batchingForReactDom\";\nimport { render } from \"react-dom\";\nimport { RootStore } from \"./store\";\nimport { ConfigApp } from \"./components/configApp\";\nimport \"./style/antd.less\";\nimport \"./style/admin.scss\";\nimport moment from \"moment\";\nimport { handleCorrupRestApi, getWebpackPublicPath } from \"@devowl-wp/utils\";\nimport { request, __, _i } from \"./utils\";\nimport { I18nContextFactory } from \"@devowl-wp/react-cookie-banner-admin\";\n__webpack_public_path__ = getWebpackPublicPath(process.env.slug);\nhandleCorrupRestApi === null || handleCorrupRestApi === void 0 ? void 0 : handleCorrupRestApi({\n [RootStore.get.optionStore.restNamespace]: async () => {\n await request({\n location: {\n path: \"/plugin\"\n }\n });\n },\n [\"wp/v2\"]: async () => {\n await request({\n location: {\n path: \"/settings\",\n namespace: \"wp/v2\"\n }\n });\n }\n}); // Configure prefix for root (https://bit.ly/3wb2pv9)\n\n_ConfigProvider.config({\n prefixCls: process.env.ANTD_PREFIX\n});\n\n_message.config({\n top: 50\n});\n\nconst node = document.getElementById(\"\".concat(RootStore.get.optionStore.slug, \"-component\"));\n\nif (node) {\n const I18nContext = I18nContextFactory.Context();\n render( /*#__PURE__*/React.createElement(I18nContext.Provider, {\n value: {\n __,\n _i\n }\n }, /*#__PURE__*/React.createElement(_ConfigProvider, {\n prefixCls: process.env.ANTD_PREFIX,\n locale: {\n locale: moment.locale()\n }\n }, /*#__PURE__*/React.createElement(RootStore.StoreProvider, null, /*#__PURE__*/React.createElement(ConfigApp, null)))), node);\n} // Expose this functionalities to add-ons, but you need to activate the library functionality\n// in your webpack configuration, see also https://webpack.js.org/guides/author-libraries/\n\n\nexport * from \"@devowl-wp/utils\";\nexport * from \"./wp-api\";\nexport * from \"./store\";","import _Tooltip from \"antd/es/tooltip\";\nimport _Tag from \"antd/es/tag\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../../utils\";\nimport { CheckCircleOutlined, CheckCircleFilled, InfoCircleFilled } from \"@ant-design/icons\";\nimport { useStores } from \"../../../store\";\nimport { PRO_TAG_BACKGROUND_COLOR, useScannerProgress } from \"../../../hooks\";\nimport { InAppFomoCouponCounter, IN_APP_FOMO_URL_PARAMETER_TO_DEACTIVATE_WEBSITE_FOMO } from \"../..\";\nconst DashboardChecklistItem = observer(({\n id,\n checked,\n title,\n description,\n link,\n linkText,\n linkTarget,\n needsPro,\n onLinkClick\n}) => {\n const {\n optionStore: {\n others: {\n isPro\n },\n fomoCoupon\n }\n } = useStores();\n const isInfo = !isPro && needsPro;\n let extraContentTag = null;\n let extraContentDescription = null;\n let useLink = link;\n\n switch (id) {\n case \"scanner\":\n {\n const {\n percent: scanPercent,\n remaining: scanRemaining,\n currentJob\n } = useScannerProgress();\n\n if (scanRemaining > 0 && scanPercent > 0 && (currentJob === null || currentJob === void 0 ? void 0 : currentJob.group_position) > 0) {\n extraContentTag = /*#__PURE__*/React.createElement(_Tag, null, __(\"Currently scanning (%d %%)\", scanPercent));\n }\n\n break;\n }\n\n case \"get-pro\":\n {\n extraContentDescription = /*#__PURE__*/React.createElement(InAppFomoCouponCounter, null);\n\n if (fomoCoupon) {\n useLink += \"&\".concat(IN_APP_FOMO_URL_PARAMETER_TO_DEACTIVATE_WEBSITE_FOMO);\n }\n\n break;\n }\n\n default:\n break;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n margin: \"5px 0\"\n }\n }, /*#__PURE__*/React.createElement(_Tooltip, {\n title: checked && description\n }, /*#__PURE__*/React.createElement(\"span\", null, isInfo ? /*#__PURE__*/React.createElement(InfoCircleFilled, {\n style: {\n color: \"#7ec8ec\"\n }\n }) : checked ? /*#__PURE__*/React.createElement(CheckCircleFilled, {\n style: {\n color: \"#52c41a\"\n }\n }) : /*#__PURE__*/React.createElement(CheckCircleOutlined, {\n style: {\n color: \"#e2e2e2\"\n }\n }), \" \", /*#__PURE__*/React.createElement(\"span\", {\n style: {\n textDecoration: checked ? \"line-through\" : undefined,\n fontWeight: \"bold\"\n }\n }, title), !!useLink && !!linkText && /*#__PURE__*/React.createElement(React.Fragment, null, \"\\xA0\\xA0\\u2022\\xA0\\xA0\", /*#__PURE__*/React.createElement(\"a\", {\n href: useLink,\n target: linkTarget,\n rel: \"noreferrer\",\n onClick: onLinkClick\n }, linkText)))), isInfo && id !== \"get-pro\" && /*#__PURE__*/React.createElement(React.Fragment, null, \"\\xA0\", /*#__PURE__*/React.createElement(_Tag, {\n color: PRO_TAG_BACKGROUND_COLOR\n }, __(\"Needs PRO\"))), !!extraContentTag && /*#__PURE__*/React.createElement(React.Fragment, null, \"\\xA0\", extraContentTag), !!description && !checked && /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\",\n style: {\n paddingLeft: 17\n }\n }, description), !!extraContentDescription && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n paddingLeft: 17\n }\n }, extraContentDescription));\n});\nexport { DashboardChecklistItem };","import _Spin from \"antd/es/spin\";\nimport _Space from \"antd/es/space\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _Tag from \"antd/es/tag\";\nimport { useState } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { __ } from \"../../../utils\";\nimport { DashboardChecklistItem } from \".\";\nimport { useStores } from \"../../../store\";\nimport { CheckCircleOutlined, MinusCircleOutlined } from \"@ant-design/icons\";\nconst DashboardChecklistCardContent = observer(({\n onLinkClick,\n ...props\n}) => {\n const {\n checklistStore\n } = useStores();\n const {\n busyChecklist,\n items,\n completed,\n checkable,\n done,\n checklist: {\n overdue\n }\n } = checklistStore;\n const [showHidden, setShowHidden] = useState(typeof props.showHidden === \"boolean\" ? props.showHidden : done ? false : true);\n return /*#__PURE__*/React.createElement(_Spin, {\n spinning: busyChecklist\n }, /*#__PURE__*/React.createElement(_Space, {\n direction: \"vertical\",\n size: \"large\"\n }, overdue && /*#__PURE__*/React.createElement(\"div\", {\n className: \"notice notice-warning inline below-h2 notice-alt\",\n style: {\n margin: 0\n }\n }, /*#__PURE__*/React.createElement(\"p\", null, __(\"How time flies! You have installed Real Cookie Banner some time ago, but you still haven't finished the configuration yet.\"))), /*#__PURE__*/React.createElement(\"p\", {\n className: \"description\"\n }, __(\"We have collected all relevant steps for the legally compliant use of Real Cookie Banner after the first installation. Set up the cookie banner step by step to add a cookie banner to your website in compliance with the ePrivacy Directive and GDPR.\")), /*#__PURE__*/React.createElement(\"div\", null, done && (showHidden ? /*#__PURE__*/React.createElement(_Tag, {\n icon: /*#__PURE__*/React.createElement(MinusCircleOutlined, null),\n color: \"default\",\n style: {\n cursor: \"pointer\"\n },\n onClick: () => setShowHidden(false)\n }, __(\"Hide completed steps\")) : /*#__PURE__*/React.createElement(_Tag, {\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n color: \"success\",\n style: {\n cursor: \"pointer\"\n },\n onClick: () => setShowHidden(true)\n }, __(\"%d / %d steps completed\", completed.length > checkable.length ? checkable.length : completed.length, // avoid overflow due infos\n checkable.length))), items.map(({\n id,\n ...rest\n }) => {\n if (!showHidden && rest.checked) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(DashboardChecklistItem, _extends({\n key: id,\n id: id\n }, rest, {\n onLinkClick: e => {\n if ([\"get-pro\"].indexOf(id) > -1) {\n checklistStore.toggleChecklistItem(id, true);\n }\n\n onLinkClick === null || onLinkClick === void 0 ? void 0 : onLinkClick(e);\n }\n }));\n }))));\n});\nexport { DashboardChecklistCardContent };","import _Popconfirm from \"antd/es/popconfirm\";\nimport { observer } from \"mobx-react\";\nimport { _i, __ } from \"../../utils\";\nimport { useStores } from \"../../store\";\nimport { useLocation } from \"react-router-dom\";\nconst NoticeRevisionNeedsRetrigger = observer(() => {\n const {\n optionStore\n } = useStores();\n const {\n pathname\n } = useLocation();\n return optionStore.needsRevisionRetrigger && pathname.indexOf(\"/edit/\") === -1 && pathname.indexOf(\"/new\") === -1 && /*#__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, __(\"You have changed settings that affect the content or behavior of the cookie banner. You should ask all visitors for their consent again.\"), \" \", \"\\u2022\", \" \", /*#__PURE__*/React.createElement(\"a\", {\n style: {\n cursor: \"pointer\",\n textDecoration: \"underline\"\n },\n onClick: () => optionStore.updateCurrentRevision({\n needs_retrigger: true\n })\n }, __(\"Request new consent\")), \" \", \"\\u2022\", \" \", /*#__PURE__*/React.createElement(_Popconfirm, {\n title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"strong\", null, __(\"Are you sure you don't want to collect new consents?\")), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"br\", null), _i(__(\"Consent must be obtained in accordance with {{a}}Art. 7 GDPR{{/a}}. Your visitor must be informed about all circumstances of the consent. However, you have made changes to your cookie banner, which lead to the fact that previously visitors have consented differently or to something different than is now in the cookie banner. Therefore, previously collected consents may have become partially invalid.\"), {\n a: /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://gdpr-info.eu/art-7-gdpr/\"),\n rel: \"noreferrer\",\n target: \"_blank\"\n })\n }), /*#__PURE__*/React.createElement(\"br\", null), /*#__PURE__*/React.createElement(\"br\", null), __(\"If you have created a new service like Google Analytics (without visual content blocker), previous visitors can never consent without collecting new consents and you cannot track them, for example.\")),\n placement: \"bottomRight\",\n onConfirm: () => optionStore.updateCurrentRevision({\n needs_retrigger: false\n }),\n okText: __(\"Dismiss notice\"),\n cancelText: __(\"Cancel\"),\n overlayStyle: {\n maxWidth: 450\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n style: {\n cursor: \"pointer\",\n textDecoration: \"underline\"\n }\n }, __(\"Dismiss notice\")))));\n});\nexport { NoticeRevisionNeedsRetrigger };","import { observer } from \"mobx-react\";\nimport { __ } from \"../../utils\";\nimport { useStores } from \"../../store\";\nconst NoticeBannerActiveNoCookies = observer(() => {\n const {\n optionStore: {\n publicCookieCount,\n busySettings,\n bannerActive\n }\n } = useStores();\n return bannerActive && !publicCookieCount && !busySettings && /*#__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, __(\"The cookie banner is activated, but unfortunately you have not yet created or enabled services.\")));\n});\nexport { NoticeBannerActiveNoCookies };","import { observer } from \"mobx-react\";\nimport { getOtherOptionsFromWindow, _i, __ } from \"../../utils\";\nconst NoticeAnonymousScriptNotWritable = observer(() => {\n const {\n showNoticeAnonymousScriptNotWritable\n } = getOtherOptionsFromWindow();\n return !!showNoticeAnonymousScriptNotWritable && /*#__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(__(\"Your {{code}}wp-content{{/code}} folder is not writable. Please check your permissions!\"), {\n code: /*#__PURE__*/React.createElement(\"code\", null)\n })));\n});\nexport { NoticeAnonymousScriptNotWritable };","import { observer } from \"mobx-react\";\nimport { __, _i } from \"../../utils\";\nimport { useStores } from \"../../store\";\nimport { useLocation } from \"react-router-dom\";\nimport { getManagerDependingVariables } from \"@devowl-wp/cookie-consent-web-client\";\nconst NoticeNoManager = observer(() => {\n const {\n optionStore: {\n setCookiesViaManager,\n hasManager\n }\n } = useStores();\n const {\n managerLabel,\n expectedManagerPresetId\n } = getManagerDependingVariables(setCookiesViaManager);\n const {\n pathname\n } = useLocation();\n return managerLabel && !hasManager && /^\\/cookies\\/\\d+$/.test(pathname) && /*#__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 have not yet defined a %s service. To use {{strong}}%s{{/strong}} with Real Cookie Banner, you must create the appropriate service.\", managerLabel, managerLabel), {\n strong: /*#__PURE__*/React.createElement(\"strong\", null)\n }), \" \", \"\\u2022 \", /*#__PURE__*/React.createElement(\"a\", {\n href: \"#\".concat(pathname, \"/new?force=\").concat(expectedManagerPresetId)\n }, __(\"Create now\"))));\n});\nexport { NoticeNoManager };","import { useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { scrollTo } from \"../utils\";\n/**\n * @see https://stackoverflow.com/a/54343182/5506547\n */\n\nconst RouterScrollToTop = () => {\n const {\n listen\n } = useHistory();\n useEffect(() => {\n const destroy = listen(() => {\n scrollTo(0);\n });\n return () => {\n destroy();\n };\n }, [listen]);\n return null;\n};\n\nexport { RouterScrollToTop };","import _Popconfirm from \"antd/es/popconfirm\";\nimport { useCallback } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useStores } from \"../store\";\nimport { __ } from \"../utils\";\nconst ProHeadlineButton = observer(() => {\n const {\n optionStore\n } = useStores();\n const {\n others: {\n proUrl,\n isPro,\n isConfigProNoticeVisible\n }\n } = optionStore;\n const href = \"\".concat(proUrl, \"&feature=main-button\");\n const handleConfirm = useCallback(() => {\n window.open(href, \"_blank\");\n optionStore.dismissConfigProNotice();\n }, [optionStore]);\n const handleClose = useCallback(() => {\n optionStore.dismissConfigProNotice();\n }, [optionStore]);\n return !isPro && /*#__PURE__*/React.createElement(_Popconfirm, {\n visible: !!isConfigProNoticeVisible,\n title: __(\"Thank you for using the free version of Real Cookie Banner. You might also be interested in the PRO version, which offers you more features, 20+ design templates, 100+ service templates, 60+ content blocker templates and much more.\"),\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, {\n style: {\n color: \"#1890ff\"\n }\n }),\n placement: \"bottom\",\n onConfirm: handleConfirm,\n onCancel: handleClose,\n cancelText: __(\"No, not interested...\"),\n okText: __(\"I want to learn more!\"),\n overlayStyle: {\n maxWidth: 450\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"page-title-action\",\n rel: \"noreferrer\",\n onClick: handleConfirm\n }, __(\"Get PRO version\")));\n});\nexport { ProHeadlineButton };","import _Modal from \"antd/es/modal\";\nimport { CheckCircleOutlined } from \"@ant-design/icons\";\nimport { observer } from \"mobx-react\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { ProHeadlineButton, DashboardChecklistCardContent } from \"..\";\nimport { useStores } from \"../../store\";\nimport { __ } from \"../../utils\";\nconst ConfigHeader = observer(() => {\n const [isChecklistModalOpen, setChecklistModalOpen] = useState(false);\n const {\n optionStore,\n checklistStore\n } = useStores();\n const {\n pathname\n } = useLocation();\n const {\n others: {\n customizeBannerUrl\n },\n publicUrl\n } = optionStore;\n const {\n completed,\n checkable,\n done\n } = checklistStore;\n useEffect(() => {\n checklistStore.fetchChecklist();\n }, []);\n const handleCustomizeBannerButtonClick = useCallback(e => {\n window.location.href = \"\".concat(customizeBannerUrl, \"&return=\").concat(encodeURIComponent(window.location.href));\n e.preventDefault();\n }, []);\n const handleChecklistModalOpen = useCallback(() => {\n setChecklistModalOpen(true);\n checklistStore.fetchChecklist();\n }, [setChecklistModalOpen]);\n const handleChecklistModalClose = useCallback(() => {\n setChecklistModalOpen(false);\n }, [setChecklistModalOpen]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h1\", {\n className: \"wp-heading-inline\"\n }, __(\"Real Cookie Banner\")), /*#__PURE__*/React.createElement(\"img\", {\n className: \"rcb-nav-logo\",\n src: \"\".concat(publicUrl, \"images/logos/real-cookie-banner.svg\")\n }), /*#__PURE__*/React.createElement(\"a\", {\n className: \"page-title-action\",\n href: \"#\",\n onClick: handleCustomizeBannerButtonClick\n }, __(\"Customize banner\")), /*#__PURE__*/React.createElement(ProHeadlineButton, null), !done && pathname !== \"/\" && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"a\", {\n className: \"page-title-action\",\n style: {\n color: \"#52c41a\",\n background: \"#f6ffed\",\n borderColor: \"#85af65\"\n },\n onClick: handleChecklistModalOpen\n }, /*#__PURE__*/React.createElement(CheckCircleOutlined, null), \"\\xA0\", __(\"%d / %d steps completed\", completed.length > checkable.length ? checkable.length : completed.length, // avoid overflow due infos\n checkable.length)), /*#__PURE__*/React.createElement(_Modal, {\n visible: isChecklistModalOpen,\n title: __(\"Set up the cookie banner\"),\n onCancel: handleChecklistModalClose,\n okButtonProps: {\n style: {\n display: \"none\"\n }\n },\n cancelText: __(\"Close\"),\n width: 800\n }, /*#__PURE__*/React.createElement(DashboardChecklistCardContent, {\n showHidden: true,\n onLinkClick: handleChecklistModalClose\n }))), /*#__PURE__*/React.createElement(\"hr\", {\n className: \"wp-header-end\"\n }));\n});\nexport { ConfigHeader };","import { observer } from \"mobx-react\";\nimport { useStores } from \"../../store\";\nimport { HeartFilled } from \"@ant-design/icons\";\nimport { _i, __ } from \"../../utils\";\nconst ConfigFooter = observer(() => {\n const {\n optionStore: {\n publicUrl\n }\n } = useStores();\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rcb-config-footer\"\n }, _i(__(\"Real Cookie Banner is brought to you with {{icon/}} by\"), {\n icon: /*#__PURE__*/React.createElement(HeartFilled, {\n style: {\n color: \"#dca7a7\"\n }\n })\n }), /*#__PURE__*/React.createElement(\"a\", {\n href: __(\"https://devowl.io/\"),\n target: \"_blank\",\n rel: \"noreferrer\"\n }, /*#__PURE__*/React.createElement(\"img\", {\n src: \"\".concat(publicUrl, \"images/logos/devowl-with-text.svg\")\n })));\n});\nexport { ConfigFooter };","import _Badge from \"antd/es/badge\";\nimport _Spin from \"antd/es/spin\";\nimport { lazy, Suspense } from \"react\";\nimport { useLayoutEffect } from \"react\";\nimport { observer } from \"mobx-react\";\nimport { HashRouter as Router, Switch, Route, NavLink } from \"react-router-dom\";\nimport { __ } from \"../utils\";\nimport { useStores } from \"../store\";\nimport { NoticeRevisionNeedsRetrigger, NoticeBannerActiveNoCookies, NoticeAnonymousScriptNotWritable, NoticeNoManager, RouterScrollToTop } from \".\";\nimport { ConfigHeader, ConfigFooter } from \".\";\nimport { SuspenseChunkTranslation } from \"@devowl-wp/utils\";\nimport { useScannerProgress } from \"../hooks\";\nimport { JOB_DONE_EVENT_PREFIX } from \"@devowl-wp/real-queue\";\nimport { AUTOMATIC_SCAN_STATER_QUEUE_JOB } from \"../types\";\nconst CSS_SPINNER_IN_CONTENT = {\n display: \"block\",\n marginTop: 10\n}; // Lazy load components\n\nconst createSuspenseComponent = (tab, children) => ({\n // eslint-disable-next-line react/display-name\n default: () => /*#__PURE__*/React.createElement(SuspenseChunkTranslation, {\n chunkFile: __webpack_get_script_filename__(\"chunk-config-tab-\".concat(tab)),\n options: () => useStores().optionStore,\n fallback: /*#__PURE__*/React.createElement(_Spin, {\n spinning: true,\n style: CSS_SPINNER_IN_CONTENT\n })\n }, children)\n});\n\nconst DashboardCards = /*#__PURE__*/lazy(() => import(\n/* webpackChunkName: \"chunk-config-tab-dashboard\" */\n\"./config/dashboard/cards\").then(({\n DashboardCards\n}) => createSuspenseComponent(\"dashboard\", /*#__PURE__*/React.createElement(DashboardCards, null))));\nconst SettingsForm = /*#__PURE__*/lazy(() => import(\n/* webpackChunkName: \"chunk-config-tab-settings\" */\n\"./config/settings/form\").then(({\n SettingsForm\n}) => createSuspenseComponent(\"settings\", /*#__PURE__*/React.createElement(SettingsForm, null))));\nconst ScannerRouter = /*#__PURE__*/lazy(() => import(\n/* webpackChunkName: \"chunk-config-tab-scanner\" */\n\"./config/scanner/router\").then(({\n ScannerRouter\n}) => createSuspenseComponent(\"scanner\", /*#__PURE__*/React.createElement(ScannerRouter, null))));\nconst CookieGroupsTabRouter = /*#__PURE__*/lazy(() => import(\n/* webpackChunkName: \"chunk-config-tab-cookies\" */\n\"./config/cookies/groups/tabRouter\").then(({\n CookieGroupsTabRouter\n}) => createSuspenseComponent(\"cookies\", /*#__PURE__*/React.createElement(CookieGroupsTabRouter, null))));\nconst ConsentTabRouter = /*#__PURE__*/lazy(() => import(\n/* webpackChunkName: \"chunk-config-tab-consent\" */\n\"./config/consent/tabRouter\").then(({\n ConsentTabRouter\n}) => createSuspenseComponent(\"consent\", /*#__PURE__*/React.createElement(ConsentTabRouter, null))));\nconst BlockerRouter = /*#__PURE__*/lazy(() => imp