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

Version Description

Download this release

Release Info

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

Code changes from version 3.1.1 to 3.1.2

CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
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.1.1 (2022-08-30)
7
 
8
  **Note:** This package (@devowl-wp/real-cookie-banner) has been updated because a dependency, which is also shipped with this package, has changed.
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.1.2 (2022-09-06)
7
+
8
+
9
+ ### fix
10
+
11
+ * compatibility for Widgets for Google Reviews by Trustindex.io (CU-2wu8qtc)
12
+ * compatibility for WP Map Block with Google Maps (CU-2x5p9r8)
13
+ * compatibility for WP Map Block with OpenStreetMap (CU-2x5p9r8)
14
+ * compatibility with Agile Store Locator (CU-2wu2gjc)
15
+ * compatibility with blocked content in Impreza theme popups (CU-2ep5dt0)
16
+ * compatibility with Divi video embed, thumbnail overlays and autoplay (CU-2vxpf7d)
17
+ * compatibility with Elementor PRO and facebook page widget
18
+ * compatibility with Elementor Video API when no script is loaded without consent (CU-2wu8u5j)
19
+ * compatibility with Oxygen lightbox and visual content blockers (CU-2x5j0cy)
20
+ * compatibility with Ultimate Addons for WPBakery Google Maps widget
21
+ * compatibility with wrong margin when embedding video in WP Bakery page builder (CU-2wu94qk)
22
+ * correctly copy content when default language differs from setup language in WPML / PolyLang (CU-2x5p7yh)
23
+ * do not show notice about privacy policy when not needed
24
+ * facebook page plugin content blocker could not be created (CU-2x5j2kg)
25
+
26
+
27
+
28
+
29
+
30
  ## 3.1.1 (2022-08-30)
31
 
32
  **Note:** This package (@devowl-wp/real-cookie-banner) has been updated because a dependency, which is also shipped with this package, has changed.
README.txt CHANGED
@@ -1,7 +1,7 @@
1
  === Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent ===
2
  Contributors: devowl, mguenter, jankarres, mrguenter
3
  Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
4
- Stable tag: 3.1.1
5
  Requires at least: 5.2
6
  Requires PHP: 7.2.0
7
  Tested up to: 6.0
1
  === Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent ===
2
  Contributors: devowl, mguenter, jankarres, mrguenter
3
  Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo, eprivacy, eu cookie law, cookie policy, cookie, consent, consent management
4
+ Stable tag: 3.1.2
5
  Requires at least: 5.2
6
  Requires PHP: 7.2.0
7
  Tested up to: 6.0
inc/Activator.php CHANGED
@@ -55,10 +55,11 @@ class Activator {
55
  return;
56
  }
57
  $compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
 
58
  $missingLanguages = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->getLanguagesWithoutEssentialGroup();
59
- $defaultLanguage = $compLanguage->getDefaultLanguage();
60
  $doCopyToOtherLanguages =
61
- \count($missingLanguages) > 0 && !\in_array($defaultLanguage, $missingLanguages, \true);
62
  if (
63
  $doCopyToOtherLanguages &&
64
  $compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin
@@ -66,7 +67,7 @@ class Activator {
66
  $compLanguage
67
  ->getSync()
68
  ->startCopyProcess()
69
- ->copyAll($missingLanguages);
70
  // Reload page to avoid javascript errors when in config page
71
  $configPage = \DevOwl\RealCookieBanner\Core::getInstance()->getConfigPage();
72
  if ($configPage->isVisible()) {
55
  return;
56
  }
57
  $compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
58
+ $allLanguages = $compLanguage->getActiveLanguages();
59
  $missingLanguages = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->getLanguagesWithoutEssentialGroup();
60
+ $createdLanguages = \array_values(\array_diff($allLanguages, $missingLanguages));
61
  $doCopyToOtherLanguages =
62
+ \count($missingLanguages) > 0 && \count($allLanguages) > 1 && \count($createdLanguages) > 0;
63
  if (
64
  $doCopyToOtherLanguages &&
65
  $compLanguage instanceof \DevOwl\RealCookieBanner\Vendor\DevOwl\Multilingual\AbstractSyncPlugin
67
  $compLanguage
68
  ->getSync()
69
  ->startCopyProcess()
70
+ ->copyAll($createdLanguages[0], $missingLanguages);
71
  // Reload page to avoid javascript errors when in config page
72
  $configPage = \DevOwl\RealCookieBanner\Core::getInstance()->getConfigPage();
73
  if ($configPage->isVisible()) {
inc/base/others/cachebuster-lib.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- /* This file was automatically generated (Tue Aug 30 2022 05:53:32 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 (Tue Sep 06 2022 11:35:26 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,5 +1,5 @@
1
  <?php
2
- /* This file was automatically generated (Tue Aug 30 2022 05:53:32 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'src/public/dist/101.pro.js' => '899ef18452f89e84adb38475ccec6b94',
5
  'src/public/dist/164.lite.js' => '7d2bd40dae8fb1432a350b4b0010550d',
@@ -37,12 +37,12 @@ return [
37
  'src/public/dist/995.pro.js' => '8d31a29e6bf1442b09d6da4e7ac4e2a6',
38
  'src/public/dist/admin.lite.js' => 'd912cf53deae92ad3e30e422de90a92d',
39
  'src/public/dist/admin.pro.js' => '71aefb85120a3ce466b0334bcbeac5d4',
40
- 'src/public/dist/banner_tcf.pro.js' => '7d0c2d50259467c53270b5b13ec638b2',
41
- 'src/public/dist/banner.lite.js' => '2eeb829f7e16d36ec564c544dfe70ff3',
42
- 'src/public/dist/banner.pro.js' => 'e288a0ab820de6b7603a5a68f7909818',
43
- 'src/public/dist/blocker_tcf.pro.js' => '7f293a1c58af9a65a68e7e557b86b17e',
44
- 'src/public/dist/blocker.lite.js' => '1cfdb3b494d37358f3adee79a4aa70b2',
45
- 'src/public/dist/blocker.pro.js' => 'cfc8c6338dae685c9cf10aabeee64d35',
46
  'src/public/dist/chunk-config-tab-blocker.lite.js' => 'd6ba8d68c8e6023a49394c037323210d',
47
  'src/public/dist/chunk-config-tab-blocker.pro.js' => '4e759926a299df1e425a05db11ac3380',
48
  'src/public/dist/chunk-config-tab-consent.lite.js' => '71218ebaa3a874e00e1d45dfeec12eaf',
1
  <?php
2
+ /* This file was automatically generated (Tue Sep 06 2022 11:35:26 GMT+0000 (Coordinated Universal Time)). */
3
  return [
4
  'src/public/dist/101.pro.js' => '899ef18452f89e84adb38475ccec6b94',
5
  'src/public/dist/164.lite.js' => '7d2bd40dae8fb1432a350b4b0010550d',
37
  'src/public/dist/995.pro.js' => '8d31a29e6bf1442b09d6da4e7ac4e2a6',
38
  'src/public/dist/admin.lite.js' => 'd912cf53deae92ad3e30e422de90a92d',
39
  'src/public/dist/admin.pro.js' => '71aefb85120a3ce466b0334bcbeac5d4',
40
+ 'src/public/dist/banner_tcf.pro.js' => '71400a98f24faecc8698955665dde97d',
41
+ 'src/public/dist/banner.lite.js' => '1d08e60ddbdc2b83aada512cad823cb2',
42
+ 'src/public/dist/banner.pro.js' => 'd0c67e06cbdd5c0a9ab8c16ca8b54993',
43
+ 'src/public/dist/blocker_tcf.pro.js' => '2e2879b57d22f1973326a6bf69585f16',
44
+ 'src/public/dist/blocker.lite.js' => '522cbbcb291ad56b7ad476defb2b7f80',
45
+ 'src/public/dist/blocker.pro.js' => 'f511ad44428b86ac7ed565f018c2f1d0',
46
  'src/public/dist/chunk-config-tab-blocker.lite.js' => 'd6ba8d68c8e6023a49394c037323210d',
47
  'src/public/dist/chunk-config-tab-blocker.pro.js' => '4e759926a299df1e425a05db11ac3380',
48
  'src/public/dist/chunk-config-tab-consent.lite.js' => '71218ebaa3a874e00e1d45dfeec12eaf',
inc/presets/pro/blocker/FacebookPagePluginPreset.php CHANGED
@@ -26,22 +26,26 @@ class FacebookPagePluginPreset extends \DevOwl\RealCookieBanner\presets\Abstract
26
  'attributes' => [
27
  'rules' => \array_merge(
28
  [
29
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
30
- '*facebook.com/plugins/page.php*',
31
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
32
- \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
33
- ],
34
- [
35
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
36
- '*fbcdn.net*',
37
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
38
- \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
39
- ],
40
- [
41
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
42
- 'div[class="fb-page"]',
43
- \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
44
- \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
 
 
 
 
45
  ],
46
  \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
47
  )
26
  'attributes' => [
27
  'rules' => \array_merge(
28
  [
29
+ [
30
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
31
+ '*facebook.com/plugins/page.php*',
32
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
33
+ \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
34
+ ],
35
+ [
36
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
37
+ '*fbcdn.net*',
38
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
39
+ \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
40
+ ],
41
+ [
42
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
43
+ 'div[class="fb-page"]',
44
+ \DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
45
+ \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
46
+ ],
47
+ // [Plugin Comp] Elementor PRO
48
+ 'div[class*="elementor-widget-facebook-page"]'
49
  ],
50
  \DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
51
  )
inc/presets/pro/blocker/GoogleMapsPreset.php CHANGED
@@ -131,7 +131,15 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
131
  // [Plugin Comp] https://github.com/themovation/th-widget-pack
132
  '*wp-content/plugins/th-widget-pack/js/themo-google-maps.js*',
133
  'div[class*="th-gmap-wrap"]',
134
- 'div[class*="th-map"]'
 
 
 
 
 
 
 
 
135
  ]
136
  ],
137
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
131
  // [Plugin Comp] https://github.com/themovation/th-widget-pack
132
  '*wp-content/plugins/th-widget-pack/js/themo-google-maps.js*',
133
  'div[class*="th-gmap-wrap"]',
134
+ 'div[class*="th-map"]',
135
+ // [Plugin Comp] https://ultimate.brainstormforce.com/docs/google-maps/
136
+ 'div[class*="ultimate_google_map"]',
137
+ // [Plugin Comp] https://agilestorelocator.com/
138
+ 'div[id="asl-storelocator"]',
139
+ '*wp-content/plugins/agile-store-locator*',
140
+ // [Plugin Comp] https://wordpress.org/plugins/wp-map-block/
141
+ '*wp-content/plugins/wp-map-block*',
142
+ 'div[class*="wpmapblockrender"]'
143
  ]
144
  ],
145
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
inc/presets/pro/blocker/OpenStreetMapPreset.php CHANGED
@@ -36,7 +36,10 @@ class OpenStreetMapPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlock
36
  // [Plugin Comp] https://wordpress.org/plugins/osm/
37
  '*/wp-content/plugins/osm/js/*',
38
  'div[id^="map_ol3js_"]',
39
- 'target: "map_ol3js_'
 
 
 
40
  ]
41
  ],
42
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/openstreetmap.png')
36
  // [Plugin Comp] https://wordpress.org/plugins/osm/
37
  '*/wp-content/plugins/osm/js/*',
38
  'div[id^="map_ol3js_"]',
39
+ 'target: "map_ol3js_',
40
+ // [Plugin Comp] https://wordpress.org/plugins/wp-map-block/
41
+ '*wp-content/plugins/wp-map-block*',
42
+ 'div[class*="wpmapblockrender"]'
43
  ]
44
  ],
45
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/openstreetmap.png')
inc/presets/pro/blocker/TrustindexIoPreset.php CHANGED
@@ -22,7 +22,16 @@ class TrustindexIoPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlocke
22
  'id' => self::IDENTIFIER,
23
  'version' => self::VERSION,
24
  'name' => $name,
25
- 'attributes' => ['rules' => ['*cdn.trustindex.io/loader.js*', 'div[src*="cdn.trustindex.io"]']],
 
 
 
 
 
 
 
 
 
26
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/trustindex-io.png')
27
  ];
28
  }
22
  'id' => self::IDENTIFIER,
23
  'version' => self::VERSION,
24
  'name' => $name,
25
+ 'attributes' => [
26
+ 'rules' => [
27
+ '*cdn.trustindex.io/loader.js*',
28
+ 'div[src*="cdn.trustindex.io"]',
29
+ // [Plugin Comp] https://wordpress.org/plugins/wp-reviews-plugin-for-google/
30
+ '*cdn.trustindex.io*',
31
+ '*wp-content/uploads/trustindex-google-widget.css*',
32
+ 'div[class*="ti-widget"]'
33
+ ]
34
+ ],
35
  'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/trustindex-io.png')
36
  ];
37
  }
inc/view/Blocker.php CHANGED
@@ -54,7 +54,11 @@ class Blocker {
54
  // [Plugin Comp] Elementor Pro Popups
55
  '[data-elementor-type="popup"]',
56
  // [Plugin Comp] https://ultimateblocks.com/content-toggle-accordion-block/
57
- '.wp-block-ub-content-toggle-accordion-content-wrap'
 
 
 
 
58
  ];
59
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
60
  /**
54
  // [Plugin Comp] Elementor Pro Popups
55
  '[data-elementor-type="popup"]',
56
  // [Plugin Comp] https://ultimateblocks.com/content-toggle-accordion-block/
57
+ '.wp-block-ub-content-toggle-accordion-content-wrap',
58
+ // [Plugin Comp] Impreza
59
+ '.w-popup-wrap',
60
+ // [Plugin Comp] Oxygen Builder
61
+ '.oxy-lightbox_inner[data-inner-content=true]'
62
  ];
63
  const OB_START_PLUGINS_LOADED_PRIORITY = (\PHP_INT_MAX - 1) * -1;
64
  /**
inc/view/ConfigPage.php CHANGED
@@ -91,14 +91,16 @@ class ConfigPage {
91
  __('Set privacy policy URL', RCB_TD)
92
  );
93
  }
94
- echo \sprintf(
95
- '<div class="notice notice-warning" id="rcb-services-with-empty-privacy-policy-notice"><p>%s</p><ul>%s</ul></div>',
96
- __(
97
- 'There are no privacy policies with further information linked for the following services in your cookie banner. We now consider these to be mandatory in order to comply with the information obligations under the GDPR. Please provide a privacy policy for each service!',
98
- RCB_TD
99
- ),
100
- \join('', $liOutput)
101
- );
 
 
102
  }
103
  /**
104
  * Creates an admin notice for preinstalled environments.
91
  __('Set privacy policy URL', RCB_TD)
92
  );
93
  }
94
+ if (\count($liOutput) > 0) {
95
+ echo \sprintf(
96
+ '<div class="notice notice-warning" id="rcb-services-with-empty-privacy-policy-notice"><p>%s</p><ul>%s</ul></div>',
97
+ __(
98
+ 'There are no privacy policies with further information linked for the following services in your cookie banner. We now consider these to be mandatory in order to comply with the information obligations under the GDPR. Please provide a privacy policy for each service!',
99
+ RCB_TD
100
+ ),
101
+ \join('', $liOutput)
102
+ );
103
+ }
104
  }
105
  /**
106
  * Creates an admin notice for preinstalled environments.
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.1.1
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.1.2
12
  * Text Domain: real-cookie-banner
13
  * Domain Path: /languages
14
  */
public/dist/banner.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- var realCookieBanner_banner;(()=>{var t,e={8556:t=>{t.exports={}},9382:(t,e,n)=>{"use strict";n.d(e,{n:()=>g});var o=n(6346),i=n(7169);function r(t,e){let n,o,i,r=!1,a="";if(t&&"none"!==t){const s="googleTagManager"===t,c="matomoTagManager"===t;s?(i="gtm",n="dataLayer",a="Google Tag Manager"):c&&(i="mtm",n="_mtm",a="Matomo Tag Manager"),(s||c)&&(o=()=>(window[n]=window[n]||[],window[n])),i&&e===i&&(r=!0)}return{getDataLayer:o,serviceIsManager:r,managerLabel:a,expectedManagerPresetId:i}}function a({decisionCookieName:t,tagManager:e,groups:n,essentialGroupSlug:o,type:a}){let s;const c=e&&"none"!==e,[l]=n.filter((({slug:t})=>t===o)),d={[l.id]:l.items.map((({id:t})=>t))};if("consent"===a){const e=(0,i.h)(t);!1!==e?s=e.consent:(console.warn("Something went wrong while reading the cookie, fallback to essentials only..."),s=d)}return"essentials"===a&&(s=d),{isManagerActive:c,selectedGroups:s,iterateServices:async function(t){for(const i of n)for(const n of i.items){var o;const c="all"===a||(null===(o=s[i.id])||void 0===o?void 0:o.indexOf(n.id))>-1,l=r(e,n.presetId);await t(i,n,c,l)}}}}var s=n(9575),c=n(1456),l=n(8542),d=n.n(l),u=n(2891),p=n(1829);var h=n(7563),f=n(5447),m=n(6028);async function g(t){await(0,m.C)();const{dataLayerPromise:e,isManagerOptOut:n,services:i,ready:r}=await async function(t){const e=[],{isManagerActive:n,iterateServices:i}=a(t),{skipOptIn:r}=t;let c=Promise.resolve(void 0);const l=[];return await i((async(t,i,a,{getDataLayer:c,serviceIsManager:d})=>{const{codeDynamics:u,codeOptIn:p,executeCodeOptInWhenNoTagManagerConsentIsGiven:h}=i;if(a){const a=n&&h,c="function"==typeof r&&r(i);a||c||l.push((0,o.K)(p,u));const d={group:t,service:i};document.dispatchEvent(new CustomEvent(s.g,{detail:d})),e.push(d)}})),{isManagerOptOut:!1,dataLayerPromise:c,services:e,ready:Promise.all(l)}}(t),{ready:l}=await async function(t,e,n){const i=[],{isManagerActive:r,iterateServices:s}=a(t);return e?(s(((t,n,o,{serviceIsManager:i})=>{const r=n.tagManagerOptInEventName;o&&r&&!i&&e.push({realCookieBannerOptInEvents:{[r]:!0},event:r})})),setTimeout((()=>s(((t,n,o,{serviceIsManager:i})=>{const r=n.tagManagerOptOutEventName;o||!r||i||e.push({realCookieBannerOptOutEvents:{[r]:!0},event:r})}))),1e3)):r&&n&&await s((async(t,{codeDynamics:e,codeOptIn:n,executeCodeOptInWhenNoTagManagerConsentIsGiven:r},a)=>{a&&r&&i.push((0,o.K)(n,e))})),{ready:Promise.all(i)}}(t,await e,n),g=Promise.all([r,l]);document.dispatchEvent(new CustomEvent(h.V,{detail:{services:i,ready:g}}));const{deleteHttpCookies:b,services:v,ready:y}=await async function(t,e){const n=[],{isManagerActive:i,iterateServices:r}=a(t),s=[],l=[];return await r((async(t,r,a)=>{const{id:h,codeDynamics:f,codeOptOut:m,deleteTechnicalDefinitionsAfterOptOut:g,isEmbeddingOnlyExternalResources:b,technicalDefinitions:v,executeCodeOptOutWhenNoTagManagerConsentIsGiven:y}=r;if(!a){const a=i&&y;(a&&e||!a)&&s.push((0,o.K)(m,f)),g&&!b&&(function(t,e){for(const{type:n,name:o}of t){const t=new RegExp((0,p.L)((0,u.c)(o,e)),"g");switch(n){case"http":for(const e of Object.keys(d().get()))t.test(e)&&d().remove(e);break;case"local":case"session":try{const e="local"===n?window.localStorage:window.sessionStorage;if(e)for(const n of Object.keys(e))if(t.test(n)){try{e.setItem(n,null)}catch(t){}let t=0;for(;e.getItem(n)&&t<100;)t++,e.removeItem(n)}}catch(t){continue}}}}(v,f),v.some((({type:t})=>"http"===t))&&l.push(h));const k={group:t,service:r};document.dispatchEvent(new CustomEvent(c.E,{detail:k})),n.push(k)}})),{services:n,ready:Promise.all(s),deleteHttpCookies:l}}(t,n);document.dispatchEvent(new CustomEvent(f.C,{detail:{services:v,deleteHttpCookies:b,ready:Promise.all([g,y])}}))}},8218:(t,e,n)=>{"use strict";n.d(e,{G:()=>r});var o=n(9382),i=n(7169);class r{constructor(t){this.options=void 0,this.options=t}applyCookies(t){return(0,o.n)({...t,...this.options})}getUserDecision(){return(0,i.h)(this.getOption("decisionCookieName"))}getDefaultDecision(t=!0){return function({groups:t,essentialGroupSlug:e},n=!0){const[o]=t.filter((({slug:t})=>t===e)),i={[o.id]:o.items.map((({id:t})=>t))};if(n)for(const e of t){if(e===o)continue;const t=e.items.filter((({legalBasis:t})=>"legitimate-interest"===t)).map((({id:t})=>t));t.length&&(i[e.id]=t)}return i}(this.options,t)}getOption(t){return this.options[t]}getOptions(){return this.options}}},7169:(t,e,n)=>{"use strict";n.d(e,{h:()=>a});var o=n(4001),i=n(8542),r=n.n(i);function a(t){const e=r().get(t);if(!e)return!(0,o.E)()&&(window.rcbDisabledCookieComp||!1);const n=function(t,e,n){const o=t.split(":");if(o.length<=3)return o;const i=o.slice(0,2);return i.push(o.slice(2).join(":")),i}(e);if(3!==n.length)return!1;const[i,a]=n,s=i.split(",");return{uuid:s.shift(),previousUuids:s,revision:a,consent:JSON.parse(n[2])}}},7766:(t,e,n)=>{"use strict";n.d(e,{I:()=>o});const o="RCB/Banner/Show"},9575:(t,e,n)=>{"use strict";n.d(e,{g:()=>o});const o="RCB/OptIn"},7563:(t,e,n)=>{"use strict";n.d(e,{V:()=>o});const o="RCB/OptIn/All"},1456:(t,e,n)=>{"use strict";n.d(e,{E:()=>o});const o="RCB/OptOut"},5447:(t,e,n)=>{"use strict";n.d(e,{C:()=>o});const o="RCB/OptOut/All"},6028:(t,e,n)=>{"use strict";n.d(e,{C:()=>a});const o=()=>{let t;return[!1,new Promise((e=>t=e)),t]},i={loading:o(),complete:o(),interactive:o()},r=["readystatechange","rocket-readystatechange","DOMContentLoaded","rocket-DOMContentLoaded","rocket-allScriptsLoaded"],a=(t,e="complete")=>new Promise((n=>{let o=!1;const a=()=>{(()=>{const{readyState:t}=document,[e,,n]=i[t];e||(i[t][0]=!0,n())})(),!o&&i[e][0]&&(o=!0,null==t||t(),setTimeout(n,0))};a();for(const t of r)document.addEventListener(t,a);i[e][1].then(a)}))},1829:(t,e,n)=>{"use strict";function o(t){const e=t.replace(/\*/g,"PLEACE_REPLACE_ME_AGAIN");return"^".concat((n=e,n.replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\".concat("","-]"),"g"),"\\$&")).replace(/PLEACE_REPLACE_ME_AGAIN/g,"(.*)"),"$");var n}n.d(e,{L:()=>o})},4001:(t,e,n)=>{"use strict";function o(t="test"){try{document.cookie="".concat(t,"=1");const e=-1!==document.cookie.indexOf("".concat(t,"="));return document.cookie="".concat(t,"=1; expires=Thu, 01-Jan-1970 00:00:01 GMT"),e}catch(t){return!1}}n.d(e,{E:()=>o})},2891:(t,e,n)=>{"use strict";n.d(e,{c:()=>i});const o=/{{([A-Za-z0-9_]+)}}/gm;function i(t,e){return t.replace(o,((t,n)=>Object.prototype.hasOwnProperty.call(e,n)?e[n]:t))}},4548:(t,e,n)=>{"use strict";n.d(e,{jb:()=>o,zm:()=>i,rG:()=>r,d3:()=>a,_W:()=>s,NY:()=>c,He:()=>l,i7:()=>d,Ng:()=>u,CT:()=>p,v4:()=>h,YO:()=>f,Gn:()=>m,Ti:()=>g,Ks:()=>b,dW:()=>v,Kh:()=>y,Wm:()=>k,Qt:()=>w,of:()=>x,fq:()=>C,WK:()=>S,jk:()=>A,Kx:()=>O});const o="consent-original",i="consent-click-original",r="_",a="consent-by",s="consent-required",c="consent-visual-use-parent",l="consent-visual-paint-mode",d="consent-inline",u="consent-inline-style",p="consent-id",h="script",f="consent-blocker-connected",m="consent-blocker-connected-pres",g="consent-transaction-complete",b="consent-transform-wrapper",v="1",y="consent-strict-hidden",k="consent-cb-reset-parent",w="1",x="consent-cb-reset-parent-is-ratio",C="consent-got-clicked",S="1",A="2",O="consent-thumbnail"},6346:(t,e,n)=>{"use strict";n.d(e,{L:()=>s,K:()=>c});var o=n(9749),i=n.n(o),r=n(2891),a=n(7033);const s="rcbInitiatorOnload";function c(t,e,n=document.body){return new Promise((o=>{t?i()(n,(0,r.c)(t,e),{done:o,error:t=>{console.error(t)},beforeWriteToken:t=>{const{attrs:e,booleanAttrs:n,src:o,href:i,content:r}=t;if(null!=n&&n["skip-write"])return!1;r&&(t.content=r.replace(/window\.onload\s+=/g,"window.".concat(s," =")));for(const t in e)if(e[t]=(0,a.l)(e[t]),"unique-write-name"===t&&document.querySelector('[unique-write-name="'.concat(e[t],'"]')))return!1;return o&&(t.src=(0,a.l)(o)),i&&(t.href=(0,a.l)(i)),t}}):o()}))}},3102:(t,e,n)=>{"use strict";n.d(e,{T:()=>o});const o="RCB/OptIn/ContentBlocker"},3743:(t,e,n)=>{"use strict";function o(t=0){setTimeout((()=>{try{window.dispatchEvent(new Event("resize"))}catch(t){}}),t)}n.d(e,{s:()=>o})},7033:(t,e,n)=>{"use strict";n.d(e,{l:()=>i});var o=n(3137);function i(t){var e;return(0,o.C)(t)?null===(e=(new DOMParser).parseFromString('<a href="'.concat(t,'"></a>'),"text/html").querySelector("a"))||void 0===e?void 0:e.href:(new DOMParser).parseFromString(t,"text/html").documentElement.textContent}},3137:(t,e,n)=>{"use strict";function o(t){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(t)}n.d(e,{C:()=>o})},9586:(t,e,n)=>{"use strict";n.d(e,{w:()=>i});var o=n(7932);function i(t,e){const n=[];let i=t.parentElement;for(;null!==i;)i.nodeType===Node.ELEMENT_NODE&&(0,o.D)(i,e)&&n.push(i),i=i.parentElement;return n}},4902:(t,e,n)=>{"use strict";n.d(e,{X:()=>r});var o=n(5213),i=n(7029).h;const r=({ms:t=100,chars:e=["&#9719;","&#9718;","&#9717;","&#9716;"]})=>{const[n,r]=(0,o.eJ)(1);return(0,o.d4)((()=>{const e=setInterval((()=>{r(n+1)}),t);return()=>clearInterval(e)}),[n]),i("span",{dangerouslySetInnerHTML:{__html:e[n%4]}})}},8559:(t,e,n)=>{"use strict";n.d(e,{P:()=>h});var o=n(4741),i=n(5213),r=n(2087),a=n(1680),s=n(7029).h;const c=({icon:t,...e})=>{const n=(0,i.Ye)((()=>(0,a.x)(t,{extraSVGAttrs:{style:"width:auto;height:100%;",fill:"currentColor"}})),[t]);return s("div",(0,o.Z)({},e,{dangerouslySetInnerHTML:{__html:n}}))};var l=n(4769),d=n(3282),u=n(8982),p=n(7029).h;const h=({hideCheckbox:t,isPartial:e,isChecked:n,isDisabled:a,fontSize:s,onClick:h,children:f,after:m,...g})=>{const b=e?l.Z:d.Z,v=(0,u.w)(),[y,k]=(0,i.eJ)(!1);return(0,i.bt)((()=>{k(!0)}),[]),p(i.HY,null,!t&&p(c,(0,o.Z)({icon:b,onClick:h},function({layout:{borderRadius:t},group:{headlineFontSize:e,checkboxBg:n,checkboxBorderWidth:o,checkboxBorderColor:i,checkboxActiveBg:a,checkboxActiveBorderColor:s,checkboxActiveColor:c},customCss:{antiAdBlocker:l},mobile:d,pageRequestUuid4:u},p,h,f,m){let g=m||e;g=u?(0,r.D)(d,u,g):g;const b=u?(0,r.D)(d,u,+o):+o,v=+g+2*b+6;return{className:"y"===l?void 0:"rcb-checkbox",style:{cursor:f?"not-allowed":"pointer",opacity:f?.5:void 0,color:h?c:n,display:p?"inline-block":"none",background:h?a:n,border:"".concat(b,"px solid ").concat(h?s:i),padding:3,height:v,width:v,marginRight:10,borderRadius:+t,verticalAlign:"middle",lineHeight:0,boxSizing:"border-box"}}}(v,y,n,a,s),g)),f&&p("span",{style:{verticalAlign:"middle",cursor:"pointer"}},p("span",{onClick:h},f),m))}},229:(t,e,n)=>{"use strict";n.d(e,{V:()=>g});var o=n(4741),i=n(8982),r=n(8559),a=n(5213),s=n(3137),c=n(2121),l=n(2087),d=n(7029).h;const u=({label:t,value:e,children:n,printValueAs:r})=>{const a=(0,i.w)(),{i18n:{yes:u,no:p}}=a;let h="string"==typeof e&&(0,s.C)(e)?d("a",{href:e,style:{wordBreak:"break-all",...(0,c.c)(a,!1).style},target:"_blank",rel:"noopener noreferrer"},e):"string"==typeof e?d("span",{dangerouslySetInnerHTML:{__html:e}}):e;return"boolean"===r&&(h=h?u:p),d("div",(0,o.Z)({key:t},function({group:{groupBorderWidth:t,groupBorderColor:e},customCss:{antiAdBlocker:n},mobile:o,pageRequestUuid4:i}){return{className:"y"===n?void 0:"rcb-cookie-prop",style:{borderLeft:(i?(0,l.D)(o,i,t):t)>0?"1px solid ".concat(e):void 0,paddingLeft:15}}}(a)),t&&d("strong",null,t,": "),h,!!n&&d("div",null,n))};var p=n(2891),h=n(7029).h;const f=({cookie:{purpose:t,provider:e,providerPrivacyPolicyUrl:n,legalBasis:o,ePrivacyUSA:r,isEmbeddingOnlyExternalResources:s,technicalDefinitions:c,codeDynamics:l},isEssentialGroup:d})=>{const{i18n:f,ePrivacyUSA:m}=(0,i.w)(),g={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"}};return h(a.HY,null,!!t&&h(u,{label:f.purpose,value:t}),h(u,{label:f.legalBasis,value:"legal-requirement"===o?f.legalRequirement:"legitimate-interest"===o||d?f.legitimateInterest:f.consent}),h(u,{label:f.provider,value:e}),!!n&&h(u,{label:f.providerPrivacyPolicyUrl,value:n}),!!m&&h(u,{label:f.ePrivacyUSA,value:r,printValueAs:"boolean"}),!s&&c.map((({type:t,name:e,host:n,duration:o,durationUnit:i,isSessionDuration:r,purpose:a})=>h(u,{key:e,label:f.technicalCookieDefinition,value:h("span",{style:{fontFamily:"monospace"}},(0,p.c)(e,l))},h(u,{label:f.type,value:g[t].name}),!!a&&h(u,{label:f.purpose,value:a}),!!n&&h(u,{label:f.host,value:h("span",{style:{fontFamily:"monospace"}},n)}),h(u,{label:f.duration,value:["local","indexedDb","flash"].indexOf(t)>-1?f.noExpiration:r||"session"===t?"Session":"".concat(o," ").concat(f.durationUnit[i])})))))};var m=n(7029).h;const g=({cookie:t,checked:e,disabled:n,onToggleCheck:a,propertyListProps:s={}})=>{const{name:c}=t,l=(0,i.w)(),{group:{descriptionFontSize:d}}=l;return m("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-cookie",style:{marginTop:10}}}(l),m("div",{style:{marginBottom:10}},m(r.P,{isChecked:e,isDisabled:n,fontSize:d,onClick:a},m("strong",null,c))),m(f,(0,o.Z)({cookie:t},s)))}},8523:(t,e,n)=>{"use strict";n.d(e,{u:()=>c});var o=n(4741),i=n(5213),r=n(3428),a=n(9707),s=n(7029).h;const c=(0,i.Gp)((({children:t,className:e,title:n,position:i="top",color:c,size:l="large",always:d,rounded:u,noAnimate:p,bounce:h,...f},m)=>((0,a.G)(r,"hint-css",!0),s("div",(0,o.Z)({style:{position:"relative",display:"inline"},ref:m,"aria-label":n,className:"hint--".concat(i," hint--").concat(l," ").concat(c?"hint--".concat(c):""," ").concat(d?"hint--always":""," ").concat(u?"hint--rounded":""," ").concat(p?"hint--no-animate":""," ").concat(h?"hint--bounce":""," ").concat(e||"")},f),t))))},4766:(t,e,n)=>{"use strict";n.d(e,{k:()=>i,S:()=>r});var o=n(5213);class i{static Context(){return this.context=this.context||(0,o.kr)({})}}function r(){return(0,o.qp)(i.Context())}i.context=void 0},1347:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i,_:()=>r});var o=n(5213);class i{static Context(){return this.context=this.context||(0,o.kr)({})}}function r(){return(0,o.qp)(i.Context())}i.context=void 0},6092:(t,e,n)=>{"use strict";n.d(e,{g:()=>g});var o=n(4741),i=n(5213),r=n(8982),a=n(3258),s=n(2087),c=n(7029).h;const l=({children:t,...e})=>{const n=(0,r.w)(),[a,l]=(0,i.eJ)(!1);return c("a",(0,o.Z)({onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1)},function({footerDesign:{fontSize:t,fontColor:e,hoverFontColor:n,fontInheritFamily:o,fontFamily:i},design:{linkTextDecoration:r},customCss:{antiAdBlocker:a},mobile:c,pageRequestUuid4:l},d=!1){return{className:"y"===a?void 0:"rcb-footer-link",style:{textDecoration:r,fontSize:l?(0,s.D)(c,l,+t):+t,color:d?n:e,fontFamily:o?void 0:i,padding:"0 5px"}}}(n,a),e),t)};var d=n(8523),u=n(7029).h;const p=({poweredLink:t,affiliate:e})=>u(l,{href:e?e.link:t.href,target:t.target,key:"powered-by"},u("span",{dangerouslySetInnerHTML:{__html:t.innerHTML}}),e&&u(d.u,{title:e.description,position:"top-left"}," ",e.labelBehind));var h=n(7029).h;function f(t,e){const n=t.filter(Boolean);return 0===n.length?null:n.reduce(((t,n,o)=>t.length?[...t,h(i.HY,{key:o},e),n]:[n]),[])}var m=n(7029).h;function g({onClose:t,putPoweredByLinkInRow:e,row1:n}={}){const{i18n:{close:s},footerDesign:{poweredByLink:c,linkTarget:d},poweredLink:u,affiliate:h}=(0,r.w)(),{linkPrivacyPolicy:g,linkImprint:b}=(0,a.p)(),v="_blank"===d?{target:"_blank",rel:"noopener"}:{},y=[[t&&m(l,{href:"#",onClick:t,key:"close"},m("strong",null,s)),...n||[],g&&m(l,(0,o.Z)({href:g.url},v,{key:"privacyPolicy"}),g.label),b&&m(l,(0,o.Z)({href:b.url},v,{key:"imprint"}),b.label)].filter(Boolean),[]];u&&c&&y[e||0].push(m(p,{key:"poweredBy",poweredLink:u,affiliate:h}));const k=(0,i.I4)((t=>f(t.map((t=>t.length?m(i.HY,{key:t[0].key},f(t,m(i.HY,null," • "))):null)),m("br",null))),[]);return{rows:y,render:k}}},6268:(t,e,n)=>{"use strict";n.d(e,{k:()=>s});var o=n(8982),i=n(3258);function r(t,e){return t.length>1&&t.splice(t.length-1,0,"{{andSeparator}}"),t.join(", ").replace(/,\s+{{andSeparator}},\s+/g,e)}const a='<sup style="vertical-align:top;line-height:100%;position:initial;">';function s({disableDataProcessingInUnsafeCountries:t,disableAgeNotice:e,disableListServicesNotice:n}={}){const{blocker:s,groups:c,ePrivacyUSA:l,ageNotice:d,listServicesNotice:u,texts:{description:p,ePrivacyUSA:h,ageNoticeBanner:f,listServicesNotice:m,consentForwardingExternalHosts:g},tcf:b,consentForwardingExternalHosts:v,individualPrivacyOpen:y,individualTexts:{description:k},essentialGroup:w,i18n:{andSeparator:x,tcf:C},keepVariablesInTexts:S}=(0,o.w)(),{linkPrivacyPolicy:A}=(0,i.p)();let O="";v&&!S&&(O=g.replace(/{{websites}}/g,v.join(", ")));let D=[s?s.description:y?k:p,O].filter(Boolean).join(" ");S||(D=D.replace(/{{privacyPolicy}}(.*){{\/privacyPolicy}}/g,A?'<a href="'.concat(A.url,'" style="text-decoration:underline;color:inherit;" onmouseenter="this.style.textDecoration=\'none\'" onmouseleave="this.style.textDecoration=\'underline\'" target="_blank">$1</a>'):"$1"));const I=c.map((({items:t})=>t.filter((({ePrivacyUSA:t})=>t)))).flat(),E=b?Object.values(b.gvl.vendors).filter((t=>{var e;return(null===(e=t.additionalInformation)||void 0===e?void 0:e.internationalTransfers)||1===b.original.vendorConfigurations[t.id].ePrivacyUSA})):[];let B=!t&&(I.length>0||E.length>0)&&l?h:"";const T=d&&!e?f:"";let P="";if(u&&!n){const t=m.indexOf("{{services}}")>-1&&m.indexOf("{{serviceGroups}}")>-1,e=c.filter((({slug:t})=>t!==w)),n="~;~",o=r(e.map((({items:e},o)=>e.map((({name:e,ePrivacyUSA:n})=>"".concat(e).concat(a).concat([t?o+1:"",B&&n?"U":""].filter(Boolean).join(","),"</sup>"))).join(n))).join(n).split(n),x);if(o){const n=r(e.map((({name:e},n)=>"".concat(e).concat(a).concat(t?n+1:"","</sup>"))),x);P="<span>".concat(m,"</span>").concat(b&&!y?" <span>".concat(C.listOfServicesAppendix,"</span>"):""),S||(P=P.replace(/{{services}}/g,o).replace(/{{serviceGroups}}/g,n)),B&&(B+="".concat(a,"U</sup>"))}}return{description:D,teachings:[B,T,P].filter(Boolean)}}},8982:(t,e,n)=>{"use strict";n.d(e,{w:()=>r});var o=n(4766),i=n(1347);function r(){const t=(0,o.S)(),e=(0,i._)();return t.groups?t:e}},3258:(t,e,n)=>{"use strict";n.d(e,{p:()=>i});var o=n(8982);function i(){const{legal:{privacyPolicy:t,privacyPolicyExternalUrl:e,privacyPolicyIsExternalUrl:n,privacyPolicyLabel:i,imprint:r,imprintExternalUrl:a,imprintIsExternalUrl:s,imprintLabel:c},pageByIdUrl:l}=(0,o.w)(),d=(0,o.w)().pageIdToPermalink||{};let u=t>0?d[t]||"".concat(l,"=").concat(t):void 0,p=r>0?d[r]||"".concat(l,"=").concat(r):void 0;return n&&(u=e),s&&(p=a),{linkPrivacyPolicy:!(!i||!u)&&{url:u,label:i},linkImprint:!(!c||!p)&&{url:p,label:c}}}},9707:(t,e,n)=>{"use strict";n.d(e,{G:()=>r});var o=n(5213);let i=0;function r(t,e,n){const r=(0,o.Ye)((()=>"react-use-plain-css-".concat(e||(i++).toString(36))),[]);return(0,o.bt)((()=>{let e=document.getElementById(r);return e||(e=document.createElement("style"),e.style.type="text/css",e.id=r,document.getElementsByTagName("head")[0].appendChild(e)),e.innerHTML=t,()=>{var t;n||null===(t=e.parentNode)||void 0===t||t.removeChild(e)}}),[t,n]),r}},7613:(t,e,n)=>{"use strict";n.d(e,{W:()=>i});var o=n(2087);function i({bodyDesign:{teachingsInheritTextAlign:t,teachingsTextAlign:e,teachingsInheritFontSize:n,teachingsFontSize:i,teachingsInheritFontColor:r,teachingsFontColor:a},customCss:{antiAdBlocker:s},mobile:c,pageRequestUuid4:l}){return{className:"y"===s?void 0:"rcb-teachings",style:{marginTop:7,display:"inline-block",textAlign:t?void 0:e,fontSize:n?void 0:l?(0,o.D)(c,l,+i):+i,color:r?void 0:a}}}},8346:(t,e,n)=>{"use strict";function o({layout:{borderRadius:t},bodyDesign:{teachingsSeparatorActive:e,teachingsSeparatorWidth:n,teachingsSeparatorHeight:o,teachingsSeparatorColor:i},customCss:{antiAdBlocker:r}}){return{className:"y"===r?void 0:"rcb-teachings-separator",style:{marginTop:7,display:"inline-block",maxWidth:"100%",borderRadius:+t,width:+n,height:e?+o:0,background:i}}}n.d(e,{V:()=>o})},2121:(t,e,n)=>{"use strict";function o({design:{linkTextDecoration:t},group:{linkColor:e,linkHoverColor:n},customCss:{antiAdBlocker:o}},i){return{className:"y"===o?void 0:"rcb-group-more",style:{color:i?n:e,textDecoration:t}}}n.d(e,{c:()=>o})},6730:(t,e,n)=>{"use strict";n.d(e,{a:()=>i});var o=n(2087);function i({headerDesign:{fontSize:t,fontColor:e,fontInheritFamily:n,fontFamily:i,fontWeight:r},customCss:{antiAdBlocker:a},mobile:s,pageRequestUuid4:c},l){return{className:"y"===a?void 0:"rcb-headline",style:{color:e,lineHeight:1.8,fontSize:c?(0,o.D)(s,c,+t):+t,fontFamily:n?void 0:i,fontWeight:r,paddingRight:l?20:void 0}}}},2087:(t,e,n)=>{"use strict";function o({enabled:t,scalePercent:e,scalePercentVertical:n},o,i,r,a=!1){return i}n.d(e,{D:()=>o})},5672:(t,e,n)=>{"use strict";n.d(e,{U:()=>i});var o=n(7932);function i(t){const e=document.getElementById(t),n=document.createElement("div");return window.rcbPoweredByCacheOuterHTML?n.innerHTML=window.rcbPoweredByCacheOuterHTML:(0,o.D)(e,"a")&&e.innerHTML.toLowerCase().indexOf("Real Cookie Banner")&&(window.rcbPoweredByCacheOuterHTML=e.outerHTML,n.innerHTML=window.rcbPoweredByCacheOuterHTML,e.parentNode.removeChild(e)),n.children[0]}window.rcbPoweredByCacheOuterHTML=""},7932:(t,e,n)=>{"use strict";function o(t,e){const n="undefined"!=typeof Element?Element.prototype:{},o=n.matches||n.matchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector;if(!t||1!==t.nodeType||!t.parentElement)return!1;if(o)return o.call(t,e);const i=t.parentElement.querySelectorAll(e);for(const e in i)if(i[e]===t)return!0;return!1}n.d(e,{D:()=>o})},3075:(t,e,n)=>{"use strict";n.d(e,{D:()=>y});var o=n(4312),i=n(6811),r=n(5566),a=n.n(r),s=n(6659),c=n(8542),l=n.n(c),d=n(830),u=n.n(d);function p(t,e,n){return t.search=s.stringify(n?a().all([...e,s.parse(t.search)]):e,!0),t}const h={},f={};async function m(t,e){if(void 0!==e){const n=f[t]||new Promise((async(n,o)=>{try{const i=await window.fetch(e);if(i.ok){const e=await i.text();t===e?o():(h[t]=e,n(e))}else o()}catch(t){o()}}));return f[t]=n,n}{if(void 0===t)return;await Promise.all(Object.values(f));let e=t;for(;h[e]&&(e=h[e],h[e]!==t););return Promise.resolve(e)}}async function g(t,e,n){const o=e.clone();try{return await e.json()}catch(e){const r=await o.text();if(""===r&&[i.O.DELETE,i.O.PUT].indexOf(n)>-1)return;let a;console.warn("The response of ".concat(t," contains unexpected JSON, try to resolve the JSON line by line..."),{body:r});for(const t of r.split("\n"))if(t.startsWith("[")||t.startsWith("{"))try{return JSON.parse(t)}catch(t){a=t}throw a}}var b=n(8556),v=n.n(b);async function y({location:t,options:e,request:n,params:r,settings:c={},cookieValueAsParam:d,multipart:h=!1,sendRestNonce:f=!0}){const b=function({location:t,params:e={},nonce:n=!0,options:r,cookieValueAsParam:a}){const c=new URL(r.restRoot),d=s.parse(c.search),h=d.rest_route||c.pathname,f=[],m=t.path.replace(/:([A-Za-z0-9-_]+)/g,((t,n)=>(f.push(n),e[n]))),g={};for(const t of Object.keys(e))-1===f.indexOf(t)&&(g[t]=e[t]);a&&(g._httpCookieInvalidate=u()(JSON.stringify(a.map(l().get)))),c.protocol=window.location.protocol;const b=(0,o.Ab)(h)+(0,o.XO)(t.namespace||r.restNamespace)+m;return d.rest_route?d.rest_route=b:c.pathname=b,n&&r.restNonce&&(d._wpnonce=r.restNonce),p(c,d),["wp-json/","rest_route="].filter((t=>c.toString().indexOf(t)>-1)).length>0&&t.method&&t.method!==i.O.GET&&p(c,[{_method:t.method}],!0),p(c,[r.restQuery,g],!0),c.toString()}({location:t,params:r,nonce:!1,options:e,cookieValueAsParam:d});["wp-json/","rest_route="].filter((t=>b.indexOf(t)>-1)).length>0&&t.method&&t.method!==i.O.GET?c.method=i.O.POST:c.method=t.method||i.O.GET;const k=new URL(b),w=-1===["HEAD","GET"].indexOf(c.method);!w&&n&&p(k,[n],!0);const x=k.toString();let C;w&&(C=h?v()(n,"boolean"==typeof h?{}:h):JSON.stringify(n));const S=await m(e.restNonce),A=void 0!==S,O=a().all([c,{headers:{..."string"==typeof C?{"Content-Type":"application/json;charset=utf-8"}:{},...A&&f?{"X-WP-Nonce":S}:{},Accept:"application/json, */*;q=0.1"}}]);O.body=C;const D=await window.fetch(x,O);if(!D.ok){let o,a=!1;try{if(o=await g(x,D,t.method),"private_site"===o.code&&403===D.status&&A&&!f&&(a=!0),"rest_cookie_invalid_nonce"===o.code&&A){const{restRecreateNonceEndpoint:t}=e;try{await m(S,t),a=!0}catch(t){}}}catch(t){}if(a)return await y({location:t,options:e,multipart:h,params:r,request:n,sendRestNonce:!0,settings:c});c.method===i.O.GET&&(window.detectCorruptRestApiFailed=(window.detectCorruptRestApiFailed||0)+1);const s=D;throw s.responseJSON=o,s}return g(x,D,t.method)}},6811:(t,e,n)=>{"use strict";var o;n.d(e,{O:()=>o}),function(t){t.GET="GET",t.POST="POST",t.PUT="PUT",t.DELETE="DELETE",t.PATCH="PATCH"}(o||(o={}))},4312:(t,e,n)=>{"use strict";n.d(e,{XO:()=>o,Ab:()=>i,sE:()=>r});const o=t=>t.endsWith("/")||t.endsWith("\\")?o(t.slice(0,-1)):t,i=t=>"".concat(o(t),"/"),r=t=>{const e=window[t.replace(/-([a-z])/g,(t=>t[1].toUpperCase()))];return"".concat(e.publicUrl).concat(e.chunkFolder,"/")}},9302:(t,e,n)=>{"use strict";n.d(e,{h:()=>s});var o=n(3438),i=n(4548),r=n(3102),a=n(1829);function s(t,e=document.createElement("div")){return new Promise((n=>{let s;const{blocker:c}=(0,o.u)(),l=!e.parentElement;t:for(const e of c){const{rules:n}=e;for(const o of n){const n=(0,a.L)(o);if(t.match(n)){s=e;break t}}}s?(e.setAttribute(i.d3,"services"),e.setAttribute(i._W,s.services.join(",")),e.setAttribute(i.CT,s.id.toString()),e.addEventListener(r.T,(()=>{l&&e.remove(),n()})),l&&document.body.appendChild(e)):n()}))}},9181:(t,e,n)=>{"use strict";n.r(e),n.d(e,{consent:()=>ae,consentAll:()=>se,consentSync:()=>re,unblock:()=>ne.h});var o={};n.r(o),n.d(o,{consent:()=>ae,consentAll:()=>se,consentSync:()=>re,unblock:()=>ne.h});var i=n(5213),r=n(3438),a=n(625),s=n(6886),c=n(8218),l=n(9382),d=n(7766),u=n(6028),p=n(4001);const h=async({supportsCookiesName:t})=>!(0,p.E)(t)&&"essentials";var f=n(7169),m=n(4717),g=n.n(m);function b(){const{userAgent:t}=navigator;return!!t&&!/chrome-lighthouse/i.test(t)&&g()(t)}const v=(t,e=1e4,n=!0)=>async({decisionCookieName:o,revisionHash:i})=>{if(b()||!n)return!1;const r=(0,f.h)(o);if(r){const{revision:t}=r;if(i===t)return"consent"}try{const{predecision:n}=await(a=t(),s=e,new Promise(((t,e)=>{a.then(t,e);const n=new Error("Timed out");setTimeout(e,s,n)})));return n}catch(t){return!1}var a,s},y=(t=!0)=>async({decisionCookieName:e,groups:n,essentialGroupSlug:o})=>{const[i]=n.filter((({slug:t})=>t===o));if(!1!==(0,f.h)(e)||!t)return!1;for(const t of n)if(t!==i)for(const{legalBasis:e}of t.items)if("legitimate-interest"===e)return!1;return!!function(){try{const t=window;if((t.doNotTrack||t.navigator.doNotTrack||t.navigator.msDoNotTrack||"msTrackingProtectionEnabled"in t.external)&&("1"==t.doNotTrack||"yes"==t.navigator.doNotTrack||"1"==t.navigator.doNotTrack||"1"==t.navigator.msDoNotTrack||t.external.msTrackingProtectionEnabled()))return!0}catch(t){}return!1}()&&"dnt"},k=async({decisionCookieName:t,revisionHash:e})=>{const n=(0,f.h)(t);if(!1===n)return!1;const{revision:o}=n;return e===o&&"consent"};var w=n(3075),x=n(6811);const C={path:"/consent/dynamic-predecision",method:x.O.POST};function S(t){const{legal:{imprint:e,imprintHide:n,privacyPolicy:o,privacyPolicyHide:i},pageId:r}=t;return[n&&+e,i&&+o].filter(Boolean).indexOf(r)>-1}var A=n(6423),O=n(7563);function D(){const t=(0,i.Ye)((()=>window.innerWidth),[])<700,e=(0,i.Ye)((()=>{const t=window.navigator.userAgent.toLowerCase();return 4===["firefox","gecko","mobile","android"].map((e=>t.indexOf(e)>-1)).filter(Boolean).length}),[]);return(0,i.I4)((({animationIn:n,animationInOnlyMobile:o,animationOut:i,animationOutOnlyMobile:r})=>{let a=o?t?n:"none":n,s=r?t?i:"none":i;return e&&(a="none",s="none"),{useAnimationIn:a,useAnimationOut:s}}),[])}const I=t=>{t&&(t.preventDefault(),t.stopPropagation())};var E=n(4766),B=n(4741),T=n(3743),P=n(9707),N=n(9586),R=n(7932);const z='[href^="#consent-"]';var L=n(2087);function H(t,e){const[n,o]=(0,i.eJ)(0),[r,a]=(0,i.eJ)(0),[s,c]=(0,i.eJ)(t),[l,d]=(0,i.eJ)(void 0),[u,p]=(0,i.eJ)(e),[h,f]=(0,i.eJ)(void 0);return(0,i.d4)((()=>{n>0&&("none"===t?c(t):(c("none"),d(t))),o(n+1)}),[t]),(0,i.d4)((()=>{r>0&&(0===e?p(e):(p(0),f(e),c("none"),d(t))),a(r+1)}),[e]),(0,i.d4)((()=>{void 0!==l&&(c(l),d(void 0))}),[l]),(0,i.d4)((()=>{void 0!==h&&(p(h),f(void 0))}),[h]),[s,u]}function W(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function M(t,e){const{r:n,g:o,b:i}=W(t);return"rgba(".concat(n,", ").concat(o,", ").concat(i,", ").concat(e/100,")")}var _=n(7029).h;function Y({isVisible:t,animationIn:e,animationOut:n,animationInDuration:o,animationOutDuration:i,animationInDelay:r,animationOutDelay:a}){return t?{animation:e,duration:o,delay:r}:{animation:n,duration:i,delay:a}}const U=({animateOnMount:t=!0,isVisible:e=!0,animationIn:n="fadeIn",animationOut:o="fadeOut",animationInDelay:r=0,animationOutDelay:a=0,animationInDuration:s=1e3,animationOutDuration:c=1e3,className:l="",style:d={},children:u})=>{const[{animation:p,duration:h,delay:f},m]=(0,i.eJ)(t?Y({isVisible:e,animationIn:n,animationOut:o,animationInDelay:r,animationOutDelay:a,animationInDuration:s,animationOutDuration:c}):{animation:"",delay:void 0,duration:0});(0,i.d4)((()=>{m(Y({isVisible:e,animationIn:n,animationOut:o,animationInDelay:r,animationOutDelay:a,animationInDuration:s,animationOutDuration:c}))}),[e,n,o,r,a,s,c]);const g="animate__animated animate__".concat(p," ").concat(l),b=p?{}:{opacity:e?1:0,transition:"opacity ".concat(f,"ms")};return _("div",{className:g,style:{animationDelay:"".concat(f,"ms"),animationDuration:"".concat(h,"ms"),pointerEvents:e?"all":"none",...d,...b}},u)};function F(t,e){const{pageRequestUuid4:n}=(0,E.S)(),o=(0,P.G)("","useRenderedHeightsAsCssVars-".concat(e)),r=document.getElementById(o);(0,i.d4)((()=>{let o=0;const i=()=>{const i=t.getBoundingClientRect().height;o!==i&&(o=i,r.innerHTML="#".concat(n,"{--rendered-height-").concat(e,": ").concat(Math.floor(i),"px;--rendered-height-raw-").concat(e,": ").concat(i,"px}"))};if(!t)return()=>{};const a=document.querySelector("#".concat(n,' div[class*="animate__"]'));if(a.addEventListener("animationend",i),window.ResizeObserver){const e=new ResizeObserver(i);return e.observe(t),()=>{e.disconnect(),a.removeEventListener("animationend",i)}}{const t=setInterval(i,150);return()=>{clearInterval(t),a.removeEventListener("animationend",i)}}}),[t,e])}var G=n(6730);function q(){const{individualPrivacyOpen:t,onSave:e,updateGroupChecked:n,updateCookieChecked:o,groups:r,essentialGroup:a,updateIndividualPrivacyOpen:s,activeAction:c,onClose:l}=(0,E.S)(),d=t?"ind_all":"main_all",u=t?"ind_essential":"main_essential",p=t?"ind_close_icon":"main_close_icon",h=t?"ind_custom":"main_custom",f={buttonClickedAll:d,buttonClickedEssentials:u,buttonClickedCloseIcon:p,buttonClickedCustom:h,acceptAll:(0,i.I4)((()=>{r.forEach((t=>n(t.id,!0))),e(!1,d)}),[d]),acceptEssentials:(0,i.I4)(((t=!1)=>{r.forEach((({slug:t,id:e,items:i})=>{if(t===a)n(e,!0);else for(const{legalBasis:t,id:n}of i)o(e,n,"legitimate-interest"===t)})),e(!1,t?p:u)}),[u]),acceptIndividual:(0,i.I4)((()=>e(!1,h)),[h]),openIndividualPrivacy:(0,i.I4)((()=>{s(!0)}),[s])};return{...f,closeIcon:(0,i.I4)((()=>{c?l():f.acceptEssentials(!0)}),[c,l,f.acceptEssentials])}}var X=n(7778);const j=({children:t,className:e,tag:n="div",renderInContainer:o})=>{const[r]=(0,i.eJ)((()=>{const t=document.createElement(n);return e&&t.classList.add(e),t}));return(0,i.d4)((()=>(document.body.appendChild(r),()=>{document.body.removeChild(r)})),[]),(0,i.jz)(t,o||r)};var J=n(8523),V=n(7029).h;let Z=0;const $=({width:t,color:e,tooltipText:n,framed:o,renderInContainer:r,tooltipAlways:a,onClick:s,thickness:c=1})=>{const l=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),d=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),u=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),p=(0,i.sO)(),h=(0,X.EL)(p);return(0,P.G)("#".concat(u,", #").concat(l," {\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: calc(").concat(t,"px / 2 * -1);\n display: block;\n width: ").concat(t,"px;\n height: ").concat(t,"px; \n pointer-events: none;\n}\n\n#").concat(l," {\n position: absolute !important;\n}\n\n#").concat(l,", #").concat(d," {\n cursor: pointer;\n pointer-events: all;\n ").concat(o?"outline: rgb(255, 94, 94) solid 5px;":"","\n}\n\n#").concat(d," {\n position: fixed !important;\n ").concat(h?"top: ".concat(h.y,"px;left: ").concat(h.x,"px;display:block;"):"display:none;","\n width: ").concat(t,"px;\n height: ").concat(t,"px;\n z-index: 99;\n}\n#").concat(d,":after, #").concat(l,":after {\n width: auto !important;\n white-space: nowrap !important;\n}\n#").concat(d,">span:before, #").concat(d,">span:after,\n#").concat(l,">span:before, #").concat(l,">span:after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: ").concat(c,"px;\n height: ").concat(t,"px;\n background-color: ").concat(e,";\n transform: rotate(45deg) translate(-50%, -50%);\n transform-origin: top left;\n transition: all 420ms;\n content: '';\n opacity: 0.5;\n pointer-events: none;\n}\n#").concat(d,">span:after,\n#").concat(l,">span:after {\n transform: rotate(-45deg) translate(-50%, -50%);\n}\n#").concat(d,">span:hover:before, #").concat(d,">span:hover:after,\n#").concat(l,">span:hover:before, #").concat(l,">span:hover:after {\n opacity: 1;\n width: ").concat(c+1,"px;\n}")),r?V(i.HY,null,V("div",{id:u,ref:p}),(null==h?void 0:h.y)>0&&V(j,{renderInContainer:r},V(J.u,{title:n,id:d,onClick:s,position:h.y>50?"top-left":"left",always:a},V("span",null)))):V(J.u,{title:n,id:l,onClick:s,position:"top-left",always:a},V("span",null))};var Q=n(7029).h;const K=()=>{const{headerDesign:{fontSize:t,fontColor:e},texts:{acceptEssentials:n},mobile:o,activeAction:i,pageRequestUuid4:r,i18n:{close:a,closeWithoutSaving:s},buttonClicked:c=""}=(0,E.S)(),{buttonClickedCloseIcon:l,closeIcon:d}=q(),u=document.getElementById(r);return Q($,{width:(0,L.D)(o,r,t),color:e,tooltipText:i?"change"===i?s:a:n,tooltipAlways:(null==u?void 0:u.clientWidth)<700,framed:c===l,renderInContainer:u,onClick:d})};var tt=n(7029).h;const et=(0,i.Gp)(((t,e)=>{const n=(0,E.S)(),{headerDesign:{logo:o,logoRetina:i},decision:{showCloseIcon:r},texts:{headline:a},activeAction:s,individualPrivacyOpen:c,individualTexts:l,i18n:{headerTitlePrivacyPolicyHistory:d}}=n,u=i&&!(null!=o&&o.endsWith(".svg"))&&window.devicePixelRatio>1,p=u?i:o,h=c?"history"===s?d:l.headline:a;return tt("div",(0,B.Z)({ref:e},function({layout:{type:t,dialogBorderRadius:e},design:{borderWidth:n,borderColor:o,...i},headerDesign:{inheritBg:r,bg:a,padding:s},customCss:{antiAdBlocker:c},mobile:l,pageRequestUuid4:d}){const u=(0,L.D)(l,d,t,"banner"),p=(0,L.D)(l,d,n),h={padding:(0,L.D)(l,d,s,void 0,!0).map((t=>"".concat(t,"px"))).join(" "),background:r?i.bg:a,borderRadius:"dialog"===u?"".concat(e,"px ").concat(e,"px 0 0"):void 0,position:"sticky",zIndex:9,top:0};return"dialog"===u&&p>0&&(h.borderTop="".concat(p,"px solid ").concat(o),h.borderLeft=h.borderTop,h.borderRight=h.borderTop),{className:"y"===c?void 0:"rcb-header-container",style:h}}(n)),tt("div",function({layout:{type:t,bannerMaxWidth:e},design:{textAlign:n},headerDesign:{inheritTextAlign:o,logo:i,logoPosition:r,...a},texts:{headline:s},individualLayout:c,customCss:{antiAdBlocker:l},mobile:d,pageRequestUuid4:u,individualPrivacyOpen:p}){const h=o?n:a.textAlign;return{className:"y"===l?void 0:"rcb-header",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(d,u,t,"banner")?+(p&&!c.inheritBannerMaxWidth?c.bannerMaxWidth:e):void 0,margin:"auto",display:"flex",justifyContent:"center"===h?"center":"right"===h?"flex-end":void 0,textAlign:h,alignItems:"center",position:"relative",flexDirection:i&&s?"left"===r?"row":"right"===r?"row-reverse":"column":void 0}}}(n),!!p&&tt("img",(0,B.Z)({alt:"",src:p},function({headerDesign:{logoMaxHeight:t,logoMargin:e,logoFitDim:n,logoRetinaFitDim:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a},s){const c=s?o:n;return{className:"y"===i?void 0:"rcb-logo",style:{...c?{width:c[0],height:c[1]}:{width:"auto",height:(0,L.D)(r,a,+t)},margin:(0,L.D)(r,a,e).map((t=>"".concat(t,"px"))).join(" ")}}}(n,u))),!!h&&tt("div",(0,G.a)(n,!1),h),(!!r||!!s)&&tt(K,null)))}));var nt=n(6268),ot=n(7029).h;const it=({title:t,children:e})=>{const n=(0,E.S)();return ot("div",function({group:{headlineFontSize:t,headlineFontColor:e,headlineFontWeight:n},customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r}){return{className:"y"===o?void 0:"rcb-group",style:{color:e,fontSize:(0,L.D)(i,r,t),fontWeight:n,textAlign:"left"}}}(n),t,e&&ot("div",function({design:{fontWeight:t},group:{descriptionFontColor:e,descriptionFontSize:n},customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r}){return{className:"y"===o?void 0:"rcb-group-description",style:{color:e,fontSize:(0,L.D)(i,r,+n),fontWeight:t,marginTop:5}}}(n),e))};var rt=n(8559),at=n(2121),st=n(8982),ct=n(7029).h;const lt=({onToggle:t,children:e,showMore:n,hideMore:o,...r})=>{const a=(0,st.w)(),[s,c]=(0,i.eJ)(!1),[l,d]=(0,i.eJ)(!1);return ct(i.HY,null,"  •  ",ct("a",(0,B.Z)({href:"#"},(0,at.c)(a,s),{onClick:e=>{const n=!l;d(n),null==t||t(n),e.preventDefault()},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1)},r),l?o:n),l&&e)};var dt=n(229),ut=n(7029).h;const pt=({group:t,cookie:e})=>{var n;const{id:o}=e,r=(0,E.S)(),{consent:a,activeAction:s,essentialGroup:c}=r,l=c===t.slug,d=l||"history"===s,u=l||((null===(n=a.groups)||void 0===n?void 0:n[t.id])||[]).some((t=>t===o)),p=(0,i.I4)((()=>!d&&r.updateCookieChecked(t.id,o,!u)),[d,r,t,o,u]);return ut(dt.V,{cookie:e,propertyListProps:{isEssentialGroup:l},checked:u,disabled:d,onToggleCheck:p})};var ht=n(7029).h;const ft=({group:t})=>{var e;const n=(0,E.S)(),{id:o,slug:r,name:a,description:s,items:c}=t,{previewCheckboxActiveState:l,consent:d,activeAction:u,essentialGroup:p,individualTexts:{showMore:h,hideMore:f}}=n,m=p===r,g=m||"history"===u,b=l||m||!!d.groups[o],v=!m&&JSON.stringify(c.map((({id:t})=>t)).sort())!==JSON.stringify((null===(e=d.groups[o])||void 0===e?void 0:e.sort())||[]),y=(0,i.I4)((()=>!g&&n.updateGroupChecked(o,!b)),[g,n,o,b]);return ht("div",function({group:{groupBg:t,groupBorderRadius:e,groupBorderColor:n,groupPadding:o,groupBorderWidth:i,groupInheritBg:r},customCss:{antiAdBlocker:a},mobile:s,pageRequestUuid4:c}){const l=(0,L.D)(s,c,i);return{className:"y"===a?void 0:"rcb-group",style:{background:r?void 0:t,border:l>0?"".concat(l,"px solid ").concat(n):void 0,padding:(0,L.D)(s,c,o).map((t=>"".concat(t,"px"))).join(" "),borderRadius:+e,textAlign:"left"}}}(n),ht(it,{title:ht(rt.P,{onClick:y,isPartial:v,isChecked:b,isDisabled:g},a," (",c.length,")")},s,!!c&&ht(lt,{showMore:h,hideMore:f},c.map((e=>ht(pt,{key:e.id,group:t,cookie:e}))))))};var mt=n(7029).h;const gt=()=>{const t=(0,E.S)(),{groups:e,group:{groupSpacing:n},mobile:o,pageRequestUuid4:r}=t,a=e.filter((({items:t})=>t.length));return mt("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-groups",style:{marginTop:10,clear:"both"}}}(t),a.map(((t,e)=>mt(i.HY,{key:t.id},mt(ft,{key:t.id,group:t}),e!==a.length-1&&mt("div",{style:{height:(0,L.D)(o,r,+n)}})))))};var bt=n(7029).h;const vt=({group:{id:t,slug:e,name:n}})=>{const o=(0,E.S)(),{decision:{groupsFirstView:r},design:{fontSize:a},consent:s,essentialGroup:c}=o,l=c===e,d=l||!!s.groups[t],u=(0,i.I4)((()=>false),[false,l,o,t,d,r]);return bt("span",(0,B.Z)({key:n},function({design:{fontSize:t},bodyDesign:{dottedGroupsInheritFontSize:e,dottedGroupsFontSize:n},mobile:o,pageRequestUuid4:i}){return{className:void 0,style:{paddingRight:10,fontSize:(0,L.D)(o,i,e?+t:+n),whiteSpace:"nowrap",display:"inline-block"}}}(o)),bt("span",null,bt(i.HY,null,bt("strong",function({bodyDesign:{dottedGroupsBulletColor:t}}){return{className:void 0,style:{color:t}}}(o),"●")," "),bt("span",{style:{verticalAlign:"middle",cursor:r?"pointer":void 0},onClick:u},n)))};var yt=n(7029).h;const kt=()=>{const t=(0,E.S)(),{groups:e,decision:{showGroups:n}}=t;return n?yt("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-dotted-groups",style:{marginTop:10,lineBreak:"anywhere",lineHeight:2}}}(t),e.filter((({items:t})=>!!t.length)).map((t=>yt(vt,{key:t.id,group:t})))):null};var wt=n(7029).h;const xt=()=>{const t=(0,E.S)(),[e,n]=(0,i.eJ)(-1),{activeAction:o,history:r,selectHistoryEntry:a,i18n:{historyLabel:s,historySelectNone:c}}=t,l=(0,i.Ye)((()=>{var t;return null==r||null===(t=r.filter((({id:t})=>t===e)))||void 0===t?void 0:t[0]}),[e]);(0,i.d4)((()=>{o?"history"===o&&null!=r&&r.length&&n(r[0].id):n(-1)}),[o,r]);const d=null==l?void 0:l.uuid,u=function({design:{bg:t}}){return{className:void 0,style:{background:t}}}(t);return wt(i.HY,null,s," ",wt("select",(0,B.Z)({},function({design:{fontSize:t,fontColor:e},bodyDesign:{descriptionInheritFontSize:n,descriptionFontSize:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){return{className:"y"===i?void 0:"rcb-history-select",style:{fontSize:(0,L.D)(r,a,n?+t:+o),background:"transparent",border:0,color:e,borderBottom:"1px solid ".concat(M(e,50))}}}(t),{disabled:!(null!=r&&r.length),value:e,onChange:t=>{const e=+t.target.value;r.forEach((({id:t,decision:o,groups:i,tcf:r})=>{t===e&&(n(t),a(i,o,r))}))}}),(null==r?void 0:r.length)>0?r.map((({id:t,isDoNotTrack:e,isUnblock:n,isForwarded:o,created:i})=>wt("option",(0,B.Z)({key:t,value:t},u),new Date(i).toLocaleString(document.documentElement.lang),e?" (Do Not Track)":"",n?" (Content Blocker)":"",o?" (Consent Forwarding)":""))):wt("option",(0,B.Z)({value:-1},u),c)),!!d&&wt("div",{style:{opacity:.5,marginTop:5}},"UUID: ",d))};var Ct=n(8346),St=n(7613);function At({name:t,order:e,type:n,borderRadius:o,bg:i,hoverBg:r,fontSize:a,textAlign:s,fontColor:c,fontWeight:l,hoverFontColor:d,borderWidth:u,borderColor:p,hoverBorderColor:h,padding:f,antiAdBlocker:m,pageRequestUuid4:g},b,v,y,k){const w=!k||e>1,x=k&&1===e?5:0,C=k&&0===e?5:0,S=(0,L.D)(b,g,+u),A={textDecoration:"link"===n?"underline":"none",borderRadius:+o,cursor:"button"===n?"pointer":void 0,backgroundColor:"button"===n?v?r:i:void 0,fontSize:(0,L.D)(b,g,+a),fontWeight:l,color:v?d:c,transition:"background-color 250ms, color 250ms, border-color 250ms",margin:"0 ".concat(C,"px ").concat((0,L.D)(b,g,10,void 0,!0),"px ").concat(x,"px"),border:"button"===n&&S>0?"".concat(S,"px solid ").concat(v?h:p):void 0,padding:(0,L.D)(b,g,f,void 0,"button"!==n).map((t=>"".concat(t,"px"))).join(" "),overflow:"hidden",outline:y?"rgb(255, 94, 94) solid 5px":void 0,flex:w?"1 1 100%":"0 0 calc(50% - ".concat(x+C,"px)"),display:"flex",alignItems:"center",justifyContent:"right"===s?"flex-end":"center"===s?"center":"left",textAlign:s,order:e};return{className:"y"===m?void 0:"rcb-btn-".concat(t),style:A}}function Ot({isTcf:t,decision:{acceptEssentials:e},layout:{borderRadius:n},bodyDesign:{acceptEssentialsFontSize:o,acceptEssentialsBg:i,acceptEssentialsTextAlign:r,acceptEssentialsBorderColor:a,acceptEssentialsPadding:s,acceptEssentialsBorderWidth:c,acceptEssentialsFontColor:l,acceptEssentialsFontWeight:d,acceptEssentialsHoverBg:u,acceptEssentialsHoverFontColor:p,acceptEssentialsHoverBorderColor:h,acceptAllFontWeight:f,acceptAllFontSize:m,acceptAllPadding:g},customCss:{antiAdBlocker:b},mobile:v,pageRequestUuid4:y},k,w,x,C){return At({name:"accept-essentials",order:x,type:e,borderRadius:n,bg:i,hoverBg:u,fontSize:C||t?m:o,textAlign:r,fontColor:l,fontWeight:t?f:d,hoverFontColor:p,borderWidth:c,borderColor:a,hoverBorderColor:h,padding:C?g:s,antiAdBlocker:b,pageRequestUuid4:y},v,k,w,C)}function Dt({decision:{acceptIndividual:t},layout:{borderRadius:e},bodyDesign:{acceptIndividualFontSize:n,acceptIndividualBg:o,acceptIndividualTextAlign:i,acceptIndividualBorderColor:r,acceptIndividualPadding:a,acceptIndividualBorderWidth:s,acceptIndividualFontColor:c,acceptIndividualFontWeight:l,acceptIndividualHoverBg:d,acceptIndividualHoverFontColor:u,acceptIndividualHoverBorderColor:p},customCss:{antiAdBlocker:h},mobile:f,pageRequestUuid4:m},g,b,v,y){return At({name:"accept-individual",order:v,type:t,borderRadius:e,bg:o,hoverBg:d,fontSize:n,textAlign:i,fontColor:c,fontWeight:l,hoverFontColor:u,borderWidth:s,borderColor:r,hoverBorderColor:p,padding:a,antiAdBlocker:h,pageRequestUuid4:m},f,g,b,y)}function It({isTcf:t,layout:{borderRadius:e},bodyDesign:{acceptAllFontWeight:n,acceptAllFontSize:o},saveButton:{type:i,fontSize:r,bg:a,textAlign:s,borderColor:c,padding:l,borderWidth:d,fontColor:u,fontWeight:p,hoverBg:h,hoverFontColor:f,hoverBorderColor:m},customCss:{antiAdBlocker:g},mobile:b,pageRequestUuid4:v},y,k,w,x){return At({name:"accept-individual-save",order:w,type:i,borderRadius:e,bg:a,hoverBg:h,fontSize:t?o:r,textAlign:s,fontColor:u,fontWeight:t?n:p,hoverFontColor:f,borderWidth:d,borderColor:c,hoverBorderColor:m,padding:l,antiAdBlocker:g,pageRequestUuid4:v},b,y,k,x)}function Et({decision:{acceptAll:t},layout:{borderRadius:e},bodyDesign:{acceptAllFontSize:n,acceptAllBg:o,acceptAllTextAlign:i,acceptAllBorderColor:r,acceptAllPadding:a,acceptAllBorderWidth:s,acceptAllFontColor:c,acceptAllFontWeight:l,acceptAllHoverBg:d,acceptAllHoverFontColor:u,acceptAllHoverBorderColor:p},customCss:{antiAdBlocker:h},mobile:f,pageRequestUuid4:m},g,b,v,y){return At({name:"accept-all",order:v,type:t,borderRadius:e,bg:o,hoverBg:d,fontSize:n,textAlign:i,fontColor:c,fontWeight:l,hoverFontColor:u,borderWidth:s,borderColor:r,hoverBorderColor:p,padding:a,antiAdBlocker:h,pageRequestUuid4:m},f,g,b,y)}var Bt=n(4902),Tt=n(7029).h;const Pt=({inlineStyle:t,type:e,onClick:n,children:o,framed:r,busyOnClick:a,order:s})=>{if("hide"===e)return null;const[c,l]=(0,i.eJ)(!1),d=(0,i.I4)((()=>{c||(a&&l(!0),null==n||n())}),[n,c,a]),[u,p]=(0,i.eJ)(!1),h=(0,E.S)(),{individualPrivacyOpen:f,decision:{acceptAll:m,acceptEssentials:g},bodyDesign:{acceptAllOneRowLayout:b,acceptEssentialsUseAcceptAll:v}}=h,y=v?m:g,k={onClick:d,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),style:{cursor:"pointer"}},w=(0,i.Ye)((()=>{switch(t){case"acceptEssentials":return Ot;case"acceptIndividual":return Dt;case"save":return It;default:return Et}}),[t]);return Tt("div",(0,B.Z)({},"button"===e?k:{},w(h,u,r,s,!(/MSIE (\d+\.\d+);/.test(navigator.userAgent)||navigator.userAgent.indexOf("Trident/")>-1||"hide"===m||"hide"===y||f||s>1)&&b)),Tt("span","link"===e?k:{},c?Tt(Bt.X,null):o))};var Nt=n(7029).h;const Rt=()=>{const t=(0,E.S)(),{activeAction:e,bodyDesign:{acceptEssentialsUseAcceptAll:n,acceptAllOneRowLayout:o},decision:{showGroups:r,groupsFirstView:a,saveButton:s,acceptAll:c,acceptEssentials:l,acceptIndividual:d,buttonOrder:u},texts:{acceptAll:p,acceptEssentials:h,acceptIndividual:f},saveButton:{type:m,useAcceptAll:g},individualTexts:{save:b},individualPrivacyOpen:v,didGroupFirstChange:y,productionNotice:k,buttonClicked:w=""}=t,{all:x,essential:C,individual:S,save:A}=(0,i.Ye)((()=>{const t=u.split(","),e=t.reduce(((e,n)=>(e[n]=t.indexOf(n),e)),{}),n=t.reduce(((e,n)=>(e[t.indexOf(n)]=n,e)),{});return o&&(e[n[0]]=1,e[n[1]]=0),e}),[u,o]),{buttonClickedAll:O,buttonClickedEssentials:D,buttonClickedCustom:I,acceptAll:B,acceptEssentials:T,acceptIndividual:P,openIndividualPrivacy:N}=q(),R="change"===e;return Nt(i.HY,null,Nt(Pt,{onClick:B,type:c,inlineStyle:"acceptAll",framed:w===O,busyOnClick:R,order:x},p),"change"!==e&&Nt(Pt,{onClick:T,type:n?c:l,inlineStyle:n?"acceptAll":"acceptEssentials",framed:w===D,busyOnClick:R,order:C},h),!!v&&Nt(Pt,{onClick:P,type:g?c:m,inlineStyle:g?"acceptAll":"save",framed:w===I,busyOnClick:R,order:A},b),!v&&Nt(Pt,{type:d,onClick:N,inlineStyle:"acceptIndividual",framed:w.startsWith("ind_"),busyOnClick:R,order:S},f),k)};var zt=n(7029).h;const Lt=({leftSideContainerRef:t,rightSideContainerRef:e})=>{var n;const o=(0,E.S)(),{layout:{type:r},mobile:a,bodyDesign:{teachingsSeparatorActive:s},tcf:c,individualPrivacyOpen:l,activeAction:d,pageRequestUuid4:u}=o,{description:p,teachings:h}=(0,nt.k)(),f="bnnr-body-leftSide-".concat(u),m="bnnr-body-rightSide-".concat(u),g="cntnt-".concat(u);(0,P.G)(" #".concat(f," img {\n max-width: 100%;\n height: auto;\n}\n\n").concat((null===(n=document.getElementById(u))||void 0===n?void 0:n.clientWidth)>700?"":"#".concat(f," {\n float: initial !important;\n width: auto !important;\n padding-right: initial !important;\n ").concat("banner"!==(0,L.D)(a,u,r,"banner")||l?l?"padding-top: 10px !important;":"":"padding-bottom: 10px !important;","\n }\n\n #").concat(g," {\n min-height: calc(var(--rendered-height-header) + var(--rendered-height-footer) + var(--rendered-height-rightSideContainer) + 60px);\n }\n \n #").concat(m," {\n float: initial !important;\n width: auto !important;\n max-width: initial !important;\n margin: initial !important;\n ").concat(l?"padding-bottom: 5px !important;":"padding-top: 10px !important;","\n position: sticky;\n }")));const b=(0,i.Ye)((()=>zt(l?gt:kt,null)),[l,c]),v=zt("div",(0,B.Z)({ref:t,key:"leftSide",id:f},function({layout:{type:t},bodyDesign:{padding:e},customCss:{antiAdBlocker:n},mobile:o,individualPrivacyOpen:i,activeAction:r,pageRequestUuid4:a}){const s=(0,L.D)(o,a,t,"banner"),c=(0,L.D)(o,a,e);return{className:"y"===n?void 0:"rcb-tb-left",style:{float:"banner"===s&&"history"!==r?"left":void 0,width:"banner"===s&&"history"!==r?"calc(100% - ".concat(300,"px)"):void 0,paddingRight:"banner"===s?20:void 0,paddingTop:+c[0],paddingBottom:"banner"===s||i?+c[2]:0}}}(o)),zt("div",function({design:{fontSize:t},bodyDesign:{descriptionInheritFontSize:e,descriptionFontSize:n},individualLayout:{descriptionTextAlign:o},customCss:{antiAdBlocker:i},mobile:r,individualPrivacyOpen:a,pageRequestUuid4:s}){return{className:"y"===i?void 0:"rcb-description",style:{lineHeight:1.5,fontSize:(0,L.D)(r,s,e?+t:+n),textAlign:a?o:void 0}}}(o),"history"===d?zt(xt,null):zt(i.HY,null,zt("span",{dangerouslySetInnerHTML:{__html:p}}),h.length>0&&zt(i.HY,null,s&&zt("div",null,zt("span",(0,Ct.V)(o))),h.map((t=>zt("span",(0,B.Z)({key:t},(0,St.W)(o),{dangerouslySetInnerHTML:{__html:t}}))))))),b),y="history"===d?zt("div",{ref:e}):zt("div",(0,B.Z)({ref:e,key:"rightSide",id:m},function({layout:{type:t,dialogMaxWidth:e},design:{borderWidth:n,bg:o,fontColor:i},headerDesign:r,footerDesign:a,bodyDesign:{padding:s},individualLayout:{inheritDialogMaxWidth:c},customCss:{antiAdBlocker:l},mobile:d,individualPrivacyOpen:u,pageRequestUuid4:p}){const h=(0,L.D)(d,p,t,"banner"),f=(0,L.D)(d,p,n),m=(0,L.D)(d,p,s,void 0,!0),{r:g,g:b,b:v}=W(i),y="dialog"===h?+e-m[1]-m[3]-2*f:300;return{className:"y"===l?void 0:"rcb-tb-right",style:{background:o,paddingTop:"banner"===h||u?+m[0]:10,paddingBottom:u?10:+m[2],float:"banner"===h||u?"right":void 0,maxWidth:y,width:y,margin:"dialog"===h&&u&&!c?"0 0 10px 10px":void 0,position:u?void 0:"sticky",[u?"top":"bottom"]:u?"calc(var(--rendered-height-header) + ".concat((0,L.D)(d,p,r.borderWidth),"px)"):"calc(var(--rendered-height-footer) + ".concat((0,L.D)(d,p,a.borderWidth),"px)"),zIndex:1,display:"flex",flexWrap:"wrap",transition:"box-shadow ease-in-out .1s","--boxShadowShowScroll":"0 -15px 15px -15px rgba(".concat(g,", ").concat(b,", ").concat(v,", 0.3)")}}}(o)),zt(Rt,null));return zt("div",function({layout:{type:t},design:{bg:e,borderWidth:n,borderColor:o},bodyDesign:{padding:i},customCss:{antiAdBlocker:r},mobile:a,pageRequestUuid4:s}){const c=(0,L.D)(a,s,n),l={background:e,padding:(0,L.D)(a,s,i).map(((t,e)=>"".concat([0,2].indexOf(e)>-1?0:t,"px"))).join(" "),lineHeight:1.4};return"dialog"===(0,L.D)(a,s,t,"banner")&&c>0&&(l.borderLeft="".concat(c,"px solid ").concat(o),l.borderRight=l.borderLeft),{className:"y"===r?void 0:"rcb-body-container",style:l}}(o),zt("div",function({layout:{type:t,bannerMaxWidth:e},individualLayout:n,customCss:{antiAdBlocker:o},mobile:i,individualPrivacyOpen:r,pageRequestUuid4:a}){return{className:"y"===o?void 0:"rcb-body",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(i,a,t,"banner")?+(r&&!n.inheritBannerMaxWidth?n.bannerMaxWidth:e):void 0,margin:"auto"}}}(o),l?[y,v]:[v,y],zt("div",{style:{clear:"both"}})))};var Ht=n(6092),Wt=n(7029).h;const Mt=(0,i.Gp)(((t,e)=>{const n=(0,E.S)(),{isTcf:o,layout:{type:r},individualPrivacyOpen:a,updateIndividualPrivacyOpen:s,onClose:c,i18n:{tcf:l},isConsentRecord:d}=n,u=(0,i.I4)((t=>{c(),t.preventDefault()}),[c]),{rows:p,render:h}=(0,Ht.g)({onClose:d?u:void 0,putPoweredByLinkInRow:"banner"===r?0:1,row1:[!1]});return Wt("div",(0,B.Z)({ref:e},function({layout:{type:t,dialogBorderRadius:e},design:n,footerDesign:{inheritBg:o,bg:i,inheritTextAlign:r,textAlign:a,padding:s,fontSize:c,fontColor:l,fontWeight:d},customCss:{antiAdBlocker:u},mobile:p,pageRequestUuid4:h}){const f=(0,L.D)(p,h,t,"banner"),m=(0,L.D)(p,h,n.borderWidth),g={padding:(0,L.D)(p,h,s,void 0,!0).map((t=>"".concat(t,"px"))).join(" "),background:o?n.bg:i,borderRadius:"dialog"===f?"0 0 ".concat(e,"px ").concat(e,"px"):void 0,fontSize:(0,L.D)(p,h,+c),fontWeight:d,color:l,textAlign:r?n.textAlign:a,position:"sticky",bottom:0,zIndex:1};return"dialog"===f&&m>0&&(g.borderBottom="".concat(m,"px solid ").concat(n.borderColor),g.borderLeft=g.borderBottom,g.borderRight=g.borderBottom),{className:"y"===u?void 0:"rcb-footer-container",style:g}}(n)),Wt("div",function({layout:{type:t,bannerMaxWidth:e},individualLayout:n,customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r,individualPrivacyOpen:a}){return{className:"y"===o?void 0:"rcb-footer",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(i,r,t,"banner")?+(a&&!n.inheritBannerMaxWidth?n.bannerMaxWidth:e):void 0,margin:"auto",lineHeight:1.8}}}(n),h(p)))}));var _t=n(7029).h;const Yt=()=>{const t=(0,E.S)(),{layout:{type:e,dialogBorderRadius:n},decision:{acceptAll:o,acceptEssentials:r,showCloseIcon:a},mobile:s,individualPrivacyOpen:c,design:{bg:l},bodyDesign:{teachingsFontColor:d,acceptEssentialsUseAcceptAll:u},activeAction:p,pageRequestUuid4:h}=t,f="bnnr-body-rightSide-".concat(h),m="cntnt-".concat(h),g=(0,i.sO)(),{current:b}=g,v=u?o:r;let y=!0;!s.hideHeader||p||c||"hide"===v&&a||(y=(0,L.D)(s,h,y,!1));const[k,w]=(0,i.eJ)(!1),x=(0,i.I4)((()=>{if(b){const{clientHeight:t,scrollHeight:e,scrollTop:n,offsetHeight:o}=b,i=t<e,r=Math.ceil(n+o)>=e,a=i&&!r&&!c;k!==a&&w(a)}}),[b,c,k]);x(),(0,i.bt)((()=>b?(b.addEventListener("scroll",x),()=>b.removeEventListener("scroll",x)):()=>{}),[b,x]),(0,P.G)(k?"#".concat(f," {box-shadow:var(--boxShadowShowScroll);}"):""),(0,P.G)("Win32"===navigator.platform&&"dialog"===e&&n>0?["#".concat(m,"{overflow:overlay!important;}"),"#".concat(m,"::-webkit-scrollbar{width:11px;}"),"#".concat(m,"{scrollbar-width:thin;scrollbar-color:").concat(d," transparent;}"),"#".concat(m,"::-webkit-scrollbar-track{background:transparent;}"),"#".concat(m,"::-webkit-scrollbar-thumb{background-color:").concat(d,";border-radius:").concat(n,"px;border:3px solid ").concat(l,";}"),"#".concat(m,">div{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}")].join("\n"):"");const C=(0,i.sO)(),S=(0,i.sO)(),A=(0,i.sO)();return F(C.current,"header"),F(S.current,"footer"),F(A.current,"rightSideContainer"),_t("div",(0,B.Z)({},function({layout:{type:t},customCss:{antiAdBlocker:e},decision:{showCloseIcon:n},activeAction:o,individualPrivacyOpen:i,mobile:r,pageRequestUuid4:a}){var s;const c=(null===(s=document.getElementById(a))||void 0===s?void 0:s.clientHeight)||window.innerHeight,l=+r.maxHeight,d=l>c?c:l,u=n||o?51:0;return{className:"y"===e?void 0:"rcb-content",style:{position:"relative",maxHeight:(0,L.D)(r,a,c-("banner"===t?0:20)-u,i?c-u:d-u),overflow:"auto"}}}(t),{ref:g,id:m}),y&&_t(i.HY,null,_t(et,{ref:C}),_t("div",function({layout:{type:t},design:e,headerDesign:{borderWidth:n,borderColor:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){const s=(0,L.D)(r,a,e.borderWidth),c={height:(0,L.D)(r,a,+n),background:o,position:"sticky",top:"var(--rendered-height-header)",zIndex:9};return"dialog"===(0,L.D)(r,a,t,"banner")&&s>0&&(c.borderLeft="".concat(s,"px solid ").concat(e.borderColor),c.borderRight=c.borderLeft),{className:"y"===i?void 0:"rcb-header-separator",style:c}}(t))),_t(Lt,{rightSideContainerRef:A}),_t("div",function({layout:{type:t},design:e,footerDesign:{borderWidth:n,borderColor:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){const s=(0,L.D)(r,a,e.borderWidth),c={height:(0,L.D)(r,a,+n),background:o,position:"sticky",bottom:"var(--rendered-height-footer)"};return"dialog"===(0,L.D)(r,a,t,"banner")&&s>0&&(c.borderLeft="".concat(s,"px solid ").concat(e.borderColor),c.borderRight=c.borderLeft),{className:"y"===i?void 0:"rcb-footer-separator",style:c}}(t)),_t(Mt,{ref:S}))};var Ut=n(7029).h;const Ft=()=>{const t=(0,E.S)(),{layout:{animationInDuration:e,animationOutDuration:n},animationVisible:o}=t,{useAnimationIn:i,useAnimationOut:r}=D()(t.layout),[a,s]=H(i,e),[c,l]=H("none"===r?"fadeOut":r,"none"===r?0:n);return Ut(U,(0,B.Z)({animationIn:a,animationInDuration:s,animationOut:c,animationOutDuration:l,isVisible:o},function({layout:{type:t,dialogMaxWidth:e,dialogPosition:n,dialogMargin:o,bannerPosition:i,dialogBorderRadius:r},design:{borderWidth:a,borderColor:s,textAlign:c,fontColor:l,fontInheritFamily:d,fontFamily:u,fontWeight:p,boxShadowEnabled:h,boxShadowOffsetX:f,boxShadowOffsetY:m,boxShadowBlurRadius:g,boxShadowSpreadRadius:b,boxShadowColor:v,boxShadowColorAlpha:y},individualLayout:k,customCss:{antiAdBlocker:w},mobile:x,pageRequestUuid4:C,individualPrivacyOpen:S}){const{alignment:A}=x,O=(0,L.D)(x,C,t,"banner"),D=(0,L.D)(x,C,a),I="dialog"===O?+(S&&!k.inheritDialogMaxWidth?k.dialogMaxWidth:e):"100%",E={pointerEvents:"all",transition:"width 500ms, max-width 500ms",maxWidth:I,textAlign:c,width:I,overflow:"hidden",alignSelf:(0,L.D)(x,C,"banner"===O?"top"===i?"flex-start":"flex-end":void 0,"bottom"===A?"flex-end":"top"===A?"flex-start":"center"),fontFamily:d?void 0:u,fontWeight:p,color:l,margin:"dialog"===O?10:void 0,borderRadius:"dialog"===O?+r:void 0,boxShadow:h?"".concat(f,"px ").concat(m,"px ").concat(g,"px ").concat(b,"px ").concat(M(v,y)):void 0,["banner"===O?"top"===i?"borderBottom":"borderTop":"border"]:"banner"===O&&D>0?"".concat(D,"px solid ").concat(s):void 0};return"dialog"===O&&"middleCenter"!==n&&(E.margin=o.map((t=>"".concat(t,"px"))).join(" ")),{className:"y"===w?void 0:"rcb-inner",style:E}}(t)),Ut(Yt,null))};var Gt=n(7029).h;const qt=()=>{const t=(0,E.S)(),{layout:{overlay:e,overlayBlur:n},customCss:{antiAdBlocker:o,css:r},visible:a,animationVisible:s,activeAction:c,skipOverlay:l,gotHiddenDueLegal:d,pageRequestUuid4:u,individualPrivacyOpen:p}=t,h=S(t),f=a&&!h||!!c;(0,P.G)(o?r:""),(0,P.G)("#".concat(u,", #").concat(u," * {box-sizing: border-box;backface-visibility:initial;text-transform:initial;-webkit-text-size-adjust:100%;}")),function(t){(0,i.d4)((()=>{const{dataset:e,style:n}=document.body;void 0===e.rcbPreviousOverflow&&(e.rcbPreviousOverflow=n.overflow),n.overflow=t?"hidden":e.rcbPreviousOverflow,document.body.parentElement.style.overflow=n.overflow}),[t])}(f&&e&&s);const[,m]=(0,i.eJ)(0),g=()=>m(+new Date);if((0,i.bt)((()=>(window.addEventListener("resize",g),()=>window.removeEventListener("resize",g))),[]),(0,i.bt)((()=>{(0,T.s)(1e3)}),[s,p]),d&&(0,i.d4)((()=>{d(h)}),[h]),function(){const t=(0,E.S)(),{consent:e,groups:n,tcf:o,activeAction:r,selectHistoryEntry:a,fetchHistory:s}=t,[c,l]=(0,i.eJ)({consent:e,groups:n,tcf:o});(0,i.d4)((()=>{r||l({consent:e,groups:n,tcf:o})}),[e,n,o,r]),(0,i.d4)((()=>{if("history"===r)l({consent:e,groups:n,tcf:o}),async function(){const t=await s();if(t.length){const[{groups:e,decision:n,tcf:o}]=t;a(e,n,o)}else a([],[])}();else{const{groups:t,consent:{groups:e},tcf:n}=c;null==a||a(t,e,n)}}),[r])}(),function(){const{openBanner:t,openHistory:e,revokeConsent:n}=(0,E.S)();(0,i.d4)((()=>{const o=(o,i,r)=>{if(t)switch(o){case"change":t(r);break;case"history":e(r);break;case"revoke":n(i,r)}},i=e=>{if(!t)return;const n=e.target;(0,N.w)(n,z).concat((0,R.D)(n,z)?[n]:[]).forEach((t=>{o(t.getAttribute("href").slice(9),t.getAttribute("data-success-message"),e)})),(0,R.D)(n,".rcb-sc-link")&&o(n.getAttribute("href").slice(1),n.getAttribute("data-success-message"),e)},r=()=>{const{hash:t}=window.location;t.startsWith("#consent-")&&o(t.substring(9),void 0,void 0)};return window.addEventListener("hashchange",r),document.addEventListener("click",i,!0),()=>{window.removeEventListener("hashchange",r),document.removeEventListener("click",i,!0)}}),[t,e,n])}(),!f)return null;const b=Gt("div",function({layout:{type:t,dialogPosition:e},customCss:{antiAdBlocker:n},mobile:o,pageRequestUuid4:i}){const r={display:"flex",width:"100%",height:"100%"};return"dialog"===(0,L.D)(o,i,t,"banner")&&(r.alignItems=e.startsWith("top")?"flex-start":e.startsWith("bottom")?"flex-end":"center",r.justifyContent=e.endsWith("Center")?"center":e.endsWith("Left")?"flex-start":"flex-end"),{className:"wp-exclude-emoji ".concat("y"===n?"":"rcb-align"),style:r}}(t),Gt(Ft,null));return l?b:Gt("div",(0,B.Z)({id:u},function({layout:{type:t,overlay:e,overlayBg:n,overlayBgAlpha:o},design:{fontSize:i},customCss:{antiAdBlocker:r},mobile:a,pageRequestUuid4:s}){return{className:"y"===r?void 0:"rcb-bann3r rcb-bann3r-".concat((0,L.D)(a,s,t,"banner")," ").concat(e?"":"overlay-deactivated"),style:{background:e?M(n,o):"none",position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,pointerEvents:e?"all":"none",fontSize:(0,L.D)(a,s,+i),filter:"none",maxHeight:"100vh"}}}(t)),b)},Xt={path:"/consent",method:x.O.GET};var jt=n(1100),Jt=n(7029).h;const Vt=({poweredLink:t})=>{const{customizeValuesBanner:{layout:e,decision:n,legal:o,design:p,headerDesign:m,bodyDesign:g,footerDesign:x,texts:B,individualLayout:T,saveButton:P,group:N,individualTexts:R,customCss:z,mobile:L},pageId:H,pageRequestUuid4:W,pageIdToPermalink:M,consentForwardingExternalHosts:_,essentialGroup:Y,isTcf:U,isEPrivacyUSA:F,isAgeNotice:G,isListServicesNotice:q,tcf:X,tcfMetadata:j,groups:J,userConsentCookieName:V,bannerI18n:Z,affiliate:$,isCurrentlyInTranslationEditorPreview:Q,pageByIdUrl:K}=(0,r.u)(),tt=(0,f.h)(V),et=function(t,e,n){return(0,i.Ye)((()=>{}),[t,e,n])}(U,X,j),{toggleOverlay:nt}=function(t){const e=D(),n=(0,i.I4)((({layout:n},o)=>{const{animationInDuration:i,animationOutDuration:r}=n,{useAnimationIn:a,useAnimationOut:s}=e(n),c=o?"none"===a?0:i:"none"===s?0:r;c>0&&(t.style.transition="background ".concat(c,"ms")),t.style.background="transparent",o?(setTimeout((()=>{t.style.display="block"}),0),setTimeout((()=>{const e=t.getAttribute("data-bg");t.style.background=e?e.split(":")[1].trim().replace(";",""):"transparent"}),100)):setTimeout((()=>{t.style.display="none"}),c);const l={animationVisible:o};return o?{visible:!0,...l}:l}),[e]);return{overlay:t,toggleOverlay:n}}(document.getElementById(W)),{openHistory:ot,openBanner:it,revokeConsent:rt,updateTcfFilterBy:at,updateIndividualPrivacyOpen:st,updateGroupChecked:ct,updateCookieChecked:lt,onClose:dt,selectHistoryEntry:ut}=function({toggleOverlay:t,revokeConsent:e}){const n=(e,n)=>e((e=>({...e,activeAction:n,individualPrivacyOpen:!0,refreshSiteAfterSave:"change"===n&&2e3,...t(e,!0)})));return{openHistory:(t,...e)=>{n(t,"history"),I(e[0])},openBanner:(t,...e)=>{n(t,"change"),I(e[0])},revokeConsent:(t,...n)=>{const[o,i]=n;t((t=>(e(t).then((()=>{o&&alert(o),setTimeout((()=>window.location.reload()),2e3)})),t))),I(i)},updateTcfFilterBy:(t,...e)=>{const[n]=e;t((t=>({...t,tcfFilterBy:n})))},updateIndividualPrivacyOpen:(t,...e)=>{const[n]=e;t((t=>({...t,individualPrivacyOpen:n})))},updateGroupChecked:(t,...e)=>{const[n,o]=e;t((t=>{const e=JSON.parse(JSON.stringify(t.consent));return o?e.groups[n]=t.groups.filter((t=>t.id===n))[0].items.map((({id:t})=>t)):delete e.groups[n],{...t,consent:e,didGroupFirstChange:!0}}))},updateCookieChecked:(t,...e)=>{const[n,o,i]=e;t((t=>{const e=JSON.parse(JSON.stringify(t.consent));e.groups[n]||(e.groups[n]=[]);const r=e.groups[n],a=r.indexOf(o);return i&&-1===a?r.push(o):!i&&a>-1&&r.splice(a,1),r.length||delete e.groups[n],{...t,consent:e}}))},onClose:e=>{e((e=>({...e,...t(e,!1),refreshSiteAfterSave:!1})))},selectHistoryEntry:(t,...e)=>{const[n,o,i]=e;t((t=>{const e={isTcf:!!i,tcf:null};return{...t,groups:n,consent:{...t.consent,groups:o},...e}}))}}}({toggleOverlay:nt,revokeConsent:({tcf:t})=>(0,A.$)({consent:{groups:(0,s.b)().getDefaultDecision(!0)},buttonClicked:"shortcode_revoke",tcfString:void 0})}),[pt,ht]=(0,i.eJ)({layout:{...e},decision:{...n},legal:{...o},design:{...p},headerDesign:{...m},bodyDesign:{...g},footerDesign:{...x},texts:{...B},individualLayout:{...T},saveButton:{...P},group:{...N},individualTexts:{...R},customCss:{...z},mobile:{...L},productionNotice:Jt(jt.Z,null),pageRequestUuid4:W,pageIdToPermalink:M,pageByIdUrl:K,consentForwardingExternalHosts:_,pageId:H,isTcf:U,ePrivacyUSA:F,ageNotice:G,listServicesNotice:q,tcf:et,tcfFilterBy:"legInt",groups:J,essentialGroup:Y,poweredLink:t,visible:!1,animationVisible:!0,skipOverlay:!0,previewCheckboxActiveState:!1,individualPrivacyOpen:!1,i18n:Z,keepVariablesInTexts:Q,affiliate:$,consent:{groups:{...!1===tt?{}:tt.consent,...(0,s.b)().getDefaultDecision(!1===tt)}},didGroupFirstChange:!1,onSave:(t,e)=>{ht((n=>{const o=(0,A.$)({consent:n.consent,markAsDoNotTrack:t,buttonClicked:e,tcfString:void 0});return n.refreshSiteAfterSave?(o.then((()=>setTimeout((()=>window.location.reload()),n.refreshSiteAfterSave||2e3))),n):{...n,...nt(n,!1)}}))},fetchHistory:async()=>{const{restNamespace:t,restRoot:e,restQuery:n,restNonce:o}=(0,a.m)(),i=await(0,w.D)({location:Xt,options:{restNamespace:t,restRoot:e,restQuery:n,restNonce:o},cookieValueAsParam:[V],sendRestNonce:!1});return ht((t=>({...t,history:i}))),i},updateTcfFilterBy:t=>at(ht,t),updateIndividualPrivacyOpen:t=>st(ht,t),updateGroupChecked:(t,e)=>ct(ht,t,e),updateCookieChecked:(t,e,n)=>lt(ht,t,e,n),onClose:()=>dt(ht),selectHistoryEntry:(t,e,n)=>ut(ht,t,e,n),openHistory:t=>ot(ht,t),openBanner:t=>it(ht,t),revokeConsent:(t,e)=>rt(ht,t,e)});(function(t,e,n){(0,i.d4)((()=>{if((0,r.u)().customizeIdsBanner)return;const{restNamespace:o,restRoot:i,restQuery:p,restNonce:m,others:{isAcceptAllForBots:g,isPreventPreDecision:x,hasDynamicPreDecisions:A,isRespectDoNotTrack:O}}=(0,a.m)(),{onSave:D}=t;var I,E,B;!async function(t,e){let n=!0;const o=t instanceof c.G?t.getOptions():t,{gateways:i,args:r,onIsDoNotTrack:a,onShowCookieBanner:s}=e;for(const t of i){const e=await t(o,...r);if(!1!==e){n=!1;const t=t=>(0,l.n)({type:t,...o});"all"===e?t("all"):"essentials"===e?t("essentials"):"dnt"===e?a((()=>t("essentials"))):"consent"===e&&t("consent");break}}n&&(s(),await(0,u.C)(),document.dispatchEvent(new CustomEvent(d.I,{detail:{}})))}((0,s.b)(),{gateways:[h,(B=["login-action-"],async()=>{const{className:t}=document.body;return B.filter((e=>t.indexOf(e)>-1)).length>0&&"consent"}),v((()=>{const{clientWidth:t,clientHeight:e}=document.documentElement;return(0,w.D)({location:C,options:{restNamespace:o,restRoot:i,restQuery:p,restNonce:m},sendRestNonce:!1,request:{viewPortWidth:t,viewPortHeight:e},params:{_wp_http_referer:window.location.href}})}),1e4,A),async(t,e)=>!!S(e)&&"consent",(E=x,async({decisionCookieName:t})=>{const e=(0,f.h)(t);return!(!E||!1!==e)&&(b()?"all":"consent")}),(I=!!g&&"all",async({decisionCookieName:t})=>!(!1!==(0,f.h)(t)||!I)&&!!b()&&I),y(O),k],args:[t],onIsDoNotTrack:()=>{D(!0,"none")},onShowCookieBanner:()=>e((t=>({...t,consent:{groups:(0,s.b)().getDefaultDecision()},...n(t,!0)})))})}),[])})(pt,ht,nt),function(t,e){(0,i.d4)((()=>{const n=()=>{const n=(0,f.h)(e);n&&t((t=>({...t,consent:{groups:n.consent}})))};return document.addEventListener(O.V,n),()=>{document.removeEventListener(O.V,n)}}),[])}(ht,V);const ft=E.k.Context();return Jt(ft.Provider,{value:pt},Jt(qt,null))};var Zt=n(6346),$t=n(3102),Qt=n(9575);async function Kt(t,e=500,n=0){let o=0;for(;!t();){if(n>0&&o>=n)return;await new Promise((t=>setTimeout(t,e))),o++}return t()}let te=0;const ee={path:"/consent/clear",method:x.O.DELETE};var ne=n(9302),oe=n(1456),ie=n(1829);function re(t,e,n){const o=[],{groups:i,revisionHash:a}=(0,r.u)(),s=i.map((({items:t})=>t)).flat();for(const i of s)if("number"==typeof t)i.id===t&&o.push({cookie:i,relevance:10});else{const{technicalDefinitions:r}=i;if(null!=r&&r.length)for(const a of r){const s=(0,ie.L)(a.name);if(a.type===t&&(a.name===e||e.match(s))&&(a.host===n||"*"===n)){o.push({cookie:i,relevance:r.length+r.indexOf(a)+1});break}}}const c=(0,f.h)((0,r.u)().userConsentCookieName);if(o.length){const t=o.sort((({relevance:t},{relevance:e})=>t-e))[0].cookie;return c&&a===c.revision?Object.values(c.consent).flat().indexOf(t.id)>-1?{cookie:t,consentGiven:!0,cookieOptIn:!0}:{cookie:t,consentGiven:!0,cookieOptIn:!1}:{cookie:t,consentGiven:!1,cookieOptIn:!1}}return{cookie:null,consentGiven:!!c,cookieOptIn:!0}}function ae(...t){return new Promise(((e,n)=>{const{cookie:o,consentGiven:i,cookieOptIn:r}=re(...t);o?i?r?e():n():(document.addEventListener(Qt.g,(async({detail:{service:t}})=>{t===o&&e()})),document.addEventListener(oe.E,(async({detail:{service:t}})=>{t===o&&n()}))):e()}))}function se(t){return Promise.all(t.map((t=>ae(...t))))}var ce=n(4312),le=n(5447),de=n(5672),ue=n(7029).h;n.p=(0,ce.sE)("real-cookie-banner"),document.addEventListener(Qt.g,(async({detail:{service:{presetId:t,codeOptIn:e,codeDynamics:n}}})=>{switch(t){case"amazon-associates-widget":{const{amznAssoWidgetHtmlId:t}=n||{};if(t){const o=document.getElementById(t);if(o){const t=te;te++,(0,Zt.K)(e,n,o);const i=await Kt((()=>document.querySelector('[id^="amzn_assoc_ad_div_"][id$="'.concat(t,'"]'))),500,50);i&&o.appendChild(i)}}break}case"google-maps":document.addEventListener($t.T,(async({detail:{element:t}})=>{const{et_pb_map_init:e,jQuery:n}=window;n&&t.matches(".et_pb_map")&&e&&(await Kt((()=>window.google)),e(n(t).parent()))}))}})),function(){const t=(0,r.u)(),{isTcf:e}=t}(),(0,u.C)((()=>{const{pageRequestUuid4:t}=(0,r.u)(),e=(0,de.U)("".concat(t,"-powered-by")),n=function(t){const{body:e}=document,{parentElement:n}=t;return n!==e&&e.appendChild(t),t}(document.getElementById(t));!function(t,e){const n=Array.prototype.slice.call(document.querySelectorAll(".rcb-consent-history-uuids"));document.addEventListener(d.I,(()=>{n.forEach((t=>t.innerHTML=t.getAttribute("data-fallback")))})),document.addEventListener(O.V,(()=>{const t=(0,f.h)(e instanceof c.G?e.getOption("decisionCookieName"):e),o=t?[t.uuid,...t.previousUuids]:[];n.forEach((t=>t.innerHTML=o.length>0?o.join(", "):t.getAttribute("data-fallback")))}))}(0,(0,s.b)()),document.addEventListener(le.C,(async({detail:{deleteHttpCookies:t}})=>{t.length&&setTimeout((()=>function(t){const{restNamespace:e,restRoot:n,restQuery:o,restNonce:i}=(0,a.m)();return(0,w.D)({location:ee,options:{restNamespace:e,restRoot:n,restQuery:o,restNonce:i},sendRestNonce:!1,params:{cookies:t.join(",")}})}(t)),0)})),n&&(0,i.sY)(ue(Vt,{poweredLink:e}),n)}),"interactive"),window&&(window.consentApi=o)},1100:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var o=n(3438),i=n(7029).h;const r=()=>{const{isPro:t,isLicensed:e,isDevLicense:n,bannerI18n:{noLicense:r,devLicense:a}}=(0,o.u)();if(!t)return null;let s="";return n?s=a:e||(s=r),s?i("div",{style:{fontSize:13,color:"#c95252",fontWeight:"bold",order:9}},s):null}},6423:(t,e,n)=>{"use strict";n.d(e,{$:()=>l});const o={path:"/consent",method:n(6811).O.POST};var i=n(625),r=n(3438);function a({endpoints:t,data:e}){const{isPro:n}=(0,r.u)();if(n){const n=[];for(const o of t)n.push(window.fetch(o,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(e)}));return Promise.all(n)}return Promise.reject()}var s=n(6886),c=n(3075);async function l({consent:t,markAsDoNotTrack:e=!1,buttonClicked:n,blocker:r=0,blockerThumbnail:l,tcfString:d}){const{clientWidth:u,clientHeight:p}=document.documentElement,{restNamespace:h,restRoot:f,restQuery:m,restNonce:g}=(0,i.m)(),{forward:b,uuid:v,cookie_revision:y,decision_in_cookie:k}=await(0,c.D)({location:o,options:{restNamespace:h,restRoot:f,restQuery:m,restNonce:g},sendRestNonce:!1,request:{...t,markAsDoNotTrack:e,buttonClicked:n,viewPortWidth:u,viewPortHeight:p,blocker:r,blockerThumbnail:l,tcfString:d},params:{_wp_http_referer:window.location.href}});window.rcbDisabledCookieComp={uuid:v,previousUuids:[],revision:y,consent:k},await Promise.all([b&&a(b),(0,s.b)().applyCookies({type:"consent"})].filter(Boolean))}},6886:(t,e,n)=>{"use strict";n.d(e,{b:()=>s});var o=n(8218),i=n(625);function r(t){const e=(0,i.m)().version.split(".");return+("major"===t?e[0]:e.map((t=>+t<10?"0".concat(t):t)).join(""))}var a=n(3438);function s(){const{userConsentCookieName:t,revisionHash:e,setCookiesViaManager:n,groups:i,essentialGroup:s}=(0,a.u)();return window.rcbConsentManager||(window.rcbConsentManager=new o.G({decisionCookieName:t,essentialGroupSlug:s,groups:i,revisionHash:e,supportsCookiesName:"real_cookie_banner-test",tagManager:n,skipOptIn:function(t){const{presetId:e}=t;return["amazon-associates-widget"].indexOf(e)>-1},cmpId:367,cmpVersion:r("major"),tcfCookieName:"".concat(t,"-tcf")})),window.rcbConsentManager}},625:(t,e,n)=>{"use strict";function o(){return window["real-cookie-banner".replace(/-([a-z])/g,(t=>t[1].toUpperCase()))]}n.d(e,{m:()=>o})},3438:(t,e,n)=>{"use strict";n.d(e,{u:()=>i});var o=n(625);function i(){return(0,o.m)().others}},3428:t=>{"use strict";t.exports="/*! Hint.css - v2.7.0 - 2021-10-01\n* https://kushagra.dev/lab/hint/\n* Copyright (c) 2021 Kushagra Gour */\n\n[class*=hint--]{position:relative;display:inline-block}[class*=hint--]:after,[class*=hint--]:before{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0s;-moz-transition-delay:0s;transition-delay:0s}[class*=hint--]:hover:after,[class*=hint--]:hover:before{visibility:visible;opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}[class*=hint--]:before{content:'';position:absolute;background:0 0;border:6px solid transparent;z-index:1000001}[class*=hint--]:after{background:#383838;color:#fff;padding:8px 10px;font-size:12px;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:12px;white-space:nowrap;text-shadow:0 -1px 0 #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label='']:after,[aria-label='']:before,[data-hint='']:after,[data-hint='']:before{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#383838}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#383838}.hint--top:after,.hint--top:before{bottom:100%;left:50%}.hint--top:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--bottom:after,.hint--bottom:before{top:100%;left:50%}.hint--bottom:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--right:before{border-right-color:#383838;margin-left:-11px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:after,.hint--right:before{left:100%;bottom:50%}.hint--right:hover:after,.hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{border-left-color:#383838;margin-right:-11px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:after,.hint--left:before{right:100%;bottom:50%}.hint--left:hover:after,.hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--top-left:after,.hint--top-left:before{bottom:100%;left:50%}.hint--top-left:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--top-left:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top-left:hover:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--top-right:after,.hint--top-right:before{bottom:100%;left:50%}.hint--top-right:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--top-right:hover:after,.hint--top-right:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom-left:after,.hint--bottom-left:before{top:100%;left:50%}.hint--bottom-left:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--bottom-right:after,.hint--bottom-right:before{top:100%;left:50%}.hint--bottom-right:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--bottom-right:hover:after,.hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--large:after,.hint--medium:after,.hint--small:after{white-space:normal;line-height:1.4em;word-wrap:break-word}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}.hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0 #592726}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0 #6c5328}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0 #1a3c4d}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{background-color:#458746;text-shadow:0 -1px 0 #1a321a}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--always.hint--top-left:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top-left:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--always.hint--top-right:after,.hint--always.hint--top-right:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--always.hint--bottom-left:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom-left:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--always.hint--bottom-right:after,.hint--always.hint--bottom-right:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:after,.hint--no-animate:before{-webkit-transition-duration:0s;-moz-transition-duration:0s;transition-duration:0s}.hint--bounce:after,.hint--bounce:before{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:after,.hint--no-shadow:before{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}"}},n={};function o(t){var i=n[t];if(void 0!==i)return i.exports;var r=n[t]={exports:{}};return e[t].call(r.exports,r,r.exports,o),r.exports}o.m=e,t=[],o.O=(e,n,i,r)=>{if(!n){var a=1/0;for(d=0;d<t.length;d++){for(var[n,i,r]=t[d],s=!0,c=0;c<n.length;c++)(!1&r||a>=r)&&Object.keys(o.O).every((t=>o.O[t](n[c])))?n.splice(c--,1):(s=!1,r<a&&(a=r));if(s){t.splice(d--,1);var l=i();void 0!==l&&(e=l)}}return e}r=r||0;for(var d=t.length;d>0&&t[d-1][2]>r;d--)t[d]=t[d-1];t[d]=[n,i,r]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{var t={392:0};o.O.j=e=>0===t[e];var e=(e,n)=>{var i,r,[a,s,c]=n,l=0;if(a.some((e=>0!==t[e]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var d=c(o)}for(e&&e(n);l<a.length;l++)r=a[l],o.o(t,r)&&t[r]&&t[r][0](),t[a[l]]=0;return o.O(d)},n=self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})();var i=o.O(void 0,[568],(()=>o(9181)));i=o.O(i),realCookieBanner_banner=i})();
2
  //# sourceMappingURL=banner.lite.js.map
1
+ var realCookieBanner_banner;(()=>{var t,e={8556:t=>{t.exports={}},9382:(t,e,n)=>{"use strict";n.d(e,{n:()=>g});var o=n(6346),i=n(7169);function r(t,e){let n,o,i,r=!1,a="";if(t&&"none"!==t){const s="googleTagManager"===t,c="matomoTagManager"===t;s?(i="gtm",n="dataLayer",a="Google Tag Manager"):c&&(i="mtm",n="_mtm",a="Matomo Tag Manager"),(s||c)&&(o=()=>(window[n]=window[n]||[],window[n])),i&&e===i&&(r=!0)}return{getDataLayer:o,serviceIsManager:r,managerLabel:a,expectedManagerPresetId:i}}function a({decisionCookieName:t,tagManager:e,groups:n,essentialGroupSlug:o,type:a}){let s;const c=e&&"none"!==e,[l]=n.filter((({slug:t})=>t===o)),d={[l.id]:l.items.map((({id:t})=>t))};if("consent"===a){const e=(0,i.h)(t);!1!==e?s=e.consent:(console.warn("Something went wrong while reading the cookie, fallback to essentials only..."),s=d)}return"essentials"===a&&(s=d),{isManagerActive:c,selectedGroups:s,iterateServices:async function(t){for(const i of n)for(const n of i.items){var o;const c="all"===a||(null===(o=s[i.id])||void 0===o?void 0:o.indexOf(n.id))>-1,l=r(e,n.presetId);await t(i,n,c,l)}}}}var s=n(9575),c=n(1456),l=n(8542),d=n.n(l),u=n(2891),p=n(1829);var h=n(7563),f=n(5447),m=n(6028);async function g(t){await(0,m.C)();const{dataLayerPromise:e,isManagerOptOut:n,services:i,ready:r}=await async function(t){const e=[],{isManagerActive:n,iterateServices:i}=a(t),{skipOptIn:r}=t;let c=Promise.resolve(void 0);const l=[];return await i((async(t,i,a,{getDataLayer:c,serviceIsManager:d})=>{const{codeDynamics:u,codeOptIn:p,executeCodeOptInWhenNoTagManagerConsentIsGiven:h}=i;if(a){const a=n&&h,c="function"==typeof r&&r(i);a||c||l.push((0,o.K)(p,u));const d={group:t,service:i};document.dispatchEvent(new CustomEvent(s.g,{detail:d})),e.push(d)}})),{isManagerOptOut:!1,dataLayerPromise:c,services:e,ready:Promise.all(l)}}(t),{ready:l}=await async function(t,e,n){const i=[],{isManagerActive:r,iterateServices:s}=a(t);return e?(s(((t,n,o,{serviceIsManager:i})=>{const r=n.tagManagerOptInEventName;o&&r&&!i&&e.push({realCookieBannerOptInEvents:{[r]:!0},event:r})})),setTimeout((()=>s(((t,n,o,{serviceIsManager:i})=>{const r=n.tagManagerOptOutEventName;o||!r||i||e.push({realCookieBannerOptOutEvents:{[r]:!0},event:r})}))),1e3)):r&&n&&await s((async(t,{codeDynamics:e,codeOptIn:n,executeCodeOptInWhenNoTagManagerConsentIsGiven:r},a)=>{a&&r&&i.push((0,o.K)(n,e))})),{ready:Promise.all(i)}}(t,await e,n),g=Promise.all([r,l]);document.dispatchEvent(new CustomEvent(h.V,{detail:{services:i,ready:g}}));const{deleteHttpCookies:b,services:v,ready:y}=await async function(t,e){const n=[],{isManagerActive:i,iterateServices:r}=a(t),s=[],l=[];return await r((async(t,r,a)=>{const{id:h,codeDynamics:f,codeOptOut:m,deleteTechnicalDefinitionsAfterOptOut:g,isEmbeddingOnlyExternalResources:b,technicalDefinitions:v,executeCodeOptOutWhenNoTagManagerConsentIsGiven:y}=r;if(!a){const a=i&&y;(a&&e||!a)&&s.push((0,o.K)(m,f)),g&&!b&&(function(t,e){for(const{type:n,name:o}of t){const t=new RegExp((0,p.L)((0,u.c)(o,e)),"g");switch(n){case"http":for(const e of Object.keys(d().get()))t.test(e)&&d().remove(e);break;case"local":case"session":try{const e="local"===n?window.localStorage:window.sessionStorage;if(e)for(const n of Object.keys(e))if(t.test(n)){try{e.setItem(n,null)}catch(t){}let t=0;for(;e.getItem(n)&&t<100;)t++,e.removeItem(n)}}catch(t){continue}}}}(v,f),v.some((({type:t})=>"http"===t))&&l.push(h));const k={group:t,service:r};document.dispatchEvent(new CustomEvent(c.E,{detail:k})),n.push(k)}})),{services:n,ready:Promise.all(s),deleteHttpCookies:l}}(t,n);document.dispatchEvent(new CustomEvent(f.C,{detail:{services:v,deleteHttpCookies:b,ready:Promise.all([g,y])}}))}},8218:(t,e,n)=>{"use strict";n.d(e,{G:()=>r});var o=n(9382),i=n(7169);class r{constructor(t){this.options=void 0,this.options=t}applyCookies(t){return(0,o.n)({...t,...this.options})}getUserDecision(){return(0,i.h)(this.getOption("decisionCookieName"))}getDefaultDecision(t=!0){return function({groups:t,essentialGroupSlug:e},n=!0){const[o]=t.filter((({slug:t})=>t===e)),i={[o.id]:o.items.map((({id:t})=>t))};if(n)for(const e of t){if(e===o)continue;const t=e.items.filter((({legalBasis:t})=>"legitimate-interest"===t)).map((({id:t})=>t));t.length&&(i[e.id]=t)}return i}(this.options,t)}getOption(t){return this.options[t]}getOptions(){return this.options}}},7169:(t,e,n)=>{"use strict";n.d(e,{h:()=>a});var o=n(4001),i=n(8542),r=n.n(i);function a(t){const e=r().get(t);if(!e)return!(0,o.E)()&&(window.rcbDisabledCookieComp||!1);const n=function(t,e,n){const o=t.split(":");if(o.length<=3)return o;const i=o.slice(0,2);return i.push(o.slice(2).join(":")),i}(e);if(3!==n.length)return!1;const[i,a]=n,s=i.split(",");return{uuid:s.shift(),previousUuids:s,revision:a,consent:JSON.parse(n[2])}}},7766:(t,e,n)=>{"use strict";n.d(e,{I:()=>o});const o="RCB/Banner/Show"},9575:(t,e,n)=>{"use strict";n.d(e,{g:()=>o});const o="RCB/OptIn"},7563:(t,e,n)=>{"use strict";n.d(e,{V:()=>o});const o="RCB/OptIn/All"},1456:(t,e,n)=>{"use strict";n.d(e,{E:()=>o});const o="RCB/OptOut"},5447:(t,e,n)=>{"use strict";n.d(e,{C:()=>o});const o="RCB/OptOut/All"},6028:(t,e,n)=>{"use strict";n.d(e,{C:()=>a});const o=()=>{let t;return[!1,new Promise((e=>t=e)),t]},i={loading:o(),complete:o(),interactive:o()},r=["readystatechange","rocket-readystatechange","DOMContentLoaded","rocket-DOMContentLoaded","rocket-allScriptsLoaded"],a=(t,e="complete")=>new Promise((n=>{let o=!1;const a=()=>{(()=>{const{readyState:t}=document,[e,,n]=i[t];e||(i[t][0]=!0,n())})(),!o&&i[e][0]&&(o=!0,null==t||t(),setTimeout(n,0))};a();for(const t of r)document.addEventListener(t,a);i[e][1].then(a)}))},1829:(t,e,n)=>{"use strict";function o(t){const e=t.replace(/\*/g,"PLEACE_REPLACE_ME_AGAIN");return"^".concat((n=e,n.replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\".concat("","-]"),"g"),"\\$&")).replace(/PLEACE_REPLACE_ME_AGAIN/g,"(.*)"),"$");var n}n.d(e,{L:()=>o})},4001:(t,e,n)=>{"use strict";function o(t="test"){try{document.cookie="".concat(t,"=1");const e=-1!==document.cookie.indexOf("".concat(t,"="));return document.cookie="".concat(t,"=1; expires=Thu, 01-Jan-1970 00:00:01 GMT"),e}catch(t){return!1}}n.d(e,{E:()=>o})},2891:(t,e,n)=>{"use strict";n.d(e,{c:()=>i});const o=/{{([A-Za-z0-9_]+)}}/gm;function i(t,e){return t.replace(o,((t,n)=>Object.prototype.hasOwnProperty.call(e,n)?e[n]:t))}},4548:(t,e,n)=>{"use strict";n.d(e,{jb:()=>o,zm:()=>i,rG:()=>r,d3:()=>a,_W:()=>s,NY:()=>c,He:()=>l,i7:()=>d,Ng:()=>u,CT:()=>p,v4:()=>h,YO:()=>f,Gn:()=>m,Ti:()=>g,Ks:()=>b,dW:()=>v,Kh:()=>y,Wm:()=>k,Qt:()=>w,of:()=>x,fq:()=>C,WK:()=>S,jk:()=>A,Kx:()=>O});const o="consent-original",i="consent-click-original",r="_",a="consent-by",s="consent-required",c="consent-visual-use-parent",l="consent-visual-paint-mode",d="consent-inline",u="consent-inline-style",p="consent-id",h="script",f="consent-blocker-connected",m="consent-blocker-connected-pres",g="consent-transaction-complete",b="consent-transform-wrapper",v="1",y="consent-strict-hidden",k="consent-cb-reset-parent",w="1",x="consent-cb-reset-parent-is-ratio",C="consent-got-clicked",S="1",A="2",O="consent-thumbnail"},6346:(t,e,n)=>{"use strict";n.d(e,{L:()=>s,K:()=>c});var o=n(9749),i=n.n(o),r=n(2891),a=n(7033);const s="rcbInitiatorOnload";function c(t,e,n=document.body){return new Promise((o=>{t?i()(n,(0,r.c)(t,e),{done:o,error:t=>{console.error(t)},beforeWriteToken:t=>{const{attrs:e,booleanAttrs:n,src:o,href:i,content:r}=t;if(null!=n&&n["skip-write"])return!1;r&&(t.content=r.replace(/window\.onload\s+=/g,"window.".concat(s," =")));for(const t in e)if(e[t]=(0,a.l)(e[t]),"unique-write-name"===t&&document.querySelector('[unique-write-name="'.concat(e[t],'"]')))return!1;return o&&(t.src=(0,a.l)(o)),i&&(t.href=(0,a.l)(i)),t}}):o()}))}},3102:(t,e,n)=>{"use strict";n.d(e,{T:()=>o});const o="RCB/OptIn/ContentBlocker"},3743:(t,e,n)=>{"use strict";function o(t=0){setTimeout((()=>{try{window.dispatchEvent(new Event("resize"))}catch(t){}}),t)}n.d(e,{s:()=>o})},7033:(t,e,n)=>{"use strict";n.d(e,{l:()=>i});var o=n(3137);function i(t){var e;return(0,o.C)(t)?null===(e=(new DOMParser).parseFromString('<a href="'.concat(t,'"></a>'),"text/html").querySelector("a"))||void 0===e?void 0:e.href:(new DOMParser).parseFromString(t,"text/html").documentElement.textContent}},3137:(t,e,n)=>{"use strict";function o(t){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(t)}n.d(e,{C:()=>o})},9586:(t,e,n)=>{"use strict";n.d(e,{w:()=>i});var o=n(7932);function i(t,e){const n=[];let i=t.parentElement;for(;null!==i;)i.nodeType===Node.ELEMENT_NODE&&(0,o.D)(i,e)&&n.push(i),i=i.parentElement;return n}},4902:(t,e,n)=>{"use strict";n.d(e,{X:()=>r});var o=n(5213),i=n(7029).h;const r=({ms:t=100,chars:e=["&#9719;","&#9718;","&#9717;","&#9716;"]})=>{const[n,r]=(0,o.eJ)(1);return(0,o.d4)((()=>{const e=setInterval((()=>{r(n+1)}),t);return()=>clearInterval(e)}),[n]),i("span",{dangerouslySetInnerHTML:{__html:e[n%4]}})}},8559:(t,e,n)=>{"use strict";n.d(e,{P:()=>h});var o=n(4741),i=n(5213),r=n(2087),a=n(1680),s=n(7029).h;const c=({icon:t,...e})=>{const n=(0,i.Ye)((()=>(0,a.x)(t,{extraSVGAttrs:{style:"width:auto;height:100%;",fill:"currentColor"}})),[t]);return s("div",(0,o.Z)({},e,{dangerouslySetInnerHTML:{__html:n}}))};var l=n(4769),d=n(3282),u=n(8982),p=n(7029).h;const h=({hideCheckbox:t,isPartial:e,isChecked:n,isDisabled:a,fontSize:s,onClick:h,children:f,after:m,...g})=>{const b=e?l.Z:d.Z,v=(0,u.w)(),[y,k]=(0,i.eJ)(!1);return(0,i.bt)((()=>{k(!0)}),[]),p(i.HY,null,!t&&p(c,(0,o.Z)({icon:b,onClick:h},function({layout:{borderRadius:t},group:{headlineFontSize:e,checkboxBg:n,checkboxBorderWidth:o,checkboxBorderColor:i,checkboxActiveBg:a,checkboxActiveBorderColor:s,checkboxActiveColor:c},customCss:{antiAdBlocker:l},mobile:d,pageRequestUuid4:u},p,h,f,m){let g=m||e;g=u?(0,r.D)(d,u,g):g;const b=u?(0,r.D)(d,u,+o):+o,v=+g+2*b+6;return{className:"y"===l?void 0:"rcb-checkbox",style:{cursor:f?"not-allowed":"pointer",opacity:f?.5:void 0,color:h?c:n,display:p?"inline-block":"none",background:h?a:n,border:"".concat(b,"px solid ").concat(h?s:i),padding:3,height:v,width:v,marginRight:10,borderRadius:+t,verticalAlign:"middle",lineHeight:0,boxSizing:"border-box"}}}(v,y,n,a,s),g)),f&&p("span",{style:{verticalAlign:"middle",cursor:"pointer"}},p("span",{onClick:h},f),m))}},229:(t,e,n)=>{"use strict";n.d(e,{V:()=>g});var o=n(4741),i=n(8982),r=n(8559),a=n(5213),s=n(3137),c=n(2121),l=n(2087),d=n(7029).h;const u=({label:t,value:e,children:n,printValueAs:r})=>{const a=(0,i.w)(),{i18n:{yes:u,no:p}}=a;let h="string"==typeof e&&(0,s.C)(e)?d("a",{href:e,style:{wordBreak:"break-all",...(0,c.c)(a,!1).style},target:"_blank",rel:"noopener noreferrer"},e):"string"==typeof e?d("span",{dangerouslySetInnerHTML:{__html:e}}):e;return"boolean"===r&&(h=h?u:p),d("div",(0,o.Z)({key:t},function({group:{groupBorderWidth:t,groupBorderColor:e},customCss:{antiAdBlocker:n},mobile:o,pageRequestUuid4:i}){return{className:"y"===n?void 0:"rcb-cookie-prop",style:{borderLeft:(i?(0,l.D)(o,i,t):t)>0?"1px solid ".concat(e):void 0,paddingLeft:15}}}(a)),t&&d("strong",null,t,": "),h,!!n&&d("div",null,n))};var p=n(2891),h=n(7029).h;const f=({cookie:{purpose:t,provider:e,providerPrivacyPolicyUrl:n,legalBasis:o,ePrivacyUSA:r,isEmbeddingOnlyExternalResources:s,technicalDefinitions:c,codeDynamics:l},isEssentialGroup:d})=>{const{i18n:f,ePrivacyUSA:m}=(0,i.w)(),g={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"}};return h(a.HY,null,!!t&&h(u,{label:f.purpose,value:t}),h(u,{label:f.legalBasis,value:"legal-requirement"===o?f.legalRequirement:"legitimate-interest"===o||d?f.legitimateInterest:f.consent}),h(u,{label:f.provider,value:e}),!!n&&h(u,{label:f.providerPrivacyPolicyUrl,value:n}),!!m&&h(u,{label:f.ePrivacyUSA,value:r,printValueAs:"boolean"}),!s&&c.map((({type:t,name:e,host:n,duration:o,durationUnit:i,isSessionDuration:r,purpose:a})=>h(u,{key:e,label:f.technicalCookieDefinition,value:h("span",{style:{fontFamily:"monospace"}},(0,p.c)(e,l))},h(u,{label:f.type,value:g[t].name}),!!a&&h(u,{label:f.purpose,value:a}),!!n&&h(u,{label:f.host,value:h("span",{style:{fontFamily:"monospace"}},n)}),h(u,{label:f.duration,value:["local","indexedDb","flash"].indexOf(t)>-1?f.noExpiration:r||"session"===t?"Session":"".concat(o," ").concat(f.durationUnit[i])})))))};var m=n(7029).h;const g=({cookie:t,checked:e,disabled:n,onToggleCheck:a,propertyListProps:s={}})=>{const{name:c}=t,l=(0,i.w)(),{group:{descriptionFontSize:d}}=l;return m("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-cookie",style:{marginTop:10}}}(l),m("div",{style:{marginBottom:10}},m(r.P,{isChecked:e,isDisabled:n,fontSize:d,onClick:a},m("strong",null,c))),m(f,(0,o.Z)({cookie:t},s)))}},8523:(t,e,n)=>{"use strict";n.d(e,{u:()=>c});var o=n(4741),i=n(5213),r=n(3428),a=n(9707),s=n(7029).h;const c=(0,i.Gp)((({children:t,className:e,title:n,position:i="top",color:c,size:l="large",always:d,rounded:u,noAnimate:p,bounce:h,...f},m)=>((0,a.G)(r,"hint-css",!0),s("div",(0,o.Z)({style:{position:"relative",display:"inline"},ref:m,"aria-label":n,className:"hint--".concat(i," hint--").concat(l," ").concat(c?"hint--".concat(c):""," ").concat(d?"hint--always":""," ").concat(u?"hint--rounded":""," ").concat(p?"hint--no-animate":""," ").concat(h?"hint--bounce":""," ").concat(e||"")},f),t))))},4766:(t,e,n)=>{"use strict";n.d(e,{k:()=>i,S:()=>r});var o=n(5213);class i{static Context(){return this.context=this.context||(0,o.kr)({})}}function r(){return(0,o.qp)(i.Context())}i.context=void 0},1347:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i,_:()=>r});var o=n(5213);class i{static Context(){return this.context=this.context||(0,o.kr)({})}}function r(){return(0,o.qp)(i.Context())}i.context=void 0},6092:(t,e,n)=>{"use strict";n.d(e,{g:()=>g});var o=n(4741),i=n(5213),r=n(8982),a=n(3258),s=n(2087),c=n(7029).h;const l=({children:t,...e})=>{const n=(0,r.w)(),[a,l]=(0,i.eJ)(!1);return c("a",(0,o.Z)({onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1)},function({footerDesign:{fontSize:t,fontColor:e,hoverFontColor:n,fontInheritFamily:o,fontFamily:i},design:{linkTextDecoration:r},customCss:{antiAdBlocker:a},mobile:c,pageRequestUuid4:l},d=!1){return{className:"y"===a?void 0:"rcb-footer-link",style:{textDecoration:r,fontSize:l?(0,s.D)(c,l,+t):+t,color:d?n:e,fontFamily:o?void 0:i,padding:"0 5px"}}}(n,a),e),t)};var d=n(8523),u=n(7029).h;const p=({poweredLink:t,affiliate:e})=>u(l,{href:e?e.link:t.href,target:t.target,key:"powered-by"},u("span",{dangerouslySetInnerHTML:{__html:t.innerHTML}}),e&&u(d.u,{title:e.description,position:"top-left"}," ",e.labelBehind));var h=n(7029).h;function f(t,e){const n=t.filter(Boolean);return 0===n.length?null:n.reduce(((t,n,o)=>t.length?[...t,h(i.HY,{key:o},e),n]:[n]),[])}var m=n(7029).h;function g({onClose:t,putPoweredByLinkInRow:e,row1:n}={}){const{i18n:{close:s},footerDesign:{poweredByLink:c,linkTarget:d},poweredLink:u,affiliate:h}=(0,r.w)(),{linkPrivacyPolicy:g,linkImprint:b}=(0,a.p)(),v="_blank"===d?{target:"_blank",rel:"noopener"}:{},y=[[t&&m(l,{href:"#",onClick:t,key:"close"},m("strong",null,s)),...n||[],g&&m(l,(0,o.Z)({href:g.url},v,{key:"privacyPolicy"}),g.label),b&&m(l,(0,o.Z)({href:b.url},v,{key:"imprint"}),b.label)].filter(Boolean),[]];u&&c&&y[e||0].push(m(p,{key:"poweredBy",poweredLink:u,affiliate:h}));const k=(0,i.I4)((t=>f(t.map((t=>t.length?m(i.HY,{key:t[0].key},f(t,m(i.HY,null," • "))):null)),m("br",null))),[]);return{rows:y,render:k}}},6268:(t,e,n)=>{"use strict";n.d(e,{k:()=>s});var o=n(8982),i=n(3258);function r(t,e){return t.length>1&&t.splice(t.length-1,0,"{{andSeparator}}"),t.join(", ").replace(/,\s+{{andSeparator}},\s+/g,e)}const a='<sup style="vertical-align:top;line-height:100%;position:initial;">';function s({disableDataProcessingInUnsafeCountries:t,disableAgeNotice:e,disableListServicesNotice:n}={}){const{blocker:s,groups:c,ePrivacyUSA:l,ageNotice:d,listServicesNotice:u,texts:{description:p,ePrivacyUSA:h,ageNoticeBanner:f,listServicesNotice:m,consentForwardingExternalHosts:g},tcf:b,consentForwardingExternalHosts:v,individualPrivacyOpen:y,individualTexts:{description:k},essentialGroup:w,i18n:{andSeparator:x,tcf:C},keepVariablesInTexts:S}=(0,o.w)(),{linkPrivacyPolicy:A}=(0,i.p)();let O="";v&&!S&&(O=g.replace(/{{websites}}/g,v.join(", ")));let D=[s?s.description:y?k:p,O].filter(Boolean).join(" ");S||(D=D.replace(/{{privacyPolicy}}(.*){{\/privacyPolicy}}/g,A?'<a href="'.concat(A.url,'" style="text-decoration:underline;color:inherit;" onmouseenter="this.style.textDecoration=\'none\'" onmouseleave="this.style.textDecoration=\'underline\'" target="_blank">$1</a>'):"$1"));const I=c.map((({items:t})=>t.filter((({ePrivacyUSA:t})=>t)))).flat(),E=b?Object.values(b.gvl.vendors).filter((t=>{var e;return(null===(e=t.additionalInformation)||void 0===e?void 0:e.internationalTransfers)||1===b.original.vendorConfigurations[t.id].ePrivacyUSA})):[];let B=!t&&(I.length>0||E.length>0)&&l?h:"";const T=d&&!e?f:"";let P="";if(u&&!n){const t=m.indexOf("{{services}}")>-1&&m.indexOf("{{serviceGroups}}")>-1,e=c.filter((({slug:t})=>t!==w)),n="~;~",o=r(e.map((({items:e},o)=>e.map((({name:e,ePrivacyUSA:n})=>"".concat(e).concat(a).concat([t?o+1:"",B&&n?"U":""].filter(Boolean).join(","),"</sup>"))).join(n))).join(n).split(n),x);if(o){const n=r(e.map((({name:e},n)=>"".concat(e).concat(a).concat(t?n+1:"","</sup>"))),x);P="<span>".concat(m,"</span>").concat(b&&!y?" <span>".concat(C.listOfServicesAppendix,"</span>"):""),S||(P=P.replace(/{{services}}/g,o).replace(/{{serviceGroups}}/g,n)),B&&(B+="".concat(a,"U</sup>"))}}return{description:D,teachings:[B,T,P].filter(Boolean)}}},8982:(t,e,n)=>{"use strict";n.d(e,{w:()=>r});var o=n(4766),i=n(1347);function r(){const t=(0,o.S)(),e=(0,i._)();return t.groups?t:e}},3258:(t,e,n)=>{"use strict";n.d(e,{p:()=>i});var o=n(8982);function i(){const{legal:{privacyPolicy:t,privacyPolicyExternalUrl:e,privacyPolicyIsExternalUrl:n,privacyPolicyLabel:i,imprint:r,imprintExternalUrl:a,imprintIsExternalUrl:s,imprintLabel:c},pageByIdUrl:l}=(0,o.w)(),d=(0,o.w)().pageIdToPermalink||{};let u=t>0?d[t]||"".concat(l,"=").concat(t):void 0,p=r>0?d[r]||"".concat(l,"=").concat(r):void 0;return n&&(u=e),s&&(p=a),{linkPrivacyPolicy:!(!i||!u)&&{url:u,label:i},linkImprint:!(!c||!p)&&{url:p,label:c}}}},9707:(t,e,n)=>{"use strict";n.d(e,{G:()=>r});var o=n(5213);let i=0;function r(t,e,n){const r=(0,o.Ye)((()=>"react-use-plain-css-".concat(e||(i++).toString(36))),[]);return(0,o.bt)((()=>{let e=document.getElementById(r);return e||(e=document.createElement("style"),e.style.type="text/css",e.id=r,document.getElementsByTagName("head")[0].appendChild(e)),e.innerHTML=t,()=>{var t;n||null===(t=e.parentNode)||void 0===t||t.removeChild(e)}}),[t,n]),r}},7613:(t,e,n)=>{"use strict";n.d(e,{W:()=>i});var o=n(2087);function i({bodyDesign:{teachingsInheritTextAlign:t,teachingsTextAlign:e,teachingsInheritFontSize:n,teachingsFontSize:i,teachingsInheritFontColor:r,teachingsFontColor:a},customCss:{antiAdBlocker:s},mobile:c,pageRequestUuid4:l}){return{className:"y"===s?void 0:"rcb-teachings",style:{marginTop:7,display:"inline-block",textAlign:t?void 0:e,fontSize:n?void 0:l?(0,o.D)(c,l,+i):+i,color:r?void 0:a}}}},8346:(t,e,n)=>{"use strict";function o({layout:{borderRadius:t},bodyDesign:{teachingsSeparatorActive:e,teachingsSeparatorWidth:n,teachingsSeparatorHeight:o,teachingsSeparatorColor:i},customCss:{antiAdBlocker:r}}){return{className:"y"===r?void 0:"rcb-teachings-separator",style:{marginTop:7,display:"inline-block",maxWidth:"100%",borderRadius:+t,width:+n,height:e?+o:0,background:i}}}n.d(e,{V:()=>o})},2121:(t,e,n)=>{"use strict";function o({design:{linkTextDecoration:t},group:{linkColor:e,linkHoverColor:n},customCss:{antiAdBlocker:o}},i){return{className:"y"===o?void 0:"rcb-group-more",style:{color:i?n:e,textDecoration:t}}}n.d(e,{c:()=>o})},6730:(t,e,n)=>{"use strict";n.d(e,{a:()=>i});var o=n(2087);function i({headerDesign:{fontSize:t,fontColor:e,fontInheritFamily:n,fontFamily:i,fontWeight:r},customCss:{antiAdBlocker:a},mobile:s,pageRequestUuid4:c},l){return{className:"y"===a?void 0:"rcb-headline",style:{color:e,lineHeight:1.8,fontSize:c?(0,o.D)(s,c,+t):+t,fontFamily:n?void 0:i,fontWeight:r,paddingRight:l?20:void 0}}}},2087:(t,e,n)=>{"use strict";function o({enabled:t,scalePercent:e,scalePercentVertical:n},o,i,r,a=!1){return i}n.d(e,{D:()=>o})},5672:(t,e,n)=>{"use strict";n.d(e,{U:()=>i});var o=n(7932);function i(t){const e=document.getElementById(t),n=document.createElement("div");return window.rcbPoweredByCacheOuterHTML?n.innerHTML=window.rcbPoweredByCacheOuterHTML:(0,o.D)(e,"a")&&e.innerHTML.toLowerCase().indexOf("Real Cookie Banner")&&(window.rcbPoweredByCacheOuterHTML=e.outerHTML,n.innerHTML=window.rcbPoweredByCacheOuterHTML,e.parentNode.removeChild(e)),n.children[0]}window.rcbPoweredByCacheOuterHTML=""},7932:(t,e,n)=>{"use strict";function o(t,e){const n="undefined"!=typeof Element?Element.prototype:{},o=n.matches||n.matchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector;if(!t||1!==t.nodeType||!t.parentElement)return!1;if(o)return o.call(t,e);const i=t.parentElement.querySelectorAll(e);for(const e in i)if(i[e]===t)return!0;return!1}n.d(e,{D:()=>o})},3075:(t,e,n)=>{"use strict";n.d(e,{D:()=>y});var o=n(4312),i=n(6811),r=n(5566),a=n.n(r),s=n(6659),c=n(8542),l=n.n(c),d=n(830),u=n.n(d);function p(t,e,n){return t.search=s.stringify(n?a().all([s.parse(t.search),...e]):e,!0),t}const h={},f={};async function m(t,e){if(void 0!==e){const n=f[t]||new Promise((async(n,o)=>{try{const i=await window.fetch(e);if(i.ok){const e=await i.text();t===e?o():(h[t]=e,n(e))}else o()}catch(t){o()}}));return f[t]=n,n}{if(void 0===t)return;await Promise.all(Object.values(f));let e=t;for(;h[e]&&(e=h[e],h[e]!==t););return Promise.resolve(e)}}async function g(t,e,n){const o=e.clone();try{return await e.json()}catch(e){const r=await o.text();if(""===r&&[i.O.DELETE,i.O.PUT].indexOf(n)>-1)return;let a;console.warn("The response of ".concat(t," contains unexpected JSON, try to resolve the JSON line by line..."),{body:r});for(const t of r.split("\n"))if(t.startsWith("[")||t.startsWith("{"))try{return JSON.parse(t)}catch(t){a=t}throw a}}var b=n(8556),v=n.n(b);async function y({location:t,options:e,request:n,params:r,settings:c={},cookieValueAsParam:d,multipart:h=!1,sendRestNonce:f=!0}){const b=function({location:t,params:e={},nonce:n=!0,options:r,cookieValueAsParam:a}){const c=new URL(r.restRoot),d=s.parse(c.search),h=d.rest_route||c.pathname,f=[],m=t.path.replace(/:([A-Za-z0-9-_]+)/g,((t,n)=>(f.push(n),e[n]))),g={};for(const t of Object.keys(e))-1===f.indexOf(t)&&(g[t]=e[t]);a&&(g._httpCookieInvalidate=u()(JSON.stringify(a.map(l().get)))),c.protocol=window.location.protocol;const b=(0,o.Ab)(h)+(0,o.XO)(t.namespace||r.restNamespace)+m;return d.rest_route?d.rest_route=b:c.pathname=b,n&&r.restNonce&&(d._wpnonce=r.restNonce),p(c,d),["wp-json/","rest_route="].filter((t=>c.toString().indexOf(t)>-1)).length>0&&t.method&&t.method!==i.O.GET&&p(c,[{_method:t.method}],!0),p(c,[r.restQuery,g],!0),c.toString()}({location:t,params:r,nonce:!1,options:e,cookieValueAsParam:d});["wp-json/","rest_route="].filter((t=>b.indexOf(t)>-1)).length>0&&t.method&&t.method!==i.O.GET?c.method=i.O.POST:c.method=t.method||i.O.GET;const k=new URL(b),w=-1===["HEAD","GET"].indexOf(c.method);!w&&n&&p(k,[n],!0);const x=k.toString();let C;w&&(C=h?v()(n,"boolean"==typeof h?{}:h):JSON.stringify(n));const S=await m(e.restNonce),A=void 0!==S,O=a().all([c,{headers:{..."string"==typeof C?{"Content-Type":"application/json;charset=utf-8"}:{},...A&&f?{"X-WP-Nonce":S}:{},Accept:"application/json, */*;q=0.1"}}]);O.body=C;const D=await window.fetch(x,O);if(!D.ok){let o,a=!1;try{if(o=await g(x,D,t.method),"private_site"===o.code&&403===D.status&&A&&!f&&(a=!0),"rest_cookie_invalid_nonce"===o.code&&A){const{restRecreateNonceEndpoint:t}=e;try{await m(S,t),a=!0}catch(t){}}}catch(t){}if(a)return await y({location:t,options:e,multipart:h,params:r,request:n,sendRestNonce:!0,settings:c});c.method===i.O.GET&&(window.detectCorruptRestApiFailed=(window.detectCorruptRestApiFailed||0)+1);const s=D;throw s.responseJSON=o,s}return g(x,D,t.method)}},6811:(t,e,n)=>{"use strict";var o;n.d(e,{O:()=>o}),function(t){t.GET="GET",t.POST="POST",t.PUT="PUT",t.DELETE="DELETE",t.PATCH="PATCH"}(o||(o={}))},4312:(t,e,n)=>{"use strict";n.d(e,{XO:()=>o,Ab:()=>i,sE:()=>r});const o=t=>t.endsWith("/")||t.endsWith("\\")?o(t.slice(0,-1)):t,i=t=>"".concat(o(t),"/"),r=t=>{const e=window[t.replace(/-([a-z])/g,(t=>t[1].toUpperCase()))];return"".concat(e.publicUrl).concat(e.chunkFolder,"/")}},9302:(t,e,n)=>{"use strict";n.d(e,{h:()=>s});var o=n(3438),i=n(4548),r=n(3102),a=n(1829);function s(t,e=document.createElement("div")){return new Promise((n=>{let s;const{blocker:c}=(0,o.u)(),l=!e.parentElement;t:for(const e of c){const{rules:n}=e;for(const o of n){const n=(0,a.L)(o);if(t.match(n)){s=e;break t}}}s?(e.setAttribute(i.d3,"services"),e.setAttribute(i._W,s.services.join(",")),e.setAttribute(i.CT,s.id.toString()),e.addEventListener(r.T,(()=>{l&&e.remove(),n()})),l&&document.body.appendChild(e)):n()}))}},9181:(t,e,n)=>{"use strict";n.r(e),n.d(e,{consent:()=>ae,consentAll:()=>se,consentSync:()=>re,unblock:()=>ne.h});var o={};n.r(o),n.d(o,{consent:()=>ae,consentAll:()=>se,consentSync:()=>re,unblock:()=>ne.h});var i=n(5213),r=n(3438),a=n(625),s=n(6886),c=n(8218),l=n(9382),d=n(7766),u=n(6028),p=n(4001);const h=async({supportsCookiesName:t})=>!(0,p.E)(t)&&"essentials";var f=n(7169),m=n(4717),g=n.n(m);function b(){const{userAgent:t}=navigator;return!!t&&!/chrome-lighthouse/i.test(t)&&g()(t)}const v=(t,e=1e4,n=!0)=>async({decisionCookieName:o,revisionHash:i})=>{if(b()||!n)return!1;const r=(0,f.h)(o);if(r){const{revision:t}=r;if(i===t)return"consent"}try{const{predecision:n}=await(a=t(),s=e,new Promise(((t,e)=>{a.then(t,e);const n=new Error("Timed out");setTimeout(e,s,n)})));return n}catch(t){return!1}var a,s},y=(t=!0)=>async({decisionCookieName:e,groups:n,essentialGroupSlug:o})=>{const[i]=n.filter((({slug:t})=>t===o));if(!1!==(0,f.h)(e)||!t)return!1;for(const t of n)if(t!==i)for(const{legalBasis:e}of t.items)if("legitimate-interest"===e)return!1;return!!function(){try{const t=window;if((t.doNotTrack||t.navigator.doNotTrack||t.navigator.msDoNotTrack||"msTrackingProtectionEnabled"in t.external)&&("1"==t.doNotTrack||"yes"==t.navigator.doNotTrack||"1"==t.navigator.doNotTrack||"1"==t.navigator.msDoNotTrack||t.external.msTrackingProtectionEnabled()))return!0}catch(t){}return!1}()&&"dnt"},k=async({decisionCookieName:t,revisionHash:e})=>{const n=(0,f.h)(t);if(!1===n)return!1;const{revision:o}=n;return e===o&&"consent"};var w=n(3075),x=n(6811);const C={path:"/consent/dynamic-predecision",method:x.O.POST};function S(t){const{legal:{imprint:e,imprintHide:n,privacyPolicy:o,privacyPolicyHide:i},pageId:r}=t;return[n&&+e,i&&+o].filter(Boolean).indexOf(r)>-1}var A=n(6423),O=n(7563);function D(){const t=(0,i.Ye)((()=>window.innerWidth),[])<700,e=(0,i.Ye)((()=>{const t=window.navigator.userAgent.toLowerCase();return 4===["firefox","gecko","mobile","android"].map((e=>t.indexOf(e)>-1)).filter(Boolean).length}),[]);return(0,i.I4)((({animationIn:n,animationInOnlyMobile:o,animationOut:i,animationOutOnlyMobile:r})=>{let a=o?t?n:"none":n,s=r?t?i:"none":i;return e&&(a="none",s="none"),{useAnimationIn:a,useAnimationOut:s}}),[])}const I=t=>{t&&(t.preventDefault(),t.stopPropagation())};var E=n(4766),B=n(4741),T=n(3743),P=n(9707),N=n(9586),R=n(7932);const z='[href^="#consent-"]';var L=n(2087);function H(t,e){const[n,o]=(0,i.eJ)(0),[r,a]=(0,i.eJ)(0),[s,c]=(0,i.eJ)(t),[l,d]=(0,i.eJ)(void 0),[u,p]=(0,i.eJ)(e),[h,f]=(0,i.eJ)(void 0);return(0,i.d4)((()=>{n>0&&("none"===t?c(t):(c("none"),d(t))),o(n+1)}),[t]),(0,i.d4)((()=>{r>0&&(0===e?p(e):(p(0),f(e),c("none"),d(t))),a(r+1)}),[e]),(0,i.d4)((()=>{void 0!==l&&(c(l),d(void 0))}),[l]),(0,i.d4)((()=>{void 0!==h&&(p(h),f(void 0))}),[h]),[s,u]}function W(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function M(t,e){const{r:n,g:o,b:i}=W(t);return"rgba(".concat(n,", ").concat(o,", ").concat(i,", ").concat(e/100,")")}var _=n(7029).h;function Y({isVisible:t,animationIn:e,animationOut:n,animationInDuration:o,animationOutDuration:i,animationInDelay:r,animationOutDelay:a}){return t?{animation:e,duration:o,delay:r}:{animation:n,duration:i,delay:a}}const U=({animateOnMount:t=!0,isVisible:e=!0,animationIn:n="fadeIn",animationOut:o="fadeOut",animationInDelay:r=0,animationOutDelay:a=0,animationInDuration:s=1e3,animationOutDuration:c=1e3,className:l="",style:d={},children:u})=>{const[{animation:p,duration:h,delay:f},m]=(0,i.eJ)(t?Y({isVisible:e,animationIn:n,animationOut:o,animationInDelay:r,animationOutDelay:a,animationInDuration:s,animationOutDuration:c}):{animation:"",delay:void 0,duration:0});(0,i.d4)((()=>{m(Y({isVisible:e,animationIn:n,animationOut:o,animationInDelay:r,animationOutDelay:a,animationInDuration:s,animationOutDuration:c}))}),[e,n,o,r,a,s,c]);const g="animate__animated animate__".concat(p," ").concat(l),b=p?{}:{opacity:e?1:0,transition:"opacity ".concat(f,"ms")};return _("div",{className:g,style:{animationDelay:"".concat(f,"ms"),animationDuration:"".concat(h,"ms"),pointerEvents:e?"all":"none",...d,...b}},u)};function F(t,e){const{pageRequestUuid4:n}=(0,E.S)(),o=(0,P.G)("","useRenderedHeightsAsCssVars-".concat(e)),r=document.getElementById(o);(0,i.d4)((()=>{let o=0;const i=()=>{const i=t.getBoundingClientRect().height;o!==i&&(o=i,r.innerHTML="#".concat(n,"{--rendered-height-").concat(e,": ").concat(Math.floor(i),"px;--rendered-height-raw-").concat(e,": ").concat(i,"px}"))};if(!t)return()=>{};const a=document.querySelector("#".concat(n,' div[class*="animate__"]'));if(a.addEventListener("animationend",i),window.ResizeObserver){const e=new ResizeObserver(i);return e.observe(t),()=>{e.disconnect(),a.removeEventListener("animationend",i)}}{const t=setInterval(i,150);return()=>{clearInterval(t),a.removeEventListener("animationend",i)}}}),[t,e])}var G=n(6730);function q(){const{individualPrivacyOpen:t,onSave:e,updateGroupChecked:n,updateCookieChecked:o,groups:r,essentialGroup:a,updateIndividualPrivacyOpen:s,activeAction:c,onClose:l}=(0,E.S)(),d=t?"ind_all":"main_all",u=t?"ind_essential":"main_essential",p=t?"ind_close_icon":"main_close_icon",h=t?"ind_custom":"main_custom",f={buttonClickedAll:d,buttonClickedEssentials:u,buttonClickedCloseIcon:p,buttonClickedCustom:h,acceptAll:(0,i.I4)((()=>{r.forEach((t=>n(t.id,!0))),e(!1,d)}),[d]),acceptEssentials:(0,i.I4)(((t=!1)=>{r.forEach((({slug:t,id:e,items:i})=>{if(t===a)n(e,!0);else for(const{legalBasis:t,id:n}of i)o(e,n,"legitimate-interest"===t)})),e(!1,t?p:u)}),[u]),acceptIndividual:(0,i.I4)((()=>e(!1,h)),[h]),openIndividualPrivacy:(0,i.I4)((()=>{s(!0)}),[s])};return{...f,closeIcon:(0,i.I4)((()=>{c?l():f.acceptEssentials(!0)}),[c,l,f.acceptEssentials])}}var X=n(7778);const j=({children:t,className:e,tag:n="div",renderInContainer:o})=>{const[r]=(0,i.eJ)((()=>{const t=document.createElement(n);return e&&t.classList.add(e),t}));return(0,i.d4)((()=>(document.body.appendChild(r),()=>{document.body.removeChild(r)})),[]),(0,i.jz)(t,o||r)};var J=n(8523),V=n(7029).h;let Z=0;const $=({width:t,color:e,tooltipText:n,framed:o,renderInContainer:r,tooltipAlways:a,onClick:s,thickness:c=1})=>{const l=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),d=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),u=(0,i.Ye)((()=>"react-close-icon-".concat((Z++).toString(36))),[]),p=(0,i.sO)(),h=(0,X.EL)(p);return(0,P.G)("#".concat(u,", #").concat(l," {\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: calc(").concat(t,"px / 2 * -1);\n display: block;\n width: ").concat(t,"px;\n height: ").concat(t,"px; \n pointer-events: none;\n}\n\n#").concat(l," {\n position: absolute !important;\n}\n\n#").concat(l,", #").concat(d," {\n cursor: pointer;\n pointer-events: all;\n ").concat(o?"outline: rgb(255, 94, 94) solid 5px;":"","\n}\n\n#").concat(d," {\n position: fixed !important;\n ").concat(h?"top: ".concat(h.y,"px;left: ").concat(h.x,"px;display:block;"):"display:none;","\n width: ").concat(t,"px;\n height: ").concat(t,"px;\n z-index: 99;\n}\n#").concat(d,":after, #").concat(l,":after {\n width: auto !important;\n white-space: nowrap !important;\n}\n#").concat(d,">span:before, #").concat(d,">span:after,\n#").concat(l,">span:before, #").concat(l,">span:after {\n position: absolute;\n top: 50%;\n left: 50%;\n width: ").concat(c,"px;\n height: ").concat(t,"px;\n background-color: ").concat(e,";\n transform: rotate(45deg) translate(-50%, -50%);\n transform-origin: top left;\n transition: all 420ms;\n content: '';\n opacity: 0.5;\n pointer-events: none;\n}\n#").concat(d,">span:after,\n#").concat(l,">span:after {\n transform: rotate(-45deg) translate(-50%, -50%);\n}\n#").concat(d,">span:hover:before, #").concat(d,">span:hover:after,\n#").concat(l,">span:hover:before, #").concat(l,">span:hover:after {\n opacity: 1;\n width: ").concat(c+1,"px;\n}")),r?V(i.HY,null,V("div",{id:u,ref:p}),(null==h?void 0:h.y)>0&&V(j,{renderInContainer:r},V(J.u,{title:n,id:d,onClick:s,position:h.y>50?"top-left":"left",always:a},V("span",null)))):V(J.u,{title:n,id:l,onClick:s,position:"top-left",always:a},V("span",null))};var Q=n(7029).h;const K=()=>{const{headerDesign:{fontSize:t,fontColor:e},texts:{acceptEssentials:n},mobile:o,activeAction:i,pageRequestUuid4:r,i18n:{close:a,closeWithoutSaving:s},buttonClicked:c=""}=(0,E.S)(),{buttonClickedCloseIcon:l,closeIcon:d}=q(),u=document.getElementById(r);return Q($,{width:(0,L.D)(o,r,t),color:e,tooltipText:i?"change"===i?s:a:n,tooltipAlways:(null==u?void 0:u.clientWidth)<700,framed:c===l,renderInContainer:u,onClick:d})};var tt=n(7029).h;const et=(0,i.Gp)(((t,e)=>{const n=(0,E.S)(),{headerDesign:{logo:o,logoRetina:i},decision:{showCloseIcon:r},texts:{headline:a},activeAction:s,individualPrivacyOpen:c,individualTexts:l,i18n:{headerTitlePrivacyPolicyHistory:d}}=n,u=i&&!(null!=o&&o.endsWith(".svg"))&&window.devicePixelRatio>1,p=u?i:o,h=c?"history"===s?d:l.headline:a;return tt("div",(0,B.Z)({ref:e},function({layout:{type:t,dialogBorderRadius:e},design:{borderWidth:n,borderColor:o,...i},headerDesign:{inheritBg:r,bg:a,padding:s},customCss:{antiAdBlocker:c},mobile:l,pageRequestUuid4:d}){const u=(0,L.D)(l,d,t,"banner"),p=(0,L.D)(l,d,n),h={padding:(0,L.D)(l,d,s,void 0,!0).map((t=>"".concat(t,"px"))).join(" "),background:r?i.bg:a,borderRadius:"dialog"===u?"".concat(e,"px ").concat(e,"px 0 0"):void 0,position:"sticky",zIndex:9,top:0};return"dialog"===u&&p>0&&(h.borderTop="".concat(p,"px solid ").concat(o),h.borderLeft=h.borderTop,h.borderRight=h.borderTop),{className:"y"===c?void 0:"rcb-header-container",style:h}}(n)),tt("div",function({layout:{type:t,bannerMaxWidth:e},design:{textAlign:n},headerDesign:{inheritTextAlign:o,logo:i,logoPosition:r,...a},texts:{headline:s},individualLayout:c,customCss:{antiAdBlocker:l},mobile:d,pageRequestUuid4:u,individualPrivacyOpen:p}){const h=o?n:a.textAlign;return{className:"y"===l?void 0:"rcb-header",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(d,u,t,"banner")?+(p&&!c.inheritBannerMaxWidth?c.bannerMaxWidth:e):void 0,margin:"auto",display:"flex",justifyContent:"center"===h?"center":"right"===h?"flex-end":void 0,textAlign:h,alignItems:"center",position:"relative",flexDirection:i&&s?"left"===r?"row":"right"===r?"row-reverse":"column":void 0}}}(n),!!p&&tt("img",(0,B.Z)({alt:"",src:p},function({headerDesign:{logoMaxHeight:t,logoMargin:e,logoFitDim:n,logoRetinaFitDim:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a},s){const c=s?o:n;return{className:"y"===i?void 0:"rcb-logo",style:{...c?{width:c[0],height:c[1]}:{width:"auto",height:(0,L.D)(r,a,+t)},margin:(0,L.D)(r,a,e).map((t=>"".concat(t,"px"))).join(" ")}}}(n,u))),!!h&&tt("div",(0,G.a)(n,!1),h),(!!r||!!s)&&tt(K,null)))}));var nt=n(6268),ot=n(7029).h;const it=({title:t,children:e})=>{const n=(0,E.S)();return ot("div",function({group:{headlineFontSize:t,headlineFontColor:e,headlineFontWeight:n},customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r}){return{className:"y"===o?void 0:"rcb-group",style:{color:e,fontSize:(0,L.D)(i,r,t),fontWeight:n,textAlign:"left"}}}(n),t,e&&ot("div",function({design:{fontWeight:t},group:{descriptionFontColor:e,descriptionFontSize:n},customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r}){return{className:"y"===o?void 0:"rcb-group-description",style:{color:e,fontSize:(0,L.D)(i,r,+n),fontWeight:t,marginTop:5}}}(n),e))};var rt=n(8559),at=n(2121),st=n(8982),ct=n(7029).h;const lt=({onToggle:t,children:e,showMore:n,hideMore:o,...r})=>{const a=(0,st.w)(),[s,c]=(0,i.eJ)(!1),[l,d]=(0,i.eJ)(!1);return ct(i.HY,null,"  •  ",ct("a",(0,B.Z)({href:"#"},(0,at.c)(a,s),{onClick:e=>{const n=!l;d(n),null==t||t(n),e.preventDefault()},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1)},r),l?o:n),l&&e)};var dt=n(229),ut=n(7029).h;const pt=({group:t,cookie:e})=>{var n;const{id:o}=e,r=(0,E.S)(),{consent:a,activeAction:s,essentialGroup:c}=r,l=c===t.slug,d=l||"history"===s,u=l||((null===(n=a.groups)||void 0===n?void 0:n[t.id])||[]).some((t=>t===o)),p=(0,i.I4)((()=>!d&&r.updateCookieChecked(t.id,o,!u)),[d,r,t,o,u]);return ut(dt.V,{cookie:e,propertyListProps:{isEssentialGroup:l},checked:u,disabled:d,onToggleCheck:p})};var ht=n(7029).h;const ft=({group:t})=>{var e;const n=(0,E.S)(),{id:o,slug:r,name:a,description:s,items:c}=t,{previewCheckboxActiveState:l,consent:d,activeAction:u,essentialGroup:p,individualTexts:{showMore:h,hideMore:f}}=n,m=p===r,g=m||"history"===u,b=l||m||!!d.groups[o],v=!m&&JSON.stringify(c.map((({id:t})=>t)).sort())!==JSON.stringify((null===(e=d.groups[o])||void 0===e?void 0:e.sort())||[]),y=(0,i.I4)((()=>!g&&n.updateGroupChecked(o,!b)),[g,n,o,b]);return ht("div",function({group:{groupBg:t,groupBorderRadius:e,groupBorderColor:n,groupPadding:o,groupBorderWidth:i,groupInheritBg:r},customCss:{antiAdBlocker:a},mobile:s,pageRequestUuid4:c}){const l=(0,L.D)(s,c,i);return{className:"y"===a?void 0:"rcb-group",style:{background:r?void 0:t,border:l>0?"".concat(l,"px solid ").concat(n):void 0,padding:(0,L.D)(s,c,o).map((t=>"".concat(t,"px"))).join(" "),borderRadius:+e,textAlign:"left"}}}(n),ht(it,{title:ht(rt.P,{onClick:y,isPartial:v,isChecked:b,isDisabled:g},a," (",c.length,")")},s,!!c&&ht(lt,{showMore:h,hideMore:f},c.map((e=>ht(pt,{key:e.id,group:t,cookie:e}))))))};var mt=n(7029).h;const gt=()=>{const t=(0,E.S)(),{groups:e,group:{groupSpacing:n},mobile:o,pageRequestUuid4:r}=t,a=e.filter((({items:t})=>t.length));return mt("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-groups",style:{marginTop:10,clear:"both"}}}(t),a.map(((t,e)=>mt(i.HY,{key:t.id},mt(ft,{key:t.id,group:t}),e!==a.length-1&&mt("div",{style:{height:(0,L.D)(o,r,+n)}})))))};var bt=n(7029).h;const vt=({group:{id:t,slug:e,name:n}})=>{const o=(0,E.S)(),{decision:{groupsFirstView:r},design:{fontSize:a},consent:s,essentialGroup:c}=o,l=c===e,d=l||!!s.groups[t],u=(0,i.I4)((()=>false),[false,l,o,t,d,r]);return bt("span",(0,B.Z)({key:n},function({design:{fontSize:t},bodyDesign:{dottedGroupsInheritFontSize:e,dottedGroupsFontSize:n},mobile:o,pageRequestUuid4:i}){return{className:void 0,style:{paddingRight:10,fontSize:(0,L.D)(o,i,e?+t:+n),whiteSpace:"nowrap",display:"inline-block"}}}(o)),bt("span",null,bt(i.HY,null,bt("strong",function({bodyDesign:{dottedGroupsBulletColor:t}}){return{className:void 0,style:{color:t}}}(o),"●")," "),bt("span",{style:{verticalAlign:"middle",cursor:r?"pointer":void 0},onClick:u},n)))};var yt=n(7029).h;const kt=()=>{const t=(0,E.S)(),{groups:e,decision:{showGroups:n}}=t;return n?yt("div",function({customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-dotted-groups",style:{marginTop:10,lineBreak:"anywhere",lineHeight:2}}}(t),e.filter((({items:t})=>!!t.length)).map((t=>yt(vt,{key:t.id,group:t})))):null};var wt=n(7029).h;const xt=()=>{const t=(0,E.S)(),[e,n]=(0,i.eJ)(-1),{activeAction:o,history:r,selectHistoryEntry:a,i18n:{historyLabel:s,historySelectNone:c}}=t,l=(0,i.Ye)((()=>{var t;return null==r||null===(t=r.filter((({id:t})=>t===e)))||void 0===t?void 0:t[0]}),[e]);(0,i.d4)((()=>{o?"history"===o&&null!=r&&r.length&&n(r[0].id):n(-1)}),[o,r]);const d=null==l?void 0:l.uuid,u=function({design:{bg:t}}){return{className:void 0,style:{background:t}}}(t);return wt(i.HY,null,s," ",wt("select",(0,B.Z)({},function({design:{fontSize:t,fontColor:e},bodyDesign:{descriptionInheritFontSize:n,descriptionFontSize:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){return{className:"y"===i?void 0:"rcb-history-select",style:{fontSize:(0,L.D)(r,a,n?+t:+o),background:"transparent",border:0,color:e,borderBottom:"1px solid ".concat(M(e,50))}}}(t),{disabled:!(null!=r&&r.length),value:e,onChange:t=>{const e=+t.target.value;r.forEach((({id:t,decision:o,groups:i,tcf:r})=>{t===e&&(n(t),a(i,o,r))}))}}),(null==r?void 0:r.length)>0?r.map((({id:t,isDoNotTrack:e,isUnblock:n,isForwarded:o,created:i})=>wt("option",(0,B.Z)({key:t,value:t},u),new Date(i).toLocaleString(document.documentElement.lang),e?" (Do Not Track)":"",n?" (Content Blocker)":"",o?" (Consent Forwarding)":""))):wt("option",(0,B.Z)({value:-1},u),c)),!!d&&wt("div",{style:{opacity:.5,marginTop:5}},"UUID: ",d))};var Ct=n(8346),St=n(7613);function At({name:t,order:e,type:n,borderRadius:o,bg:i,hoverBg:r,fontSize:a,textAlign:s,fontColor:c,fontWeight:l,hoverFontColor:d,borderWidth:u,borderColor:p,hoverBorderColor:h,padding:f,antiAdBlocker:m,pageRequestUuid4:g},b,v,y,k){const w=!k||e>1,x=k&&1===e?5:0,C=k&&0===e?5:0,S=(0,L.D)(b,g,+u),A={textDecoration:"link"===n?"underline":"none",borderRadius:+o,cursor:"button"===n?"pointer":void 0,backgroundColor:"button"===n?v?r:i:void 0,fontSize:(0,L.D)(b,g,+a),fontWeight:l,color:v?d:c,transition:"background-color 250ms, color 250ms, border-color 250ms",margin:"0 ".concat(C,"px ").concat((0,L.D)(b,g,10,void 0,!0),"px ").concat(x,"px"),border:"button"===n&&S>0?"".concat(S,"px solid ").concat(v?h:p):void 0,padding:(0,L.D)(b,g,f,void 0,"button"!==n).map((t=>"".concat(t,"px"))).join(" "),overflow:"hidden",outline:y?"rgb(255, 94, 94) solid 5px":void 0,flex:w?"1 1 100%":"0 0 calc(50% - ".concat(x+C,"px)"),display:"flex",alignItems:"center",justifyContent:"right"===s?"flex-end":"center"===s?"center":"left",textAlign:s,order:e};return{className:"y"===m?void 0:"rcb-btn-".concat(t),style:A}}function Ot({isTcf:t,decision:{acceptEssentials:e},layout:{borderRadius:n},bodyDesign:{acceptEssentialsFontSize:o,acceptEssentialsBg:i,acceptEssentialsTextAlign:r,acceptEssentialsBorderColor:a,acceptEssentialsPadding:s,acceptEssentialsBorderWidth:c,acceptEssentialsFontColor:l,acceptEssentialsFontWeight:d,acceptEssentialsHoverBg:u,acceptEssentialsHoverFontColor:p,acceptEssentialsHoverBorderColor:h,acceptAllFontWeight:f,acceptAllFontSize:m,acceptAllPadding:g},customCss:{antiAdBlocker:b},mobile:v,pageRequestUuid4:y},k,w,x,C){return At({name:"accept-essentials",order:x,type:e,borderRadius:n,bg:i,hoverBg:u,fontSize:C||t?m:o,textAlign:r,fontColor:l,fontWeight:t?f:d,hoverFontColor:p,borderWidth:c,borderColor:a,hoverBorderColor:h,padding:C?g:s,antiAdBlocker:b,pageRequestUuid4:y},v,k,w,C)}function Dt({decision:{acceptIndividual:t},layout:{borderRadius:e},bodyDesign:{acceptIndividualFontSize:n,acceptIndividualBg:o,acceptIndividualTextAlign:i,acceptIndividualBorderColor:r,acceptIndividualPadding:a,acceptIndividualBorderWidth:s,acceptIndividualFontColor:c,acceptIndividualFontWeight:l,acceptIndividualHoverBg:d,acceptIndividualHoverFontColor:u,acceptIndividualHoverBorderColor:p},customCss:{antiAdBlocker:h},mobile:f,pageRequestUuid4:m},g,b,v,y){return At({name:"accept-individual",order:v,type:t,borderRadius:e,bg:o,hoverBg:d,fontSize:n,textAlign:i,fontColor:c,fontWeight:l,hoverFontColor:u,borderWidth:s,borderColor:r,hoverBorderColor:p,padding:a,antiAdBlocker:h,pageRequestUuid4:m},f,g,b,y)}function It({isTcf:t,layout:{borderRadius:e},bodyDesign:{acceptAllFontWeight:n,acceptAllFontSize:o},saveButton:{type:i,fontSize:r,bg:a,textAlign:s,borderColor:c,padding:l,borderWidth:d,fontColor:u,fontWeight:p,hoverBg:h,hoverFontColor:f,hoverBorderColor:m},customCss:{antiAdBlocker:g},mobile:b,pageRequestUuid4:v},y,k,w,x){return At({name:"accept-individual-save",order:w,type:i,borderRadius:e,bg:a,hoverBg:h,fontSize:t?o:r,textAlign:s,fontColor:u,fontWeight:t?n:p,hoverFontColor:f,borderWidth:d,borderColor:c,hoverBorderColor:m,padding:l,antiAdBlocker:g,pageRequestUuid4:v},b,y,k,x)}function Et({decision:{acceptAll:t},layout:{borderRadius:e},bodyDesign:{acceptAllFontSize:n,acceptAllBg:o,acceptAllTextAlign:i,acceptAllBorderColor:r,acceptAllPadding:a,acceptAllBorderWidth:s,acceptAllFontColor:c,acceptAllFontWeight:l,acceptAllHoverBg:d,acceptAllHoverFontColor:u,acceptAllHoverBorderColor:p},customCss:{antiAdBlocker:h},mobile:f,pageRequestUuid4:m},g,b,v,y){return At({name:"accept-all",order:v,type:t,borderRadius:e,bg:o,hoverBg:d,fontSize:n,textAlign:i,fontColor:c,fontWeight:l,hoverFontColor:u,borderWidth:s,borderColor:r,hoverBorderColor:p,padding:a,antiAdBlocker:h,pageRequestUuid4:m},f,g,b,y)}var Bt=n(4902),Tt=n(7029).h;const Pt=({inlineStyle:t,type:e,onClick:n,children:o,framed:r,busyOnClick:a,order:s})=>{if("hide"===e)return null;const[c,l]=(0,i.eJ)(!1),d=(0,i.I4)((()=>{c||(a&&l(!0),null==n||n())}),[n,c,a]),[u,p]=(0,i.eJ)(!1),h=(0,E.S)(),{individualPrivacyOpen:f,decision:{acceptAll:m,acceptEssentials:g},bodyDesign:{acceptAllOneRowLayout:b,acceptEssentialsUseAcceptAll:v}}=h,y=v?m:g,k={onClick:d,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),style:{cursor:"pointer"}},w=(0,i.Ye)((()=>{switch(t){case"acceptEssentials":return Ot;case"acceptIndividual":return Dt;case"save":return It;default:return Et}}),[t]);return Tt("div",(0,B.Z)({},"button"===e?k:{},w(h,u,r,s,!(/MSIE (\d+\.\d+);/.test(navigator.userAgent)||navigator.userAgent.indexOf("Trident/")>-1||"hide"===m||"hide"===y||f||s>1)&&b)),Tt("span","link"===e?k:{},c?Tt(Bt.X,null):o))};var Nt=n(7029).h;const Rt=()=>{const t=(0,E.S)(),{activeAction:e,bodyDesign:{acceptEssentialsUseAcceptAll:n,acceptAllOneRowLayout:o},decision:{showGroups:r,groupsFirstView:a,saveButton:s,acceptAll:c,acceptEssentials:l,acceptIndividual:d,buttonOrder:u},texts:{acceptAll:p,acceptEssentials:h,acceptIndividual:f},saveButton:{type:m,useAcceptAll:g},individualTexts:{save:b},individualPrivacyOpen:v,didGroupFirstChange:y,productionNotice:k,buttonClicked:w=""}=t,{all:x,essential:C,individual:S,save:A}=(0,i.Ye)((()=>{const t=u.split(","),e=t.reduce(((e,n)=>(e[n]=t.indexOf(n),e)),{}),n=t.reduce(((e,n)=>(e[t.indexOf(n)]=n,e)),{});return o&&(e[n[0]]=1,e[n[1]]=0),e}),[u,o]),{buttonClickedAll:O,buttonClickedEssentials:D,buttonClickedCustom:I,acceptAll:B,acceptEssentials:T,acceptIndividual:P,openIndividualPrivacy:N}=q(),R="change"===e;return Nt(i.HY,null,Nt(Pt,{onClick:B,type:c,inlineStyle:"acceptAll",framed:w===O,busyOnClick:R,order:x},p),"change"!==e&&Nt(Pt,{onClick:T,type:n?c:l,inlineStyle:n?"acceptAll":"acceptEssentials",framed:w===D,busyOnClick:R,order:C},h),!!v&&Nt(Pt,{onClick:P,type:g?c:m,inlineStyle:g?"acceptAll":"save",framed:w===I,busyOnClick:R,order:A},b),!v&&Nt(Pt,{type:d,onClick:N,inlineStyle:"acceptIndividual",framed:w.startsWith("ind_"),busyOnClick:R,order:S},f),k)};var zt=n(7029).h;const Lt=({leftSideContainerRef:t,rightSideContainerRef:e})=>{var n;const o=(0,E.S)(),{layout:{type:r},mobile:a,bodyDesign:{teachingsSeparatorActive:s},tcf:c,individualPrivacyOpen:l,activeAction:d,pageRequestUuid4:u}=o,{description:p,teachings:h}=(0,nt.k)(),f="bnnr-body-leftSide-".concat(u),m="bnnr-body-rightSide-".concat(u),g="cntnt-".concat(u);(0,P.G)(" #".concat(f," img {\n max-width: 100%;\n height: auto;\n}\n\n").concat((null===(n=document.getElementById(u))||void 0===n?void 0:n.clientWidth)>700?"":"#".concat(f," {\n float: initial !important;\n width: auto !important;\n padding-right: initial !important;\n ").concat("banner"!==(0,L.D)(a,u,r,"banner")||l?l?"padding-top: 10px !important;":"":"padding-bottom: 10px !important;","\n }\n\n #").concat(g," {\n min-height: calc(var(--rendered-height-header) + var(--rendered-height-footer) + var(--rendered-height-rightSideContainer) + 60px);\n }\n \n #").concat(m," {\n float: initial !important;\n width: auto !important;\n max-width: initial !important;\n margin: initial !important;\n ").concat(l?"padding-bottom: 5px !important;":"padding-top: 10px !important;","\n position: sticky;\n }")));const b=(0,i.Ye)((()=>zt(l?gt:kt,null)),[l,c]),v=zt("div",(0,B.Z)({ref:t,key:"leftSide",id:f},function({layout:{type:t},bodyDesign:{padding:e},customCss:{antiAdBlocker:n},mobile:o,individualPrivacyOpen:i,activeAction:r,pageRequestUuid4:a}){const s=(0,L.D)(o,a,t,"banner"),c=(0,L.D)(o,a,e);return{className:"y"===n?void 0:"rcb-tb-left",style:{float:"banner"===s&&"history"!==r?"left":void 0,width:"banner"===s&&"history"!==r?"calc(100% - ".concat(300,"px)"):void 0,paddingRight:"banner"===s?20:void 0,paddingTop:+c[0],paddingBottom:"banner"===s||i?+c[2]:0}}}(o)),zt("div",function({design:{fontSize:t},bodyDesign:{descriptionInheritFontSize:e,descriptionFontSize:n},individualLayout:{descriptionTextAlign:o},customCss:{antiAdBlocker:i},mobile:r,individualPrivacyOpen:a,pageRequestUuid4:s}){return{className:"y"===i?void 0:"rcb-description",style:{lineHeight:1.5,fontSize:(0,L.D)(r,s,e?+t:+n),textAlign:a?o:void 0}}}(o),"history"===d?zt(xt,null):zt(i.HY,null,zt("span",{dangerouslySetInnerHTML:{__html:p}}),h.length>0&&zt(i.HY,null,s&&zt("div",null,zt("span",(0,Ct.V)(o))),h.map((t=>zt("span",(0,B.Z)({key:t},(0,St.W)(o),{dangerouslySetInnerHTML:{__html:t}}))))))),b),y="history"===d?zt("div",{ref:e}):zt("div",(0,B.Z)({ref:e,key:"rightSide",id:m},function({layout:{type:t,dialogMaxWidth:e},design:{borderWidth:n,bg:o,fontColor:i},headerDesign:r,footerDesign:a,bodyDesign:{padding:s},individualLayout:{inheritDialogMaxWidth:c},customCss:{antiAdBlocker:l},mobile:d,individualPrivacyOpen:u,pageRequestUuid4:p}){const h=(0,L.D)(d,p,t,"banner"),f=(0,L.D)(d,p,n),m=(0,L.D)(d,p,s,void 0,!0),{r:g,g:b,b:v}=W(i),y="dialog"===h?+e-m[1]-m[3]-2*f:300;return{className:"y"===l?void 0:"rcb-tb-right",style:{background:o,paddingTop:"banner"===h||u?+m[0]:10,paddingBottom:u?10:+m[2],float:"banner"===h||u?"right":void 0,maxWidth:y,width:y,margin:"dialog"===h&&u&&!c?"0 0 10px 10px":void 0,position:u?void 0:"sticky",[u?"top":"bottom"]:u?"calc(var(--rendered-height-header) + ".concat((0,L.D)(d,p,r.borderWidth),"px)"):"calc(var(--rendered-height-footer) + ".concat((0,L.D)(d,p,a.borderWidth),"px)"),zIndex:1,display:"flex",flexWrap:"wrap",transition:"box-shadow ease-in-out .1s","--boxShadowShowScroll":"0 -15px 15px -15px rgba(".concat(g,", ").concat(b,", ").concat(v,", 0.3)")}}}(o)),zt(Rt,null));return zt("div",function({layout:{type:t},design:{bg:e,borderWidth:n,borderColor:o},bodyDesign:{padding:i},customCss:{antiAdBlocker:r},mobile:a,pageRequestUuid4:s}){const c=(0,L.D)(a,s,n),l={background:e,padding:(0,L.D)(a,s,i).map(((t,e)=>"".concat([0,2].indexOf(e)>-1?0:t,"px"))).join(" "),lineHeight:1.4};return"dialog"===(0,L.D)(a,s,t,"banner")&&c>0&&(l.borderLeft="".concat(c,"px solid ").concat(o),l.borderRight=l.borderLeft),{className:"y"===r?void 0:"rcb-body-container",style:l}}(o),zt("div",function({layout:{type:t,bannerMaxWidth:e},individualLayout:n,customCss:{antiAdBlocker:o},mobile:i,individualPrivacyOpen:r,pageRequestUuid4:a}){return{className:"y"===o?void 0:"rcb-body",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(i,a,t,"banner")?+(r&&!n.inheritBannerMaxWidth?n.bannerMaxWidth:e):void 0,margin:"auto"}}}(o),l?[y,v]:[v,y],zt("div",{style:{clear:"both"}})))};var Ht=n(6092),Wt=n(7029).h;const Mt=(0,i.Gp)(((t,e)=>{const n=(0,E.S)(),{isTcf:o,layout:{type:r},individualPrivacyOpen:a,updateIndividualPrivacyOpen:s,onClose:c,i18n:{tcf:l},isConsentRecord:d}=n,u=(0,i.I4)((t=>{c(),t.preventDefault()}),[c]),{rows:p,render:h}=(0,Ht.g)({onClose:d?u:void 0,putPoweredByLinkInRow:"banner"===r?0:1,row1:[!1]});return Wt("div",(0,B.Z)({ref:e},function({layout:{type:t,dialogBorderRadius:e},design:n,footerDesign:{inheritBg:o,bg:i,inheritTextAlign:r,textAlign:a,padding:s,fontSize:c,fontColor:l,fontWeight:d},customCss:{antiAdBlocker:u},mobile:p,pageRequestUuid4:h}){const f=(0,L.D)(p,h,t,"banner"),m=(0,L.D)(p,h,n.borderWidth),g={padding:(0,L.D)(p,h,s,void 0,!0).map((t=>"".concat(t,"px"))).join(" "),background:o?n.bg:i,borderRadius:"dialog"===f?"0 0 ".concat(e,"px ").concat(e,"px"):void 0,fontSize:(0,L.D)(p,h,+c),fontWeight:d,color:l,textAlign:r?n.textAlign:a,position:"sticky",bottom:0,zIndex:1};return"dialog"===f&&m>0&&(g.borderBottom="".concat(m,"px solid ").concat(n.borderColor),g.borderLeft=g.borderBottom,g.borderRight=g.borderBottom),{className:"y"===u?void 0:"rcb-footer-container",style:g}}(n)),Wt("div",function({layout:{type:t,bannerMaxWidth:e},individualLayout:n,customCss:{antiAdBlocker:o},mobile:i,pageRequestUuid4:r,individualPrivacyOpen:a}){return{className:"y"===o?void 0:"rcb-footer",style:{transition:"width 500ms, max-width 500ms",maxWidth:"banner"===(0,L.D)(i,r,t,"banner")?+(a&&!n.inheritBannerMaxWidth?n.bannerMaxWidth:e):void 0,margin:"auto",lineHeight:1.8}}}(n),h(p)))}));var _t=n(7029).h;const Yt=()=>{const t=(0,E.S)(),{layout:{type:e,dialogBorderRadius:n},decision:{acceptAll:o,acceptEssentials:r,showCloseIcon:a},mobile:s,individualPrivacyOpen:c,design:{bg:l},bodyDesign:{teachingsFontColor:d,acceptEssentialsUseAcceptAll:u},activeAction:p,pageRequestUuid4:h}=t,f="bnnr-body-rightSide-".concat(h),m="cntnt-".concat(h),g=(0,i.sO)(),{current:b}=g,v=u?o:r;let y=!0;!s.hideHeader||p||c||"hide"===v&&a||(y=(0,L.D)(s,h,y,!1));const[k,w]=(0,i.eJ)(!1),x=(0,i.I4)((()=>{if(b){const{clientHeight:t,scrollHeight:e,scrollTop:n,offsetHeight:o}=b,i=t<e,r=Math.ceil(n+o)>=e,a=i&&!r&&!c;k!==a&&w(a)}}),[b,c,k]);x(),(0,i.bt)((()=>b?(b.addEventListener("scroll",x),()=>b.removeEventListener("scroll",x)):()=>{}),[b,x]),(0,P.G)(k?"#".concat(f," {box-shadow:var(--boxShadowShowScroll);}"):""),(0,P.G)("Win32"===navigator.platform&&"dialog"===e&&n>0?["#".concat(m,"{overflow:overlay!important;}"),"#".concat(m,"::-webkit-scrollbar{width:11px;}"),"#".concat(m,"{scrollbar-width:thin;scrollbar-color:").concat(d," transparent;}"),"#".concat(m,"::-webkit-scrollbar-track{background:transparent;}"),"#".concat(m,"::-webkit-scrollbar-thumb{background-color:").concat(d,";border-radius:").concat(n,"px;border:3px solid ").concat(l,";}"),"#".concat(m,">div{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}")].join("\n"):"");const C=(0,i.sO)(),S=(0,i.sO)(),A=(0,i.sO)();return F(C.current,"header"),F(S.current,"footer"),F(A.current,"rightSideContainer"),_t("div",(0,B.Z)({},function({layout:{type:t},customCss:{antiAdBlocker:e},decision:{showCloseIcon:n},activeAction:o,individualPrivacyOpen:i,mobile:r,pageRequestUuid4:a}){var s;const c=(null===(s=document.getElementById(a))||void 0===s?void 0:s.clientHeight)||window.innerHeight,l=+r.maxHeight,d=l>c?c:l,u=n||o?51:0;return{className:"y"===e?void 0:"rcb-content",style:{position:"relative",maxHeight:(0,L.D)(r,a,c-("banner"===t?0:20)-u,i?c-u:d-u),overflow:"auto"}}}(t),{ref:g,id:m}),y&&_t(i.HY,null,_t(et,{ref:C}),_t("div",function({layout:{type:t},design:e,headerDesign:{borderWidth:n,borderColor:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){const s=(0,L.D)(r,a,e.borderWidth),c={height:(0,L.D)(r,a,+n),background:o,position:"sticky",top:"var(--rendered-height-header)",zIndex:9};return"dialog"===(0,L.D)(r,a,t,"banner")&&s>0&&(c.borderLeft="".concat(s,"px solid ").concat(e.borderColor),c.borderRight=c.borderLeft),{className:"y"===i?void 0:"rcb-header-separator",style:c}}(t))),_t(Lt,{rightSideContainerRef:A}),_t("div",function({layout:{type:t},design:e,footerDesign:{borderWidth:n,borderColor:o},customCss:{antiAdBlocker:i},mobile:r,pageRequestUuid4:a}){const s=(0,L.D)(r,a,e.borderWidth),c={height:(0,L.D)(r,a,+n),background:o,position:"sticky",bottom:"var(--rendered-height-footer)"};return"dialog"===(0,L.D)(r,a,t,"banner")&&s>0&&(c.borderLeft="".concat(s,"px solid ").concat(e.borderColor),c.borderRight=c.borderLeft),{className:"y"===i?void 0:"rcb-footer-separator",style:c}}(t)),_t(Mt,{ref:S}))};var Ut=n(7029).h;const Ft=()=>{const t=(0,E.S)(),{layout:{animationInDuration:e,animationOutDuration:n},animationVisible:o}=t,{useAnimationIn:i,useAnimationOut:r}=D()(t.layout),[a,s]=H(i,e),[c,l]=H("none"===r?"fadeOut":r,"none"===r?0:n);return Ut(U,(0,B.Z)({animationIn:a,animationInDuration:s,animationOut:c,animationOutDuration:l,isVisible:o},function({layout:{type:t,dialogMaxWidth:e,dialogPosition:n,dialogMargin:o,bannerPosition:i,dialogBorderRadius:r},design:{borderWidth:a,borderColor:s,textAlign:c,fontColor:l,fontInheritFamily:d,fontFamily:u,fontWeight:p,boxShadowEnabled:h,boxShadowOffsetX:f,boxShadowOffsetY:m,boxShadowBlurRadius:g,boxShadowSpreadRadius:b,boxShadowColor:v,boxShadowColorAlpha:y},individualLayout:k,customCss:{antiAdBlocker:w},mobile:x,pageRequestUuid4:C,individualPrivacyOpen:S}){const{alignment:A}=x,O=(0,L.D)(x,C,t,"banner"),D=(0,L.D)(x,C,a),I="dialog"===O?+(S&&!k.inheritDialogMaxWidth?k.dialogMaxWidth:e):"100%",E={pointerEvents:"all",transition:"width 500ms, max-width 500ms",maxWidth:I,textAlign:c,width:I,overflow:"hidden",alignSelf:(0,L.D)(x,C,"banner"===O?"top"===i?"flex-start":"flex-end":void 0,"bottom"===A?"flex-end":"top"===A?"flex-start":"center"),fontFamily:d?void 0:u,fontWeight:p,color:l,margin:"dialog"===O?10:void 0,borderRadius:"dialog"===O?+r:void 0,boxShadow:h?"".concat(f,"px ").concat(m,"px ").concat(g,"px ").concat(b,"px ").concat(M(v,y)):void 0,["banner"===O?"top"===i?"borderBottom":"borderTop":"border"]:"banner"===O&&D>0?"".concat(D,"px solid ").concat(s):void 0};return"dialog"===O&&"middleCenter"!==n&&(E.margin=o.map((t=>"".concat(t,"px"))).join(" ")),{className:"y"===w?void 0:"rcb-inner",style:E}}(t)),Ut(Yt,null))};var Gt=n(7029).h;const qt=()=>{const t=(0,E.S)(),{layout:{overlay:e,overlayBlur:n},customCss:{antiAdBlocker:o,css:r},visible:a,animationVisible:s,activeAction:c,skipOverlay:l,gotHiddenDueLegal:d,pageRequestUuid4:u,individualPrivacyOpen:p}=t,h=S(t),f=a&&!h||!!c;(0,P.G)(o?r:""),(0,P.G)("#".concat(u,", #").concat(u," * {box-sizing: border-box;backface-visibility:initial;text-transform:initial;-webkit-text-size-adjust:100%;}")),function(t){(0,i.d4)((()=>{const{dataset:e,style:n}=document.body;void 0===e.rcbPreviousOverflow&&(e.rcbPreviousOverflow=n.overflow),n.overflow=t?"hidden":e.rcbPreviousOverflow,document.body.parentElement.style.overflow=n.overflow}),[t])}(f&&e&&s);const[,m]=(0,i.eJ)(0),g=()=>m(+new Date);if((0,i.bt)((()=>(window.addEventListener("resize",g),()=>window.removeEventListener("resize",g))),[]),(0,i.bt)((()=>{(0,T.s)(1e3)}),[s,p]),d&&(0,i.d4)((()=>{d(h)}),[h]),function(){const t=(0,E.S)(),{consent:e,groups:n,tcf:o,activeAction:r,selectHistoryEntry:a,fetchHistory:s}=t,[c,l]=(0,i.eJ)({consent:e,groups:n,tcf:o});(0,i.d4)((()=>{r||l({consent:e,groups:n,tcf:o})}),[e,n,o,r]),(0,i.d4)((()=>{if("history"===r)l({consent:e,groups:n,tcf:o}),async function(){const t=await s();if(t.length){const[{groups:e,decision:n,tcf:o}]=t;a(e,n,o)}else a([],[])}();else{const{groups:t,consent:{groups:e},tcf:n}=c;null==a||a(t,e,n)}}),[r])}(),function(){const{openBanner:t,openHistory:e,revokeConsent:n}=(0,E.S)();(0,i.d4)((()=>{const o=(o,i,r)=>{if(t)switch(o){case"change":t(r);break;case"history":e(r);break;case"revoke":n(i,r)}},i=e=>{if(!t)return;const n=e.target;(0,N.w)(n,z).concat((0,R.D)(n,z)?[n]:[]).forEach((t=>{o(t.getAttribute("href").slice(9),t.getAttribute("data-success-message"),e)})),(0,R.D)(n,".rcb-sc-link")&&o(n.getAttribute("href").slice(1),n.getAttribute("data-success-message"),e)},r=()=>{const{hash:t}=window.location;t.startsWith("#consent-")&&o(t.substring(9),void 0,void 0)};return window.addEventListener("hashchange",r),document.addEventListener("click",i,!0),()=>{window.removeEventListener("hashchange",r),document.removeEventListener("click",i,!0)}}),[t,e,n])}(),!f)return null;const b=Gt("div",function({layout:{type:t,dialogPosition:e},customCss:{antiAdBlocker:n},mobile:o,pageRequestUuid4:i}){const r={display:"flex",width:"100%",height:"100%"};return"dialog"===(0,L.D)(o,i,t,"banner")&&(r.alignItems=e.startsWith("top")?"flex-start":e.startsWith("bottom")?"flex-end":"center",r.justifyContent=e.endsWith("Center")?"center":e.endsWith("Left")?"flex-start":"flex-end"),{className:"wp-exclude-emoji ".concat("y"===n?"":"rcb-align"),style:r}}(t),Gt(Ft,null));return l?b:Gt("div",(0,B.Z)({id:u},function({layout:{type:t,overlay:e,overlayBg:n,overlayBgAlpha:o},design:{fontSize:i},customCss:{antiAdBlocker:r},mobile:a,pageRequestUuid4:s}){return{className:"y"===r?void 0:"rcb-bann3r rcb-bann3r-".concat((0,L.D)(a,s,t,"banner")," ").concat(e?"":"overlay-deactivated"),style:{background:e?M(n,o):"none",position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:999999,pointerEvents:e?"all":"none",fontSize:(0,L.D)(a,s,+i),filter:"none",maxHeight:"100vh"}}}(t)),b)},Xt={path:"/consent",method:x.O.GET};var jt=n(1100),Jt=n(7029).h;const Vt=({poweredLink:t})=>{const{customizeValuesBanner:{layout:e,decision:n,legal:o,design:p,headerDesign:m,bodyDesign:g,footerDesign:x,texts:B,individualLayout:T,saveButton:P,group:N,individualTexts:R,customCss:z,mobile:L},pageId:H,pageRequestUuid4:W,pageIdToPermalink:M,consentForwardingExternalHosts:_,essentialGroup:Y,isTcf:U,isEPrivacyUSA:F,isAgeNotice:G,isListServicesNotice:q,tcf:X,tcfMetadata:j,groups:J,userConsentCookieName:V,bannerI18n:Z,affiliate:$,isCurrentlyInTranslationEditorPreview:Q,pageByIdUrl:K}=(0,r.u)(),tt=(0,f.h)(V),et=function(t,e,n){return(0,i.Ye)((()=>{}),[t,e,n])}(U,X,j),{toggleOverlay:nt}=function(t){const e=D(),n=(0,i.I4)((({layout:n},o)=>{const{animationInDuration:i,animationOutDuration:r}=n,{useAnimationIn:a,useAnimationOut:s}=e(n),c=o?"none"===a?0:i:"none"===s?0:r;c>0&&(t.style.transition="background ".concat(c,"ms")),t.style.background="transparent",o?(setTimeout((()=>{t.style.display="block"}),0),setTimeout((()=>{const e=t.getAttribute("data-bg");t.style.background=e?e.split(":")[1].trim().replace(";",""):"transparent"}),100)):setTimeout((()=>{t.style.display="none"}),c);const l={animationVisible:o};return o?{visible:!0,...l}:l}),[e]);return{overlay:t,toggleOverlay:n}}(document.getElementById(W)),{openHistory:ot,openBanner:it,revokeConsent:rt,updateTcfFilterBy:at,updateIndividualPrivacyOpen:st,updateGroupChecked:ct,updateCookieChecked:lt,onClose:dt,selectHistoryEntry:ut}=function({toggleOverlay:t,revokeConsent:e}){const n=(e,n)=>e((e=>({...e,activeAction:n,individualPrivacyOpen:!0,refreshSiteAfterSave:"change"===n&&2e3,...t(e,!0)})));return{openHistory:(t,...e)=>{n(t,"history"),I(e[0])},openBanner:(t,...e)=>{n(t,"change"),I(e[0])},revokeConsent:(t,...n)=>{const[o,i]=n;t((t=>(e(t).then((()=>{o&&alert(o),setTimeout((()=>window.location.reload()),2e3)})),t))),I(i)},updateTcfFilterBy:(t,...e)=>{const[n]=e;t((t=>({...t,tcfFilterBy:n})))},updateIndividualPrivacyOpen:(t,...e)=>{const[n]=e;t((t=>({...t,individualPrivacyOpen:n})))},updateGroupChecked:(t,...e)=>{const[n,o]=e;t((t=>{const e=JSON.parse(JSON.stringify(t.consent));return o?e.groups[n]=t.groups.filter((t=>t.id===n))[0].items.map((({id:t})=>t)):delete e.groups[n],{...t,consent:e,didGroupFirstChange:!0}}))},updateCookieChecked:(t,...e)=>{const[n,o,i]=e;t((t=>{const e=JSON.parse(JSON.stringify(t.consent));e.groups[n]||(e.groups[n]=[]);const r=e.groups[n],a=r.indexOf(o);return i&&-1===a?r.push(o):!i&&a>-1&&r.splice(a,1),r.length||delete e.groups[n],{...t,consent:e}}))},onClose:e=>{e((e=>({...e,...t(e,!1),refreshSiteAfterSave:!1})))},selectHistoryEntry:(t,...e)=>{const[n,o,i]=e;t((t=>{const e={isTcf:!!i,tcf:null};return{...t,groups:n,consent:{...t.consent,groups:o},...e}}))}}}({toggleOverlay:nt,revokeConsent:({tcf:t})=>(0,A.$)({consent:{groups:(0,s.b)().getDefaultDecision(!0)},buttonClicked:"shortcode_revoke",tcfString:void 0})}),[pt,ht]=(0,i.eJ)({layout:{...e},decision:{...n},legal:{...o},design:{...p},headerDesign:{...m},bodyDesign:{...g},footerDesign:{...x},texts:{...B},individualLayout:{...T},saveButton:{...P},group:{...N},individualTexts:{...R},customCss:{...z},mobile:{...L},productionNotice:Jt(jt.Z,null),pageRequestUuid4:W,pageIdToPermalink:M,pageByIdUrl:K,consentForwardingExternalHosts:_,pageId:H,isTcf:U,ePrivacyUSA:F,ageNotice:G,listServicesNotice:q,tcf:et,tcfFilterBy:"legInt",groups:J,essentialGroup:Y,poweredLink:t,visible:!1,animationVisible:!0,skipOverlay:!0,previewCheckboxActiveState:!1,individualPrivacyOpen:!1,i18n:Z,keepVariablesInTexts:Q,affiliate:$,consent:{groups:{...!1===tt?{}:tt.consent,...(0,s.b)().getDefaultDecision(!1===tt)}},didGroupFirstChange:!1,onSave:(t,e)=>{ht((n=>{const o=(0,A.$)({consent:n.consent,markAsDoNotTrack:t,buttonClicked:e,tcfString:void 0});return n.refreshSiteAfterSave?(o.then((()=>setTimeout((()=>window.location.reload()),n.refreshSiteAfterSave||2e3))),n):{...n,...nt(n,!1)}}))},fetchHistory:async()=>{const{restNamespace:t,restRoot:e,restQuery:n,restNonce:o}=(0,a.m)(),i=await(0,w.D)({location:Xt,options:{restNamespace:t,restRoot:e,restQuery:n,restNonce:o},cookieValueAsParam:[V],sendRestNonce:!1});return ht((t=>({...t,history:i}))),i},updateTcfFilterBy:t=>at(ht,t),updateIndividualPrivacyOpen:t=>st(ht,t),updateGroupChecked:(t,e)=>ct(ht,t,e),updateCookieChecked:(t,e,n)=>lt(ht,t,e,n),onClose:()=>dt(ht),selectHistoryEntry:(t,e,n)=>ut(ht,t,e,n),openHistory:t=>ot(ht,t),openBanner:t=>it(ht,t),revokeConsent:(t,e)=>rt(ht,t,e)});(function(t,e,n){(0,i.d4)((()=>{if((0,r.u)().customizeIdsBanner)return;const{restNamespace:o,restRoot:i,restQuery:p,restNonce:m,others:{isAcceptAllForBots:g,isPreventPreDecision:x,hasDynamicPreDecisions:A,isRespectDoNotTrack:O}}=(0,a.m)(),{onSave:D}=t;var I,E,B;!async function(t,e){let n=!0;const o=t instanceof c.G?t.getOptions():t,{gateways:i,args:r,onIsDoNotTrack:a,onShowCookieBanner:s}=e;for(const t of i){const e=await t(o,...r);if(!1!==e){n=!1;const t=t=>(0,l.n)({type:t,...o});"all"===e?t("all"):"essentials"===e?t("essentials"):"dnt"===e?a((()=>t("essentials"))):"consent"===e&&t("consent");break}}n&&(s(),await(0,u.C)(),document.dispatchEvent(new CustomEvent(d.I,{detail:{}})))}((0,s.b)(),{gateways:[h,(B=["login-action-"],async()=>{const{className:t}=document.body;return B.filter((e=>t.indexOf(e)>-1)).length>0&&"consent"}),v((()=>{const{clientWidth:t,clientHeight:e}=document.documentElement;return(0,w.D)({location:C,options:{restNamespace:o,restRoot:i,restQuery:p,restNonce:m},sendRestNonce:!1,request:{viewPortWidth:t,viewPortHeight:e},params:{_wp_http_referer:window.location.href}})}),1e4,A),async(t,e)=>!!S(e)&&"consent",(E=x,async({decisionCookieName:t})=>{const e=(0,f.h)(t);return!(!E||!1!==e)&&(b()?"all":"consent")}),(I=!!g&&"all",async({decisionCookieName:t})=>!(!1!==(0,f.h)(t)||!I)&&!!b()&&I),y(O),k],args:[t],onIsDoNotTrack:()=>{D(!0,"none")},onShowCookieBanner:()=>e((t=>({...t,consent:{groups:(0,s.b)().getDefaultDecision()},...n(t,!0)})))})}),[])})(pt,ht,nt),function(t,e){(0,i.d4)((()=>{const n=()=>{const n=(0,f.h)(e);n&&t((t=>({...t,consent:{groups:n.consent}})))};return document.addEventListener(O.V,n),()=>{document.removeEventListener(O.V,n)}}),[])}(ht,V);const ft=E.k.Context();return Jt(ft.Provider,{value:pt},Jt(qt,null))};var Zt=n(6346),$t=n(3102),Qt=n(9575);async function Kt(t,e=500,n=0){let o=0;for(;!t();){if(n>0&&o>=n)return;await new Promise((t=>setTimeout(t,e))),o++}return t()}let te=0;const ee={path:"/consent/clear",method:x.O.DELETE};var ne=n(9302),oe=n(1456),ie=n(1829);function re(t,e,n){const o=[],{groups:i,revisionHash:a}=(0,r.u)(),s=i.map((({items:t})=>t)).flat();for(const i of s)if("number"==typeof t)i.id===t&&o.push({cookie:i,relevance:10});else{const{technicalDefinitions:r}=i;if(null!=r&&r.length)for(const a of r){const s=(0,ie.L)(a.name);if(a.type===t&&(a.name===e||e.match(s))&&(a.host===n||"*"===n)){o.push({cookie:i,relevance:r.length+r.indexOf(a)+1});break}}}const c=(0,f.h)((0,r.u)().userConsentCookieName);if(o.length){const t=o.sort((({relevance:t},{relevance:e})=>t-e))[0].cookie;return c&&a===c.revision?Object.values(c.consent).flat().indexOf(t.id)>-1?{cookie:t,consentGiven:!0,cookieOptIn:!0}:{cookie:t,consentGiven:!0,cookieOptIn:!1}:{cookie:t,consentGiven:!1,cookieOptIn:!1}}return{cookie:null,consentGiven:!!c,cookieOptIn:!0}}function ae(...t){return new Promise(((e,n)=>{const{cookie:o,consentGiven:i,cookieOptIn:r}=re(...t);o?i?r?e():n():(document.addEventListener(Qt.g,(async({detail:{service:t}})=>{t===o&&e()})),document.addEventListener(oe.E,(async({detail:{service:t}})=>{t===o&&n()}))):e()}))}function se(t){return Promise.all(t.map((t=>ae(...t))))}var ce=n(4312),le=n(5447),de=n(5672),ue=n(7029).h;n.p=(0,ce.sE)("real-cookie-banner"),document.addEventListener(Qt.g,(async({detail:{service:{presetId:t,codeOptIn:e,codeDynamics:n}}})=>{switch(t){case"amazon-associates-widget":{const{amznAssoWidgetHtmlId:t}=n||{};if(t){const o=document.getElementById(t);if(o){const t=te;te++,(0,Zt.K)(e,n,o);const i=await Kt((()=>document.querySelector('[id^="amzn_assoc_ad_div_"][id$="'.concat(t,'"]'))),500,50);i&&o.appendChild(i)}}break}case"google-maps":document.addEventListener($t.T,(async({detail:{element:t}})=>{const{et_pb_map_init:e,jQuery:n}=window;n&&t.matches(".et_pb_map")&&e&&(await Kt((()=>window.google)),e(n(t).parent()))}))}})),function(){const t=(0,r.u)(),{isTcf:e}=t}(),(0,u.C)((()=>{const{pageRequestUuid4:t}=(0,r.u)(),e=(0,de.U)("".concat(t,"-powered-by")),n=function(t){const{body:e}=document,{parentElement:n}=t;return n!==e&&e.appendChild(t),t}(document.getElementById(t));!function(t,e){const n=Array.prototype.slice.call(document.querySelectorAll(".rcb-consent-history-uuids"));document.addEventListener(d.I,(()=>{n.forEach((t=>t.innerHTML=t.getAttribute("data-fallback")))})),document.addEventListener(O.V,(()=>{const t=(0,f.h)(e instanceof c.G?e.getOption("decisionCookieName"):e),o=t?[t.uuid,...t.previousUuids]:[];n.forEach((t=>t.innerHTML=o.length>0?o.join(", "):t.getAttribute("data-fallback")))}))}(0,(0,s.b)()),document.addEventListener(le.C,(async({detail:{deleteHttpCookies:t}})=>{t.length&&setTimeout((()=>function(t){const{restNamespace:e,restRoot:n,restQuery:o,restNonce:i}=(0,a.m)();return(0,w.D)({location:ee,options:{restNamespace:e,restRoot:n,restQuery:o,restNonce:i},sendRestNonce:!1,params:{cookies:t.join(",")}})}(t)),0)})),n&&(0,i.sY)(ue(Vt,{poweredLink:e}),n)}),"interactive"),window&&(window.consentApi=o)},1100:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var o=n(3438),i=n(7029).h;const r=()=>{const{isPro:t,isLicensed:e,isDevLicense:n,bannerI18n:{noLicense:r,devLicense:a}}=(0,o.u)();if(!t)return null;let s="";return n?s=a:e||(s=r),s?i("div",{style:{fontSize:13,color:"#c95252",fontWeight:"bold",order:9}},s):null}},6423:(t,e,n)=>{"use strict";n.d(e,{$:()=>l});const o={path:"/consent",method:n(6811).O.POST};var i=n(625),r=n(3438);function a({endpoints:t,data:e}){const{isPro:n}=(0,r.u)();if(n){const n=[];for(const o of t)n.push(window.fetch(o,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(e)}));return Promise.all(n)}return Promise.reject()}var s=n(6886),c=n(3075);async function l({consent:t,markAsDoNotTrack:e=!1,buttonClicked:n,blocker:r=0,blockerThumbnail:l,tcfString:d}){const{clientWidth:u,clientHeight:p}=document.documentElement,{restNamespace:h,restRoot:f,restQuery:m,restNonce:g}=(0,i.m)(),{forward:b,uuid:v,cookie_revision:y,decision_in_cookie:k}=await(0,c.D)({location:o,options:{restNamespace:h,restRoot:f,restQuery:m,restNonce:g},sendRestNonce:!1,request:{...t,markAsDoNotTrack:e,buttonClicked:n,viewPortWidth:u,viewPortHeight:p,blocker:r,blockerThumbnail:l,tcfString:d},params:{_wp_http_referer:window.location.href}});window.rcbDisabledCookieComp={uuid:v,previousUuids:[],revision:y,consent:k},await Promise.all([b&&a(b),(0,s.b)().applyCookies({type:"consent"})].filter(Boolean))}},6886:(t,e,n)=>{"use strict";n.d(e,{b:()=>s});var o=n(8218),i=n(625);function r(t){const e=(0,i.m)().version.split(".");return+("major"===t?e[0]:e.map((t=>+t<10?"0".concat(t):t)).join(""))}var a=n(3438);function s(){const{userConsentCookieName:t,revisionHash:e,setCookiesViaManager:n,groups:i,essentialGroup:s}=(0,a.u)();return window.rcbConsentManager||(window.rcbConsentManager=new o.G({decisionCookieName:t,essentialGroupSlug:s,groups:i,revisionHash:e,supportsCookiesName:"real_cookie_banner-test",tagManager:n,skipOptIn:function(t){const{presetId:e}=t;return["amazon-associates-widget"].indexOf(e)>-1},cmpId:367,cmpVersion:r("major"),tcfCookieName:"".concat(t,"-tcf")})),window.rcbConsentManager}},625:(t,e,n)=>{"use strict";function o(){return window["real-cookie-banner".replace(/-([a-z])/g,(t=>t[1].toUpperCase()))]}n.d(e,{m:()=>o})},3438:(t,e,n)=>{"use strict";n.d(e,{u:()=>i});var o=n(625);function i(){return(0,o.m)().others}},3428:t=>{"use strict";t.exports="/*! Hint.css - v2.7.0 - 2021-10-01\n* https://kushagra.dev/lab/hint/\n* Copyright (c) 2021 Kushagra Gour */\n\n[class*=hint--]{position:relative;display:inline-block}[class*=hint--]:after,[class*=hint--]:before{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0s;-moz-transition-delay:0s;transition-delay:0s}[class*=hint--]:hover:after,[class*=hint--]:hover:before{visibility:visible;opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;transition-delay:.1s}[class*=hint--]:before{content:'';position:absolute;background:0 0;border:6px solid transparent;z-index:1000001}[class*=hint--]:after{background:#383838;color:#fff;padding:8px 10px;font-size:12px;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:12px;white-space:nowrap;text-shadow:0 -1px 0 #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label='']:after,[aria-label='']:before,[data-hint='']:after,[data-hint='']:before{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#383838}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#383838}.hint--top:after,.hint--top:before{bottom:100%;left:50%}.hint--top:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--bottom:after,.hint--bottom:before{top:100%;left:50%}.hint--bottom:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--right:before{border-right-color:#383838;margin-left:-11px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:after,.hint--right:before{left:100%;bottom:50%}.hint--right:hover:after,.hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{border-left-color:#383838;margin-right:-11px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:after,.hint--left:before{right:100%;bottom:50%}.hint--left:hover:after,.hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--top-left:after,.hint--top-left:before{bottom:100%;left:50%}.hint--top-left:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--top-left:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top-left:hover:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--top-right:after,.hint--top-right:before{bottom:100%;left:50%}.hint--top-right:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--top-right:hover:after,.hint--top-right:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom-left:after,.hint--bottom-left:before{top:100%;left:50%}.hint--bottom-left:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--bottom-right:after,.hint--bottom-right:before{top:100%;left:50%}.hint--bottom-right:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--bottom-right:hover:after,.hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--large:after,.hint--medium:after,.hint--small:after{white-space:normal;line-height:1.4em;word-wrap:break-word}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}.hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0 #592726}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0 #6c5328}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0 #1a3c4d}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{background-color:#458746;text-shadow:0 -1px 0 #1a321a}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--always.hint--top-left:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top-left:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--always.hint--top-right:after,.hint--always.hint--top-right:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--always.hint--bottom-left:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom-left:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--always.hint--bottom-right:after,.hint--always.hint--bottom-right:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:after,.hint--no-animate:before{-webkit-transition-duration:0s;-moz-transition-duration:0s;transition-duration:0s}.hint--bounce:after,.hint--bounce:before{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:after,.hint--no-shadow:before{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}"}},n={};function o(t){var i=n[t];if(void 0!==i)return i.exports;var r=n[t]={exports:{}};return e[t].call(r.exports,r,r.exports,o),r.exports}o.m=e,t=[],o.O=(e,n,i,r)=>{if(!n){var a=1/0;for(d=0;d<t.length;d++){for(var[n,i,r]=t[d],s=!0,c=0;c<n.length;c++)(!1&r||a>=r)&&Object.keys(o.O).every((t=>o.O[t](n[c])))?n.splice(c--,1):(s=!1,r<a&&(a=r));if(s){t.splice(d--,1);var l=i();void 0!==l&&(e=l)}}return e}r=r||0;for(var d=t.length;d>0&&t[d-1][2]>r;d--)t[d]=t[d-1];t[d]=[n,i,r]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{var t={392:0};o.O.j=e=>0===t[e];var e=(e,n)=>{var i,r,[a,s,c]=n,l=0;if(a.some((e=>0!==t[e]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var d=c(o)}for(e&&e(n);l<a.length;l++)r=a[l],o.o(t,r)&&t[r]&&t[r][0](),t[a[l]]=0;return o.O(d)},n=self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})();var i=o.O(void 0,[568],(()=>o(9181)));i=o.O(i),realCookieBanner_banner=i})();
2
  //# sourceMappingURL=banner.lite.js.map
public/dist/banner.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"banner.lite.js","mappings":"sCAAIA,E,YCAJC,EAAOC,QAAU,I,qECGjB,SAASC,EAA6BC,EAAsBC,GAC1D,IAAIC,EACAC,EAGAC,EAFAC,GAAmB,EACnBC,EAAe,GAGnB,GAAIN,GAAiD,SAAzBA,EAAiC,CAC3D,MAAMO,EAAiC,qBAAzBP,EACRQ,EAAiC,qBAAzBR,EAEVO,GACFH,EAA0B,MAC1BF,EAAsB,YACtBI,EAjBmB,sBAkBVE,IACTJ,EAA0B,MAC1BF,EAAsB,OACtBI,EApBmB,uBAuBjBC,GAASC,KACXL,EAAe,KACbM,OAAOP,GAAuBO,OAAOP,IAAwB,GACtDO,OAAOP,KAIdE,GAA2BH,IAAaG,IAC1CC,GAAmB,GAIvB,MAAO,CACLF,aAAAA,EACAE,iBAAAA,EACAC,aAAAA,EACAF,wBAAAA,GClCJ,SAASM,GAAoB,mBAC3BC,EAAkB,WAClBC,EAAU,OACVC,EAAM,mBACNC,EAAkB,KAClBC,IAEA,IAAIC,EACJ,MAAMC,EAAkBL,GAA6B,SAAfA,GAC/BM,GAAqBL,EAAOM,QAAO,EACxCC,KAAAA,KACIA,IAASN,IACTO,EAAoB,CACxB,CAACH,EAAkBI,IAAKJ,EAAkBK,MAAMC,KAAI,EAClDF,GAAAA,KACIA,KAGR,GAAa,YAATP,EAAoB,CACtB,MAAMU,GAAW,EAAAC,EAAA,GAAgBf,IAEhB,IAAbc,EACFT,EAAiBS,EAASE,SAE1BC,QAAQC,KAAK,iFACbb,EAAiBK,GAQrB,MAJa,eAATN,IACFC,EAAiBK,GAGZ,CACLJ,gBAAAA,EACAD,eAAAA,EACAc,gBAAiBC,eAAgBC,GAC/B,IAAK,MAAMC,KAASpB,EAClB,IAAK,MAAMqB,KAAWD,EAAMV,MAAO,CACjC,IAAIY,EAEJ,MAAMC,EAAmB,QAATrB,IAA0E,QAAtDoB,EAAwBnB,EAAeiB,EAAMX,WAA2C,IAA1Ba,OAAmC,EAASA,EAAsBE,QAAQH,EAAQZ,MAAQ,EACtLgB,EAAgBvC,EAA6Ba,EAAYsB,EAAQjC,gBACjE+B,EAASC,EAAOC,EAASE,EAASE,M,iGCxBlDP,eAAeQ,EAAMC,SAEb,EAAAC,EAAA,KAEN,MAAM,iBACJC,EAAgB,gBAChBC,EAAe,SACfC,EACAH,MAAOI,SC1BXd,eAA0BS,GACxB,MAAMM,EAAmB,IACnB,gBACJ7B,EAAe,gBACfa,GACEpB,EAAoB8B,IAClB,UACJO,GACEP,EAEJ,IACIE,EAAmBM,QAAQC,aAAQC,GACvC,MAAMC,EAAe,GAqCrB,aAnCMrB,GAAgBC,MAAOE,EAAOC,EAASE,GAC3CjC,aAAAA,EACAE,iBAAAA,MAEA,MAAM,aACJ+C,EAAY,UACZC,EAAS,+CACTC,GACEpB,EAGJ,GAAIE,EAAS,CAEX,MAAMmB,EAA+BtC,GAAmBqC,EAClDE,EAAmC,mBAAdT,GAA2BA,EAAUb,GAE3DqB,GAAiCC,GACpCL,EAAaM,MAAK,EAAAC,EAAA,GAAiBL,EAAWD,IAMhD,MAAMO,EAAU,CACd1B,MAAAA,EACAC,QAAAA,GAEF0B,SAASC,cAAc,IAAIC,YAAY,IAAc,CACnDC,OAAQJ,KAEVb,EAAiBW,KAAKE,OAKnB,CACLhB,iBAxCoB,EAyCpBD,iBAAAA,EACAE,SAAUE,EACVL,MAAOO,QAAQgB,IAAIb,ID1BXc,CAAWzB,IAGnBC,MAAOyB,SE/BXnC,eAAoCS,EAAS2B,EAAWxB,GACtD,MAAMQ,EAAe,IAGf,gBACJlC,EAAe,gBACfa,GACEpB,EAAoB8B,GAgDxB,OA9CI2B,GAEFrC,GAAgB,CAACG,EAAOC,EAASE,GAC/B/B,iBAAAA,MAEA,MAAM+D,EAAQlC,EAAQmC,yBAElBjC,GAAWgC,IAAU/D,GACvB8D,EAAUV,KAAK,CACba,4BAA6B,CAC3B,CAACF,IAAQ,GAEXA,MAAAA,OAKNG,YAAW,IAAMzC,GAAgB,CAACG,EAAOC,EAASE,GAChD/B,iBAAAA,MAEA,MAAM+D,EAAQlC,EAAQsC,0BAEjBpC,IAAWgC,GAAU/D,GACxB8D,EAAUV,KAAK,CACbgB,6BAA8B,CAC5B,CAACL,IAAQ,GAEXA,MAAAA,QAGF,MACKnD,GAAmB0B,SAEtBb,GAAgBC,MAAOE,GAC3BmB,aAAAA,EACAC,UAAAA,EACAC,+CAAAA,GACClB,KACGA,GAAWkB,GACbH,EAAaM,MAAK,EAAAC,EAAA,GAAiBL,EAAWD,OAO7C,CACLX,MAAOO,QAAQgB,IAAIb,IFxBXuB,CAAqBlC,QAAeE,EAAkBC,GAC1DgC,EAAgB3B,QAAQgB,IAAI,CAACnB,EAAiBqB,IACpDN,SAASC,cAAc,IAAIC,YAAY,IAAkB,CACvDC,OAAQ,CACNnB,SAAAA,EACAH,MAAOkC,MAIX,MAAM,kBACJC,EACAhC,SAAUiC,EACVpC,MAAOqC,SG1CX/C,eAA2BS,EAASG,GAClC,MAAMkC,EAAoB,IACpB,gBACJ5D,EAAe,gBACfa,GACEpB,EAAoB8B,GAClBW,EAAe,GAEfyB,EAAoB,GAwC1B,aAvCM9C,GAAgBC,MAAOE,EAAOC,EAASE,KAC3C,MAAM,GACJd,EAAE,aACF8B,EAAY,WACZ2B,EAAU,sCACVC,EAAqC,iCACrCC,EAAgC,qBAChCC,EAAoB,gDACpBC,GACEjD,EAEJ,IAAKE,EAAS,CAEZ,MAAMmB,EAA+BtC,GAAmBkE,GAEpD5B,GAAgCZ,IAAoBY,IACtDJ,EAAaM,MAAK,EAAAC,EAAA,GAAiBqB,EAAY3B,IAG7C4B,IAA0CC,IC7BpD,SAA8BC,EAAsBE,GAClD,IAAK,MAAM,KACTrE,EAAI,KACJsE,KACGH,EAAsB,CAEzB,MAAMI,EAAU,IAAIC,QAAO,EAAAC,EAAA,IAA8B,EAAAC,EAAA,GAAoBJ,EAAMD,IAAY,KAE/F,OAAQrE,GACN,IAAK,OAED,IAAK,MAAM2E,KAAOC,OAAOC,KAAK,WACxBN,EAAQO,KAAKH,IACf,WAAcA,GAIlB,MAGJ,IAAK,QACL,IAAK,UAED,IACE,MAAMI,EAAsB,UAAT/E,EAAmBN,OAAOsF,aAAetF,OAAOuF,eAEnE,GAAIF,EACF,IAAK,MAAMG,KAAYN,OAAOC,KAAKE,GACjC,GAAIR,EAAQO,KAAKI,GAAW,CAC1B,IAEEH,EAAWI,QAAQD,EAAU,MAC7B,MAAOE,IAIT,IAAIC,EAAQ,EAEZ,KAAON,EAAWO,QAAQJ,IAAaG,EAAQ,KAC7CA,IACAN,EAAWQ,WAAWL,IAK9B,MAAOE,GAEP,YDjBJI,CAAqBrB,EAAsB9B,GAEvC8B,EAAqBsB,MAAK,EAC5BzF,KAAAA,KACa,SAATA,KACJ6D,EAAkBnB,KAAKnC,IAI3B,MAAMqC,EAAU,CACd1B,MAAAA,EACAC,QAAAA,GAEF0B,SAASC,cAAc,IAAIC,YAAY,IAAe,CACpDC,OAAQJ,KAEVkB,EAAkBpB,KAAKE,OAGpB,CACLf,SAAUiC,EACVpC,MAAOO,QAAQgB,IAAIb,GACnByB,kBAAAA,GHRQ6B,CAAYjE,EAASG,GAC/BiB,SAASC,cAAc,IAAIC,YAAY,IAAmB,CACxDC,OAAQ,CACNnB,SAAUiC,EACVD,kBAAAA,EACAnC,MAAOO,QAAQgB,IAAI,CAACW,EAAeG,U,qEKlDzC,MAAM4B,EACJC,YAAYnE,GACVoE,KAAKpE,aAAU,EACfoE,KAAKpE,QAAUA,EAGjBqE,aAAarE,GACX,OAAO,EAAAD,EAAA,GAAM,IAAKC,KACboE,KAAKpE,UAIZd,kBACE,OAAO,EAAAA,EAAA,GAAgBkF,KAAKE,UAAU,uBAGxCC,mBAAmBC,GAA6B,GAC9C,OCpBJ,UAA4B,OAC1BnG,EAAM,mBACNC,GACCkG,GAA6B,GAC9B,MAAO9F,GAAqBL,EAAOM,QAAO,EACxCC,KAAAA,KACIA,IAASN,IAETmG,EAAS,CACb,CAAC/F,EAAkBI,IAAKJ,EAAkBK,MAAMC,KAAI,EAClDF,GAAAA,KACIA,KAGR,GAAI0F,EACF,IAAK,MAAM/E,KAASpB,EAAQ,CAC1B,GAAIoB,IAAUf,EACZ,SAGF,MAAMgG,EAAMjF,EAAMV,MAAMJ,QAAO,EAC7BgG,WAAAA,KACmB,wBAAfA,IAAsC3F,KAAI,EAC9CF,GAAAA,KACIA,IAEF4F,EAAIE,SACNH,EAAOhF,EAAMX,IAAM4F,GAKzB,OAAOD,EDZEF,CAAmBH,KAAKpE,QAASwE,GAG1CF,UAAUzB,GACR,OAAOuB,KAAKpE,QAAQ6C,GAGtBgC,aACE,OAAOT,KAAKpE,W,8EEzBhB,SAASd,EAAgB4F,GACvB,MAAMC,EAAc,QAAWD,GAE/B,IAAKC,EACH,QAAK,EAAAC,EAAA,OAEI/G,OAAOgH,wBAAyB,GAO3C,MAAMC,ECfR,SAAiBC,EAAQC,EAAWC,GAClC,MAAMH,EAAQC,EAAOD,MDcc,KCbnC,GAAIA,EAAMN,QDa8B,ECbjB,OAAOM,EAC9B,MAAMI,EAAMJ,EAAMK,MAAM,EAAGF,GAE3B,OADAC,EAAIrE,KAAKiE,EAAMK,MAAMF,GAAOG,KDWO,MCV5BF,EDUOG,CAAQV,GAEtB,GAAqB,IAAjBG,EAAMN,OACR,OAAO,EAGT,MAAOc,EAAYC,GAAYT,EACzBU,EAAQF,EAAWR,MAAM,KAG/B,MAAO,CACLW,KAHWD,EAAME,QAIjBC,cAAeH,EACfD,SAAAA,EACAxG,QALc6G,KAAKC,MAAMf,EAAM,O,6CExB5B,MAAMgB,EAAiC,mB,6CCJvC,MAAMC,EAAe,a,6CCArB,MAAMC,EAAmB,iB,6CCAzB,MAAMC,EAAgB,c,6CCAtB,MAAMC,EAAoB,kB,6CCAjC,MAAMC,EAAgC,KACpC,IAAI9F,EAEJ,MAAO,EAAC,EADQ,IAAID,SAAQgG,GAAK/F,EAAU+F,IACnB/F,IAGpBgG,EAA8B,CAClCC,QAASH,IACTI,SAAUJ,IACVK,YAAaL,KA0BTM,EAAmB,CAAC,mBAAoB,0BAA2B,mBAAoB,0BAA2B,2BAWlH5G,EAAQ,CAAC6G,EAAIC,EAAQ,aAClB,IAAIvG,SAAQC,IACjB,IAAIuG,GAAW,EAEf,MAAMC,EAAK,KA/BY,MACzB,MAAM,WACJC,GACE9F,UACG+F,EAAQ,CAAE1G,GAAWgG,EAA4BS,GAEnDC,IACHV,EAA4BS,GAAY,IAAK,EAC7CzG,MAwBE2G,IAGAJ,GACCP,EAA4BM,GAAO,KAIpCC,GAAW,EACXF,MAAAA,GAAwCA,IAKxC/E,WAAWtB,EAAS,KAGtBwG,IAEA,IAAK,MAAMrF,KAASiF,EAClBzF,SAASiG,iBAAiBzF,EAAOqF,GAGnCR,EAA4BM,GAAO,GAAGO,KAAKL,O,4BCpE/C,SAASjE,EAA8BH,GACrC,MAAM0E,EAAM1E,EAAK2E,QAAQ,MAAO,2BAChC,MAAO,IAAIC,QCHMC,EDGWH,ECUrBG,EAAIF,QAAQ,IAAIzE,OAAO,kCAAkC0E,OAAoB,GAAI,MAAO,KAAM,SDVpED,QAAQ,2BAA4B,QAAS,KCHhF,IAAmBE,E,8CCCnB,SAAS1C,EAAgBF,EAAa,QACpC,IACE1D,SAASuG,OAAS,GAAGF,OAAO3C,EAAY,MACxC,MAAML,GAAkE,IAAzDrD,SAASuG,OAAO9H,QAAQ,GAAG4H,OAAO3C,EAAY,MAE7D,OADA1D,SAASuG,OAAS,GAAGF,OAAO3C,EAAY,6CACjCL,EACP,MAAOd,GACP,OAAO,G,+DCbX,MAAMiE,EAA2B,wBAKjC,SAAS3E,EAAoB4E,EAAKjF,GAChC,OAAOiF,EAAIL,QAAQI,GAA0B,CAACE,EAAWC,IAAiB5E,OAAO6E,UAAUC,eAAeC,KAAKtF,EAAUmF,GAAgBnF,EAASmF,GAAgBD,M,6PCL7J,MAAMK,EAAgC,mBAChCC,EAAsC,yBACtCC,EAAgC,IAChCC,EAAoB,aAEpBC,EAA4B,mBAC5BC,EAA+B,4BAC/BC,EAAmC,4BACnCC,EAAwB,iBACxBC,EAA8B,uBAC9BC,EAA4B,aAC5BC,EAA0B,SAC1BC,EAAmC,4BACnCC,EAA6C,iCAC7CC,EAAgD,+BAChDC,EAAmC,4BACnCC,EAAyC,IACzCC,EAA8C,wBAC9CC,EAA8B,0BAC9BC,EAAoC,IACpCC,EAAiD,mCACjDC,EAA6B,sBAC7BC,EAAmC,IACnCC,EAAwD,IACxDC,EAA2B,qB,gGClBxC,MAAMC,EAAoC,qBAU1C,SAASzI,EAAiB0I,EAAMhH,EAAUiH,EAAgBzI,SAAS0I,MACjE,OAAO,IAAItJ,SAAQC,IACbmJ,EACF,IAAWC,GAAe,OAAoBD,EAAMhH,GAAW,CAC7DmH,KAAMtJ,EACNuJ,MAAOrG,IAILvE,QAAQ4K,MAAMrG,IAEhBsG,iBAAkBC,IAChB,MAAM,MACJC,EAAK,aACLC,EAAY,IACZvC,EAAG,KACHwC,EAAI,QACJC,GACEJ,EAEJ,GAAIE,MAAAA,GAAoDA,EAAa,cACnE,OAAO,EAILE,IACFJ,EAAMI,QAAUA,EAAQ9C,QAAQ,sBAAuB,UAAUC,OAAOkC,EAAmC,QAI7G,IAAK,MAAMY,KAAQJ,EAGjB,GAFAA,EAAMI,IAAQ,OAAWJ,EAAMI,IAElB,sBAATA,GAAgCnJ,SAASoJ,cAAc,uBAAwB/C,OAAO0C,EAAMI,GAAO,OACrG,OAAO,EAcX,OATI1C,IACFqC,EAAMrC,KAAM,OAAWA,IAIrBwC,IACFH,EAAMG,MAAO,OAAWA,IAGnBH,KAIXzJ,S,6CClEC,MAAMgK,EAAyB,4B,4BCKtC,SAASC,EAAoBC,EAAQ,GACnC5I,YAAW,KACT,IACE9D,OAAOoD,cAAc,IAAIuJ,MAAM,WAC/B,MAAOjH,OAERgH,G,6ECPL,SAASE,EAAWC,GAIhB,IAAIC,EADN,OAFmB,OAAMD,GAOkC,QAAjDC,GADI,IAAIC,WAAYC,gBAAgB,YAAaxD,OAAOqD,EAAO,UAAY,aAClDN,cAAc,YAAyC,IAAvBO,OAAgC,EAASA,EAAmBV,MAGjH,IAAIW,WAAYC,gBAAgBH,EAAO,aACxCI,gBAAgBC,c,4BCd/B,SAASC,EAAMC,GAEb,QADgB,+aACChI,KAAKgI,G,6ECFxB,SAASC,EAAQC,EAASC,GACxB,MAAMC,EAAW,GACjB,IAAIC,EAAOH,EAAQI,cAEnB,KAAgB,OAATD,GACDA,EAAKE,WAAaC,KAAKC,eAAgB,OAAiBJ,EAAMF,IAChEC,EAASxK,KAAKyK,GAGhBA,EAAOA,EAAKC,cAGd,OAAOF,I,uECfT,MAAMM,EAAe,EACnBC,GAAAA,EAAK,IACLC,MAAAA,EAAQ,CAAC,UAAW,UAAW,UAAW,eAE1C,MAAOC,EAAGC,IAAQ,QAAS,GAO3B,OANA,SAAU,KACR,MAAMC,EAAWC,aAAY,KAC3BF,EAAKD,EAAI,KACRF,GACH,MAAO,IAAMM,cAAcF,KAC1B,CAACF,IACGK,EAAE,OAAQ,CACfC,wBAAyB,CACvBC,OAAQR,EAAMC,EAAI,Q,qGCHxB,MAAMQ,EAAqB,EACzBC,KAAAA,KACGC,MAEH,MAAMC,GAAY,SAAQ,KAAM,OAAiCF,EAAM,CACrEG,cAAe,CACbC,MAAO,0BACPC,KAAM,mBAEN,CAACL,IACL,OAAOJ,EAAE,OAAO,OAAS,GAAIK,EAAM,CACjCJ,wBAAyB,CACvBC,OAAQI,O,8CCjBd,MAAMI,EAAiB,EACrBC,aAAAA,EACAC,UAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,MAAAA,KACGb,MAEH,MAAMc,EAAeP,EAAYQ,EAAA,EAAgBC,EAAA,EAC3CC,GAAkB,EAAAC,EAAA,MACjBC,EAAYC,IAAiB,SAAS,GAI7C,OAHA,SAAgB,KACdA,GAAc,KACb,IACI,EAAE,KAAU,MAAOd,GAAgB,EAAER,GAAoB,OAAS,CACvEC,KAAMe,EACNH,QAASA,GCpBb,UACEU,QAAQ,aACNC,GAEFzO,OAAO,iBACL0O,EAAgB,WAChBC,EAAU,oBACVC,EAAmB,oBACnBC,EAAmB,iBACnBC,EAAgB,0BAChBC,EAAyB,oBACzBC,GAEFC,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACCC,EAASC,EAASC,EAAU1B,GAC7B,IAAI2B,EAAc3B,GAAYa,EAC9Bc,EAAcJ,GAAmB,EAAAK,EAAA,GAAYN,EAAQC,EAAkBI,GAAeA,EACtF,MAAME,EAAyBN,GAAmB,EAAAK,EAAA,GAAYN,EAAQC,GAAmBR,IAAwBA,EAC3Ge,GAAUH,EAAuC,EAAzBE,EAA6B,EAC3D,MAAO,CACLE,UAA6B,MAAlBV,OAAwBjO,EAAY,eAC/CqM,MAAO,CACLuC,OAAQN,EAAW,cAAgB,UACnCO,QAASP,EAAW,QAAMtO,EAC1B8O,MAAOT,EAAUN,EAAsBL,EACvCqB,QAASX,EAAU,eAAiB,OACpCY,WAAYX,EAAUR,EAAmBH,EACzCuB,OAAQ,GAAGlI,OAAO0H,EAAwB,aAAa1H,OAAOsH,EAAUP,EAA4BF,GACpGsB,QAAS,EACTR,OAAAA,EACAS,MAAOT,EACPU,YAAa,GACb5B,cAAeA,EACf6B,cAAe,SACfC,WAAY,EACZC,UAAW,eDlBZC,CAAgCrC,EAAiBE,EAAYX,EAAWC,EAAYC,GAAWV,IAAQY,GAAY,EAAE,OAAQ,CAC9HT,MAAO,CACLgD,cAAe,SACfT,OAAQ,YAET,EAAE,OAAQ,CACX/B,QAASA,GACRC,GAAWC,M,kIE7BhB,MAAM0C,EAAiB,EACrBC,MAAAA,EACAC,MAAAA,EACA7C,SAAAA,EACA8C,aAAAA,MAEA,MAAMC,GAAS,EAAAzC,EAAA,MAEb0C,MAAM,IACJC,EAAG,GACHC,IAEAH,EAEJ,IAAII,EADgC,iBAAVN,IAAsB,EAAAjF,EAAA,GAAMiF,GAC1B9D,EAAE,IAAK,CACjClC,KAAMgG,EACNtD,MAAO,CACL6D,UAAW,gBACR,IAAAC,GAAgCN,GAAQ,GAAOxD,OAEpD+D,OAAQ,SACRC,IAAK,uBACJV,GAA0B,iBAAVA,EAAqB9D,EAAE,OAAQ,CAChDC,wBAAyB,CACvBC,OAAQ4D,KAEPA,EAML,MAJqB,YAAjBC,IACFK,EAAWA,EAAWF,EAAMC,GAGvBnE,EAAE,OAAO,OAAS,CACvBrJ,IAAKkN,GCpCT,UACE3Q,OAAO,iBACLuR,EAAgB,iBAChBC,GAEFvC,WAAW,cACTC,GACD,OACDC,EAAM,iBAENC,IAGA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,kBAC/CqM,MAAO,CACLmE,YAJwBrC,GAAmB,EAAAK,EAAA,GAAYN,EAAQC,EAAkBmC,GAAoBA,GAInE,EAAI,aAAavJ,OAAOwJ,QAAoBvQ,EAC9EyQ,YAAa,KDoBdC,CAAsCb,IAAUH,GAAS7D,EAAE,SAAU,KAAM6D,EAAO,MAAUO,IAAYnD,GAAYjB,EAAE,MAAO,KAAMiB,K,0BElCxI,MAAM6D,EAAqB,EACzB1J,QACE2J,QAAAA,EACAC,SAAAA,EACAC,yBAAAA,EACA7M,WAAAA,EACA8M,YAAAA,EACAhP,iCAAAA,EACAC,qBAAAA,EACA9B,aAAAA,GAEF8Q,iBAAAA,MAEA,MAAM,KACJlB,EACAiB,YAAaE,IACX,EAAA7D,EAAA,KACE8D,EAqDC,CACLC,KAAM,CACJhP,KAAM,cACNiP,KAAM,OACNC,gBAAiB,SAEnBC,MAAO,CACLnP,KAAM,gBACNiP,KAAM,QACNC,gBAAiB,WAEnBE,QAAS,CACPpP,KAAM,kBACNiP,KAAM,UACNC,gBAAiB,WAEnBG,MAAO,CACLrP,KAAM,4BACNiP,KAAM,QACNC,gBAAiB,WAEnBI,UAAW,CACTtP,KAAM,YACNiP,KAAM,OACNC,gBAAiB,YA5ErB,OAAO,EAAE,KAAU,OAAQT,GAAW,EAAEnB,EAAgB,CACtDC,MAAOI,EAAKc,QACZjB,MAAOiB,IACL,EAAEnB,EAAgB,CACpBC,MAAOI,EAAK7L,WACZ0L,MAAsB,sBAAf1L,EAAqC6L,EAAK4B,iBAAkC,wBAAfzN,GAAwC+M,EAAmBlB,EAAK6B,mBAAqB7B,EAAKrR,UAC5J,EAAEgR,EAAgB,CACpBC,MAAOI,EAAKe,SACZlB,MAAOkB,MACHC,GAA4B,EAAErB,EAAgB,CAClDC,MAAOI,EAAKgB,yBACZnB,MAAOmB,MACHG,GAAsB,EAAExB,EAAgB,CAC5CC,MAAOI,EAAKiB,YACZpB,MAAOoB,EACPnB,aAAc,aACX7N,GAAoCC,EAAqB1D,KAAI,EAChET,KAAAA,EACAsE,KAAAA,EACAyP,KAAAA,EACAC,SAAAA,EACAC,aAAAA,EACAC,kBAAAA,EACAnB,QAAAA,KACI,EAAEnB,EAAgB,CACtBjN,IAAKL,EACLuN,MAAOI,EAAKkC,0BACZrC,MAAO,EAAE,OAAQ,CACftD,MAAO,CACL4F,WAAY,eAEb,EAAA1P,EAAA,GAAoBJ,EAAMjC,KAC5B,EAAEuP,EAAgB,CACnBC,MAAOI,EAAKjS,KACZ8R,MAAOuB,EAAMrT,GAAMsE,SACfyO,GAAW,EAAEnB,EAAgB,CACjCC,MAAOI,EAAKc,QACZjB,MAAOiB,MACHgB,GAAQ,EAAEnC,EAAgB,CAC9BC,MAAOI,EAAK8B,KACZjC,MAAO,EAAE,OAAQ,CACftD,MAAO,CACL4F,WAAY,cAEbL,KACD,EAAEnC,EAAgB,CACpBC,MAAOI,EAAK+B,SACZlC,MAAO,CAAC,QAAS,YAAa,SAASxQ,QAAQtB,IAAS,EAAIiS,EAAKoC,aAAeH,GAA8B,YAATlU,EAAqB,UAAY,GAAGkJ,OAAO8K,EAAU,KAAK9K,OAAO+I,EAAKgC,aAAaA,W,gBChE5L,MAAMK,EAAS,EACblL,OAAAA,EACAoH,QAAAA,EACAC,SAAAA,EACA8D,cAAAA,EACAC,kBAAAA,EAAoB,OAEpB,MAAM,KACJlQ,GACE8E,EACEkG,GAAkB,EAAAC,EAAA,MAEtBrO,OAAO,oBACLuT,IAEAnF,EACJ,OAAO,EAAE,MCtBX,UACEa,WAAW,cACTC,KAGF,MAAO,CACLU,UAA6B,MAAlBV,OAAwBjO,EAAY,aAC/CqM,MAAO,CACLkG,UAAW,KDcCC,CAA8BrF,GAAkB,EAAE,MAAO,CACvEd,MAAO,CACLoG,aAAc,KAEf,EAAE,IAAgB,CACnB/F,UAAW2B,EACX1B,WAAY2B,EACZ1B,SAAU0F,EACVzF,QAASuF,GACR,EAAE,SAAU,KAAMjQ,KAAS,EAAEwO,GAAoB,OAAS,CAC3D1J,OAAQA,GACPoL,O,qGEtBL,MAAMK,GAAuB,SAAW,EACtC5F,SAAAA,EACA6B,UAAAA,EACAgE,MAAAA,EACAC,SAAAA,EAAW,MACX9D,MAAAA,EACA+D,KAAAA,EAAO,QACPC,OAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,KACG/G,GACFgH,MACD,OAAY,EAAS,YAAY,GAC1BrH,EAAE,OAAO,OAAS,CACvBQ,MAAO,CACLuG,SAAU,WACV7D,QAAS,UAEXmE,IAAKA,EACL,aAAcP,EACdhE,UAAW,SAAS5H,OAAO6L,EAAU,WAAW7L,OAAO8L,EAAM,KAAK9L,OAAO+H,EAAQ,SAAS/H,OAAO+H,GAAS,GAAI,KAAK/H,OAAO+L,EAAS,eAAiB,GAAI,KAAK/L,OAAOgM,EAAU,gBAAkB,GAAI,KAAKhM,OAAOiM,EAAY,mBAAqB,GAAI,KAAKjM,OAAOkM,EAAS,eAAiB,GAAI,KAAKlM,OAAO4H,GAAa,KACvTzC,GAAOY,O,mEC5BZ,MAAMqG,EACJC,iBACE,OAAO1P,KAAK2P,QAAU3P,KAAK2P,UAAwB,QAAc,KAOrE,SAASC,IACP,OAAO,QAAWH,EAAqBI,WAHzCJ,EAAqBE,aAAU,G,mECP/B,MAAMG,EACJJ,iBACE,OAAO1P,KAAK2P,QAAU3P,KAAK2P,UAAwB,QAAc,KAOrE,SAASI,IACP,OAAO,QAAWD,EAAsBD,WAH1CC,EAAsBH,aAAU,G,+GCRhC,MAAMK,EAAa,EACjB5G,SAAAA,KACG6G,MAEH,MAAMxG,GAAkB,EAAAC,EAAA,MACjBwG,EAASC,IAAc,SAAS,GACvC,OAAOhI,EAAE,KAAK,OAAS,CACrBiI,aAAc,IAAMD,GAAW,GAC/BE,aAAc,IAAMF,GAAW,ICVnC,UACEG,cAAc,SACZpH,EAAQ,UACRqH,EAAS,eACTC,EAAc,kBACdC,EAAiB,WACjBlC,GAEFmC,QAAQ,mBACNC,GAEFrG,WAAW,cACTC,GACD,OACDC,EAAM,iBAENC,GACCyF,GAAU,GAQX,MAAO,CACLjF,UAA6B,MAAlBV,OAAwBjO,EAAY,kBAC/CqM,MATY,CACZiI,eAAgBD,EAChBzH,SAAUuB,GAAmB,EAAAK,EAAA,GAAYN,EAAQC,GAAmBvB,IAAaA,EACjFkC,MAAO8E,EAAUM,EAAiBD,EAClChC,WAAYkC,OAAoBnU,EAAYiS,EAC5C/C,QAAS,UDZRqF,CAA4BpH,EAAiByG,GAAUD,GAAa7G,I,0BEVzE,MAAM0H,EAAsB,EAC1BC,YAAAA,EACAC,UAAAA,KAEO,EAAEhB,EAAY,CACnB/J,KAAM+K,EAAYA,EAAUC,KAAOF,EAAY9K,KAC/CyG,OAAQqE,EAAYrE,OACpB5N,IAAK,cACJ,EAAE,OAAQ,CACXsJ,wBAAyB,CACvBC,OAAQ0I,EAAYG,aAEpBF,GAAa,EAAE,IAAS,CAC1B/B,MAAO+B,EAAUG,YACjBjC,SAAU,YACT,IAAK8B,EAAUI,c,gBCXpB,SAASC,EAAQC,EAAYtQ,GAE3B,MAAMuQ,EAAWD,EAAW/W,OAAOiX,SACnC,OAA2B,IAApBD,EAAS/Q,OAAe,KAAO+Q,EAASE,QAAO,CAACC,EAAKC,EAAM7J,IAAM4J,EAAIlR,OAAS,IAAIkR,EACzF,EAAE,KAAU,CACV5S,IAAKgJ,GACJ9G,GAAY2Q,GAAQ,CAACA,IAAO,I,gBCPjC,SAASC,GAAqB,QAC5BC,EAAO,sBACPC,EAAqB,KACrBC,GACE,IACF,MACE3F,MAAM,MACJ4F,GAEF1B,cAAc,cACZ2B,EAAa,WACbC,GACD,YACDnB,EAAW,UACXC,IACE,EAAAtH,EAAA,MACE,kBACJyI,EAAiB,YACjBC,IACE,EAAAC,EAAA,KACEC,EAAkC,WAAfJ,EAA0B,CACjDxF,OAAQ,SACRC,IAAK,YACH,GACE4F,EAAO,CACb,CAACV,GAAW,EAAE7B,EAAY,CACxB/J,KAAM,IACNkD,QAAS0I,EACT/S,IAAK,SACJ,EAAE,SAAU,KAAMkT,OAAaD,GAAQ,GAAKI,GAAqB,EAAEnC,GAAY,OAAS,CACzF/J,KAAMkM,EAAkBlL,KACvBqL,EAAkB,CACnBxT,IAAK,kBACHqT,EAAkBnG,OAAQoG,GAAe,EAAEpC,GAAY,OAAS,CAClE/J,KAAMmM,EAAYnL,KACjBqL,EAAkB,CACnBxT,IAAK,YACHsT,EAAYpG,QAAQzR,OAAOiX,SAC/B,IAGMT,GAAekB,GACnBM,EAAKT,GAAyB,GAAGjV,KAAK,EAAEiU,EAAqB,CAC3DhS,IAAK,YACLiS,YAAaA,EACbC,UAAWA,KAIf,MAAMwB,GAAS,SAAYD,GAAQlB,EAAQkB,EAAK3X,KAAI6X,GAAOA,EAAIjS,OAAS,EAAE,KAAU,CAClF1B,IAAK2T,EAAI,GAAG3T,KACXuS,EAAQoB,EAAK,EAAE,KAAU,KAAM,SAAgB,OAAO,EAAE,KAAM,QAAQ,IACzE,MAAO,CACLF,KAAAA,EACAC,OAAAA,K,qEC1DJ,SAASE,EAAqBC,EAAKC,GAKjC,OAJID,EAAInS,OAAS,GACfmS,EAAIE,OAAOF,EAAInS,OAAS,EAAG,EAAG,oBAGzBmS,EAAIvR,KAAK,MAAMgC,QAAQ,4BAA6BwP,GAQ7D,MAAME,EAAuB,sEAE7B,SAASC,GAAmB,uCAC1BC,EAAsC,iBACtCC,EAAgB,0BAChBC,GACE,IACF,MAAM,QACJC,EAAO,OACPlZ,EACAoT,YAAa+F,EACbC,UAAWC,EACXC,mBAAoBC,EACpBC,OAAO,YACLtC,EAAW,YACX9D,EAAW,gBACXqG,EAAe,mBACfH,EACAI,+BAAgCC,GACjC,IACDC,EAAG,+BACHF,EAA8B,sBAC9BG,EACAC,iBACE5C,YAAa6C,GACd,eACDC,EACA7H,MAAM,aACJwG,EACAiB,IAAKK,GACN,qBACDC,IACE,UACE,kBACJhC,IACE,SAEJ,IAAIiC,EAA0C,GAE1CT,IAAmCQ,IACrCC,EAA0CR,EAAmCxQ,QAAQ,gBAAiBuQ,EAA+BvS,KAAK,QAG5I,IAAIiT,EAAiB,CAAClB,EAAUA,EAAQhC,YAAc2C,EAAwBE,EAAwB7C,EAAaiD,GAAyC7Z,OAAOiX,SAASpQ,KAAK,KAE5K+S,IAEHE,EAAiBA,EAAejR,QAAQ,4CAA6C+O,EAAoB,YAAa9O,OAAO8O,EAAkBlL,IAAK,sLAA6L,OAInV,MAAMqN,EAAoCra,EAAOW,KAAI,EACnDD,MAAAA,KACIA,EAAMJ,QAAO,EACjB8S,YAAAA,KACIA,MAAckH,OACdC,EAA4DX,EAAM9U,OAAO0V,OAAOZ,EAAIa,IAAIC,SAASpa,QAAOqa,IAC5G,IAAIC,EAEJ,OAAmE,QAA1DA,EAAwBD,EAAOE,6BAA6D,IAA1BD,OAAmC,EAASA,EAAsBE,yBAAwF,IAA7DlB,EAAImB,SAASC,qBAAqBL,EAAOla,IAAI2S,eAClN,GACL,IAAI6H,GAAsClC,IAA2CsB,EAAkC9T,OAAS,GAAKgU,EAAoChU,OAAS,IAAM4S,EAAgB/F,EAAc,GAEtN,MAAM8H,EAAe7B,IAAgBL,EAAmBS,EAAkB,GAE1E,IAAI0B,EAAwB,GAE5B,GAAI5B,IAAyBN,EAA2B,CACtD,MAAMmC,EAAsB9B,EAAmB9X,QAAQ,iBAAmB,GAAK8X,EAAmB9X,QAAQ,sBAAwB,EAC5H6Z,EAAqBrb,EAAOM,QAAO,EACvCC,KAAAA,KACIA,IAASyZ,IACTsB,EAAmB,MACnBC,EAAoB9C,EAAqB4C,EAAmB1a,KAAI,EACpED,MAAAA,GACC8a,IAAa9a,EAAMC,KAAI,EACxB6D,KAAAA,EACA4O,YAAAA,KACI,GAAGhK,OAAO5E,GAAM4E,OAAOyP,GAAsBzP,OAAO,CAACgS,EAAsBI,EAAW,EAAI,GAAIP,GAAsC7H,EAAc,IAAM,IAAI9S,OAAOiX,SAASpQ,KAAK,KAAM,YAAWA,KAAKmU,KAAmBnU,KAAKmU,GAAkBzU,MAAMyU,GAAmB3C,GAEhR,GAAI4C,EAAmB,CACrB,MAAME,EAAyBhD,EAAqB4C,EAAmB1a,KAAI,EACzE6D,KAAAA,GACCgX,IAAa,GAAGpS,OAAO5E,GAAM4E,OAAOyP,GAAsBzP,OAAOgS,EAAsBI,EAAW,EAAI,GAAI,YAAY7C,GACzHwC,EAAwB,SAAS/R,OAAOkQ,EAAoB,WAAWlQ,OAAOwQ,IAAQC,EAAwB,UAAUzQ,OAAO6Q,EAAcyB,uBAAwB,WAAa,IAE7KxB,IAEHiB,EAAwBA,EAAsBhS,QAAQ,gBAAiBoS,GACtEpS,QAAQ,qBAAsBsS,IAG7BR,IACFA,GAAsC,GAAG7R,OAAOyP,EAAsB,aAK5E,MAAO,CACL3B,YAAakD,EACbuB,UAAW,CAACV,EAAoCC,EAAcC,GAAuB7a,OAAOiX,Y,qEC9GhG,SAAS9H,IACP,MAAMyC,GAAS,SACTgH,GAAU,SAEhB,OAAOhH,EAAOlS,OAASkS,EAASgH,I,2DCPlC,SAASd,IACP,MACEwD,OAAO,cACLC,EAAa,yBACbC,EAAwB,2BACxBC,EAA0B,mBAC1BC,EAAkB,QAClBC,EAAO,mBACPC,EAAkB,qBAClBC,EAAoB,aACpBC,GACD,YACDC,IACE,SACEC,GAAoB,SAAqBA,mBAAqB,GACpE,IAAIpE,EAAoB2D,EAAgB,EAAIS,EAAkBT,IAAkB,GAAGzS,OAAOiT,EAAa,KAAKjT,OAAOyS,QAAiBxZ,EAChI8V,EAAc8D,EAAU,EAAIK,EAAkBL,IAAY,GAAG7S,OAAOiT,EAAa,KAAKjT,OAAO6S,QAAW5Z,EAU5G,OARI0Z,IACF7D,EAAoB4D,GAGlBK,IACFhE,EAAc+D,GAGT,CACLhE,qBAAmB8D,IAAsB9D,IAAoB,CAC3DlL,IAAKkL,EACLnG,MAAOiK,GAET7D,eAAaiE,IAAgBjE,IAAc,CACzCnL,IAAKmL,EACLpG,MAAOqK,M,2DClCb,IAAIG,EAAU,EAKd,SAASC,EAAYC,EAAKC,EAAUC,GAClC,MAAMlc,GAAK,SAAQ,IAAM,uBAAuB2I,OAAOsT,IAAaH,KAAWK,SAAS,MAAM,IAoB9F,OAnBA,SAAgB,KACd,IAAI1P,EAAUnK,SAAS8Z,eAAepc,GAUtC,OARKyM,IACHA,EAAUnK,SAAS+Z,cAAc,SACjC5P,EAAQwB,MAAMxO,KAAO,WACrBgN,EAAQzM,GAAKA,EACbsC,SAASga,qBAAqB,QAAQ,GAAGC,YAAY9P,IAGvDA,EAAQ+J,UAAYwF,EACb,KAEH,IAAIQ,EADDN,GAG4C,QAA9CM,EAAsB/P,EAAQgQ,kBAAgD,IAAxBD,GAA0CA,EAAoBE,YAAYjQ,MAGpI,CAACuP,EAAKE,IACFlc,I,2DCzBT,SAAS2c,GACPC,YAAY,0BACVC,EAAyB,mBACzBC,EAAkB,yBAClBC,EAAwB,kBACxBC,EAAiB,0BACjBC,EAAyB,mBACzBC,GAEFtN,WAAW,cACTC,GACD,OACDC,EAAM,iBAENC,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,gBAC/CqM,MAAO,CACLkG,UAAW,EACXxD,QAAS,eACTwM,UAAWN,OAA4Bjb,EAAYkb,EACnDtO,SAAUuO,OAA2Bnb,EAAYmO,GAAmB,OAAYD,EAAQC,GAAmBiN,IAAsBA,EACjItM,MAAOuM,OAA4Brb,EAAYsb,M,4BCzBrD,SAASE,GACPjO,QAAQ,aACNC,GAEFwN,YAAY,yBACVS,EAAwB,wBACxBC,EAAuB,yBACvBC,EAAwB,wBACxBC,GAEF5N,WAAW,cACTC,KAGF,MAAO,CACLU,UAA6B,MAAlBV,OAAwBjO,EAAY,0BAC/CqM,MAAO,CACLkG,UAAW,EACXxD,QAAS,eACT8M,SAAU,OACVrO,cAAeA,EACf2B,OAAQuM,EACRhN,OAAQ+M,GAA4BE,EAA2B,EAC/D3M,WAAY4M,I,8CCvBlB,SAASE,GACP1H,QAAQ,mBACNC,GAEFtV,OAAO,UACLgd,EAAS,eACTC,GAEFhO,WAAW,cACTC,IAED2F,GACD,MAAO,CACLjF,UAA6B,MAAlBV,OAAwBjO,EAAY,iBAC/CqM,MAAO,CACLyC,MAAO8E,EAAUoI,EAAiBD,EAClCzH,eAAgBD,I,6ECdtB,SAAS4H,GACPC,cAAc,SACZtP,EAAQ,UACRqH,EAAS,kBACTE,EAAiB,WACjBlC,EAAU,WACVkK,GAEFnO,WAAW,cACTC,GACD,OACDC,EAAM,iBAENC,GACCiO,GACD,MAAO,CACLzN,UAA6B,MAAlBV,OAAwBjO,EAAY,eAC/CqM,MAAO,CACLyC,MAAOmF,EACP3E,WAAY,IACZ1C,SAAUuB,GAAmB,OAAYD,EAAQC,GAAmBvB,IAAaA,EACjFqF,WAAYkC,OAAoBnU,EAAYiS,EAC5CkK,WAAAA,EACAE,aAAcD,EAAe,QAAKpc,M,4BCdxC,SAASsc,GAAY,QACnBC,EAAO,aACPC,EAAY,qBACZC,GACCC,EAA2BhE,EAAUiE,EAAaC,GAA4B,GAK/E,OAAOlE,E,6ECdT,SAASmE,EAAoBze,GAC3B,MAAM0e,EAAsBpc,SAAS8Z,eAAepc,GAC9CqW,EAAc/T,SAAS+Z,cAAc,OAW3C,OATIld,OAAOwf,2BAETtI,EAAYG,UAAYrX,OAAOwf,4BACtB,OAAiBD,EAAqB,MAAQA,EAAoBlI,UAAUoI,cAAc7d,QAAQ,wBAC3G5B,OAAOwf,2BAA6BD,EAAoBG,UACxDxI,EAAYG,UAAYrX,OAAOwf,2BAC/BD,EAAoBjC,WAAWC,YAAYgC,IAGtCrI,EAAY3H,SAAS,GAlB9BvP,OAAOwf,2BAA6B,I,4BCDpC,SAASG,EAAiBrS,EAASC,GACjC,MAAMqS,EAA2B,oBAAZC,QAA0BA,QAAQ9V,UAAY,GAC7D+V,EAAiBF,EAAMG,SAAWH,EAAMI,iBAAmBJ,EAAMK,uBAAyBL,EAAMM,oBAAsBN,EAAMO,mBAAqBP,EAAMQ,iBAE7J,IAAK9S,GAAgC,IAArBA,EAAQK,WAAmBL,EAAQI,cACjD,OAAO,EAGT,GAAIoS,EACF,OAAOA,EAAe7V,KAAKqD,EAASC,GAGtC,MAAM8S,EAAmB/S,EAAQI,cAAc4S,iBAAiB/S,GAEhE,IAAK,MAAMgT,KAAYF,EACrB,GAAIA,EAAiBE,KAAcjT,EACjC,OAAO,EAIX,OAAO,E,yJCbT,SAASkT,EAAiBpT,EAAKqT,EAAOC,GAEpC,OADAtT,EAAIuT,OAAS,YAAaD,EAAQ,QAAc,IAAID,EAAO,QAASrT,EAAIuT,UAAYF,GAAO,GACpFrT,ECTT,MAAMwT,EAAO,GACPC,EAAoB,GAO1Bvf,eAAewf,EAAqBC,EAAOC,GACzC,QAAyC,IAA9BA,EAA2C,CACpD,MAAMC,EACNJ,EAAkBE,IAAU,IAAIxe,SAChCjB,MAAOkB,EAAS0e,KACd,IACE,MAAMC,QAAsBnhB,OAAOohB,MAAMJ,GAEzC,GAAIG,EAAcE,GAAI,CACpB,MAAMC,QAAiBH,EAAcI,OAEjCR,IAAUO,EACZJ,KAEAN,EAAKG,GAASO,EACd9e,EAAQ8e,SAGVJ,IAEF,MAAOxb,GACPwb,QAIJ,OADAL,EAAkBE,GAASE,EACpBA,EACF,CACL,QAAqB,IAAVF,EACT,aAIIxe,QAAQgB,IAAI2B,OAAO0V,OAAOiG,IAChC,IAAIW,EAAcT,EAElB,KAAOH,EAAKY,KACVA,EAAcZ,EAAKY,GAEfZ,EAAKY,KAAiBT,KAK5B,OAAOxe,QAAQC,QAAQgf,ICxC3BlgB,eAAemgB,EAAYrU,EAAK5G,EAAQkb,GACtC,MAAMC,EAAmBnb,EAAOob,QAEhC,IACE,aAAapb,EAAOqb,OACpB,MAAOnc,GAEP,MAAMmG,QAAa8V,EAAiBJ,OAEpC,GAAa,KAAT1V,GAAe,CAAC,WAAsB,SAAmBjK,QAAQ8f,IAAW,EAC9E,OAMF,IAAII,EAHJ3gB,QAAQC,KAAK,mBAAmBoI,OAAO4D,EAAK,sEAAuE,CACjHvB,KAAAA,IAIF,IAAK,MAAMkW,KAAQlW,EAAK5E,MAAM,MAC5B,GAAI8a,EAAKC,WAAW,MAAQD,EAAKC,WAAW,KAC1C,IACE,OAAOja,KAAKC,MAAM+Z,GAClB,MAAOrc,GACPoc,EAAYpc,EAKlB,MAAMoc,G,uBCzBVxgB,eAAe2gB,GAAc,SAC3BC,EAAQ,QACRngB,EACAogB,QAASC,EAAY,OACrBC,EAAM,SACNC,EAAW,GAAE,mBACbC,EAAkB,UAClBC,GAAY,EAAK,cACjBC,GAAgB,IAEhB,MAAMrV,EHNR,UAA0B,SACxB8U,EAAQ,OACRG,EAAS,GAAE,MACXtB,GAAQ,EAAI,QACZhf,EAAO,mBACPwgB,IAEA,MAAMG,EAAS,IAAIC,IAAI5gB,EAAQ6gB,UACzBnC,EAAQ,QAASiC,EAAO/B,QACxBkC,EAAgBpC,EAAMqC,YAAcJ,EAAOK,SAG3CC,EAAc,GACdC,EAAOf,EAASe,KAAK1Z,QAAQ,sBAAsB,CAAC2Z,EAAO1hB,KAC/DwhB,EAAYhgB,KAAKxB,GACV6gB,EAAO7gB,MAEV2hB,EAAY,GAElB,IAAK,MAAMC,KAAcle,OAAOC,KAAKkd,IACM,IAArCW,EAAYphB,QAAQwhB,KACtBD,EAAUC,GAAcf,EAAOe,IAK/Bb,IACFY,EAAUE,sBAAwB,IAAKtb,KAAKub,UAAUf,EAAmBxhB,IAAI,YAI/E2hB,EAAOa,SAAWvjB,OAAOkiB,SAASqB,SAElC,MAAMC,GAAU,QAAgBX,IAAiB,QAAkBX,EAASuB,WAAa1hB,EAAQ2hB,eAAiBT,EAwBlH,OAtBIxC,EAAMqC,WACRrC,EAAMqC,WAAaU,EAEnBd,EAAOK,SAAWS,EAIhBzC,GAAShf,EAAQ4hB,YACnBlD,EAAMmD,SAAW7hB,EAAQ4hB,WAI3BnD,EAAiBkC,EAAQjC,GAErB,CAAC,WAAY,eAAe/f,QAAOmjB,GAAKnB,EAAO1F,WAAWpb,QAAQiiB,IAAM,IAAGld,OAAS,GAAKub,EAASR,QAAUQ,EAASR,SAAW,SAClIlB,EAAiBkC,EAAQ,CAAC,CACxBoB,QAAS5B,EAASR,UAChB,GAINlB,EAAiBkC,EAAQ,CAAC3gB,EAAQgiB,UAAWZ,IAAY,GAClDT,EAAO1F,WGnDFgH,CAAiB,CAC3B9B,SAAAA,EACAG,OAAAA,EACAtB,OAAO,EACPhf,QAAAA,EACAwgB,mBAAAA,IAGE,CAAC,WAAY,eAAe7hB,QAAOmjB,GAAKzW,EAAIxL,QAAQiiB,IAAM,IAAGld,OAAS,GAAKub,EAASR,QAAUQ,EAASR,SAAW,QACpHY,EAASZ,OAAS,SAElBY,EAASZ,OAASQ,EAASR,QAAU,QAIvC,MAAMgB,EAAS,IAAIC,IAAIvV,GACjB6W,GAA0D,IAA9C,CAAC,OAAQ,OAAOriB,QAAQ0gB,EAASZ,SAE9CuC,GAAa7B,GAChB5B,EAAiBkC,EAAQ,CAACN,IAAe,GAG3C,MAAM8B,EAAcxB,EAAO1F,WAE3B,IAAInR,EAEAoY,IAGApY,EAFE2W,EAEK,IAAaJ,EAAmC,kBAAdI,EAA0B,GAAKA,GAGjEza,KAAKub,UAAUlB,IAK1B,MAAMuB,QAAkB7C,EAAqB/e,EAAQ4hB,WAC/CQ,OAAoC,IAAdR,EACtBS,EAAO,QAAc,CAAC9B,EAAU,CACpC+B,QAAS,IAAsB,iBAATxY,EAAoB,CACtC,eA9DkB,kCA+DhB,MACAsY,GAAgB1B,EAAgB,CAClC,aAAckB,GACZ,GACJW,OAAQ,kCAGZF,EAAKvY,KAAOA,EAEZ,MAAMrF,QAAexG,OAAOohB,MAAM8C,EAAaE,GAE/C,IAAK5d,EAAO6a,GAAI,CACd,IAAIkD,EACAC,GAAS,EAEb,IAYE,GAXAD,QAAqB9C,EAAYyC,EAAa1d,EAAQ0b,EAASR,QAIrC,iBAAtB6C,EAAaE,MAA6C,MAAlBje,EAAOke,QAAkBP,IAAiB1B,IACpF+B,GAAS,GAMe,8BAAtBD,EAAaE,MAAwCN,EAAc,CACrE,MAAM,0BACJnD,GACEjf,EAEJ,UACQ+e,EAAqB6C,EAAW3C,GACtCwD,GAAS,EACT,MAAO9e,MAGX,MAAOA,IAGT,GAAI8e,EACF,aAAavC,EAAc,CACzBC,SAAAA,EACAngB,QAAAA,EACAygB,UAAAA,EACAH,OAAAA,EACAF,QAASC,EACTK,eAAe,EACfH,SAAAA,IAKJA,EAASZ,SAAW,UAAsB1hB,OAAO2kB,4BAA8B3kB,OAAO2kB,4BAA8B,GAAK,GACzH,MAAMC,EAAYpe,EAElB,MADAoe,EAAUL,aAAeA,EACnBK,EAGR,OAAOnD,EAAYyC,EAAa1d,EAAQ0b,EAASR,U,4BC9HnD,IAAImD,E,iBAEJ,SAAWA,GACTA,EAAmB,IAAI,MACvBA,EAAoB,KAAI,OACxBA,EAAmB,IAAI,MACvBA,EAAsB,OAAI,SAC1BA,EAAqB,MAAI,QAL3B,CAMGA,IAAkBA,EAAgB,M,gECRrC,MAAMC,EAAoBrb,GAAOA,EAAIsb,SAAS,MAAQtb,EAAIsb,SAAS,MAAQD,EAAkBrb,EAAInC,MAAM,GAAI,IAAMmC,EAE3Gub,EAAkBvb,GAAO,GAAGD,OAAOsb,EAAkBrb,GAAM,KAa3Dwb,EAAuBtkB,IAC3B,MAAMoB,EAAU/B,OAAOW,EAAK4I,QAAQ,aAAa2b,GAAKA,EAAE,GAAGC,iBAC3D,MAAO,GAAG3b,OAAOzH,EAAQqjB,WAAW5b,OAAOzH,EAAQsjB,YAAa,O,yFCUlE,SAASC,EAAQlY,EAAKuI,EAAMxS,SAAS+Z,cAAc,QACjD,OAAO,IAAI3a,SAAQC,IAEjB,IAAI+iB,EACJ,MAAM,QACJjM,IACE,SACEkM,GAAe7P,EAAIjI,cAEzB+X,EAAO,IAAK,MAAM7M,KAAOU,EAAS,CAChC,MAAM,MACJoM,GACE9M,EAEJ,IAAK,MAAM+M,KAAQD,EAAO,CACxB,MAAME,GAAS,OAA8BD,GAE7C,GAAIvY,EAAI8V,MAAM0C,GAAS,CACrBL,EAAQ3M,EACR,MAAM6M,IAKRF,GAEF5P,EAAIkQ,aAAa,KAAmB,YACpClQ,EAAIkQ,aAAa,KAA2BN,EAAMpjB,SAASoF,KAAK,MAChEoO,EAAIkQ,aAAa,KAA2BN,EAAM1kB,GAAGmc,YACrDrH,EAAIvM,iBAAiB,KAAwB,KAC3Coc,GAAe7P,EAAImQ,SACnBtjB,OAGEgjB,GACFriB,SAAS0I,KAAKuR,YAAYzH,IAG5BnT,S,4SC5DN,MAAMujB,EAAoCzkB,OACxC0kB,oBAAAA,OAEO,EAAAjf,EAAA,GAAgBif,IAA+B,a,iCCHxD,SAASC,IACP,MAAM,UACJC,GACEC,UAEJ,QAAID,IAEE,qBAAqB9gB,KAAK8gB,IAIvB,IAAMA,GCRjB,MAAME,EAAmC,CAACjE,EAASkE,EAAU,IAAOC,GAAS,IAAShlB,OACpFpB,mBAAAA,EACAqmB,aAAAA,MAEA,GAAIN,MAAgBK,EAElB,OAAO,EAIT,MAAMtlB,GAAW,EAAAC,EAAA,GAAgBf,GAEjC,GAAIc,EAAU,CACZ,MAAM,SACJ0G,GACE1G,EAEJ,GAAIulB,IAAiB7e,EAEnB,MAAO,UAIX,IACE,MAAM,YACJ8e,SC9BkBC,ED+BKtE,IC/BIpU,ED+BOsY,EC9B/B,IAAI9jB,SAAQ,CAACC,EAAS0e,KAC3BuF,EAAQpd,KAAK7G,EAAS0e,GACtB,MAAMxb,EAAI,IAAIghB,MAAM,aACpB5iB,WAAWod,EAAQnT,EAAIrI,OD4BvB,OAAO8gB,EACP,MAAO9gB,GACP,OAAO,EClCX,IAAwB+gB,EAAS1Y,GCI3B4Y,EAAiC,CAACL,GAAS,IAAShlB,OACxDpB,mBAAAA,EACAE,OAAAA,EACAC,mBAAAA,MAEA,MAAOI,GAAqBL,EAAOM,QAAO,EACxCC,KAAAA,KACIA,IAASN,IAEf,IAA4C,KAAxC,EAAAY,EAAA,GAAgBf,KAAkComB,EACpD,OAAO,EAIT,IAAK,MAAM9kB,KAASpB,EAClB,GAAIoB,IAAUf,EACZ,IAAK,MAAM,WACTiG,KACGlF,EAAMV,MACT,GAAmB,wBAAf4F,EACF,OAAO,EAMf,QC5BF,WACE,IACE,MAAMkgB,EAAI5mB,OAEV,IAAI4mB,EAAEC,YAAcD,EAAET,UAAUU,YAAcD,EAAET,UAAUW,cAAgB,gCAAiCF,EAAEG,YAEvF,KAAhBH,EAAEC,YAA+C,OAA1BD,EAAET,UAAUU,YAAiD,KAA1BD,EAAET,UAAUU,YAAiD,KAA5BD,EAAET,UAAUW,cAAuBF,EAAEG,SAASC,+BAC3I,OAAO,EAGX,MAAOthB,IAGT,OAAO,EDeAuhB,IAAiB,OE5BpBC,EAAgC5lB,OACpCpB,mBAAAA,EACAqmB,aAAAA,MAEA,MAAMvlB,GAAW,EAAAC,EAAA,GAAgBf,GAEjC,IAAiB,IAAbc,EACF,OAAO,EAGT,MAAM,SACJ0G,GACE1G,EACJ,OAAOulB,IAAiB7e,GAAW,W,wBCjB9B,MAAMyf,EAA2C,CACtDlE,KAAM,+BACNvB,OAAQ,UCAV,SAAS0F,EAAiB9U,GACxB,MACE0J,OAAO,QACLK,EAAO,YACPgL,EAAW,cACXpL,EAAa,kBACbqL,GACD,OACDC,GACEjV,EACJ,MAAO,CAAC+U,IAAgBhL,EAASiL,IAAsBrL,GAAevb,OAAOiX,SAAS/V,QAAQ2lB,IAAW,E,wBCD3G,SAASC,IACP,MACMC,GADc,SAAQ,IAAMznB,OAAO0nB,YAAY,ICbD,IDiB9CC,GAAkB,SAAQ,KAC9B,MAAMzB,EAAYlmB,OAAOmmB,UAAUD,UAAUzG,cAC7C,OAAsH,IAA/G,CAAC,UAAW,QAAS,SAAU,WAAW1e,KAAI6mB,GAAQ1B,EAAUtkB,QAAQgmB,IAAS,IAAGlnB,OAAOiX,SAAShR,SAC1G,IACH,OAAO,SAAY,EACjBkhB,YAAAA,EACAC,sBAAAA,EACAC,aAAAA,EACAC,uBAAAA,MAEA,IAAIC,EAAiBH,EAAwBL,EAAWI,EAAc,OAASA,EAC3EK,EAAkBF,EAAyBP,EAAWM,EAAe,OAASA,EAOlF,OALIJ,IACFM,EAAiB,OACjBC,EAAkB,QAGb,CACLD,eAAAA,EACAC,gBAAAA,KAED,IErCL,MAAMC,EAAcziB,IACbA,IAILA,EAAE0iB,iBAEF1iB,EAAE2iB,oB,gECLJ,MAAMC,EAAe,sB,cCFrB,SAASC,EAAuBC,EAAWlU,GACzC,MAAOrG,EAAGC,IAAQ,QAAS,IACpBua,EAAGC,IAAQ,QAAS,IACpBC,EAAgBC,IAAqB,QAASJ,IAC9CK,EAAqBC,IAA0B,aAASrmB,IACxDsmB,EAAeC,IAAoB,QAAS1U,IAC5C2U,EAAoBC,IAAyB,aAASzmB,GA0C7D,OAxCA,SAAU,KAEJwL,EAAI,IACY,SAAdua,EACFI,EAAkBJ,IAElBI,EAAkB,QAClBE,EAAuBN,KAI3Bta,EAAKD,EAAI,KACR,CAACua,KACJ,SAAU,KAEJC,EAAI,IACW,IAAbnU,EACF0U,EAAiB1U,IAEjB0U,EAAiB,GACjBE,EAAsB5U,GACtBsU,EAAkB,QAClBE,EAAuBN,KAI3BE,EAAKD,EAAI,KACR,CAACnU,KACJ,SAAU,UACoB7R,IAAxBomB,IACFD,EAAkBC,GAClBC,OAAuBrmB,MAExB,CAAComB,KACJ,SAAU,UACmBpmB,IAAvBwmB,IACFD,EAAiBC,GACjBC,OAAsBzmB,MAEvB,CAACwmB,IACG,CAACN,EAAgBI,GC9C1B,SAASI,EAASC,GAChB,MAAM5iB,EAAS,4CAA4C6iB,KAAKD,GAChE,OAAO5iB,EAAS,CACd+B,EAAG+gB,SAAS9iB,EAAO,GAAI,IACvB0e,EAAGoE,SAAS9iB,EAAO,GAAI,IACvB+iB,EAAGD,SAAS9iB,EAAO,GAAI,KACrB,KCJN,SAASgjB,EAAcJ,EAAKK,GAC1B,MAAM,EACJlhB,EAAC,EACD2c,EAAC,EACDqE,GACEJ,EAASC,GACb,MAAO,QAAQ5f,OAAOjB,EAAG,MAAMiB,OAAO0b,EAAG,MAAM1b,OAAO+f,EAAG,MAAM/f,OAAOigB,EAAQ,IAAK,K,gBCVrF,SAASC,GAAyB,UAChCC,EAAS,YACT9B,EAAW,aACXE,EAAY,oBACZ6B,EAAmB,qBACnBC,EAAoB,iBACpBC,EAAgB,kBAChBC,IAEA,OAAOJ,EAAY,CACjBnB,UAAWX,EACXvT,SAAUsV,EACVld,MAAOod,GACL,CACFtB,UAAWT,EACXzT,SAAUuV,EACVnd,MAAOqd,GAQX,MAAMC,EAAc,EAClBC,eAAAA,GAAiB,EACjBN,UAAAA,GAAY,EACZ9B,YAAAA,EAAc,SACdE,aAAAA,EAAe,UACf+B,iBAAAA,EAAmB,EACnBC,kBAAAA,EAAoB,EACpBH,oBAAAA,EAAsB,IACtBC,qBAAAA,EAAuB,IACvBzY,UAAAA,EAAY,GACZtC,MAAAA,EAAQ,GACRS,SAAAA,MAEA,OAAO,UACLiZ,EAAS,SACTlU,EAAQ,MACR5H,GACCwd,IAA4B,QAASD,EAAiBP,EAAyB,CAChFC,UAAAA,EACA9B,YAAAA,EACAE,aAAAA,EACA+B,iBAAAA,EACAC,kBAAAA,EACAH,oBAAAA,EACAC,qBAAAA,IACG,CACHrB,UAAW,GACX9b,WAAOjK,EACP6R,SAAU,KAEZ,SAAU,KACR4V,EAAyBR,EAAyB,CAChDC,UAAAA,EACA9B,YAAAA,EACAE,aAAAA,EACA+B,iBAAAA,EACAC,kBAAAA,EACAH,oBAAAA,EACAC,qBAAAA,OAED,CAACF,EAAW9B,EAAaE,EAAc+B,EAAkBC,EAAmBH,EAAqBC,IACpG,MAAMM,EAAU,8BAA8B3gB,OAAOgf,EAAW,KAAKhf,OAAO4H,GACtEgZ,EAAiB5B,EAGnB,GAH+B,CACjClX,QAASqY,EAAY,EAAI,EACzBU,WAAY,WAAW7gB,OAAOkD,EAAO,OAEvC,OAAO4B,EAAE,MAAO,CACd8C,UAAW+Y,EACXrb,MAAO,CACLwb,eAAgB,GAAG9gB,OAAOkD,EAAO,MACjC6d,kBAAmB,GAAG/gB,OAAO8K,EAAU,MACvCkW,cAAeb,EAAY,MAAQ,UAChC7a,KACAsb,IAEJ7a,ICzEL,SAASkb,EAA4Bnd,EAAS1I,GAC5C,MAAM,iBACJgM,IACE,SAEE8Z,GAAQ,EAAA9N,EAAA,GAAY,GAAI,+BAA+BpT,OAAO5E,IAC9D+lB,EAAaxnB,SAAS8Z,eAAeyN,IAC3C,SAAU,KACR,IAAIE,EAAiB,EAErB,MAAMC,EAAc,KAClB,MAAMC,EAAgBxd,EAAQyd,wBAAwB5Z,OAElDyZ,IAAmBE,IACrBF,EAAiBE,EACjBH,EAAWtT,UAAY,IAAI7N,OAAOoH,EAAkB,uBAAuBpH,OAAO5E,EAAM,MAAM4E,OAAOwhB,KAAKC,MAAMH,GAAgB,6BAA6BthB,OAAO5E,EAAM,MAAM4E,OAAOshB,EAAe,SAI1M,IAAKxd,EACH,MAAO,OAKT,MAAM4d,EAAmB/nB,SAASoJ,cAAc,IAAI/C,OAAOoH,EAAkB,6BAG7E,GAFAsa,EAAiB9hB,iBAAiB,eAAgByhB,GAE9C7qB,OAAOmrB,eAAgB,CACzB,MAAMC,EAAK,IAAID,eAAeN,GAE9B,OADAO,EAAGC,QAAQ/d,GACJ,KACL8d,EAAGE,aACHJ,EAAiBK,oBAAoB,eAAgBV,IAElD,CACL,MAAM1c,EAAWC,YAAYyc,EAAa,KAC1C,MAAO,KACLxc,cAAcF,GACd+c,EAAiBK,oBAAoB,eAAgBV,OAGxD,CAACvd,EAAS1I,I,cCvCf,SAAS4mB,IACP,MAAM,sBACJvR,EAAqB,OACrBwR,EAAM,mBACNC,EAAkB,oBAClBC,EAAmB,OACnBvrB,EAAM,eACNga,EAAc,4BACdwR,EAA2B,aAC3BC,EAAY,QACZ7T,IACE,SACE8T,EAAmB7R,EAAwB,UAAY,WACvD8R,EAA0B9R,EAAwB,gBAAkB,iBACpE+R,EAAyB/R,EAAwB,iBAAmB,kBACpEgS,EAAsBhS,EAAwB,aAAe,cAC7DzT,EAAS,CACbslB,iBAAAA,EACAC,wBAAAA,EACAC,uBAAAA,EACAC,oBAAAA,EACAC,WAAW,SAAY,KACrB9rB,EAAO+rB,SAAQjH,GAAKwG,EAAmBxG,EAAErkB,IAAI,KAC7C4qB,GAAO,EAAOK,KACb,CAACA,IAKJM,kBAAkB,SAAY,CAACC,GAAc,KAC3CjsB,EAAO+rB,SAAQ,EACbxrB,KAAAA,EACAE,GAAAA,EACAC,MAAAA,MAEA,GAAIH,IAASyZ,EACXsR,EAAmB7qB,GAAI,QAEvB,IAAK,MAAM,WACT6F,EACA7F,GAAIyrB,KACDxrB,EACH6qB,EAAoB9qB,EAAIyrB,EAAyB,wBAAf5lB,MAIxC+kB,GAAO,EAAOY,EAAcL,EAAyBD,KACpD,CAACA,IACJQ,kBAAkB,SAAY,IAAMd,GAAO,EAAOQ,IAAsB,CAACA,IACzEO,uBAAuB,SAAY,KACjCZ,GAA4B,KAC3B,CAACA,KAEN,MAAO,IAAKplB,EACVimB,WAAW,SAAY,KAChBZ,EAKH7T,IAFAxR,EAAO4lB,kBAAiB,KAIzB,CAACP,EAAc7T,EAASxR,EAAO4lB,oB,cCjEtC,MAAMM,EAAS,EACbnd,SAAAA,EACA6B,UAAAA,EACAub,IAAAA,EAAM,MACNC,kBAAAA,MAEA,MAAOC,IAAY,SAAS,KAC1B,MAAMC,EAAK3pB,SAAS+Z,cAAcyP,GAElC,OADAvb,GAAa0b,EAAGC,UAAUC,IAAI5b,GACvB0b,KAST,OANA,SAAU,KACR3pB,SAAS0I,KAAKuR,YAAYyP,GACnB,KACL1pB,SAAS0I,KAAK0R,YAAYsP,MAE3B,KACiB,QAAatd,EAAUqd,GAAqBC,I,0BCtBlE,IAAIlQ,EAAU,EAOd,MAAMsQ,EAAY,EAChBrb,MAAAA,EACAL,MAAAA,EACA2b,YAAAA,EACAC,OAAAA,EACAP,kBAAAA,EACAQ,cAAAA,EACA9d,QAAAA,EACA+d,UAAAA,EAAY,MAEZ,MAAMC,GAAyB,SAAQ,IAAM,oBAAoB9jB,QAAQmT,KAAWK,SAAS,MAAM,IAC7FuQ,GAAsB,SAAQ,IAAM,oBAAoB/jB,QAAQmT,KAAWK,SAAS,MAAM,IAQ1FwQ,GAAyB,SAAQ,IAAM,oBAAoBhkB,QAAQmT,KAAWK,SAAS,MAAM,IAC7FrH,GAAM,UACN8X,GAAO,QAAQ9X,GAErB,OADA,EAAAiH,EAAA,GAAY,IAAIpT,OAAOgkB,EAAwB,OAAOhkB,OAAO8jB,EAAwB,wEAAwE9jB,OAAOoI,EAAO,6CAA6CpI,OAAOoI,EAAO,kBAAkBpI,OAAOoI,EAAO,wCAAwCpI,OAAO8jB,EAAwB,gDAAgD9jB,OAAO8jB,EAAwB,OAAO9jB,OAAO+jB,EAAqB,mDAAmD/jB,OAAO2jB,EAAS,uCAAyC,GAAI,YAAY3jB,OAAO+jB,EAAqB,uCAAuC/jB,OAAOikB,EAAO,QAAQjkB,OAAOikB,EAAKC,EAAG,aAAalkB,OAAOikB,EAAKE,EAAG,qBAAuB,gBAAiB,cAAcnkB,OAAOoI,EAAO,kBAAkBpI,OAAOoI,EAAO,4BAA4BpI,OAAO+jB,EAAqB,aAAa/jB,OAAO8jB,EAAwB,gFAAgF9jB,OAAO+jB,EAAqB,mBAAmB/jB,OAAO+jB,EAAqB,mBAAmB/jB,OAAO8jB,EAAwB,mBAAmB9jB,OAAO8jB,EAAwB,0EAA0E9jB,OAAO6jB,EAAW,kBAAkB7jB,OAAOoI,EAAO,4BAA4BpI,OAAO+H,EAAO,2KAA2K/H,OAAO+jB,EAAqB,mBAAmB/jB,OAAO8jB,EAAwB,0EAA0E9jB,OAAO+jB,EAAqB,yBAAyB/jB,OAAO+jB,EAAqB,yBAAyB/jB,OAAO8jB,EAAwB,yBAAyB9jB,OAAO8jB,EAAwB,+CAA+C9jB,OAAO6jB,EAAY,EAAG,WAC92DT,EAAoB,EAAE,KAAU,KAAM,EAAE,MAAO,CACpD/rB,GAAI2sB,EACJ7X,IAAKA,KACF8X,MAAAA,OAAmC,EAASA,EAAKC,GAAK,GAAK,EAAEhB,EAAQ,CACxEE,kBAAmBA,GAClB,EAAE,IAAS,CACZxX,MAAO8X,EACPrsB,GAAI0sB,EACJje,QAASA,EACT+F,SAAUoY,EAAKC,EAAI,GAAK,WAAa,OACrCnY,OAAQ6X,GACP,EAAE,OAAQ,SAAW,EAAE,IAAS,CACjChY,MAAO8X,EACPrsB,GAAIysB,EACJhe,QAASA,EACT+F,SAAU,WACVE,OAAQ6X,GACP,EAAE,OAAQ,Q,gBCjDf,MAAMQ,EAAkB,KACtB,MACEjP,cAAc,SACZtP,EAAQ,UACRqH,GAEFkD,OAAO,iBACLwS,GACD,OACDzb,EAAM,aACNkb,EAAY,iBACZjb,EACA2B,MAAM,MACJ4F,EAAK,mBACL0V,GACD,cACDC,EAAgB,KACd,UACE,uBACJ9B,EAAsB,UACtBS,GACEjB,IACEuC,EAAY5qB,SAAS8Z,eAAerM,GAC1C,OAAO,EAAEqc,EAAW,CAClBrb,OAAO,EAAAX,EAAA,GAAYN,EAAQC,EAAkBvB,GAC7CkC,MAAOmF,EACPwW,YAAarB,EAAgC,WAAjBA,EAA4BgC,EAAqB1V,EAAQiU,EACrFgB,eAAgBW,MAAAA,OAA6C,EAASA,EAAUC,aX7B9B,IW8BlDb,OAAQW,IAAkB9B,EAC1BY,kBAAmBmB,EACnBze,QAASmd,K,iBC5Bb,MAAMwB,IAA4B,SAAW,CAACC,EAAGvY,KAC/C,MAAMrD,GAAS,UAEbqM,cAAc,KACZwP,EAAI,WACJC,GAEFptB,UAAU,cACRqtB,GAEFzU,OAAO,SACL0U,GACD,aACDzC,EAAY,sBACZ5R,EAAqB,gBACrBC,EACA3H,MAAM,gCACJgc,IAEAjc,EAEEkc,EAAYJ,KAAgBD,MAAAA,GAAoCA,EAAKpJ,SAAS,UAAY/kB,OAAOyuB,iBAAmB,EACpHC,EAAUF,EAAYJ,EAAaD,EAEnCQ,EAAc1U,EAAyC,YAAjB4R,EAA6B0C,EAAkCrU,EAAgBoU,SAAWA,EACtI,OAAO,GAAE,OAAO,OAAS,CACvB3Y,IAAKA,GC5BT,UACE3F,QAAQ,KACN1P,EAAI,mBACJsuB,GAEF/X,QAAQ,YACNgY,EAAW,YACXC,KACGC,GAELpQ,cAAc,UACZqQ,EAAS,GACTC,EAAE,QACFtd,GAEFlB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAMse,GAAU,EAAAje,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UACtD6uB,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBie,GACvD/f,EAAQ,CACZ6C,SAAS,EAAAV,EAAA,GAAYN,EAAQC,EAAkBe,OAASlP,GAAW,GAAM1B,KAAIquB,GAAK,GAAG5lB,OAAO4lB,EAAG,QAAO7nB,KAAK,KAC3GkK,WAAYud,EAAYD,EAAWE,GAAKA,EACxChf,aAA0B,WAAZif,EAAuB,GAAG1lB,OAAOolB,EAAoB,OAAOplB,OAAOolB,EAAoB,eAAYnsB,EACjH4S,SAAU,SACVga,OAAQ,EACRC,IAAK,GASP,MANgB,WAAZJ,GAAwBC,EAAiB,IAC3CrgB,EAAMygB,UAAY,GAAG/lB,OAAO2lB,EAAgB,aAAa3lB,OAAOslB,GAChEhgB,EAAMmE,WAAanE,EAAMygB,UACzBzgB,EAAM0gB,YAAc1gB,EAAMygB,WAGrB,CACLne,UAA6B,MAAlBV,OAAwBjO,EAAY,uBAC/CqM,MAAAA,GDXC2gB,CAAiCnd,IAAU,GAAE,ME7BlD,UACEtC,QAAQ,KACN1P,EAAI,eACJovB,GAEF7Y,QAAQ,UACNmH,GAEFW,cAAc,iBACZgR,EAAgB,KAChBxB,EAAI,aACJyB,KACGC,GAELjW,OAAO,SACL0U,GACD,iBACDwB,EACArf,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,EAAgB,sBAChBqJ,IAEA,MAAM8V,EAAeJ,EAAmB3R,EAAY6R,EAAiB7R,UACrE,MAAO,CACL5M,UAA6B,MAAlBV,OAAwBjO,EAAY,aAC/CqM,MAAO,CACLub,WAAY,+BACZ/L,SAAoE,YAA1D,EAAArN,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,YAA2B2Z,IAA0B6V,EAAiBE,sBAAwBF,EAAiBJ,eAAiBA,QAAkBjtB,EACxMwtB,OAAQ,OACRze,QAAS,OACT0e,eAAiC,WAAjBH,EAA4B,SAA4B,UAAjBA,EAA2B,gBAAattB,EAC/Fub,UAAW+R,EACXI,WAAY,SACZ9a,SAAU,WACV+a,cAAejC,GAAQG,EAA4B,SAAjBsB,EAA0B,MAAyB,UAAjBA,EAA2B,cAAgB,cAAWntB,IFRvE4tB,CAAwB/d,KAAWoc,GAAW,GAAE,OAAO,OAAS,CACrH4B,IAAK,GACL1mB,IAAK8kB,GG/BT,UACE/P,cAAc,cACZ4R,EAAa,WACbC,EAAU,WACVC,EAAU,iBACVC,GAEFjgB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACC+f,GACD,MAAMC,EAAYD,EAAWD,EAAmBD,EAQhD,MAAO,CACLrf,UAA6B,MAAlBV,OAAwBjO,EAAY,WAC/CqM,MAAO,IATQ8hB,EAAY,CAC3Bhf,MAAOgf,EAAU,GACjBzf,OAAQyf,EAAU,IAChB,CACFhf,MAAO,OACPT,QAAQ,EAAAF,EAAA,GAAYN,EAAQC,GAAmB2f,IAK7CN,QAAQ,EAAAhf,EAAA,GAAYN,EAAQC,EAAkB4f,GAAYzvB,KAAI8vB,GAAK,GAAGrnB,OAAOqnB,EAAG,QAAOtpB,KAAK,OHQ7FupB,CAA4Bxe,EAAQkc,OAAgBG,GAAe,GAAE,OAAO,OAAgCrc,GAAQ,GAAQqc,MAAiBN,KAAmBxC,IAAiB,GAAE+B,EAAiB,W,4BIhCzM,MAAMmD,GAA0B,EAC9B3b,MAAAA,EACA7F,SAAAA,MAEA,MAAM+C,GAAS,SACf,OAAO,GAAE,MCLX,UACE9Q,OAAO,iBACL0O,EAAgB,kBAChB8gB,EAAiB,mBACjBC,GAEFxgB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,YAC/CqM,MAAO,CACLyC,MAAOyf,EACP3hB,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,EAAkBV,GAChD0O,WAAYqS,EACZjT,UAAW,SDbCkT,CAA6B5e,GAAS8C,EAAO7F,GAAY,GAAE,MEL7E,UACEsH,QAAQ,WACN+H,GAEFpd,OAAO,qBACL2vB,EAAoB,oBACpBpc,GAEFtE,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,wBAC/CqM,MAAO,CACLyC,MAAO4f,EACP9hB,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,GAAmBmE,GACjD6J,WAAAA,EACA5J,UAAW,IFfmEoc,CAAmC9e,GAAS/C,K,kDGFhI,MAAM8hB,GAAiB,EACrBC,SAAAA,EACA/hB,SAAAA,EACAgiB,SAAAA,EACAC,SAAAA,KACG7iB,MAEH,MAAMiB,GAAkB,EAAAC,GAAA,MACjBwG,EAASC,IAAc,SAAS,IAChCmb,EAAQC,IAAa,SAAS,GACrC,OAAO,GAAE,KAAU,KAAM,QAA0B,GAAE,KAAK,OAAS,CACjEtlB,KAAM,MACL,KAAAwG,GAAgChD,EAAiByG,GAAU,CAC5D/G,QAAS5J,IACP,MAAMisB,GAAWF,EACjBC,EAAUC,GACVL,MAAAA,GAAoDA,EAASK,GAC7DjsB,EAAE0iB,kBAEJ7R,aAAc,IAAMD,GAAW,GAC/BE,aAAc,IAAMF,GAAW,IAC9B3H,GAAO8iB,EAASD,EAAWD,GAAWE,GAAUliB,I,2BCvBrD,MAAMqiB,GAAe,EACnBpwB,MAAAA,EACAkI,OAAAA,MAEA,IAAImoB,EAEJ,MAAM,GACJhxB,GACE6I,EACE4I,GAAS,UACT,QACJpR,EAAO,aACP2qB,EAAY,eACZzR,GACE9H,EACEmB,EAAmB2G,IAAmB5Y,EAAMb,KAC5CyO,EAAaqE,GAAqC,YAAjBoY,EACjC1c,EAAYsE,KAA6D,QAAtCoe,EAAkB3wB,EAAQd,cAAwC,IAApByxB,OAA6B,EAASA,EAAgBrwB,EAAMX,MAAQ,IAAIkF,MAAK6M,GAAKA,IAAM/R,IACzKixB,GAAiB,SAAY,KAAO1iB,GAAckD,EAAOqZ,oBAAoBnqB,EAAMX,GAAIA,GAAKsO,IAAY,CAACC,EAAYkD,EAAQ9Q,EAAOX,EAAIsO,IAC9I,OAAO,GAAE,KAAQ,CACfzF,OAAQA,EACRoL,kBAAmB,CACjBrB,iBAAAA,GAEF3C,QAAS3B,EACT4B,SAAU3B,EACVyF,cAAeid,K,iBC1BnB,MAAMC,GAAc,EAClBvwB,MAAAA,MAEA,IAAIwwB,EAEJ,MAAM1f,GAAS,UACT,GACJzR,EAAE,KACFF,EAAI,KACJiE,EAAI,YACJ0S,EAAW,MACXxW,GACEU,GACE,2BACJywB,EAA0B,QAC1B/wB,EAAO,aACP2qB,EAAY,eACZzR,EACAF,iBAAiB,SACfqX,EAAQ,SACRC,IAEAlf,EACEmB,EAAmB2G,IAAmBzZ,EACtCyO,EAAaqE,GAAqC,YAAjBoY,EACjC1c,EAAY8iB,GAA8Bxe,KAAsBvS,EAAQd,OAAOS,GAC/EqO,GAAauE,GAAoB1L,KAAKub,UAAUxiB,EAAMC,KAAI,EAC9DF,GAAAA,KACIA,IAAIqxB,UAAYnqB,KAAKub,WAAyD,QAA7C0O,EAAqB9wB,EAAQd,OAAOS,UAAwC,IAAvBmxB,OAAgC,EAASA,EAAmBE,SAAW,IAC7JJ,GAAiB,SAAY,KAAO1iB,GAAckD,EAAOoZ,mBAAmB7qB,GAAKsO,IAAY,CAACC,EAAYkD,EAAQzR,EAAIsO,IAC5H,OAAO,GAAE,MC/BX,UACE3N,OAAO,QACL2wB,EAAO,kBACPC,EAAiB,iBACjBpf,EAAgB,aAChBqf,EAAY,iBACZtf,EAAgB,eAChBuf,GAEF7hB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAM2hB,GAAsB,EAAAthB,EAAA,GAAYN,EAAQC,EAAkBmC,GAClE,MAAO,CACL3B,UAA6B,MAAlBV,OAAwBjO,EAAY,YAC/CqM,MAAO,CACL2C,WAAY6gB,OAAiB7vB,EAAY0vB,EACzCzgB,OAAQ6gB,EAAsB,EAAI,GAAG/oB,OAAO+oB,EAAqB,aAAa/oB,OAAOwJ,QAAoBvQ,EACzGkP,SAAS,EAAAV,EAAA,GAAYN,EAAQC,EAAkByhB,GAActxB,KAAIquB,GAAK,GAAG5lB,OAAO4lB,EAAG,QAAO7nB,KAAK,KAC/F0I,cAAemiB,EACfpU,UAAW,SDQCwU,CAA6BlgB,GAAS,GAAEye,GAAyB,CAC/E3b,MAAO,GAAE,KAAgB,CACvB9F,QAASwiB,EACT5iB,UAAWA,EACXC,UAAWA,EACXC,WAAYA,GACXxK,EAAM,KAAM9D,EAAM6F,OAAQ,MAC5B2Q,IAAexW,GAAS,GAAEuwB,GAAgB,CAC3CE,SAAUA,EACVC,SAAUA,GACT1wB,EAAMC,KAAI2I,GAAU,GAAEkoB,GAAc,CACrC3sB,IAAKyE,EAAO7I,GACZW,MAAOA,EACPkI,OAAQA,U,iBE3CZ,MAAM+oB,GAAkB,KACtB,MAAMngB,GAAS,UACT,OACJlS,EACAoB,OAAO,aACLkxB,GACD,OACD/hB,EAAM,iBACNC,GACE0B,EACEqgB,EAAYvyB,EAAOM,QAAO,EAC9BI,MAAAA,KACIA,EAAM6F,SACZ,OAAO,GAAE,MChBX,UACE8J,WAAW,cACTC,KAGF,MAAO,CACLU,UAA6B,MAAlBV,OAAwBjO,EAAY,aAC/CqM,MAAO,CACLkG,UAAW,GACX4d,MAAO,SDOKC,CAAwBvgB,GAASqgB,EAAU5xB,KAAI,CAACS,EAAOsxB,IAAU,GAAE,KAAU,CAC3F7tB,IAAKzD,EAAMX,IACV,GAAEkxB,GAAa,CAChB9sB,IAAKzD,EAAMX,GACXW,MAAOA,IACLsxB,IAAUH,EAAUhsB,OAAS,GAAK,GAAE,MAAO,CAC7CmI,MAAO,CACLqC,QAAQ,EAAAF,EAAA,GAAYN,EAAQC,GAAmB8hB,W,iBEjBrD,MAAMK,GAAoB,EACxBvxB,OACEX,GAAAA,EACAF,KAAAA,EACAiE,KAAAA,OAGF,MAAM0N,GAAS,UAEbtR,UAAU,gBACRgyB,GAEFnc,QAAQ,SACNxH,GACD,QACDnO,EAAO,eACPkZ,GACE9H,EAEEmB,EAAmB2G,IAAmBzZ,EACtCwO,EAAYsE,KAAsBvS,EAAQd,OAAOS,GACjDixB,GAAiB,SAAY,IAHrB,OAGuH,CAHvH,MAG+Hre,EAAkBnB,EAAQzR,EAAIsO,EAAW6jB,IACtL,OAAO,GAAE,QAAQ,OAAS,CACxB/tB,IAAKL,GC3BT,UACEiS,QAAQ,SACNxH,GAEFoO,YAAY,4BACVwV,EAA2B,qBAC3BC,GACD,OACDviB,EAAM,iBACNC,IAEA,MAAO,CACLQ,eAAW3O,EACXqM,MAAO,CACLgQ,aAAc,GACdzP,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,EAAkBqiB,GAA+B5jB,GAAY6jB,GAC3FC,WAAY,SACZ3hB,QAAS,iBDWV4hB,CAAqC9gB,IAAU,GAAE,OAAQ,KAKvD,GAAE,KAAU,KAAM,GAAE,SEnC3B,UACEmL,YAAY,wBACV4V,KAGF,MAAO,CACLjiB,eAAW3O,EACXqM,MAAO,CACLyC,MAAO8hB,IF2BwBC,CAAuChhB,GAAS,KAAW,KAAS,GAAE,OAAQ,CAC/GxD,MAAO,CACLgD,cAAe,SACfT,OAAQ2hB,EAAkB,eAAYvwB,GAExC6M,QAASwiB,GACRltB,M,iBGtCL,MAAM2uB,GAAwB,KAC5B,MAAMjhB,GAAS,UACT,OACJlS,EACAY,UAAU,WACRwyB,IAEAlhB,EACJ,OAAOkhB,EAAa,GAAE,MCXxB,UACE/iB,WAAW,cACTC,KAGF,MAAO,CACLU,UAA6B,MAAlBV,OAAwBjO,EAAY,oBAC/CqM,MAAO,CACLkG,UAAW,GACXye,UAAW,WACX1hB,WAAY,IDCa2hB,CAAkCphB,GAASlS,EAAOM,QAAO,EACpFI,MAAAA,OACMA,EAAM6F,SAAQ5F,KAAIS,GAAS,GAAEuxB,GAAmB,CACtD9tB,IAAKzD,EAAMX,GACXW,MAAOA,OACF,M,iBEZT,MAEMmyB,GAAsB,KAC1B,MAAMrhB,GAAS,UACRshB,EAAYC,IAAiB,SAJlB,IAKZ,aACJhI,EAAY,QACZiI,EAAO,mBACPC,EACAxhB,MAAM,aACJyhB,EAAY,kBACZC,IAEA3hB,EACE4hB,GAAsB,SAAQ,KAClC,IAAIC,EAEJ,OAAOL,MAAAA,GAEuB,QAF4BK,EAAkBL,EAAQpzB,QAAO,EACzFG,GAAAA,KACIA,IAAO+yB,WAA6C,IAApBO,OAFU,EAE4BA,EAAgB,KAC3F,CAACP,KAEJ,SAAU,KACH/H,EAEuB,YAAjBA,GAAAA,MAA8BiI,GAA0CA,EAAQntB,QACzFktB,EAAcC,EAAQ,GAAGjzB,IAFzBgzB,GAxBc,KA4Bf,CAAChI,EAAciI,IAElB,MAAMlsB,EAAOssB,MAAAA,OAAiE,EAASA,EAAoBtsB,KACrGwsB,ECnCR,UACEvd,QAAQ,GACNoY,KAGF,MAAO,CACL7d,eAAW3O,EACXqM,MAAO,CACL2C,WAAYwd,ID2BIoF,CAAqC/hB,GACzD,OAAO,GAAE,KAAU,KAAM0hB,EAAc,IAAQ,GAAE,UAAU,OAAS,GEjCtE,UACEnd,QAAQ,SACNxH,EAAQ,UACRqH,GAEF+G,YAAY,2BACV6W,EAA0B,oBAC1Bvf,GAEFtE,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,qBAC/CqM,MAAO,CACLO,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,EAAkB0jB,GAA8BjlB,GAAY0F,GAC1FtD,WAAY,cACZC,OAAQ,EACRH,MAAOmF,EACP6d,aAAc,aAAa/qB,OAAOggB,EAAc9S,EAAW,OFWS8d,CAA+BliB,GAAS,CAC9GvB,WAAY+iB,MAAAA,GAA0CA,EAAQntB,QAC9DyL,MAAOwhB,EACPa,SAAU/uB,IACR,MAAM0M,GAAS1M,EAAEmN,OAAOT,MACxB0hB,EAAQ3H,SAAQ,EACdtrB,GAAAA,EACAG,SAAAA,EACAZ,OAAAA,EACA4Z,IAAAA,MAEInZ,IAAOuR,IACTyhB,EAAchzB,GACdkzB,EAAmB3zB,EAAQY,EAAUgZ,WAIxC8Z,MAAAA,OAAyC,EAASA,EAAQntB,QAAU,EAAImtB,EAAQ/yB,KAAI,EACvFF,GAAAA,EACAomB,aAAAA,EACAyN,UAAAA,EACAC,YAAAA,EACAC,QAAAA,KACI,GAAE,UAAU,OAAS,CACzB3vB,IAAKpE,EACLuR,MAAOvR,GACNuzB,GAAc,IAAIS,KAAKD,GAASE,eAAe3xB,SAAS8J,gBAAgB8nB,MAAO9N,EAAe,kBAAoB,GAAIyN,EAAY,qBAAuB,GAAIC,EAAc,wBAA0B,MAAO,GAAE,UAAU,OAAS,CAClOviB,OA3DgB,GA4DfgiB,GAAcH,MAAuBrsB,GAAQ,GAAE,MAAO,CACvDkH,MAAO,CACLwC,QAAS,GACT0D,UAAW,IAEZ,SAAUpN,K,0BGnEf,SAASotB,IAA+B,KACtCpwB,EAAI,MACJqwB,EAAK,KACL30B,EAAI,aACJ2P,EAAY,GACZgf,EAAE,QACFiG,EAAO,SACP7lB,EAAQ,UACR2O,EAAS,UACTtH,EAAS,WACTkI,EAAU,eACVjI,EAAc,YACdkY,EAAW,YACXC,EAAW,iBACXqG,EAAgB,QAChBxjB,EAAO,cACPjB,EAAa,iBACbE,GACCD,EAAQ0F,EAAS8W,EAAQiI,GAC1B,MAAMC,GAAaD,GAAwBH,EAAQ,EAC7CK,EAAaF,GAAkC,IAAVH,EAAc,EAAI,EACvDpjB,EAAcujB,GAAkC,IAAVH,EAAc,EAAI,EACxD9F,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,GAAmBie,GACxD/f,EAAQ,CACZiI,eAAyB,SAATzW,EAAkB,YAAc,OAChD2P,cAAeA,EACfoB,OAAiB,WAAT/Q,EAAoB,eAAYmC,EACxCqR,gBAA0B,WAATxT,EAAoB+V,EAAU6e,EAAUjG,OAAKxsB,EAC9D4M,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,GAAmBvB,GACjDuP,WAAAA,EACArN,MAAO8E,EAAUM,EAAiBD,EAClC2T,WAAY,0DACZ4F,OAAQ,KAAKzmB,OAAOqI,EAAa,OAAOrI,QAAO,EAAAyH,EAAA,GAAYN,EAAQC,EAAkB,QAAInO,GAAW,GAAO,OAAO+G,OAAO8rB,EAAY,MACrI5jB,OAAiB,WAATpR,GAAqB6uB,EAAiB,EAAI,GAAG3lB,OAAO2lB,EAAgB,aAAa3lB,OAAO6M,EAAU8e,EAAmBrG,QAAersB,EAC5IkP,SAAS,EAAAV,EAAA,GAAYN,EAAQC,EAAkBe,OAASlP,EAAoB,WAATnC,GAAmBS,KAAIquB,GAAK,GAAG5lB,OAAO4lB,EAAG,QAAO7nB,KAAK,KACxHguB,SAAU,SACVC,QAASrI,EAAS,kCAA+B1qB,EACjDgzB,KAAMJ,EAAY,WAAa,kBAAkB7rB,OAAO8rB,EAAazjB,EAAa,OAClFL,QAAS,OACT2e,WAAY,SAEZD,eAA8B,UAAdlS,EAAwB,WAA2B,WAAdA,EAAyB,SAAW,OACzFA,UAAAA,EACAiX,MAAAA,GAEF,MAAO,CACL7jB,UAA6B,MAAlBV,OAAwBjO,EAAY,WAAW+G,OAAO5E,GACjEkK,MAAAA,GC/CJ,SAAS4mB,IAAyC,MAChDC,EACA30B,UAAU,iBACRorB,GAEFpc,QAAQ,aACNC,GAEFwN,YAAY,yBACVmY,EAAwB,mBACxBC,EAAkB,0BAClBC,EAAyB,4BACzBC,EAA2B,wBAC3BC,EAAuB,4BACvBC,EAA2B,0BAC3BC,EAAyB,2BACzBC,EAA0B,wBAC1BC,EAAuB,+BACvBC,EAA8B,iCAC9BC,EAAgC,oBAGhCC,EAAmB,kBACnBC,EAAiB,iBACjBC,GAEFhmB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACCyF,EAAS8W,EAAQ8H,EAAOG,GACzB,OAAOJ,GAA+B,CACpCpwB,KAAM,oBACNqwB,MAAAA,EACA30B,KAAM8rB,EACNnc,aAAAA,EACAgf,GAAI4G,EACJX,QAASkB,EACT/mB,SAAU+lB,GAAwBO,EAAQa,EAAoBZ,EAC9D5X,UAAW8X,EACXpf,UAAWwf,EACXtX,WAAY+W,EAAQY,EAAsBJ,EAC1Cxf,eAAgB0f,EAChBxH,YAAaoH,EACbnH,YAAaiH,EACbZ,iBAAkBmB,EAClB3kB,QAASyjB,EAAuBqB,EAAmBT,EACnDtlB,cAAAA,EACAE,iBAAAA,GACCD,EAAQ0F,EAAS8W,EAAQiI,GClD9B,SAASsB,IACP11B,UAAU,iBACRurB,GAEFvc,QAAQ,aACNC,GAEFwN,YAAY,yBACVkZ,EAAwB,mBACxBC,EAAkB,0BAClBC,EAAyB,4BACzBC,EAA2B,wBAC3BC,EAAuB,4BACvBC,EAA2B,0BAC3BC,EAAyB,2BACzBC,EAA0B,wBAC1BC,EAAuB,+BACvBC,EAA8B,iCAC9BC,GAEF5mB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACCyF,EAAS8W,EAAQ8H,EAAOG,GACzB,OAAOJ,GAA+B,CACpCpwB,KAAM,oBACNqwB,MAAAA,EACA30B,KAAMisB,EACNtc,aAAAA,EACAgf,GAAI2H,EACJ1B,QAASiC,EACT9nB,SAAUsnB,EACV3Y,UAAW6Y,EACXngB,UAAWugB,EACXrY,WAAYsY,EACZvgB,eAAgBygB,EAChBvI,YAAamI,EACblI,YAAagI,EACb3B,iBAAkBkC,EAClB1lB,QAASolB,EACTrmB,cAAAA,EACAE,iBAAAA,GACCD,EAAQ0F,EAAS8W,EAAQiI,GC5C9B,SAASkC,IAA6B,MACpC3B,EACA3lB,QAAQ,aACNC,GAEFwN,YAAY,oBAEV8Y,EAAmB,kBACnBC,GAEFe,YAAY,KACVj3B,EAAI,SACJ+O,EAAQ,GACR4f,EAAE,UACFjR,EAAS,YACT8Q,EAAW,QACXnd,EAAO,YACPkd,EAAW,UACXnY,EAAS,WACTkI,EAAU,QACVsW,EAAO,eACPve,EAAc,iBACdwe,GAEF1kB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACCyF,EAAS8W,EAAQ8H,EAAOG,GACzB,OAAOJ,GAA+B,CACpCpwB,KAAM,yBACNqwB,MAAAA,EACA30B,KAAAA,EACA2P,aAAAA,EACAgf,GAAAA,EACAiG,QAAAA,EACA7lB,SAAUsmB,EAAQa,EAAoBnnB,EACtC2O,UAAAA,EACAtH,UAAAA,EACAkI,WAAY+W,EAAQY,EAAsB3X,EAC1CjI,eAAAA,EACAkY,YAAaA,EACbC,YAAAA,EACAqG,iBAAAA,EACAxjB,QAAAA,EACAjB,cAAAA,EACAE,iBAAAA,GACCD,EAAQ0F,EAAS8W,EAAQiI,GChD9B,SAASoC,IACPx2B,UAAU,UACRkrB,GAEFlc,QAAQ,aACNC,GAEFwN,YAAY,kBACV+Y,EAAiB,YACjBiB,EAAW,mBACXC,EAAkB,qBAClBC,EAAoB,iBACpBlB,EAAgB,qBAChBmB,EAAoB,mBACpBC,EAAkB,oBAClBtB,EAAmB,iBACnBuB,EAAgB,wBAChBC,EAAuB,0BACvBC,GAEFvnB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,GACCyF,EAAS8W,EAAQ8H,EAAOG,GACzB,OAAOJ,GAA+B,CACpCpwB,KAAM,aACNqwB,MAAAA,EACA30B,KAAM4rB,EACNjc,aAAAA,EACAgf,GAAIwI,EACJvC,QAAS4C,EACTzoB,SAAUmnB,EACVxY,UAAW0Z,EACXhhB,UAAWmhB,EACXjZ,WAAY2X,EACZ5f,eAAgBohB,EAChBlJ,YAAa+I,EACb9I,YAAa6I,EACbxC,iBAAkB6C,EAClBrmB,QAAS8kB,EACT/lB,cAAAA,EACAE,iBAAAA,GACCD,EAAQ0F,EAAS8W,EAAQiI,G,4BCzC9B,MAAM6C,GAAe,EACnBC,YAAAA,EACA53B,KAAAA,EACAgP,QAAAA,EACAC,SAAAA,EACA4d,OAAAA,EACAgL,YAAAA,EACAlD,MAAAA,MAEA,GAAa,SAAT30B,EACF,OAAO,KAGT,MAAO83B,EAAQC,IAAa,SAAS,GAC/BC,GAAgB,SAAY,KAC3BF,IACHD,GAAeE,GAAU,GACzB/oB,MAAAA,GAAkDA,OAEnD,CAACA,EAAS8oB,EAAQD,KACd9hB,EAASC,IAAc,SAAS,GACjChE,GAAS,UACT,sBACJ2H,EACAjZ,UAAU,UACRkrB,EAAS,iBACTE,GAEF3O,YAAY,sBACV8a,EAAqB,6BACrBC,IAEAlmB,EACEmmB,EAAsBD,EAA+BtM,EAAYE,EACjEsM,EAAkB,CACtBppB,QAASgpB,EACT/hB,aAAc,IAAMD,GAAW,GAC/BE,aAAc,IAAMF,GAAW,GAC/BxH,MAAO,CACLuC,OAAQ,YAGNsnB,GAAa,SAAQ,KACzB,OAAQT,GACN,IAAK,mBACH,OAAOxC,GAET,IAAK,mBACH,OAAOgB,GAET,IAAK,OACH,OAAOY,GAET,QACE,OAAOE,MAEV,CAACU,IAEJ,OAAO,GAAE,OAAO,OAAS,GAAa,WAAT53B,EAAoBo4B,EAAkB,GAAIC,EAAWrmB,EAAQ+D,EAAS8W,EAAQ8H,IC9DpG,mBAAmB7vB,KAAK+gB,UAAUD,YAAcC,UAAUD,UAAUtkB,QAAQ,aAAe,GD+D1E,SAAdsqB,GAAgD,SAAxBuM,GAAkCxe,GAAyBgb,EAAQ,IAAYsD,IAAyB,GAAE,OAAiB,SAATj4B,EAAkBo4B,EAAkB,GAAIN,EAAS,GAAE,KAAc,MAAQ7oB,K,iBE7D/N,MAAMqpB,GAAmB,KACvB,MAAMtmB,GAAS,UACT,aACJuZ,EACApO,YAAY,6BACV+a,EAA4B,sBAC5BD,GAEFv3B,UAAU,WACRwyB,EAAU,gBACVR,EAAe,WACfuE,EAAU,UACVrL,EAAS,iBACTE,EAAgB,iBAChBG,EACAsM,YAAaC,GAEflf,OACEsS,UAAW6M,EACX3M,iBAAkB4M,EAClBzM,iBAAkB0M,GAEpB1B,YACEj3B,KAAM44B,EACNC,aAAcC,GAEhBlf,iBAAiB,KACfmf,GACD,sBACDpf,EAAqB,oBACrBqf,EAAmB,iBACnBC,EAAgB,cAChBzL,EAAgB,IACdxb,GAGF/O,IAAKi2B,EACLC,UAAWC,EACXC,WAAYC,EACZP,KAAMQ,IACJ,SAAQ,KACV,MAAMhB,EAAcC,EAAkB7xB,MAAM,KACtC6yB,EAAgBjB,EAAYjhB,QAAO,CAACmiB,EAAUjiB,KAClDiiB,EAASjiB,GAAQ+gB,EAAYj3B,QAAQkW,GAC9BiiB,IACN,IACGC,EAAgBnB,EAAYjhB,QAAO,CAACmiB,EAAUjiB,KAClDiiB,EAASlB,EAAYj3B,QAAQkW,IAASA,EAC/BiiB,IACN,IAOH,OALIxB,IACFuB,EAAcE,EAAc,IAAM,EAClCF,EAAcE,EAAc,IAAM,GAG7BF,IACN,CAAChB,EAAmBP,KAEjB,iBACJzM,EAAgB,wBAChBC,EAAuB,oBACvBE,EACAC,UAAW+N,EACX7N,iBAAkB8N,EAClB3N,iBAAkB4N,EAAgB,sBAClC3N,GACEhB,IAEE2M,EAA+B,WAAjBtM,EAEpB,OAAO,GAAE,KAAU,KAOR,GAAEoM,GAAc,CACzB3oB,QAAS2qB,EACT35B,KAAM4rB,EACNgM,YAAa,YACb/K,OAAQW,IAAkBhC,EAC1BqM,YAAaA,EACblD,MAAOuE,GACNT,GAAiC,WAAjBlN,GAA6B,GAAEoM,GAAc,CAC9D3oB,QAAS4qB,EACT55B,KAAMk4B,EAA+BtM,EAAYE,EACjD8L,YAAaM,EAA+B,YAAc,mBAC1DrL,OAAQW,IAAkB/B,EAC1BoM,YAAaA,EACblD,MAAOyE,GACNV,KAAwB/e,GAAiJ,GAAEge,GAAc,CAC1L3oB,QAAS6qB,EACT75B,KAAM84B,EAAyBlN,EAAYgN,EAC3ChB,YAAakB,EAAyB,YAAc,OACpDjM,OAAQW,IAAkB7B,EAC1BkM,YAAaA,EACblD,MAAO4E,GACNR,IAAQpf,GAAyB,GAAEge,GAAc,CAClD33B,KAAMisB,EACNjd,QAASkd,EACT0L,YAAa,mBACb/K,OAAQW,EAAc9L,WAAW,QACjCmW,YAAaA,EACblD,MAAO2E,GACNX,GAAuBM,I,iBCzG5B,MAAMa,GAAa,EACjBC,qBAAAA,EACAC,sBAAAA,MAEA,IAAIC,EAEJ,MAAMjoB,GAAS,UAEbtC,QAAQ,KACN1P,GACD,OACDqQ,EACA8M,YAAY,yBACVS,GACD,IACDlE,EAAG,sBACHC,EAAqB,aACrB4R,EAAY,iBACZjb,GACE0B,GACE,YACJgF,EAAW,UACXyE,IACE,EAAA7C,GAAA,KAEEshB,EAAa,sBAAsBhxB,OAAOoH,GAC1C6pB,EAAc,uBAAuBjxB,OAAOoH,GAC5C8pB,EAAY,SAASlxB,OAAOoH,IAClC,EAAAgM,EAAA,GAAY,KAAKpT,OAAOgxB,EAAY,sDAAsDhxB,QAAgF,QAAvE+wB,EAAwBp3B,SAAS8Z,eAAerM,UAAyD,IAA1B2pB,OAAmC,EAASA,EAAsBvM,azChChM,IyCgCwP,GAAK,IAAIxkB,OAAOgxB,EAAY,iHAAiHhxB,OAAiE,YAA1D,EAAAyH,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,WAA2B2Z,EAA6DA,EAAwB,gCAAkC,GAA/F,mCAAmG,oBAAoBzQ,OAAOkxB,EAAW,uKAAuKlxB,OAAOixB,EAAa,8IAA8IjxB,OAAOyQ,EAAwB,kCAAoC,gCAAiC,oCAErlC,MAAM0gB,GAAgB,SAAQ,IAIK,GAAxB1gB,EAA0BwY,GAA2Bc,GAAV,OAEnD,CAACtZ,EAAuBD,IACrB4gB,EAAW,GAAE,OAAO,OAAS,CACjCjlB,IAAK0kB,EACLp1B,IAAK,WACLpE,GAAI25B,GCzCR,UACExqB,QAAQ,KACN1P,GAEFmd,YAAY,QACV9L,GAEFlB,WAAW,cACTC,GACD,OACDC,EAAM,sBACNsJ,EAAqB,aACrB4R,EAAY,iBACZjb,IAEA,MAAMse,GAAU,EAAAje,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UACtDu6B,GAAa,EAAA5pB,EAAA,GAAYN,EAAQC,EAAkBe,GAQzD,MAAO,CACLP,UAA6B,MAAlBV,OAAwBjO,EAAY,cAC/CqM,MATY,CACZgsB,MAAmB,WAAZ5L,GAAyC,YAAjBrD,EAA6B,YAASppB,EACrEmP,MAAmB,WAAZsd,GAAyC,YAAjBrD,EAA6B,eAAeriB,OArBzD,IAqB+E,YAAS/G,EAC1Gqc,aAA0B,WAAZoQ,EAAuB,QAAKzsB,EAC1Cs4B,YAAaF,EAAW,GACxBG,cAA2B,WAAZ9L,GAAwBjV,GAAyB4gB,EAAW,GAAK,IDoB/EI,CAA2B3oB,IAAU,GAAE,ME3C5C,UACEuE,QAAQ,SACNxH,GAEFoO,YAAY,2BACV6W,EAA0B,oBAC1Bvf,GAEF+a,kBAAkB,qBAChBoL,GAEFzqB,WAAW,cACTC,GACD,OACDC,EAAM,sBACNsJ,EAAqB,iBACrBrJ,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,kBAC/CqM,MAAO,CACLiD,WAAY,IACZ1C,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,EAAkB0jB,GAA8BjlB,GAAY0F,GAC1FiJ,UAAW/D,EAAwBihB,OAAuBz4B,IFoBb04B,CAAiC7oB,GAA0B,YAAjBuZ,EAA6B,GAAE8H,GAAqB,MAAQ,GAAE,KAAU,KAAM,GAAE,OAAQ,CACjLplB,wBAAyB,CACvBC,OAAQ8I,KAERyE,EAAUpV,OAAS,GAAK,GAAE,KAAU,KAAMuX,GAA4B,GAAE,MAAO,KAAM,GAAE,QAAQ,QAAwC5L,KAAWyJ,EAAUhb,KAAIq6B,GAAY,GAAE,QAAQ,OAAS,CACjMn2B,IAAKm2B,IACJ,QAA8B9oB,GAAS,CACxC/D,wBAAyB,CACvBC,OAAQ4sB,WAEHT,GACHU,EAA6B,YAAjBxP,EAA6B,GAAE,MAAO,CACtDlW,IAAK2kB,IACF,GAAE,OAAO,OAAS,CACrB3kB,IAAK2kB,EACLr1B,IAAK,YACLpE,GAAI45B,GGzDR,UACEzqB,QAAQ,KACN1P,EAAI,eACJg7B,GAEFzkB,QAAQ,YACNgY,EAAW,GACXI,EAAE,UACFvY,GACD,aACDiI,EAAY,aACZlI,EACAgH,YAAY,QACV9L,GAEFme,kBAAkB,sBAChByL,GAEF9qB,WAAW,cACTC,GACD,OACDC,EAAM,sBACNsJ,EAAqB,iBACrBrJ,IAEA,MAAMse,GAAU,EAAAje,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UACtD6uB,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBie,GACvDgM,GAAa,EAAA5pB,EAAA,GAAYN,EAAQC,EAAkBe,OAASlP,GAAW,IACvE,EACJ8F,EAAC,EACD2c,EAAC,EACDqE,GACEJ,EAASzS,GACP9E,EAAoB,WAAZsd,GAAwBoM,EAAiBT,EAAW,GAAKA,EAAW,GAAsB,EAAjB1L,EFpCnE,IEuDpB,MAAO,CACL/d,UAA6B,MAAlBV,OAAwBjO,EAAY,eAC/CqM,MApBY,CACZ2C,WAAYwd,EACZ8L,WAAwB,WAAZ7L,GAAwBjV,GAAyB4gB,EAAW,GAAK,GAC7EG,cAAgB/gB,EAAyC,IAAhB4gB,EAAW,GACpDC,MAAmB,WAAZ5L,GAAwBjV,EAAwB,aAAUxX,EACjE6b,SAAU1M,EACVA,MAAAA,EACAqe,OAAoB,WAAZf,GAAwBjV,IAA0BshB,EAAwB,qBAAkB94B,EAEpG4S,SAAU4E,OAAwBxX,EAAY,SAC9C,CAACwX,EAAwB,MAAQ,UAAWA,EAAwB,wCAAwCzQ,QAAO,EAAAyH,EAAA,GAAYN,EAAQC,EAAkB+N,EAAakQ,aAAc,OAAS,wCAAwCrlB,QAAO,EAAAyH,EAAA,GAAYN,EAAQC,EAAkB6F,EAAaoY,aAAc,OAC7SQ,OAAQ,EAER7d,QAAS,OACTgqB,SAAU,OACVnR,WAAY,6BACZ,wBAA2B,2BAA2B7gB,OAAOjB,EAAG,MAAMiB,OAAO0b,EAAG,MAAM1b,OAAO+f,EAAG,YHQ/FkS,CAA4BnpB,IAAU,GAAEsmB,GAAkB,OAC7D,OAAO,GAAE,MI7DX,UACE5oB,QAAQ,KACN1P,GAEFuW,QAAQ,GACNoY,EAAE,YACFJ,EAAW,YACXC,GAEFrR,YAAY,QACV9L,GAEFlB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAMue,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBie,GACvD/f,EAAQ,CACZ2C,WAAYwd,EAEZtd,SAAS,EAAAV,EAAA,GAAYN,EAAQC,EAAkBe,GAAS5Q,KAAI,CAACquB,EAAGnhB,IAAM,GAAGzE,OAAO,CAAC,EAAG,GAAG5H,QAAQqM,IAAM,EAAI,EAAImhB,EAAG,QAAO7nB,KAAK,KAC5HwK,WAAY,KAQd,MAL8D,YAA1D,EAAAd,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,WAA0B6uB,EAAiB,IACzFrgB,EAAMmE,WAAa,GAAGzJ,OAAO2lB,EAAgB,aAAa3lB,OAAOslB,GACjEhgB,EAAM0gB,YAAc1gB,EAAMmE,YAGrB,CACL7B,UAA6B,MAAlBV,OAAwBjO,EAAY,qBAC/CqM,MAAAA,GJ4Bc4sB,CAA+BppB,GAAS,GAAE,MK7D5D,UACEtC,QAAQ,KACN1P,EAAI,eACJovB,GACD,iBACDI,EACArf,WAAW,cACTC,GACD,OACDC,EAAM,sBACNsJ,EAAqB,iBACrBrJ,IAOA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,WAC/CqM,MAPY,CACZub,WAAY,+BACZ/L,SAAoE,YAA1D,EAAArN,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,YAA2B2Z,IAA0B6V,EAAiBE,sBAAwBF,EAAiBJ,eAAiBA,QAAkBjtB,EACxMwtB,OAAQ,SL6CuD0L,CAAsBrpB,GAAS2H,EAAwB,CAACohB,EAAWT,GAAY,CAACA,EAAUS,GAAY,GAAE,MAAO,CAC9KvsB,MAAO,CACL8jB,MAAO,a,4BM7Db,MAAMgJ,IAA4B,SAAW,CAAC1N,EAAGvY,KAC/C,MAAMrD,GAAS,UACT,MACJqjB,EACA3lB,QAAQ,KACN1P,GACD,sBACD2Z,EAAqB,4BACrB2R,EAA2B,QAC3B5T,EACAzF,MAAM,IACJyH,GACD,gBACD6hB,GACEvpB,EAKEwpB,GAAc,SAAYp2B,IAC9BsS,IACAtS,EAAE0iB,mBACD,CAACpQ,KAEFU,KAAMqjB,EACNpjB,OAAQqjB,IACN,EAAAC,GAAA,GAAqB,CACvBjkB,QAAS6jB,EAAkBC,OAAcr5B,EACzCwV,sBAAgC,WAAT3X,EAAoB,EAAI,EAC/C4X,KAAM,EAAC,KAMT,OAAO,GAAE,OAAO,OAAS,CACvBvC,IAAKA,GCtCT,UACE3F,QAAQ,KACN1P,EAAI,mBACJsuB,GACD,OACD/X,EACAJ,cAAc,UACZuY,EAAS,GACTC,EAAE,iBACFU,EAAgB,UAChB3R,EAAS,QACTrM,EAAO,SACPtC,EAAQ,UACRqH,EAAS,WACTkI,GAEFnO,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAMse,GAAU,EAAAje,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UACtD6uB,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBiG,EAAOgY,aAC9D/f,EAAQ,CACZ6C,SAAS,EAAAV,EAAA,GAAYN,EAAQC,EAAkBe,OAASlP,GAAW,GAAM1B,KAAIquB,GAAK,GAAG5lB,OAAO4lB,EAAG,QAAO7nB,KAAK,KAC3GkK,WAAYud,EAAYnY,EAAOoY,GAAKA,EACpChf,aAA0B,WAAZif,EAAuB,OAAO1lB,OAAOolB,EAAoB,OAAOplB,OAAOolB,EAAoB,WAAQnsB,EACjH4M,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,GAAmBvB,GACjDuP,WAAAA,EACArN,MAAOmF,EACPsH,UAAW2R,EAAmB9Y,EAAOmH,UAAYA,EACjD3I,SAAU,SACV6mB,OAAQ,EACR7M,OAAQ,GASV,MANgB,WAAZH,GAAwBC,EAAiB,IAC3CrgB,EAAMylB,aAAe,GAAG/qB,OAAO2lB,EAAgB,aAAa3lB,OAAOqN,EAAOiY,aAC1EhgB,EAAMmE,WAAanE,EAAMylB,aACzBzlB,EAAM0gB,YAAc1gB,EAAMylB,cAGrB,CACLnjB,UAA6B,MAAlBV,OAAwBjO,EAAY,uBAC/CqM,MAAAA,GDNCqtB,CAAiC7pB,IAAU,GAAE,MEvClD,UACEtC,QAAQ,KACN1P,EAAI,eACJovB,GACD,iBACDI,EACArf,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,EAAgB,sBAChBqJ,IAQA,MAAO,CACL7I,UAA6B,MAAlBV,OAAwBjO,EAAY,aAC/CqM,MARY,CACZub,WAAY,+BACZ/L,SAAoE,YAA1D,EAAArN,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,YAA2B2Z,IAA0B6V,EAAiBE,sBAAwBF,EAAiBJ,eAAiBA,QAAkBjtB,EACxMwtB,OAAQ,OACRle,WAAY,MFsByCqqB,CAAwB9pB,GAAS0pB,EAAYD,Q,iBGrCtG,MAAMM,GAAgB,KACpB,MAAM/pB,GAAS,UAEbtC,QAAQ,KACN1P,EAAI,mBACJsuB,GAEF5tB,UAAU,UACRkrB,EAAS,iBACTE,EAAgB,cAChBiC,GACD,OACD1d,EAAM,sBACNsJ,EACApD,QAAQ,GACNoY,GAEFxR,YAAY,mBACVM,EAAkB,6BAClBya,GACD,aACD3M,EAAY,iBACZjb,GACE0B,EACEmoB,EAAc,uBAAuBjxB,OAAOoH,GAC5C/P,EAAK,SAAS2I,OAAOoH,GACrB+E,GAAM,WAEV2mB,QAASC,GACP5mB,EACE8iB,EAAsBD,EAA+BtM,EAAYE,EACvE,IAAIoQ,GAAa,GAEb7rB,EAAO8rB,YAAe5Q,GAAiB5R,GAAkD,SAAxBwe,GAAkCpK,IACrGmO,GAAa,EAAAvrB,EAAA,GAAYN,EAAQC,EAAkB4rB,GAAY,IAIjE,MAAOE,EAAqBC,IAA0B,SAAS,GACzDC,GAA4B,SAAY,KAC5C,GAAIL,EAAY,CACd,MAAM,aACJM,EAAY,aACZC,EAAY,UACZC,EAAS,aACTC,GACET,EACEU,EAAeJ,EAAeC,EAC9BI,EAAmBlS,KAAKmS,KAAKJ,EAAYC,IAAiBF,EAC1Dt2B,EAASy2B,IAAiBC,IAAqBjjB,EAEjDyiB,IAAwBl2B,GAC1Bm2B,EAAuBn2B,MAG1B,CAAC+1B,EAAYtiB,EAAuByiB,IACvCE,KAEA,SAAgB,IACVL,GACFA,EAAWnzB,iBAAiB,SAAUwzB,GAC/B,IAAML,EAAWhR,oBAAoB,SAAUqR,IAIjD,QACN,CAACL,EAAYK,KAChB,EAAAhgB,EAAA,GAAY8f,EAAsB,IAAIlzB,OAAOixB,EAAa,6CAA+C,KAEzG,EAAA7d,EAAA,GAAmC,UAAvBuJ,UAAUiX,UAAiC,WAAT98B,GAAqBsuB,EAAqB,EAAI,CAAC,IAAIplB,OAAO3I,EAAI,iCAAkC,IAAI2I,OAAO3I,EAAI,oCAAqC,IAAI2I,OAAO3I,EAAI,0CAA0C2I,OAAOuU,EAAoB,kBAAmB,IAAIvU,OAAO3I,EAAI,sDAAuD,IAAI2I,OAAO3I,EAAI,+CAA+C2I,OAAOuU,EAAoB,mBAAmBvU,OAAOolB,EAAoB,wBAAwBplB,OAAOylB,EAAI,MAAO,IAAIzlB,OAAO3I,EAAI,sFAAsF0G,KAAK,MAAQ,IAClpB,MAAM81B,GAAY,UACZC,GAAY,UACZhD,GAAwB,UAI9B,OAHA7P,EAA4B4S,EAAUf,QAAS,UAC/C7R,EAA4B6S,EAAUhB,QAAS,UAC/C7R,EAA4B6P,EAAsBgC,QAAS,sBACpD,GAAE,OAAO,OAAS,GC9E3B,UACEtsB,QAAQ,KACN1P,GAEFmQ,WAAW,cACTC,GAEF1P,UAAU,cACRqtB,GACD,aACDxC,EAAY,sBACZ5R,EAAqB,OACrBtJ,EAAM,iBACNC,IAEA,IAAI2pB,EAEJ,MAAMgD,GAAuF,QAAvEhD,EAAwBp3B,SAAS8Z,eAAerM,UAAyD,IAA1B2pB,OAAmC,EAASA,EAAsBsC,eAAiB78B,OAAOu9B,YACzLC,GAAmB7sB,EAAO8sB,UAC1BC,EAAqBF,EAAkBD,EAAcA,EAAcC,EACnEG,EAAoBtP,GAAiBxC,EAAe,GAAK,EAC/D,MAAO,CACLza,UAA6B,MAAlBV,OAAwBjO,EAAY,cAC/CqM,MAAO,CACLuG,SAAU,WACVooB,WAAW,EAAAxsB,EAAA,GAAYN,EAAQC,EAAkB2sB,GAAwB,WAATj9B,EAAoB,EAAI,IAAMq9B,EAAmB1jB,EAAwBsjB,EAAcI,EAAoBD,EAAqBC,GAChMpI,SAAU,SDoDeqI,CAAyBtrB,GAAS,CAC7DqD,IAAKA,EACL9U,GAAIA,IACF27B,GAAc,GAAE,KAAU,KAAM,GAAEvO,GAAc,CAClDtY,IAAK0nB,IACH,GAAE,MEnFR,UACErtB,QAAQ,KACN1P,GACD,OACDuW,EACA8H,cAAc,YACZkQ,EAAW,YACXC,GAEFre,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAMitB,GAAuB,EAAA5sB,EAAA,GAAYN,EAAQC,EAAkBiG,EAAOgY,aACpE/f,EAAQ,CACZqC,QAAQ,EAAAF,EAAA,GAAYN,EAAQC,GAAmBie,GAC/Cpd,WAAYqd,EACZzZ,SAAU,SACVia,IAAK,gCACLD,OAAQ,GAQV,MAL8D,YAA1D,EAAApe,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,WAA0Bu9B,EAAuB,IAC/F/uB,EAAMmE,WAAa,GAAGzJ,OAAOq0B,EAAsB,aAAar0B,OAAOqN,EAAOiY,aAC9EhgB,EAAM0gB,YAAc1gB,EAAMmE,YAGrB,CACL7B,UAA6B,MAAlBV,OAAwBjO,EAAY,uBAC/CqM,MAAAA,GFoDWgvB,CAAiCxrB,KAAW,GAAE8nB,GAAY,CACrEE,sBAAuBA,IACrB,GAAE,MGrFR,UACEtqB,QAAQ,KACN1P,GACD,OACDuW,EACAJ,cAAc,YACZoY,EAAW,YACXC,GAEFre,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAMue,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBiG,EAAOgY,aAC9D/f,EAAQ,CACZqC,QAAQ,EAAAF,EAAA,GAAYN,EAAQC,GAAmBie,GAC/Cpd,WAAYqd,EACZzZ,SAAU,SACV6mB,OAAQ,iCAQV,MAL8D,YAA1D,EAAAjrB,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,WAA0B6uB,EAAiB,IACzFrgB,EAAMmE,WAAa,GAAGzJ,OAAO2lB,EAAgB,aAAa3lB,OAAOqN,EAAOiY,aACxEhgB,EAAM0gB,YAAc1gB,EAAMmE,YAGrB,CACL7B,UAA6B,MAAlBV,OAAwBjO,EAAY,uBAC/CqM,MAAAA,GHuDWivB,CAAiCzrB,IAAU,GAAEspB,GAAc,CACtEjmB,IAAK2nB,M,iBInFT,MAAMU,GAAwB,KAC5B,MAAM1rB,GAAS,UAEbtC,QAAQ,oBACN4Z,EAAmB,qBACnBC,GACD,iBACDoU,GACE3rB,GACE,eACJ2V,EAAc,gBACdC,GACEV,GAAAA,CAAqBlV,EAAOtC,SACzBkuB,EAAkBC,GAA4B5V,EAAuBN,EAAgB2B,IACrFwU,EAAmBC,GAA6B9V,EAA2C,SAApBL,EAA6B,UAAYA,EAAqC,SAApBA,EAA6B,EAAI2B,GACzK,OAAO,GAAEG,GAAa,OAAS,CAC7BnC,YAAaqW,EACbtU,oBAAqBuU,EACrBpW,aAAcqW,EACdvU,qBAAsBwU,EACtB1U,UAAWsU,GCtBf,UACEjuB,QAAQ,KACN1P,EAAI,eACJg7B,EAAc,eACdgD,EAAc,aACdC,EAAY,eACZC,EAAc,mBACd5P,GAEF/X,QAAQ,YACNgY,EAAW,YACXC,EAAW,UACX9Q,EAAS,UACTtH,EAAS,kBACTE,EAAiB,WACjBlC,EAAU,WACVkK,EAAU,iBACV6f,EAAgB,iBAChBC,EAAgB,iBAChBC,EAAgB,oBAChBC,EAAmB,sBACnBC,EAAqB,eACrBC,EAAc,oBACdC,GACD,iBACDjP,EACArf,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,EAAgB,sBAChBqJ,IAEA,MACE+kB,UAAWC,GACTtuB,EACEue,GAAU,EAAAje,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UACtD6uB,GAAiB,EAAAle,EAAA,GAAYN,EAAQC,EAAkBie,GACvDjd,EAAoB,WAAZsd,IAAyBjV,IAA0B6V,EAAiByL,sBAAwBzL,EAAiBwL,eAAiBA,GAAkB,OACxJxsB,EAAQ,CACZ0b,cAAe,MACfH,WAAY,+BACZ/L,SAAU1M,EACVoM,UAAAA,EACApM,MAAAA,EACA2jB,SAAU,SACV2J,WAAW,EAAAjuB,EAAA,GAAYN,EAAQC,EAA8B,WAAZse,EAA0C,QAAnBsP,EAA2B,aAAe,gBAAa/7B,EAA+B,WAApBw8B,EAA+B,WAAiC,QAApBA,EAA4B,aAAe,UACjOvqB,WAAYkC,OAAoBnU,EAAYiS,EAC5CkK,WAAAA,EACArN,MAAOmF,EACPuZ,OAAoB,WAAZf,EAAuB,QAAKzsB,EACpCwN,aAA0B,WAAZif,GAAwBN,OAAqBnsB,EAC3D08B,UAAWV,EAAmB,GAAGj1B,OAAOk1B,EAAkB,OAAOl1B,OAAOm1B,EAAkB,OAAOn1B,OAAOo1B,EAAqB,OAAOp1B,OAAOq1B,EAAuB,OAAOr1B,OAAOggB,EAAcsV,EAAgBC,SAAwBt8B,EACtO,CAAa,WAAZysB,EAA0C,QAAnBsP,EAA2B,eAAiB,YAAc,UAAuB,WAAZtP,GAAuBC,EAAiB,EAAI,GAAG3lB,OAAO2lB,EAAgB,aAAa3lB,OAAOslB,QAA2BrsB,GAOpN,MAJgB,WAAZysB,GAA2C,iBAAnBoP,IAC1BxvB,EAAMmhB,OAASsO,EAAax9B,KAAIkN,GAAK,GAAGzE,OAAOyE,EAAG,QAAO1G,KAAK,MAGzD,CACL6J,UAA6B,MAAlBV,OAAwBjO,EAAY,YAC/CqM,MAAAA,GDvCCswB,CAA8B9sB,IAAU,GAAE+pB,GAAe,Q,iBErB9D,MAAMgD,GAAS,KACb,MAAM/sB,GAAS,UAEbtC,QAAQ,QACNsvB,EAAO,YACPC,GAEF9uB,WAAW,cACTC,EAAa,IACbmM,GACD,QACDhM,EAAO,iBACPotB,EAAgB,aAChBpS,EAAY,YACZ2T,EAAW,kBACXC,EAAiB,iBACjB7uB,EAAgB,sBAChBqJ,GACE3H,EACEotB,EAAiBtY,EAAiB9U,GAClCqtB,EAAO9uB,IAAY6uB,KAAoB7T,GAC7C,EAAAjP,EAAA,GAAYlM,EAAgBmM,EAAM,KAClC,EAAAD,EAAA,GACA,IAAIpT,OAAOoH,EAAkB,OAAOpH,OAAOoH,EAAkB,kHCrB/D,SAAsCC,IAC7B,SAAU,KACf,MAAM,QACJ+uB,EAAO,MACP9wB,GACE3L,SAAS0I,UAEuBpJ,IAAhCm9B,EAAQC,sBACVD,EAAQC,oBAAsB/wB,EAAMymB,UAGtCzmB,EAAMymB,SAAW1kB,EAAU,SAAW+uB,EAAQC,oBAC9C18B,SAAS0I,KAAK6B,cAAcoB,MAAMymB,SAAWzmB,EAAMymB,WAClD,CAAC1kB,IDcJivB,CAA6BH,GAAQL,GAAWrB,GAEhD,MAAO,CAAE8B,IAAiB,QAAS,GAE7BC,EAAa,IAAMD,GAAe,IAAIlL,MAgB5C,IAdA,SAAgB,KACd70B,OAAOoJ,iBAAiB,SAAU42B,GAC3B,IAAMhgC,OAAOurB,oBAAoB,SAAUyU,KACjD,KACH,SAAgB,MACd,EAAAvzB,EAAA,GAAoB,OACnB,CAACwxB,EAAkBhkB,IAEtBwlB,IAAqB,SAAU,KAC7BA,EAAkBC,KACjB,CAACA,IE/CN,WACE,MAAMptB,GAAS,UACT,QACJpR,EAAO,OACPd,EAAM,IACN4Z,EAAG,aACH6R,EAAY,mBACZkI,EAAkB,aAClBkM,GACE3tB,GAEG4tB,EAAiBC,IAAsB,QAAS,CACrDj/B,QAAAA,EACAd,OAAAA,EACA4Z,IAAAA,KAGF,SAAU,KACH6R,GACHsU,EAAmB,CACjBj/B,QAAAA,EACAd,OAAAA,EACA4Z,IAAAA,MAGH,CAAC9Y,EAASd,EAAQ4Z,EAAK6R,KAC1B,SAAU,KAgBR,GAAqB,YAAjBA,EAEFsU,EAAmB,CACjBj/B,QAAAA,EACAd,OAAAA,EACA4Z,IAAAA,IApBJ1Y,iBACE,MAAMkF,QAAey5B,IAErB,GAAIz5B,EAAOG,OAAQ,CACjB,OAAO,OACLvG,EAAM,SACNY,EAAQ,IACRgZ,IACGxT,EACLutB,EAAmB3zB,EAAQY,EAAUgZ,QAErC+Z,EAAmB,GAAI,IAWzB3S,OACK,CAEL,MAAM,OACJhhB,EACAc,SACEd,OAAQggC,GACT,IACDpmB,GACEkmB,EACJnM,MAAAA,GAAwEA,EAAmB3zB,EAAQggC,EAAepmB,MAEnH,CAAC6R,IFbJwU,GtDpCF,WACE,MAAM,WACJC,EAAU,YACVC,EAAW,cACXC,IACE,UACJ,SAAU,KACR,MAAMC,EAAa,CAACngC,EAAMogC,EAAgBh7B,KACxC,GAAK46B,EAKL,OAAQhgC,GACN,IAAK,SACHggC,EAAW56B,GACX,MAEF,IAAK,UACH66B,EAAY76B,GACZ,MAEF,IAAK,SACH86B,EAAcE,EAAgBh7B,KAQ9Bi7B,EAA6Bj7B,IACjC,IAAK46B,EAEH,OAIF,MAAMhzB,EAAU5H,EAAEmN,QAClB,EAAAxF,EAAA,GAAQC,EAASgb,GAAc9e,QAAO,EAAAmW,EAAA,GAAiBrS,EAASgb,GAAgB,CAAChb,GAAW,IAAI6e,SAAQyU,IACtGH,EAAWG,EAAOC,aAAa,QAAQv5B,MAAM,GAAIs5B,EAAOC,aAAa,wBAAyBn7B,OAG5F,EAAAia,EAAA,GAAiBrS,EAAS,iBAC5BmzB,EAAWnzB,EAAQuzB,aAAa,QAAQv5B,MAAM,GAAIgG,EAAQuzB,aAAa,wBAAyBn7B,IAI9Fo7B,EAA0B,KAC9B,MAAM,KACJC,GACE/gC,OAAOkiB,SAEP6e,EAAK/e,WAAW,cAClBye,EAAWM,EAAKC,UAAU,QAAIv+B,OAAWA,IAM7C,OAFAzC,OAAOoJ,iBAAiB,aAAc03B,GACtC39B,SAASiG,iBAAiB,QAASu3B,GAA4B,GACxD,KACL3gC,OAAOurB,oBAAoB,aAAcuV,GACzC39B,SAASooB,oBAAoB,QAASoV,GAA4B,MAEnE,CAACL,EAAYC,EAAaC,IsD3B7BS,IAEKtB,EACH,OAAO,KAGT,MAAMtzB,EAAU,GAAE,MGxDpB,UACE2D,QAAQ,KACN1P,EAAI,eACJg+B,GAEF7tB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAM9B,EAAQ,CACZ0C,QAAS,OACTI,MAAO,OACPT,OAAQ,QAQV,MAL8D,YAA1D,EAAAF,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,YAC9CwO,EAAMqhB,WAAamO,EAAetc,WAAW,OAAS,aAAesc,EAAetc,WAAW,UAAY,WAAa,SACxHlT,EAAMohB,eAAiBoO,EAAevZ,SAAS,UAAY,SAAWuZ,EAAevZ,SAAS,QAAU,aAAe,YAGlH,CACL3T,UAAW,oBAAoB5H,OAAyB,MAAlBkH,EAAwB,GAAK,aACnE5B,MAAAA,GHgCuBoyB,CAAkC5uB,GAAS,GAAE0rB,GAAuB,OAC7F,OAAOwB,EAAcnzB,EAAU,GAAE,OAAO,OAAS,CAC/CxL,GAAI+P,GItDR,UACEZ,QAAQ,KACN1P,EAAI,QACJg/B,EAAO,UACP6B,EAAS,eACTC,GAEFvqB,QAAQ,SACNxH,GAEFoB,WAAW,cACTC,GACD,OACDC,EAAM,iBACNC,IAEA,MAAO,CACLQ,UAA6B,MAAlBV,OAAwBjO,EAAY,yBAAyB+G,QAAO,EAAAyH,EAAA,GAAYN,EAAQC,EAAkBtQ,EAAM,UAAW,KAAKkJ,OAAO81B,EAAU,GAAK,uBACjKxwB,MAAO,CACL2C,WAAY6tB,EAAU9V,EAAc2X,EAAWC,GAAkB,OACjE/rB,SAAU,QACVia,IAAK,EACL+R,KAAM,EACNC,MAAO,EACPpF,OAAQ,EACR7M,OAAQ,OACR7E,cAAe8U,EAAU,MAAQ,OACjCjwB,UAAU,EAAA4B,EAAA,GAAYN,EAAQC,GAAmBvB,GACjD3O,OAAQ,OACR+8B,UAAW,UJ0BZ8D,CAAyBjvB,IAAUjG,IK5D3Bm1B,GAAyB,CACpCve,KAAM,WACNvB,OAAQ,S,4BCaV,MAAM+f,GAAgB,EACpBvqB,YAAAA,MAEA,MACEwqB,uBAAuB,OACrB1xB,EAAM,SACNhP,EAAQ,MACRgb,EAAK,OACLnF,EAAM,aACN8H,EAAY,WACZlB,EAAU,aACVhH,EAAY,MACZmD,EAAK,iBACLkW,EAAgB,WAChByH,EAAU,MACV/1B,EAAK,gBACL0Y,EAAe,UACfzJ,EAAS,OACTE,GACD,OACD4W,EAAM,iBACN3W,EAAgB,kBAChB8L,EAAiB,+BACjB5C,EAA8B,eAC9BM,EAAc,MACdub,EAAK,cACLpc,EAAa,YACbE,EAAW,qBACXE,EAAoB,IACpBK,EAAG,YACH2nB,EAAW,OACXvhC,EAAM,sBACNwhC,EAAqB,WACrBC,EAAU,UACV1qB,EAAS,sCACT2qB,EAAqC,YACrCrlB,IACE,EAAAslB,EAAA,KACEC,IAAe,EAAA/gC,EAAA,GAAgB2gC,GAE/BK,GC/CR,SAAgB3b,EAAQtM,EAAKkoB,GAC3B,OAAO,SAAQ,QAqCZ,CAAC5b,EAAQtM,EAAKkoB,IDSCC,CAAOxM,EAAO3b,EAAK2nB,IAE/B,cACJS,IEpDJ,SAAgC9C,GAC9B,MAAM+C,EAA6B7a,IAC7B4a,GAAgB,SAAY,EAChCpyB,OAAAA,GACC2vB,KACD,MAAM,oBACJ/V,EAAmB,qBACnBC,GACE7Z,GACE,eACJiY,EAAc,gBACdC,GACEma,EAA2BryB,GAGzBsyB,EAAc3C,EAA0B,SAAnB1X,EAFE,EAEiD2B,EAA0C,SAApB1B,EAFvE,EAE2H2B,EAExJyY,EAAc,IAAMhD,EAAQxwB,MAAMub,WAAa,cAAc7gB,OAAO84B,EAAa,OACjFhD,EAAQxwB,MAAM2C,WAAa,cAEvBkuB,GAEF77B,YAAW,KACTw7B,EAAQxwB,MAAM0C,QAAU,UACvB,GACH1N,YAAW,KACT,MAAMmrB,EAAKqQ,EAAQuB,aAAa,WAChCvB,EAAQxwB,MAAM2C,WAAawd,EAAKA,EAAGhoB,MAAM,KAAK,GAAGs7B,OAAOh5B,QAAQ,IAAK,IAAM,gBAC1E,MAEHzF,YAAW,KACTw7B,EAAQxwB,MAAM0C,QAAU,SACvB8wB,GAGL,MAAMrE,EAAmB,CACvBA,iBAAkB0B,GAEpB,OAAOA,EAAO,CACZ9uB,SAAS,KACNotB,GACDA,IACH,CAACoE,IACJ,MAAO,CACL/C,QAAAA,EACA8C,cAAAA,GFQEI,CAAuBr/B,SAAS8Z,eAAerM,KAC7C,YACJ2vB,GAAW,WACXD,GAAU,cACVE,GAAa,kBACbiC,GAAiB,4BACjB7W,GAA2B,mBAC3BF,GAAkB,oBAClBC,GAAmB,QACnB3T,GAAO,mBACP+b,I7D1DJ,UAAwC,cACtCqO,EAAa,cACb5B,IAEA,MAAMkC,EAAyB,CAACC,EAAiBriC,IAASqiC,GAAgB75B,IACjE,IAAKA,EACV+iB,aAAcvrB,EACd2Z,uBAAuB,EACvB2oB,qBAA+B,WAATtiC,GAAoB,OACvC8hC,EAAct5B,GAAO,OAI5B,MAAO,CACLy3B,YAAa,CAACoC,KAAoBE,KAChCH,EAAuBC,EAAiB,WACxCxa,EAAY0a,EAAK,KAEnBvC,WAAY,CAACqC,KAAoBE,KAC/BH,EAAuBC,EAAiB,UACxCxa,EAAY0a,EAAK,KAEnBrC,cAAe,CAACmC,KAAoBE,KAClC,MAAOnC,EAAgBh7B,GAAKm9B,EAC5BF,GAAgB75B,IACd03B,EAAc13B,GAAOO,MAAK,KACxBq3B,GAAkBoC,MAAMpC,GAGxB58B,YAAW,IAAM9D,OAAOkiB,SAAS6gB,UAAU,QAGtCj6B,KAETqf,EAAYziB,IAEd+8B,kBAAmB,CAACE,KAAoBE,KACtC,MAAOG,GAAaH,EACpBF,GAAgB75B,IAAS,IAAMA,EAC7Bm6B,YAAaD,OAGjBpX,4BAA6B,CAAC+W,KAAoBE,KAChD,MAAOK,GAAUL,EACjBF,GAAgB75B,IAAS,IAAMA,EAC7BmR,sBAAuBipB,OAG3BxX,mBAAoB,CAACiX,KAAoBE,KACvC,MAAOhiC,EAAIiQ,GAAW+xB,EACtBF,GAAgB75B,IACd,MAAMq6B,EAAap7B,KAAKC,MAAMD,KAAKub,UAAUxa,EAAM5H,UAUnD,OARI4P,EACFqyB,EAAW/iC,OAAOS,GAAMiI,EAAM1I,OAAOM,QAAOc,GAASA,EAAMX,KAAOA,IAAI,GAAGC,MAAMC,KAAI,EACjFF,GAAAA,KACIA,WAECsiC,EAAW/iC,OAAOS,GAGpB,IAAKiI,EACV5H,QAASiiC,EACT7J,qBAAqB,OAI3B3N,oBAAqB,CAACgX,KAAoBE,KACxC,MAAOO,EAASviC,EAAIiQ,GAAW+xB,EAC/BF,GAAgB75B,IACd,MAAMq6B,EAAap7B,KAAKC,MAAMD,KAAKub,UAAUxa,EAAM5H,UAE9CiiC,EAAW/iC,OAAOgjC,KACrBD,EAAW/iC,OAAOgjC,GAAW,IAG/B,MAAMC,EAAYF,EAAW/iC,OAAOgjC,GAC9BxhC,EAAUyhC,EAAUzhC,QAAQf,GAalC,OAXIiQ,IAAwB,IAAblP,EACbyhC,EAAUrgC,KAAKnC,IACLiQ,GAAWlP,GAAW,GAChCyhC,EAAUrqB,OAAOpX,EAAS,GAIvByhC,EAAU18B,eACNw8B,EAAW/iC,OAAOgjC,GAGpB,IAAKt6B,EACV5H,QAASiiC,OAIfnrB,QAAS2qB,IACPA,GAAgB75B,IACP,IAAKA,KACPs5B,EAAct5B,GAAO,GAExB85B,sBAAsB,OAI5B7O,mBAAoB,CAAC4O,KAAoBE,KACvC,MAAOziC,EAAQggC,EAAepmB,GAAO6oB,EACrCF,GAAgB75B,IACd,MAAMw6B,EAAoB,CAExB3N,QAAS3b,EACTA,IAAK,MASP,MAAO,IAAKlR,EACV1I,OAAAA,EACAc,QAAS,IAAK4H,EAAM5H,QAClBd,OAAQggC,MAEPkD,Q6DjEPC,CAA+B,CACjCnB,cAAAA,GACA5B,cAAe,EACbxmB,IAAAA,MAWO,EAAAwpB,EAAA,GAAa,CAClBtiC,QAAS,CACPd,QAAQ,EAAAqjC,EAAA,KAA0Bn9B,oBAAmB,IAEvDwnB,cAZoB,mBAapB4V,eAXEA,OAgBDC,GAAchB,KAAmB,QAAS,CAC/C3yB,OAAQ,IAAKA,GAEbhP,SAAU,IAAKA,GAEfgb,MAAO,IAAKA,GAEZnF,OAAQ,IAAKA,GAEb8H,aAAc,IAAKA,GAEnBlB,WAAY,IAAKA,GAEjBhH,aAAc,IAAKA,GAEnBmD,MAAO,IAAKA,GAEZkW,iBAAkB,IAAKA,GAEvByH,WAAY,IAAKA,GAEjB/1B,MAAO,IAAKA,GAEZ0Y,gBAAiB,IAAKA,GAEtBzJ,UAAW,IAAKA,GAEhBE,OAAQ,IAAKA,GAEb4oB,iBAAkB,GAAE,KAAwB,MAC5C3oB,iBAAAA,EACA8L,kBAAAA,EACAD,YAAAA,EACA3C,+BAAAA,EACAyN,OAAAA,EACAoO,MAAAA,EACAniB,YAAa+F,EACbC,UAAWC,EACXC,mBAAoBC,EACpBK,IAAKioB,GACLgB,YAAa,SACb7iC,OAAAA,EACAga,eAAAA,EACAlD,YAAAA,EACArG,SAAS,EACTotB,kBAAkB,EAClBuB,aAAa,EACbvN,4BAA4B,EAC5BhY,uBAAuB,EACvB1H,KAAMsvB,EACNvnB,qBAAsBwnB,EACtB3qB,UAAAA,EACAjW,QAAS,CACPd,OAAQ,KAAuB,IAAjB4hC,GAAyB,GAAKA,GAAa9gC,YAEpD,EAAAuiC,EAAA,KAA0Bn9B,oBAAoC,IAAjB07B,MAGpD1I,qBAAqB,EACrB7N,OAAQ,CAACmY,EAAkB9V,KACzB6U,IAAgB75B,IAUd,MAAM+6B,GAAiB,EAAAL,EAAA,GAAa,CAClCtiC,QAAS4H,EAAM5H,QACf0iC,iBAAAA,EACA9V,cAAAA,EACA4V,eAVEA,IAaJ,OAAI56B,EAAM85B,sBACRiB,EAAex6B,MAAK,IACpBvF,YAAW,IAAM9D,OAAOkiB,SAAS6gB,UAAUj6B,EAAM85B,sBAEjD,OAEO95B,GAEA,IAAKA,KACPs5B,GAAct5B,GAAO,QAKhCm3B,aAAc3+B,UACZ,MAAM,cACJoiB,EAAa,SACbd,EAAQ,UACRmB,EAAS,UACTJ,IACE,EAAAmgB,EAAA,KACEhQ,QAAgB,EAAA7R,EAAA,GAAc,CAClCC,SAAUsf,GACVz/B,QAAS,CACP2hB,cAAAA,EACAd,SAAAA,EACAmB,UAAAA,EACAJ,UAAAA,GAEFpB,mBAAoB,CAACqf,GACrBnf,eAAe,IAOjB,OALAkgB,IAAgB75B,IACP,IAAKA,EACVgrB,QAAAA,MAGGA,GAGT2O,kBAAmBO,GAAaP,GAAkBE,GAAiBK,GACnEpX,4BAA6BsX,GAAUtX,GAA4B+W,GAAiBO,GACpFxX,mBAAoB,CAAC7qB,EAAIiQ,IAAY4a,GAAmBiX,GAAiB9hC,EAAIiQ,GAC7E6a,oBAAqB,CAACyX,EAASviC,EAAIiQ,IAAY6a,GAAoBgX,GAAiBS,EAASviC,EAAIiQ,GACjGkH,QAAS,IAAMA,GAAQ2qB,IACvB5O,mBAAoB,CAAC3zB,EAAQggC,EAAepmB,IAAQ+Z,GAAmB4O,GAAiBviC,EAAQggC,EAAepmB,GAC/GumB,YAAa76B,GAAK66B,GAAYoC,GAAiBj9B,GAC/C46B,WAAY56B,GAAK46B,GAAWqC,GAAiBj9B,GAC7C86B,cAAe,CAACE,EAAgBh7B,IAAM86B,GAAcmC,GAAiBjC,EAAgBh7B,MG/MzF,SAAqC4M,EAAQqwB,EAAiBP,IAC5D,SAAU,KAER,ICVO,EAAAL,EAAA,KAA4BgC,mBDWjC,OAGF,MAAM,cACJrgB,EAAa,SACbd,EAAQ,UACRmB,EAAS,UACTJ,EACAqgB,QAAQ,mBACNC,EAAkB,qBAClBC,EAAoB,uBACpBC,EAAsB,oBACtBC,KAEA,EAAAN,EAAA,MACE,OACJrY,GACEnZ,EE5B4B+xB,IAAAA,ECCWC,ECJRC,GCEvCjjC,eAAkCS,EAASyiC,GACzC,IAAI7E,GAAO,EACX,MAAM8E,EAAa1iC,aAAmB,IAAuBA,EAAQ6E,aAAe7E,GAC9E,SACJ2iC,EAAQ,KACR7B,EAAI,eACJ8B,EAAc,mBACdC,GACEJ,EAEJ,IAAK,MAAMK,KAAWH,EAAU,CAC9B,MAAMl+B,QAAeq+B,EAAQJ,KAAe5B,GAE5C,IAAe,IAAXr8B,EAAkB,CACpBm5B,GAAO,EAEP,MAAMmF,EAAmBxkC,IAAQ,EAAAwB,EAAA,GAAM,CACrCxB,KAAAA,KACGmkC,IAGU,QAAXj+B,EACFs+B,EAAiB,OACG,eAAXt+B,EACTs+B,EAAiB,cACG,QAAXt+B,EACTm+B,GAAe,IAAMG,EAAiB,gBAClB,YAAXt+B,GAETs+B,EAAiB,WAGnB,OAIAnF,IACFiF,UAEM,EAAA5iC,EAAA,KACNmB,SAASC,cAAc,IAAIC,YAAY,IAAgC,CACrEC,OAAQ,OLXVyhC,EAAmB,EAAAtB,EAAA,KAA2B,CAC5CiB,SAAU,CAAC3e,GIjCsBwe,EJiC4C,CAAC,iBIjC/BjjC,UACnD,MAAM,UACJ8P,GACEjO,SAAS0I,KACb,OAAO04B,EAAW7jC,QAAOkS,GAAKxB,EAAUxP,QAAQgR,IAAM,IAAGjM,OAAS,GAAI,YJ6B+Byf,GAAiC,KAChI,MAAM,YACJ4H,EAAW,aACX6O,GACE15B,SAAS8J,gBACb,OAAO,EAAAgV,EAAA,GAAc,CACnBC,SAAUiF,EACVplB,QAAS,CACP2hB,cAAAA,EACAd,SAAAA,EACAmB,UAAAA,EACAJ,UAAAA,GAEFlB,eAAe,EACfN,QAAS,CACP6iB,cAAehX,EACfiX,eAAgBpI,GAElBxa,OAAQ,CACN6iB,iBAAkBllC,OAAOkiB,SAAS9V,UAGrC,IAAO+3B,GAAyB7iC,MAAO4sB,EAAG5b,MAAW8U,EAAiB9U,IAAU,WGnD1CgyB,EHmDoGJ,EGnD9E5iC,OACnEpB,mBAAAA,MAEA,MAAM8hC,GAAe,EAAA/gC,EAAA,GAAgBf,GACrC,SAAOokC,IAAuC,IAAjBtC,KAAyB/b,IACtD,MAAQ,cDN0Boe,IFoDkKJ,GAAqB,MEpDxK3iC,OACjDpB,mBAAAA,QAE4C,KAAxC,EAAAe,EAAA,GAAgBf,KAAkCmkC,MAI/Cpe,KAAcoe,GF6CoN1d,EAA+Byd,GAAsBld,GAC1R2b,KAAM,CAACvwB,GACPqyB,eAAgB,KACdlZ,GAAO,EAAM,SAEfmZ,mBAAoB,IAAMjC,GAAgB75B,IACjC,IAAKA,EAEV5H,QAAS,CACPd,QAAQ,EAAAqjC,EAAA,KAA0Bn9B,yBAEjC87B,EAAct5B,GAAO,WAI7B,KHqJHq8B,CAA4BxB,GAAchB,GAAiBP,IS3N7D,SAAkCO,EAAiBf,IACjD,SAAU,KACR,MAAMwD,EAAW,KACf,MAAMlkC,GAAU,EAAAD,EAAA,GAAgB2gC,GAChC1gC,GAAWyhC,GAAgB75B,IAAS,IAAMA,EACxC5H,QAAS,CACPd,OAAQc,EAAQA,cAMtB,OADAiC,SAASiG,iBAAiB,IAAkBg8B,GACrC,KACLjiC,SAASooB,oBAAoB,IAAkB6Z,MAEhD,IT6MHC,CAAyB1C,GAAiBf,GAC1C,MAAM0D,GAAgB,cACtB,OAAO,GAAEA,GAAcC,SAAU,CAC/BnzB,MAAOuxB,IACN,GAAEtE,GAAQ,Q,qCUhOf/9B,eAAekkC,GAAWC,EAAWC,EAAiB,IAAKC,EAAW,GACpE,IAAI13B,EAAI,EAER,MAAQw3B,KAAa,CACnB,GAAIE,EAAW,GAAK13B,GAAK03B,EACvB,aAGI,IAAIpjC,SAAQgG,GAAKzE,WAAWyE,EAAGm9B,KACrCz3B,IAGF,OAAOw3B,ICbT,IAAIG,GAAuB,ECDpB,MAAMC,GAAiC,CAC5C5iB,KAAM,iBACNvB,OAAQ,Y,qCCGV,SAASokB,GAAYC,EAAUnhC,EAI/ByP,GAEE,MAAMkR,EAAQ,IACR,OACJnlB,EAAM,aACNmmB,IACE,EAAAwb,EAAA,KACEiE,EAAa5lC,EAAOW,KAAI,EAC5BD,MAAAA,KACIA,IAAO4Z,OAEb,IAAK,MAAM9B,KAAOotB,EAChB,GAAwB,iBAAbD,EACLntB,EAAI/X,KAAOklC,GACbxgB,EAAMviB,KAAK,CACT0G,OAAQkP,EACRqtB,UAAW,SAGV,CACL,MAAM,qBACJxhC,GACEmU,EAEJ,GAAInU,MAAAA,GAAoEA,EAAqBkC,OAE3F,IAAK,MAAMu/B,KAAMzhC,EAAsB,CACrC,MAAMmhB,GAAS,EAAA7gB,GAAA,GAA8BmhC,EAAGthC,MAEhD,GAAIshC,EAAG5lC,OAASylC,IAAaG,EAAGthC,OAASA,GAAQA,EAAKse,MAAM0C,MAAasgB,EAAG7xB,OAASA,GAAiB,MAATA,GAAe,CAC1GkR,EAAMviB,KAAK,CACT0G,OAAQkP,EAIRqtB,UAAWxhC,EAAqBkC,OAASlC,EAAqB7C,QAAQskC,GAAM,IAE9E,QAOV,MAAMC,GAAU,EAAAllC,EAAA,IAAgB,EAAA8gC,EAAA,KAA4BH,uBAE5D,GAAIrc,EAAM5e,OAAQ,CAChB,MAAMy/B,EAAiB7gB,EAAM2M,MAAK,EAChC+T,UAAWI,IAEXJ,UAAW1c,KACP8c,EAAI9c,IAAG,GAAG7f,OAEhB,OAAIy8B,GAAW5f,IAAiB4f,EAAQz+B,SACbxC,OAAO0V,OAAOurB,EAAQjlC,SAASwZ,OAEnC9Y,QAAQwkC,EAAevlC,KAAO,EAC1C,CACL6I,OAAQ08B,EACRE,cAAc,EACdC,aAAa,GAGR,CACL78B,OAAQ08B,EACRE,cAAc,EACdC,aAAa,GAIV,CACL78B,OAAQ08B,EACRE,cAAc,EACdC,aAAa,GAIjB,MAAO,CACL78B,OAAQ,KACR48B,eAAgBH,EAChBI,aAAa,GC7DnB,SAASrlC,MAAW2hC,GAClB,OAAO,IAAItgC,SAAQ,CAACC,EAAS0e,KAC3B,MACExX,OAAQ88B,EAAW,aACnBF,EAAY,YACZC,GACET,MAAejD,GAEf2D,EACEF,EACEC,EACF/jC,IAEA0e,KAIF/d,SAASiG,iBAAiB,MAAc9H,OACtCgC,QACE7B,QAAAA,OAGEA,IAAY+kC,GACdhkC,OAIJW,SAASiG,iBAAiB,MAAe9H,OACvCgC,QACE7B,QAAAA,OAGEA,IAAY+kC,GACdtlB,QAKN1e,OC7DN,SAASikC,GAAWhiC,GAClB,OAAOlC,QAAQgB,IAAIkB,EAAqB1D,KAAI8hC,GAAQ3hC,MAAW2hC,M,kDCQjE,KAA0B,SAAqB,sBLP7C1/B,SAASiG,iBAAiB,MAAc9H,OACtCgC,QACE7B,SACEjC,SAAAA,EACAoD,UAAAA,EACAD,aAAAA,QAIJ,OAAQnD,GACN,IAAK,2BACH,CACE,MAAM,qBACJknC,GACE/jC,GAAgB,GAEpB,GAAI+jC,EAAsB,CACxB,MAAMp5B,EAAUnK,SAAS8Z,eAAeypB,GAExC,GAAIp5B,EAAS,CACX,MAAMq5B,EAAUf,GAChBA,MACA,EAAA3iC,GAAA,GAAiBL,EAAWD,EAAc2K,GAE1C,MAAMs5B,QAAoBpB,IAAW,IAAMriC,SAASoJ,cAAc,mCAAsC/C,OAAOm9B,EAAS,QAAS,IAAK,IAElIC,GACFt5B,EAAQ8P,YAAYwpB,IAK1B,MAGJ,IAAK,cAEDzjC,SAASiG,iBAAiB,MAAwB9H,OAChDgC,QACEgK,QAAAA,OAGF,MAAM,eACJu5B,EAAc,OACdC,GACE9mC,OAEA8mC,GAAUx5B,EAAQyS,QAAQ,eAAiB8mB,UACvCrB,IAAW,IAAMxlC,OAAO+mC,SAC9BF,EAAeC,EAAOx5B,GAASszB,kBM7C7C,WACE,MAAMoG,GAAQ,EAAAjF,EAAA,MACR,MACJpM,GACEqR,EDCNC,IACA,EAAAjlC,EAAA,IAAM,KACJ,MAAM,iBACJ4O,IACE,EAAAmxB,EAAA,KACE7qB,GAAc,EAAAoI,GAAA,GAAoB,GAAG9V,OAAOoH,EAAkB,gBAC9DtD,EEpBR,SAA2BA,GACzB,MAAM,KACJzB,GACE1I,UACE,cACJuK,GACEJ,EAMJ,OAJII,IAAkB7B,GACpBA,EAAKuR,YAAY9P,GAGZA,EFQS45B,CAAkB/jC,SAAS8Z,eAAerM,KGhB5D,SAAwCrD,EAAUrN,GAChD,MAAMsN,EAAW25B,MAAMp9B,UAAUzC,MAAM2C,KAAK9G,SAASmd,iBHgBtB,+BGf/Bnd,SAASiG,iBAAiB,KAAgC,KACxDoE,EAAS2e,SAAQ7e,GAAWA,EAAQ+J,UAAY/J,EAAQuzB,aAAa,sBAEvE19B,SAASiG,iBAAiB,KAAkB,KAC1C,MAAMlI,GAAU,EAAAD,EAAA,GAAgBf,aAA8B,IAAuBA,EAAmBmG,UAAU,sBAAwBnG,GACpIknC,EAAWlmC,EAAU,CAACA,EAAQ0G,QAAS1G,EAAQ4G,eAAiB,GACtE0F,EAAS2e,SAAQ7e,GAAWA,EAAQ+J,UAAY+vB,EAASzgC,OAAS,EAAIygC,EAAS7/B,KAAK,MAAQ+F,EAAQuzB,aAAa,sBHSnHwG,CAA+B,GAA8B,EAAA5D,EAAA,MAC7DtgC,SAASiG,iBAAiB,MAAmB9H,OAC3CgC,QACEa,kBAAAA,OAIFA,EAAkBwC,QAAU7C,YAAW,IIxB3C,SAA6BwjC,GAC3B,MAAM,cACJ5jB,EAAa,SACbd,EAAQ,UACRmB,EAAS,UACTJ,IACE,EAAAmgB,EAAA,KACJ,OAAO,EAAA7hB,EAAA,GAAc,CACnBC,SAAU2jB,GACV9jC,QAAS,CACP2hB,cAAAA,EACAd,SAAAA,EACAmB,UAAAA,EACAJ,UAAAA,GAEFlB,eAAe,EACfJ,OAAQ,CACNilB,QAASA,EAAQ//B,KAAK,QJOqBggC,CAAoBpjC,IAAoB,MAGnFmJ,IACF,QAAO,GAAEm0B,GAAe,CACtBvqB,YAAaA,IACX5J,KAEL,eAECtN,SACFA,OAAOwnC,WAAa,I,uEKxCtB,MAAMC,EAAyB,KAC7B,MAAM,MACJC,EAAK,WACLC,EAAU,aACVC,EACA/F,YAAY,UACVgG,EAAS,WACTC,KAEA,SAEJ,IAAKJ,EACH,OAAO,KAGT,IAAIK,EAAU,GAQd,OANIH,EACFG,EAAUD,EACAH,IACVI,EAAUF,GAGLE,EAAUz5B,EAAE,MAAO,CACxBQ,MAAO,CACLO,SAAU,GACVkC,MAAO,UACPqN,WAAY,OACZqW,MAAO,IAER8S,GAAW,O,6CC/BT,MAAMC,EAA0B,CACrC/kB,KAAM,WACNvB,O,QAAQ,Q,uBCIV,SAASumB,GAAuB,UAC9BC,EAAS,KACTC,IAEA,MAAM,MACJT,IACE,EAAA3F,EAAA,KAEJ,GAAI2F,EAAO,CAET,MAAMU,EAAW,GAEjB,IAAK,MAAMC,KAAYH,EACrBE,EAASplC,KAAKhD,OAAOohB,MAAMinB,EAAU,CACnC3mB,OAAQ,OACR4mB,YAAa,UACbjkB,QAAS,CACP,eAAgB,kCAElBxY,KAAM9D,KAAKub,UAAU6kB,MAIzB,OAAO5lC,QAAQgB,IAAI6kC,GAGnB,OAAO7lC,QAAQ2e,S,wBCzBnB5f,eAAekiC,GAAa,QAC1BtiC,EAAO,iBACP0iC,GAAmB,EAAK,cACxB9V,EAAa,QACbxU,EAAU,EAAC,iBACXivB,EAAgB,UAChB7E,IAEA,MAAM,YACJ1V,EAAW,aACX6O,GACE15B,SAAS8J,iBACP,cACJyW,EAAa,SACbd,EAAQ,UACRmB,EAAS,UACTJ,IACE,EAAAmgB,EAAA,MAEE,QACJ0E,EAAO,KACP5gC,EAAI,gBACJ6gC,EAAe,mBACfC,SACQ,EAAAzmB,EAAA,GAAc,CACtBC,SAAU8lB,EACVjmC,QAAS,CACP2hB,cAAAA,EACAd,SAAAA,EACAmB,UAAAA,EACAJ,UAAAA,GAEFlB,eAAe,EACfN,QAAS,IAAKjhB,EACZ0iC,iBAAAA,EACA9V,cAAAA,EACAkX,cAAehX,EACfiX,eAAgBpI,EAChBvjB,QAAAA,EACAivB,iBAAAA,EACA7E,UAAAA,GAEFrhB,OAAQ,CACN6iB,iBAAkBllC,OAAOkiB,SAAS9V,QAItCpM,OAAOgH,sBAAwB,CAC7BY,KAAAA,EACAE,cAAe,GACfJ,SAAU+gC,EACVvnC,QAASwnC,SAELnmC,QAAQgB,IAAI,CAClBilC,GAAWP,EAAuBO,IAAU,EAAA/E,EAAA,KAA0Br9B,aAAa,CACjF9F,KAAM,aACJI,OAAOiX,Y,oEC3Db,SAASgxB,EAAcroC,GACrB,MAAM2G,GAAQ,EAAA68B,EAAA,KAAuB8E,QAAQ3hC,MAAM,KACnD,QAAkB,UAAT3G,EAAmB2G,EAAM,GAAKA,EAAMlG,KAAIkN,IAAMA,EAAI,GAAK,IAAIzE,OAAOyE,GAAKA,IAAG1G,KAAK,K,cCJ1F,SAASk8B,IACP,MAAM,sBACJ7B,EAAqB,aACrBrb,EAAY,qBACZhnB,EAAoB,OACpBa,EAAM,eACNga,IACE,EAAA2nB,EAAA,KAsBJ,OApBK/hC,OAAO6oC,oBACV7oC,OAAO6oC,kBAAoB,IAAI,IAAqB,CAClD3oC,mBAAoB0hC,EACpBvhC,mBAAoB+Z,EACpBha,OAAAA,EACAmmB,aAAAA,EACAP,oBAAqB,0BACrB7lB,WAAYZ,EACZ+C,UAAW,SAAUoH,GACnB,MAAM,SACJlK,GACEkK,EACJ,MAAO,CAAC,4BAA4B9H,QAAQpC,IAAa,GAE3DspC,MAAO,IACPC,WAAYJ,EAAc,SAC1BK,cAAe,GAAGx/B,OAAOo4B,EAAuB,WAI7C5hC,OAAO6oC,oB,2BC3BhB,SAAS/E,IACP,OAAO9jC,OAAO,qBAAiBuJ,QAAQ,aAAa2b,GAAKA,EAAE,GAAGC,iB,4ECChE,SAAS4c,IACP,OAAO,SAAuBiC,S,8jTCP5BiF,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB1mC,IAAjB2mC,EACH,OAAOA,EAAa/pC,QAGrB,IAAID,EAAS6pC,EAAyBE,GAAY,CAGjD9pC,QAAS,IAOV,OAHAgqC,EAAoBF,GAAUl/B,KAAK7K,EAAOC,QAASD,EAAQA,EAAOC,QAAS6pC,GAGpE9pC,EAAOC,QAIf6pC,EAAoBrY,EAAIwY,EtKzBpBlqC,EAAW,GACf+pC,EAAoBI,EAAI,CAAC9iC,EAAQ+iC,EAAU1gC,EAAI2gC,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,EAAAA,EACnB,IAASz7B,EAAI,EAAGA,EAAI9O,EAASwH,OAAQsH,IAAK,CAGzC,IAFA,IAAKs7B,EAAU1gC,EAAI2gC,GAAYrqC,EAAS8O,GACpC07B,GAAY,EACPlhB,EAAI,EAAGA,EAAI8gB,EAAS5iC,OAAQ8hB,MACpB,EAAX+gB,GAAsBC,GAAgBD,IAAatkC,OAAOC,KAAK+jC,EAAoBI,GAAGM,OAAO3kC,GAASikC,EAAoBI,EAAErkC,GAAKskC,EAAS9gB,MAC9I8gB,EAASvwB,OAAOyP,IAAK,IAErBkhB,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbxqC,EAAS6Z,OAAO/K,IAAK,GACrB,IAAI1F,EAAIM,SACEpG,IAAN8F,IAAiB/B,EAAS+B,IAGhC,OAAO/B,EAvBNgjC,EAAWA,GAAY,EACvB,IAAI,IAAIv7B,EAAI9O,EAASwH,OAAQsH,EAAI,GAAK9O,EAAS8O,EAAI,GAAG,GAAKu7B,EAAUv7B,IAAK9O,EAAS8O,GAAK9O,EAAS8O,EAAI,GACrG9O,EAAS8O,GAAK,CAACs7B,EAAU1gC,EAAI2gC,IuKJ/BN,EAAoB9hC,EAAKhI,IACxB,IAAIyqC,EAASzqC,GAAUA,EAAO0qC,WAC7B,IAAO1qC,EAAiB,QACxB,IAAM,EAEP,OADA8pC,EAAoBa,EAAEF,EAAQ,CAAExD,EAAGwD,IAC5BA,GCLRX,EAAoBa,EAAI,CAAC1qC,EAAS2qC,KACjC,IAAI,IAAI/kC,KAAO+kC,EACXd,EAAoBe,EAAED,EAAY/kC,KAASikC,EAAoBe,EAAE5qC,EAAS4F,IAC5EC,OAAOglC,eAAe7qC,EAAS4F,EAAK,CAAEklC,YAAY,EAAMC,IAAKJ,EAAW/kC,MCJ3EikC,EAAoBhkB,EAAI,WACvB,GAA0B,iBAAfmlB,WAAyB,OAAOA,WAC3C,IACC,OAAOlkC,MAAQ,IAAImkC,SAAS,cAAb,GACd,MAAO5kC,GACR,GAAsB,iBAAX1F,OAAqB,OAAOA,QALjB,GCAxBkpC,EAAoBe,EAAI,CAACM,EAAKC,IAAUtlC,OAAO6E,UAAUC,eAAeC,KAAKsgC,EAAKC,GCClFtB,EAAoB3gC,EAAKlJ,IACH,oBAAXorC,QAA0BA,OAAOC,aAC1CxlC,OAAOglC,eAAe7qC,EAASorC,OAAOC,YAAa,CAAEt4B,MAAO,WAE7DlN,OAAOglC,eAAe7qC,EAAS,aAAc,CAAE+S,OAAO,K,MCLvD,IAAIu4B,EACAzB,EAAoBhkB,EAAE0lB,gBAAeD,EAAYzB,EAAoBhkB,EAAEhD,SAAW,IACtF,IAAI/e,EAAW+lC,EAAoBhkB,EAAE/hB,SACrC,IAAKwnC,GAAaxnC,IACbA,EAAS0nC,gBACZF,EAAYxnC,EAAS0nC,cAAcjhC,MAC/B+gC,GAAW,CACf,IAAIG,EAAU3nC,EAASga,qBAAqB,UACzC2tB,EAAQnkC,SAAQgkC,EAAYG,EAAQA,EAAQnkC,OAAS,GAAGiD,KAK7D,IAAK+gC,EAAW,MAAM,IAAIjkB,MAAM,yDAChCikB,EAAYA,EAAUphC,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpF2/B,EAAoB9Z,EAAIub,G,SCVxB,IAAII,EAAkB,CACrB,IAAK,GAaN7B,EAAoBI,EAAE7gB,EAAKuiB,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4B/C,KACvD,IAGIgB,EAAU6B,GAHTzB,EAAU4B,EAAaC,GAAWjD,EAGhBl6B,EAAI,EAC3B,GAAGs7B,EAASxjC,MAAMlF,GAAgC,IAAxBkqC,EAAgBlqC,KAAa,CACtD,IAAIsoC,KAAYgC,EACZjC,EAAoBe,EAAEkB,EAAahC,KACrCD,EAAoBrY,EAAEsY,GAAYgC,EAAYhC,IAGhD,GAAGiC,EAAS,IAAI5kC,EAAS4kC,EAAQlC,GAGlC,IADGgC,GAA4BA,EAA2B/C,GACrDl6B,EAAIs7B,EAAS5iC,OAAQsH,IACzB+8B,EAAUzB,EAASt7B,GAChBi7B,EAAoBe,EAAEc,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBxB,EAASt7B,IAAM,EAEhC,OAAOi7B,EAAoBI,EAAE9iC,IAG1B6kC,EAAqBC,KAAyC,mCAAIA,KAAyC,oCAAK,GACpHD,EAAmBlf,QAAQ8e,EAAqBM,KAAK,KAAM,IAC3DF,EAAmBroC,KAAOioC,EAAqBM,KAAK,KAAMF,EAAmBroC,KAAKuoC,KAAKF,K,GC7CvF,IAAIG,EAAsBtC,EAAoBI,OAAE7mC,EAAW,CAAC,MAAM,IAAOymC,EAAoB,QAC7FsC,EAAsBtC,EAAoBI,EAAEkC,G","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///../../dev-packages/wp-webpack/src/emptyModule.js","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/getManagerDependingVariables.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getServiceSelection.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/apply.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optIn.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optInOutManager.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optOut.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/deleteCookiesLocally.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/manager.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getDefaultDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getUserDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/explode.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/bannerPredecisionShow.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optIn.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optInAll.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optOut.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optOutAll.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/ready.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/regExpPatternFromWildcardName.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/pregQuote.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/supportsCookies.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/htmlAttributes.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/putHtmlCodeToDom.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/events/optInContentBlocker.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/dispatchResizeEvent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/htmlDecode.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/isUrl.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/parents.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/asciiSpinner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/plainAntdIconAsSvg.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/checkbox.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/checkbox.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookieProperty.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/cookieProperty.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/tooltip.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/contexts/banner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/contexts/blocker.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/footer/link.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/footer/link.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/footer/poweredByLink.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/jsxJoin.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/common/useCommonFooterLink.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/common/useCommonTeachings.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useBannerOrBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useLegalLinks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/usePlainCss.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/body/teaching.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/body/teachingSeparator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/linkMore.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/header/headline.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/scale.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/others/getSsrPoweredByLink.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/matchingSelector.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/commonUrlBuilder.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/nonceDeprecationPool.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/parseResult.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/commonRequest.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/routeHttpVerbEnum.tsx","webpack:///../../wordpress-packages/utils/lib/helpers.tsx","webpack:///./src/public/ts/api/unblock.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/supportsCookies.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/isCrawler.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/dynamicRequest.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/promiseTimeout.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isDoNotTrack.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/isDoNotTrack.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/userConsent.tsx","webpack:///./src/public/ts/wp-api/consentDynamicPredecision.get.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/others/isHiddenDueLegal.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerAnimation.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/index.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerStateContextCallbacks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerActionLinks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useResettableAnimation.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/hexToRgb.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/calculateRgba.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/animateCss.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useRenderedHeightsAsCssVars.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerButtonCallbacks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/portal.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/closeIcon.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/header/closeIcon.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/header/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/logo.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/sectionTitle.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/title.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/description.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/linkMore.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/group.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/group.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/list.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/groups.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/dottedGroup.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroupItem.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroupBullet.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/dottedGroupList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroups.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/historySelect.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/historySelectOption.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/historySelect.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/common.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptEssentials.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptIndividual.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/save.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptAll.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/button.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/isIE.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/buttonList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/leftSide.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/description.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/rightSide.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/footer/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/content.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/content/content.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/separator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/separator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/animatedContent.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/content/inner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/banner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useRestrictScrollWhenVisible.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerHistory.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/overlay/alignment.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/overlay/overlay.tsx","webpack:///./src/public/ts/wp-api/consent.get.tsx","webpack:///./src/public/ts/components/websiteBanner.tsx","webpack:///./src/public/ts/hooks/useTcf.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerToggleOverlay.tsx","webpack:///./src/public/ts/hooks/useBannerPreDecisionGateway.tsx","webpack:///./src/public/ts/utils/isCustomize.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isCrawler.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isPreventPreDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/hasPageClass.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/gateway.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerConsentListener.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/waitObject.tsx","webpack:///./src/public/ts/others/comp/listenPresetOptIn.tsx","webpack:///./src/public/ts/wp-api/consentClear.delete.tsx","webpack:///./src/public/ts/api/consentSync.tsx","webpack:///./src/public/ts/api/consent.tsx","webpack:///./src/public/ts/api/consentAll.tsx","webpack:///./src/public/ts/banner.tsx","webpack:///./src/public/ts/tcf/cmpApi.tsx","webpack:///./src/public/ts/utils/ensureBodyElement.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/printConsentUuidsToHTMLElement.tsx","webpack:///./src/public/ts/others/deleteCookiesServer.tsx","webpack:///./src/public/ts/components/bannerProductionNotice.tsx","webpack:///./src/public/ts/wp-api/consent.post.tsx","webpack:///./src/public/ts/others/applyConsentForwarding.tsx","webpack:///./src/public/ts/others/applyConsent.tsx","webpack:///./src/public/ts/utils/getCmpVersion.tsx","webpack:///./src/public/ts/others/getCookieConsentManager.tsx","webpack:///./src/public/ts/utils/getOptionsFromWindow.tsx","webpack:///./src/public/ts/utils/getOtherOptionsFromWindow.tsx","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","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};","module.exports = {};\n","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 { getUserDecision } from \".\";\nimport { getManagerDependingVariables } from \"../apply\";\n\n/**\n * Read the selected groups + services depending on the passed type.\n */\nfunction getServiceSelection({\n decisionCookieName,\n tagManager,\n groups,\n essentialGroupSlug,\n type\n}) {\n let selectedGroups;\n const isManagerActive = tagManager && tagManager !== \"none\";\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug);\n const consentEssentials = {\n [essentialGroupObj.id]: essentialGroupObj.items.map(({\n id\n }) => id)\n }; // Read current consent\n\n if (type === \"consent\") {\n const decision = getUserDecision(decisionCookieName);\n\n if (decision !== false) {\n selectedGroups = decision.consent;\n } else {\n console.warn(\"Something went wrong while reading the cookie, fallback to essentials only...\");\n selectedGroups = consentEssentials;\n }\n }\n\n if (type === \"essentials\") {\n selectedGroups = consentEssentials;\n }\n\n return {\n isManagerActive,\n selectedGroups,\n iterateServices: async function (callback) {\n for (const group of groups) {\n for (const service of group.items) {\n var _selectedGroups$group;\n\n const isOptIn = type === \"all\" || ((_selectedGroups$group = selectedGroups[group.id]) === null || _selectedGroups$group === void 0 ? void 0 : _selectedGroups$group.indexOf(service.id)) > -1;\n const useTagManager = getManagerDependingVariables(tagManager, service.presetId);\n await callback(group, service, isOptIn, useTagManager);\n }\n }\n }\n };\n}\n\nexport { getServiceSelection };","import { applyOptIn, applyOptInOutManager, applyOptOut } from \".\";\nimport { OPT_IN_ALL_EVENT, OPT_OUT_ALL_EVENT } from \"../events\";\nimport { ready } from \"../utils\";\n/**\n * Apply services on frontend. Depending on some other mechanism you can differ\n * between the following \"decision\" types:\n *\n * - `all`: All services are applied (e. g. bots)\n * - `consent`: All services from the current consent (read from cookie)\n *\n * The services are sent in the following way:\n *\n * 1. Apply opt-in scripts (sequentially)\n * 2. If GTM / MTM is active, wait for the data layer\n * a) Push all opt-in events (parallel)\n * b) Wait x seconds to avoid side effects\n * c) Push all opt-out events (parallel)\n * 3. Apply opt-in scripts (sequentially)\n *\n * @param type\n * @see https://www.simoahava.com/analytics/notify-page-google-tag-manager-loaded/\n * @see https://support.google.com/tagmanager/answer/7679219\n * @see https://developer.matomo.org/guides/tagmanager/datalayer\n */\n\nasync function apply(options) {\n // Wait all events are initialized\n await ready(); // Do opt-in\n\n const {\n dataLayerPromise,\n isManagerOptOut,\n services,\n ready: applyOptInReady\n } = await applyOptIn(options); // Wait for manager's dataLayer loaded (can also be none) and do manager's events\n\n const {\n ready: applyOptInOutManagerReady\n } = await applyOptInOutManager(options, await dataLayerPromise, isManagerOptOut);\n const optInAllReady = Promise.all([applyOptInReady, applyOptInOutManagerReady]);\n document.dispatchEvent(new CustomEvent(OPT_IN_ALL_EVENT, {\n detail: {\n services,\n ready: optInAllReady\n }\n })); // Do opt-out\n\n const {\n deleteHttpCookies,\n services: allOptOutServices,\n ready: optOutReady\n } = await applyOptOut(options, isManagerOptOut);\n document.dispatchEvent(new CustomEvent(OPT_OUT_ALL_EVENT, {\n detail: {\n services: allOptOutServices,\n deleteHttpCookies,\n ready: Promise.all([optInAllReady, optOutReady])\n }\n }));\n}\n\nexport { apply };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\nimport { OPT_IN_EVENT } from \"../events\";\n\n/**\n * Opt-in to a set of services.\n */\nasync function applyOptIn(options) {\n const allOptInServices = [];\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options);\n const {\n skipOptIn\n } = options; // Handle managers like GTM and MTM\n\n let isManagerOptOut = false;\n let dataLayerPromise = Promise.resolve(undefined);\n const waitPromises = []; // Handle opt-ins sequentially\n\n await iterateServices(async (group, service, isOptIn, {\n getDataLayer,\n serviceIsManager\n }) => {\n const {\n codeDynamics,\n codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven\n } = service;\n const isManager = isManagerActive && serviceIsManager;\n\n if (isOptIn) {\n // Check if the script should explicitly only be loaded if no consent is given to the manager\n const isOnlyWhenNoConsentToManager = isManagerActive && executeCodeOptInWhenNoTagManagerConsentIsGiven;\n const isSkipOptIn = typeof skipOptIn === \"function\" ? skipOptIn(service) : false;\n\n if (!isOnlyWhenNoConsentToManager && !isSkipOptIn) {\n waitPromises.push(putHtmlCodeToDom(codeOptIn, codeDynamics));\n } // If this is a manager, wait for the object to be loaded\n\n /* Silence is golden... Until you have PRO Version! */\n\n\n const summary = {\n group,\n service\n };\n document.dispatchEvent(new CustomEvent(OPT_IN_EVENT, {\n detail: summary\n }));\n allOptInServices.push(summary);\n } else if (isManager) {\n /* Silence is golden... Until you have PRO Version! */\n }\n });\n return {\n isManagerOptOut,\n dataLayerPromise,\n services: allOptInServices,\n ready: Promise.all(waitPromises)\n };\n}\n\nexport { applyOptIn };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\n/**\n * Opt-in and opt-out to a set of services for a given data manager like GTM / MTM.\n */\n\nasync function applyOptInOutManager(options, dataLayer, isManagerOptOut) {\n const waitPromises = [];\n /* onlypro:start */\n\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options); // When there is a manager, let's push all opt-in and opt-out events (parallel)\n\n if (dataLayer) {\n // Opt-in events\n iterateServices((group, service, isOptIn, {\n serviceIsManager\n }) => {\n const event = service.tagManagerOptInEventName;\n\n if (isOptIn && event && !serviceIsManager) {\n dataLayer.push({\n realCookieBannerOptInEvents: {\n [event]: true\n },\n event\n });\n }\n }); // Wait x seconds and apply opt-out events (should we add this to `waitPromises`?! I do not think so)\n\n setTimeout(() => iterateServices((group, service, isOptIn, {\n serviceIsManager\n }) => {\n const event = service.tagManagerOptOutEventName;\n\n if (!isOptIn && event && !serviceIsManager) {\n dataLayer.push({\n realCookieBannerOptOutEvents: {\n [event]: true\n },\n event\n });\n }\n }), 1000);\n } else if (isManagerActive && isManagerOptOut) {\n // The manager got opt out, let's execute scripts that are explicitly only for this case (sequentially)\n await iterateServices(async (group, {\n codeDynamics,\n codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven\n }, isOptIn) => {\n if (isOptIn && executeCodeOptInWhenNoTagManagerConsentIsGiven) {\n waitPromises.push(putHtmlCodeToDom(codeOptIn, codeDynamics));\n }\n });\n }\n /* onlypro:false */\n\n\n return {\n ready: Promise.all(waitPromises)\n };\n}\n\nexport { applyOptInOutManager };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\nimport { OPT_OUT_EVENT } from \"../events\";\nimport { deleteCookiesLocally } from \".\";\n/**\n * Opt-in to a set of services for a given data manager like GTM / MTM.\n */\n\nasync function applyOptOut(options, isManagerOptOut) {\n const allOptOutServices = [];\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options);\n const waitPromises = []; // Handle opt-outs sequentially\n\n const deleteHttpCookies = [];\n await iterateServices(async (group, service, isOptIn) => {\n const {\n id,\n codeDynamics,\n codeOptOut,\n deleteTechnicalDefinitionsAfterOptOut,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n executeCodeOptOutWhenNoTagManagerConsentIsGiven\n } = service;\n\n if (!isOptIn) {\n // Check if the script should explicitly only be loaded if no consent is given to the manager\n const isOnlyWhenNoConsentToManager = isManagerActive && executeCodeOptOutWhenNoTagManagerConsentIsGiven;\n\n if (isOnlyWhenNoConsentToManager && isManagerOptOut || !isOnlyWhenNoConsentToManager) {\n waitPromises.push(putHtmlCodeToDom(codeOptOut, codeDynamics));\n }\n\n if (deleteTechnicalDefinitionsAfterOptOut && !isEmbeddingOnlyExternalResources) {\n deleteCookiesLocally(technicalDefinitions, codeDynamics); // Mark deletable server-side services\n\n if (technicalDefinitions.some(({\n type\n }) => type === \"http\")) {\n deleteHttpCookies.push(id);\n }\n }\n\n const summary = {\n group,\n service\n };\n document.dispatchEvent(new CustomEvent(OPT_OUT_EVENT, {\n detail: summary\n }));\n allOptOutServices.push(summary);\n }\n });\n return {\n services: allOptOutServices,\n ready: Promise.all(waitPromises),\n deleteHttpCookies\n };\n}\n\nexport { applyOptOut };","import Cookie from \"js-cookie\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\nimport { regExpPatternFromWildcardName } from \"../utils\";\n/**\n * Delete cookies on client side (currently only `localStorage` and `sessionStorage`).\n */\n\nfunction deleteCookiesLocally(technicalDefinitions, dynamics) {\n for (const {\n type,\n name\n } of technicalDefinitions) {\n // Create valid Regxp pattern\n const pattern = new RegExp(regExpPatternFromWildcardName(applyDynamicsToHtml(name, dynamics)), \"g\");\n\n switch (type) {\n case \"http\":\n {\n for (const key of Object.keys(Cookie.get())) {\n if (pattern.test(key)) {\n Cookie.remove(key);\n }\n }\n\n break;\n }\n\n case \"local\":\n case \"session\":\n {\n try {\n const useStorage = type === \"local\" ? window.localStorage : window.sessionStorage;\n\n if (useStorage) {\n for (const itemName of Object.keys(useStorage)) {\n if (pattern.test(itemName)) {\n try {\n // Fallback to `null` because `removeItem` can have issues on some browsers\n useStorage.setItem(itemName, null);\n } catch (e) {// Silence is golden. A `QuotaExceededError` can be thrown but we ignore it, because we remove the item\n } // Try as long (but max 100 times) until deleted\n\n\n let tries = 0;\n\n while (useStorage.getItem(itemName) && tries < 100) {\n tries++;\n useStorage.removeItem(itemName);\n }\n }\n }\n }\n } catch (e) {\n // Browser does not support localStorage, let's do nothing...\n continue;\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n}\n\nexport { deleteCookiesLocally };","import { apply } from \".\";\nimport { getDefaultDecision, getUserDecision } from \"..\";\n\n/**\n * Main class to manage cookie consents within your application.\n */\nclass CookieConsentManager {\n constructor(options) {\n this.options = void 0;\n this.options = options;\n }\n\n applyCookies(options) {\n return apply({ ...options,\n ...this.options\n });\n }\n\n getUserDecision() {\n return getUserDecision(this.getOption(\"decisionCookieName\"));\n }\n\n getDefaultDecision(respectLegitimateInterests = true) {\n return getDefaultDecision(this.options, respectLegitimateInterests);\n }\n\n getOption(name) {\n return this.options[name];\n }\n\n getOptions() {\n return this.options;\n }\n\n}\n\nexport { CookieConsentManager };","/**\n * Get the default decision and respect essential group and legitimate interests.\n */\nfunction getDefaultDecision({\n groups,\n essentialGroupSlug\n}, respectLegitimateInterests = true) {\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug); // We need always use the current essential group\n\n const result = {\n [essentialGroupObj.id]: essentialGroupObj.items.map(({\n id\n }) => id)\n };\n\n if (respectLegitimateInterests) {\n for (const group of groups) {\n if (group === essentialGroupObj) {\n continue;\n }\n\n const ids = group.items.filter(({\n legalBasis\n }) => legalBasis === \"legitimate-interest\").map(({\n id\n }) => id);\n\n if (ids.length) {\n result[group.id] = ids;\n }\n }\n }\n\n return result;\n}\n\nexport { getDefaultDecision };","import { explode, supportsCookies } from \"../utils\";\nimport Cookie from \"js-cookie\";\n\n/**\n * Get current user decision from the cookie value in a minimal form.\n */\nfunction getUserDecision(cookieName) {\n const cookieValue = Cookie.get(cookieName);\n\n if (!cookieValue) {\n if (!supportsCookies()) {\n // Use our `window` object instead of cookie value\n return window.rcbDisabledCookieComp || false;\n }\n\n return false;\n } // Validate cookie length\n\n\n const split = explode(cookieValue, \":\", 3);\n\n if (split.length !== 3) {\n return false;\n }\n\n const [uuidString, revision] = split;\n const uuids = uuidString.split(\",\");\n const uuid = uuids.shift();\n const consent = JSON.parse(split[2]);\n return {\n uuid,\n previousUuids: uuids,\n revision,\n consent\n };\n}\n\nexport { getUserDecision };","/**\n * A PHP's port of `explode`. `.split` is not similar because it does not join\n * remaining string.\n */\nfunction explode(string, separator, n) {\n const split = string.split(separator);\n if (split.length <= n) return split;\n const out = split.slice(0, n - 1);\n out.push(split.slice(n - 1).join(separator));\n return out;\n}\n\nexport { explode };","/**\n * This event is fired when the user has no consent or invalid consent\n * and the banner gets visible.\n */\nexport const BANNER_PRE_DECISION_SHOW_EVENT = \"RCB/Banner/Show\";","export const OPT_IN_EVENT = \"RCB/OptIn\";","export const OPT_IN_ALL_EVENT = \"RCB/OptIn/All\";","export const OPT_OUT_EVENT = \"RCB/OptOut\";","export const OPT_OUT_ALL_EVENT = \"RCB/OptOut/All\";","const helperCreateResolvablePromise = () => {\n let resolve;\n const promise = new Promise(r => resolve = r);\n return [false, promise, resolve];\n};\n\nconst memorizedReadyStatePromises = {\n loading: helperCreateResolvablePromise(),\n complete: helperCreateResolvablePromise(),\n interactive: helperCreateResolvablePromise()\n};\n/**\n * Instead of checking within our events itself at the time of the event, we memorize the state of resolved and reached\n * ready-states. Why? Some WordPress plugins are modifying the JavaScript execution waterfall (e.g. Delay JS in WP Rocket).\n *\n * @see https://github.com/wp-media/wp-rocket/search?q=readystatechange&type=issues\n * @see https://app.clickup.com/t/2v12m07\n */\n\nconst memorizeReadyState = () => {\n const {\n readyState\n } = document;\n const [reached,, resolve] = memorizedReadyStatePromises[readyState];\n\n if (!reached) {\n memorizedReadyStatePromises[readyState][0] = true;\n resolve();\n }\n};\n/**\n * Listen to multiple events. Why? See same reason as in `memorizedReadyStatePromises()`.\n */\n\n\nconst LISTEN_TO_EVENTS = [\"readystatechange\", \"rocket-readystatechange\", \"DOMContentLoaded\", \"rocket-DOMContentLoaded\", \"rocket-allScriptsLoaded\"];\n/**\n * Wait DOM is ready depending on a state.\n *\n * - `interactive`: Defer scripts are executing, but DOM is ready\n * - `complete`: All scripts including deferred ones are executed and DOM is ready\n *\n * @see https://stackoverflow.com/a/65430734/5506547\n * @see https://stackoverflow.com/a/51980980/5506547\n */\n\nconst ready = (fn, state = \"complete\") => {\n return new Promise(resolve => {\n let executed = false;\n\n const cb = () => {\n memorizeReadyState();\n\n if ( // Only execute once\n executed || // Ready-state not yet reached\n !memorizedReadyStatePromises[state][0]) {\n return;\n }\n\n executed = true;\n fn === null || fn === void 0 ? void 0 : fn(); // We need to make this promise non-blocking. E.g. on Safari this\n // could lead to issues as the `readystatechange` event listener\n // can be nested (once `interactive`, then waiting `complete`)\n // Imagine, you are using an `await ready` within a `ready(fn)` statement.\n\n setTimeout(resolve, 0);\n };\n\n cb();\n\n for (const event of LISTEN_TO_EVENTS) {\n document.addEventListener(event, cb);\n }\n\n memorizedReadyStatePromises[state][1].then(cb);\n });\n};\n\nexport { ready };","import { pregQuote } from \".\";\n/**\n * Create regular expression pattern from a string like `my_test*` and replace asterisks\n * with `(.*)`.\n */\n\nfunction regExpPatternFromWildcardName(name) {\n const tmp = name.replace(/\\*/g, \"PLEACE_REPLACE_ME_AGAIN\");\n return \"^\".concat(pregQuote(tmp).replace(/PLEACE_REPLACE_ME_AGAIN/g, \"(.*)\"), \"$\");\n}\n\nexport { regExpPatternFromWildcardName };","/**\n * Port of `preg_quote`.\n *\n * @see https://github.com/kvz/locutus/blob/3f14dc5d142f5dcbdf36b4271c21a850a4a259da/src/php/pcre/preg_quote.js#L1\n */\nfunction pregQuote(str, delimiter) {\n // discuss at: https://locutus.io/php/preg_quote/\n // original by: booeyOH\n // improved by: Ates Goral (https://magnetiq.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: preg_quote(\"$40\")\n // returns 1: '\\\\$40'\n // example 2: preg_quote(\"*RRRING* Hello?\")\n // returns 2: '\\\\*RRRING\\\\* Hello\\\\?'\n // example 3: preg_quote(\"\\\\.+*?[^]$(){}=!<>|:\")\n // returns 3: '\\\\\\\\\\\\.\\\\+\\\\*\\\\?\\\\[\\\\^\\\\]\\\\$\\\\(\\\\)\\\\{\\\\}\\\\=\\\\!\\\\<\\\\>\\\\|\\\\:'\n return str.replace(new RegExp(\"[.\\\\\\\\+*?\\\\[\\\\^\\\\]$(){}=!<>|:\\\\\".concat(delimiter || \"\", \"-]\"), \"g\"), \"\\\\$&\");\n}\n\nexport { pregQuote };","/**\n * Check if the current environment supports cookies.\n *\n * @see https://git.io/JcXiP\n * @returns\n */\nfunction supportsCookies(cookieName = \"test\") {\n try {\n document.cookie = \"\".concat(cookieName, \"=1\");\n const result = document.cookie.indexOf(\"\".concat(cookieName, \"=\")) !== -1;\n document.cookie = \"\".concat(cookieName, \"=1; expires=Thu, 01-Jan-1970 00:00:01 GMT\");\n return result;\n } catch (e) {\n return false;\n }\n}\n\nexport { supportsCookies };","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 };","// Also ported to `view/Blocker.php`\nexport const HTML_ATTRIBUTE_CAPTURE_PREFIX = \"consent-original\";\nexport const HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX = \"consent-click-original\";\nexport const HTML_ATTRIBUTE_CAPTURE_SUFFIX = \"_\";\nexport const HTML_ATTRIBUTE_BY = \"consent-by\"; // TODO: cookie -> required?\n\nexport const HTML_ATTRIBUTE_COOKIE_IDS = \"consent-required\";\nexport const HTML_ATTRIBUTE_VISUAL_PARENT = \"consent-visual-use-parent\";\nexport const HTML_ATTRIBUTE_VISUAL_PAINT_MODE = \"consent-visual-paint-mode\";\nexport const HTML_ATTRIBUTE_INLINE = \"consent-inline\";\nexport const HTML_ATTRIBUTE_INLINE_STYLE = \"consent-inline-style\";\nexport const HTML_ATTRIBUTE_BLOCKER_ID = \"consent-id\";\nexport const HTML_TAG_CONSENT_SCRIPT = \"script\";\nexport const HTML_ATTRIBUTE_BLOCKER_CONNECTED = \"consent-blocker-connected\";\nexport const HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED = \"consent-blocker-connected-pres\";\nexport const HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE = \"consent-transaction-complete\";\nexport const HTML_ATTRIBUTE_TRANSFORM_WRAPPER = \"consent-transform-wrapper\";\nexport const HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN = \"consent-strict-hidden\";\nexport const HTML_ATTRIBUTE_RESET_PARENT = \"consent-cb-reset-parent\";\nexport const HTML_ATTRIBUTE_RESET_PARENT_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER = \"consent-cb-reset-parent-is-ratio\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED = \"consent-got-clicked\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED = \"2\";\nexport const HTML_ATTRIBUTE_THUMBNAIL = \"consent-thumbnail\";\nexport const HTML_ATTRIBUTE_THUMBNAIL_SUGGESTION = \"consent-thumbnail-suggestion\";","import postscribe from \"postscribe\";\nimport { applyDynamicsToHtml } from \".\";\nimport { htmlDecode } from \"../utils\";\n/**\n * We do not modify `window.onload` directly, you need to use this variable name.\n */\n\nconst WINDOW_ONLOAD_UNBLOCK_REPLACEMENT = \"rcbInitiatorOnload\";\n/**\n * Put HTML code to the current DOM. `script` tags gets automatically\n * executed instead of pushing to DOM.\n *\n * @see https://github.com/krux/postscribe\n * @see https://stackoverflow.com/a/49724894/5506547\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nfunction putHtmlCodeToDom(html, dynamics, referenceNode = document.body) {\n return new Promise(resolve => {\n if (html) {\n postscribe(referenceNode, applyDynamicsToHtml(html, dynamics), {\n done: resolve,\n error: e => {\n // We do ignore all errors as we handle like the usual browser\n // E.g. a script blocked by an ad-blocker should not break the execution\n // for upcoming scripts.\n console.error(e);\n },\n beforeWriteToken: token => {\n const {\n attrs,\n booleanAttrs,\n src,\n href,\n content\n } = token; // Probably skip this token? (do not use `disabled` tag as it should still be written to DOM)\n\n if (booleanAttrs !== null && booleanAttrs !== void 0 && booleanAttrs[\"skip-write\"]) {\n return false;\n } // Allow `window.onload` event\n\n\n if (content) {\n token.content = content.replace(/window\\.onload\\s+=/g, \"window.\".concat(WINDOW_ONLOAD_UNBLOCK_REPLACEMENT, \" =\"));\n } // Automatically unescape html entities in all attributes (https://github.com/krux/postscribe/issues/346#issuecomment-310227387)\n\n\n for (const attr in attrs) {\n attrs[attr] = htmlDecode(attrs[attr]); // Allow to skip complete HTML tag when it already got loaded by unique ID (e.g. Google Tag Manager gtag.js)\n\n if (attr === \"unique-write-name\" && document.querySelector(\"[unique-write-name=\\\"\".concat(attrs[attr], \"\\\"]\"))) {\n return false;\n }\n } // Scripts\n\n\n if (src) {\n token.src = htmlDecode(src);\n } // Styles\n\n\n if (href) {\n token.href = htmlDecode(href);\n }\n\n return token;\n }\n });\n } else {\n resolve();\n }\n });\n}\n\nexport { WINDOW_ONLOAD_UNBLOCK_REPLACEMENT, putHtmlCodeToDom };","/**\n * A content - which was blocked - got unblocked.\n */\nexport const OPT_IN_CONTENT_BLOCKER = \"RCB/OptIn/ContentBlocker\";","/**\n * In some cases, the complete layout can be changed and calculations are based on containers width.\n * Imagine: Google Fonts get added and the navigation bar has a button with a calculated width (e.g. BeTheme).\n * Another example: The instagram feed is not loaded / adjusted (masonry), so we need to trigger a resize\n * event manually\n *\n * @param delay\n */\nfunction dispatchResizeEvent(delay = 0) {\n setTimeout(() => {\n try {\n window.dispatchEvent(new Event(\"resize\"));\n } catch (e) {// You are running in IE, it's a UI bug, we can skip...\n }\n }, delay);\n}\n\nexport { dispatchResizeEvent };","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 };","/**\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 { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\n/**\n * Port of `jQuery.parents()`.\n */\n\nfunction parents(element, selector) {\n const elements = [];\n let elem = element.parentElement;\n\n while (elem !== null) {\n if (elem.nodeType === Node.ELEMENT_NODE && matchingSelector(elem, selector)) {\n elements.push(elem);\n }\n\n elem = elem.parentElement;\n }\n\n return elements;\n}\n\nexport { parents };","import { useState, useEffect } from \"react\";\n\nconst AsciiSpinner = ({\n ms = 100,\n chars = [\"&#9719;\", \"&#9718;\", \"&#9717;\", \"&#9716;\"]\n}) => {\n const [i, setI] = useState(1);\n useEffect(() => {\n const interval = setInterval(() => {\n setI(i + 1);\n }, ms);\n return () => clearInterval(interval);\n }, [i]);\n return h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: chars[i % 4]\n }\n });\n};\n\nexport { AsciiSpinner };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useMemo } from \"react\"; // eslint-disable-next-line import/no-extraneous-dependencies\n\nimport { renderIconDefinitionToSVGElement } from \"@ant-design/icons-svg/es/helpers\";\n/**\n * Inject a plain SVG icon from `@ant-design/icons-svg`. This reduces the bundle size.\n * You can determine yourself to use `@ant-design/icons` or this helper component. For example,\n * this component is preferred for website bundles where website size matters.\n *\n * @see https://app.clickup.com/t/60pz5t\n */\n\nconst PlainAntdIconAsSvg = ({\n icon,\n ...rest\n}) => {\n const svgString = useMemo(() => renderIconDefinitionToSVGElement(icon, {\n extraSVGAttrs: {\n style: \"width:auto;height:100%;\",\n fill: \"currentColor\"\n }\n }), [icon]);\n return h(\"div\", _extends({}, rest, {\n dangerouslySetInnerHTML: {\n __html: svgString\n }\n }));\n};\n\nexport { PlainAntdIconAsSvg };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useLayoutEffect, useState } from \"react\";\nimport { commonInlineStyleGroupsCheckbox } from \"../../inlineStyles\";\nimport { PlainAntdIconAsSvg } from \"../..\";\nimport { CheckOutlined, MinusOutlined } from \"@ant-design/icons-svg\";\nimport { useBannerOrBlocker } from \"../../hooks\";\n\nconst CommonCheckbox = ({\n hideCheckbox,\n isPartial,\n isChecked,\n isDisabled,\n fontSize,\n onClick,\n children,\n after,\n ...rest\n}) => {\n const CheckboxIcon = isPartial ? MinusOutlined : CheckOutlined;\n const bannerOrBlocker = useBannerOrBlocker();\n const [isRendered, setIsRendered] = useState(false);\n useLayoutEffect(() => {\n setIsRendered(true);\n }, []);\n return h(Fragment, null, !hideCheckbox && h(PlainAntdIconAsSvg, _extends({\n icon: CheckboxIcon,\n onClick: onClick\n }, commonInlineStyleGroupsCheckbox(bannerOrBlocker, isRendered, isChecked, isDisabled, fontSize), rest)), children && h(\"span\", {\n style: {\n verticalAlign: \"middle\",\n cursor: \"pointer\"\n }\n }, h(\"span\", {\n onClick: onClick\n }, children), after));\n};\n\nexport { CommonCheckbox };","import { scaleMobile } from \"../..\";\n\n/**\n * Use `visible` together with `useLayoutEffect` to avoid flickering.\n * This is needed because the SVG icons of ant are a bit flickering.\n */\nfunction commonInlineStyleGroupsCheckbox({\n layout: {\n borderRadius\n },\n group: {\n headlineFontSize,\n checkboxBg,\n checkboxBorderWidth,\n checkboxBorderColor,\n checkboxActiveBg,\n checkboxActiveBorderColor,\n checkboxActiveColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, visible, checked, disabled, fontSize) {\n let useFontSize = fontSize || headlineFontSize;\n useFontSize = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, useFontSize) : useFontSize;\n const useCheckboxBorderWidth = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +checkboxBorderWidth) : +checkboxBorderWidth;\n const height = +useFontSize + useCheckboxBorderWidth * 2 + 6;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-checkbox\",\n style: {\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : undefined,\n color: checked ? checkboxActiveColor : checkboxBg,\n display: visible ? \"inline-block\" : \"none\",\n background: checked ? checkboxActiveBg : checkboxBg,\n border: \"\".concat(useCheckboxBorderWidth, \"px solid \").concat(checked ? checkboxActiveBorderColor : checkboxBorderColor),\n padding: 3,\n height,\n width: height,\n marginRight: 10,\n borderRadius: +borderRadius,\n verticalAlign: \"middle\",\n lineHeight: 0,\n boxSizing: \"border-box\"\n }\n };\n}\n\nexport { commonInlineStyleGroupsCheckbox };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { commonGroupsInlineStyleLinkMore, commonInlineStyleGroupsCookieProperty } from \"../../../inlineStyles\";\n\nconst CookieProperty = ({\n label,\n value,\n children,\n printValueAs\n}) => {\n const banner = useBannerOrBlocker();\n const {\n i18n: {\n yes,\n no\n }\n } = banner;\n const isValueUrl = typeof value === \"string\" && isUrl(value);\n let useValue = isValueUrl ? h(\"a\", {\n href: value,\n style: {\n wordBreak: \"break-all\",\n ...commonGroupsInlineStyleLinkMore(banner, false).style\n },\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, value) : typeof value === \"string\" ? h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: value\n }\n }) : value;\n\n if (printValueAs === \"boolean\") {\n useValue = useValue ? yes : no;\n }\n\n return h(\"div\", _extends({\n key: label\n }, commonInlineStyleGroupsCookieProperty(banner)), label && h(\"strong\", null, label, \":\\xA0\"), useValue, !!children && h(\"div\", null, children));\n};\n\nexport { CookieProperty };","import { scaleMobile } from \"../..\";\n\nfunction commonInlineStyleGroupsCookieProperty({\n group: {\n groupBorderWidth,\n groupBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}) {\n const useGroupBorderWidth = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, groupBorderWidth) : groupBorderWidth;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-cookie-prop\",\n style: {\n borderLeft: useGroupBorderWidth > 0 ? \"1px solid \".concat(groupBorderColor) : undefined,\n paddingLeft: 15\n }\n };\n}\n\nexport { commonInlineStyleGroupsCookieProperty };","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 h(Fragment, null, !!purpose && h(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), h(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), h(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicyUrl && h(CookieProperty, {\n label: i18n.providerPrivacyPolicyUrl,\n value: providerPrivacyPolicyUrl\n }), !!ePrivacyUSAEnabled && h(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 }) => h(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: h(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, h(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && h(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && h(CookieProperty, {\n label: i18n.host,\n value: h(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), h(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 _extends from \"@babel/runtime/helpers/extends\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { commonInlineStyleGroupsCookie } from \"../../..\";\nimport { CommonCheckbox } from \"../..\";\nimport { CookiePropertyList } from \".\";\n\nconst Cookie = ({\n cookie,\n checked,\n disabled,\n onToggleCheck,\n propertyListProps = {}\n}) => {\n const {\n name\n } = cookie;\n const bannerOrBlocker = useBannerOrBlocker();\n const {\n group: {\n descriptionFontSize\n }\n } = bannerOrBlocker;\n return h(\"div\", commonInlineStyleGroupsCookie(bannerOrBlocker), h(\"div\", {\n style: {\n marginBottom: 10\n }\n }, h(CommonCheckbox, {\n isChecked: checked,\n isDisabled: disabled,\n fontSize: descriptionFontSize,\n onClick: onToggleCheck\n }, h(\"strong\", null, name))), h(CookiePropertyList, _extends({\n cookie: cookie\n }, propertyListProps)));\n};\n\nexport { Cookie };","function commonInlineStyleGroupsCookie({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-cookie\",\n style: {\n marginTop: 10\n }\n };\n}\n\nexport { commonInlineStyleGroupsCookie };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { forwardRef } from \"react\";\nimport hintCss from \"hint.css/hint.min.css?inline-raw\";\nimport { usePlainCss } from \"../hooks\";\n/**\n * This is a very basic `hint.css` implementation for a tooltip.\n *\n * @see https://kushagra.dev/lab/hint/\n */\n// eslint-disable-next-line react/display-name\n\nconst Tooltip = /*#__PURE__*/forwardRef(({\n children,\n className,\n title,\n position = \"top\",\n color,\n size = \"large\",\n always,\n rounded,\n noAnimate,\n bounce,\n ...rest\n}, ref) => {\n usePlainCss(hintCss, \"hint-css\", true);\n return h(\"div\", _extends({\n style: {\n position: \"relative\",\n display: \"inline\"\n },\n ref: ref,\n \"aria-label\": title,\n className: \"hint--\".concat(position, \" hint--\").concat(size, \" \").concat(color ? \"hint--\".concat(color) : \"\", \" \").concat(always ? \"hint--always\" : \"\", \" \").concat(rounded ? \"hint--rounded\" : \"\", \" \").concat(noAnimate ? \"hint--no-animate\" : \"\", \" \").concat(bounce ? \"hint--bounce\" : \"\", \" \").concat(className || \"\")\n }, rest), children);\n});\nexport { Tooltip };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass BannerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nBannerContextFactory.context = void 0;\n\nfunction useBanner() {\n return useContext(BannerContextFactory.Context());\n}\n\nexport { BannerContextFactory, useBanner };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass BlockerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nBlockerContextFactory.context = void 0;\n\nfunction useBlocker() {\n return useContext(BlockerContextFactory.Context());\n}\n\nexport { BlockerContextFactory, useBlocker };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useState } from \"react\";\nimport { commonInlineStyleFooterLink, useBannerOrBlocker } from \"../../..\";\n\nconst FooterLink = ({\n children,\n ...anchorRest\n}) => {\n const bannerOrBlocker = useBannerOrBlocker();\n const [isHover, setIsHover] = useState(false);\n return h(\"a\", _extends({\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false)\n }, commonInlineStyleFooterLink(bannerOrBlocker, isHover), anchorRest), children);\n};\n\nexport { FooterLink };","import { scaleMobile } from \"../../scale\";\n\nfunction commonInlineStyleFooterLink({\n footerDesign: {\n fontSize,\n fontColor,\n hoverFontColor,\n fontInheritFamily,\n fontFamily\n },\n design: {\n linkTextDecoration\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}, isHover = false) {\n const style = {\n textDecoration: linkTextDecoration,\n fontSize: pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +fontSize) : +fontSize,\n color: isHover ? hoverFontColor : fontColor,\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n padding: \"0 5px\"\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-link\",\n style\n };\n}\n\nexport { commonInlineStyleFooterLink };","import { FooterLink } from \".\";\nimport { Tooltip } from \"../..\";\n\nconst FooterPoweredByLink = ({\n poweredLink,\n affiliate\n}) => {\n return h(FooterLink, {\n href: affiliate ? affiliate.link : poweredLink.href,\n target: poweredLink.target,\n key: \"powered-by\"\n }, h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: poweredLink.innerHTML\n }\n }), affiliate && h(Tooltip, {\n title: affiliate.description,\n position: \"top-left\"\n }, \" \", affiliate.labelBehind));\n};\n\nexport { FooterPoweredByLink };","import { Fragment } from \"react\";\n/**\n * Join together a set of JSX elements with a separator.\n *\n * @see https://stackoverflow.com/q/33577448/5506547\n */\n\nfunction jsxJoin(components, separator) {\n // Just to be sure, remove falsy values so we can add conditionals to the components array\n const filtered = components.filter(Boolean);\n return filtered.length === 0 ? null : filtered.reduce((acc, curr, i) => acc.length ? [...acc, // Wrap the separator in a fragment to avoid `missing key` issues\n h(Fragment, {\n key: i\n }, separator), curr] : [curr], []);\n}\n\nexport { jsxJoin };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback, Fragment } from \"react\";\nimport { useBannerOrBlocker, useLegalLinks } from \"..\";\nimport { FooterLink, FooterPoweredByLink } from \"../../components\";\nimport { jsxJoin } from \"../../utils\";\n\nfunction useCommonFooterLinks({\n onClose,\n putPoweredByLinkInRow,\n row1\n} = {}) {\n const {\n i18n: {\n close\n },\n footerDesign: {\n poweredByLink,\n linkTarget\n },\n poweredLink,\n affiliate\n } = useBannerOrBlocker();\n const {\n linkPrivacyPolicy,\n linkImprint\n } = useLegalLinks();\n const targetAttributes = linkTarget === \"_blank\" ? {\n target: \"_blank\",\n rel: \"noopener\"\n } : {};\n const rows = [// Row 1\n [onClose && h(FooterLink, {\n href: \"#\",\n onClick: onClose,\n key: \"close\"\n }, h(\"strong\", null, close)), ...(row1 || []), linkPrivacyPolicy && h(FooterLink, _extends({\n href: linkPrivacyPolicy.url\n }, targetAttributes, {\n key: \"privacyPolicy\"\n }), linkPrivacyPolicy.label), linkImprint && h(FooterLink, _extends({\n href: linkImprint.url\n }, targetAttributes, {\n key: \"imprint\"\n }), linkImprint.label)].filter(Boolean), // Row 2\n [] // Nothing yet\n ];\n\n if (!!poweredLink && poweredByLink) {\n rows[putPoweredByLinkInRow || 0].push(h(FooterPoweredByLink, {\n key: \"poweredBy\",\n poweredLink: poweredLink,\n affiliate: affiliate\n }));\n }\n\n const render = useCallback(rows => jsxJoin(rows.map(row => row.length ? h(Fragment, {\n key: row[0].key\n }, jsxJoin(row, h(Fragment, null, \" \\u2022 \"))) : null), h(\"br\", null)), []);\n return {\n rows,\n render\n };\n}\n\nexport { useCommonFooterLinks };","import { useBannerOrBlocker, useLegalLinks } from \"..\";\n\nfunction joinWithAndSeparator(arr, andSeparator) {\n if (arr.length > 1) {\n arr.splice(arr.length - 1, 0, \"{{andSeparator}}\");\n }\n\n return arr.join(\", \").replace(/,\\s+{{andSeparator}},\\s+/g, andSeparator);\n}\n/**\n * @see https://gist.github.com/unruthless/413930\n * @see https://stackoverflow.com/a/23630325/5506547\n */\n\n\nconst supWithLineHeightFix = '<sup style=\"vertical-align:top;line-height:100%;position:initial;\">';\n\nfunction useCommonTeachings({\n disableDataProcessingInUnsafeCountries,\n disableAgeNotice,\n disableListServicesNotice\n} = {}) {\n const {\n blocker,\n groups,\n ePrivacyUSA: isEPrivacyUSA,\n ageNotice: isAgeNotice,\n listServicesNotice: isListServicesNotice,\n texts: {\n description,\n ePrivacyUSA,\n ageNoticeBanner,\n listServicesNotice,\n consentForwardingExternalHosts: consentForwardingExternalHostsText\n },\n tcf,\n consentForwardingExternalHosts,\n individualPrivacyOpen,\n individualTexts: {\n description: individualDescription\n },\n essentialGroup,\n i18n: {\n andSeparator,\n tcf: tcfBannerI18n\n },\n keepVariablesInTexts\n } = useBannerOrBlocker();\n const {\n linkPrivacyPolicy\n } = useLegalLinks(); // Description text (combination of configured text and Consent Forwarding)\n\n let consentForwardingExternalHostsFinalText = \"\";\n\n if (consentForwardingExternalHosts && !keepVariablesInTexts) {\n consentForwardingExternalHostsFinalText = consentForwardingExternalHostsText.replace(/{{websites}}/g, consentForwardingExternalHosts.join(\", \"));\n }\n\n let useDescription = [blocker ? blocker.description : individualPrivacyOpen ? individualDescription : description, consentForwardingExternalHostsFinalText].filter(Boolean).join(\" \");\n\n if (!keepVariablesInTexts) {\n // Place policy link into the text https://regex101.com/r/ayeFVy/1\n useDescription = useDescription.replace(/{{privacyPolicy}}(.*){{\\/privacyPolicy}}/g, linkPrivacyPolicy ? \"<a href=\\\"\".concat(linkPrivacyPolicy.url, \"\\\" style=\\\"text-decoration:underline;color:inherit;\\\" onmouseenter=\\\"this.style.textDecoration='none'\\\" onmouseleave=\\\"this.style.textDecoration='underline'\\\" target=\\\"_blank\\\">$1</a>\") : \"$1\");\n } // Teaching: Data processing in unsafe countries (formerly USA ePrivacy)\n\n\n const servicesProcessingUnsafeCountries = groups.map(({\n items\n }) => items.filter(({\n ePrivacyUSA\n }) => ePrivacyUSA)).flat();\n const tcfVendorsProcessingUnsafeCountries = process.env.IS_TCF && tcf ? Object.values(tcf.gvl.vendors).filter(vendor => {\n var _additionalInformatio;\n\n return ((_additionalInformatio = vendor.additionalInformation) === null || _additionalInformatio === void 0 ? void 0 : _additionalInformatio.internationalTransfers) || tcf.original.vendorConfigurations[vendor.id].ePrivacyUSA === 1;\n }) : [];\n let useDataProcessingInUnsafeCountries = !disableDataProcessingInUnsafeCountries && (servicesProcessingUnsafeCountries.length > 0 || tcfVendorsProcessingUnsafeCountries.length > 0) && isEPrivacyUSA ? ePrivacyUSA : \"\"; // Teaching: Age notice\n\n const useAgeNotice = isAgeNotice && !disableAgeNotice ? ageNoticeBanner : \"\"; // Teaching: List services notice\n\n let useListServicesNotice = \"\";\n\n if (isListServicesNotice && !disableListServicesNotice) {\n const hasBothPlaceholders = listServicesNotice.indexOf(\"{{services}}\") > -1 && listServicesNotice.indexOf(\"{{serviceGroups}}\") > -1;\n const nonEssentialGroups = groups.filter(({\n slug\n }) => slug !== essentialGroup);\n const flattenSeparator = \"~;~\";\n const listServicesNames = joinWithAndSeparator(nonEssentialGroups.map(({\n items\n }, groupIdx) => items.map(({\n name,\n ePrivacyUSA\n }) => \"\".concat(name).concat(supWithLineHeightFix).concat([hasBothPlaceholders ? groupIdx + 1 : \"\", useDataProcessingInUnsafeCountries && ePrivacyUSA ? \"U\" : \"\"].filter(Boolean).join(\",\"), \"</sup>\")).join(flattenSeparator)).join(flattenSeparator).split(flattenSeparator), andSeparator);\n\n if (listServicesNames) {\n const listServiceGroupsNames = joinWithAndSeparator(nonEssentialGroups.map(({\n name\n }, groupIdx) => \"\".concat(name).concat(supWithLineHeightFix).concat(hasBothPlaceholders ? groupIdx + 1 : \"\", \"</sup>\")), andSeparator);\n useListServicesNotice = \"<span>\".concat(listServicesNotice, \"</span>\").concat(tcf && !individualPrivacyOpen ? \" <span>\".concat(tcfBannerI18n.listOfServicesAppendix, \"</span>\") : \"\");\n\n if (!keepVariablesInTexts) {\n // Place service list into the text\n useListServicesNotice = useListServicesNotice.replace(/{{services}}/g, listServicesNames) // Place service group list into the text\n .replace(/{{serviceGroups}}/g, listServiceGroupsNames);\n }\n\n if (useDataProcessingInUnsafeCountries) {\n useDataProcessingInUnsafeCountries += \"\".concat(supWithLineHeightFix, \"U</sup>\");\n }\n }\n }\n\n return {\n description: useDescription,\n teachings: [useDataProcessingInUnsafeCountries, useAgeNotice, useListServicesNotice].filter(Boolean)\n };\n}\n\nexport { useCommonTeachings };","import { useBanner, useBlocker } from \"../contexts\";\n\n/**\n * Use one of the available banner or blocker contexts as union typed.\n */\nfunction useBannerOrBlocker() {\n const banner = useBanner();\n const blocker = useBlocker(); // Check for a common context property in an available context as it is never `undefined`\n\n return banner.groups ? banner : blocker;\n}\n\nexport { useBannerOrBlocker };","import { useBannerOrBlocker } from \".\";\n\nfunction useLegalLinks() {\n const {\n legal: {\n privacyPolicy,\n privacyPolicyExternalUrl,\n privacyPolicyIsExternalUrl,\n privacyPolicyLabel,\n imprint,\n imprintExternalUrl,\n imprintIsExternalUrl,\n imprintLabel\n },\n pageByIdUrl\n } = useBannerOrBlocker();\n const pageIdToPermalink = useBannerOrBlocker().pageIdToPermalink || {};\n let linkPrivacyPolicy = privacyPolicy > 0 ? pageIdToPermalink[privacyPolicy] || \"\".concat(pageByIdUrl, \"=\").concat(privacyPolicy) : undefined;\n let linkImprint = imprint > 0 ? pageIdToPermalink[imprint] || \"\".concat(pageByIdUrl, \"=\").concat(imprint) : undefined;\n\n if (privacyPolicyIsExternalUrl) {\n linkPrivacyPolicy = privacyPolicyExternalUrl;\n }\n\n if (imprintIsExternalUrl) {\n linkImprint = imprintExternalUrl;\n }\n\n return {\n linkPrivacyPolicy: privacyPolicyLabel && linkPrivacyPolicy ? {\n url: linkPrivacyPolicy,\n label: privacyPolicyLabel\n } : false,\n linkImprint: imprintLabel && linkImprint ? {\n url: linkImprint,\n label: imprintLabel\n } : false\n };\n}\n\nexport { useLegalLinks };","import { useMemo, useLayoutEffect } from \"react\";\nlet counter = 0;\n/**\n * Dynamically creates a style-tag in your head with a given plain CSS string.\n */\n\nfunction usePlainCss(css, uniqueId, keep) {\n const id = useMemo(() => \"react-use-plain-css-\".concat(uniqueId || (counter++).toString(36)), []);\n useLayoutEffect(() => {\n let element = document.getElementById(id);\n\n if (!element) {\n element = document.createElement(\"style\");\n element.style.type = \"text/css\";\n element.id = id;\n document.getElementsByTagName(\"head\")[0].appendChild(element);\n }\n\n element.innerHTML = css;\n return () => {\n if (!keep) {\n var _element$parentNode;\n\n (_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 ? void 0 : _element$parentNode.removeChild(element);\n }\n };\n }, [css, keep]);\n return id;\n}\n\nexport { usePlainCss };","import { scaleMobile } from \"../../scale\";\n\nfunction commonInlineStyleBodyTeaching({\n bodyDesign: {\n teachingsInheritTextAlign,\n teachingsTextAlign,\n teachingsInheritFontSize,\n teachingsFontSize,\n teachingsInheritFontColor,\n teachingsFontColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only given for banner\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-teachings\",\n style: {\n marginTop: 7,\n display: \"inline-block\",\n textAlign: teachingsInheritTextAlign ? undefined : teachingsTextAlign,\n fontSize: teachingsInheritFontSize ? undefined : pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +teachingsFontSize) : +teachingsFontSize,\n color: teachingsInheritFontColor ? undefined : teachingsFontColor\n }\n };\n}\n\nexport { commonInlineStyleBodyTeaching };","function commonInlineStyleBodyTeachingsSeparator({\n layout: {\n borderRadius\n },\n bodyDesign: {\n teachingsSeparatorActive,\n teachingsSeparatorWidth,\n teachingsSeparatorHeight,\n teachingsSeparatorColor\n },\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-teachings-separator\",\n style: {\n marginTop: 7,\n display: \"inline-block\",\n maxWidth: \"100%\",\n borderRadius: +borderRadius,\n width: +teachingsSeparatorWidth,\n height: teachingsSeparatorActive ? +teachingsSeparatorHeight : 0,\n background: teachingsSeparatorColor\n }\n };\n}\n\nexport { commonInlineStyleBodyTeachingsSeparator };","function commonGroupsInlineStyleLinkMore({\n design: {\n linkTextDecoration\n },\n group: {\n linkColor,\n linkHoverColor\n },\n customCss: {\n antiAdBlocker\n }\n}, isHover) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group-more\",\n style: {\n color: isHover ? linkHoverColor : linkColor,\n textDecoration: linkTextDecoration\n }\n };\n}\n\nexport { commonGroupsInlineStyleLinkMore };","import { scaleMobile } from \"../..\";\n\nfunction commonInlineStyleHeaderHeadline({\n headerDesign: {\n fontSize,\n fontColor,\n fontInheritFamily,\n fontFamily,\n fontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}, hasCloseIcon) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-headline\",\n style: {\n color: fontColor,\n lineHeight: 1.8,\n fontSize: pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +fontSize) : +fontSize,\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n fontWeight,\n paddingRight: hasCloseIcon ? 20 : undefined\n }\n };\n}\n\nexport { commonInlineStyleHeaderHeadline };","const calculateNewVal = (val, scalePercent) => {\n let newVal = val;\n newVal = val / 100 * scalePercent;\n newVal = newVal < 1 ? 1 : newVal;\n return newVal;\n};\n/**\n * Calculate the new value for an inline style value and respect the scaling options.\n */\n\n\nfunction scaleMobile({\n enabled,\n scalePercent,\n scalePercentVertical\n}, useWidthOfThisContainerId, original, replaceWith, additionalVerticalScaling = false) {\n if (process.env.PLUGIN_CTX === \"pro\") {\n /* Silence is golden... Until you have PRO Version! */\n }\n\n return original;\n}\n\nexport { scaleMobile };","import { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\nwindow.rcbPoweredByCacheOuterHTML = \"\";\n/**\n * Get the server-side-rendered powered by link.\n */\n\nfunction getSsrPoweredByLink(id) {\n const originalPoweredLink = document.getElementById(id);\n const poweredLink = document.createElement(\"div\");\n\n if (window.rcbPoweredByCacheOuterHTML) {\n // We have cached the link as we remove it from the DOM\n poweredLink.innerHTML = window.rcbPoweredByCacheOuterHTML;\n } else if (matchingSelector(originalPoweredLink, \"a\") && originalPoweredLink.innerHTML.toLowerCase().indexOf(\"Real Cookie Banner\")) {\n window.rcbPoweredByCacheOuterHTML = originalPoweredLink.outerHTML;\n poweredLink.innerHTML = window.rcbPoweredByCacheOuterHTML;\n originalPoweredLink.parentNode.removeChild(originalPoweredLink);\n }\n\n return poweredLink.children[0];\n}\n\nexport { getSsrPoweredByLink };","function matchingSelector(element, selector) {\n const proto = typeof Element !== \"undefined\" ? Element.prototype : {};\n const nativeFunction = proto.matches || proto.matchesSelector || proto.webkitMatchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector;\n\n if (!element || element.nodeType !== 1 || !element.parentElement) {\n return false;\n }\n\n if (nativeFunction) {\n return nativeFunction.call(element, selector);\n }\n\n const matchingElements = element.parentElement.querySelectorAll(selector);\n\n for (const matchIdx in matchingElements) {\n if (matchingElements[matchIdx] === element) {\n return true;\n }\n }\n\n return false;\n}\n\nexport { matchingSelector };","import { trailingslashit, untrailingslashit } from \"../../helpers\";\nimport { RouteHttpVerb } from \".\";\nimport deepMerge from \"deepmerge\";\nimport qs from \"querystringify\";\nimport Cookie from \"js-cookie\";\nimport sha1 from \"sha-1\";\n\nfunction applyQueryString(url, query, merge) {\n url.search = qs.stringify(merge ? deepMerge.all([...query, qs.parse(url.search)]) : query, true);\n return url;\n}\n/**\n * Build an URL for a specific scheme.\n *\n * @param param0\n */\n\n\nfunction commonUrlBuilder({\n location,\n params = {},\n nonce = true,\n options,\n cookieValueAsParam\n}) {\n const apiUrl = new URL(options.restRoot);\n const query = qs.parse(apiUrl.search);\n const permalinkPath = query.rest_route || apiUrl.pathname; // Determine path from permalink settings\n // Find dynamic parameters from URL bindings (like /user/:id)\n\n const foundParams = [];\n const path = location.path.replace(/:([A-Za-z0-9-_]+)/g, (match, group) => {\n foundParams.push(group);\n return params[group];\n });\n const getParams = {}; // Find undeclared body params (which are not bind above) and add it to GET query\n\n for (const checkParam of Object.keys(params)) {\n if (foundParams.indexOf(checkParam) === -1) {\n getParams[checkParam] = params[checkParam]; // We do not need `encodeURIComponent` as it is supported by `querystringify` already\n }\n } // Calculate invalidator for cookie values\n\n\n if (cookieValueAsParam) {\n getParams._httpCookieInvalidate = sha1(JSON.stringify(cookieValueAsParam.map(Cookie.get)));\n } // Force protocol from parent location\n\n\n apiUrl.protocol = window.location.protocol; // Set path depending on permalink settings\n\n const usePath = trailingslashit(permalinkPath) + untrailingslashit(location.namespace || options.restNamespace) + path;\n\n if (query.rest_route) {\n query.rest_route = usePath; // eslint-disable-line @typescript-eslint/naming-convention\n } else {\n apiUrl.pathname = usePath; // Set path\n } // Append WordPress REST nonce\n\n\n if (nonce && options.restNonce) {\n query._wpnonce = options.restNonce;\n } // Determine if non-GET verbs should always use `POST`\n\n\n applyQueryString(apiUrl, query);\n\n if ([\"wp-json/\", \"rest_route=\"].filter(s => apiUrl.toString().indexOf(s) > -1).length > 0 && location.method && location.method !== RouteHttpVerb.GET) {\n applyQueryString(apiUrl, [{\n _method: location.method\n }], true);\n } // Build final search\n\n\n applyQueryString(apiUrl, [options.restQuery, getParams], true);\n return apiUrl.toString();\n}\n\nexport { commonUrlBuilder, applyQueryString, qs };","const pool = {};\nconst recreateFetchPool = {};\n/**\n * A REST nonce in WordPress is only valid for 12 hours (can be configured). However, if it gets\n * invalid, the REST endpoints return a `403` error which signals us, we should recreate the nonce.\n * To avoid multiple recreations, we memorize the newly created nonce in a pool.\n */\n\nasync function nonceDeprecationPool(nonce, restRecreateNonceEndpoint) {\n if (typeof restRecreateNonceEndpoint !== \"undefined\") {\n const resultPromise = // Reuse already sent request\n recreateFetchPool[nonce] || new Promise( // eslint-disable-next-line no-async-promise-executor\n async (resolve, reject) => {\n try {\n const recreateFetch = await window.fetch(restRecreateNonceEndpoint);\n\n if (recreateFetch.ok) {\n const newNonce = await recreateFetch.text();\n\n if (nonce === newNonce) {\n reject();\n } else {\n pool[nonce] = newNonce;\n resolve(newNonce);\n }\n } else {\n reject();\n }\n } catch (e) {\n reject();\n }\n });\n recreateFetchPool[nonce] = resultPromise;\n return resultPromise;\n } else {\n if (typeof nonce === \"undefined\") {\n return undefined;\n } // Wait until all nonces are refreshed\n\n\n await Promise.all(Object.values(recreateFetchPool));\n let returnNonce = nonce;\n\n while (pool[returnNonce]) {\n returnNonce = pool[returnNonce];\n\n if (pool[returnNonce] === nonce) {\n break;\n }\n }\n\n return Promise.resolve(returnNonce);\n }\n}\n\nexport { nonceDeprecationPool };","import { RouteHttpVerb } from \".\";\n/**\n * Get the result of the `Response`. It also handles multiline responses, e. g.\n * a PHP `Notice:` message is output through a conflicting plugin:\n *\n * If you are using a verb like `DELETE` or `PUT` the response may be empty and this\n * function will return `undefined`.\n *\n * @see https://developer.mozilla.org/de/docs/Web/HTTP/Methods/DELETE\n */\n\nasync function parseResult(url, result, method) {\n const cloneForFallback = result.clone();\n\n try {\n return await result.json();\n } catch (e) {\n // Something went wrong, try each line as result of a JSON string\n const body = await cloneForFallback.text(); // Respect empty responses for given verbs (DELETE, PUT)\n\n if (body === \"\" && [RouteHttpVerb.DELETE, RouteHttpVerb.PUT].indexOf(method) > -1) {\n return undefined;\n }\n\n console.warn(\"The response of \".concat(url, \" contains unexpected JSON, try to resolve the JSON line by line...\"), {\n body\n });\n let lastError;\n\n for (const line of body.split(\"\\n\")) {\n if (line.startsWith(\"[\") || line.startsWith(\"{\")) {\n try {\n return JSON.parse(line);\n } catch (e) {\n lastError = e;\n }\n }\n }\n\n throw lastError;\n }\n}\n\nexport { parseResult };","import { parseResult, nonceDeprecationPool, applyQueryString, commonUrlBuilder, RouteHttpVerb } from \".\";\nimport deepMerge from \"deepmerge\";\nimport jsonFormData from \"json-form-data\";\nconst CONTENT_TYPE_JSON = \"application/json;charset=utf-8\"; // Fix: Return type of exported function has or is using name 'FormatOptions'\n// from external module \"/home/mg/vscode-workspace/devowl-wp/node_modules/@types/json-form-data/index\" but cannot be named.\n// type MultiPartOptions = Parameters<typeof jsonFormData>[1];\n\n/**\n * Build and execute a specific REST query.\n *\n * @see urlBuilder\n * @returns Result of REST API\n * @throws\n */\nasync function commonRequest({\n location,\n options,\n request: routeRequest,\n params,\n settings = {},\n cookieValueAsParam,\n multipart = false,\n sendRestNonce = true\n}) {\n const url = commonUrlBuilder({\n location,\n params,\n nonce: false,\n options,\n cookieValueAsParam\n }); // Use global parameter (see https://developer.wordpress.org/rest-api/using-the-rest-api/global-parameters/)\n\n if ([\"wp-json/\", \"rest_route=\"].filter(s => url.indexOf(s) > -1).length > 0 && location.method && location.method !== RouteHttpVerb.GET) {\n settings.method = RouteHttpVerb.POST;\n } else {\n settings.method = location.method || RouteHttpVerb.GET;\n } // Request with GET/HEAD method cannot have body\n\n\n const apiUrl = new URL(url);\n const allowBody = [\"HEAD\", \"GET\"].indexOf(settings.method) === -1;\n\n if (!allowBody && routeRequest) {\n applyQueryString(apiUrl, [routeRequest], true);\n }\n\n const apiUrlBuilt = apiUrl.toString(); // Determine body\n\n let body;\n\n if (allowBody) {\n if (multipart) {\n // Let's create a multipart request...\n body = jsonFormData(routeRequest, typeof multipart === \"boolean\" ? {} : multipart);\n } else {\n // It is a usual JSON request, we do not need to send a multipart request\n body = JSON.stringify(routeRequest);\n }\n } // Do the request\n\n\n const restNonce = await nonceDeprecationPool(options.restNonce);\n const hasRestNonce = typeof restNonce !== \"undefined\";\n const init = deepMerge.all([settings, {\n headers: { ...(typeof body === \"string\" ? {\n \"Content-Type\": CONTENT_TYPE_JSON\n } : {}),\n ...(hasRestNonce && sendRestNonce ? {\n \"X-WP-Nonce\": restNonce\n } : {}),\n Accept: \"application/json, */*;q=0.1\"\n }\n }]);\n init.body = body; // Do not make body merge-able\n\n const result = await window.fetch(apiUrlBuilt, init); // `window.fetch` does not throw an error if the server response an error code.\n\n if (!result.ok) {\n let responseJSON = undefined;\n let replay = false;\n\n try {\n responseJSON = await parseResult(apiUrlBuilt, result, location.method); // wordpress.com private site compatibility\n\n /* istanbul ignore if */\n\n if (responseJSON.code === \"private_site\" && result.status === 403 && hasRestNonce && !sendRestNonce) {\n replay = true;\n } // Refresh nonce automatically\n\n /* istanbul ignore if */\n\n\n if (responseJSON.code === \"rest_cookie_invalid_nonce\" && hasRestNonce) {\n const {\n restRecreateNonceEndpoint\n } = options;\n\n try {\n await nonceDeprecationPool(restNonce, restRecreateNonceEndpoint);\n replay = true;\n } catch (e) {// Silence is golden.\n }\n }\n } catch (e) {// Silence is golden.\n }\n\n if (replay) {\n return await commonRequest({\n location,\n options,\n multipart,\n params,\n request: routeRequest,\n sendRestNonce: true,\n settings\n });\n } // Set this request as failing so the endpoint is probably corrupt (see `corruptRestApi.tsx`)\n\n\n settings.method === RouteHttpVerb.GET && (window.detectCorruptRestApiFailed = (window.detectCorruptRestApiFailed || 0) + 1);\n const resultAny = result;\n resultAny.responseJSON = responseJSON;\n throw resultAny;\n }\n\n return parseResult(apiUrlBuilt, result, location.method);\n}\n\nexport { commonRequest };","var RouteHttpVerb;\n\n(function (RouteHttpVerb) {\n RouteHttpVerb[\"GET\"] = \"GET\";\n RouteHttpVerb[\"POST\"] = \"POST\";\n RouteHttpVerb[\"PUT\"] = \"PUT\";\n RouteHttpVerb[\"DELETE\"] = \"DELETE\";\n RouteHttpVerb[\"PATCH\"] = \"PATCH\";\n})(RouteHttpVerb || (RouteHttpVerb = {}));\n\nexport { RouteHttpVerb };","const untrailingslashit = str => str.endsWith(\"/\") || str.endsWith(\"\\\\\") ? untrailingslashit(str.slice(0, -1)) : str;\n\nconst trailingslashit = str => \"\".concat(untrailingslashit(str), \"/\"); // Allows to make an interface extension and make some properties optional (https://git.io/JeK6J)\n\n\n/**\n * You need to manually put the following code snippet in each of your entry points to enable\n * \"on the fly\" public path for chunks:\n *\n * ```\n * __webpack_public_path__ = getWebpackPublicPath(process.env.slug);\n * ```\n *\n * @see https://webpack.js.org/guides/public-path/#on-the-fly\n */\nconst getWebpackPublicPath = slug => {\n const options = window[slug.replace(/-([a-z])/g, g => g[1].toUpperCase())];\n return \"\".concat(options.publicUrl).concat(options.chunkFolder, \"/\");\n};\n\nexport { untrailingslashit, trailingslashit, getWebpackPublicPath };","import { getOtherOptionsFromWindow } from \"../utils\";\nimport { HTML_ATTRIBUTE_COOKIE_IDS, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_BY, OPT_IN_CONTENT_BLOCKER } from \"@devowl-wp/headless-content-unblocker\";\nimport { regExpPatternFromWildcardName } from \"@devowl-wp/cookie-consent-web-client\";\n/**\n * `window.consentApi.unblock`: Check if a given URL / string is blocked by a Content Blocker:\n *\n * - When a Content Blocker exists, the Promise is only resolved after given consent\n * - When no Content Blocker exists, the Promise is immediate resolved\n *\n * Example (ES5):\n * ```js\n * (window.consentApi && window.consentApi.unblock(\"player.vimeo.com\") || Promise.resolve()).then(function() {\n * console.log(\"Consent for Vimeo given, unlock content...!\");\n * });\n * ```\n *\n * Example (ES6, Babel, TS):\n * ```js\n * (window.consentApi?.unblock(\"player.vimeo.com\") || Promise.resolve()).then(() => {\n * console.log(\"Consent for Vimeo given, unlock content...!\");\n * });\n * ```\n *\n * @param url\n * @param ref Create a visual content blocker to a given HTML element\n */\n\nfunction unblock(url, ref = document.createElement(\"div\")) {\n return new Promise(resolve => {\n // Find matching blocker\n let found;\n const {\n blocker\n } = getOtherOptionsFromWindow();\n const isPseudoRef = !ref.parentElement;\n\n loop1: for (const row of blocker) {\n const {\n rules\n } = row; // Check if host matches\n\n for (const rule of rules) {\n const regexp = regExpPatternFromWildcardName(rule);\n\n if (url.match(regexp)) {\n found = row;\n break loop1;\n }\n }\n }\n\n if (found) {\n // Add attributes to DOM element so it can be consumed by `manipulateDom`\n ref.setAttribute(HTML_ATTRIBUTE_BY, \"services\");\n ref.setAttribute(HTML_ATTRIBUTE_COOKIE_IDS, found.services.join(\",\"));\n ref.setAttribute(HTML_ATTRIBUTE_BLOCKER_ID, found.id.toString());\n ref.addEventListener(OPT_IN_CONTENT_BLOCKER, () => {\n isPseudoRef && ref.remove();\n resolve();\n }); // Append blocking element to HTML DOM if not already exists\n\n if (isPseudoRef) {\n document.body.appendChild(ref);\n }\n } else {\n resolve();\n }\n });\n}\n\nexport { unblock };","import { supportsCookies } from \"../utils\";\n/**\n * Does the current browser support cookies?\n */\n\nconst preDecisionGatewaySupportsCookies = async ({\n supportsCookiesName\n}) => {\n return supportsCookies(supportsCookiesName) ? false : \"essentials\";\n};\n\nexport { preDecisionGatewaySupportsCookies };","import isbot from \"isbot\";\n/**\n * Is the current browser a spider / crawler?\n */\n\nfunction isCrawler() {\n const {\n userAgent\n } = navigator;\n\n if (userAgent) {\n // Lighthouse / Google PageSpeed isn't currently a bot (https://git.io/J3r5z)\n if (/chrome-lighthouse/i.test(userAgent)) {\n return false;\n }\n\n return isbot(userAgent);\n }\n\n return false;\n}\n\nexport { isCrawler };","import { getUserDecision } from \"../decision\";\nimport { isCrawler, promiseTimeout } from \"../utils\";\n\n/**\n * Dynamically allow to get a predecision with a extra request to an external API.\n * If your server does not respond within a given timeout or with an error, it automatically\n * continues with the predecisions. Otherwise, the predecision of the response is used.\n */\nconst preDecisionGatewayDynamicRequest = (request, timeout = 10000, active = true) => async ({\n decisionCookieName,\n revisionHash\n}) => {\n if (isCrawler() || !active) {\n // Ignore unnecessary requests\n return false;\n } // Check if revision has changed, and probably access our dynamic predecision again\n\n\n const decision = getUserDecision(decisionCookieName);\n\n if (decision) {\n const {\n revision\n } = decision;\n\n if (revisionHash === revision) {\n // Still the same revision, so we can simply accept our consent as it is still the predecision we had previously\n return \"consent\";\n }\n }\n\n try {\n const {\n predecision\n } = await promiseTimeout(request(), timeout);\n return predecision;\n } catch (e) {\n return false;\n }\n};\n\nexport { preDecisionGatewayDynamicRequest };","/**\n * Let a `Promise` be rejected after a given amount of time.\n */\nfunction promiseTimeout(promise, ms) {\n return new Promise((resolve, reject) => {\n promise.then(resolve, reject);\n const e = new Error(\"Timed out\");\n setTimeout(reject, ms, e);\n });\n}\n\nexport { promiseTimeout };","import { getUserDecision } from \"../decision\";\nimport { isDoNotTrack } from \"../utils\";\n\n/**\n * When the user has \"Do not track\" enabled and is allowed to use, let's automatically\n * save the dialog without any action.\n */\nconst preDecisionGatewayIsDoNotTrack = (active = true) => async ({\n decisionCookieName,\n groups,\n essentialGroupSlug\n}) => {\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug);\n\n if (getUserDecision(decisionCookieName) !== false || !active) {\n return false;\n } // As soon we have a legitimate interest, we need to show the cookie banner\n\n\n for (const group of groups) {\n if (group !== essentialGroupObj) {\n for (const {\n legalBasis\n } of group.items) {\n if (legalBasis === \"legitimate-interest\") {\n return false;\n }\n }\n }\n }\n\n return isDoNotTrack() ? \"dnt\" : false;\n};\n\nexport { preDecisionGatewayIsDoNotTrack };","/**\n * Checks if the given browser is requesting \"Do Not Track\" header.\n *\n * @see https://dev.to/corbindavenport/how-to-correctly-check-for-do-not-track-with-javascript-135d\n */\nfunction isDoNotTrack() {\n try {\n const w = window;\n\n if (w.doNotTrack || w.navigator.doNotTrack || w.navigator.msDoNotTrack || \"msTrackingProtectionEnabled\" in w.external) {\n // The browser supports Do Not Track!\n if (w.doNotTrack == \"1\" || w.navigator.doNotTrack == \"yes\" || w.navigator.doNotTrack == \"1\" || w.navigator.msDoNotTrack == \"1\" || w.external.msTrackingProtectionEnabled()) {\n return true;\n }\n }\n } catch (e) {// Silence is golden.\n }\n\n return false;\n}\n\nexport { isDoNotTrack };","import { getUserDecision } from \"../decision\";\n/**\n * Has the user already consent to the latest requested revision (hash)?\n */\n\nconst preDecisionGatewayUserConsent = async ({\n decisionCookieName,\n revisionHash\n}) => {\n const decision = getUserDecision(decisionCookieName);\n\n if (decision === false) {\n return false;\n }\n\n const {\n revision\n } = decision;\n return revisionHash === revision ? \"consent\" : false;\n};\n\nexport { preDecisionGatewayUserConsent };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentDynamicPredecisionGet = {\n path: \"/consent/dynamic-predecision\",\n method: RouteHttpVerb.POST\n};","/**\n * Checks if the given banner is not visible due to legal settings.\n */\nfunction isHiddenDueLegal(banner) {\n const {\n legal: {\n imprint,\n imprintHide,\n privacyPolicy,\n privacyPolicyHide\n },\n pageId\n } = banner;\n return [imprintHide && +imprint, privacyPolicyHide && +privacyPolicy].filter(Boolean).indexOf(pageId) > -1;\n}\n\nexport { isHiddenDueLegal };","import { useCallback, useMemo } from \"react\";\nimport { BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER } from \"../..\";\n/**\n * Depending on the current screen, calculate the animation to use.\n *\n * Currently, we do not support animations on resize as we cannot calculate the\n * width of the overlay container as it does not exist on first render cycle of React.\n *\n * Drawback if animation only on mobile is enabled: if the window is first a mobile,\n * and the window gets resize it will reuse the animation on desktop again\n */\n\nfunction useBannerAnimation() {\n const clientWidth = useMemo(() => window.innerWidth, []);\n const isMobile = clientWidth < BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER; // Check if it is mobile Firefox, as it does not support `position:sticky;bottom:0;` and animations.\n // Effect: The buttons and footer are not visible.\n\n const isMobileFirefox = useMemo(() => {\n const userAgent = window.navigator.userAgent.toLowerCase();\n return [\"firefox\", \"gecko\", \"mobile\", \"android\"].map(term => userAgent.indexOf(term) > -1).filter(Boolean).length === 4;\n }, []);\n return useCallback(({\n animationIn,\n animationInOnlyMobile,\n animationOut,\n animationOutOnlyMobile\n }) => {\n let useAnimationIn = animationInOnlyMobile ? isMobile ? animationIn : \"none\" : animationIn;\n let useAnimationOut = animationOutOnlyMobile ? isMobile ? animationOut : \"none\" : animationOut;\n\n if (isMobileFirefox) {\n useAnimationIn = \"none\";\n useAnimationOut = \"none\";\n }\n\n return {\n useAnimationIn,\n useAnimationOut\n };\n }, []);\n}\n\nexport { useBannerAnimation };","export const BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER = 700;\nexport * from \"./types\";\nexport * from \"./contexts\";\nexport * from \"./hooks\";\nexport * from \"./inlineStyles\";\nexport * from \"./utils\";\nexport * from \"./components\";\nexport * from \"./others\";","import { createTcfModel } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst cancelEvent = e => {\n if (!e) {\n return;\n }\n\n e.preventDefault(); // Some themes (e.g. AKEA) do have listeners on each link separately and do a custom redirect\n\n e.stopPropagation();\n};\n\nfunction useBannerStateContextCallbacks({\n toggleOverlay,\n revokeConsent\n}) {\n const toggleWithActiveAction = (setContextValue, type) => setContextValue(state => {\n return { ...state,\n activeAction: type,\n individualPrivacyOpen: true,\n refreshSiteAfterSave: type === \"change\" ? 2000 : false,\n ...toggleOverlay(state, true)\n };\n });\n\n return {\n openHistory: (setContextValue, ...args) => {\n toggleWithActiveAction(setContextValue, \"history\");\n cancelEvent(args[0]);\n },\n openBanner: (setContextValue, ...args) => {\n toggleWithActiveAction(setContextValue, \"change\");\n cancelEvent(args[0]);\n },\n revokeConsent: (setContextValue, ...args) => {\n const [successMessage, e] = args;\n setContextValue(state => {\n revokeConsent(state).then(() => {\n successMessage && alert(successMessage); // Always reload (always wait 2s to ensure opt-out scripts are exeucted)\n // Fix iOS / Safari bug when we want to reload the page after a POST request\n\n setTimeout(() => window.location.reload(), 2000);\n }); // Do not change anything\n\n return state;\n });\n cancelEvent(e);\n },\n updateTcfFilterBy: (setContextValue, ...args) => {\n const [newFilter] = args;\n setContextValue(state => ({ ...state,\n tcfFilterBy: newFilter\n }));\n },\n updateIndividualPrivacyOpen: (setContextValue, ...args) => {\n const [opened] = args;\n setContextValue(state => ({ ...state,\n individualPrivacyOpen: opened\n }));\n },\n updateGroupChecked: (setContextValue, ...args) => {\n const [id, checked] = args;\n setContextValue(state => {\n const newConsent = JSON.parse(JSON.stringify(state.consent));\n\n if (checked) {\n newConsent.groups[id] = state.groups.filter(group => group.id === id)[0].items.map(({\n id\n }) => id);\n } else {\n delete newConsent.groups[id];\n }\n\n return { ...state,\n consent: newConsent,\n didGroupFirstChange: true\n };\n });\n },\n updateCookieChecked: (setContextValue, ...args) => {\n const [groupId, id, checked] = args;\n setContextValue(state => {\n const newConsent = JSON.parse(JSON.stringify(state.consent)); // Initially create \"selected\" cookies\n\n if (!newConsent.groups[groupId]) {\n newConsent.groups[groupId] = [];\n }\n\n const cookieIds = newConsent.groups[groupId];\n const indexOf = cookieIds.indexOf(id);\n\n if (checked && indexOf === -1) {\n cookieIds.push(id);\n } else if (!checked && indexOf > -1) {\n cookieIds.splice(indexOf, 1);\n } // Delete group entirely when no cookies selected\n\n\n if (!cookieIds.length) {\n delete newConsent.groups[groupId];\n }\n\n return { ...state,\n consent: newConsent\n };\n });\n },\n onClose: setContextValue => {\n setContextValue(state => {\n return { ...state,\n ...toggleOverlay(state, false),\n // This should be set always by you again as it is one-time\n refreshSiteAfterSave: false\n };\n });\n },\n selectHistoryEntry: (setContextValue, ...args) => {\n const [groups, consentGroups, tcf] = args;\n setContextValue(state => {\n const additionalChanges = {\n // In case we previously used non-TCF functionality, do not show the TCF banner\n isTcf: !!tcf,\n tcf: null\n };\n\n if (process.env.IS_TCF === \"1\" && tcf) {\n Object.assign(additionalChanges, {\n tcf: \"gvl\" in tcf ? tcf : createTcfModel(tcf)\n });\n }\n\n return { ...state,\n groups,\n consent: { ...state.consent,\n groups: consentGroups\n },\n ...additionalChanges\n };\n });\n }\n };\n}\n\nexport { useBannerStateContextCallbacks };","import { useEffect } from \"react\";\nimport { parents } from \"@devowl-wp/headless-content-unblocker\";\nimport { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\nimport { useBanner } from \"../..\";\nconst HREF_MATCHER = '[href^=\"#consent-\"]';\n/**\n * Listen to anchor links and execute the banner action:\n *\n * ```\n * #consent-change\n * #consent-history\n * #consent-revoke\n * ```\n */\n\nfunction useBannerActionLinks() {\n const {\n openBanner,\n openHistory,\n revokeConsent\n } = useBanner();\n useEffect(() => {\n const handleType = (type, successMessage, e) => {\n if (!openBanner) {\n // `useBannerActions` is not yet initialized.\n return;\n }\n\n switch (type) {\n case \"change\":\n openBanner(e);\n break;\n\n case \"history\":\n openHistory(e);\n break;\n\n case \"revoke\":\n revokeConsent(successMessage, e);\n break;\n\n default:\n break;\n }\n };\n\n const eventListenerDocumentClick = e => {\n if (!openBanner) {\n // `useBannerActions` is not yet initialized.\n return;\n } // Check if one of the parents has a valid hash link\n\n\n const element = e.target;\n parents(element, HREF_MATCHER).concat(matchingSelector(element, HREF_MATCHER) ? [element] : []).forEach(parent => {\n handleType(parent.getAttribute(\"href\").slice(9), parent.getAttribute(\"data-success-message\"), e);\n }); // @deprecated Old behavior with simple links like `#change`\n\n if (matchingSelector(element, \".rcb-sc-link\")) {\n handleType(element.getAttribute(\"href\").slice(1), element.getAttribute(\"data-success-message\"), e);\n }\n };\n\n const eventListenerHashChange = () => {\n const {\n hash\n } = window.location;\n\n if (hash.startsWith(\"#consent-\")) {\n handleType(hash.substring(9), undefined, undefined);\n }\n };\n\n window.addEventListener(\"hashchange\", eventListenerHashChange);\n document.addEventListener(\"click\", eventListenerDocumentClick, true);\n return () => {\n window.removeEventListener(\"hashchange\", eventListenerHashChange);\n document.removeEventListener(\"click\", eventListenerDocumentClick, true);\n };\n }, [openBanner, openHistory, revokeConsent]);\n}\n\nexport { useBannerActionLinks };","import { useEffect, useState } from \"react\";\n\nfunction useResettableAnimation(animation, duration) {\n const [i, setI] = useState(0);\n const [j, setJ] = useState(0);\n const [stateAnimation, setStateAnimation] = useState(animation);\n const [stateAnimationReset, setStateAnimationReset] = useState(undefined);\n const [stateDuration, setStateDuration] = useState(duration);\n const [stateDurationReset, setStateDurationReset] = useState(undefined); // Reset animation, save it temporary so when changing it, it needs to be to \"none\" and then the needed one\n\n useEffect(() => {\n // Avoid first rendering as the first is animated at mount-time\n if (i > 0) {\n if (animation === \"none\") {\n setStateAnimation(animation);\n } else {\n setStateAnimation(\"none\");\n setStateAnimationReset(animation);\n }\n }\n\n setI(i + 1);\n }, [animation]);\n useEffect(() => {\n // Avoid first rendering as the first is animated at mount-time\n if (j > 0) {\n if (duration === 0) {\n setStateDuration(duration);\n } else {\n setStateDuration(0);\n setStateDurationReset(duration);\n setStateAnimation(\"none\");\n setStateAnimationReset(animation);\n }\n }\n\n setJ(j + 1);\n }, [duration]);\n useEffect(() => {\n if (stateAnimationReset !== undefined) {\n setStateAnimation(stateAnimationReset);\n setStateAnimationReset(undefined);\n }\n }, [stateAnimationReset]);\n useEffect(() => {\n if (stateDurationReset !== undefined) {\n setStateDuration(stateDurationReset);\n setStateDurationReset(undefined);\n }\n }, [stateDurationReset]);\n return [stateAnimation, stateDuration];\n}\n\nexport { useResettableAnimation };","/**\n * @see https://stackoverflow.com/a/5624139/5506547\n * @param hex\n */\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport { hexToRgb };","import { hexToRgb } from \".\";\n\n/**\n * @param hex\n * @param alpha 0 - 100\n */\nfunction calculateRgba(hex, alpha) {\n const {\n r,\n g,\n b\n } = hexToRgb(hex);\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(alpha / 100, \")\");\n}\n\nexport { calculateRgba };","import { useState, useEffect } from \"react\";\n\nfunction getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDuration,\n animationOutDuration,\n animationInDelay,\n animationOutDelay\n}) {\n return isVisible ? {\n animation: animationIn,\n duration: animationInDuration,\n delay: animationInDelay\n } : {\n animation: animationOut,\n duration: animationOutDuration,\n delay: animationOutDelay\n };\n}\n/**\n * Ported from https://www.npmjs.com/package/react-animated-css due to high bundle size.\n */\n\n\nconst AnimatedCss = ({\n animateOnMount = true,\n isVisible = true,\n animationIn = \"fadeIn\",\n animationOut = \"fadeOut\",\n animationInDelay = 0,\n animationOutDelay = 0,\n animationInDuration = 1000,\n animationOutDuration = 1000,\n className = \"\",\n style = {},\n children\n}) => {\n const [{\n animation,\n duration,\n delay\n }, setAnimationRelatedState] = useState(animateOnMount ? getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDelay,\n animationOutDelay,\n animationInDuration,\n animationOutDuration\n }) : {\n animation: \"\",\n delay: undefined,\n duration: 0\n });\n useEffect(() => {\n setAnimationRelatedState(getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDelay,\n animationOutDelay,\n animationInDuration,\n animationOutDuration\n }));\n }, [isVisible, animationIn, animationOut, animationInDelay, animationOutDelay, animationInDuration, animationOutDuration]);\n const classes = \"animate__animated animate__\".concat(animation, \" \").concat(className);\n const backwardStyle = !animation ? {\n opacity: isVisible ? 1 : 0,\n transition: \"opacity \".concat(delay, \"ms\")\n } : {};\n return h(\"div\", {\n className: classes,\n style: {\n animationDelay: \"\".concat(delay, \"ms\"),\n animationDuration: \"\".concat(duration, \"ms\"),\n pointerEvents: isVisible ? \"all\" : \"none\",\n ...style,\n ...backwardStyle\n }\n }, children);\n};\n\nexport { AnimatedCss };","import { useEffect } from \"react\";\nimport { useBanner } from \"../contexts\";\nimport { usePlainCss } from \".\";\n/**\n * Pass an HTML refs and we will provide a root stylesheet with the height dimensions and variables\n * with the calculated height. This is needed as we need to do some positioning of header and footer.\n */\n\nfunction useRenderedHeightsAsCssVars(element, name) {\n const {\n pageRequestUuid4\n } = useBanner(); // We do directly modify the inline CSS as we do not want to trigger a rerender for the complete banner content\n\n const cssId = usePlainCss(\"\", \"useRenderedHeightsAsCssVars-\".concat(name));\n const cssElement = document.getElementById(cssId);\n useEffect(() => {\n let previousHeight = 0;\n\n const recalculate = () => {\n const currentHeight = element.getBoundingClientRect().height;\n\n if (previousHeight !== currentHeight) {\n previousHeight = currentHeight;\n cssElement.innerHTML = \"#\".concat(pageRequestUuid4, \"{--rendered-height-\").concat(name, \": \").concat(Math.floor(currentHeight), \"px;--rendered-height-raw-\").concat(name, \": \").concat(currentHeight, \"px}\");\n }\n };\n\n if (!element) {\n return () => {// Silence is golden.\n };\n } // Support animations\n\n\n const animateContainer = document.querySelector(\"#\".concat(pageRequestUuid4, \" div[class*=\\\"animate__\\\"]\"));\n animateContainer.addEventListener(\"animationend\", recalculate);\n\n if (window.ResizeObserver) {\n const ro = new ResizeObserver(recalculate);\n ro.observe(element);\n return () => {\n ro.disconnect();\n animateContainer.removeEventListener(\"animationend\", recalculate);\n };\n } else {\n const interval = setInterval(recalculate, 150);\n return () => {\n clearInterval(interval);\n animateContainer.removeEventListener(\"animationend\", recalculate);\n };\n }\n }, [element, name]);\n}\n\nexport { useRenderedHeightsAsCssVars };","import { useBanner } from \"../..\";\nimport { useCallback } from \"react\";\n/**\n * Provide callbacks for all the available button types in our cookie banner:\n *\n * - Accept all\n * - Continue without consent (accept essentials)\n * - Save custom choices (no changes to the current selected groups and services)\n * - Change individual privacy preferences\n */\n\nfunction useBannerButtonCallbacks() {\n const {\n individualPrivacyOpen,\n onSave,\n updateGroupChecked,\n updateCookieChecked,\n groups,\n essentialGroup,\n updateIndividualPrivacyOpen,\n activeAction,\n onClose\n } = useBanner();\n const buttonClickedAll = individualPrivacyOpen ? \"ind_all\" : \"main_all\";\n const buttonClickedEssentials = individualPrivacyOpen ? \"ind_essential\" : \"main_essential\";\n const buttonClickedCloseIcon = individualPrivacyOpen ? \"ind_close_icon\" : \"main_close_icon\";\n const buttonClickedCustom = individualPrivacyOpen ? \"ind_custom\" : \"main_custom\";\n const result = {\n buttonClickedAll,\n buttonClickedEssentials,\n buttonClickedCloseIcon,\n buttonClickedCustom,\n acceptAll: useCallback(() => {\n groups.forEach(g => updateGroupChecked(g.id, true));\n onSave(false, buttonClickedAll);\n }, [buttonClickedAll]),\n\n /**\n * This includes the complete \"Essential\" group + legal basis = legitimate interests.\n */\n acceptEssentials: useCallback((isCloseIcon = false) => {\n groups.forEach(({\n slug,\n id,\n items\n }) => {\n if (slug === essentialGroup) {\n updateGroupChecked(id, true);\n } else {\n for (const {\n legalBasis,\n id: cookieId\n } of items) {\n updateCookieChecked(id, cookieId, legalBasis === \"legitimate-interest\");\n }\n }\n });\n onSave(false, isCloseIcon ? buttonClickedCloseIcon : buttonClickedEssentials);\n }, [buttonClickedEssentials]),\n acceptIndividual: useCallback(() => onSave(false, buttonClickedCustom), [buttonClickedCustom]),\n openIndividualPrivacy: useCallback(() => {\n updateIndividualPrivacyOpen(true);\n }, [updateIndividualPrivacyOpen])\n };\n return { ...result,\n closeIcon: useCallback(() => {\n if (!activeAction) {\n // If we do not have yet a consent and it shows the banner for the first time,\n // the close icon is equivalent to \"Continue without consent\"\n result.acceptEssentials(true);\n } else {\n onClose();\n }\n }, [activeAction, onClose, result.acceptEssentials])\n };\n}\n\nexport { useBannerButtonCallbacks };","import { useState, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\n/**\n * Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n *\n * @see https://reactjs.org/docs/portals.html\n */\n\nconst Portal = ({\n children,\n className,\n tag = \"div\",\n renderInContainer\n}) => {\n const [renderIn] = useState(() => {\n const el = document.createElement(tag);\n className && el.classList.add(className);\n return el;\n }); // Append container to `body`\n\n useEffect(() => {\n document.body.appendChild(renderIn);\n return () => {\n document.body.removeChild(renderIn);\n };\n }, []);\n return /*#__PURE__*/createPortal(children, renderInContainer || renderIn);\n};\n\nexport { Portal };","import { useMemo, useRef, Fragment } from \"react\";\nimport { useRect } from \"@reach/rect\";\nimport { usePlainCss } from \"../hooks\";\nimport { Portal, Tooltip } from \".\";\nlet counter = 0;\n/**\n * A portaled close icon creates a close icon rendered to a given container. This allows\n * you to put the close icon on the top right corner of an `overflow:hidden` container and\n * the tooltip gets rendered correctly.\n */\n\nconst CloseIcon = ({\n width,\n color,\n tooltipText,\n framed,\n renderInContainer,\n tooltipAlways,\n onClick,\n thickness = 1\n}) => {\n const idCloseIconNotPortaled = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n const idCloseIconPortaled = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n /**\n * Why two containers for a simple close icon? I need to explain something technical here.\n * Our complete banner/dialog is tainted with `overflow:hidden` due to flickering effects\n * with animate.css etc. We will now create an invisible element with the placeholder,\n * we will then read its positioning (rect) and generate the visible close icon based on this position.\n */\n\n const idCloseIconPlaceholder = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n const ref = useRef();\n const rect = useRect(ref);\n usePlainCss(\"#\".concat(idCloseIconPlaceholder, \", #\").concat(idCloseIconNotPortaled, \" {\\n position: absolute;\\n top: 50%;\\n right: 0;\\n margin-top: calc(\").concat(width, \"px / 2 * -1);\\n display: block;\\n width: \").concat(width, \"px;\\n height: \").concat(width, \"px; \\n pointer-events: none;\\n}\\n\\n#\").concat(idCloseIconNotPortaled, \" {\\n position: absolute !important;\\n}\\n\\n#\").concat(idCloseIconNotPortaled, \", #\").concat(idCloseIconPortaled, \" {\\n cursor: pointer;\\n pointer-events: all;\\n \").concat(framed ? \"outline: rgb(255, 94, 94) solid 5px;\" : \"\", \"\\n}\\n\\n#\").concat(idCloseIconPortaled, \" {\\n position: fixed !important;\\n \").concat(rect ? \"top: \".concat(rect.y, \"px;left: \").concat(rect.x, \"px;display:block;\") : \"display:none;\", \"\\n width: \").concat(width, \"px;\\n height: \").concat(width, \"px;\\n z-index: 99;\\n}\\n#\").concat(idCloseIconPortaled, \":after, #\").concat(idCloseIconNotPortaled, \":after {\\n width: auto !important;\\n white-space: nowrap !important;\\n}\\n#\").concat(idCloseIconPortaled, \">span:before, #\").concat(idCloseIconPortaled, \">span:after,\\n#\").concat(idCloseIconNotPortaled, \">span:before, #\").concat(idCloseIconNotPortaled, \">span:after {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: \").concat(thickness, \"px;\\n height: \").concat(width, \"px;\\n background-color: \").concat(color, \";\\n transform: rotate(45deg) translate(-50%, -50%);\\n transform-origin: top left;\\n transition: all 420ms;\\n content: '';\\n opacity: 0.5;\\n pointer-events: none;\\n}\\n#\").concat(idCloseIconPortaled, \">span:after,\\n#\").concat(idCloseIconNotPortaled, \">span:after {\\n transform: rotate(-45deg) translate(-50%, -50%);\\n}\\n#\").concat(idCloseIconPortaled, \">span:hover:before, #\").concat(idCloseIconPortaled, \">span:hover:after,\\n#\").concat(idCloseIconNotPortaled, \">span:hover:before, #\").concat(idCloseIconNotPortaled, \">span:hover:after {\\n opacity: 1;\\n width: \").concat(thickness + 1, \"px;\\n}\"));\n return renderInContainer ? h(Fragment, null, h(\"div\", {\n id: idCloseIconPlaceholder,\n ref: ref\n }), (rect === null || rect === void 0 ? void 0 : rect.y) > 0 && h(Portal, {\n renderInContainer: renderInContainer\n }, h(Tooltip, {\n title: tooltipText,\n id: idCloseIconPortaled,\n onClick: onClick,\n position: rect.y > 50 ? \"top-left\" : \"left\",\n always: tooltipAlways\n }, h(\"span\", null)))) : h(Tooltip, {\n title: tooltipText,\n id: idCloseIconNotPortaled,\n onClick: onClick,\n position: \"top-left\",\n always: tooltipAlways\n }, h(\"span\", null));\n};\n\nexport { CloseIcon };","import { useBanner, useBannerButtonCallbacks, scaleMobile, CloseIcon, BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER } from \"../../..\";\n\nconst BannerCloseIcon = () => {\n const {\n headerDesign: {\n fontSize,\n fontColor\n },\n texts: {\n acceptEssentials\n },\n mobile,\n activeAction,\n pageRequestUuid4,\n i18n: {\n close,\n closeWithoutSaving\n },\n buttonClicked = \"\"\n } = useBanner();\n const {\n buttonClickedCloseIcon,\n closeIcon\n } = useBannerButtonCallbacks();\n const container = document.getElementById(pageRequestUuid4);\n return h(CloseIcon, {\n width: scaleMobile(mobile, pageRequestUuid4, fontSize),\n color: fontColor,\n tooltipText: activeAction ? activeAction === \"change\" ? closeWithoutSaving : close : acceptEssentials,\n tooltipAlways: (container === null || container === void 0 ? void 0 : container.clientWidth) < BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER,\n framed: buttonClicked === buttonClickedCloseIcon,\n renderInContainer: container,\n onClick: closeIcon\n });\n};\n\nexport { BannerCloseIcon };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, bannerHeaderInlineStyleContainer, bannerHeaderInlineStyle, bannerHeaderInlineStyleLogo, commonInlineStyleHeaderHeadline, BannerCloseIcon } from \"../../..\";\nimport { forwardRef } from \"react\"; // eslint-disable-next-line react/display-name\n\nconst BannerHeader = /*#__PURE__*/forwardRef((_, ref) => {\n const banner = useBanner();\n const {\n headerDesign: {\n logo,\n logoRetina\n },\n decision: {\n showCloseIcon\n },\n texts: {\n headline\n },\n activeAction,\n individualPrivacyOpen,\n individualTexts,\n i18n: {\n headerTitlePrivacyPolicyHistory\n }\n } = banner; // Calculate logo\n\n const useRetina = logoRetina && !(logo !== null && logo !== void 0 && logo.endsWith(\".svg\")) && window.devicePixelRatio > 1;\n const useLogo = useRetina ? logoRetina : logo; // Calculate headline\n\n const useHeadline = individualPrivacyOpen ? activeAction === \"history\" ? headerTitlePrivacyPolicyHistory : individualTexts.headline : headline;\n return h(\"div\", _extends({\n ref: ref\n }, bannerHeaderInlineStyleContainer(banner)), h(\"div\", bannerHeaderInlineStyle(banner), !!useLogo && h(\"img\", _extends({\n alt: \"\",\n src: useLogo\n }, bannerHeaderInlineStyleLogo(banner, useRetina))), !!useHeadline && h(\"div\", commonInlineStyleHeaderHeadline(banner, false), useHeadline), (!!showCloseIcon || !!activeAction) && h(BannerCloseIcon, null)));\n});\nexport { BannerHeader };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n ...restDesign\n },\n headerDesign: {\n inheritBg,\n bg,\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const style = {\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, true).map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? restDesign.bg : bg,\n borderRadius: useType === \"dialog\" ? \"\".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px 0 0\") : undefined,\n position: \"sticky\",\n zIndex: 9,\n top: 0\n };\n\n if (useType === \"dialog\" && useBorderWidth > 0) {\n style.borderTop = \"\".concat(useBorderWidth, \"px solid \").concat(borderColor);\n style.borderLeft = style.borderTop;\n style.borderRight = style.borderTop;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-container\",\n style\n };\n}\n\nexport { bannerHeaderInlineStyleContainer };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyle({\n layout: {\n type,\n bannerMaxWidth\n },\n design: {\n textAlign\n },\n headerDesign: {\n inheritTextAlign,\n logo,\n logoPosition,\n ...restHeaderDesign\n },\n texts: {\n headline\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const useTextAlign = inheritTextAlign ? textAlign : restHeaderDesign.textAlign;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header\",\n style: {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\",\n display: \"flex\",\n justifyContent: useTextAlign === \"center\" ? \"center\" : useTextAlign === \"right\" ? \"flex-end\" : undefined,\n textAlign: useTextAlign,\n alignItems: \"center\",\n position: \"relative\",\n flexDirection: logo && headline ? logoPosition === \"left\" ? \"row\" : logoPosition === \"right\" ? \"row-reverse\" : \"column\" : undefined\n }\n };\n}\n\nexport { bannerHeaderInlineStyle };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleLogo({\n headerDesign: {\n logoMaxHeight,\n logoMargin,\n logoFitDim,\n logoRetinaFitDim\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isRetina) {\n const useFitDim = isRetina ? logoRetinaFitDim : logoFitDim;\n const dimStyle = useFitDim ? {\n width: useFitDim[0],\n height: useFitDim[1]\n } : {\n width: \"auto\",\n height: scaleMobile(mobile, pageRequestUuid4, +logoMaxHeight)\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-logo\",\n style: { ...dimStyle,\n margin: scaleMobile(mobile, pageRequestUuid4, logoMargin).map(m => \"\".concat(m, \"px\")).join(\" \") //[logoPosition === \"left\" ? \"marginRight\" : \"marginLeft\"]: logoPosition === \"above\" ? undefined : 15,\n //marginBottom: logoPosition === \"above\" ? 5 : undefined\n\n }\n };\n}\n\nexport { bannerHeaderInlineStyleLogo };","import { useBanner, bannerGroupsInlineStyleTitle, bannerGroupsInlineStyleDescription } from \"../../..\";\n\nconst BannerGroupSectionTitle = ({\n title,\n children\n}) => {\n const banner = useBanner();\n return h(\"div\", bannerGroupsInlineStyleTitle(banner), title, children && h(\"div\", bannerGroupsInlineStyleDescription(banner), children));\n};\n\nexport { BannerGroupSectionTitle };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleTitle({\n group: {\n headlineFontSize,\n headlineFontColor,\n headlineFontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group\",\n style: {\n color: headlineFontColor,\n fontSize: scaleMobile(mobile, pageRequestUuid4, headlineFontSize),\n fontWeight: headlineFontWeight,\n textAlign: \"left\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyleTitle };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleDescription({\n design: {\n fontWeight\n },\n group: {\n descriptionFontColor,\n descriptionFontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group-description\",\n style: {\n color: descriptionFontColor,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +descriptionFontSize),\n fontWeight,\n marginTop: 5\n }\n };\n}\n\nexport { bannerGroupsInlineStyleDescription };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useState } from \"react\";\nimport { commonGroupsInlineStyleLinkMore } from \"../../inlineStyles\";\nimport { useBannerOrBlocker } from \"../../hooks\";\n\nconst CommonLinkMore = ({\n onToggle,\n children,\n showMore,\n hideMore,\n ...rest\n}) => {\n const bannerOrBlocker = useBannerOrBlocker();\n const [isHover, setIsHover] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n return h(Fragment, null, \"\\xA0\\xA0\\u2022\\xA0\\xA0\", h(\"a\", _extends({\n href: \"#\"\n }, commonGroupsInlineStyleLinkMore(bannerOrBlocker, isHover), {\n onClick: e => {\n const newOpen = !isOpen;\n setIsOpen(newOpen);\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(newOpen);\n e.preventDefault();\n },\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false)\n }, rest), isOpen ? hideMore : showMore), isOpen && children);\n};\n\nexport { CommonLinkMore };","import { useCallback } from \"react\";\nimport { useBanner, Cookie } from \"../../..\";\n\nconst BannerCookie = ({\n group,\n cookie\n}) => {\n var _consent$groups;\n\n const {\n id\n } = cookie;\n const banner = useBanner();\n const {\n consent,\n activeAction,\n essentialGroup\n } = banner;\n const isEssentialGroup = essentialGroup === group.slug;\n const isDisabled = isEssentialGroup || activeAction === \"history\";\n const isChecked = isEssentialGroup || (((_consent$groups = consent.groups) === null || _consent$groups === void 0 ? void 0 : _consent$groups[group.id]) || []).some(c => c === id);\n const handleCheckbox = useCallback(() => !isDisabled && banner.updateCookieChecked(group.id, id, !isChecked), [isDisabled, banner, group, id, isChecked]);\n return h(Cookie, {\n cookie: cookie,\n propertyListProps: {\n isEssentialGroup\n },\n checked: isChecked,\n disabled: isDisabled,\n onToggleCheck: handleCheckbox\n });\n};\n\nexport { BannerCookie };","import { useCallback } from \"react\";\nimport { CommonCheckbox, CommonLinkMore, useBanner, bannerGroupsInlineStyleGroup, BannerGroupSectionTitle, BannerCookie } from \"../../..\";\n\nconst BannerGroup = ({\n group\n}) => {\n var _consent$groups$id;\n\n const banner = useBanner();\n const {\n id,\n slug,\n name,\n description,\n items\n } = group;\n const {\n previewCheckboxActiveState,\n consent,\n activeAction,\n essentialGroup,\n individualTexts: {\n showMore,\n hideMore\n }\n } = banner;\n const isEssentialGroup = essentialGroup === slug;\n const isDisabled = isEssentialGroup || activeAction === \"history\";\n const isChecked = previewCheckboxActiveState || isEssentialGroup || !!consent.groups[id];\n const isPartial = !isEssentialGroup && JSON.stringify(items.map(({\n id\n }) => id).sort()) !== JSON.stringify(((_consent$groups$id = consent.groups[id]) === null || _consent$groups$id === void 0 ? void 0 : _consent$groups$id.sort()) || []);\n const handleCheckbox = useCallback(() => !isDisabled && banner.updateGroupChecked(id, !isChecked), [isDisabled, banner, id, isChecked]);\n return h(\"div\", bannerGroupsInlineStyleGroup(banner), h(BannerGroupSectionTitle, {\n title: h(CommonCheckbox, {\n onClick: handleCheckbox,\n isPartial: isPartial,\n isChecked: isChecked,\n isDisabled: isDisabled\n }, name, \" (\", items.length, \")\")\n }, description, !!items && h(CommonLinkMore, {\n showMore: showMore,\n hideMore: hideMore\n }, items.map(cookie => h(BannerCookie, {\n key: cookie.id,\n group: group,\n cookie: cookie\n })))));\n};\n\nexport { BannerGroup };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleGroup({\n group: {\n groupBg,\n groupBorderRadius,\n groupBorderColor,\n groupPadding,\n groupBorderWidth,\n groupInheritBg\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useGroupBorderWidth = scaleMobile(mobile, pageRequestUuid4, groupBorderWidth);\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group\",\n style: {\n background: groupInheritBg ? undefined : groupBg,\n border: useGroupBorderWidth > 0 ? \"\".concat(useGroupBorderWidth, \"px solid \").concat(groupBorderColor) : undefined,\n padding: scaleMobile(mobile, pageRequestUuid4, groupPadding).map(p => \"\".concat(p, \"px\")).join(\" \"),\n borderRadius: +groupBorderRadius,\n textAlign: \"left\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyleGroup };","import { scaleMobile, useBanner, bannerGroupsInlineStyle, BannerGroup } from \"../../..\";\nimport { Fragment } from \"react\";\n\nconst BannerGroupList = () => {\n const banner = useBanner();\n const {\n groups,\n group: {\n groupSpacing\n },\n mobile,\n pageRequestUuid4\n } = banner;\n const useGroups = groups.filter(({\n items\n }) => items.length);\n return h(\"div\", bannerGroupsInlineStyle(banner), useGroups.map((group, index) => h(Fragment, {\n key: group.id\n }, h(BannerGroup, {\n key: group.id,\n group: group\n }), index !== useGroups.length - 1 && h(\"div\", {\n style: {\n height: scaleMobile(mobile, pageRequestUuid4, +groupSpacing)\n }\n }))));\n};\n\nexport { BannerGroupList };","function bannerGroupsInlineStyle({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-groups\",\n style: {\n marginTop: 10,\n clear: \"both\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyle };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useCallback } from \"react\";\nimport { useBanner } from \"../../../contexts\";\nimport { bannerInlineStyleBodyDottedGroupItem, bannerInlineStyleBodyDottedGroupBullet } from \"../../../inlineStyles\";\nimport { CommonCheckbox } from \"../..\";\n\nconst BannerDottedGroup = ({\n group: {\n id,\n slug,\n name\n }\n}) => {\n const banner = useBanner();\n const {\n decision: {\n groupsFirstView\n },\n design: {\n fontSize\n },\n consent,\n essentialGroup\n } = banner;\n const isPro = process.env.PLUGIN_CTX === \"pro\";\n const isEssentialGroup = essentialGroup === slug;\n const isChecked = isEssentialGroup || !!consent.groups[id];\n const handleCheckbox = useCallback(() => isPro && groupsFirstView && !isEssentialGroup && banner.updateGroupChecked(id, !isChecked), [isPro, isEssentialGroup, banner, id, isChecked, groupsFirstView]);\n return h(\"span\", _extends({\n key: name\n }, bannerInlineStyleBodyDottedGroupItem(banner)), h(\"span\", null, isPro && groupsFirstView ? h(CommonCheckbox, {\n onClick: handleCheckbox,\n isChecked: isChecked,\n isDisabled: isEssentialGroup,\n fontSize: fontSize\n }) : h(Fragment, null, h(\"strong\", bannerInlineStyleBodyDottedGroupBullet(banner), \"\\u25CF\"), \"\\xA0\"), h(\"span\", {\n style: {\n verticalAlign: \"middle\",\n cursor: groupsFirstView ? \"pointer\" : undefined\n },\n onClick: handleCheckbox\n }, name)));\n};\n\nexport { BannerDottedGroup };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyDottedGroupItem({\n design: {\n fontSize\n },\n bodyDesign: {\n dottedGroupsInheritFontSize,\n dottedGroupsFontSize\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: undefined,\n style: {\n paddingRight: 10,\n fontSize: scaleMobile(mobile, pageRequestUuid4, dottedGroupsInheritFontSize ? +fontSize : +dottedGroupsFontSize),\n whiteSpace: \"nowrap\",\n display: \"inline-block\"\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroupItem };","function bannerInlineStyleBodyDottedGroupBullet({\n bodyDesign: {\n dottedGroupsBulletColor\n }\n}) {\n return {\n className: undefined,\n style: {\n color: dottedGroupsBulletColor\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroupBullet };","import { BannerDottedGroup } from \".\";\nimport { useBanner, bannerInlineStyleBodyDottedGroups } from \"../../..\";\n\nconst BannerDottedGroupList = () => {\n const banner = useBanner();\n const {\n groups,\n decision: {\n showGroups\n }\n } = banner;\n return showGroups ? h(\"div\", bannerInlineStyleBodyDottedGroups(banner), groups.filter(({\n items\n }) => !!items.length).map(group => h(BannerDottedGroup, {\n key: group.id,\n group: group\n }))) : null;\n};\n\nexport { BannerDottedGroupList };","function bannerInlineStyleBodyDottedGroups({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-dotted-groups\",\n style: {\n marginTop: 10,\n lineBreak: \"anywhere\",\n lineHeight: 2\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroups };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, bannerInlineStyleHistorySelect, bannerInlineStyleHistorySelectOption } from \"../../..\";\nimport { useMemo } from \"react\";\nimport { Fragment, useState, useEffect } from \"react\";\nconst SELECT_NONE = -1;\n\nconst BannerHistorySelect = () => {\n const banner = useBanner();\n const [selectedId, setSelectedId] = useState(SELECT_NONE);\n const {\n activeAction,\n history,\n selectHistoryEntry,\n i18n: {\n historyLabel,\n historySelectNone\n }\n } = banner;\n const selectedHistoryItem = useMemo(() => {\n var _history$filter;\n\n return history === null || history === void 0 ? void 0 : (_history$filter = history.filter(({\n id\n }) => id === selectedId)) === null || _history$filter === void 0 ? void 0 : _history$filter[0];\n }, [selectedId]); // Reset select after exit history dialog\n\n useEffect(() => {\n if (!activeAction) {\n setSelectedId(SELECT_NONE);\n } else if (activeAction === \"history\" && history !== null && history !== void 0 && history.length) {\n setSelectedId(history[0].id);\n }\n }, [activeAction, history]); // History can only contain my data, so we can pick the first entry for the history\n\n const uuid = selectedHistoryItem === null || selectedHistoryItem === void 0 ? void 0 : selectedHistoryItem.uuid;\n const optionStyle = bannerInlineStyleHistorySelectOption(banner);\n return h(Fragment, null, historyLabel, \"\\xA0\", h(\"select\", _extends({}, bannerInlineStyleHistorySelect(banner), {\n disabled: !(history !== null && history !== void 0 && history.length),\n value: selectedId,\n onChange: e => {\n const value = +e.target.value;\n history.forEach(({\n id,\n decision,\n groups,\n tcf\n }) => {\n if (id === value) {\n setSelectedId(id);\n selectHistoryEntry(groups, decision, tcf);\n }\n });\n }\n }), (history === null || history === void 0 ? void 0 : history.length) > 0 ? history.map(({\n id,\n isDoNotTrack,\n isUnblock,\n isForwarded,\n created\n }) => h(\"option\", _extends({\n key: id,\n value: id\n }, optionStyle), new Date(created).toLocaleString(document.documentElement.lang), isDoNotTrack ? \" (Do Not Track)\" : \"\", isUnblock ? \" (Content Blocker)\" : \"\", isForwarded ? \" (Consent Forwarding)\" : \"\")) : h(\"option\", _extends({\n value: SELECT_NONE\n }, optionStyle), historySelectNone)), !!uuid && h(\"div\", {\n style: {\n opacity: 0.5,\n marginTop: 5\n }\n }, \"UUID: \", uuid));\n};\n\nexport { BannerHistorySelect };","function bannerInlineStyleHistorySelectOption({\n design: {\n bg\n }\n}) {\n return {\n className: undefined,\n style: {\n background: bg\n }\n };\n}\n\nexport { bannerInlineStyleHistorySelectOption };","import { calculateRgba } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleHistorySelect({\n design: {\n fontSize,\n fontColor\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-history-select\",\n style: {\n fontSize: scaleMobile(mobile, pageRequestUuid4, descriptionInheritFontSize ? +fontSize : +descriptionFontSize),\n background: \"transparent\",\n border: 0,\n color: fontColor,\n borderBottom: \"1px solid \".concat(calculateRgba(fontColor, 50))\n }\n };\n}\n\nexport { bannerInlineStyleHistorySelect };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerButtonsInlineStyleCommon({\n name,\n order,\n type,\n borderRadius,\n bg,\n hoverBg,\n fontSize,\n textAlign,\n fontColor,\n fontWeight,\n hoverFontColor,\n borderWidth,\n borderColor,\n hoverBorderColor,\n padding,\n antiAdBlocker,\n pageRequestUuid4\n}, mobile, isHover, framed, isTwoButtonRowLayout) {\n const fullWidth = !isTwoButtonRowLayout || order > 1;\n const marginLeft = isTwoButtonRowLayout && order === 1 ? 5 : 0;\n const marginRight = isTwoButtonRowLayout && order === 0 ? 5 : 0;\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, +borderWidth);\n const style = {\n textDecoration: type === \"link\" ? \"underline\" : \"none\",\n borderRadius: +borderRadius,\n cursor: type === \"button\" ? \"pointer\" : undefined,\n backgroundColor: type === \"button\" ? isHover ? hoverBg : bg : undefined,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n fontWeight,\n color: isHover ? hoverFontColor : fontColor,\n transition: \"background-color 250ms, color 250ms, border-color 250ms\",\n margin: \"0 \".concat(marginRight, \"px \").concat(scaleMobile(mobile, pageRequestUuid4, 10, undefined, true), \"px \").concat(marginLeft, \"px\"),\n border: type === \"button\" && useBorderWidth > 0 ? \"\".concat(useBorderWidth, \"px solid \").concat(isHover ? hoverBorderColor : borderColor) : undefined,\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, type !== \"button\").map(p => \"\".concat(p, \"px\")).join(\" \"),\n overflow: \"hidden\",\n outline: framed ? \"rgb(255, 94, 94) solid 5px\" : undefined,\n flex: fullWidth ? \"1 1 100%\" : \"0 0 calc(50% - \".concat(marginLeft + marginRight, \"px)\"),\n display: \"flex\",\n alignItems: \"center\",\n // text-align is not supported within a `display: flex`\n justifyContent: textAlign === \"right\" ? \"flex-end\" : textAlign === \"center\" ? \"center\" : \"left\",\n textAlign,\n order\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-btn-\".concat(name),\n style\n };\n}\n\nexport { bannerButtonsInlineStyleCommon };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptEssentials({\n isTcf,\n decision: {\n acceptEssentials\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptEssentialsFontSize,\n acceptEssentialsBg,\n acceptEssentialsTextAlign,\n acceptEssentialsBorderColor,\n acceptEssentialsPadding,\n acceptEssentialsBorderWidth,\n acceptEssentialsFontColor,\n acceptEssentialsFontWeight,\n acceptEssentialsHoverBg,\n acceptEssentialsHoverFontColor,\n acceptEssentialsHoverBorderColor,\n // For two-button row layout use all dimensional properties from \"Accept all\"\n // For TCF use font size and font weight from \"Accept all\"\n acceptAllFontWeight,\n acceptAllFontSize,\n acceptAllPadding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-essentials\",\n order,\n type: acceptEssentials,\n borderRadius,\n bg: acceptEssentialsBg,\n hoverBg: acceptEssentialsHoverBg,\n fontSize: isTwoButtonRowLayout || isTcf ? acceptAllFontSize : acceptEssentialsFontSize,\n textAlign: acceptEssentialsTextAlign,\n fontColor: acceptEssentialsFontColor,\n fontWeight: isTcf ? acceptAllFontWeight : acceptEssentialsFontWeight,\n hoverFontColor: acceptEssentialsHoverFontColor,\n borderWidth: acceptEssentialsBorderWidth,\n borderColor: acceptEssentialsBorderColor,\n hoverBorderColor: acceptEssentialsHoverBorderColor,\n padding: isTwoButtonRowLayout ? acceptAllPadding : acceptEssentialsPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptEssentials };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptIndividual({\n decision: {\n acceptIndividual\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptIndividualFontSize,\n acceptIndividualBg,\n acceptIndividualTextAlign,\n acceptIndividualBorderColor,\n acceptIndividualPadding,\n acceptIndividualBorderWidth,\n acceptIndividualFontColor,\n acceptIndividualFontWeight,\n acceptIndividualHoverBg,\n acceptIndividualHoverFontColor,\n acceptIndividualHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-individual\",\n order,\n type: acceptIndividual,\n borderRadius,\n bg: acceptIndividualBg,\n hoverBg: acceptIndividualHoverBg,\n fontSize: acceptIndividualFontSize,\n textAlign: acceptIndividualTextAlign,\n fontColor: acceptIndividualFontColor,\n fontWeight: acceptIndividualFontWeight,\n hoverFontColor: acceptIndividualHoverFontColor,\n borderWidth: acceptIndividualBorderWidth,\n borderColor: acceptIndividualBorderColor,\n hoverBorderColor: acceptIndividualHoverBorderColor,\n padding: acceptIndividualPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptIndividual };","import { bannerButtonsInlineStyleCommon } from \"./\";\n\nfunction bannerButtonsInlineStyleSave({\n isTcf,\n layout: {\n borderRadius\n },\n bodyDesign: {\n // For TCF use font size and font weight from \"Accept all\"\n acceptAllFontWeight,\n acceptAllFontSize\n },\n saveButton: {\n type,\n fontSize,\n bg,\n textAlign,\n borderColor,\n padding,\n borderWidth,\n fontColor,\n fontWeight,\n hoverBg,\n hoverFontColor,\n hoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-individual-save\",\n order,\n type,\n borderRadius,\n bg,\n hoverBg,\n fontSize: isTcf ? acceptAllFontSize : fontSize,\n textAlign,\n fontColor,\n fontWeight: isTcf ? acceptAllFontWeight : fontWeight,\n hoverFontColor,\n borderWidth: borderWidth,\n borderColor,\n hoverBorderColor,\n padding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleSave };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptAll({\n decision: {\n acceptAll\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptAllFontSize,\n acceptAllBg,\n acceptAllTextAlign,\n acceptAllBorderColor,\n acceptAllPadding,\n acceptAllBorderWidth,\n acceptAllFontColor,\n acceptAllFontWeight,\n acceptAllHoverBg,\n acceptAllHoverFontColor,\n acceptAllHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-all\",\n order,\n type: acceptAll,\n borderRadius,\n bg: acceptAllBg,\n hoverBg: acceptAllHoverBg,\n fontSize: acceptAllFontSize,\n textAlign: acceptAllTextAlign,\n fontColor: acceptAllFontColor,\n fontWeight: acceptAllFontWeight,\n hoverFontColor: acceptAllHoverFontColor,\n borderWidth: acceptAllBorderWidth,\n borderColor: acceptAllBorderColor,\n hoverBorderColor: acceptAllHoverBorderColor,\n padding: acceptAllPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptAll };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback } from \"react\";\nimport { useState, useMemo } from \"react\";\nimport { isIE, AsciiSpinner, useBanner, bannerButtonsInlineStyleAcceptAll, bannerButtonsInlineStyleAcceptEssentials, bannerButtonsInlineStyleAcceptIndividual, bannerButtonsInlineStyleSave } from \"../../../..\";\n\nconst BannerButton = ({\n inlineStyle,\n type,\n onClick,\n children,\n framed,\n busyOnClick,\n order\n}) => {\n if (type === \"hide\") {\n return null;\n }\n\n const [isBusy, setIsBusy] = useState(false);\n const handleOnClick = useCallback(() => {\n if (!isBusy) {\n busyOnClick && setIsBusy(true);\n onClick === null || onClick === void 0 ? void 0 : onClick();\n }\n }, [onClick, isBusy, busyOnClick]);\n const [isHover, setIsHover] = useState(false);\n const banner = useBanner();\n const {\n individualPrivacyOpen,\n decision: {\n acceptAll,\n acceptEssentials\n },\n bodyDesign: {\n acceptAllOneRowLayout,\n acceptEssentialsUseAcceptAll\n }\n } = banner;\n const useAcceptEssentials = acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials;\n const interactionAttr = {\n onClick: handleOnClick,\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false),\n style: {\n cursor: \"pointer\"\n }\n };\n const useStyleFn = useMemo(() => {\n switch (inlineStyle) {\n case \"acceptEssentials\":\n return bannerButtonsInlineStyleAcceptEssentials;\n\n case \"acceptIndividual\":\n return bannerButtonsInlineStyleAcceptIndividual;\n\n case \"save\":\n return bannerButtonsInlineStyleSave;\n\n default:\n return bannerButtonsInlineStyleAcceptAll;\n }\n }, [inlineStyle]); // Also create a spacing `height:10` container because `marginBottom` causes issues with `position:sticky`\n\n return h(\"div\", _extends({}, type === \"button\" ? interactionAttr : {}, useStyleFn(banner, isHover, framed, order, // IE does not support flex with calc()\n isIE() || acceptAll === \"hide\" || useAcceptEssentials === \"hide\" || individualPrivacyOpen || order > 1 ? false : acceptAllOneRowLayout)), h(\"span\", type === \"link\" ? interactionAttr : {}, isBusy ? h(AsciiSpinner, null) : children));\n};\n\nexport { BannerButton };","function isIE() {\n return /MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1;\n}\n\nexport { isIE };","import { Fragment, useMemo } from \"react\";\nimport { useBanner, useBannerButtonCallbacks, BannerButton } from \"../../..\";\n\nconst BannerButtonList = () => {\n const banner = useBanner();\n const {\n activeAction,\n bodyDesign: {\n acceptEssentialsUseAcceptAll,\n acceptAllOneRowLayout\n },\n decision: {\n showGroups,\n groupsFirstView,\n saveButton,\n acceptAll,\n acceptEssentials,\n acceptIndividual,\n buttonOrder: buttonOrderString\n },\n texts: {\n acceptAll: acceptAllText,\n acceptEssentials: acceptEssentialsText,\n acceptIndividual: acceptIndividualText\n },\n saveButton: {\n type: saveButtonType,\n useAcceptAll: saveButtonUseAcceptAll\n },\n individualTexts: {\n save\n },\n individualPrivacyOpen,\n didGroupFirstChange,\n productionNotice,\n buttonClicked = \"\"\n } = banner; // Calculate order of the buttons depending on a string like `all,essential,save,individual`\n\n const {\n all: buttonOrderAll,\n essential: buttonOrderEssential,\n individual: buttonOrderIndividual,\n save: buttonOrderSave\n } = useMemo(() => {\n const buttonOrder = buttonOrderString.split(\",\");\n const buttonToOrder = buttonOrder.reduce((previous, curr) => {\n previous[curr] = buttonOrder.indexOf(curr);\n return previous;\n }, {});\n const orderToButton = buttonOrder.reduce((previous, curr) => {\n previous[buttonOrder.indexOf(curr)] = curr;\n return previous;\n }, {}); // If one-row layout is enabled, reverse the first two orders so the first button gets moved to the right\n\n if (acceptAllOneRowLayout) {\n buttonToOrder[orderToButton[0]] = 1;\n buttonToOrder[orderToButton[1]] = 0;\n }\n\n return buttonToOrder;\n }, [buttonOrderString, acceptAllOneRowLayout]);\n const isPro = process.env.PLUGIN_CTX === \"pro\";\n const {\n buttonClickedAll,\n buttonClickedEssentials,\n buttonClickedCustom,\n acceptAll: handleAll,\n acceptEssentials: handleEssentials,\n acceptIndividual: handleIndividual,\n openIndividualPrivacy\n } = useBannerButtonCallbacks(); // We expect a reload of the page for the \"change\" action (keeps also dialog open)\n\n const busyOnClick = activeAction === \"change\";\n const groupsFirstViewEnabled = showGroups && groupsFirstView;\n return h(Fragment, null, !individualPrivacyOpen && isPro && groupsFirstViewEnabled && saveButton === \"afterChangeAll\" && didGroupFirstChange ? h(BannerButton, {\n onClick: handleIndividual,\n type: acceptAll,\n inlineStyle: \"acceptAll\",\n framed: buttonClicked === buttonClickedCustom,\n busyOnClick: busyOnClick,\n order: buttonOrderAll\n }, save) : h(BannerButton, {\n onClick: handleAll,\n type: acceptAll,\n inlineStyle: \"acceptAll\",\n framed: buttonClicked === buttonClickedAll,\n busyOnClick: busyOnClick,\n order: buttonOrderAll\n }, acceptAllText), activeAction !== \"change\" && h(BannerButton, {\n onClick: handleEssentials,\n type: acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials,\n inlineStyle: acceptEssentialsUseAcceptAll ? \"acceptAll\" : \"acceptEssentials\",\n framed: buttonClicked === buttonClickedEssentials,\n busyOnClick: busyOnClick,\n order: buttonOrderEssential\n }, acceptEssentialsText), (individualPrivacyOpen || isPro && groupsFirstViewEnabled && (saveButton === \"always\" || saveButton === \"afterChange\" && didGroupFirstChange)) && h(BannerButton, {\n onClick: handleIndividual,\n type: saveButtonUseAcceptAll ? acceptAll : saveButtonType,\n inlineStyle: saveButtonUseAcceptAll ? \"acceptAll\" : \"save\",\n framed: buttonClicked === buttonClickedCustom,\n busyOnClick: busyOnClick,\n order: buttonOrderSave\n }, save), !individualPrivacyOpen && h(BannerButton, {\n type: acceptIndividual,\n onClick: openIndividualPrivacy,\n inlineStyle: \"acceptIndividual\",\n framed: buttonClicked.startsWith(\"ind_\"),\n busyOnClick: busyOnClick,\n order: buttonOrderIndividual\n }, acceptIndividualText), productionNotice);\n};\n\nexport { BannerButtonList };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER, usePlainCss, scaleMobile, bannerInlineStylesRightSide, bannerInlineStylesLeftSide, bannerInlineStyleBody, bannerInlineStyleBodyContainer, bannerInlineStyleBodyDescription, commonInlineStyleBodyTeaching, commonInlineStyleBodyTeachingsSeparator, BannerDottedGroupList, BannerTcfStackList, BannerGroupList, BannerTcfGroupList, BannerButtonList, BannerHistorySelect, useCommonTeachings } from \"../../..\";\nimport { useMemo, Fragment } from \"react\";\n\nconst BannerBody = ({\n leftSideContainerRef,\n rightSideContainerRef\n}) => {\n var _document$getElementB;\n\n const banner = useBanner();\n const {\n layout: {\n type\n },\n mobile,\n bodyDesign: {\n teachingsSeparatorActive\n },\n tcf,\n individualPrivacyOpen,\n activeAction,\n pageRequestUuid4\n } = banner;\n const {\n description,\n teachings\n } = useCommonTeachings(); // Make the content responsive\n\n const leftSideId = \"bnnr-body-leftSide-\".concat(pageRequestUuid4);\n const rightSideId = \"bnnr-body-rightSide-\".concat(pageRequestUuid4);\n const contentId = \"cntnt-\".concat(pageRequestUuid4);\n usePlainCss(\" #\".concat(leftSideId, \" img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n\").concat(((_document$getElementB = document.getElementById(pageRequestUuid4)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.clientWidth) > BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER ? \"\" : \"#\".concat(leftSideId, \" {\\n float: initial !important;\\n width: auto !important;\\n padding-right: initial !important;\\n \").concat(scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" && !individualPrivacyOpen ? \"padding-bottom: 10px !important;\" : individualPrivacyOpen ? \"padding-top: 10px !important;\" : \"\", \"\\n }\\n\\n #\").concat(contentId, \" {\\n min-height: calc(var(--rendered-height-header) + var(--rendered-height-footer) + var(--rendered-height-rightSideContainer) + 60px);\\n }\\n \\n #\").concat(rightSideId, \" {\\n float: initial !important;\\n width: auto !important;\\n max-width: initial !important;\\n margin: initial !important;\\n \").concat(individualPrivacyOpen ? \"padding-bottom: 5px !important;\" : \"padding-top: 10px !important;\", \"\\n position: sticky;\\n }\"))); // Calculate the body content depending on TCF availability and if second view got opened\n\n const stackOrGroups = useMemo(() => {\n if (process.env.IS_TCF === \"1\" && tcf) {\n return individualPrivacyOpen ? h(BannerTcfGroupList, null) : h(BannerTcfStackList, null);\n } else {\n return individualPrivacyOpen ? h(BannerGroupList, null) : h(BannerDottedGroupList, null);\n }\n }, [individualPrivacyOpen, tcf]);\n const leftSide = h(\"div\", _extends({\n ref: leftSideContainerRef,\n key: \"leftSide\",\n id: leftSideId\n }, bannerInlineStylesLeftSide(banner)), h(\"div\", bannerInlineStyleBodyDescription(banner), activeAction === \"history\" ? h(BannerHistorySelect, null) : h(Fragment, null, h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: description\n }\n }), teachings.length > 0 && h(Fragment, null, teachingsSeparatorActive && h(\"div\", null, h(\"span\", commonInlineStyleBodyTeachingsSeparator(banner))), teachings.map(teaching => h(\"span\", _extends({\n key: teaching\n }, commonInlineStyleBodyTeaching(banner), {\n dangerouslySetInnerHTML: {\n __html: teaching\n }\n })))))), stackOrGroups);\n const rightSide = activeAction === \"history\" ? h(\"div\", {\n ref: rightSideContainerRef\n }) : h(\"div\", _extends({\n ref: rightSideContainerRef,\n key: \"rightSide\",\n id: rightSideId\n }, bannerInlineStylesRightSide(banner)), h(BannerButtonList, null));\n return h(\"div\", bannerInlineStyleBodyContainer(banner), h(\"div\", bannerInlineStyleBody(banner), individualPrivacyOpen ? [rightSide, leftSide] : [leftSide, rightSide], h(\"div\", {\n style: {\n clear: \"both\"\n }\n })));\n};\n\nexport { BannerBody };","import { scaleMobile } from \"../../scale\";\nconst BUTTONS_WIDTH = 300;\n\nfunction bannerInlineStylesLeftSide({\n layout: {\n type\n },\n bodyDesign: {\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n activeAction,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const usePadding = scaleMobile(mobile, pageRequestUuid4, padding);\n const style = {\n float: useType === \"banner\" && activeAction !== \"history\" ? \"left\" : undefined,\n width: useType === \"banner\" && activeAction !== \"history\" ? \"calc(100% - \".concat(BUTTONS_WIDTH, \"px)\") : undefined,\n paddingRight: useType === \"banner\" ? 20 : undefined,\n paddingTop: +usePadding[0],\n paddingBottom: useType === \"banner\" || individualPrivacyOpen ? +usePadding[2] : 0\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-left\",\n style\n };\n}\n\nexport { BUTTONS_WIDTH, bannerInlineStylesLeftSide };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyDescription({\n design: {\n fontSize\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n individualLayout: {\n descriptionTextAlign\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-description\",\n style: {\n lineHeight: 1.5,\n fontSize: scaleMobile(mobile, pageRequestUuid4, descriptionInheritFontSize ? +fontSize : +descriptionFontSize),\n textAlign: individualPrivacyOpen ? descriptionTextAlign : undefined\n }\n };\n}\n\nexport { bannerInlineStyleBodyDescription };","import { hexToRgb } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\nimport { BUTTONS_WIDTH } from \"./leftSide\";\n\nfunction bannerInlineStylesRightSide({\n layout: {\n type,\n dialogMaxWidth\n },\n design: {\n borderWidth,\n bg,\n fontColor\n },\n headerDesign,\n footerDesign,\n bodyDesign: {\n padding\n },\n individualLayout: {\n inheritDialogMaxWidth\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const usePadding = scaleMobile(mobile, pageRequestUuid4, padding, undefined, true);\n const {\n r,\n g,\n b\n } = hexToRgb(fontColor);\n const width = useType === \"dialog\" ? +dialogMaxWidth - usePadding[1] - usePadding[3] - useBorderWidth * 2 : BUTTONS_WIDTH;\n const style = {\n background: bg,\n paddingTop: useType === \"banner\" || individualPrivacyOpen ? +usePadding[0] : 10,\n paddingBottom: !individualPrivacyOpen ? +usePadding[2] : 10,\n float: useType === \"banner\" || individualPrivacyOpen ? \"right\" : undefined,\n maxWidth: width,\n width,\n margin: useType === \"dialog\" && individualPrivacyOpen && !inheritDialogMaxWidth ? \"0 0 10px 10px\" : undefined,\n // position: individualPrivacyOpen ? \"sticky\" : undefined, This is done by `body.tsx#usePlainCss`\n position: individualPrivacyOpen ? undefined : \"sticky\",\n [individualPrivacyOpen ? \"top\" : \"bottom\"]: individualPrivacyOpen ? \"calc(var(--rendered-height-header) + \".concat(scaleMobile(mobile, pageRequestUuid4, headerDesign.borderWidth), \"px)\") : \"calc(var(--rendered-height-footer) + \".concat(scaleMobile(mobile, pageRequestUuid4, footerDesign.borderWidth), \"px)\"),\n zIndex: 1,\n // Avoid overlapping the Checkbox Icon\n display: \"flex\",\n flexWrap: \"wrap\",\n transition: \"box-shadow ease-in-out .1s\",\n [\"--boxShadowShowScroll\"]: \"0 -15px 15px -15px rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", 0.3)\")\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-right\",\n style\n };\n}\n\nexport { bannerInlineStylesRightSide };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyContainer({\n layout: {\n type\n },\n design: {\n bg,\n borderWidth,\n borderColor\n },\n bodyDesign: {\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const style = {\n background: bg,\n // Top / Bottom padding is applied in leftSide and rightSide containers\n padding: scaleMobile(mobile, pageRequestUuid4, padding).map((p, i) => \"\".concat([0, 2].indexOf(i) > -1 ? 0 : p, \"px\")).join(\" \"),\n lineHeight: 1.4\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useBorderWidth > 0) {\n style.borderLeft = \"\".concat(useBorderWidth, \"px solid \").concat(borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body-container\",\n style\n };\n}\n\nexport { bannerInlineStyleBodyContainer };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBody({\n layout: {\n type,\n bannerMaxWidth\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n const style = {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\"\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body\",\n style\n };\n}\n\nexport { bannerInlineStyleBody };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { forwardRef, useCallback } from \"react\";\nimport { useBanner, bannerFooterInlineStyle, bannerFooterInlineStyleContainer, FooterLink, useCommonFooterLinks } from \"../../..\"; // eslint-disable-next-line react/display-name\n\nconst BannerFooter = /*#__PURE__*/forwardRef((_, ref) => {\n const banner = useBanner();\n const {\n isTcf,\n layout: {\n type\n },\n individualPrivacyOpen,\n updateIndividualPrivacyOpen,\n onClose,\n i18n: {\n tcf\n },\n isConsentRecord\n } = banner;\n const handleTcfVendorList = process.env.IS_TCF === \"1\" && isTcf ? useCallback(e => {\n updateIndividualPrivacyOpen(true);\n e.preventDefault();\n }, [updateIndividualPrivacyOpen]) : undefined;\n const handleClose = useCallback(e => {\n onClose();\n e.preventDefault();\n }, [onClose]);\n const {\n rows: links,\n render: renderLinks\n } = useCommonFooterLinks({\n onClose: isConsentRecord ? handleClose : undefined,\n putPoweredByLinkInRow: type === \"banner\" ? 0 : 1,\n row1: [process.env.IS_TCF === \"1\" && isTcf && !individualPrivacyOpen && h(FooterLink, {\n href: \"#\",\n onClick: handleTcfVendorList,\n key: \"vendorList\"\n }, tcf.vendorList)]\n });\n return h(\"div\", _extends({\n ref: ref\n }, bannerFooterInlineStyleContainer(banner)), h(\"div\", bannerFooterInlineStyle(banner), renderLinks(links)));\n});\nexport { BannerFooter };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyleContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design,\n footerDesign: {\n inheritBg,\n bg,\n inheritTextAlign,\n textAlign,\n padding,\n fontSize,\n fontColor,\n fontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, true).map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? design.bg : bg,\n borderRadius: useType === \"dialog\" ? \"0 0 \".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px\") : undefined,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n fontWeight,\n color: fontColor,\n textAlign: inheritTextAlign ? design.textAlign : textAlign,\n position: \"sticky\",\n bottom: 0,\n zIndex: 1\n };\n\n if (useType === \"dialog\" && useBorderWidth > 0) {\n style.borderBottom = \"\".concat(useBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderLeft = style.borderBottom;\n style.borderRight = style.borderBottom;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-container\",\n style\n };\n}\n\nexport { bannerFooterInlineStyleContainer };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyle({\n layout: {\n type,\n bannerMaxWidth\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const style = {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\",\n lineHeight: 1.8\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer\",\n style\n };\n}\n\nexport { bannerFooterInlineStyle };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { scaleMobile, useBanner, usePlainCss, useRenderedHeightsAsCssVars, bannerContentInlineStyle, bannerFooterInlineStyleSeparator, bannerHeaderInlineStyleSeparator, BannerHeader, BannerFooter, BannerBody } from \"../../..\";\nimport { Fragment, useState, useRef, useLayoutEffect, useCallback } from \"react\";\n\nconst BannerContent = () => {\n const banner = useBanner();\n const {\n layout: {\n type,\n dialogBorderRadius\n },\n decision: {\n acceptAll,\n acceptEssentials,\n showCloseIcon\n },\n mobile,\n individualPrivacyOpen,\n design: {\n bg\n },\n bodyDesign: {\n teachingsFontColor,\n acceptEssentialsUseAcceptAll\n },\n activeAction,\n pageRequestUuid4\n } = banner;\n const rightSideId = \"bnnr-body-rightSide-\".concat(pageRequestUuid4);\n const id = \"cntnt-\".concat(pageRequestUuid4);\n const ref = useRef();\n const {\n current: currentRef\n } = ref;\n const useAcceptEssentials = acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials;\n let showHeader = true;\n\n if (mobile.hideHeader && !activeAction && !individualPrivacyOpen && (useAcceptEssentials === \"hide\" ? !showCloseIcon : true)) {\n showHeader = scaleMobile(mobile, pageRequestUuid4, showHeader, false);\n } // Enable box shadow effect for the scrolling behavior\n\n\n const [showScrollBoxShadow, setShowScrollBoxShadow] = useState(false);\n const updateShowScrollBoxShadow = useCallback(() => {\n if (currentRef) {\n const {\n clientHeight,\n scrollHeight,\n scrollTop,\n offsetHeight\n } = currentRef;\n const hasScrollbar = clientHeight < scrollHeight;\n const scrolledToBottom = Math.ceil(scrollTop + offsetHeight) >= scrollHeight;\n const result = hasScrollbar && !scrolledToBottom && !individualPrivacyOpen;\n\n if (showScrollBoxShadow !== result) {\n setShowScrollBoxShadow(result);\n }\n }\n }, [currentRef, individualPrivacyOpen, showScrollBoxShadow]);\n updateShowScrollBoxShadow(); // The function gets called for each resize in `Banner` component\n\n useLayoutEffect(() => {\n if (currentRef) {\n currentRef.addEventListener(\"scroll\", updateShowScrollBoxShadow);\n return () => currentRef.removeEventListener(\"scroll\", updateShowScrollBoxShadow);\n } // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\n return () => {};\n }, [currentRef, updateShowScrollBoxShadow]);\n usePlainCss(showScrollBoxShadow ? \"#\".concat(rightSideId, \" {box-shadow:var(--boxShadowShowScroll);}\") : \"\"); // Create custom scrollbar when a border radius is active (https://css-tricks.com/the-current-state-of-styling-scrollbars/)\n\n usePlainCss(navigator.platform === \"Win32\" && type === \"dialog\" && dialogBorderRadius > 0 ? [\"#\".concat(id, \"{overflow:overlay!important;}\"), \"#\".concat(id, \"::-webkit-scrollbar{width:11px;}\"), \"#\".concat(id, \"{scrollbar-width:thin;scrollbar-color:\").concat(teachingsFontColor, \" transparent;}\"), \"#\".concat(id, \"::-webkit-scrollbar-track{background:transparent;}\"), \"#\".concat(id, \"::-webkit-scrollbar-thumb{background-color:\").concat(teachingsFontColor, \";border-radius:\").concat(dialogBorderRadius, \"px;border:3px solid \").concat(bg, \";}\"), \"#\".concat(id, \">div{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}\")].join(\"\\n\") : \"\");\n const headerRef = useRef();\n const footerRef = useRef();\n const rightSideContainerRef = useRef();\n useRenderedHeightsAsCssVars(headerRef.current, \"header\");\n useRenderedHeightsAsCssVars(footerRef.current, \"footer\");\n useRenderedHeightsAsCssVars(rightSideContainerRef.current, \"rightSideContainer\");\n return h(\"div\", _extends({}, bannerContentInlineStyle(banner), {\n ref: ref,\n id: id\n }), showHeader && h(Fragment, null, h(BannerHeader, {\n ref: headerRef\n }), h(\"div\", bannerHeaderInlineStyleSeparator(banner))), h(BannerBody, {\n rightSideContainerRef: rightSideContainerRef\n }), h(\"div\", bannerFooterInlineStyleSeparator(banner)), h(BannerFooter, {\n ref: footerRef\n }));\n};\n\nexport { BannerContent };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerContentInlineStyle({\n layout: {\n type\n },\n customCss: {\n antiAdBlocker\n },\n decision: {\n showCloseIcon\n },\n activeAction,\n individualPrivacyOpen,\n mobile,\n pageRequestUuid4\n}) {\n var _document$getElementB;\n\n const innerHeight = ((_document$getElementB = document.getElementById(pageRequestUuid4)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.clientHeight) || window.innerHeight;\n const mobileMaxHeight = +mobile.maxHeight;\n const useMobileMaxHeight = mobileMaxHeight > innerHeight ? innerHeight : mobileMaxHeight;\n const closeIconDistance = showCloseIcon || activeAction ? 51 : 0;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-content\",\n style: {\n position: \"relative\",\n maxHeight: scaleMobile(mobile, pageRequestUuid4, innerHeight - (type === \"banner\" ? 0 : 20) - closeIconDistance, individualPrivacyOpen ? innerHeight - closeIconDistance : useMobileMaxHeight - closeIconDistance),\n overflow: \"auto\"\n }\n };\n}\n\nexport { bannerContentInlineStyle };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleSeparator({\n layout: {\n type\n },\n design,\n headerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useDesignBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n height: scaleMobile(mobile, pageRequestUuid4, +borderWidth),\n background: borderColor,\n position: \"sticky\",\n top: \"var(--rendered-height-header)\",\n zIndex: 9\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useDesignBorderWidth > 0) {\n style.borderLeft = \"\".concat(useDesignBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-separator\",\n style\n };\n}\n\nexport { bannerHeaderInlineStyleSeparator };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyleSeparator({\n layout: {\n type\n },\n design,\n footerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n height: scaleMobile(mobile, pageRequestUuid4, +borderWidth),\n background: borderColor,\n position: \"sticky\",\n bottom: \"var(--rendered-height-footer)\"\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useBorderWidth > 0) {\n style.borderLeft = \"\".concat(useBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-separator\",\n style\n };\n}\n\nexport { bannerFooterInlineStyleSeparator };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { bannerContentInlineStyleInner, useBanner, useBannerAnimation, useResettableAnimation } from \"../../..\";\nimport { AnimatedCss } from \"../..\";\nimport { BannerContent } from \".\";\n\nconst BannerAnimatedContent = () => {\n const banner = useBanner();\n const {\n layout: {\n animationInDuration,\n animationOutDuration\n },\n animationVisible\n } = banner;\n const {\n useAnimationIn,\n useAnimationOut\n } = useBannerAnimation()(banner.layout);\n const [stateAnimationIn, stateAnimationInDuration] = useResettableAnimation(useAnimationIn, animationInDuration);\n const [stateAnimationOut, stateAnimationOutDuration] = useResettableAnimation(useAnimationOut === \"none\" ? \"fadeOut\" : useAnimationOut, useAnimationOut === \"none\" ? 0 : animationOutDuration);\n return h(AnimatedCss, _extends({\n animationIn: stateAnimationIn,\n animationInDuration: stateAnimationInDuration,\n animationOut: stateAnimationOut,\n animationOutDuration: stateAnimationOutDuration,\n isVisible: animationVisible\n }, bannerContentInlineStyleInner(banner)), h(BannerContent, null));\n};\n\nexport { BannerAnimatedContent };","import { calculateRgba } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\n\nfunction bannerContentInlineStyleInner({\n layout: {\n type,\n dialogMaxWidth,\n dialogPosition,\n dialogMargin,\n bannerPosition,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n textAlign,\n fontColor,\n fontInheritFamily,\n fontFamily,\n fontWeight,\n boxShadowEnabled,\n boxShadowOffsetX,\n boxShadowOffsetY,\n boxShadowBlurRadius,\n boxShadowSpreadRadius,\n boxShadowColor,\n boxShadowColorAlpha\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const {\n alignment: mobileAlignment\n } = mobile;\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const width = useType === \"dialog\" ? +(individualPrivacyOpen && !individualLayout.inheritDialogMaxWidth ? individualLayout.dialogMaxWidth : dialogMaxWidth) : \"100%\";\n const style = {\n pointerEvents: \"all\",\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: width,\n textAlign,\n width,\n overflow: \"hidden\",\n alignSelf: scaleMobile(mobile, pageRequestUuid4, useType === \"banner\" ? bannerPosition === \"top\" ? \"flex-start\" : \"flex-end\" : undefined, mobileAlignment === \"bottom\" ? \"flex-end\" : mobileAlignment === \"top\" ? \"flex-start\" : \"center\"),\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n fontWeight,\n color: fontColor,\n margin: useType === \"dialog\" ? 10 : undefined,\n borderRadius: useType === \"dialog\" ? +dialogBorderRadius : undefined,\n boxShadow: boxShadowEnabled ? \"\".concat(boxShadowOffsetX, \"px \").concat(boxShadowOffsetY, \"px \").concat(boxShadowBlurRadius, \"px \").concat(boxShadowSpreadRadius, \"px \").concat(calculateRgba(boxShadowColor, boxShadowColorAlpha)) : undefined,\n [useType === \"banner\" ? bannerPosition === \"top\" ? \"borderBottom\" : \"borderTop\" : \"border\"]: useType === \"banner\" ? useBorderWidth > 0 ? \"\".concat(useBorderWidth, \"px solid \").concat(borderColor) : undefined : undefined\n };\n\n if (useType === \"dialog\" && dialogPosition !== \"middleCenter\") {\n style.margin = dialogMargin.map(i => \"\".concat(i, \"px\")).join(\" \");\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-inner\",\n style\n };\n}\n\nexport { bannerContentInlineStyleInner };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useState, useLayoutEffect, useEffect } from \"react\";\nimport { dispatchResizeEvent } from \"@devowl-wp/headless-content-unblocker\";\nimport { useBanner, useBannerActionLinks, useBannerHistory, usePlainCss, useRestrictScrollWhenVisible, bannerOverlayInlineStyle, bannerOverlayInlineStyleAlignment, BannerAnimatedContent, isHiddenDueLegal } from \"../..\";\n\nconst Banner = () => {\n const banner = useBanner();\n const {\n layout: {\n overlay,\n overlayBlur\n },\n customCss: {\n antiAdBlocker,\n css\n },\n visible,\n animationVisible,\n activeAction,\n skipOverlay,\n gotHiddenDueLegal,\n pageRequestUuid4,\n individualPrivacyOpen\n } = banner;\n const hiddenDueLegal = isHiddenDueLegal(banner);\n const show = visible && !hiddenDueLegal || !!activeAction;\n usePlainCss(antiAdBlocker ? css : \"\");\n usePlainCss( // `-webkit-text-size-adjust:100%;`: https://stackoverflow.com/a/2711132/5506547\n \"#\".concat(pageRequestUuid4, \", #\").concat(pageRequestUuid4, \" * {box-sizing: border-box;backface-visibility:initial;text-transform:initial;-webkit-text-size-adjust:100%;}\")); // Blur effect\n\n if (process.env.PLUGIN_CTX === \"pro\") {\n /* Silence is golden... Until you have PRO Version! */\n }\n\n useRestrictScrollWhenVisible(show && overlay && animationVisible); // Listen to window resizes and resize the content automatically\n\n const [, setInvalidate] = useState(0);\n\n const updateSize = () => setInvalidate(+new Date());\n\n useLayoutEffect(() => {\n window.addEventListener(\"resize\", updateSize);\n return () => window.removeEventListener(\"resize\", updateSize);\n }, []);\n useLayoutEffect(() => {\n dispatchResizeEvent(1000);\n }, [animationVisible, individualPrivacyOpen]); // When changes to the legal settings are done, make the banner visible or hide\n\n gotHiddenDueLegal && useEffect(() => {\n gotHiddenDueLegal(hiddenDueLegal);\n }, [hiddenDueLegal]);\n useBannerHistory();\n useBannerActionLinks();\n\n if (!show) {\n return null;\n }\n\n const content = h(\"div\", bannerOverlayInlineStyleAlignment(banner), h(BannerAnimatedContent, null));\n return skipOverlay ? content : h(\"div\", _extends({\n id: pageRequestUuid4\n }, bannerOverlayInlineStyle(banner)), content);\n};\n\nexport { Banner };","import { useEffect } from \"react\";\n/**\n * Do not allow scrolling when this banner is visible\n *\n * @param visible\n */\n\nfunction useRestrictScrollWhenVisible(visible) {\n return useEffect(() => {\n const {\n dataset,\n style\n } = document.body; // Save first state\n\n if (dataset.rcbPreviousOverflow === undefined) {\n dataset.rcbPreviousOverflow = style.overflow;\n }\n\n style.overflow = visible ? \"hidden\" : dataset.rcbPreviousOverflow;\n document.body.parentElement.style.overflow = style.overflow;\n }, [visible]);\n}\n\nexport { useRestrictScrollWhenVisible };","import { useEffect, useState } from \"react\";\nimport { useBanner } from \"../../..\";\n\nfunction useBannerHistory() {\n const banner = useBanner();\n const {\n consent,\n groups,\n tcf,\n activeAction,\n selectHistoryEntry,\n fetchHistory\n } = banner; // Save the current consent and group settings to restore\n\n const [originalConsent, setOriginalConsent] = useState({\n consent,\n groups,\n tcf\n }); // Listen to consent changes and save it as original consent (only when non-history)\n\n useEffect(() => {\n if (!activeAction) {\n setOriginalConsent({\n consent,\n groups,\n tcf\n });\n }\n }, [consent, groups, tcf, activeAction]);\n useEffect(() => {\n async function fetch() {\n const result = await fetchHistory(); // Initially select first item\n\n if (result.length) {\n const [{\n groups,\n decision,\n tcf\n }] = result;\n selectHistoryEntry(groups, decision, tcf);\n } else {\n selectHistoryEntry([], []);\n }\n }\n\n if (activeAction === \"history\") {\n // Save state of original consent\n setOriginalConsent({\n consent,\n groups,\n tcf\n });\n fetch();\n } else {\n // If we close the history, restore the original state\n const {\n groups,\n consent: {\n groups: consentGroups\n },\n tcf\n } = originalConsent;\n selectHistoryEntry === null || selectHistoryEntry === void 0 ? void 0 : selectHistoryEntry(groups, consentGroups, tcf);\n }\n }, [activeAction]);\n}\n\nexport { useBannerHistory };","import { scaleMobile } from \"../..\";\n\nfunction bannerOverlayInlineStyleAlignment({\n layout: {\n type,\n dialogPosition\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const style = {\n display: \"flex\",\n width: \"100%\",\n height: \"100%\"\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\") {\n style.alignItems = dialogPosition.startsWith(\"top\") ? \"flex-start\" : dialogPosition.startsWith(\"bottom\") ? \"flex-end\" : \"center\";\n style.justifyContent = dialogPosition.endsWith(\"Center\") ? \"center\" : dialogPosition.endsWith(\"Left\") ? \"flex-start\" : \"flex-end\";\n }\n\n return {\n className: \"wp-exclude-emoji \".concat(antiAdBlocker === \"y\" ? \"\" : \"rcb-align\"),\n style\n };\n}\n\nexport { bannerOverlayInlineStyleAlignment };","import { scaleMobile } from \"../..\";\nimport { calculateRgba } from \"../../..\";\n/**\n * This method needs to be ported to Banner.php#wp_footer, too!\n */\n\nfunction bannerOverlayInlineStyle({\n layout: {\n type,\n overlay,\n overlayBg,\n overlayBgAlpha\n },\n design: {\n fontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-bann3r rcb-bann3r-\".concat(scaleMobile(mobile, pageRequestUuid4, type, \"banner\"), \" \").concat(overlay ? \"\" : \"overlay-deactivated\"),\n style: {\n background: overlay ? calculateRgba(overlayBg, overlayBgAlpha) : \"none\",\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 999999,\n pointerEvents: overlay ? \"all\" : \"none\",\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n filter: \"none\",\n maxHeight: \"100vh\"\n }\n };\n}\n\nexport { bannerOverlayInlineStyle };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentGet = {\n path: \"/consent\",\n method: RouteHttpVerb.GET\n};","import { useState } from \"react\";\nimport { getOptionsFromWindow, getOtherOptionsFromWindow } from \"../utils\";\nimport { useBannerPreDecisionGateway, useTcf } from \"../hooks\";\nimport { applyConsent, getCookieConsentManager } from \"../others\";\nimport { prepareTcfString } from \"../tcf\";\nimport { getUserDecision } from \"@devowl-wp/cookie-consent-web-client\";\nimport { useBannerConsentListener } from \"@devowl-wp/react-cookie-banner\";\nimport { BannerContextFactory, useBannerToggleOverlay, Banner, useBannerStateContextCallbacks } from \"@devowl-wp/react-cookie-banner\";\nimport { locationRestConsentGet } from \"../wp-api\";\nimport { commonRequest } from \"@devowl-wp/utils\";\nimport { BannerProductionNotice } from \".\";\n/**\n * Simply connects a context store to the banner itself. On the website itself\n * it should not rely\n */\n\nconst WebsiteBanner = ({\n poweredLink\n}) => {\n const {\n customizeValuesBanner: {\n layout,\n decision,\n legal,\n design,\n headerDesign,\n bodyDesign,\n footerDesign,\n texts,\n individualLayout,\n saveButton,\n group,\n individualTexts,\n customCss,\n mobile\n },\n pageId,\n pageRequestUuid4,\n pageIdToPermalink,\n consentForwardingExternalHosts,\n essentialGroup,\n isTcf,\n isEPrivacyUSA,\n isAgeNotice,\n isListServicesNotice,\n tcf,\n tcfMetadata,\n groups,\n userConsentCookieName,\n bannerI18n,\n affiliate,\n isCurrentlyInTranslationEditorPreview,\n pageByIdUrl\n } = getOtherOptionsFromWindow();\n const userDecision = getUserDecision(userConsentCookieName); // TCF compatibility\n\n const tcfObject = useTcf(isTcf, tcf, tcfMetadata); // Server-side rendered overlay handler\n\n const {\n toggleOverlay\n } = useBannerToggleOverlay(document.getElementById(pageRequestUuid4));\n const {\n openHistory,\n openBanner,\n revokeConsent,\n updateTcfFilterBy,\n updateIndividualPrivacyOpen,\n updateGroupChecked,\n updateCookieChecked,\n onClose,\n selectHistoryEntry\n } = useBannerStateContextCallbacks({\n toggleOverlay,\n revokeConsent: ({\n tcf\n }) => {\n // Do not rely on current state of `groups` because it can be altered through history change\n const buttonClicked = \"shortcode_revoke\"; // TCF compatibility: revoke TCF string\n\n let tcfString;\n\n if (process.env.IS_TCF === \"1\" && tcf !== null && tcf !== void 0 && tcf.model) {\n tcfString = prepareTcfString(tcf.model, buttonClicked);\n }\n\n return applyConsent({\n consent: {\n groups: getCookieConsentManager().getDefaultDecision(true)\n },\n buttonClicked,\n tcfString\n });\n }\n }); // Context values preparation\n\n const [contextValue, setContextValue] = useState({\n layout: { ...layout\n },\n decision: { ...decision\n },\n legal: { ...legal\n },\n design: { ...design\n },\n headerDesign: { ...headerDesign\n },\n bodyDesign: { ...bodyDesign\n },\n footerDesign: { ...footerDesign\n },\n texts: { ...texts\n },\n individualLayout: { ...individualLayout\n },\n saveButton: { ...saveButton\n },\n group: { ...group\n },\n individualTexts: { ...individualTexts\n },\n customCss: { ...customCss\n },\n mobile: { ...mobile\n },\n productionNotice: h(BannerProductionNotice, null),\n pageRequestUuid4,\n pageIdToPermalink,\n pageByIdUrl,\n consentForwardingExternalHosts,\n pageId,\n isTcf,\n ePrivacyUSA: isEPrivacyUSA,\n ageNotice: isAgeNotice,\n listServicesNotice: isListServicesNotice,\n tcf: tcfObject,\n tcfFilterBy: \"legInt\",\n groups,\n essentialGroup,\n poweredLink,\n visible: false,\n animationVisible: true,\n skipOverlay: true,\n previewCheckboxActiveState: false,\n individualPrivacyOpen: false,\n i18n: bannerI18n,\n keepVariablesInTexts: isCurrentlyInTranslationEditorPreview,\n affiliate,\n consent: {\n groups: { ...(userDecision === false ? {} : userDecision.consent),\n // Always override essential cookies\n ...getCookieConsentManager().getDefaultDecision(userDecision === false)\n }\n },\n didGroupFirstChange: false,\n onSave: (markAsDoNotTrack, buttonClicked) => {\n setContextValue(state => {\n var _state$tcf;\n\n // TCF compatibility: persist TCF string\n let tcfString;\n\n if (process.env.IS_TCF === \"1\" && isTcf && (_state$tcf = state.tcf) !== null && _state$tcf !== void 0 && _state$tcf.model) {\n tcfString = prepareTcfString(state.tcf.model, buttonClicked);\n }\n\n const appliedConsent = applyConsent({\n consent: state.consent,\n markAsDoNotTrack,\n buttonClicked,\n tcfString\n });\n\n if (state.refreshSiteAfterSave) {\n appliedConsent.then(() => // Fix iOS / Safari bug when we want to reload the page after a POST request\n setTimeout(() => window.location.reload(), state.refreshSiteAfterSave ||\n /* BC */\n 2000)); // When refreshing the site, do not show any out animation\n\n return state;\n } else {\n return { ...state,\n ...toggleOverlay(state, false)\n };\n }\n });\n },\n fetchHistory: async () => {\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow();\n const history = await commonRequest({\n location: locationRestConsentGet,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n cookieValueAsParam: [userConsentCookieName],\n sendRestNonce: false\n });\n setContextValue(state => {\n return { ...state,\n history\n };\n });\n return history;\n },\n // Predefined callbacks\n updateTcfFilterBy: newFilter => updateTcfFilterBy(setContextValue, newFilter),\n updateIndividualPrivacyOpen: opened => updateIndividualPrivacyOpen(setContextValue, opened),\n updateGroupChecked: (id, checked) => updateGroupChecked(setContextValue, id, checked),\n updateCookieChecked: (groupId, id, checked) => updateCookieChecked(setContextValue, groupId, id, checked),\n onClose: () => onClose(setContextValue),\n selectHistoryEntry: (groups, consentGroups, tcf) => selectHistoryEntry(setContextValue, groups, consentGroups, tcf),\n openHistory: e => openHistory(setContextValue, e),\n openBanner: e => openBanner(setContextValue, e),\n revokeConsent: (successMessage, e) => revokeConsent(setContextValue, successMessage, e)\n });\n useBannerPreDecisionGateway(contextValue, setContextValue, toggleOverlay);\n useBannerConsentListener(setContextValue, userConsentCookieName);\n const BannerContext = BannerContextFactory.Context();\n return h(BannerContext.Provider, {\n value: contextValue\n }, h(Banner, null));\n};\n\nexport { WebsiteBanner };","import { useMemo } from \"react\";\nimport { prepareTcfString } from \"../tcf\";\nimport { applyTcfModelMetadata, applyRestrictivePurposes, createTcfModel, createTcfModelFromCookie } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getCookieConsentManager } from \"../others\";\n/**\n * Merges the localized `tcf` and `tcfMetadata` together so it can be\n * used inside our `BannerContextProps` and returns a valid `GVL` instance.\n */\n\nfunction useTcf(active, tcf, tcfMeta) {\n return useMemo(() => {\n if (process.env.IS_TCF === \"1\" && active && Object.values(tcf.vendors).length > 0) {\n let gvl;\n let model;\n const manager = getCookieConsentManager();\n const restored = createTcfModelFromCookie(tcf, tcfMeta, manager.getOption(\"tcfCookieName\")); // First, try to resolve from user consent (cookie value)\n\n if (restored) {\n gvl = restored.gvl;\n model = restored.model;\n } else {\n // No consent given, let's create an empty model\n const newTcf = createTcfModel({\n tcf,\n tcfMeta,\n tcfString: \"\"\n });\n gvl = newTcf.gvl;\n model = newTcf.model;\n }\n\n applyTcfModelMetadata(model, tcfMeta, manager);\n applyRestrictivePurposes(model, tcf.vendorConfigurations);\n\n if (!restored) {\n prepareTcfString(model, \"initial\");\n }\n\n return {\n gvl,\n model,\n original: tcf,\n metadata: tcfMeta\n };\n } else {\n return undefined;\n }\n }, [active, tcf, tcfMeta]);\n}\n\nexport { useTcf };","import { useCallback } from \"react\";\nimport { useBannerAnimation } from \"../..\";\n/**\n * Provides a callback which can be used to update the state of the banner context and manipulate\n * the `visible` and `animationVisible` property correctly.\n */\n\nfunction useBannerToggleOverlay(overlay) {\n const useBannerAnimationCallback = useBannerAnimation();\n const toggleOverlay = useCallback(({\n layout\n }, show) => {\n const {\n animationInDuration,\n animationOutDuration\n } = layout;\n const {\n useAnimationIn,\n useAnimationOut\n } = useBannerAnimationCallback(layout);\n const defaultIfNoAnimation = 0; // Avoid \"hard\" overlay\n\n const useDuration = show ? useAnimationIn === \"none\" ? defaultIfNoAnimation : animationInDuration : useAnimationOut === \"none\" ? defaultIfNoAnimation : animationOutDuration; // Toggle SSR-rendered overlay\n\n useDuration > 0 && (overlay.style.transition = \"background \".concat(useDuration, \"ms\"));\n overlay.style.background = \"transparent\";\n\n if (show) {\n // We need a small delay to avoid flickering of animation out effect in customizer\n setTimeout(() => {\n overlay.style.display = \"block\";\n }, 0);\n setTimeout(() => {\n const bg = overlay.getAttribute(\"data-bg\");\n overlay.style.background = bg ? bg.split(\":\")[1].trim().replace(\";\", \"\") : \"transparent\";\n }, 100);\n } else {\n setTimeout(() => {\n overlay.style.display = \"none\";\n }, useDuration);\n }\n\n const animationVisible = {\n animationVisible: show\n };\n return show ? {\n visible: true,\n ...animationVisible\n } : animationVisible;\n }, [useBannerAnimationCallback]);\n return {\n overlay,\n toggleOverlay\n };\n}\n\nexport { useBannerToggleOverlay };","import { useEffect } from \"react\";\nimport { getOptionsFromWindow, isCustomize } from \"../utils\";\nimport { getCookieConsentManager } from \"../others\";\nimport { preDecisionGateway } from \"@devowl-wp/cookie-consent-web-client\";\nimport { preDecisionGatewayDynamicRequest, preDecisionGatewayHasPageClass, preDecisionGatewayIsCrawler, preDecisionGatewayIsPreventPreDecision, preDecisionGatewaySupportsCookies, preDecisionGatewayUserConsent, preDecisionGatewayIsDoNotTrack } from \"@devowl-wp/cookie-consent-web-client\";\nimport { commonRequest } from \"@devowl-wp/utils\";\nimport { locationRestConsentDynamicPredecisionGet } from \"../wp-api\";\nimport { isHiddenDueLegal } from \"@devowl-wp/react-cookie-banner\";\n/**\n * Do some decision gateways like DNT, Bot / Crawler and Decision and depending\n * on that, show the Banner initially.\n */\n\nfunction useBannerPreDecisionGateway(banner, setContextValue, toggleOverlay) {\n useEffect(() => {\n // Only run this predecision mechanism once and when not in customize\n if (isCustomize()) {\n return;\n }\n\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce,\n others: {\n isAcceptAllForBots,\n isPreventPreDecision,\n hasDynamicPreDecisions,\n isRespectDoNotTrack\n }\n } = getOptionsFromWindow();\n const {\n onSave\n } = banner;\n preDecisionGateway(getCookieConsentManager(), {\n gateways: [preDecisionGatewaySupportsCookies, preDecisionGatewayHasPageClass([\"login-action-\"]), preDecisionGatewayDynamicRequest(() => {\n const {\n clientWidth,\n clientHeight\n } = document.documentElement;\n return commonRequest({\n location: locationRestConsentDynamicPredecisionGet,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n request: {\n viewPortWidth: clientWidth,\n viewPortHeight: clientHeight\n },\n params: {\n _wp_http_referer: window.location.href\n }\n });\n }, 10000, hasDynamicPreDecisions), async (_, banner) => isHiddenDueLegal(banner) ? \"consent\" : false, preDecisionGatewayIsPreventPreDecision(isPreventPreDecision), preDecisionGatewayIsCrawler(isAcceptAllForBots ? \"all\" : false), preDecisionGatewayIsDoNotTrack(isRespectDoNotTrack), preDecisionGatewayUserConsent],\n args: [banner],\n onIsDoNotTrack: () => {\n onSave(true, \"none\");\n },\n onShowCookieBanner: () => setContextValue(state => {\n return { ...state,\n // Always revert back to \"Essentials\" only consent when cookie needs to be consented\n consent: {\n groups: getCookieConsentManager().getDefaultDecision()\n },\n ...toggleOverlay(state, true)\n };\n })\n });\n }, []);\n}\n\nexport { useBannerPreDecisionGateway };","import { getOtherOptionsFromWindow } from \"./getOtherOptionsFromWindow\";\n/**\n * Checks if the current page is customize page.\n */\n\nfunction isCustomize() {\n return !!getOtherOptionsFromWindow().customizeIdsBanner;\n}\n\nexport { isCustomize };","import { getUserDecision } from \"../decision\";\nimport { isCrawler } from \"../utils\";\n/**\n * Is the current request from a spider / crawler?\n */\n\nconst preDecisionGatewayIsCrawler = resultIfBot => async ({\n decisionCookieName\n}) => {\n if (getUserDecision(decisionCookieName) !== false || !resultIfBot) {\n return false;\n }\n\n return isCrawler() ? resultIfBot : false;\n};\n\nexport { preDecisionGatewayIsCrawler };","import { getUserDecision } from \"../decision\";\nimport { isCrawler } from \"../utils\";\n/**\n * Prevent any predecision and user decision and force to reuse existing consent or all for crawlers.\n * This could be e.g. be configured by a dynamic hook or on server-side via a localized variable.\n */\n\nconst preDecisionGatewayIsPreventPreDecision = preventPreDecision => async ({\n decisionCookieName\n}) => {\n const userDecision = getUserDecision(decisionCookieName);\n return preventPreDecision && userDecision === false ? isCrawler() ? // For crawlers we need to explicitly allow services on all pages\n \"all\" : \"consent\" : false;\n};\n\nexport { preDecisionGatewayIsPreventPreDecision };","/**\n * Do not show cookie banner for a certain page, e.g. the login page.\n */\nconst preDecisionGatewayHasPageClass = classNames => async () => {\n const {\n className\n } = document.body;\n return classNames.filter(c => className.indexOf(c) > -1).length > 0 ? \"consent\" : false;\n};\n\nexport { preDecisionGatewayHasPageClass };","import { CookieConsentManager } from \"../apply\";\nimport { apply } from \"../apply\";\nimport { BANNER_PRE_DECISION_SHOW_EVENT } from \"../events\";\nimport { ready } from \"../utils\";\n\nasync function preDecisionGateway(options, handler) {\n let show = true;\n const useOptions = options instanceof CookieConsentManager ? options.getOptions() : options;\n const {\n gateways,\n args,\n onIsDoNotTrack,\n onShowCookieBanner\n } = handler;\n\n for (const gateway of gateways) {\n const result = await gateway(useOptions, ...args);\n\n if (result !== false) {\n show = false;\n\n const applyWithOptions = type => apply({\n type,\n ...useOptions\n });\n\n if (result === \"all\") {\n applyWithOptions(\"all\");\n } else if (result === \"essentials\") {\n applyWithOptions(\"essentials\");\n } else if (result === \"dnt\") {\n onIsDoNotTrack(() => applyWithOptions(\"essentials\"));\n } else if (result === \"consent\") {\n // Apply services for the current user decision\n applyWithOptions(\"consent\");\n }\n\n break;\n }\n }\n\n if (show) {\n onShowCookieBanner(); // Wait all events are initialized\n\n await ready();\n document.dispatchEvent(new CustomEvent(BANNER_PRE_DECISION_SHOW_EVENT, {\n detail: {}\n }));\n }\n}\n\nexport { preDecisionGateway };","import { getUserDecision, OPT_IN_ALL_EVENT } from \"@devowl-wp/cookie-consent-web-client\";\nimport { useEffect } from \"react\";\n\nfunction useBannerConsentListener(setContextValue, userConsentCookieName) {\n useEffect(() => {\n const listener = () => {\n const consent = getUserDecision(userConsentCookieName);\n consent && setContextValue(state => ({ ...state,\n consent: {\n groups: consent.consent\n }\n }));\n };\n\n document.addEventListener(OPT_IN_ALL_EVENT, listener);\n return () => {\n document.removeEventListener(OPT_IN_ALL_EVENT, listener);\n };\n }, []);\n}\n\nexport { useBannerConsentListener };","/**\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 { putHtmlCodeToDom, OPT_IN_CONTENT_BLOCKER } from \"@devowl-wp/headless-content-unblocker\";\nimport { OPT_IN_EVENT, waitObject } from \"@devowl-wp/cookie-consent-web-client\";\nlet amazonWidgetsSlotNum = 0;\n/**\n * Some presets have custom opt-in coding, e. g. Amazon Widgets.\n */\n\nfunction listenPresetOptIn() {\n document.addEventListener(OPT_IN_EVENT, async ({\n detail: {\n service: {\n presetId,\n codeOptIn,\n codeDynamics\n }\n }\n }) => {\n switch (presetId) {\n case \"amazon-associates-widget\":\n {\n const {\n amznAssoWidgetHtmlId\n } = codeDynamics || {};\n\n if (amznAssoWidgetHtmlId) {\n const element = document.getElementById(amznAssoWidgetHtmlId);\n\n if (element) {\n const slotNum = amazonWidgetsSlotNum;\n amazonWidgetsSlotNum++;\n putHtmlCodeToDom(codeOptIn, codeDynamics, element); // Amazon Widgets is using `document.write`, we need to manually move the ad container...\n\n const adContainer = await waitObject(() => document.querySelector(\"[id^=\\\"amzn_assoc_ad_div_\\\"][id$=\\\"\".concat(slotNum, \"\\\"]\")), 500, 50);\n\n if (adContainer) {\n element.appendChild(adContainer);\n }\n }\n }\n\n break;\n }\n\n case \"google-maps\":\n {\n document.addEventListener(OPT_IN_CONTENT_BLOCKER, async ({\n detail: {\n element\n }\n }) => {\n const {\n et_pb_map_init,\n jQuery\n } = window;\n\n if (jQuery && element.matches(\".et_pb_map\") && et_pb_map_init) {\n await waitObject(() => window.google);\n et_pb_map_init(jQuery(element).parent());\n }\n });\n break;\n }\n\n default:\n break;\n }\n });\n}\n\nexport { listenPresetOptIn };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentClearDelete = {\n path: \"/consent/clear\",\n method: RouteHttpVerb.DELETE\n};","import { getOtherOptionsFromWindow } from \"../utils\";\nimport { getUserDecision, regExpPatternFromWildcardName } from \"@devowl-wp/cookie-consent-web-client\";\n/**\n * Synchronously check if a consent is given. See `window.consentApi.consent` for more documentation.\n */\n\nfunction consentSync(typeOrId, name,\n/**\n * This can also be `*` to allow all hosts.\n */\nhost) {\n // Find matching cookie\n const found = [];\n const {\n groups,\n revisionHash\n } = getOtherOptionsFromWindow();\n const allCookies = groups.map(({\n items\n }) => items).flat();\n\n for (const row of allCookies) {\n if (typeof typeOrId === \"number\") {\n if (row.id === typeOrId) {\n found.push({\n cookie: row,\n relevance: 10\n });\n }\n } else {\n const {\n technicalDefinitions\n } = row;\n\n if (technicalDefinitions !== null && technicalDefinitions !== void 0 && technicalDefinitions.length) {\n // Check if technical information matches\n for (const td of technicalDefinitions) {\n const regexp = regExpPatternFromWildcardName(td.name);\n\n if (td.type === typeOrId && (td.name === name || name.match(regexp)) && (td.host === host || host === \"*\")) {\n found.push({\n cookie: row,\n // Create a priority by \"relevance\" inside the technical definitions\n // This is the case if e.g. another Cookie consumes the same technical cookie\n // Example: Vimeo uses Facebook Pixel, too\n relevance: technicalDefinitions.length + technicalDefinitions.indexOf(td) + 1\n });\n break;\n }\n }\n }\n }\n }\n\n const already = getUserDecision(getOtherOptionsFromWindow().userConsentCookieName);\n\n if (found.length) {\n const relevantCookie = found.sort(({\n relevance: a\n }, {\n relevance: b\n }) => a - b)[0].cookie; // Check if consent is already given\n\n if (already && revisionHash === already.revision) {\n const consentCookieIds = Object.values(already.consent).flat();\n\n if (consentCookieIds.indexOf(relevantCookie.id) > -1) {\n return {\n cookie: relevantCookie,\n consentGiven: true,\n cookieOptIn: true\n };\n } else {\n return {\n cookie: relevantCookie,\n consentGiven: true,\n cookieOptIn: false\n };\n }\n } else {\n return {\n cookie: relevantCookie,\n consentGiven: false,\n cookieOptIn: false\n };\n }\n } else {\n return {\n cookie: null,\n consentGiven: !!already,\n cookieOptIn: true\n };\n }\n}\n\nexport { consentSync };","import { OPT_IN_EVENT, OPT_OUT_EVENT } from \"@devowl-wp/cookie-consent-web-client\";\nimport { consentSync } from \".\";\n/**\n * `window.consentApi.consent`: Check if a given technical information (e.g. HTTP Cookie, LocalStorage, ...) has a consent:\n *\n * - When a technical information exists in defined cookies, the Promise is only resolved after given consent\n * - When no technical information exists, the Promise is immediate resolved\n *\n * Example (ES5):\n * ```js\n * (window.consentApi && window.consentApi.consent(\"http\", \"_twitter_sess\", \".twitter.com\") || Promise.resolve()).then(function() {\n * console.log(\"Consent for Twitter embed given, do something...!\");\n * });\n * ```\n *\n * Example (ES6, Babel, TS):\n * ```js\n * (window.consentApi?.consent(\"http\", \"_twitter_sess\", \".twitter.com\") || Promise.resolve()).then(() => {\n * console.log(\"Consent for Twitter embed given, do something...!\");\n * });\n * ```\n *\n * **Since 2.3.0**: You can also check for consent by cookie ID (ID in `wp_posts`, post id):\n *\n * ```js\n * window.consentApi.consent(15)\n * ```\n */\n\nfunction consent(...args) {\n return new Promise((resolve, reject) => {\n const {\n cookie: foundCookie,\n consentGiven,\n cookieOptIn\n } = consentSync(...args);\n\n if (foundCookie) {\n if (consentGiven) {\n if (cookieOptIn) {\n resolve();\n } else {\n reject();\n }\n } else {\n // Wait for consent\n document.addEventListener(OPT_IN_EVENT, async ({\n detail: {\n service\n }\n }) => {\n if (service === foundCookie) {\n resolve();\n }\n }); // Wait for opt out\n\n document.addEventListener(OPT_OUT_EVENT, async ({\n detail: {\n service\n }\n }) => {\n if (service === foundCookie) {\n reject();\n }\n });\n }\n } else {\n resolve();\n }\n });\n}\n\nexport { consent };","import { consent } from \".\";\n/**\n * `window.consentApi.consentAll`: Check if a set of given technical information (e.g. HTTP Cookie, LocalStorage, ...)\n * have a consent. This is similar to `window.consentApi.consent` but for multiple cookies.\n */\n\nfunction consentAll(technicalDefinitions) {\n return Promise.all(technicalDefinitions.map(args => consent(...args)));\n}\n\nexport { consentAll };","/* 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 * Entrypoint for plain website. This file is only loaded if the visitor needs to accept cookies.\n */\nimport { render } from \"react-dom\";\nimport { WebsiteBanner } from \"./components\";\nimport { getOtherOptionsFromWindow, ensureBodyElement } from \"./utils\";\nimport { listenPresetOptIn, deleteCookiesServer, getCookieConsentManager } from \"./others\";\nimport { tcfCmpApi } from \"./tcf\";\nimport * as API from \"./api\";\nimport { getWebpackPublicPath } from \"@devowl-wp/utils\";\nimport { printConsentUuidsToHTMLElement } from \"@devowl-wp/cookie-consent-web-client\";\nimport { OPT_OUT_ALL_EVENT, ready } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getSsrPoweredByLink } from \"@devowl-wp/react-cookie-banner\";\n__webpack_public_path__ = getWebpackPublicPath(process.env.slug);\nlistenPresetOptIn();\ntcfCmpApi();\nready(() => {\n const {\n pageRequestUuid4\n } = getOtherOptionsFromWindow();\n const poweredLink = getSsrPoweredByLink(\"\".concat(pageRequestUuid4, \"-powered-by\"));\n const element = ensureBodyElement(document.getElementById(pageRequestUuid4));\n printConsentUuidsToHTMLElement(\".rcb-consent-history-uuids\", getCookieConsentManager());\n document.addEventListener(OPT_OUT_ALL_EVENT, async ({\n detail: {\n deleteHttpCookies\n }\n }) => {\n // Handle cookie deletion which needs to be done server-side (e. g. HTTP cookies)\n deleteHttpCookies.length && setTimeout(() => deleteCookiesServer(deleteHttpCookies), 0);\n });\n\n if (element) {\n render(h(WebsiteBanner, {\n poweredLink: poweredLink\n }), element);\n }\n}, \"interactive\"); // Expose public API\n\nif (window) {\n window.consentApi = API;\n}\n\nexport * from \"./api\";","import { tcfCmpApiDispatcher } from \"@devowl-wp/cookie-consent-web-client\";\nimport { CmpApi } from \"@iabtcf/cmpapi\";\nimport { getCookieConsentManager } from \"../others\";\nimport { getCmpVersion, getOtherOptionsFromWindow } from \"../utils\";\nlet cmpApiInstance;\n/**\n * Initialize a CMP API once for this page request. If TCF is not available, it will\n * return `undefined`.\n *\n * @see https://www.npmjs.com/package/@iabtcf/cmpapi\n */\n\nfunction tcfCmpApi() {\n const other = getOtherOptionsFromWindow();\n const {\n isTcf\n } = other;\n\n if (process.env.IS_TCF === \"1\" && isTcf) {\n const {\n tcf,\n tcfMetadata\n } = other;\n const {\n scope\n } = tcfMetadata; // Create instance only once\n\n if (!cmpApiInstance) {\n cmpApiInstance = new CmpApi(+process.env.TCF_CMP_ID, // Currently, only two bits (https://git.io/JmuD0) can be saved to the cmpVersion, so we can only save the major version\n getCmpVersion(\"major\"), scope === \"service-specific\"); // Dispatch events to vendors can listen to it\n\n setTimeout(() => tcfCmpApiDispatcher(tcf, tcfMetadata, cmpApiInstance, getCookieConsentManager().getOption(\"tcfCookieName\")), 0);\n }\n\n return cmpApiInstance;\n } else {\n return undefined;\n }\n}\n\nexport { tcfCmpApi };","/**\n * Ensure the given HTML is a child of `body`. If not, it automatically gets moved.\n */\nfunction ensureBodyElement(element) {\n const {\n body\n } = document;\n const {\n parentElement\n } = element;\n\n if (parentElement !== body) {\n body.appendChild(element);\n }\n\n return element;\n}\n\nexport { ensureBodyElement };","import { CookieConsentManager } from \"../apply\";\nimport { BANNER_PRE_DECISION_SHOW_EVENT, OPT_IN_ALL_EVENT } from \"../events\";\nimport { getUserDecision } from \".\";\n/**\n * Listen to opt-in so we can safely print the UUID of the current consent to HTML elements.\n */\n\nfunction printConsentUuidsToHTMLElement(selector, decisionCookieName) {\n const elements = Array.prototype.slice.call(document.querySelectorAll(selector));\n document.addEventListener(BANNER_PRE_DECISION_SHOW_EVENT, () => {\n elements.forEach(element => element.innerHTML = element.getAttribute(\"data-fallback\"));\n });\n document.addEventListener(OPT_IN_ALL_EVENT, () => {\n const consent = getUserDecision(decisionCookieName instanceof CookieConsentManager ? decisionCookieName.getOption(\"decisionCookieName\") : decisionCookieName);\n const allUuids = consent ? [consent.uuid, ...consent.previousUuids] : [];\n elements.forEach(element => element.innerHTML = allUuids.length > 0 ? allUuids.join(\", \") : element.getAttribute(\"data-fallback\"));\n });\n}\n\nexport { printConsentUuidsToHTMLElement };","import { commonRequest } from \"@devowl-wp/utils\";\nimport { getOptionsFromWindow } from \"../utils\";\nimport { locationRestConsentClearDelete } from \"../wp-api\";\n/**\n * Delete cookies on server side (currently only `http`).\n */\n\nfunction deleteCookiesServer(cookies) {\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow();\n return commonRequest({\n location: locationRestConsentClearDelete,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n params: {\n cookies: cookies.join(\",\")\n }\n });\n}\n\nexport { deleteCookiesServer };","import { getOtherOptionsFromWindow } from \"../utils\";\n\nconst BannerProductionNotice = () => {\n const {\n isPro,\n isLicensed,\n isDevLicense,\n bannerI18n: {\n noLicense,\n devLicense\n }\n } = getOtherOptionsFromWindow();\n\n if (!isPro) {\n return null;\n }\n\n let useText = \"\";\n\n if (isDevLicense) {\n useText = devLicense;\n } else if (!isLicensed) {\n useText = noLicense;\n }\n\n return useText ? h(\"div\", {\n style: {\n fontSize: 13,\n color: \"#c95252\",\n fontWeight: \"bold\",\n order: 9\n }\n }, useText) : null;\n};\n\nexport { BannerProductionNotice };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentPost = {\n path: \"/consent\",\n method: RouteHttpVerb.POST\n};","import { getOtherOptionsFromWindow } from \"../utils\";\n/**\n * Apply Consent Forwarding, it set's cross domain cookies via CORS requests.\n *\n * @see https://javascript.info/fetch-crossorigin\n */\n\nfunction applyConsentForwarding({\n endpoints,\n data\n}) {\n const {\n isPro\n } = getOtherOptionsFromWindow();\n\n if (isPro) {\n /* onlypro:start */\n const promises = [];\n\n for (const endpoint of endpoints) {\n promises.push(window.fetch(endpoint, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n \"Content-Type\": \"application/json;charset=utf-8\"\n },\n body: JSON.stringify(data)\n }));\n }\n\n return Promise.all(promises);\n /* onlypro:start */\n } else {\n return Promise.reject();\n }\n}\n\nexport { applyConsentForwarding };","import { locationRestConsentPost } from \"../wp-api\";\nimport { getOptionsFromWindow } from \"../utils\";\nimport { applyConsentForwarding, getCookieConsentManager } from \".\";\nimport { commonRequest } from \"@devowl-wp/utils\";\n\n/**\n * Save consent to the backend and apply cookies on running session.\n */\nasync function applyConsent({\n consent,\n markAsDoNotTrack = false,\n buttonClicked,\n blocker = 0,\n blockerThumbnail,\n tcfString\n}) {\n const {\n clientWidth,\n clientHeight\n } = document.documentElement;\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow(); // Use `commonRequest` cause on frontend we do not have `wp.i18n` available\n\n const {\n forward,\n uuid,\n cookie_revision,\n decision_in_cookie\n } = await commonRequest({\n location: locationRestConsentPost,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n request: { ...consent,\n markAsDoNotTrack,\n buttonClicked,\n viewPortWidth: clientWidth,\n viewPortHeight: clientHeight,\n blocker,\n blockerThumbnail,\n tcfString\n },\n params: {\n _wp_http_referer: window.location.href\n }\n }); // Does the browser support cookies? Save the decision locally in `window` so `getUserDecision` can fallback\n\n window.rcbDisabledCookieComp = {\n uuid,\n previousUuids: [],\n revision: cookie_revision,\n consent: decision_in_cookie\n };\n await Promise.all([// Apply consent forwarding and wait for all requests\n forward && applyConsentForwarding(forward), getCookieConsentManager().applyCookies({\n type: \"consent\"\n })].filter(Boolean));\n}\n\nexport { applyConsent };","import { getOptionsFromWindow } from \"./getOptionsFromWindow\";\n/**\n * Get the version of Real Cookie Banner as integer.\n */\n\nfunction getCmpVersion(type) {\n const split = getOptionsFromWindow().version.split(\".\");\n return +(type === \"major\" ? split[0] : split.map(i => +i < 10 ? \"0\".concat(i) : i).join(\"\")); // 1.11.1 => 1011000; 2.5.0 => 2005001;\n}\n\nexport { getCmpVersion };","import { CookieConsentManager } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getCmpVersion, getOtherOptionsFromWindow } from \"../utils\";\n\nfunction getCookieConsentManager() {\n const {\n userConsentCookieName,\n revisionHash,\n setCookiesViaManager,\n groups,\n essentialGroup\n } = getOtherOptionsFromWindow();\n\n if (!window.rcbConsentManager) {\n window.rcbConsentManager = new CookieConsentManager({\n decisionCookieName: userConsentCookieName,\n essentialGroupSlug: essentialGroup,\n groups,\n revisionHash,\n supportsCookiesName: \"real_cookie_banner-test\",\n tagManager: setCookiesViaManager,\n skipOptIn: function (cookie) {\n const {\n presetId\n } = cookie;\n return [\"amazon-associates-widget\"].indexOf(presetId) > -1;\n },\n cmpId: process.env.TCF_CMP_ID,\n cmpVersion: getCmpVersion(\"major\"),\n tcfCookieName: \"\".concat(userConsentCookieName, \"-tcf\")\n });\n }\n\n return window.rcbConsentManager;\n}\n\nexport { getCookieConsentManager };","/**\n * Use this if you do not have the Mobx store available in your JavaScript asset.\n * E. g. the `banner.js` does not rely on the mobx store and should access the\n * localized options via `window.realCookieBanner` directly.\n */\nfunction getOptionsFromWindow() {\n return window[process.env.slug.replace(/-([a-z])/g, g => g[1].toUpperCase())];\n}\n\nexport { getOptionsFromWindow };","import { getOptionsFromWindow } from \"./getOptionsFromWindow\";\n/**\n * Use this if you do not have the Mobx store available in your JavaScript asset.\n * E. g. the `banner.js` does not rely on the mobx store and should access the\n * localized options via `window.realCookieBanner.others` directly.\n */\n\nfunction getOtherOptionsFromWindow() {\n return getOptionsFromWindow().others;\n}\n\nexport { getOtherOptionsFromWindow };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t392: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkrealCookieBanner_name_\"] = self[\"webpackChunkrealCookieBanner_name_\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [568], () => (__webpack_require__(9181)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","getManagerDependingVariables","setCookiesViaManager","presetId","useGlobalObjectName","getDataLayer","expectedManagerPresetId","serviceIsManager","managerLabel","isGtm","isMtm","window","getServiceSelection","decisionCookieName","tagManager","groups","essentialGroupSlug","type","selectedGroups","isManagerActive","essentialGroupObj","filter","slug","consentEssentials","id","items","map","decision","getUserDecision","consent","console","warn","iterateServices","async","callback","group","service","_selectedGroups$group","isOptIn","indexOf","useTagManager","apply","options","ready","dataLayerPromise","isManagerOptOut","services","applyOptInReady","allOptInServices","skipOptIn","Promise","resolve","undefined","waitPromises","codeDynamics","codeOptIn","executeCodeOptInWhenNoTagManagerConsentIsGiven","isOnlyWhenNoConsentToManager","isSkipOptIn","push","putHtmlCodeToDom","summary","document","dispatchEvent","CustomEvent","detail","all","applyOptIn","applyOptInOutManagerReady","dataLayer","event","tagManagerOptInEventName","realCookieBannerOptInEvents","setTimeout","tagManagerOptOutEventName","realCookieBannerOptOutEvents","applyOptInOutManager","optInAllReady","deleteHttpCookies","allOptOutServices","optOutReady","codeOptOut","deleteTechnicalDefinitionsAfterOptOut","isEmbeddingOnlyExternalResources","technicalDefinitions","executeCodeOptOutWhenNoTagManagerConsentIsGiven","dynamics","name","pattern","RegExp","regExpPatternFromWildcardName","applyDynamicsToHtml","key","Object","keys","test","useStorage","localStorage","sessionStorage","itemName","setItem","e","tries","getItem","removeItem","deleteCookiesLocally","some","applyOptOut","CookieConsentManager","constructor","this","applyCookies","getOption","getDefaultDecision","respectLegitimateInterests","result","ids","legalBasis","length","getOptions","cookieName","cookieValue","supportsCookies","rcbDisabledCookieComp","split","string","separator","n","out","slice","join","explode","uuidString","revision","uuids","uuid","shift","previousUuids","JSON","parse","BANNER_PRE_DECISION_SHOW_EVENT","OPT_IN_EVENT","OPT_IN_ALL_EVENT","OPT_OUT_EVENT","OPT_OUT_ALL_EVENT","helperCreateResolvablePromise","r","memorizedReadyStatePromises","loading","complete","interactive","LISTEN_TO_EVENTS","fn","state","executed","cb","readyState","reached","memorizeReadyState","addEventListener","then","tmp","replace","concat","str","cookie","DYNAMICS_VARIABLE_REGEXP","src","fullMatch","variableName","prototype","hasOwnProperty","call","HTML_ATTRIBUTE_CAPTURE_PREFIX","HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX","HTML_ATTRIBUTE_CAPTURE_SUFFIX","HTML_ATTRIBUTE_BY","HTML_ATTRIBUTE_COOKIE_IDS","HTML_ATTRIBUTE_VISUAL_PARENT","HTML_ATTRIBUTE_VISUAL_PAINT_MODE","HTML_ATTRIBUTE_INLINE","HTML_ATTRIBUTE_INLINE_STYLE","HTML_ATTRIBUTE_BLOCKER_ID","HTML_TAG_CONSENT_SCRIPT","HTML_ATTRIBUTE_BLOCKER_CONNECTED","HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED","HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE","HTML_ATTRIBUTE_TRANSFORM_WRAPPER","HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE","HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN","HTML_ATTRIBUTE_RESET_PARENT","HTML_ATTRIBUTE_RESET_PARENT_VALUE","HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER","HTML_ATTRIBUTE_GOT_CLICKED","HTML_ATTRIBUTE_GOT_CLICKED_VALUE","HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED","HTML_ATTRIBUTE_THUMBNAIL","WINDOW_ONLOAD_UNBLOCK_REPLACEMENT","html","referenceNode","body","done","error","beforeWriteToken","token","attrs","booleanAttrs","href","content","attr","querySelector","OPT_IN_CONTENT_BLOCKER","dispatchResizeEvent","delay","Event","htmlDecode","input","_doc$querySelector","DOMParser","parseFromString","documentElement","textContent","isUrl","url","parents","element","selector","elements","elem","parentElement","nodeType","Node","ELEMENT_NODE","AsciiSpinner","ms","chars","i","setI","interval","setInterval","clearInterval","h","dangerouslySetInnerHTML","__html","PlainAntdIconAsSvg","icon","rest","svgString","extraSVGAttrs","style","fill","CommonCheckbox","hideCheckbox","isPartial","isChecked","isDisabled","fontSize","onClick","children","after","CheckboxIcon","MinusOutlined","CheckOutlined","bannerOrBlocker","useBannerOrBlocker","isRendered","setIsRendered","layout","borderRadius","headlineFontSize","checkboxBg","checkboxBorderWidth","checkboxBorderColor","checkboxActiveBg","checkboxActiveBorderColor","checkboxActiveColor","customCss","antiAdBlocker","mobile","pageRequestUuid4","visible","checked","disabled","useFontSize","scale","useCheckboxBorderWidth","height","className","cursor","opacity","color","display","background","border","padding","width","marginRight","verticalAlign","lineHeight","boxSizing","commonInlineStyleGroupsCheckbox","CookieProperty","label","value","printValueAs","banner","i18n","yes","no","useValue","wordBreak","c","target","rel","groupBorderWidth","groupBorderColor","borderLeft","paddingLeft","commonInlineStyleGroupsCookieProperty","CookiePropertyList","purpose","provider","providerPrivacyPolicyUrl","ePrivacyUSA","isEssentialGroup","ePrivacyUSAEnabled","types","http","abbr","backgroundColor","local","session","flash","indexedDb","legalRequirement","legitimateInterest","host","duration","durationUnit","isSessionDuration","technicalCookieDefinition","fontFamily","noExpiration","Cookie","onToggleCheck","propertyListProps","descriptionFontSize","marginTop","commonInlineStyleGroupsCookie","marginBottom","Tooltip","title","position","size","always","rounded","noAnimate","bounce","ref","BannerContextFactory","static","context","useBanner","Context","BlockerContextFactory","useBlocker","FooterLink","anchorRest","isHover","setIsHover","onMouseEnter","onMouseLeave","footerDesign","fontColor","hoverFontColor","fontInheritFamily","design","linkTextDecoration","textDecoration","commonInlineStyleFooterLink","FooterPoweredByLink","poweredLink","affiliate","link","innerHTML","description","labelBehind","jsxJoin","components","filtered","Boolean","reduce","acc","curr","useCommonFooterLinks","onClose","putPoweredByLinkInRow","row1","close","poweredByLink","linkTarget","linkPrivacyPolicy","linkImprint","useLegalLinks","targetAttributes","rows","render","row","joinWithAndSeparator","arr","andSeparator","splice","supWithLineHeightFix","useCommonTeachings","disableDataProcessingInUnsafeCountries","disableAgeNotice","disableListServicesNotice","blocker","isEPrivacyUSA","ageNotice","isAgeNotice","listServicesNotice","isListServicesNotice","texts","ageNoticeBanner","consentForwardingExternalHosts","consentForwardingExternalHostsText","tcf","individualPrivacyOpen","individualTexts","individualDescription","essentialGroup","tcfBannerI18n","keepVariablesInTexts","consentForwardingExternalHostsFinalText","useDescription","servicesProcessingUnsafeCountries","flat","tcfVendorsProcessingUnsafeCountries","values","gvl","vendors","vendor","_additionalInformatio","additionalInformation","internationalTransfers","original","vendorConfigurations","useDataProcessingInUnsafeCountries","useAgeNotice","useListServicesNotice","hasBothPlaceholders","nonEssentialGroups","flattenSeparator","listServicesNames","groupIdx","listServiceGroupsNames","listOfServicesAppendix","teachings","legal","privacyPolicy","privacyPolicyExternalUrl","privacyPolicyIsExternalUrl","privacyPolicyLabel","imprint","imprintExternalUrl","imprintIsExternalUrl","imprintLabel","pageByIdUrl","pageIdToPermalink","counter","usePlainCss","css","uniqueId","keep","toString","getElementById","createElement","getElementsByTagName","appendChild","_element$parentNode","parentNode","removeChild","commonInlineStyleBodyTeaching","bodyDesign","teachingsInheritTextAlign","teachingsTextAlign","teachingsInheritFontSize","teachingsFontSize","teachingsInheritFontColor","teachingsFontColor","textAlign","commonInlineStyleBodyTeachingsSeparator","teachingsSeparatorActive","teachingsSeparatorWidth","teachingsSeparatorHeight","teachingsSeparatorColor","maxWidth","commonGroupsInlineStyleLinkMore","linkColor","linkHoverColor","commonInlineStyleHeaderHeadline","headerDesign","fontWeight","hasCloseIcon","paddingRight","scaleMobile","enabled","scalePercent","scalePercentVertical","useWidthOfThisContainerId","replaceWith","additionalVerticalScaling","getSsrPoweredByLink","originalPoweredLink","rcbPoweredByCacheOuterHTML","toLowerCase","outerHTML","matchingSelector","proto","Element","nativeFunction","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","matchingElements","querySelectorAll","matchIdx","applyQueryString","query","merge","search","pool","recreateFetchPool","nonceDeprecationPool","nonce","restRecreateNonceEndpoint","resultPromise","reject","recreateFetch","fetch","ok","newNonce","text","returnNonce","parseResult","method","cloneForFallback","clone","json","lastError","line","startsWith","commonRequest","location","request","routeRequest","params","settings","cookieValueAsParam","multipart","sendRestNonce","apiUrl","URL","restRoot","permalinkPath","rest_route","pathname","foundParams","path","match","getParams","checkParam","_httpCookieInvalidate","stringify","protocol","usePath","namespace","restNamespace","restNonce","_wpnonce","s","_method","restQuery","commonUrlBuilder","allowBody","apiUrlBuilt","hasRestNonce","init","headers","Accept","responseJSON","replay","code","status","detectCorruptRestApiFailed","resultAny","RouteHttpVerb","untrailingslashit","endsWith","trailingslashit","getWebpackPublicPath","g","toUpperCase","publicUrl","chunkFolder","unblock","found","isPseudoRef","loop1","rules","rule","regexp","setAttribute","remove","preDecisionGatewaySupportsCookies","supportsCookiesName","isCrawler","userAgent","navigator","preDecisionGatewayDynamicRequest","timeout","active","revisionHash","predecision","promise","Error","preDecisionGatewayIsDoNotTrack","w","doNotTrack","msDoNotTrack","external","msTrackingProtectionEnabled","isDoNotTrack","preDecisionGatewayUserConsent","locationRestConsentDynamicPredecisionGet","isHiddenDueLegal","imprintHide","privacyPolicyHide","pageId","useBannerAnimation","isMobile","innerWidth","isMobileFirefox","term","animationIn","animationInOnlyMobile","animationOut","animationOutOnlyMobile","useAnimationIn","useAnimationOut","cancelEvent","preventDefault","stopPropagation","HREF_MATCHER","useResettableAnimation","animation","j","setJ","stateAnimation","setStateAnimation","stateAnimationReset","setStateAnimationReset","stateDuration","setStateDuration","stateDurationReset","setStateDurationReset","hexToRgb","hex","exec","parseInt","b","calculateRgba","alpha","getAnimationRelatedState","isVisible","animationInDuration","animationOutDuration","animationInDelay","animationOutDelay","AnimatedCss","animateOnMount","setAnimationRelatedState","classes","backwardStyle","transition","animationDelay","animationDuration","pointerEvents","useRenderedHeightsAsCssVars","cssId","cssElement","previousHeight","recalculate","currentHeight","getBoundingClientRect","Math","floor","animateContainer","ResizeObserver","ro","observe","disconnect","removeEventListener","useBannerButtonCallbacks","onSave","updateGroupChecked","updateCookieChecked","updateIndividualPrivacyOpen","activeAction","buttonClickedAll","buttonClickedEssentials","buttonClickedCloseIcon","buttonClickedCustom","acceptAll","forEach","acceptEssentials","isCloseIcon","cookieId","acceptIndividual","openIndividualPrivacy","closeIcon","Portal","tag","renderInContainer","renderIn","el","classList","add","CloseIcon","tooltipText","framed","tooltipAlways","thickness","idCloseIconNotPortaled","idCloseIconPortaled","idCloseIconPlaceholder","rect","y","x","BannerCloseIcon","closeWithoutSaving","buttonClicked","container","clientWidth","BannerHeader","_","logo","logoRetina","showCloseIcon","headline","headerTitlePrivacyPolicyHistory","useRetina","devicePixelRatio","useLogo","useHeadline","dialogBorderRadius","borderWidth","borderColor","restDesign","inheritBg","bg","useType","useBorderWidth","p","zIndex","top","borderTop","borderRight","bannerHeaderInlineStyleContainer","bannerMaxWidth","inheritTextAlign","logoPosition","restHeaderDesign","individualLayout","useTextAlign","inheritBannerMaxWidth","margin","justifyContent","alignItems","flexDirection","bannerHeaderInlineStyle","alt","logoMaxHeight","logoMargin","logoFitDim","logoRetinaFitDim","isRetina","useFitDim","m","bannerHeaderInlineStyleLogo","BannerGroupSectionTitle","headlineFontColor","headlineFontWeight","bannerGroupsInlineStyleTitle","descriptionFontColor","bannerGroupsInlineStyleDescription","CommonLinkMore","onToggle","showMore","hideMore","isOpen","setIsOpen","newOpen","BannerCookie","_consent$groups","handleCheckbox","BannerGroup","_consent$groups$id","previewCheckboxActiveState","sort","groupBg","groupBorderRadius","groupPadding","groupInheritBg","useGroupBorderWidth","bannerGroupsInlineStyleGroup","BannerGroupList","groupSpacing","useGroups","clear","bannerGroupsInlineStyle","index","BannerDottedGroup","groupsFirstView","dottedGroupsInheritFontSize","dottedGroupsFontSize","whiteSpace","bannerInlineStyleBodyDottedGroupItem","dottedGroupsBulletColor","bannerInlineStyleBodyDottedGroupBullet","BannerDottedGroupList","showGroups","lineBreak","bannerInlineStyleBodyDottedGroups","BannerHistorySelect","selectedId","setSelectedId","history","selectHistoryEntry","historyLabel","historySelectNone","selectedHistoryItem","_history$filter","optionStyle","bannerInlineStyleHistorySelectOption","descriptionInheritFontSize","borderBottom","bannerInlineStyleHistorySelect","onChange","isUnblock","isForwarded","created","Date","toLocaleString","lang","bannerButtonsInlineStyleCommon","order","hoverBg","hoverBorderColor","isTwoButtonRowLayout","fullWidth","marginLeft","overflow","outline","flex","bannerButtonsInlineStyleAcceptEssentials","isTcf","acceptEssentialsFontSize","acceptEssentialsBg","acceptEssentialsTextAlign","acceptEssentialsBorderColor","acceptEssentialsPadding","acceptEssentialsBorderWidth","acceptEssentialsFontColor","acceptEssentialsFontWeight","acceptEssentialsHoverBg","acceptEssentialsHoverFontColor","acceptEssentialsHoverBorderColor","acceptAllFontWeight","acceptAllFontSize","acceptAllPadding","bannerButtonsInlineStyleAcceptIndividual","acceptIndividualFontSize","acceptIndividualBg","acceptIndividualTextAlign","acceptIndividualBorderColor","acceptIndividualPadding","acceptIndividualBorderWidth","acceptIndividualFontColor","acceptIndividualFontWeight","acceptIndividualHoverBg","acceptIndividualHoverFontColor","acceptIndividualHoverBorderColor","bannerButtonsInlineStyleSave","saveButton","bannerButtonsInlineStyleAcceptAll","acceptAllBg","acceptAllTextAlign","acceptAllBorderColor","acceptAllBorderWidth","acceptAllFontColor","acceptAllHoverBg","acceptAllHoverFontColor","acceptAllHoverBorderColor","BannerButton","inlineStyle","busyOnClick","isBusy","setIsBusy","handleOnClick","acceptAllOneRowLayout","acceptEssentialsUseAcceptAll","useAcceptEssentials","interactionAttr","useStyleFn","BannerButtonList","buttonOrder","buttonOrderString","acceptAllText","acceptEssentialsText","acceptIndividualText","saveButtonType","useAcceptAll","saveButtonUseAcceptAll","save","didGroupFirstChange","productionNotice","buttonOrderAll","essential","buttonOrderEssential","individual","buttonOrderIndividual","buttonOrderSave","buttonToOrder","previous","orderToButton","handleAll","handleEssentials","handleIndividual","BannerBody","leftSideContainerRef","rightSideContainerRef","_document$getElementB","leftSideId","rightSideId","contentId","stackOrGroups","leftSide","usePadding","float","paddingTop","paddingBottom","bannerInlineStylesLeftSide","descriptionTextAlign","bannerInlineStyleBodyDescription","teaching","rightSide","dialogMaxWidth","inheritDialogMaxWidth","flexWrap","bannerInlineStylesRightSide","bannerInlineStyleBodyContainer","bannerInlineStyleBody","BannerFooter","isConsentRecord","handleClose","links","renderLinks","useCommonFooterLink","bottom","bannerFooterInlineStyleContainer","bannerFooterInlineStyle","BannerContent","current","currentRef","showHeader","hideHeader","showScrollBoxShadow","setShowScrollBoxShadow","updateShowScrollBoxShadow","clientHeight","scrollHeight","scrollTop","offsetHeight","hasScrollbar","scrolledToBottom","ceil","platform","headerRef","footerRef","innerHeight","mobileMaxHeight","maxHeight","useMobileMaxHeight","closeIconDistance","bannerContentInlineStyle","useDesignBorderWidth","bannerHeaderInlineStyleSeparator","bannerFooterInlineStyleSeparator","BannerAnimatedContent","animationVisible","stateAnimationIn","stateAnimationInDuration","stateAnimationOut","stateAnimationOutDuration","dialogPosition","dialogMargin","bannerPosition","boxShadowEnabled","boxShadowOffsetX","boxShadowOffsetY","boxShadowBlurRadius","boxShadowSpreadRadius","boxShadowColor","boxShadowColorAlpha","alignment","mobileAlignment","alignSelf","boxShadow","bannerContentInlineStyleInner","Banner","overlay","overlayBlur","skipOverlay","gotHiddenDueLegal","hiddenDueLegal","show","dataset","rcbPreviousOverflow","useRestrictScrollWhenVisible","setInvalidate","updateSize","fetchHistory","originalConsent","setOriginalConsent","consentGroups","useBannerHistory","openBanner","openHistory","revokeConsent","handleType","successMessage","eventListenerDocumentClick","parent","getAttribute","eventListenerHashChange","hash","substring","useBannerActionLinks","bannerOverlayInlineStyleAlignment","overlayBg","overlayBgAlpha","left","right","bannerOverlayInlineStyle","locationRestConsentGet","WebsiteBanner","customizeValuesBanner","tcfMetadata","userConsentCookieName","bannerI18n","isCurrentlyInTranslationEditorPreview","getOtherOptionsFromWindow","userDecision","tcfObject","tcfMeta","useTcf","toggleOverlay","useBannerAnimationCallback","useDuration","trim","useBannerToggleOverlay","updateTcfFilterBy","toggleWithActiveAction","setContextValue","refreshSiteAfterSave","args","alert","reload","newFilter","tcfFilterBy","opened","newConsent","groupId","cookieIds","additionalChanges","useBannerStateContextCallbacks","applyConsent","getCookieConsentManager","tcfString","contextValue","markAsDoNotTrack","appliedConsent","getOptionsFromWindow","customizeIdsBanner","others","isAcceptAllForBots","isPreventPreDecision","hasDynamicPreDecisions","isRespectDoNotTrack","resultIfBot","preventPreDecision","classNames","handler","useOptions","gateways","onIsDoNotTrack","onShowCookieBanner","gateway","applyWithOptions","preDecisionGateway","viewPortWidth","viewPortHeight","_wp_http_referer","useBannerPreDecisionGateway","listener","useBannerConsentListener","BannerContext","Provider","waitObject","getObject","delayNextCheck","maxTries","amazonWidgetsSlotNum","locationRestConsentClearDelete","consentSync","typeOrId","allCookies","relevance","td","already","relevantCookie","a","consentGiven","cookieOptIn","foundCookie","consentAll","amznAssoWidgetHtmlId","slotNum","adContainer","et_pb_map_init","jQuery","google","other","tcfCmpApi","ensureBodyElement","Array","allUuids","printConsentUuidsToHTMLElement","cookies","deleteCookiesServer","consentApi","BannerProductionNotice","isPro","isLicensed","isDevLicense","noLicense","devLicense","useText","locationRestConsentPost","applyConsentForwarding","endpoints","data","promises","endpoint","credentials","blockerThumbnail","forward","cookie_revision","decision_in_cookie","getCmpVersion","version","rcbConsentManager","cmpId","cmpVersion","tcfCookieName","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","d","definition","o","defineProperty","enumerable","get","globalThis","Function","obj","prop","Symbol","toStringTag","scriptUrl","importScripts","currentScript","scripts","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}
1
+ {"version":3,"file":"banner.lite.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///../../dev-packages/wp-webpack/src/emptyModule.js","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/getManagerDependingVariables.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getServiceSelection.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/apply.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optIn.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optInOutManager.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/optOut.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/deleteCookiesLocally.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/apply/manager.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getDefaultDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/getUserDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/explode.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/bannerPredecisionShow.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optIn.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optInAll.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optOut.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/events/optOutAll.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/ready.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/regExpPatternFromWildcardName.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/pregQuote.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/supportsCookies.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/applyDynamicsToHtml.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/htmlAttributes.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/putHtmlCodeToDom.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/events/optInContentBlocker.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/dispatchResizeEvent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/htmlDecode.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/isUrl.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/parents.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/asciiSpinner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/plainAntdIconAsSvg.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/checkbox.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/checkbox.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookieProperty.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/cookieProperty.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookiePropertyList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/tooltip.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/contexts/banner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/contexts/blocker.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/footer/link.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/footer/link.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/footer/poweredByLink.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/jsxJoin.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/common/useCommonFooterLink.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/common/useCommonTeachings.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useBannerOrBlocker.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useLegalLinks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/usePlainCss.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/body/teaching.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/body/teachingSeparator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/groups/linkMore.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/common/header/headline.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/scale.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/others/getSsrPoweredByLink.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/matchingSelector.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/commonUrlBuilder.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/nonceDeprecationPool.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/parseResult.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/commonRequest.tsx","webpack:///../../wordpress-packages/utils/lib/factory/ajax/routeHttpVerbEnum.tsx","webpack:///../../wordpress-packages/utils/lib/helpers.tsx","webpack:///./src/public/ts/api/unblock.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/supportsCookies.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/isCrawler.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/dynamicRequest.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/promiseTimeout.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isDoNotTrack.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/isDoNotTrack.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/userConsent.tsx","webpack:///./src/public/ts/wp-api/consentDynamicPredecision.get.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/others/isHiddenDueLegal.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerAnimation.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/index.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerStateContextCallbacks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerActionLinks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useResettableAnimation.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/hexToRgb.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/calculateRgba.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/animateCss.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useRenderedHeightsAsCssVars.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerButtonCallbacks.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/portal.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/closeIcon.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/header/closeIcon.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/header/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/logo.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/sectionTitle.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/title.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/description.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/common/linkMore.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/cookie.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/group.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/group.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/list.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/groups/groups.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/dottedGroup.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroupItem.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroupBullet.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/groups/dottedGroupList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/dottedGroups.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/historySelect.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/historySelectOption.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/historySelect.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/common.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptEssentials.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptIndividual.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/save.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/buttons/acceptAll.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/button.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/isIE.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/buttonList.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/leftSide.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/description.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/rightSide.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/body/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/footer/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/container.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/content.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/content/content.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/header/separator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/footer/separator.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/body/animatedContent.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/content/inner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/banner/banner.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useRestrictScrollWhenVisible.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerHistory.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/overlay/alignment.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/banner/overlay/overlay.tsx","webpack:///./src/public/ts/wp-api/consent.get.tsx","webpack:///./src/public/ts/components/websiteBanner.tsx","webpack:///./src/public/ts/hooks/useTcf.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerToggleOverlay.tsx","webpack:///./src/public/ts/hooks/useBannerPreDecisionGateway.tsx","webpack:///./src/public/ts/utils/isCustomize.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isCrawler.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/isPreventPreDecision.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/hasPageClass.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/predecision/gateway.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/banner/useBannerConsentListener.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/utils/waitObject.tsx","webpack:///./src/public/ts/others/comp/listenPresetOptIn.tsx","webpack:///./src/public/ts/wp-api/consentClear.delete.tsx","webpack:///./src/public/ts/api/consentSync.tsx","webpack:///./src/public/ts/api/consent.tsx","webpack:///./src/public/ts/api/consentAll.tsx","webpack:///./src/public/ts/banner.tsx","webpack:///./src/public/ts/tcf/cmpApi.tsx","webpack:///./src/public/ts/utils/ensureBodyElement.tsx","webpack:///../../frontend-packages/cookie-consent-web-client/src/decision/printConsentUuidsToHTMLElement.tsx","webpack:///./src/public/ts/others/deleteCookiesServer.tsx","webpack:///./src/public/ts/components/bannerProductionNotice.tsx","webpack:///./src/public/ts/wp-api/consent.post.tsx","webpack:///./src/public/ts/others/applyConsentForwarding.tsx","webpack:///./src/public/ts/others/applyConsent.tsx","webpack:///./src/public/ts/utils/getCmpVersion.tsx","webpack:///./src/public/ts/others/getCookieConsentManager.tsx","webpack:///./src/public/ts/utils/getOptionsFromWindow.tsx","webpack:///./src/public/ts/utils/getOtherOptionsFromWindow.tsx","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","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};","module.exports = {};\n","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 { getUserDecision } from \".\";\nimport { getManagerDependingVariables } from \"../apply\";\n\n/**\n * Read the selected groups + services depending on the passed type.\n */\nfunction getServiceSelection({\n decisionCookieName,\n tagManager,\n groups,\n essentialGroupSlug,\n type\n}) {\n let selectedGroups;\n const isManagerActive = tagManager && tagManager !== \"none\";\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug);\n const consentEssentials = {\n [essentialGroupObj.id]: essentialGroupObj.items.map(({\n id\n }) => id)\n }; // Read current consent\n\n if (type === \"consent\") {\n const decision = getUserDecision(decisionCookieName);\n\n if (decision !== false) {\n selectedGroups = decision.consent;\n } else {\n console.warn(\"Something went wrong while reading the cookie, fallback to essentials only...\");\n selectedGroups = consentEssentials;\n }\n }\n\n if (type === \"essentials\") {\n selectedGroups = consentEssentials;\n }\n\n return {\n isManagerActive,\n selectedGroups,\n iterateServices: async function (callback) {\n for (const group of groups) {\n for (const service of group.items) {\n var _selectedGroups$group;\n\n const isOptIn = type === \"all\" || ((_selectedGroups$group = selectedGroups[group.id]) === null || _selectedGroups$group === void 0 ? void 0 : _selectedGroups$group.indexOf(service.id)) > -1;\n const useTagManager = getManagerDependingVariables(tagManager, service.presetId);\n await callback(group, service, isOptIn, useTagManager);\n }\n }\n }\n };\n}\n\nexport { getServiceSelection };","import { applyOptIn, applyOptInOutManager, applyOptOut } from \".\";\nimport { OPT_IN_ALL_EVENT, OPT_OUT_ALL_EVENT } from \"../events\";\nimport { ready } from \"../utils\";\n/**\n * Apply services on frontend. Depending on some other mechanism you can differ\n * between the following \"decision\" types:\n *\n * - `all`: All services are applied (e. g. bots)\n * - `consent`: All services from the current consent (read from cookie)\n *\n * The services are sent in the following way:\n *\n * 1. Apply opt-in scripts (sequentially)\n * 2. If GTM / MTM is active, wait for the data layer\n * a) Push all opt-in events (parallel)\n * b) Wait x seconds to avoid side effects\n * c) Push all opt-out events (parallel)\n * 3. Apply opt-in scripts (sequentially)\n *\n * @param type\n * @see https://www.simoahava.com/analytics/notify-page-google-tag-manager-loaded/\n * @see https://support.google.com/tagmanager/answer/7679219\n * @see https://developer.matomo.org/guides/tagmanager/datalayer\n */\n\nasync function apply(options) {\n // Wait all events are initialized\n await ready(); // Do opt-in\n\n const {\n dataLayerPromise,\n isManagerOptOut,\n services,\n ready: applyOptInReady\n } = await applyOptIn(options); // Wait for manager's dataLayer loaded (can also be none) and do manager's events\n\n const {\n ready: applyOptInOutManagerReady\n } = await applyOptInOutManager(options, await dataLayerPromise, isManagerOptOut);\n const optInAllReady = Promise.all([applyOptInReady, applyOptInOutManagerReady]);\n document.dispatchEvent(new CustomEvent(OPT_IN_ALL_EVENT, {\n detail: {\n services,\n ready: optInAllReady\n }\n })); // Do opt-out\n\n const {\n deleteHttpCookies,\n services: allOptOutServices,\n ready: optOutReady\n } = await applyOptOut(options, isManagerOptOut);\n document.dispatchEvent(new CustomEvent(OPT_OUT_ALL_EVENT, {\n detail: {\n services: allOptOutServices,\n deleteHttpCookies,\n ready: Promise.all([optInAllReady, optOutReady])\n }\n }));\n}\n\nexport { apply };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\nimport { OPT_IN_EVENT } from \"../events\";\n\n/**\n * Opt-in to a set of services.\n */\nasync function applyOptIn(options) {\n const allOptInServices = [];\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options);\n const {\n skipOptIn\n } = options; // Handle managers like GTM and MTM\n\n let isManagerOptOut = false;\n let dataLayerPromise = Promise.resolve(undefined);\n const waitPromises = []; // Handle opt-ins sequentially\n\n await iterateServices(async (group, service, isOptIn, {\n getDataLayer,\n serviceIsManager\n }) => {\n const {\n codeDynamics,\n codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven\n } = service;\n const isManager = isManagerActive && serviceIsManager;\n\n if (isOptIn) {\n // Check if the script should explicitly only be loaded if no consent is given to the manager\n const isOnlyWhenNoConsentToManager = isManagerActive && executeCodeOptInWhenNoTagManagerConsentIsGiven;\n const isSkipOptIn = typeof skipOptIn === \"function\" ? skipOptIn(service) : false;\n\n if (!isOnlyWhenNoConsentToManager && !isSkipOptIn) {\n waitPromises.push(putHtmlCodeToDom(codeOptIn, codeDynamics));\n } // If this is a manager, wait for the object to be loaded\n\n /* Silence is golden... Until you have PRO Version! */\n\n\n const summary = {\n group,\n service\n };\n document.dispatchEvent(new CustomEvent(OPT_IN_EVENT, {\n detail: summary\n }));\n allOptInServices.push(summary);\n } else if (isManager) {\n /* Silence is golden... Until you have PRO Version! */\n }\n });\n return {\n isManagerOptOut,\n dataLayerPromise,\n services: allOptInServices,\n ready: Promise.all(waitPromises)\n };\n}\n\nexport { applyOptIn };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\n/**\n * Opt-in and opt-out to a set of services for a given data manager like GTM / MTM.\n */\n\nasync function applyOptInOutManager(options, dataLayer, isManagerOptOut) {\n const waitPromises = [];\n /* onlypro:start */\n\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options); // When there is a manager, let's push all opt-in and opt-out events (parallel)\n\n if (dataLayer) {\n // Opt-in events\n iterateServices((group, service, isOptIn, {\n serviceIsManager\n }) => {\n const event = service.tagManagerOptInEventName;\n\n if (isOptIn && event && !serviceIsManager) {\n dataLayer.push({\n realCookieBannerOptInEvents: {\n [event]: true\n },\n event\n });\n }\n }); // Wait x seconds and apply opt-out events (should we add this to `waitPromises`?! I do not think so)\n\n setTimeout(() => iterateServices((group, service, isOptIn, {\n serviceIsManager\n }) => {\n const event = service.tagManagerOptOutEventName;\n\n if (!isOptIn && event && !serviceIsManager) {\n dataLayer.push({\n realCookieBannerOptOutEvents: {\n [event]: true\n },\n event\n });\n }\n }), 1000);\n } else if (isManagerActive && isManagerOptOut) {\n // The manager got opt out, let's execute scripts that are explicitly only for this case (sequentially)\n await iterateServices(async (group, {\n codeDynamics,\n codeOptIn,\n executeCodeOptInWhenNoTagManagerConsentIsGiven\n }, isOptIn) => {\n if (isOptIn && executeCodeOptInWhenNoTagManagerConsentIsGiven) {\n waitPromises.push(putHtmlCodeToDom(codeOptIn, codeDynamics));\n }\n });\n }\n /* onlypro:false */\n\n\n return {\n ready: Promise.all(waitPromises)\n };\n}\n\nexport { applyOptInOutManager };","import { putHtmlCodeToDom } from \"@devowl-wp/headless-content-unblocker\";\nimport { getServiceSelection } from \"../decision\";\nimport { OPT_OUT_EVENT } from \"../events\";\nimport { deleteCookiesLocally } from \".\";\n/**\n * Opt-in to a set of services for a given data manager like GTM / MTM.\n */\n\nasync function applyOptOut(options, isManagerOptOut) {\n const allOptOutServices = [];\n const {\n isManagerActive,\n iterateServices\n } = getServiceSelection(options);\n const waitPromises = []; // Handle opt-outs sequentially\n\n const deleteHttpCookies = [];\n await iterateServices(async (group, service, isOptIn) => {\n const {\n id,\n codeDynamics,\n codeOptOut,\n deleteTechnicalDefinitionsAfterOptOut,\n isEmbeddingOnlyExternalResources,\n technicalDefinitions,\n executeCodeOptOutWhenNoTagManagerConsentIsGiven\n } = service;\n\n if (!isOptIn) {\n // Check if the script should explicitly only be loaded if no consent is given to the manager\n const isOnlyWhenNoConsentToManager = isManagerActive && executeCodeOptOutWhenNoTagManagerConsentIsGiven;\n\n if (isOnlyWhenNoConsentToManager && isManagerOptOut || !isOnlyWhenNoConsentToManager) {\n waitPromises.push(putHtmlCodeToDom(codeOptOut, codeDynamics));\n }\n\n if (deleteTechnicalDefinitionsAfterOptOut && !isEmbeddingOnlyExternalResources) {\n deleteCookiesLocally(technicalDefinitions, codeDynamics); // Mark deletable server-side services\n\n if (technicalDefinitions.some(({\n type\n }) => type === \"http\")) {\n deleteHttpCookies.push(id);\n }\n }\n\n const summary = {\n group,\n service\n };\n document.dispatchEvent(new CustomEvent(OPT_OUT_EVENT, {\n detail: summary\n }));\n allOptOutServices.push(summary);\n }\n });\n return {\n services: allOptOutServices,\n ready: Promise.all(waitPromises),\n deleteHttpCookies\n };\n}\n\nexport { applyOptOut };","import Cookie from \"js-cookie\";\nimport { applyDynamicsToHtml } from \"@devowl-wp/headless-content-unblocker\";\nimport { regExpPatternFromWildcardName } from \"../utils\";\n/**\n * Delete cookies on client side (currently only `localStorage` and `sessionStorage`).\n */\n\nfunction deleteCookiesLocally(technicalDefinitions, dynamics) {\n for (const {\n type,\n name\n } of technicalDefinitions) {\n // Create valid Regxp pattern\n const pattern = new RegExp(regExpPatternFromWildcardName(applyDynamicsToHtml(name, dynamics)), \"g\");\n\n switch (type) {\n case \"http\":\n {\n for (const key of Object.keys(Cookie.get())) {\n if (pattern.test(key)) {\n Cookie.remove(key);\n }\n }\n\n break;\n }\n\n case \"local\":\n case \"session\":\n {\n try {\n const useStorage = type === \"local\" ? window.localStorage : window.sessionStorage;\n\n if (useStorage) {\n for (const itemName of Object.keys(useStorage)) {\n if (pattern.test(itemName)) {\n try {\n // Fallback to `null` because `removeItem` can have issues on some browsers\n useStorage.setItem(itemName, null);\n } catch (e) {// Silence is golden. A `QuotaExceededError` can be thrown but we ignore it, because we remove the item\n } // Try as long (but max 100 times) until deleted\n\n\n let tries = 0;\n\n while (useStorage.getItem(itemName) && tries < 100) {\n tries++;\n useStorage.removeItem(itemName);\n }\n }\n }\n }\n } catch (e) {\n // Browser does not support localStorage, let's do nothing...\n continue;\n }\n\n break;\n }\n\n default:\n break;\n }\n }\n}\n\nexport { deleteCookiesLocally };","import { apply } from \".\";\nimport { getDefaultDecision, getUserDecision } from \"..\";\n\n/**\n * Main class to manage cookie consents within your application.\n */\nclass CookieConsentManager {\n constructor(options) {\n this.options = void 0;\n this.options = options;\n }\n\n applyCookies(options) {\n return apply({ ...options,\n ...this.options\n });\n }\n\n getUserDecision() {\n return getUserDecision(this.getOption(\"decisionCookieName\"));\n }\n\n getDefaultDecision(respectLegitimateInterests = true) {\n return getDefaultDecision(this.options, respectLegitimateInterests);\n }\n\n getOption(name) {\n return this.options[name];\n }\n\n getOptions() {\n return this.options;\n }\n\n}\n\nexport { CookieConsentManager };","/**\n * Get the default decision and respect essential group and legitimate interests.\n */\nfunction getDefaultDecision({\n groups,\n essentialGroupSlug\n}, respectLegitimateInterests = true) {\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug); // We need always use the current essential group\n\n const result = {\n [essentialGroupObj.id]: essentialGroupObj.items.map(({\n id\n }) => id)\n };\n\n if (respectLegitimateInterests) {\n for (const group of groups) {\n if (group === essentialGroupObj) {\n continue;\n }\n\n const ids = group.items.filter(({\n legalBasis\n }) => legalBasis === \"legitimate-interest\").map(({\n id\n }) => id);\n\n if (ids.length) {\n result[group.id] = ids;\n }\n }\n }\n\n return result;\n}\n\nexport { getDefaultDecision };","import { explode, supportsCookies } from \"../utils\";\nimport Cookie from \"js-cookie\";\n\n/**\n * Get current user decision from the cookie value in a minimal form.\n */\nfunction getUserDecision(cookieName) {\n const cookieValue = Cookie.get(cookieName);\n\n if (!cookieValue) {\n if (!supportsCookies()) {\n // Use our `window` object instead of cookie value\n return window.rcbDisabledCookieComp || false;\n }\n\n return false;\n } // Validate cookie length\n\n\n const split = explode(cookieValue, \":\", 3);\n\n if (split.length !== 3) {\n return false;\n }\n\n const [uuidString, revision] = split;\n const uuids = uuidString.split(\",\");\n const uuid = uuids.shift();\n const consent = JSON.parse(split[2]);\n return {\n uuid,\n previousUuids: uuids,\n revision,\n consent\n };\n}\n\nexport { getUserDecision };","/**\n * A PHP's port of `explode`. `.split` is not similar because it does not join\n * remaining string.\n */\nfunction explode(string, separator, n) {\n const split = string.split(separator);\n if (split.length <= n) return split;\n const out = split.slice(0, n - 1);\n out.push(split.slice(n - 1).join(separator));\n return out;\n}\n\nexport { explode };","/**\n * This event is fired when the user has no consent or invalid consent\n * and the banner gets visible.\n */\nexport const BANNER_PRE_DECISION_SHOW_EVENT = \"RCB/Banner/Show\";","export const OPT_IN_EVENT = \"RCB/OptIn\";","export const OPT_IN_ALL_EVENT = \"RCB/OptIn/All\";","export const OPT_OUT_EVENT = \"RCB/OptOut\";","export const OPT_OUT_ALL_EVENT = \"RCB/OptOut/All\";","const helperCreateResolvablePromise = () => {\n let resolve;\n const promise = new Promise(r => resolve = r);\n return [false, promise, resolve];\n};\n\nconst memorizedReadyStatePromises = {\n loading: helperCreateResolvablePromise(),\n complete: helperCreateResolvablePromise(),\n interactive: helperCreateResolvablePromise()\n};\n/**\n * Instead of checking within our events itself at the time of the event, we memorize the state of resolved and reached\n * ready-states. Why? Some WordPress plugins are modifying the JavaScript execution waterfall (e.g. Delay JS in WP Rocket).\n *\n * @see https://github.com/wp-media/wp-rocket/search?q=readystatechange&type=issues\n * @see https://app.clickup.com/t/2v12m07\n */\n\nconst memorizeReadyState = () => {\n const {\n readyState\n } = document;\n const [reached,, resolve] = memorizedReadyStatePromises[readyState];\n\n if (!reached) {\n memorizedReadyStatePromises[readyState][0] = true;\n resolve();\n }\n};\n/**\n * Listen to multiple events. Why? See same reason as in `memorizedReadyStatePromises()`.\n */\n\n\nconst LISTEN_TO_EVENTS = [\"readystatechange\", \"rocket-readystatechange\", \"DOMContentLoaded\", \"rocket-DOMContentLoaded\", \"rocket-allScriptsLoaded\"];\n/**\n * Wait DOM is ready depending on a state.\n *\n * - `interactive`: Defer scripts are executing, but DOM is ready\n * - `complete`: All scripts including deferred ones are executed and DOM is ready\n *\n * @see https://stackoverflow.com/a/65430734/5506547\n * @see https://stackoverflow.com/a/51980980/5506547\n */\n\nconst ready = (fn, state = \"complete\") => {\n return new Promise(resolve => {\n let executed = false;\n\n const cb = () => {\n memorizeReadyState();\n\n if ( // Only execute once\n executed || // Ready-state not yet reached\n !memorizedReadyStatePromises[state][0]) {\n return;\n }\n\n executed = true;\n fn === null || fn === void 0 ? void 0 : fn(); // We need to make this promise non-blocking. E.g. on Safari this\n // could lead to issues as the `readystatechange` event listener\n // can be nested (once `interactive`, then waiting `complete`)\n // Imagine, you are using an `await ready` within a `ready(fn)` statement.\n\n setTimeout(resolve, 0);\n };\n\n cb();\n\n for (const event of LISTEN_TO_EVENTS) {\n document.addEventListener(event, cb);\n }\n\n memorizedReadyStatePromises[state][1].then(cb);\n });\n};\n\nexport { ready };","import { pregQuote } from \".\";\n/**\n * Create regular expression pattern from a string like `my_test*` and replace asterisks\n * with `(.*)`.\n */\n\nfunction regExpPatternFromWildcardName(name) {\n const tmp = name.replace(/\\*/g, \"PLEACE_REPLACE_ME_AGAIN\");\n return \"^\".concat(pregQuote(tmp).replace(/PLEACE_REPLACE_ME_AGAIN/g, \"(.*)\"), \"$\");\n}\n\nexport { regExpPatternFromWildcardName };","/**\n * Port of `preg_quote`.\n *\n * @see https://github.com/kvz/locutus/blob/3f14dc5d142f5dcbdf36b4271c21a850a4a259da/src/php/pcre/preg_quote.js#L1\n */\nfunction pregQuote(str, delimiter) {\n // discuss at: https://locutus.io/php/preg_quote/\n // original by: booeyOH\n // improved by: Ates Goral (https://magnetiq.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n // example 1: preg_quote(\"$40\")\n // returns 1: '\\\\$40'\n // example 2: preg_quote(\"*RRRING* Hello?\")\n // returns 2: '\\\\*RRRING\\\\* Hello\\\\?'\n // example 3: preg_quote(\"\\\\.+*?[^]$(){}=!<>|:\")\n // returns 3: '\\\\\\\\\\\\.\\\\+\\\\*\\\\?\\\\[\\\\^\\\\]\\\\$\\\\(\\\\)\\\\{\\\\}\\\\=\\\\!\\\\<\\\\>\\\\|\\\\:'\n return str.replace(new RegExp(\"[.\\\\\\\\+*?\\\\[\\\\^\\\\]$(){}=!<>|:\\\\\".concat(delimiter || \"\", \"-]\"), \"g\"), \"\\\\$&\");\n}\n\nexport { pregQuote };","/**\n * Check if the current environment supports cookies.\n *\n * @see https://git.io/JcXiP\n * @returns\n */\nfunction supportsCookies(cookieName = \"test\") {\n try {\n document.cookie = \"\".concat(cookieName, \"=1\");\n const result = document.cookie.indexOf(\"\".concat(cookieName, \"=\")) !== -1;\n document.cookie = \"\".concat(cookieName, \"=1; expires=Thu, 01-Jan-1970 00:00:01 GMT\");\n return result;\n } catch (e) {\n return false;\n }\n}\n\nexport { supportsCookies };","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 };","// Also ported to `view/Blocker.php`\nexport const HTML_ATTRIBUTE_CAPTURE_PREFIX = \"consent-original\";\nexport const HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX = \"consent-click-original\";\nexport const HTML_ATTRIBUTE_CAPTURE_SUFFIX = \"_\";\nexport const HTML_ATTRIBUTE_BY = \"consent-by\"; // TODO: cookie -> required?\n\nexport const HTML_ATTRIBUTE_COOKIE_IDS = \"consent-required\";\nexport const HTML_ATTRIBUTE_VISUAL_PARENT = \"consent-visual-use-parent\";\nexport const HTML_ATTRIBUTE_VISUAL_PAINT_MODE = \"consent-visual-paint-mode\";\nexport const HTML_ATTRIBUTE_INLINE = \"consent-inline\";\nexport const HTML_ATTRIBUTE_INLINE_STYLE = \"consent-inline-style\";\nexport const HTML_ATTRIBUTE_BLOCKER_ID = \"consent-id\";\nexport const HTML_TAG_CONSENT_SCRIPT = \"script\";\nexport const HTML_ATTRIBUTE_BLOCKER_CONNECTED = \"consent-blocker-connected\";\nexport const HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED = \"consent-blocker-connected-pres\";\nexport const HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE = \"consent-transaction-complete\";\nexport const HTML_ATTRIBUTE_TRANSFORM_WRAPPER = \"consent-transform-wrapper\";\nexport const HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN = \"consent-strict-hidden\";\nexport const HTML_ATTRIBUTE_RESET_PARENT = \"consent-cb-reset-parent\";\nexport const HTML_ATTRIBUTE_RESET_PARENT_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER = \"consent-cb-reset-parent-is-ratio\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED = \"consent-got-clicked\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED_VALUE = \"1\";\nexport const HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED = \"2\";\nexport const HTML_ATTRIBUTE_THUMBNAIL = \"consent-thumbnail\";\nexport const HTML_ATTRIBUTE_THUMBNAIL_SUGGESTION = \"consent-thumbnail-suggestion\";","import postscribe from \"postscribe\";\nimport { applyDynamicsToHtml } from \".\";\nimport { htmlDecode } from \"../utils\";\n/**\n * We do not modify `window.onload` directly, you need to use this variable name.\n */\n\nconst WINDOW_ONLOAD_UNBLOCK_REPLACEMENT = \"rcbInitiatorOnload\";\n/**\n * Put HTML code to the current DOM. `script` tags gets automatically\n * executed instead of pushing to DOM.\n *\n * @see https://github.com/krux/postscribe\n * @see https://stackoverflow.com/a/49724894/5506547\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nfunction putHtmlCodeToDom(html, dynamics, referenceNode = document.body) {\n return new Promise(resolve => {\n if (html) {\n postscribe(referenceNode, applyDynamicsToHtml(html, dynamics), {\n done: resolve,\n error: e => {\n // We do ignore all errors as we handle like the usual browser\n // E.g. a script blocked by an ad-blocker should not break the execution\n // for upcoming scripts.\n console.error(e);\n },\n beforeWriteToken: token => {\n const {\n attrs,\n booleanAttrs,\n src,\n href,\n content\n } = token; // Probably skip this token? (do not use `disabled` tag as it should still be written to DOM)\n\n if (booleanAttrs !== null && booleanAttrs !== void 0 && booleanAttrs[\"skip-write\"]) {\n return false;\n } // Allow `window.onload` event\n\n\n if (content) {\n token.content = content.replace(/window\\.onload\\s+=/g, \"window.\".concat(WINDOW_ONLOAD_UNBLOCK_REPLACEMENT, \" =\"));\n } // Automatically unescape html entities in all attributes (https://github.com/krux/postscribe/issues/346#issuecomment-310227387)\n\n\n for (const attr in attrs) {\n attrs[attr] = htmlDecode(attrs[attr]); // Allow to skip complete HTML tag when it already got loaded by unique ID (e.g. Google Tag Manager gtag.js)\n\n if (attr === \"unique-write-name\" && document.querySelector(\"[unique-write-name=\\\"\".concat(attrs[attr], \"\\\"]\"))) {\n return false;\n }\n } // Scripts\n\n\n if (src) {\n token.src = htmlDecode(src);\n } // Styles\n\n\n if (href) {\n token.href = htmlDecode(href);\n }\n\n return token;\n }\n });\n } else {\n resolve();\n }\n });\n}\n\nexport { WINDOW_ONLOAD_UNBLOCK_REPLACEMENT, putHtmlCodeToDom };","/**\n * A content - which was blocked - got unblocked.\n */\nexport const OPT_IN_CONTENT_BLOCKER = \"RCB/OptIn/ContentBlocker\";","/**\n * In some cases, the complete layout can be changed and calculations are based on containers width.\n * Imagine: Google Fonts get added and the navigation bar has a button with a calculated width (e.g. BeTheme).\n * Another example: The instagram feed is not loaded / adjusted (masonry), so we need to trigger a resize\n * event manually\n *\n * @param delay\n */\nfunction dispatchResizeEvent(delay = 0) {\n setTimeout(() => {\n try {\n window.dispatchEvent(new Event(\"resize\"));\n } catch (e) {// You are running in IE, it's a UI bug, we can skip...\n }\n }, delay);\n}\n\nexport { dispatchResizeEvent };","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 };","/**\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 { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\n/**\n * Port of `jQuery.parents()`.\n */\n\nfunction parents(element, selector) {\n const elements = [];\n let elem = element.parentElement;\n\n while (elem !== null) {\n if (elem.nodeType === Node.ELEMENT_NODE && matchingSelector(elem, selector)) {\n elements.push(elem);\n }\n\n elem = elem.parentElement;\n }\n\n return elements;\n}\n\nexport { parents };","import { useState, useEffect } from \"react\";\n\nconst AsciiSpinner = ({\n ms = 100,\n chars = [\"&#9719;\", \"&#9718;\", \"&#9717;\", \"&#9716;\"]\n}) => {\n const [i, setI] = useState(1);\n useEffect(() => {\n const interval = setInterval(() => {\n setI(i + 1);\n }, ms);\n return () => clearInterval(interval);\n }, [i]);\n return h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: chars[i % 4]\n }\n });\n};\n\nexport { AsciiSpinner };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useMemo } from \"react\"; // eslint-disable-next-line import/no-extraneous-dependencies\n\nimport { renderIconDefinitionToSVGElement } from \"@ant-design/icons-svg/es/helpers\";\n/**\n * Inject a plain SVG icon from `@ant-design/icons-svg`. This reduces the bundle size.\n * You can determine yourself to use `@ant-design/icons` or this helper component. For example,\n * this component is preferred for website bundles where website size matters.\n *\n * @see https://app.clickup.com/t/60pz5t\n */\n\nconst PlainAntdIconAsSvg = ({\n icon,\n ...rest\n}) => {\n const svgString = useMemo(() => renderIconDefinitionToSVGElement(icon, {\n extraSVGAttrs: {\n style: \"width:auto;height:100%;\",\n fill: \"currentColor\"\n }\n }), [icon]);\n return h(\"div\", _extends({}, rest, {\n dangerouslySetInnerHTML: {\n __html: svgString\n }\n }));\n};\n\nexport { PlainAntdIconAsSvg };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useLayoutEffect, useState } from \"react\";\nimport { commonInlineStyleGroupsCheckbox } from \"../../inlineStyles\";\nimport { PlainAntdIconAsSvg } from \"../..\";\nimport { CheckOutlined, MinusOutlined } from \"@ant-design/icons-svg\";\nimport { useBannerOrBlocker } from \"../../hooks\";\n\nconst CommonCheckbox = ({\n hideCheckbox,\n isPartial,\n isChecked,\n isDisabled,\n fontSize,\n onClick,\n children,\n after,\n ...rest\n}) => {\n const CheckboxIcon = isPartial ? MinusOutlined : CheckOutlined;\n const bannerOrBlocker = useBannerOrBlocker();\n const [isRendered, setIsRendered] = useState(false);\n useLayoutEffect(() => {\n setIsRendered(true);\n }, []);\n return h(Fragment, null, !hideCheckbox && h(PlainAntdIconAsSvg, _extends({\n icon: CheckboxIcon,\n onClick: onClick\n }, commonInlineStyleGroupsCheckbox(bannerOrBlocker, isRendered, isChecked, isDisabled, fontSize), rest)), children && h(\"span\", {\n style: {\n verticalAlign: \"middle\",\n cursor: \"pointer\"\n }\n }, h(\"span\", {\n onClick: onClick\n }, children), after));\n};\n\nexport { CommonCheckbox };","import { scaleMobile } from \"../..\";\n\n/**\n * Use `visible` together with `useLayoutEffect` to avoid flickering.\n * This is needed because the SVG icons of ant are a bit flickering.\n */\nfunction commonInlineStyleGroupsCheckbox({\n layout: {\n borderRadius\n },\n group: {\n headlineFontSize,\n checkboxBg,\n checkboxBorderWidth,\n checkboxBorderColor,\n checkboxActiveBg,\n checkboxActiveBorderColor,\n checkboxActiveColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, visible, checked, disabled, fontSize) {\n let useFontSize = fontSize || headlineFontSize;\n useFontSize = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, useFontSize) : useFontSize;\n const useCheckboxBorderWidth = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +checkboxBorderWidth) : +checkboxBorderWidth;\n const height = +useFontSize + useCheckboxBorderWidth * 2 + 6;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-checkbox\",\n style: {\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : undefined,\n color: checked ? checkboxActiveColor : checkboxBg,\n display: visible ? \"inline-block\" : \"none\",\n background: checked ? checkboxActiveBg : checkboxBg,\n border: \"\".concat(useCheckboxBorderWidth, \"px solid \").concat(checked ? checkboxActiveBorderColor : checkboxBorderColor),\n padding: 3,\n height,\n width: height,\n marginRight: 10,\n borderRadius: +borderRadius,\n verticalAlign: \"middle\",\n lineHeight: 0,\n boxSizing: \"border-box\"\n }\n };\n}\n\nexport { commonInlineStyleGroupsCheckbox };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { isUrl } from \"@devowl-wp/headless-content-unblocker\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { commonGroupsInlineStyleLinkMore, commonInlineStyleGroupsCookieProperty } from \"../../../inlineStyles\";\n\nconst CookieProperty = ({\n label,\n value,\n children,\n printValueAs\n}) => {\n const banner = useBannerOrBlocker();\n const {\n i18n: {\n yes,\n no\n }\n } = banner;\n const isValueUrl = typeof value === \"string\" && isUrl(value);\n let useValue = isValueUrl ? h(\"a\", {\n href: value,\n style: {\n wordBreak: \"break-all\",\n ...commonGroupsInlineStyleLinkMore(banner, false).style\n },\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, value) : typeof value === \"string\" ? h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: value\n }\n }) : value;\n\n if (printValueAs === \"boolean\") {\n useValue = useValue ? yes : no;\n }\n\n return h(\"div\", _extends({\n key: label\n }, commonInlineStyleGroupsCookieProperty(banner)), label && h(\"strong\", null, label, \":\\xA0\"), useValue, !!children && h(\"div\", null, children));\n};\n\nexport { CookieProperty };","import { scaleMobile } from \"../..\";\n\nfunction commonInlineStyleGroupsCookieProperty({\n group: {\n groupBorderWidth,\n groupBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}) {\n const useGroupBorderWidth = pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, groupBorderWidth) : groupBorderWidth;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-cookie-prop\",\n style: {\n borderLeft: useGroupBorderWidth > 0 ? \"1px solid \".concat(groupBorderColor) : undefined,\n paddingLeft: 15\n }\n };\n}\n\nexport { commonInlineStyleGroupsCookieProperty };","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 h(Fragment, null, !!purpose && h(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), h(CookieProperty, {\n label: i18n.legalBasis,\n value: legalBasis === \"legal-requirement\" ? i18n.legalRequirement : legalBasis === \"legitimate-interest\" || isEssentialGroup ? i18n.legitimateInterest : i18n.consent\n }), h(CookieProperty, {\n label: i18n.provider,\n value: provider\n }), !!providerPrivacyPolicyUrl && h(CookieProperty, {\n label: i18n.providerPrivacyPolicyUrl,\n value: providerPrivacyPolicyUrl\n }), !!ePrivacyUSAEnabled && h(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 }) => h(CookieProperty, {\n key: name,\n label: i18n.technicalCookieDefinition,\n value: h(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, applyDynamicsToHtml(name, codeDynamics))\n }, h(CookieProperty, {\n label: i18n.type,\n value: types[type].name\n }), !!purpose && h(CookieProperty, {\n label: i18n.purpose,\n value: purpose\n }), !!host && h(CookieProperty, {\n label: i18n.host,\n value: h(\"span\", {\n style: {\n fontFamily: \"monospace\"\n }\n }, host)\n }), h(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 _extends from \"@babel/runtime/helpers/extends\";\nimport { useBannerOrBlocker } from \"../../../hooks\";\nimport { commonInlineStyleGroupsCookie } from \"../../..\";\nimport { CommonCheckbox } from \"../..\";\nimport { CookiePropertyList } from \".\";\n\nconst Cookie = ({\n cookie,\n checked,\n disabled,\n onToggleCheck,\n propertyListProps = {}\n}) => {\n const {\n name\n } = cookie;\n const bannerOrBlocker = useBannerOrBlocker();\n const {\n group: {\n descriptionFontSize\n }\n } = bannerOrBlocker;\n return h(\"div\", commonInlineStyleGroupsCookie(bannerOrBlocker), h(\"div\", {\n style: {\n marginBottom: 10\n }\n }, h(CommonCheckbox, {\n isChecked: checked,\n isDisabled: disabled,\n fontSize: descriptionFontSize,\n onClick: onToggleCheck\n }, h(\"strong\", null, name))), h(CookiePropertyList, _extends({\n cookie: cookie\n }, propertyListProps)));\n};\n\nexport { Cookie };","function commonInlineStyleGroupsCookie({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-cookie\",\n style: {\n marginTop: 10\n }\n };\n}\n\nexport { commonInlineStyleGroupsCookie };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { forwardRef } from \"react\";\nimport hintCss from \"hint.css/hint.min.css?inline-raw\";\nimport { usePlainCss } from \"../hooks\";\n/**\n * This is a very basic `hint.css` implementation for a tooltip.\n *\n * @see https://kushagra.dev/lab/hint/\n */\n// eslint-disable-next-line react/display-name\n\nconst Tooltip = /*#__PURE__*/forwardRef(({\n children,\n className,\n title,\n position = \"top\",\n color,\n size = \"large\",\n always,\n rounded,\n noAnimate,\n bounce,\n ...rest\n}, ref) => {\n usePlainCss(hintCss, \"hint-css\", true);\n return h(\"div\", _extends({\n style: {\n position: \"relative\",\n display: \"inline\"\n },\n ref: ref,\n \"aria-label\": title,\n className: \"hint--\".concat(position, \" hint--\").concat(size, \" \").concat(color ? \"hint--\".concat(color) : \"\", \" \").concat(always ? \"hint--always\" : \"\", \" \").concat(rounded ? \"hint--rounded\" : \"\", \" \").concat(noAnimate ? \"hint--no-animate\" : \"\", \" \").concat(bounce ? \"hint--bounce\" : \"\", \" \").concat(className || \"\")\n }, rest), children);\n});\nexport { Tooltip };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass BannerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nBannerContextFactory.context = void 0;\n\nfunction useBanner() {\n return useContext(BannerContextFactory.Context());\n}\n\nexport { BannerContextFactory, useBanner };","import { createContext, useContext } from \"react\";\n\n/**\n * Create a side-effect-free context provider.\n */\nclass BlockerContextFactory {\n static Context() {\n return this.context = this.context || /*#__PURE__*/createContext({});\n }\n\n}\n\nBlockerContextFactory.context = void 0;\n\nfunction useBlocker() {\n return useContext(BlockerContextFactory.Context());\n}\n\nexport { BlockerContextFactory, useBlocker };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useState } from \"react\";\nimport { commonInlineStyleFooterLink, useBannerOrBlocker } from \"../../..\";\n\nconst FooterLink = ({\n children,\n ...anchorRest\n}) => {\n const bannerOrBlocker = useBannerOrBlocker();\n const [isHover, setIsHover] = useState(false);\n return h(\"a\", _extends({\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false)\n }, commonInlineStyleFooterLink(bannerOrBlocker, isHover), anchorRest), children);\n};\n\nexport { FooterLink };","import { scaleMobile } from \"../../scale\";\n\nfunction commonInlineStyleFooterLink({\n footerDesign: {\n fontSize,\n fontColor,\n hoverFontColor,\n fontInheritFamily,\n fontFamily\n },\n design: {\n linkTextDecoration\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}, isHover = false) {\n const style = {\n textDecoration: linkTextDecoration,\n fontSize: pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +fontSize) : +fontSize,\n color: isHover ? hoverFontColor : fontColor,\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n padding: \"0 5px\"\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-link\",\n style\n };\n}\n\nexport { commonInlineStyleFooterLink };","import { FooterLink } from \".\";\nimport { Tooltip } from \"../..\";\n\nconst FooterPoweredByLink = ({\n poweredLink,\n affiliate\n}) => {\n return h(FooterLink, {\n href: affiliate ? affiliate.link : poweredLink.href,\n target: poweredLink.target,\n key: \"powered-by\"\n }, h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: poweredLink.innerHTML\n }\n }), affiliate && h(Tooltip, {\n title: affiliate.description,\n position: \"top-left\"\n }, \" \", affiliate.labelBehind));\n};\n\nexport { FooterPoweredByLink };","import { Fragment } from \"react\";\n/**\n * Join together a set of JSX elements with a separator.\n *\n * @see https://stackoverflow.com/q/33577448/5506547\n */\n\nfunction jsxJoin(components, separator) {\n // Just to be sure, remove falsy values so we can add conditionals to the components array\n const filtered = components.filter(Boolean);\n return filtered.length === 0 ? null : filtered.reduce((acc, curr, i) => acc.length ? [...acc, // Wrap the separator in a fragment to avoid `missing key` issues\n h(Fragment, {\n key: i\n }, separator), curr] : [curr], []);\n}\n\nexport { jsxJoin };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback, Fragment } from \"react\";\nimport { useBannerOrBlocker, useLegalLinks } from \"..\";\nimport { FooterLink, FooterPoweredByLink } from \"../../components\";\nimport { jsxJoin } from \"../../utils\";\n\nfunction useCommonFooterLinks({\n onClose,\n putPoweredByLinkInRow,\n row1\n} = {}) {\n const {\n i18n: {\n close\n },\n footerDesign: {\n poweredByLink,\n linkTarget\n },\n poweredLink,\n affiliate\n } = useBannerOrBlocker();\n const {\n linkPrivacyPolicy,\n linkImprint\n } = useLegalLinks();\n const targetAttributes = linkTarget === \"_blank\" ? {\n target: \"_blank\",\n rel: \"noopener\"\n } : {};\n const rows = [// Row 1\n [onClose && h(FooterLink, {\n href: \"#\",\n onClick: onClose,\n key: \"close\"\n }, h(\"strong\", null, close)), ...(row1 || []), linkPrivacyPolicy && h(FooterLink, _extends({\n href: linkPrivacyPolicy.url\n }, targetAttributes, {\n key: \"privacyPolicy\"\n }), linkPrivacyPolicy.label), linkImprint && h(FooterLink, _extends({\n href: linkImprint.url\n }, targetAttributes, {\n key: \"imprint\"\n }), linkImprint.label)].filter(Boolean), // Row 2\n [] // Nothing yet\n ];\n\n if (!!poweredLink && poweredByLink) {\n rows[putPoweredByLinkInRow || 0].push(h(FooterPoweredByLink, {\n key: \"poweredBy\",\n poweredLink: poweredLink,\n affiliate: affiliate\n }));\n }\n\n const render = useCallback(rows => jsxJoin(rows.map(row => row.length ? h(Fragment, {\n key: row[0].key\n }, jsxJoin(row, h(Fragment, null, \" \\u2022 \"))) : null), h(\"br\", null)), []);\n return {\n rows,\n render\n };\n}\n\nexport { useCommonFooterLinks };","import { useBannerOrBlocker, useLegalLinks } from \"..\";\n\nfunction joinWithAndSeparator(arr, andSeparator) {\n if (arr.length > 1) {\n arr.splice(arr.length - 1, 0, \"{{andSeparator}}\");\n }\n\n return arr.join(\", \").replace(/,\\s+{{andSeparator}},\\s+/g, andSeparator);\n}\n/**\n * @see https://gist.github.com/unruthless/413930\n * @see https://stackoverflow.com/a/23630325/5506547\n */\n\n\nconst supWithLineHeightFix = '<sup style=\"vertical-align:top;line-height:100%;position:initial;\">';\n\nfunction useCommonTeachings({\n disableDataProcessingInUnsafeCountries,\n disableAgeNotice,\n disableListServicesNotice\n} = {}) {\n const {\n blocker,\n groups,\n ePrivacyUSA: isEPrivacyUSA,\n ageNotice: isAgeNotice,\n listServicesNotice: isListServicesNotice,\n texts: {\n description,\n ePrivacyUSA,\n ageNoticeBanner,\n listServicesNotice,\n consentForwardingExternalHosts: consentForwardingExternalHostsText\n },\n tcf,\n consentForwardingExternalHosts,\n individualPrivacyOpen,\n individualTexts: {\n description: individualDescription\n },\n essentialGroup,\n i18n: {\n andSeparator,\n tcf: tcfBannerI18n\n },\n keepVariablesInTexts\n } = useBannerOrBlocker();\n const {\n linkPrivacyPolicy\n } = useLegalLinks(); // Description text (combination of configured text and Consent Forwarding)\n\n let consentForwardingExternalHostsFinalText = \"\";\n\n if (consentForwardingExternalHosts && !keepVariablesInTexts) {\n consentForwardingExternalHostsFinalText = consentForwardingExternalHostsText.replace(/{{websites}}/g, consentForwardingExternalHosts.join(\", \"));\n }\n\n let useDescription = [blocker ? blocker.description : individualPrivacyOpen ? individualDescription : description, consentForwardingExternalHostsFinalText].filter(Boolean).join(\" \");\n\n if (!keepVariablesInTexts) {\n // Place policy link into the text https://regex101.com/r/ayeFVy/1\n useDescription = useDescription.replace(/{{privacyPolicy}}(.*){{\\/privacyPolicy}}/g, linkPrivacyPolicy ? \"<a href=\\\"\".concat(linkPrivacyPolicy.url, \"\\\" style=\\\"text-decoration:underline;color:inherit;\\\" onmouseenter=\\\"this.style.textDecoration='none'\\\" onmouseleave=\\\"this.style.textDecoration='underline'\\\" target=\\\"_blank\\\">$1</a>\") : \"$1\");\n } // Teaching: Data processing in unsafe countries (formerly USA ePrivacy)\n\n\n const servicesProcessingUnsafeCountries = groups.map(({\n items\n }) => items.filter(({\n ePrivacyUSA\n }) => ePrivacyUSA)).flat();\n const tcfVendorsProcessingUnsafeCountries = process.env.IS_TCF && tcf ? Object.values(tcf.gvl.vendors).filter(vendor => {\n var _additionalInformatio;\n\n return ((_additionalInformatio = vendor.additionalInformation) === null || _additionalInformatio === void 0 ? void 0 : _additionalInformatio.internationalTransfers) || tcf.original.vendorConfigurations[vendor.id].ePrivacyUSA === 1;\n }) : [];\n let useDataProcessingInUnsafeCountries = !disableDataProcessingInUnsafeCountries && (servicesProcessingUnsafeCountries.length > 0 || tcfVendorsProcessingUnsafeCountries.length > 0) && isEPrivacyUSA ? ePrivacyUSA : \"\"; // Teaching: Age notice\n\n const useAgeNotice = isAgeNotice && !disableAgeNotice ? ageNoticeBanner : \"\"; // Teaching: List services notice\n\n let useListServicesNotice = \"\";\n\n if (isListServicesNotice && !disableListServicesNotice) {\n const hasBothPlaceholders = listServicesNotice.indexOf(\"{{services}}\") > -1 && listServicesNotice.indexOf(\"{{serviceGroups}}\") > -1;\n const nonEssentialGroups = groups.filter(({\n slug\n }) => slug !== essentialGroup);\n const flattenSeparator = \"~;~\";\n const listServicesNames = joinWithAndSeparator(nonEssentialGroups.map(({\n items\n }, groupIdx) => items.map(({\n name,\n ePrivacyUSA\n }) => \"\".concat(name).concat(supWithLineHeightFix).concat([hasBothPlaceholders ? groupIdx + 1 : \"\", useDataProcessingInUnsafeCountries && ePrivacyUSA ? \"U\" : \"\"].filter(Boolean).join(\",\"), \"</sup>\")).join(flattenSeparator)).join(flattenSeparator).split(flattenSeparator), andSeparator);\n\n if (listServicesNames) {\n const listServiceGroupsNames = joinWithAndSeparator(nonEssentialGroups.map(({\n name\n }, groupIdx) => \"\".concat(name).concat(supWithLineHeightFix).concat(hasBothPlaceholders ? groupIdx + 1 : \"\", \"</sup>\")), andSeparator);\n useListServicesNotice = \"<span>\".concat(listServicesNotice, \"</span>\").concat(tcf && !individualPrivacyOpen ? \" <span>\".concat(tcfBannerI18n.listOfServicesAppendix, \"</span>\") : \"\");\n\n if (!keepVariablesInTexts) {\n // Place service list into the text\n useListServicesNotice = useListServicesNotice.replace(/{{services}}/g, listServicesNames) // Place service group list into the text\n .replace(/{{serviceGroups}}/g, listServiceGroupsNames);\n }\n\n if (useDataProcessingInUnsafeCountries) {\n useDataProcessingInUnsafeCountries += \"\".concat(supWithLineHeightFix, \"U</sup>\");\n }\n }\n }\n\n return {\n description: useDescription,\n teachings: [useDataProcessingInUnsafeCountries, useAgeNotice, useListServicesNotice].filter(Boolean)\n };\n}\n\nexport { useCommonTeachings };","import { useBanner, useBlocker } from \"../contexts\";\n\n/**\n * Use one of the available banner or blocker contexts as union typed.\n */\nfunction useBannerOrBlocker() {\n const banner = useBanner();\n const blocker = useBlocker(); // Check for a common context property in an available context as it is never `undefined`\n\n return banner.groups ? banner : blocker;\n}\n\nexport { useBannerOrBlocker };","import { useBannerOrBlocker } from \".\";\n\nfunction useLegalLinks() {\n const {\n legal: {\n privacyPolicy,\n privacyPolicyExternalUrl,\n privacyPolicyIsExternalUrl,\n privacyPolicyLabel,\n imprint,\n imprintExternalUrl,\n imprintIsExternalUrl,\n imprintLabel\n },\n pageByIdUrl\n } = useBannerOrBlocker();\n const pageIdToPermalink = useBannerOrBlocker().pageIdToPermalink || {};\n let linkPrivacyPolicy = privacyPolicy > 0 ? pageIdToPermalink[privacyPolicy] || \"\".concat(pageByIdUrl, \"=\").concat(privacyPolicy) : undefined;\n let linkImprint = imprint > 0 ? pageIdToPermalink[imprint] || \"\".concat(pageByIdUrl, \"=\").concat(imprint) : undefined;\n\n if (privacyPolicyIsExternalUrl) {\n linkPrivacyPolicy = privacyPolicyExternalUrl;\n }\n\n if (imprintIsExternalUrl) {\n linkImprint = imprintExternalUrl;\n }\n\n return {\n linkPrivacyPolicy: privacyPolicyLabel && linkPrivacyPolicy ? {\n url: linkPrivacyPolicy,\n label: privacyPolicyLabel\n } : false,\n linkImprint: imprintLabel && linkImprint ? {\n url: linkImprint,\n label: imprintLabel\n } : false\n };\n}\n\nexport { useLegalLinks };","import { useMemo, useLayoutEffect } from \"react\";\nlet counter = 0;\n/**\n * Dynamically creates a style-tag in your head with a given plain CSS string.\n */\n\nfunction usePlainCss(css, uniqueId, keep) {\n const id = useMemo(() => \"react-use-plain-css-\".concat(uniqueId || (counter++).toString(36)), []);\n useLayoutEffect(() => {\n let element = document.getElementById(id);\n\n if (!element) {\n element = document.createElement(\"style\");\n element.style.type = \"text/css\";\n element.id = id;\n document.getElementsByTagName(\"head\")[0].appendChild(element);\n }\n\n element.innerHTML = css;\n return () => {\n if (!keep) {\n var _element$parentNode;\n\n (_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 ? void 0 : _element$parentNode.removeChild(element);\n }\n };\n }, [css, keep]);\n return id;\n}\n\nexport { usePlainCss };","import { scaleMobile } from \"../../scale\";\n\nfunction commonInlineStyleBodyTeaching({\n bodyDesign: {\n teachingsInheritTextAlign,\n teachingsTextAlign,\n teachingsInheritFontSize,\n teachingsFontSize,\n teachingsInheritFontColor,\n teachingsFontColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only given for banner\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-teachings\",\n style: {\n marginTop: 7,\n display: \"inline-block\",\n textAlign: teachingsInheritTextAlign ? undefined : teachingsTextAlign,\n fontSize: teachingsInheritFontSize ? undefined : pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +teachingsFontSize) : +teachingsFontSize,\n color: teachingsInheritFontColor ? undefined : teachingsFontColor\n }\n };\n}\n\nexport { commonInlineStyleBodyTeaching };","function commonInlineStyleBodyTeachingsSeparator({\n layout: {\n borderRadius\n },\n bodyDesign: {\n teachingsSeparatorActive,\n teachingsSeparatorWidth,\n teachingsSeparatorHeight,\n teachingsSeparatorColor\n },\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-teachings-separator\",\n style: {\n marginTop: 7,\n display: \"inline-block\",\n maxWidth: \"100%\",\n borderRadius: +borderRadius,\n width: +teachingsSeparatorWidth,\n height: teachingsSeparatorActive ? +teachingsSeparatorHeight : 0,\n background: teachingsSeparatorColor\n }\n };\n}\n\nexport { commonInlineStyleBodyTeachingsSeparator };","function commonGroupsInlineStyleLinkMore({\n design: {\n linkTextDecoration\n },\n group: {\n linkColor,\n linkHoverColor\n },\n customCss: {\n antiAdBlocker\n }\n}, isHover) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group-more\",\n style: {\n color: isHover ? linkHoverColor : linkColor,\n textDecoration: linkTextDecoration\n }\n };\n}\n\nexport { commonGroupsInlineStyleLinkMore };","import { scaleMobile } from \"../..\";\n\nfunction commonInlineStyleHeaderHeadline({\n headerDesign: {\n fontSize,\n fontColor,\n fontInheritFamily,\n fontFamily,\n fontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n // only used for banner\n pageRequestUuid4\n}, hasCloseIcon) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-headline\",\n style: {\n color: fontColor,\n lineHeight: 1.8,\n fontSize: pageRequestUuid4 ? scaleMobile(mobile, pageRequestUuid4, +fontSize) : +fontSize,\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n fontWeight,\n paddingRight: hasCloseIcon ? 20 : undefined\n }\n };\n}\n\nexport { commonInlineStyleHeaderHeadline };","const calculateNewVal = (val, scalePercent) => {\n let newVal = val;\n newVal = val / 100 * scalePercent;\n newVal = newVal < 1 ? 1 : newVal;\n return newVal;\n};\n/**\n * Calculate the new value for an inline style value and respect the scaling options.\n */\n\n\nfunction scaleMobile({\n enabled,\n scalePercent,\n scalePercentVertical\n}, useWidthOfThisContainerId, original, replaceWith, additionalVerticalScaling = false) {\n if (process.env.PLUGIN_CTX === \"pro\") {\n /* Silence is golden... Until you have PRO Version! */\n }\n\n return original;\n}\n\nexport { scaleMobile };","import { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\nwindow.rcbPoweredByCacheOuterHTML = \"\";\n/**\n * Get the server-side-rendered powered by link.\n */\n\nfunction getSsrPoweredByLink(id) {\n const originalPoweredLink = document.getElementById(id);\n const poweredLink = document.createElement(\"div\");\n\n if (window.rcbPoweredByCacheOuterHTML) {\n // We have cached the link as we remove it from the DOM\n poweredLink.innerHTML = window.rcbPoweredByCacheOuterHTML;\n } else if (matchingSelector(originalPoweredLink, \"a\") && originalPoweredLink.innerHTML.toLowerCase().indexOf(\"Real Cookie Banner\")) {\n window.rcbPoweredByCacheOuterHTML = originalPoweredLink.outerHTML;\n poweredLink.innerHTML = window.rcbPoweredByCacheOuterHTML;\n originalPoweredLink.parentNode.removeChild(originalPoweredLink);\n }\n\n return poweredLink.children[0];\n}\n\nexport { getSsrPoweredByLink };","function matchingSelector(element, selector) {\n const proto = typeof Element !== \"undefined\" ? Element.prototype : {};\n const nativeFunction = proto.matches || proto.matchesSelector || proto.webkitMatchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector;\n\n if (!element || element.nodeType !== 1 || !element.parentElement) {\n return false;\n }\n\n if (nativeFunction) {\n return nativeFunction.call(element, selector);\n }\n\n const matchingElements = element.parentElement.querySelectorAll(selector);\n\n for (const matchIdx in matchingElements) {\n if (matchingElements[matchIdx] === element) {\n return true;\n }\n }\n\n return false;\n}\n\nexport { matchingSelector };","import { trailingslashit, untrailingslashit } from \"../../helpers\";\nimport { RouteHttpVerb } from \".\";\nimport deepMerge from \"deepmerge\";\nimport qs from \"querystringify\";\nimport Cookie from \"js-cookie\";\nimport sha1 from \"sha-1\";\n\nfunction applyQueryString(url, query, merge) {\n url.search = qs.stringify(merge ? deepMerge.all([qs.parse(url.search), ...query]) : query, true);\n return url;\n}\n/**\n * Build an URL for a specific scheme.\n *\n * @param param0\n */\n\n\nfunction commonUrlBuilder({\n location,\n params = {},\n nonce = true,\n options,\n cookieValueAsParam\n}) {\n const apiUrl = new URL(options.restRoot);\n const query = qs.parse(apiUrl.search);\n const permalinkPath = query.rest_route || apiUrl.pathname; // Determine path from permalink settings\n // Find dynamic parameters from URL bindings (like /user/:id)\n\n const foundParams = [];\n const path = location.path.replace(/:([A-Za-z0-9-_]+)/g, (match, group) => {\n foundParams.push(group);\n return params[group];\n });\n const getParams = {}; // Find undeclared body params (which are not bind above) and add it to GET query\n\n for (const checkParam of Object.keys(params)) {\n if (foundParams.indexOf(checkParam) === -1) {\n getParams[checkParam] = params[checkParam]; // We do not need `encodeURIComponent` as it is supported by `querystringify` already\n }\n } // Calculate invalidator for cookie values\n\n\n if (cookieValueAsParam) {\n getParams._httpCookieInvalidate = sha1(JSON.stringify(cookieValueAsParam.map(Cookie.get)));\n } // Force protocol from parent location\n\n\n apiUrl.protocol = window.location.protocol; // Set path depending on permalink settings\n\n const usePath = trailingslashit(permalinkPath) + untrailingslashit(location.namespace || options.restNamespace) + path;\n\n if (query.rest_route) {\n query.rest_route = usePath; // eslint-disable-line @typescript-eslint/naming-convention\n } else {\n apiUrl.pathname = usePath; // Set path\n } // Append WordPress REST nonce\n\n\n if (nonce && options.restNonce) {\n query._wpnonce = options.restNonce;\n } // Determine if non-GET verbs should always use `POST`\n\n\n applyQueryString(apiUrl, query);\n\n if ([\"wp-json/\", \"rest_route=\"].filter(s => apiUrl.toString().indexOf(s) > -1).length > 0 && location.method && location.method !== RouteHttpVerb.GET) {\n applyQueryString(apiUrl, [{\n _method: location.method\n }], true);\n } // Build final search\n\n\n applyQueryString(apiUrl, [options.restQuery, getParams], true);\n return apiUrl.toString();\n}\n\nexport { commonUrlBuilder, applyQueryString, qs };","const pool = {};\nconst recreateFetchPool = {};\n/**\n * A REST nonce in WordPress is only valid for 12 hours (can be configured). However, if it gets\n * invalid, the REST endpoints return a `403` error which signals us, we should recreate the nonce.\n * To avoid multiple recreations, we memorize the newly created nonce in a pool.\n */\n\nasync function nonceDeprecationPool(nonce, restRecreateNonceEndpoint) {\n if (typeof restRecreateNonceEndpoint !== \"undefined\") {\n const resultPromise = // Reuse already sent request\n recreateFetchPool[nonce] || new Promise( // eslint-disable-next-line no-async-promise-executor\n async (resolve, reject) => {\n try {\n const recreateFetch = await window.fetch(restRecreateNonceEndpoint);\n\n if (recreateFetch.ok) {\n const newNonce = await recreateFetch.text();\n\n if (nonce === newNonce) {\n reject();\n } else {\n pool[nonce] = newNonce;\n resolve(newNonce);\n }\n } else {\n reject();\n }\n } catch (e) {\n reject();\n }\n });\n recreateFetchPool[nonce] = resultPromise;\n return resultPromise;\n } else {\n if (typeof nonce === \"undefined\") {\n return undefined;\n } // Wait until all nonces are refreshed\n\n\n await Promise.all(Object.values(recreateFetchPool));\n let returnNonce = nonce;\n\n while (pool[returnNonce]) {\n returnNonce = pool[returnNonce];\n\n if (pool[returnNonce] === nonce) {\n break;\n }\n }\n\n return Promise.resolve(returnNonce);\n }\n}\n\nexport { nonceDeprecationPool };","import { RouteHttpVerb } from \".\";\n/**\n * Get the result of the `Response`. It also handles multiline responses, e. g.\n * a PHP `Notice:` message is output through a conflicting plugin:\n *\n * If you are using a verb like `DELETE` or `PUT` the response may be empty and this\n * function will return `undefined`.\n *\n * @see https://developer.mozilla.org/de/docs/Web/HTTP/Methods/DELETE\n */\n\nasync function parseResult(url, result, method) {\n const cloneForFallback = result.clone();\n\n try {\n return await result.json();\n } catch (e) {\n // Something went wrong, try each line as result of a JSON string\n const body = await cloneForFallback.text(); // Respect empty responses for given verbs (DELETE, PUT)\n\n if (body === \"\" && [RouteHttpVerb.DELETE, RouteHttpVerb.PUT].indexOf(method) > -1) {\n return undefined;\n }\n\n console.warn(\"The response of \".concat(url, \" contains unexpected JSON, try to resolve the JSON line by line...\"), {\n body\n });\n let lastError;\n\n for (const line of body.split(\"\\n\")) {\n if (line.startsWith(\"[\") || line.startsWith(\"{\")) {\n try {\n return JSON.parse(line);\n } catch (e) {\n lastError = e;\n }\n }\n }\n\n throw lastError;\n }\n}\n\nexport { parseResult };","import { parseResult, nonceDeprecationPool, applyQueryString, commonUrlBuilder, RouteHttpVerb } from \".\";\nimport deepMerge from \"deepmerge\";\nimport jsonFormData from \"json-form-data\";\nconst CONTENT_TYPE_JSON = \"application/json;charset=utf-8\"; // Fix: Return type of exported function has or is using name 'FormatOptions'\n// from external module \"/home/mg/vscode-workspace/devowl-wp/node_modules/@types/json-form-data/index\" but cannot be named.\n// type MultiPartOptions = Parameters<typeof jsonFormData>[1];\n\n/**\n * Build and execute a specific REST query.\n *\n * @see urlBuilder\n * @returns Result of REST API\n * @throws\n */\nasync function commonRequest({\n location,\n options,\n request: routeRequest,\n params,\n settings = {},\n cookieValueAsParam,\n multipart = false,\n sendRestNonce = true\n}) {\n const url = commonUrlBuilder({\n location,\n params,\n nonce: false,\n options,\n cookieValueAsParam\n }); // Use global parameter (see https://developer.wordpress.org/rest-api/using-the-rest-api/global-parameters/)\n\n if ([\"wp-json/\", \"rest_route=\"].filter(s => url.indexOf(s) > -1).length > 0 && location.method && location.method !== RouteHttpVerb.GET) {\n settings.method = RouteHttpVerb.POST;\n } else {\n settings.method = location.method || RouteHttpVerb.GET;\n } // Request with GET/HEAD method cannot have body\n\n\n const apiUrl = new URL(url);\n const allowBody = [\"HEAD\", \"GET\"].indexOf(settings.method) === -1;\n\n if (!allowBody && routeRequest) {\n applyQueryString(apiUrl, [routeRequest], true);\n }\n\n const apiUrlBuilt = apiUrl.toString(); // Determine body\n\n let body;\n\n if (allowBody) {\n if (multipart) {\n // Let's create a multipart request...\n body = jsonFormData(routeRequest, typeof multipart === \"boolean\" ? {} : multipart);\n } else {\n // It is a usual JSON request, we do not need to send a multipart request\n body = JSON.stringify(routeRequest);\n }\n } // Do the request\n\n\n const restNonce = await nonceDeprecationPool(options.restNonce);\n const hasRestNonce = typeof restNonce !== \"undefined\";\n const init = deepMerge.all([settings, {\n headers: { ...(typeof body === \"string\" ? {\n \"Content-Type\": CONTENT_TYPE_JSON\n } : {}),\n ...(hasRestNonce && sendRestNonce ? {\n \"X-WP-Nonce\": restNonce\n } : {}),\n Accept: \"application/json, */*;q=0.1\"\n }\n }]);\n init.body = body; // Do not make body merge-able\n\n const result = await window.fetch(apiUrlBuilt, init); // `window.fetch` does not throw an error if the server response an error code.\n\n if (!result.ok) {\n let responseJSON = undefined;\n let replay = false;\n\n try {\n responseJSON = await parseResult(apiUrlBuilt, result, location.method); // wordpress.com private site compatibility\n\n /* istanbul ignore if */\n\n if (responseJSON.code === \"private_site\" && result.status === 403 && hasRestNonce && !sendRestNonce) {\n replay = true;\n } // Refresh nonce automatically\n\n /* istanbul ignore if */\n\n\n if (responseJSON.code === \"rest_cookie_invalid_nonce\" && hasRestNonce) {\n const {\n restRecreateNonceEndpoint\n } = options;\n\n try {\n await nonceDeprecationPool(restNonce, restRecreateNonceEndpoint);\n replay = true;\n } catch (e) {// Silence is golden.\n }\n }\n } catch (e) {// Silence is golden.\n }\n\n if (replay) {\n return await commonRequest({\n location,\n options,\n multipart,\n params,\n request: routeRequest,\n sendRestNonce: true,\n settings\n });\n } // Set this request as failing so the endpoint is probably corrupt (see `corruptRestApi.tsx`)\n\n\n settings.method === RouteHttpVerb.GET && (window.detectCorruptRestApiFailed = (window.detectCorruptRestApiFailed || 0) + 1);\n const resultAny = result;\n resultAny.responseJSON = responseJSON;\n throw resultAny;\n }\n\n return parseResult(apiUrlBuilt, result, location.method);\n}\n\nexport { commonRequest };","var RouteHttpVerb;\n\n(function (RouteHttpVerb) {\n RouteHttpVerb[\"GET\"] = \"GET\";\n RouteHttpVerb[\"POST\"] = \"POST\";\n RouteHttpVerb[\"PUT\"] = \"PUT\";\n RouteHttpVerb[\"DELETE\"] = \"DELETE\";\n RouteHttpVerb[\"PATCH\"] = \"PATCH\";\n})(RouteHttpVerb || (RouteHttpVerb = {}));\n\nexport { RouteHttpVerb };","const untrailingslashit = str => str.endsWith(\"/\") || str.endsWith(\"\\\\\") ? untrailingslashit(str.slice(0, -1)) : str;\n\nconst trailingslashit = str => \"\".concat(untrailingslashit(str), \"/\"); // Allows to make an interface extension and make some properties optional (https://git.io/JeK6J)\n\n\n/**\n * You need to manually put the following code snippet in each of your entry points to enable\n * \"on the fly\" public path for chunks:\n *\n * ```\n * __webpack_public_path__ = getWebpackPublicPath(process.env.slug);\n * ```\n *\n * @see https://webpack.js.org/guides/public-path/#on-the-fly\n */\nconst getWebpackPublicPath = slug => {\n const options = window[slug.replace(/-([a-z])/g, g => g[1].toUpperCase())];\n return \"\".concat(options.publicUrl).concat(options.chunkFolder, \"/\");\n};\n\nexport { untrailingslashit, trailingslashit, getWebpackPublicPath };","import { getOtherOptionsFromWindow } from \"../utils\";\nimport { HTML_ATTRIBUTE_COOKIE_IDS, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_BY, OPT_IN_CONTENT_BLOCKER } from \"@devowl-wp/headless-content-unblocker\";\nimport { regExpPatternFromWildcardName } from \"@devowl-wp/cookie-consent-web-client\";\n/**\n * `window.consentApi.unblock`: Check if a given URL / string is blocked by a Content Blocker:\n *\n * - When a Content Blocker exists, the Promise is only resolved after given consent\n * - When no Content Blocker exists, the Promise is immediate resolved\n *\n * Example (ES5):\n * ```js\n * (window.consentApi && window.consentApi.unblock(\"player.vimeo.com\") || Promise.resolve()).then(function() {\n * console.log(\"Consent for Vimeo given, unlock content...!\");\n * });\n * ```\n *\n * Example (ES6, Babel, TS):\n * ```js\n * (window.consentApi?.unblock(\"player.vimeo.com\") || Promise.resolve()).then(() => {\n * console.log(\"Consent for Vimeo given, unlock content...!\");\n * });\n * ```\n *\n * @param url\n * @param ref Create a visual content blocker to a given HTML element\n */\n\nfunction unblock(url, ref = document.createElement(\"div\")) {\n return new Promise(resolve => {\n // Find matching blocker\n let found;\n const {\n blocker\n } = getOtherOptionsFromWindow();\n const isPseudoRef = !ref.parentElement;\n\n loop1: for (const row of blocker) {\n const {\n rules\n } = row; // Check if host matches\n\n for (const rule of rules) {\n const regexp = regExpPatternFromWildcardName(rule);\n\n if (url.match(regexp)) {\n found = row;\n break loop1;\n }\n }\n }\n\n if (found) {\n // Add attributes to DOM element so it can be consumed by `manipulateDom`\n ref.setAttribute(HTML_ATTRIBUTE_BY, \"services\");\n ref.setAttribute(HTML_ATTRIBUTE_COOKIE_IDS, found.services.join(\",\"));\n ref.setAttribute(HTML_ATTRIBUTE_BLOCKER_ID, found.id.toString());\n ref.addEventListener(OPT_IN_CONTENT_BLOCKER, () => {\n isPseudoRef && ref.remove();\n resolve();\n }); // Append blocking element to HTML DOM if not already exists\n\n if (isPseudoRef) {\n document.body.appendChild(ref);\n }\n } else {\n resolve();\n }\n });\n}\n\nexport { unblock };","import { supportsCookies } from \"../utils\";\n/**\n * Does the current browser support cookies?\n */\n\nconst preDecisionGatewaySupportsCookies = async ({\n supportsCookiesName\n}) => {\n return supportsCookies(supportsCookiesName) ? false : \"essentials\";\n};\n\nexport { preDecisionGatewaySupportsCookies };","import isbot from \"isbot\";\n/**\n * Is the current browser a spider / crawler?\n */\n\nfunction isCrawler() {\n const {\n userAgent\n } = navigator;\n\n if (userAgent) {\n // Lighthouse / Google PageSpeed isn't currently a bot (https://git.io/J3r5z)\n if (/chrome-lighthouse/i.test(userAgent)) {\n return false;\n }\n\n return isbot(userAgent);\n }\n\n return false;\n}\n\nexport { isCrawler };","import { getUserDecision } from \"../decision\";\nimport { isCrawler, promiseTimeout } from \"../utils\";\n\n/**\n * Dynamically allow to get a predecision with a extra request to an external API.\n * If your server does not respond within a given timeout or with an error, it automatically\n * continues with the predecisions. Otherwise, the predecision of the response is used.\n */\nconst preDecisionGatewayDynamicRequest = (request, timeout = 10000, active = true) => async ({\n decisionCookieName,\n revisionHash\n}) => {\n if (isCrawler() || !active) {\n // Ignore unnecessary requests\n return false;\n } // Check if revision has changed, and probably access our dynamic predecision again\n\n\n const decision = getUserDecision(decisionCookieName);\n\n if (decision) {\n const {\n revision\n } = decision;\n\n if (revisionHash === revision) {\n // Still the same revision, so we can simply accept our consent as it is still the predecision we had previously\n return \"consent\";\n }\n }\n\n try {\n const {\n predecision\n } = await promiseTimeout(request(), timeout);\n return predecision;\n } catch (e) {\n return false;\n }\n};\n\nexport { preDecisionGatewayDynamicRequest };","/**\n * Let a `Promise` be rejected after a given amount of time.\n */\nfunction promiseTimeout(promise, ms) {\n return new Promise((resolve, reject) => {\n promise.then(resolve, reject);\n const e = new Error(\"Timed out\");\n setTimeout(reject, ms, e);\n });\n}\n\nexport { promiseTimeout };","import { getUserDecision } from \"../decision\";\nimport { isDoNotTrack } from \"../utils\";\n\n/**\n * When the user has \"Do not track\" enabled and is allowed to use, let's automatically\n * save the dialog without any action.\n */\nconst preDecisionGatewayIsDoNotTrack = (active = true) => async ({\n decisionCookieName,\n groups,\n essentialGroupSlug\n}) => {\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroupSlug);\n\n if (getUserDecision(decisionCookieName) !== false || !active) {\n return false;\n } // As soon we have a legitimate interest, we need to show the cookie banner\n\n\n for (const group of groups) {\n if (group !== essentialGroupObj) {\n for (const {\n legalBasis\n } of group.items) {\n if (legalBasis === \"legitimate-interest\") {\n return false;\n }\n }\n }\n }\n\n return isDoNotTrack() ? \"dnt\" : false;\n};\n\nexport { preDecisionGatewayIsDoNotTrack };","/**\n * Checks if the given browser is requesting \"Do Not Track\" header.\n *\n * @see https://dev.to/corbindavenport/how-to-correctly-check-for-do-not-track-with-javascript-135d\n */\nfunction isDoNotTrack() {\n try {\n const w = window;\n\n if (w.doNotTrack || w.navigator.doNotTrack || w.navigator.msDoNotTrack || \"msTrackingProtectionEnabled\" in w.external) {\n // The browser supports Do Not Track!\n if (w.doNotTrack == \"1\" || w.navigator.doNotTrack == \"yes\" || w.navigator.doNotTrack == \"1\" || w.navigator.msDoNotTrack == \"1\" || w.external.msTrackingProtectionEnabled()) {\n return true;\n }\n }\n } catch (e) {// Silence is golden.\n }\n\n return false;\n}\n\nexport { isDoNotTrack };","import { getUserDecision } from \"../decision\";\n/**\n * Has the user already consent to the latest requested revision (hash)?\n */\n\nconst preDecisionGatewayUserConsent = async ({\n decisionCookieName,\n revisionHash\n}) => {\n const decision = getUserDecision(decisionCookieName);\n\n if (decision === false) {\n return false;\n }\n\n const {\n revision\n } = decision;\n return revisionHash === revision ? \"consent\" : false;\n};\n\nexport { preDecisionGatewayUserConsent };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentDynamicPredecisionGet = {\n path: \"/consent/dynamic-predecision\",\n method: RouteHttpVerb.POST\n};","/**\n * Checks if the given banner is not visible due to legal settings.\n */\nfunction isHiddenDueLegal(banner) {\n const {\n legal: {\n imprint,\n imprintHide,\n privacyPolicy,\n privacyPolicyHide\n },\n pageId\n } = banner;\n return [imprintHide && +imprint, privacyPolicyHide && +privacyPolicy].filter(Boolean).indexOf(pageId) > -1;\n}\n\nexport { isHiddenDueLegal };","import { useCallback, useMemo } from \"react\";\nimport { BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER } from \"../..\";\n/**\n * Depending on the current screen, calculate the animation to use.\n *\n * Currently, we do not support animations on resize as we cannot calculate the\n * width of the overlay container as it does not exist on first render cycle of React.\n *\n * Drawback if animation only on mobile is enabled: if the window is first a mobile,\n * and the window gets resize it will reuse the animation on desktop again\n */\n\nfunction useBannerAnimation() {\n const clientWidth = useMemo(() => window.innerWidth, []);\n const isMobile = clientWidth < BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER; // Check if it is mobile Firefox, as it does not support `position:sticky;bottom:0;` and animations.\n // Effect: The buttons and footer are not visible.\n\n const isMobileFirefox = useMemo(() => {\n const userAgent = window.navigator.userAgent.toLowerCase();\n return [\"firefox\", \"gecko\", \"mobile\", \"android\"].map(term => userAgent.indexOf(term) > -1).filter(Boolean).length === 4;\n }, []);\n return useCallback(({\n animationIn,\n animationInOnlyMobile,\n animationOut,\n animationOutOnlyMobile\n }) => {\n let useAnimationIn = animationInOnlyMobile ? isMobile ? animationIn : \"none\" : animationIn;\n let useAnimationOut = animationOutOnlyMobile ? isMobile ? animationOut : \"none\" : animationOut;\n\n if (isMobileFirefox) {\n useAnimationIn = \"none\";\n useAnimationOut = \"none\";\n }\n\n return {\n useAnimationIn,\n useAnimationOut\n };\n }, []);\n}\n\nexport { useBannerAnimation };","export const BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER = 700;\nexport * from \"./types\";\nexport * from \"./contexts\";\nexport * from \"./hooks\";\nexport * from \"./inlineStyles\";\nexport * from \"./utils\";\nexport * from \"./components\";\nexport * from \"./others\";","import { createTcfModel } from \"@devowl-wp/cookie-consent-web-client\";\n\nconst cancelEvent = e => {\n if (!e) {\n return;\n }\n\n e.preventDefault(); // Some themes (e.g. AKEA) do have listeners on each link separately and do a custom redirect\n\n e.stopPropagation();\n};\n\nfunction useBannerStateContextCallbacks({\n toggleOverlay,\n revokeConsent\n}) {\n const toggleWithActiveAction = (setContextValue, type) => setContextValue(state => {\n return { ...state,\n activeAction: type,\n individualPrivacyOpen: true,\n refreshSiteAfterSave: type === \"change\" ? 2000 : false,\n ...toggleOverlay(state, true)\n };\n });\n\n return {\n openHistory: (setContextValue, ...args) => {\n toggleWithActiveAction(setContextValue, \"history\");\n cancelEvent(args[0]);\n },\n openBanner: (setContextValue, ...args) => {\n toggleWithActiveAction(setContextValue, \"change\");\n cancelEvent(args[0]);\n },\n revokeConsent: (setContextValue, ...args) => {\n const [successMessage, e] = args;\n setContextValue(state => {\n revokeConsent(state).then(() => {\n successMessage && alert(successMessage); // Always reload (always wait 2s to ensure opt-out scripts are exeucted)\n // Fix iOS / Safari bug when we want to reload the page after a POST request\n\n setTimeout(() => window.location.reload(), 2000);\n }); // Do not change anything\n\n return state;\n });\n cancelEvent(e);\n },\n updateTcfFilterBy: (setContextValue, ...args) => {\n const [newFilter] = args;\n setContextValue(state => ({ ...state,\n tcfFilterBy: newFilter\n }));\n },\n updateIndividualPrivacyOpen: (setContextValue, ...args) => {\n const [opened] = args;\n setContextValue(state => ({ ...state,\n individualPrivacyOpen: opened\n }));\n },\n updateGroupChecked: (setContextValue, ...args) => {\n const [id, checked] = args;\n setContextValue(state => {\n const newConsent = JSON.parse(JSON.stringify(state.consent));\n\n if (checked) {\n newConsent.groups[id] = state.groups.filter(group => group.id === id)[0].items.map(({\n id\n }) => id);\n } else {\n delete newConsent.groups[id];\n }\n\n return { ...state,\n consent: newConsent,\n didGroupFirstChange: true\n };\n });\n },\n updateCookieChecked: (setContextValue, ...args) => {\n const [groupId, id, checked] = args;\n setContextValue(state => {\n const newConsent = JSON.parse(JSON.stringify(state.consent)); // Initially create \"selected\" cookies\n\n if (!newConsent.groups[groupId]) {\n newConsent.groups[groupId] = [];\n }\n\n const cookieIds = newConsent.groups[groupId];\n const indexOf = cookieIds.indexOf(id);\n\n if (checked && indexOf === -1) {\n cookieIds.push(id);\n } else if (!checked && indexOf > -1) {\n cookieIds.splice(indexOf, 1);\n } // Delete group entirely when no cookies selected\n\n\n if (!cookieIds.length) {\n delete newConsent.groups[groupId];\n }\n\n return { ...state,\n consent: newConsent\n };\n });\n },\n onClose: setContextValue => {\n setContextValue(state => {\n return { ...state,\n ...toggleOverlay(state, false),\n // This should be set always by you again as it is one-time\n refreshSiteAfterSave: false\n };\n });\n },\n selectHistoryEntry: (setContextValue, ...args) => {\n const [groups, consentGroups, tcf] = args;\n setContextValue(state => {\n const additionalChanges = {\n // In case we previously used non-TCF functionality, do not show the TCF banner\n isTcf: !!tcf,\n tcf: null\n };\n\n if (process.env.IS_TCF === \"1\" && tcf) {\n Object.assign(additionalChanges, {\n tcf: \"gvl\" in tcf ? tcf : createTcfModel(tcf)\n });\n }\n\n return { ...state,\n groups,\n consent: { ...state.consent,\n groups: consentGroups\n },\n ...additionalChanges\n };\n });\n }\n };\n}\n\nexport { useBannerStateContextCallbacks };","import { useEffect } from \"react\";\nimport { parents } from \"@devowl-wp/headless-content-unblocker\";\nimport { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\nimport { useBanner } from \"../..\";\nconst HREF_MATCHER = '[href^=\"#consent-\"]';\n/**\n * Listen to anchor links and execute the banner action:\n *\n * ```\n * #consent-change\n * #consent-history\n * #consent-revoke\n * ```\n */\n\nfunction useBannerActionLinks() {\n const {\n openBanner,\n openHistory,\n revokeConsent\n } = useBanner();\n useEffect(() => {\n const handleType = (type, successMessage, e) => {\n if (!openBanner) {\n // `useBannerActions` is not yet initialized.\n return;\n }\n\n switch (type) {\n case \"change\":\n openBanner(e);\n break;\n\n case \"history\":\n openHistory(e);\n break;\n\n case \"revoke\":\n revokeConsent(successMessage, e);\n break;\n\n default:\n break;\n }\n };\n\n const eventListenerDocumentClick = e => {\n if (!openBanner) {\n // `useBannerActions` is not yet initialized.\n return;\n } // Check if one of the parents has a valid hash link\n\n\n const element = e.target;\n parents(element, HREF_MATCHER).concat(matchingSelector(element, HREF_MATCHER) ? [element] : []).forEach(parent => {\n handleType(parent.getAttribute(\"href\").slice(9), parent.getAttribute(\"data-success-message\"), e);\n }); // @deprecated Old behavior with simple links like `#change`\n\n if (matchingSelector(element, \".rcb-sc-link\")) {\n handleType(element.getAttribute(\"href\").slice(1), element.getAttribute(\"data-success-message\"), e);\n }\n };\n\n const eventListenerHashChange = () => {\n const {\n hash\n } = window.location;\n\n if (hash.startsWith(\"#consent-\")) {\n handleType(hash.substring(9), undefined, undefined);\n }\n };\n\n window.addEventListener(\"hashchange\", eventListenerHashChange);\n document.addEventListener(\"click\", eventListenerDocumentClick, true);\n return () => {\n window.removeEventListener(\"hashchange\", eventListenerHashChange);\n document.removeEventListener(\"click\", eventListenerDocumentClick, true);\n };\n }, [openBanner, openHistory, revokeConsent]);\n}\n\nexport { useBannerActionLinks };","import { useEffect, useState } from \"react\";\n\nfunction useResettableAnimation(animation, duration) {\n const [i, setI] = useState(0);\n const [j, setJ] = useState(0);\n const [stateAnimation, setStateAnimation] = useState(animation);\n const [stateAnimationReset, setStateAnimationReset] = useState(undefined);\n const [stateDuration, setStateDuration] = useState(duration);\n const [stateDurationReset, setStateDurationReset] = useState(undefined); // Reset animation, save it temporary so when changing it, it needs to be to \"none\" and then the needed one\n\n useEffect(() => {\n // Avoid first rendering as the first is animated at mount-time\n if (i > 0) {\n if (animation === \"none\") {\n setStateAnimation(animation);\n } else {\n setStateAnimation(\"none\");\n setStateAnimationReset(animation);\n }\n }\n\n setI(i + 1);\n }, [animation]);\n useEffect(() => {\n // Avoid first rendering as the first is animated at mount-time\n if (j > 0) {\n if (duration === 0) {\n setStateDuration(duration);\n } else {\n setStateDuration(0);\n setStateDurationReset(duration);\n setStateAnimation(\"none\");\n setStateAnimationReset(animation);\n }\n }\n\n setJ(j + 1);\n }, [duration]);\n useEffect(() => {\n if (stateAnimationReset !== undefined) {\n setStateAnimation(stateAnimationReset);\n setStateAnimationReset(undefined);\n }\n }, [stateAnimationReset]);\n useEffect(() => {\n if (stateDurationReset !== undefined) {\n setStateDuration(stateDurationReset);\n setStateDurationReset(undefined);\n }\n }, [stateDurationReset]);\n return [stateAnimation, stateDuration];\n}\n\nexport { useResettableAnimation };","/**\n * @see https://stackoverflow.com/a/5624139/5506547\n * @param hex\n */\nfunction hexToRgb(hex) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n\nexport { hexToRgb };","import { hexToRgb } from \".\";\n\n/**\n * @param hex\n * @param alpha 0 - 100\n */\nfunction calculateRgba(hex, alpha) {\n const {\n r,\n g,\n b\n } = hexToRgb(hex);\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(alpha / 100, \")\");\n}\n\nexport { calculateRgba };","import { useState, useEffect } from \"react\";\n\nfunction getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDuration,\n animationOutDuration,\n animationInDelay,\n animationOutDelay\n}) {\n return isVisible ? {\n animation: animationIn,\n duration: animationInDuration,\n delay: animationInDelay\n } : {\n animation: animationOut,\n duration: animationOutDuration,\n delay: animationOutDelay\n };\n}\n/**\n * Ported from https://www.npmjs.com/package/react-animated-css due to high bundle size.\n */\n\n\nconst AnimatedCss = ({\n animateOnMount = true,\n isVisible = true,\n animationIn = \"fadeIn\",\n animationOut = \"fadeOut\",\n animationInDelay = 0,\n animationOutDelay = 0,\n animationInDuration = 1000,\n animationOutDuration = 1000,\n className = \"\",\n style = {},\n children\n}) => {\n const [{\n animation,\n duration,\n delay\n }, setAnimationRelatedState] = useState(animateOnMount ? getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDelay,\n animationOutDelay,\n animationInDuration,\n animationOutDuration\n }) : {\n animation: \"\",\n delay: undefined,\n duration: 0\n });\n useEffect(() => {\n setAnimationRelatedState(getAnimationRelatedState({\n isVisible,\n animationIn,\n animationOut,\n animationInDelay,\n animationOutDelay,\n animationInDuration,\n animationOutDuration\n }));\n }, [isVisible, animationIn, animationOut, animationInDelay, animationOutDelay, animationInDuration, animationOutDuration]);\n const classes = \"animate__animated animate__\".concat(animation, \" \").concat(className);\n const backwardStyle = !animation ? {\n opacity: isVisible ? 1 : 0,\n transition: \"opacity \".concat(delay, \"ms\")\n } : {};\n return h(\"div\", {\n className: classes,\n style: {\n animationDelay: \"\".concat(delay, \"ms\"),\n animationDuration: \"\".concat(duration, \"ms\"),\n pointerEvents: isVisible ? \"all\" : \"none\",\n ...style,\n ...backwardStyle\n }\n }, children);\n};\n\nexport { AnimatedCss };","import { useEffect } from \"react\";\nimport { useBanner } from \"../contexts\";\nimport { usePlainCss } from \".\";\n/**\n * Pass an HTML refs and we will provide a root stylesheet with the height dimensions and variables\n * with the calculated height. This is needed as we need to do some positioning of header and footer.\n */\n\nfunction useRenderedHeightsAsCssVars(element, name) {\n const {\n pageRequestUuid4\n } = useBanner(); // We do directly modify the inline CSS as we do not want to trigger a rerender for the complete banner content\n\n const cssId = usePlainCss(\"\", \"useRenderedHeightsAsCssVars-\".concat(name));\n const cssElement = document.getElementById(cssId);\n useEffect(() => {\n let previousHeight = 0;\n\n const recalculate = () => {\n const currentHeight = element.getBoundingClientRect().height;\n\n if (previousHeight !== currentHeight) {\n previousHeight = currentHeight;\n cssElement.innerHTML = \"#\".concat(pageRequestUuid4, \"{--rendered-height-\").concat(name, \": \").concat(Math.floor(currentHeight), \"px;--rendered-height-raw-\").concat(name, \": \").concat(currentHeight, \"px}\");\n }\n };\n\n if (!element) {\n return () => {// Silence is golden.\n };\n } // Support animations\n\n\n const animateContainer = document.querySelector(\"#\".concat(pageRequestUuid4, \" div[class*=\\\"animate__\\\"]\"));\n animateContainer.addEventListener(\"animationend\", recalculate);\n\n if (window.ResizeObserver) {\n const ro = new ResizeObserver(recalculate);\n ro.observe(element);\n return () => {\n ro.disconnect();\n animateContainer.removeEventListener(\"animationend\", recalculate);\n };\n } else {\n const interval = setInterval(recalculate, 150);\n return () => {\n clearInterval(interval);\n animateContainer.removeEventListener(\"animationend\", recalculate);\n };\n }\n }, [element, name]);\n}\n\nexport { useRenderedHeightsAsCssVars };","import { useBanner } from \"../..\";\nimport { useCallback } from \"react\";\n/**\n * Provide callbacks for all the available button types in our cookie banner:\n *\n * - Accept all\n * - Continue without consent (accept essentials)\n * - Save custom choices (no changes to the current selected groups and services)\n * - Change individual privacy preferences\n */\n\nfunction useBannerButtonCallbacks() {\n const {\n individualPrivacyOpen,\n onSave,\n updateGroupChecked,\n updateCookieChecked,\n groups,\n essentialGroup,\n updateIndividualPrivacyOpen,\n activeAction,\n onClose\n } = useBanner();\n const buttonClickedAll = individualPrivacyOpen ? \"ind_all\" : \"main_all\";\n const buttonClickedEssentials = individualPrivacyOpen ? \"ind_essential\" : \"main_essential\";\n const buttonClickedCloseIcon = individualPrivacyOpen ? \"ind_close_icon\" : \"main_close_icon\";\n const buttonClickedCustom = individualPrivacyOpen ? \"ind_custom\" : \"main_custom\";\n const result = {\n buttonClickedAll,\n buttonClickedEssentials,\n buttonClickedCloseIcon,\n buttonClickedCustom,\n acceptAll: useCallback(() => {\n groups.forEach(g => updateGroupChecked(g.id, true));\n onSave(false, buttonClickedAll);\n }, [buttonClickedAll]),\n\n /**\n * This includes the complete \"Essential\" group + legal basis = legitimate interests.\n */\n acceptEssentials: useCallback((isCloseIcon = false) => {\n groups.forEach(({\n slug,\n id,\n items\n }) => {\n if (slug === essentialGroup) {\n updateGroupChecked(id, true);\n } else {\n for (const {\n legalBasis,\n id: cookieId\n } of items) {\n updateCookieChecked(id, cookieId, legalBasis === \"legitimate-interest\");\n }\n }\n });\n onSave(false, isCloseIcon ? buttonClickedCloseIcon : buttonClickedEssentials);\n }, [buttonClickedEssentials]),\n acceptIndividual: useCallback(() => onSave(false, buttonClickedCustom), [buttonClickedCustom]),\n openIndividualPrivacy: useCallback(() => {\n updateIndividualPrivacyOpen(true);\n }, [updateIndividualPrivacyOpen])\n };\n return { ...result,\n closeIcon: useCallback(() => {\n if (!activeAction) {\n // If we do not have yet a consent and it shows the banner for the first time,\n // the close icon is equivalent to \"Continue without consent\"\n result.acceptEssentials(true);\n } else {\n onClose();\n }\n }, [activeAction, onClose, result.acceptEssentials])\n };\n}\n\nexport { useBannerButtonCallbacks };","import { useState, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\n/**\n * Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component.\n *\n * @see https://reactjs.org/docs/portals.html\n */\n\nconst Portal = ({\n children,\n className,\n tag = \"div\",\n renderInContainer\n}) => {\n const [renderIn] = useState(() => {\n const el = document.createElement(tag);\n className && el.classList.add(className);\n return el;\n }); // Append container to `body`\n\n useEffect(() => {\n document.body.appendChild(renderIn);\n return () => {\n document.body.removeChild(renderIn);\n };\n }, []);\n return /*#__PURE__*/createPortal(children, renderInContainer || renderIn);\n};\n\nexport { Portal };","import { useMemo, useRef, Fragment } from \"react\";\nimport { useRect } from \"@reach/rect\";\nimport { usePlainCss } from \"../hooks\";\nimport { Portal, Tooltip } from \".\";\nlet counter = 0;\n/**\n * A portaled close icon creates a close icon rendered to a given container. This allows\n * you to put the close icon on the top right corner of an `overflow:hidden` container and\n * the tooltip gets rendered correctly.\n */\n\nconst CloseIcon = ({\n width,\n color,\n tooltipText,\n framed,\n renderInContainer,\n tooltipAlways,\n onClick,\n thickness = 1\n}) => {\n const idCloseIconNotPortaled = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n const idCloseIconPortaled = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n /**\n * Why two containers for a simple close icon? I need to explain something technical here.\n * Our complete banner/dialog is tainted with `overflow:hidden` due to flickering effects\n * with animate.css etc. We will now create an invisible element with the placeholder,\n * we will then read its positioning (rect) and generate the visible close icon based on this position.\n */\n\n const idCloseIconPlaceholder = useMemo(() => \"react-close-icon-\".concat((counter++).toString(36)), []);\n const ref = useRef();\n const rect = useRect(ref);\n usePlainCss(\"#\".concat(idCloseIconPlaceholder, \", #\").concat(idCloseIconNotPortaled, \" {\\n position: absolute;\\n top: 50%;\\n right: 0;\\n margin-top: calc(\").concat(width, \"px / 2 * -1);\\n display: block;\\n width: \").concat(width, \"px;\\n height: \").concat(width, \"px; \\n pointer-events: none;\\n}\\n\\n#\").concat(idCloseIconNotPortaled, \" {\\n position: absolute !important;\\n}\\n\\n#\").concat(idCloseIconNotPortaled, \", #\").concat(idCloseIconPortaled, \" {\\n cursor: pointer;\\n pointer-events: all;\\n \").concat(framed ? \"outline: rgb(255, 94, 94) solid 5px;\" : \"\", \"\\n}\\n\\n#\").concat(idCloseIconPortaled, \" {\\n position: fixed !important;\\n \").concat(rect ? \"top: \".concat(rect.y, \"px;left: \").concat(rect.x, \"px;display:block;\") : \"display:none;\", \"\\n width: \").concat(width, \"px;\\n height: \").concat(width, \"px;\\n z-index: 99;\\n}\\n#\").concat(idCloseIconPortaled, \":after, #\").concat(idCloseIconNotPortaled, \":after {\\n width: auto !important;\\n white-space: nowrap !important;\\n}\\n#\").concat(idCloseIconPortaled, \">span:before, #\").concat(idCloseIconPortaled, \">span:after,\\n#\").concat(idCloseIconNotPortaled, \">span:before, #\").concat(idCloseIconNotPortaled, \">span:after {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: \").concat(thickness, \"px;\\n height: \").concat(width, \"px;\\n background-color: \").concat(color, \";\\n transform: rotate(45deg) translate(-50%, -50%);\\n transform-origin: top left;\\n transition: all 420ms;\\n content: '';\\n opacity: 0.5;\\n pointer-events: none;\\n}\\n#\").concat(idCloseIconPortaled, \">span:after,\\n#\").concat(idCloseIconNotPortaled, \">span:after {\\n transform: rotate(-45deg) translate(-50%, -50%);\\n}\\n#\").concat(idCloseIconPortaled, \">span:hover:before, #\").concat(idCloseIconPortaled, \">span:hover:after,\\n#\").concat(idCloseIconNotPortaled, \">span:hover:before, #\").concat(idCloseIconNotPortaled, \">span:hover:after {\\n opacity: 1;\\n width: \").concat(thickness + 1, \"px;\\n}\"));\n return renderInContainer ? h(Fragment, null, h(\"div\", {\n id: idCloseIconPlaceholder,\n ref: ref\n }), (rect === null || rect === void 0 ? void 0 : rect.y) > 0 && h(Portal, {\n renderInContainer: renderInContainer\n }, h(Tooltip, {\n title: tooltipText,\n id: idCloseIconPortaled,\n onClick: onClick,\n position: rect.y > 50 ? \"top-left\" : \"left\",\n always: tooltipAlways\n }, h(\"span\", null)))) : h(Tooltip, {\n title: tooltipText,\n id: idCloseIconNotPortaled,\n onClick: onClick,\n position: \"top-left\",\n always: tooltipAlways\n }, h(\"span\", null));\n};\n\nexport { CloseIcon };","import { useBanner, useBannerButtonCallbacks, scaleMobile, CloseIcon, BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER } from \"../../..\";\n\nconst BannerCloseIcon = () => {\n const {\n headerDesign: {\n fontSize,\n fontColor\n },\n texts: {\n acceptEssentials\n },\n mobile,\n activeAction,\n pageRequestUuid4,\n i18n: {\n close,\n closeWithoutSaving\n },\n buttonClicked = \"\"\n } = useBanner();\n const {\n buttonClickedCloseIcon,\n closeIcon\n } = useBannerButtonCallbacks();\n const container = document.getElementById(pageRequestUuid4);\n return h(CloseIcon, {\n width: scaleMobile(mobile, pageRequestUuid4, fontSize),\n color: fontColor,\n tooltipText: activeAction ? activeAction === \"change\" ? closeWithoutSaving : close : acceptEssentials,\n tooltipAlways: (container === null || container === void 0 ? void 0 : container.clientWidth) < BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER,\n framed: buttonClicked === buttonClickedCloseIcon,\n renderInContainer: container,\n onClick: closeIcon\n });\n};\n\nexport { BannerCloseIcon };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, bannerHeaderInlineStyleContainer, bannerHeaderInlineStyle, bannerHeaderInlineStyleLogo, commonInlineStyleHeaderHeadline, BannerCloseIcon } from \"../../..\";\nimport { forwardRef } from \"react\"; // eslint-disable-next-line react/display-name\n\nconst BannerHeader = /*#__PURE__*/forwardRef((_, ref) => {\n const banner = useBanner();\n const {\n headerDesign: {\n logo,\n logoRetina\n },\n decision: {\n showCloseIcon\n },\n texts: {\n headline\n },\n activeAction,\n individualPrivacyOpen,\n individualTexts,\n i18n: {\n headerTitlePrivacyPolicyHistory\n }\n } = banner; // Calculate logo\n\n const useRetina = logoRetina && !(logo !== null && logo !== void 0 && logo.endsWith(\".svg\")) && window.devicePixelRatio > 1;\n const useLogo = useRetina ? logoRetina : logo; // Calculate headline\n\n const useHeadline = individualPrivacyOpen ? activeAction === \"history\" ? headerTitlePrivacyPolicyHistory : individualTexts.headline : headline;\n return h(\"div\", _extends({\n ref: ref\n }, bannerHeaderInlineStyleContainer(banner)), h(\"div\", bannerHeaderInlineStyle(banner), !!useLogo && h(\"img\", _extends({\n alt: \"\",\n src: useLogo\n }, bannerHeaderInlineStyleLogo(banner, useRetina))), !!useHeadline && h(\"div\", commonInlineStyleHeaderHeadline(banner, false), useHeadline), (!!showCloseIcon || !!activeAction) && h(BannerCloseIcon, null)));\n});\nexport { BannerHeader };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n ...restDesign\n },\n headerDesign: {\n inheritBg,\n bg,\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const style = {\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, true).map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? restDesign.bg : bg,\n borderRadius: useType === \"dialog\" ? \"\".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px 0 0\") : undefined,\n position: \"sticky\",\n zIndex: 9,\n top: 0\n };\n\n if (useType === \"dialog\" && useBorderWidth > 0) {\n style.borderTop = \"\".concat(useBorderWidth, \"px solid \").concat(borderColor);\n style.borderLeft = style.borderTop;\n style.borderRight = style.borderTop;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-container\",\n style\n };\n}\n\nexport { bannerHeaderInlineStyleContainer };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyle({\n layout: {\n type,\n bannerMaxWidth\n },\n design: {\n textAlign\n },\n headerDesign: {\n inheritTextAlign,\n logo,\n logoPosition,\n ...restHeaderDesign\n },\n texts: {\n headline\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const useTextAlign = inheritTextAlign ? textAlign : restHeaderDesign.textAlign;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header\",\n style: {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\",\n display: \"flex\",\n justifyContent: useTextAlign === \"center\" ? \"center\" : useTextAlign === \"right\" ? \"flex-end\" : undefined,\n textAlign: useTextAlign,\n alignItems: \"center\",\n position: \"relative\",\n flexDirection: logo && headline ? logoPosition === \"left\" ? \"row\" : logoPosition === \"right\" ? \"row-reverse\" : \"column\" : undefined\n }\n };\n}\n\nexport { bannerHeaderInlineStyle };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleLogo({\n headerDesign: {\n logoMaxHeight,\n logoMargin,\n logoFitDim,\n logoRetinaFitDim\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isRetina) {\n const useFitDim = isRetina ? logoRetinaFitDim : logoFitDim;\n const dimStyle = useFitDim ? {\n width: useFitDim[0],\n height: useFitDim[1]\n } : {\n width: \"auto\",\n height: scaleMobile(mobile, pageRequestUuid4, +logoMaxHeight)\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-logo\",\n style: { ...dimStyle,\n margin: scaleMobile(mobile, pageRequestUuid4, logoMargin).map(m => \"\".concat(m, \"px\")).join(\" \") //[logoPosition === \"left\" ? \"marginRight\" : \"marginLeft\"]: logoPosition === \"above\" ? undefined : 15,\n //marginBottom: logoPosition === \"above\" ? 5 : undefined\n\n }\n };\n}\n\nexport { bannerHeaderInlineStyleLogo };","import { useBanner, bannerGroupsInlineStyleTitle, bannerGroupsInlineStyleDescription } from \"../../..\";\n\nconst BannerGroupSectionTitle = ({\n title,\n children\n}) => {\n const banner = useBanner();\n return h(\"div\", bannerGroupsInlineStyleTitle(banner), title, children && h(\"div\", bannerGroupsInlineStyleDescription(banner), children));\n};\n\nexport { BannerGroupSectionTitle };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleTitle({\n group: {\n headlineFontSize,\n headlineFontColor,\n headlineFontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group\",\n style: {\n color: headlineFontColor,\n fontSize: scaleMobile(mobile, pageRequestUuid4, headlineFontSize),\n fontWeight: headlineFontWeight,\n textAlign: \"left\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyleTitle };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleDescription({\n design: {\n fontWeight\n },\n group: {\n descriptionFontColor,\n descriptionFontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group-description\",\n style: {\n color: descriptionFontColor,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +descriptionFontSize),\n fontWeight,\n marginTop: 5\n }\n };\n}\n\nexport { bannerGroupsInlineStyleDescription };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useState } from \"react\";\nimport { commonGroupsInlineStyleLinkMore } from \"../../inlineStyles\";\nimport { useBannerOrBlocker } from \"../../hooks\";\n\nconst CommonLinkMore = ({\n onToggle,\n children,\n showMore,\n hideMore,\n ...rest\n}) => {\n const bannerOrBlocker = useBannerOrBlocker();\n const [isHover, setIsHover] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n return h(Fragment, null, \"\\xA0\\xA0\\u2022\\xA0\\xA0\", h(\"a\", _extends({\n href: \"#\"\n }, commonGroupsInlineStyleLinkMore(bannerOrBlocker, isHover), {\n onClick: e => {\n const newOpen = !isOpen;\n setIsOpen(newOpen);\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(newOpen);\n e.preventDefault();\n },\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false)\n }, rest), isOpen ? hideMore : showMore), isOpen && children);\n};\n\nexport { CommonLinkMore };","import { useCallback } from \"react\";\nimport { useBanner, Cookie } from \"../../..\";\n\nconst BannerCookie = ({\n group,\n cookie\n}) => {\n var _consent$groups;\n\n const {\n id\n } = cookie;\n const banner = useBanner();\n const {\n consent,\n activeAction,\n essentialGroup\n } = banner;\n const isEssentialGroup = essentialGroup === group.slug;\n const isDisabled = isEssentialGroup || activeAction === \"history\";\n const isChecked = isEssentialGroup || (((_consent$groups = consent.groups) === null || _consent$groups === void 0 ? void 0 : _consent$groups[group.id]) || []).some(c => c === id);\n const handleCheckbox = useCallback(() => !isDisabled && banner.updateCookieChecked(group.id, id, !isChecked), [isDisabled, banner, group, id, isChecked]);\n return h(Cookie, {\n cookie: cookie,\n propertyListProps: {\n isEssentialGroup\n },\n checked: isChecked,\n disabled: isDisabled,\n onToggleCheck: handleCheckbox\n });\n};\n\nexport { BannerCookie };","import { useCallback } from \"react\";\nimport { CommonCheckbox, CommonLinkMore, useBanner, bannerGroupsInlineStyleGroup, BannerGroupSectionTitle, BannerCookie } from \"../../..\";\n\nconst BannerGroup = ({\n group\n}) => {\n var _consent$groups$id;\n\n const banner = useBanner();\n const {\n id,\n slug,\n name,\n description,\n items\n } = group;\n const {\n previewCheckboxActiveState,\n consent,\n activeAction,\n essentialGroup,\n individualTexts: {\n showMore,\n hideMore\n }\n } = banner;\n const isEssentialGroup = essentialGroup === slug;\n const isDisabled = isEssentialGroup || activeAction === \"history\";\n const isChecked = previewCheckboxActiveState || isEssentialGroup || !!consent.groups[id];\n const isPartial = !isEssentialGroup && JSON.stringify(items.map(({\n id\n }) => id).sort()) !== JSON.stringify(((_consent$groups$id = consent.groups[id]) === null || _consent$groups$id === void 0 ? void 0 : _consent$groups$id.sort()) || []);\n const handleCheckbox = useCallback(() => !isDisabled && banner.updateGroupChecked(id, !isChecked), [isDisabled, banner, id, isChecked]);\n return h(\"div\", bannerGroupsInlineStyleGroup(banner), h(BannerGroupSectionTitle, {\n title: h(CommonCheckbox, {\n onClick: handleCheckbox,\n isPartial: isPartial,\n isChecked: isChecked,\n isDisabled: isDisabled\n }, name, \" (\", items.length, \")\")\n }, description, !!items && h(CommonLinkMore, {\n showMore: showMore,\n hideMore: hideMore\n }, items.map(cookie => h(BannerCookie, {\n key: cookie.id,\n group: group,\n cookie: cookie\n })))));\n};\n\nexport { BannerGroup };","import { scaleMobile } from \"../..\";\n\nfunction bannerGroupsInlineStyleGroup({\n group: {\n groupBg,\n groupBorderRadius,\n groupBorderColor,\n groupPadding,\n groupBorderWidth,\n groupInheritBg\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useGroupBorderWidth = scaleMobile(mobile, pageRequestUuid4, groupBorderWidth);\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-group\",\n style: {\n background: groupInheritBg ? undefined : groupBg,\n border: useGroupBorderWidth > 0 ? \"\".concat(useGroupBorderWidth, \"px solid \").concat(groupBorderColor) : undefined,\n padding: scaleMobile(mobile, pageRequestUuid4, groupPadding).map(p => \"\".concat(p, \"px\")).join(\" \"),\n borderRadius: +groupBorderRadius,\n textAlign: \"left\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyleGroup };","import { scaleMobile, useBanner, bannerGroupsInlineStyle, BannerGroup } from \"../../..\";\nimport { Fragment } from \"react\";\n\nconst BannerGroupList = () => {\n const banner = useBanner();\n const {\n groups,\n group: {\n groupSpacing\n },\n mobile,\n pageRequestUuid4\n } = banner;\n const useGroups = groups.filter(({\n items\n }) => items.length);\n return h(\"div\", bannerGroupsInlineStyle(banner), useGroups.map((group, index) => h(Fragment, {\n key: group.id\n }, h(BannerGroup, {\n key: group.id,\n group: group\n }), index !== useGroups.length - 1 && h(\"div\", {\n style: {\n height: scaleMobile(mobile, pageRequestUuid4, +groupSpacing)\n }\n }))));\n};\n\nexport { BannerGroupList };","function bannerGroupsInlineStyle({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-groups\",\n style: {\n marginTop: 10,\n clear: \"both\"\n }\n };\n}\n\nexport { bannerGroupsInlineStyle };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { Fragment, useCallback } from \"react\";\nimport { useBanner } from \"../../../contexts\";\nimport { bannerInlineStyleBodyDottedGroupItem, bannerInlineStyleBodyDottedGroupBullet } from \"../../../inlineStyles\";\nimport { CommonCheckbox } from \"../..\";\n\nconst BannerDottedGroup = ({\n group: {\n id,\n slug,\n name\n }\n}) => {\n const banner = useBanner();\n const {\n decision: {\n groupsFirstView\n },\n design: {\n fontSize\n },\n consent,\n essentialGroup\n } = banner;\n const isPro = process.env.PLUGIN_CTX === \"pro\";\n const isEssentialGroup = essentialGroup === slug;\n const isChecked = isEssentialGroup || !!consent.groups[id];\n const handleCheckbox = useCallback(() => isPro && groupsFirstView && !isEssentialGroup && banner.updateGroupChecked(id, !isChecked), [isPro, isEssentialGroup, banner, id, isChecked, groupsFirstView]);\n return h(\"span\", _extends({\n key: name\n }, bannerInlineStyleBodyDottedGroupItem(banner)), h(\"span\", null, isPro && groupsFirstView ? h(CommonCheckbox, {\n onClick: handleCheckbox,\n isChecked: isChecked,\n isDisabled: isEssentialGroup,\n fontSize: fontSize\n }) : h(Fragment, null, h(\"strong\", bannerInlineStyleBodyDottedGroupBullet(banner), \"\\u25CF\"), \"\\xA0\"), h(\"span\", {\n style: {\n verticalAlign: \"middle\",\n cursor: groupsFirstView ? \"pointer\" : undefined\n },\n onClick: handleCheckbox\n }, name)));\n};\n\nexport { BannerDottedGroup };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyDottedGroupItem({\n design: {\n fontSize\n },\n bodyDesign: {\n dottedGroupsInheritFontSize,\n dottedGroupsFontSize\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: undefined,\n style: {\n paddingRight: 10,\n fontSize: scaleMobile(mobile, pageRequestUuid4, dottedGroupsInheritFontSize ? +fontSize : +dottedGroupsFontSize),\n whiteSpace: \"nowrap\",\n display: \"inline-block\"\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroupItem };","function bannerInlineStyleBodyDottedGroupBullet({\n bodyDesign: {\n dottedGroupsBulletColor\n }\n}) {\n return {\n className: undefined,\n style: {\n color: dottedGroupsBulletColor\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroupBullet };","import { BannerDottedGroup } from \".\";\nimport { useBanner, bannerInlineStyleBodyDottedGroups } from \"../../..\";\n\nconst BannerDottedGroupList = () => {\n const banner = useBanner();\n const {\n groups,\n decision: {\n showGroups\n }\n } = banner;\n return showGroups ? h(\"div\", bannerInlineStyleBodyDottedGroups(banner), groups.filter(({\n items\n }) => !!items.length).map(group => h(BannerDottedGroup, {\n key: group.id,\n group: group\n }))) : null;\n};\n\nexport { BannerDottedGroupList };","function bannerInlineStyleBodyDottedGroups({\n customCss: {\n antiAdBlocker\n }\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-dotted-groups\",\n style: {\n marginTop: 10,\n lineBreak: \"anywhere\",\n lineHeight: 2\n }\n };\n}\n\nexport { bannerInlineStyleBodyDottedGroups };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, bannerInlineStyleHistorySelect, bannerInlineStyleHistorySelectOption } from \"../../..\";\nimport { useMemo } from \"react\";\nimport { Fragment, useState, useEffect } from \"react\";\nconst SELECT_NONE = -1;\n\nconst BannerHistorySelect = () => {\n const banner = useBanner();\n const [selectedId, setSelectedId] = useState(SELECT_NONE);\n const {\n activeAction,\n history,\n selectHistoryEntry,\n i18n: {\n historyLabel,\n historySelectNone\n }\n } = banner;\n const selectedHistoryItem = useMemo(() => {\n var _history$filter;\n\n return history === null || history === void 0 ? void 0 : (_history$filter = history.filter(({\n id\n }) => id === selectedId)) === null || _history$filter === void 0 ? void 0 : _history$filter[0];\n }, [selectedId]); // Reset select after exit history dialog\n\n useEffect(() => {\n if (!activeAction) {\n setSelectedId(SELECT_NONE);\n } else if (activeAction === \"history\" && history !== null && history !== void 0 && history.length) {\n setSelectedId(history[0].id);\n }\n }, [activeAction, history]); // History can only contain my data, so we can pick the first entry for the history\n\n const uuid = selectedHistoryItem === null || selectedHistoryItem === void 0 ? void 0 : selectedHistoryItem.uuid;\n const optionStyle = bannerInlineStyleHistorySelectOption(banner);\n return h(Fragment, null, historyLabel, \"\\xA0\", h(\"select\", _extends({}, bannerInlineStyleHistorySelect(banner), {\n disabled: !(history !== null && history !== void 0 && history.length),\n value: selectedId,\n onChange: e => {\n const value = +e.target.value;\n history.forEach(({\n id,\n decision,\n groups,\n tcf\n }) => {\n if (id === value) {\n setSelectedId(id);\n selectHistoryEntry(groups, decision, tcf);\n }\n });\n }\n }), (history === null || history === void 0 ? void 0 : history.length) > 0 ? history.map(({\n id,\n isDoNotTrack,\n isUnblock,\n isForwarded,\n created\n }) => h(\"option\", _extends({\n key: id,\n value: id\n }, optionStyle), new Date(created).toLocaleString(document.documentElement.lang), isDoNotTrack ? \" (Do Not Track)\" : \"\", isUnblock ? \" (Content Blocker)\" : \"\", isForwarded ? \" (Consent Forwarding)\" : \"\")) : h(\"option\", _extends({\n value: SELECT_NONE\n }, optionStyle), historySelectNone)), !!uuid && h(\"div\", {\n style: {\n opacity: 0.5,\n marginTop: 5\n }\n }, \"UUID: \", uuid));\n};\n\nexport { BannerHistorySelect };","function bannerInlineStyleHistorySelectOption({\n design: {\n bg\n }\n}) {\n return {\n className: undefined,\n style: {\n background: bg\n }\n };\n}\n\nexport { bannerInlineStyleHistorySelectOption };","import { calculateRgba } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleHistorySelect({\n design: {\n fontSize,\n fontColor\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-history-select\",\n style: {\n fontSize: scaleMobile(mobile, pageRequestUuid4, descriptionInheritFontSize ? +fontSize : +descriptionFontSize),\n background: \"transparent\",\n border: 0,\n color: fontColor,\n borderBottom: \"1px solid \".concat(calculateRgba(fontColor, 50))\n }\n };\n}\n\nexport { bannerInlineStyleHistorySelect };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerButtonsInlineStyleCommon({\n name,\n order,\n type,\n borderRadius,\n bg,\n hoverBg,\n fontSize,\n textAlign,\n fontColor,\n fontWeight,\n hoverFontColor,\n borderWidth,\n borderColor,\n hoverBorderColor,\n padding,\n antiAdBlocker,\n pageRequestUuid4\n}, mobile, isHover, framed, isTwoButtonRowLayout) {\n const fullWidth = !isTwoButtonRowLayout || order > 1;\n const marginLeft = isTwoButtonRowLayout && order === 1 ? 5 : 0;\n const marginRight = isTwoButtonRowLayout && order === 0 ? 5 : 0;\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, +borderWidth);\n const style = {\n textDecoration: type === \"link\" ? \"underline\" : \"none\",\n borderRadius: +borderRadius,\n cursor: type === \"button\" ? \"pointer\" : undefined,\n backgroundColor: type === \"button\" ? isHover ? hoverBg : bg : undefined,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n fontWeight,\n color: isHover ? hoverFontColor : fontColor,\n transition: \"background-color 250ms, color 250ms, border-color 250ms\",\n margin: \"0 \".concat(marginRight, \"px \").concat(scaleMobile(mobile, pageRequestUuid4, 10, undefined, true), \"px \").concat(marginLeft, \"px\"),\n border: type === \"button\" && useBorderWidth > 0 ? \"\".concat(useBorderWidth, \"px solid \").concat(isHover ? hoverBorderColor : borderColor) : undefined,\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, type !== \"button\").map(p => \"\".concat(p, \"px\")).join(\" \"),\n overflow: \"hidden\",\n outline: framed ? \"rgb(255, 94, 94) solid 5px\" : undefined,\n flex: fullWidth ? \"1 1 100%\" : \"0 0 calc(50% - \".concat(marginLeft + marginRight, \"px)\"),\n display: \"flex\",\n alignItems: \"center\",\n // text-align is not supported within a `display: flex`\n justifyContent: textAlign === \"right\" ? \"flex-end\" : textAlign === \"center\" ? \"center\" : \"left\",\n textAlign,\n order\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-btn-\".concat(name),\n style\n };\n}\n\nexport { bannerButtonsInlineStyleCommon };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptEssentials({\n isTcf,\n decision: {\n acceptEssentials\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptEssentialsFontSize,\n acceptEssentialsBg,\n acceptEssentialsTextAlign,\n acceptEssentialsBorderColor,\n acceptEssentialsPadding,\n acceptEssentialsBorderWidth,\n acceptEssentialsFontColor,\n acceptEssentialsFontWeight,\n acceptEssentialsHoverBg,\n acceptEssentialsHoverFontColor,\n acceptEssentialsHoverBorderColor,\n // For two-button row layout use all dimensional properties from \"Accept all\"\n // For TCF use font size and font weight from \"Accept all\"\n acceptAllFontWeight,\n acceptAllFontSize,\n acceptAllPadding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-essentials\",\n order,\n type: acceptEssentials,\n borderRadius,\n bg: acceptEssentialsBg,\n hoverBg: acceptEssentialsHoverBg,\n fontSize: isTwoButtonRowLayout || isTcf ? acceptAllFontSize : acceptEssentialsFontSize,\n textAlign: acceptEssentialsTextAlign,\n fontColor: acceptEssentialsFontColor,\n fontWeight: isTcf ? acceptAllFontWeight : acceptEssentialsFontWeight,\n hoverFontColor: acceptEssentialsHoverFontColor,\n borderWidth: acceptEssentialsBorderWidth,\n borderColor: acceptEssentialsBorderColor,\n hoverBorderColor: acceptEssentialsHoverBorderColor,\n padding: isTwoButtonRowLayout ? acceptAllPadding : acceptEssentialsPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptEssentials };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptIndividual({\n decision: {\n acceptIndividual\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptIndividualFontSize,\n acceptIndividualBg,\n acceptIndividualTextAlign,\n acceptIndividualBorderColor,\n acceptIndividualPadding,\n acceptIndividualBorderWidth,\n acceptIndividualFontColor,\n acceptIndividualFontWeight,\n acceptIndividualHoverBg,\n acceptIndividualHoverFontColor,\n acceptIndividualHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-individual\",\n order,\n type: acceptIndividual,\n borderRadius,\n bg: acceptIndividualBg,\n hoverBg: acceptIndividualHoverBg,\n fontSize: acceptIndividualFontSize,\n textAlign: acceptIndividualTextAlign,\n fontColor: acceptIndividualFontColor,\n fontWeight: acceptIndividualFontWeight,\n hoverFontColor: acceptIndividualHoverFontColor,\n borderWidth: acceptIndividualBorderWidth,\n borderColor: acceptIndividualBorderColor,\n hoverBorderColor: acceptIndividualHoverBorderColor,\n padding: acceptIndividualPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptIndividual };","import { bannerButtonsInlineStyleCommon } from \"./\";\n\nfunction bannerButtonsInlineStyleSave({\n isTcf,\n layout: {\n borderRadius\n },\n bodyDesign: {\n // For TCF use font size and font weight from \"Accept all\"\n acceptAllFontWeight,\n acceptAllFontSize\n },\n saveButton: {\n type,\n fontSize,\n bg,\n textAlign,\n borderColor,\n padding,\n borderWidth,\n fontColor,\n fontWeight,\n hoverBg,\n hoverFontColor,\n hoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-individual-save\",\n order,\n type,\n borderRadius,\n bg,\n hoverBg,\n fontSize: isTcf ? acceptAllFontSize : fontSize,\n textAlign,\n fontColor,\n fontWeight: isTcf ? acceptAllFontWeight : fontWeight,\n hoverFontColor,\n borderWidth: borderWidth,\n borderColor,\n hoverBorderColor,\n padding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleSave };","import { bannerButtonsInlineStyleCommon } from \".\";\n\nfunction bannerButtonsInlineStyleAcceptAll({\n decision: {\n acceptAll\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptAllFontSize,\n acceptAllBg,\n acceptAllTextAlign,\n acceptAllBorderColor,\n acceptAllPadding,\n acceptAllBorderWidth,\n acceptAllFontColor,\n acceptAllFontWeight,\n acceptAllHoverBg,\n acceptAllHoverFontColor,\n acceptAllHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}, isHover, framed, order, isTwoButtonRowLayout) {\n return bannerButtonsInlineStyleCommon({\n name: \"accept-all\",\n order,\n type: acceptAll,\n borderRadius,\n bg: acceptAllBg,\n hoverBg: acceptAllHoverBg,\n fontSize: acceptAllFontSize,\n textAlign: acceptAllTextAlign,\n fontColor: acceptAllFontColor,\n fontWeight: acceptAllFontWeight,\n hoverFontColor: acceptAllHoverFontColor,\n borderWidth: acceptAllBorderWidth,\n borderColor: acceptAllBorderColor,\n hoverBorderColor: acceptAllHoverBorderColor,\n padding: acceptAllPadding,\n antiAdBlocker,\n pageRequestUuid4\n }, mobile, isHover, framed, isTwoButtonRowLayout);\n}\n\nexport { bannerButtonsInlineStyleAcceptAll };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback } from \"react\";\nimport { useState, useMemo } from \"react\";\nimport { isIE, AsciiSpinner, useBanner, bannerButtonsInlineStyleAcceptAll, bannerButtonsInlineStyleAcceptEssentials, bannerButtonsInlineStyleAcceptIndividual, bannerButtonsInlineStyleSave } from \"../../../..\";\n\nconst BannerButton = ({\n inlineStyle,\n type,\n onClick,\n children,\n framed,\n busyOnClick,\n order\n}) => {\n if (type === \"hide\") {\n return null;\n }\n\n const [isBusy, setIsBusy] = useState(false);\n const handleOnClick = useCallback(() => {\n if (!isBusy) {\n busyOnClick && setIsBusy(true);\n onClick === null || onClick === void 0 ? void 0 : onClick();\n }\n }, [onClick, isBusy, busyOnClick]);\n const [isHover, setIsHover] = useState(false);\n const banner = useBanner();\n const {\n individualPrivacyOpen,\n decision: {\n acceptAll,\n acceptEssentials\n },\n bodyDesign: {\n acceptAllOneRowLayout,\n acceptEssentialsUseAcceptAll\n }\n } = banner;\n const useAcceptEssentials = acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials;\n const interactionAttr = {\n onClick: handleOnClick,\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false),\n style: {\n cursor: \"pointer\"\n }\n };\n const useStyleFn = useMemo(() => {\n switch (inlineStyle) {\n case \"acceptEssentials\":\n return bannerButtonsInlineStyleAcceptEssentials;\n\n case \"acceptIndividual\":\n return bannerButtonsInlineStyleAcceptIndividual;\n\n case \"save\":\n return bannerButtonsInlineStyleSave;\n\n default:\n return bannerButtonsInlineStyleAcceptAll;\n }\n }, [inlineStyle]); // Also create a spacing `height:10` container because `marginBottom` causes issues with `position:sticky`\n\n return h(\"div\", _extends({}, type === \"button\" ? interactionAttr : {}, useStyleFn(banner, isHover, framed, order, // IE does not support flex with calc()\n isIE() || acceptAll === \"hide\" || useAcceptEssentials === \"hide\" || individualPrivacyOpen || order > 1 ? false : acceptAllOneRowLayout)), h(\"span\", type === \"link\" ? interactionAttr : {}, isBusy ? h(AsciiSpinner, null) : children));\n};\n\nexport { BannerButton };","function isIE() {\n return /MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1;\n}\n\nexport { isIE };","import { Fragment, useMemo } from \"react\";\nimport { useBanner, useBannerButtonCallbacks, BannerButton } from \"../../..\";\n\nconst BannerButtonList = () => {\n const banner = useBanner();\n const {\n activeAction,\n bodyDesign: {\n acceptEssentialsUseAcceptAll,\n acceptAllOneRowLayout\n },\n decision: {\n showGroups,\n groupsFirstView,\n saveButton,\n acceptAll,\n acceptEssentials,\n acceptIndividual,\n buttonOrder: buttonOrderString\n },\n texts: {\n acceptAll: acceptAllText,\n acceptEssentials: acceptEssentialsText,\n acceptIndividual: acceptIndividualText\n },\n saveButton: {\n type: saveButtonType,\n useAcceptAll: saveButtonUseAcceptAll\n },\n individualTexts: {\n save\n },\n individualPrivacyOpen,\n didGroupFirstChange,\n productionNotice,\n buttonClicked = \"\"\n } = banner; // Calculate order of the buttons depending on a string like `all,essential,save,individual`\n\n const {\n all: buttonOrderAll,\n essential: buttonOrderEssential,\n individual: buttonOrderIndividual,\n save: buttonOrderSave\n } = useMemo(() => {\n const buttonOrder = buttonOrderString.split(\",\");\n const buttonToOrder = buttonOrder.reduce((previous, curr) => {\n previous[curr] = buttonOrder.indexOf(curr);\n return previous;\n }, {});\n const orderToButton = buttonOrder.reduce((previous, curr) => {\n previous[buttonOrder.indexOf(curr)] = curr;\n return previous;\n }, {}); // If one-row layout is enabled, reverse the first two orders so the first button gets moved to the right\n\n if (acceptAllOneRowLayout) {\n buttonToOrder[orderToButton[0]] = 1;\n buttonToOrder[orderToButton[1]] = 0;\n }\n\n return buttonToOrder;\n }, [buttonOrderString, acceptAllOneRowLayout]);\n const isPro = process.env.PLUGIN_CTX === \"pro\";\n const {\n buttonClickedAll,\n buttonClickedEssentials,\n buttonClickedCustom,\n acceptAll: handleAll,\n acceptEssentials: handleEssentials,\n acceptIndividual: handleIndividual,\n openIndividualPrivacy\n } = useBannerButtonCallbacks(); // We expect a reload of the page for the \"change\" action (keeps also dialog open)\n\n const busyOnClick = activeAction === \"change\";\n const groupsFirstViewEnabled = showGroups && groupsFirstView;\n return h(Fragment, null, !individualPrivacyOpen && isPro && groupsFirstViewEnabled && saveButton === \"afterChangeAll\" && didGroupFirstChange ? h(BannerButton, {\n onClick: handleIndividual,\n type: acceptAll,\n inlineStyle: \"acceptAll\",\n framed: buttonClicked === buttonClickedCustom,\n busyOnClick: busyOnClick,\n order: buttonOrderAll\n }, save) : h(BannerButton, {\n onClick: handleAll,\n type: acceptAll,\n inlineStyle: \"acceptAll\",\n framed: buttonClicked === buttonClickedAll,\n busyOnClick: busyOnClick,\n order: buttonOrderAll\n }, acceptAllText), activeAction !== \"change\" && h(BannerButton, {\n onClick: handleEssentials,\n type: acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials,\n inlineStyle: acceptEssentialsUseAcceptAll ? \"acceptAll\" : \"acceptEssentials\",\n framed: buttonClicked === buttonClickedEssentials,\n busyOnClick: busyOnClick,\n order: buttonOrderEssential\n }, acceptEssentialsText), (individualPrivacyOpen || isPro && groupsFirstViewEnabled && (saveButton === \"always\" || saveButton === \"afterChange\" && didGroupFirstChange)) && h(BannerButton, {\n onClick: handleIndividual,\n type: saveButtonUseAcceptAll ? acceptAll : saveButtonType,\n inlineStyle: saveButtonUseAcceptAll ? \"acceptAll\" : \"save\",\n framed: buttonClicked === buttonClickedCustom,\n busyOnClick: busyOnClick,\n order: buttonOrderSave\n }, save), !individualPrivacyOpen && h(BannerButton, {\n type: acceptIndividual,\n onClick: openIndividualPrivacy,\n inlineStyle: \"acceptIndividual\",\n framed: buttonClicked.startsWith(\"ind_\"),\n busyOnClick: busyOnClick,\n order: buttonOrderIndividual\n }, acceptIndividualText), productionNotice);\n};\n\nexport { BannerButtonList };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBanner, BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER, usePlainCss, scaleMobile, bannerInlineStylesRightSide, bannerInlineStylesLeftSide, bannerInlineStyleBody, bannerInlineStyleBodyContainer, bannerInlineStyleBodyDescription, commonInlineStyleBodyTeaching, commonInlineStyleBodyTeachingsSeparator, BannerDottedGroupList, BannerTcfStackList, BannerGroupList, BannerTcfGroupList, BannerButtonList, BannerHistorySelect, useCommonTeachings } from \"../../..\";\nimport { useMemo, Fragment } from \"react\";\n\nconst BannerBody = ({\n leftSideContainerRef,\n rightSideContainerRef\n}) => {\n var _document$getElementB;\n\n const banner = useBanner();\n const {\n layout: {\n type\n },\n mobile,\n bodyDesign: {\n teachingsSeparatorActive\n },\n tcf,\n individualPrivacyOpen,\n activeAction,\n pageRequestUuid4\n } = banner;\n const {\n description,\n teachings\n } = useCommonTeachings(); // Make the content responsive\n\n const leftSideId = \"bnnr-body-leftSide-\".concat(pageRequestUuid4);\n const rightSideId = \"bnnr-body-rightSide-\".concat(pageRequestUuid4);\n const contentId = \"cntnt-\".concat(pageRequestUuid4);\n usePlainCss(\" #\".concat(leftSideId, \" img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n\").concat(((_document$getElementB = document.getElementById(pageRequestUuid4)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.clientWidth) > BANNER_SCALING_WHEN_WINDOW_WIDTH_LOWER ? \"\" : \"#\".concat(leftSideId, \" {\\n float: initial !important;\\n width: auto !important;\\n padding-right: initial !important;\\n \").concat(scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" && !individualPrivacyOpen ? \"padding-bottom: 10px !important;\" : individualPrivacyOpen ? \"padding-top: 10px !important;\" : \"\", \"\\n }\\n\\n #\").concat(contentId, \" {\\n min-height: calc(var(--rendered-height-header) + var(--rendered-height-footer) + var(--rendered-height-rightSideContainer) + 60px);\\n }\\n \\n #\").concat(rightSideId, \" {\\n float: initial !important;\\n width: auto !important;\\n max-width: initial !important;\\n margin: initial !important;\\n \").concat(individualPrivacyOpen ? \"padding-bottom: 5px !important;\" : \"padding-top: 10px !important;\", \"\\n position: sticky;\\n }\"))); // Calculate the body content depending on TCF availability and if second view got opened\n\n const stackOrGroups = useMemo(() => {\n if (process.env.IS_TCF === \"1\" && tcf) {\n return individualPrivacyOpen ? h(BannerTcfGroupList, null) : h(BannerTcfStackList, null);\n } else {\n return individualPrivacyOpen ? h(BannerGroupList, null) : h(BannerDottedGroupList, null);\n }\n }, [individualPrivacyOpen, tcf]);\n const leftSide = h(\"div\", _extends({\n ref: leftSideContainerRef,\n key: \"leftSide\",\n id: leftSideId\n }, bannerInlineStylesLeftSide(banner)), h(\"div\", bannerInlineStyleBodyDescription(banner), activeAction === \"history\" ? h(BannerHistorySelect, null) : h(Fragment, null, h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: description\n }\n }), teachings.length > 0 && h(Fragment, null, teachingsSeparatorActive && h(\"div\", null, h(\"span\", commonInlineStyleBodyTeachingsSeparator(banner))), teachings.map(teaching => h(\"span\", _extends({\n key: teaching\n }, commonInlineStyleBodyTeaching(banner), {\n dangerouslySetInnerHTML: {\n __html: teaching\n }\n })))))), stackOrGroups);\n const rightSide = activeAction === \"history\" ? h(\"div\", {\n ref: rightSideContainerRef\n }) : h(\"div\", _extends({\n ref: rightSideContainerRef,\n key: \"rightSide\",\n id: rightSideId\n }, bannerInlineStylesRightSide(banner)), h(BannerButtonList, null));\n return h(\"div\", bannerInlineStyleBodyContainer(banner), h(\"div\", bannerInlineStyleBody(banner), individualPrivacyOpen ? [rightSide, leftSide] : [leftSide, rightSide], h(\"div\", {\n style: {\n clear: \"both\"\n }\n })));\n};\n\nexport { BannerBody };","import { scaleMobile } from \"../../scale\";\nconst BUTTONS_WIDTH = 300;\n\nfunction bannerInlineStylesLeftSide({\n layout: {\n type\n },\n bodyDesign: {\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n activeAction,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const usePadding = scaleMobile(mobile, pageRequestUuid4, padding);\n const style = {\n float: useType === \"banner\" && activeAction !== \"history\" ? \"left\" : undefined,\n width: useType === \"banner\" && activeAction !== \"history\" ? \"calc(100% - \".concat(BUTTONS_WIDTH, \"px)\") : undefined,\n paddingRight: useType === \"banner\" ? 20 : undefined,\n paddingTop: +usePadding[0],\n paddingBottom: useType === \"banner\" || individualPrivacyOpen ? +usePadding[2] : 0\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-left\",\n style\n };\n}\n\nexport { BUTTONS_WIDTH, bannerInlineStylesLeftSide };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyDescription({\n design: {\n fontSize\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n individualLayout: {\n descriptionTextAlign\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-description\",\n style: {\n lineHeight: 1.5,\n fontSize: scaleMobile(mobile, pageRequestUuid4, descriptionInheritFontSize ? +fontSize : +descriptionFontSize),\n textAlign: individualPrivacyOpen ? descriptionTextAlign : undefined\n }\n };\n}\n\nexport { bannerInlineStyleBodyDescription };","import { hexToRgb } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\nimport { BUTTONS_WIDTH } from \"./leftSide\";\n\nfunction bannerInlineStylesRightSide({\n layout: {\n type,\n dialogMaxWidth\n },\n design: {\n borderWidth,\n bg,\n fontColor\n },\n headerDesign,\n footerDesign,\n bodyDesign: {\n padding\n },\n individualLayout: {\n inheritDialogMaxWidth\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const usePadding = scaleMobile(mobile, pageRequestUuid4, padding, undefined, true);\n const {\n r,\n g,\n b\n } = hexToRgb(fontColor);\n const width = useType === \"dialog\" ? +dialogMaxWidth - usePadding[1] - usePadding[3] - useBorderWidth * 2 : BUTTONS_WIDTH;\n const style = {\n background: bg,\n paddingTop: useType === \"banner\" || individualPrivacyOpen ? +usePadding[0] : 10,\n paddingBottom: !individualPrivacyOpen ? +usePadding[2] : 10,\n float: useType === \"banner\" || individualPrivacyOpen ? \"right\" : undefined,\n maxWidth: width,\n width,\n margin: useType === \"dialog\" && individualPrivacyOpen && !inheritDialogMaxWidth ? \"0 0 10px 10px\" : undefined,\n // position: individualPrivacyOpen ? \"sticky\" : undefined, This is done by `body.tsx#usePlainCss`\n position: individualPrivacyOpen ? undefined : \"sticky\",\n [individualPrivacyOpen ? \"top\" : \"bottom\"]: individualPrivacyOpen ? \"calc(var(--rendered-height-header) + \".concat(scaleMobile(mobile, pageRequestUuid4, headerDesign.borderWidth), \"px)\") : \"calc(var(--rendered-height-footer) + \".concat(scaleMobile(mobile, pageRequestUuid4, footerDesign.borderWidth), \"px)\"),\n zIndex: 1,\n // Avoid overlapping the Checkbox Icon\n display: \"flex\",\n flexWrap: \"wrap\",\n transition: \"box-shadow ease-in-out .1s\",\n [\"--boxShadowShowScroll\"]: \"0 -15px 15px -15px rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", 0.3)\")\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-right\",\n style\n };\n}\n\nexport { bannerInlineStylesRightSide };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBodyContainer({\n layout: {\n type\n },\n design: {\n bg,\n borderWidth,\n borderColor\n },\n bodyDesign: {\n padding\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const style = {\n background: bg,\n // Top / Bottom padding is applied in leftSide and rightSide containers\n padding: scaleMobile(mobile, pageRequestUuid4, padding).map((p, i) => \"\".concat([0, 2].indexOf(i) > -1 ? 0 : p, \"px\")).join(\" \"),\n lineHeight: 1.4\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useBorderWidth > 0) {\n style.borderLeft = \"\".concat(useBorderWidth, \"px solid \").concat(borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body-container\",\n style\n };\n}\n\nexport { bannerInlineStyleBodyContainer };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerInlineStyleBody({\n layout: {\n type,\n bannerMaxWidth\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n individualPrivacyOpen,\n pageRequestUuid4\n}) {\n const style = {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\"\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body\",\n style\n };\n}\n\nexport { bannerInlineStyleBody };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { forwardRef, useCallback } from \"react\";\nimport { useBanner, bannerFooterInlineStyle, bannerFooterInlineStyleContainer, FooterLink, useCommonFooterLinks } from \"../../..\"; // eslint-disable-next-line react/display-name\n\nconst BannerFooter = /*#__PURE__*/forwardRef((_, ref) => {\n const banner = useBanner();\n const {\n isTcf,\n layout: {\n type\n },\n individualPrivacyOpen,\n updateIndividualPrivacyOpen,\n onClose,\n i18n: {\n tcf\n },\n isConsentRecord\n } = banner;\n const handleTcfVendorList = process.env.IS_TCF === \"1\" && isTcf ? useCallback(e => {\n updateIndividualPrivacyOpen(true);\n e.preventDefault();\n }, [updateIndividualPrivacyOpen]) : undefined;\n const handleClose = useCallback(e => {\n onClose();\n e.preventDefault();\n }, [onClose]);\n const {\n rows: links,\n render: renderLinks\n } = useCommonFooterLinks({\n onClose: isConsentRecord ? handleClose : undefined,\n putPoweredByLinkInRow: type === \"banner\" ? 0 : 1,\n row1: [process.env.IS_TCF === \"1\" && isTcf && !individualPrivacyOpen && h(FooterLink, {\n href: \"#\",\n onClick: handleTcfVendorList,\n key: \"vendorList\"\n }, tcf.vendorList)]\n });\n return h(\"div\", _extends({\n ref: ref\n }, bannerFooterInlineStyleContainer(banner)), h(\"div\", bannerFooterInlineStyle(banner), renderLinks(links)));\n});\nexport { BannerFooter };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyleContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design,\n footerDesign: {\n inheritBg,\n bg,\n inheritTextAlign,\n textAlign,\n padding,\n fontSize,\n fontColor,\n fontWeight\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n padding: scaleMobile(mobile, pageRequestUuid4, padding, undefined, true).map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? design.bg : bg,\n borderRadius: useType === \"dialog\" ? \"0 0 \".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px\") : undefined,\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n fontWeight,\n color: fontColor,\n textAlign: inheritTextAlign ? design.textAlign : textAlign,\n position: \"sticky\",\n bottom: 0,\n zIndex: 1\n };\n\n if (useType === \"dialog\" && useBorderWidth > 0) {\n style.borderBottom = \"\".concat(useBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderLeft = style.borderBottom;\n style.borderRight = style.borderBottom;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-container\",\n style\n };\n}\n\nexport { bannerFooterInlineStyleContainer };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyle({\n layout: {\n type,\n bannerMaxWidth\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const style = {\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"banner\" ? +(individualPrivacyOpen && !individualLayout.inheritBannerMaxWidth ? individualLayout.bannerMaxWidth : bannerMaxWidth) : undefined,\n margin: \"auto\",\n lineHeight: 1.8\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer\",\n style\n };\n}\n\nexport { bannerFooterInlineStyle };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { scaleMobile, useBanner, usePlainCss, useRenderedHeightsAsCssVars, bannerContentInlineStyle, bannerFooterInlineStyleSeparator, bannerHeaderInlineStyleSeparator, BannerHeader, BannerFooter, BannerBody } from \"../../..\";\nimport { Fragment, useState, useRef, useLayoutEffect, useCallback } from \"react\";\n\nconst BannerContent = () => {\n const banner = useBanner();\n const {\n layout: {\n type,\n dialogBorderRadius\n },\n decision: {\n acceptAll,\n acceptEssentials,\n showCloseIcon\n },\n mobile,\n individualPrivacyOpen,\n design: {\n bg\n },\n bodyDesign: {\n teachingsFontColor,\n acceptEssentialsUseAcceptAll\n },\n activeAction,\n pageRequestUuid4\n } = banner;\n const rightSideId = \"bnnr-body-rightSide-\".concat(pageRequestUuid4);\n const id = \"cntnt-\".concat(pageRequestUuid4);\n const ref = useRef();\n const {\n current: currentRef\n } = ref;\n const useAcceptEssentials = acceptEssentialsUseAcceptAll ? acceptAll : acceptEssentials;\n let showHeader = true;\n\n if (mobile.hideHeader && !activeAction && !individualPrivacyOpen && (useAcceptEssentials === \"hide\" ? !showCloseIcon : true)) {\n showHeader = scaleMobile(mobile, pageRequestUuid4, showHeader, false);\n } // Enable box shadow effect for the scrolling behavior\n\n\n const [showScrollBoxShadow, setShowScrollBoxShadow] = useState(false);\n const updateShowScrollBoxShadow = useCallback(() => {\n if (currentRef) {\n const {\n clientHeight,\n scrollHeight,\n scrollTop,\n offsetHeight\n } = currentRef;\n const hasScrollbar = clientHeight < scrollHeight;\n const scrolledToBottom = Math.ceil(scrollTop + offsetHeight) >= scrollHeight;\n const result = hasScrollbar && !scrolledToBottom && !individualPrivacyOpen;\n\n if (showScrollBoxShadow !== result) {\n setShowScrollBoxShadow(result);\n }\n }\n }, [currentRef, individualPrivacyOpen, showScrollBoxShadow]);\n updateShowScrollBoxShadow(); // The function gets called for each resize in `Banner` component\n\n useLayoutEffect(() => {\n if (currentRef) {\n currentRef.addEventListener(\"scroll\", updateShowScrollBoxShadow);\n return () => currentRef.removeEventListener(\"scroll\", updateShowScrollBoxShadow);\n } // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\n return () => {};\n }, [currentRef, updateShowScrollBoxShadow]);\n usePlainCss(showScrollBoxShadow ? \"#\".concat(rightSideId, \" {box-shadow:var(--boxShadowShowScroll);}\") : \"\"); // Create custom scrollbar when a border radius is active (https://css-tricks.com/the-current-state-of-styling-scrollbars/)\n\n usePlainCss(navigator.platform === \"Win32\" && type === \"dialog\" && dialogBorderRadius > 0 ? [\"#\".concat(id, \"{overflow:overlay!important;}\"), \"#\".concat(id, \"::-webkit-scrollbar{width:11px;}\"), \"#\".concat(id, \"{scrollbar-width:thin;scrollbar-color:\").concat(teachingsFontColor, \" transparent;}\"), \"#\".concat(id, \"::-webkit-scrollbar-track{background:transparent;}\"), \"#\".concat(id, \"::-webkit-scrollbar-thumb{background-color:\").concat(teachingsFontColor, \";border-radius:\").concat(dialogBorderRadius, \"px;border:3px solid \").concat(bg, \";}\"), \"#\".concat(id, \">div{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}\")].join(\"\\n\") : \"\");\n const headerRef = useRef();\n const footerRef = useRef();\n const rightSideContainerRef = useRef();\n useRenderedHeightsAsCssVars(headerRef.current, \"header\");\n useRenderedHeightsAsCssVars(footerRef.current, \"footer\");\n useRenderedHeightsAsCssVars(rightSideContainerRef.current, \"rightSideContainer\");\n return h(\"div\", _extends({}, bannerContentInlineStyle(banner), {\n ref: ref,\n id: id\n }), showHeader && h(Fragment, null, h(BannerHeader, {\n ref: headerRef\n }), h(\"div\", bannerHeaderInlineStyleSeparator(banner))), h(BannerBody, {\n rightSideContainerRef: rightSideContainerRef\n }), h(\"div\", bannerFooterInlineStyleSeparator(banner)), h(BannerFooter, {\n ref: footerRef\n }));\n};\n\nexport { BannerContent };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerContentInlineStyle({\n layout: {\n type\n },\n customCss: {\n antiAdBlocker\n },\n decision: {\n showCloseIcon\n },\n activeAction,\n individualPrivacyOpen,\n mobile,\n pageRequestUuid4\n}) {\n var _document$getElementB;\n\n const innerHeight = ((_document$getElementB = document.getElementById(pageRequestUuid4)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.clientHeight) || window.innerHeight;\n const mobileMaxHeight = +mobile.maxHeight;\n const useMobileMaxHeight = mobileMaxHeight > innerHeight ? innerHeight : mobileMaxHeight;\n const closeIconDistance = showCloseIcon || activeAction ? 51 : 0;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-content\",\n style: {\n position: \"relative\",\n maxHeight: scaleMobile(mobile, pageRequestUuid4, innerHeight - (type === \"banner\" ? 0 : 20) - closeIconDistance, individualPrivacyOpen ? innerHeight - closeIconDistance : useMobileMaxHeight - closeIconDistance),\n overflow: \"auto\"\n }\n };\n}\n\nexport { bannerContentInlineStyle };","import { scaleMobile } from \"../..\";\n\nfunction bannerHeaderInlineStyleSeparator({\n layout: {\n type\n },\n design,\n headerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useDesignBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n height: scaleMobile(mobile, pageRequestUuid4, +borderWidth),\n background: borderColor,\n position: \"sticky\",\n top: \"var(--rendered-height-header)\",\n zIndex: 9\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useDesignBorderWidth > 0) {\n style.borderLeft = \"\".concat(useDesignBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-separator\",\n style\n };\n}\n\nexport { bannerHeaderInlineStyleSeparator };","import { scaleMobile } from \"../../scale\";\n\nfunction bannerFooterInlineStyleSeparator({\n layout: {\n type\n },\n design,\n footerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, design.borderWidth);\n const style = {\n height: scaleMobile(mobile, pageRequestUuid4, +borderWidth),\n background: borderColor,\n position: \"sticky\",\n bottom: \"var(--rendered-height-footer)\"\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\" && useBorderWidth > 0) {\n style.borderLeft = \"\".concat(useBorderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-separator\",\n style\n };\n}\n\nexport { bannerFooterInlineStyleSeparator };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { bannerContentInlineStyleInner, useBanner, useBannerAnimation, useResettableAnimation } from \"../../..\";\nimport { AnimatedCss } from \"../..\";\nimport { BannerContent } from \".\";\n\nconst BannerAnimatedContent = () => {\n const banner = useBanner();\n const {\n layout: {\n animationInDuration,\n animationOutDuration\n },\n animationVisible\n } = banner;\n const {\n useAnimationIn,\n useAnimationOut\n } = useBannerAnimation()(banner.layout);\n const [stateAnimationIn, stateAnimationInDuration] = useResettableAnimation(useAnimationIn, animationInDuration);\n const [stateAnimationOut, stateAnimationOutDuration] = useResettableAnimation(useAnimationOut === \"none\" ? \"fadeOut\" : useAnimationOut, useAnimationOut === \"none\" ? 0 : animationOutDuration);\n return h(AnimatedCss, _extends({\n animationIn: stateAnimationIn,\n animationInDuration: stateAnimationInDuration,\n animationOut: stateAnimationOut,\n animationOutDuration: stateAnimationOutDuration,\n isVisible: animationVisible\n }, bannerContentInlineStyleInner(banner)), h(BannerContent, null));\n};\n\nexport { BannerAnimatedContent };","import { calculateRgba } from \"../../../utils\";\nimport { scaleMobile } from \"../../scale\";\n\nfunction bannerContentInlineStyleInner({\n layout: {\n type,\n dialogMaxWidth,\n dialogPosition,\n dialogMargin,\n bannerPosition,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n textAlign,\n fontColor,\n fontInheritFamily,\n fontFamily,\n fontWeight,\n boxShadowEnabled,\n boxShadowOffsetX,\n boxShadowOffsetY,\n boxShadowBlurRadius,\n boxShadowSpreadRadius,\n boxShadowColor,\n boxShadowColorAlpha\n },\n individualLayout,\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4,\n individualPrivacyOpen\n}) {\n const {\n alignment: mobileAlignment\n } = mobile;\n const useType = scaleMobile(mobile, pageRequestUuid4, type, \"banner\");\n const useBorderWidth = scaleMobile(mobile, pageRequestUuid4, borderWidth);\n const width = useType === \"dialog\" ? +(individualPrivacyOpen && !individualLayout.inheritDialogMaxWidth ? individualLayout.dialogMaxWidth : dialogMaxWidth) : \"100%\";\n const style = {\n pointerEvents: \"all\",\n transition: \"width 500ms, max-width 500ms\",\n maxWidth: width,\n textAlign,\n width,\n overflow: \"hidden\",\n alignSelf: scaleMobile(mobile, pageRequestUuid4, useType === \"banner\" ? bannerPosition === \"top\" ? \"flex-start\" : \"flex-end\" : undefined, mobileAlignment === \"bottom\" ? \"flex-end\" : mobileAlignment === \"top\" ? \"flex-start\" : \"center\"),\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n fontWeight,\n color: fontColor,\n margin: useType === \"dialog\" ? 10 : undefined,\n borderRadius: useType === \"dialog\" ? +dialogBorderRadius : undefined,\n boxShadow: boxShadowEnabled ? \"\".concat(boxShadowOffsetX, \"px \").concat(boxShadowOffsetY, \"px \").concat(boxShadowBlurRadius, \"px \").concat(boxShadowSpreadRadius, \"px \").concat(calculateRgba(boxShadowColor, boxShadowColorAlpha)) : undefined,\n [useType === \"banner\" ? bannerPosition === \"top\" ? \"borderBottom\" : \"borderTop\" : \"border\"]: useType === \"banner\" ? useBorderWidth > 0 ? \"\".concat(useBorderWidth, \"px solid \").concat(borderColor) : undefined : undefined\n };\n\n if (useType === \"dialog\" && dialogPosition !== \"middleCenter\") {\n style.margin = dialogMargin.map(i => \"\".concat(i, \"px\")).join(\" \");\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-inner\",\n style\n };\n}\n\nexport { bannerContentInlineStyleInner };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useState, useLayoutEffect, useEffect } from \"react\";\nimport { dispatchResizeEvent } from \"@devowl-wp/headless-content-unblocker\";\nimport { useBanner, useBannerActionLinks, useBannerHistory, usePlainCss, useRestrictScrollWhenVisible, bannerOverlayInlineStyle, bannerOverlayInlineStyleAlignment, BannerAnimatedContent, isHiddenDueLegal } from \"../..\";\n\nconst Banner = () => {\n const banner = useBanner();\n const {\n layout: {\n overlay,\n overlayBlur\n },\n customCss: {\n antiAdBlocker,\n css\n },\n visible,\n animationVisible,\n activeAction,\n skipOverlay,\n gotHiddenDueLegal,\n pageRequestUuid4,\n individualPrivacyOpen\n } = banner;\n const hiddenDueLegal = isHiddenDueLegal(banner);\n const show = visible && !hiddenDueLegal || !!activeAction;\n usePlainCss(antiAdBlocker ? css : \"\");\n usePlainCss( // `-webkit-text-size-adjust:100%;`: https://stackoverflow.com/a/2711132/5506547\n \"#\".concat(pageRequestUuid4, \", #\").concat(pageRequestUuid4, \" * {box-sizing: border-box;backface-visibility:initial;text-transform:initial;-webkit-text-size-adjust:100%;}\")); // Blur effect\n\n if (process.env.PLUGIN_CTX === \"pro\") {\n /* Silence is golden... Until you have PRO Version! */\n }\n\n useRestrictScrollWhenVisible(show && overlay && animationVisible); // Listen to window resizes and resize the content automatically\n\n const [, setInvalidate] = useState(0);\n\n const updateSize = () => setInvalidate(+new Date());\n\n useLayoutEffect(() => {\n window.addEventListener(\"resize\", updateSize);\n return () => window.removeEventListener(\"resize\", updateSize);\n }, []);\n useLayoutEffect(() => {\n dispatchResizeEvent(1000);\n }, [animationVisible, individualPrivacyOpen]); // When changes to the legal settings are done, make the banner visible or hide\n\n gotHiddenDueLegal && useEffect(() => {\n gotHiddenDueLegal(hiddenDueLegal);\n }, [hiddenDueLegal]);\n useBannerHistory();\n useBannerActionLinks();\n\n if (!show) {\n return null;\n }\n\n const content = h(\"div\", bannerOverlayInlineStyleAlignment(banner), h(BannerAnimatedContent, null));\n return skipOverlay ? content : h(\"div\", _extends({\n id: pageRequestUuid4\n }, bannerOverlayInlineStyle(banner)), content);\n};\n\nexport { Banner };","import { useEffect } from \"react\";\n/**\n * Do not allow scrolling when this banner is visible\n *\n * @param visible\n */\n\nfunction useRestrictScrollWhenVisible(visible) {\n return useEffect(() => {\n const {\n dataset,\n style\n } = document.body; // Save first state\n\n if (dataset.rcbPreviousOverflow === undefined) {\n dataset.rcbPreviousOverflow = style.overflow;\n }\n\n style.overflow = visible ? \"hidden\" : dataset.rcbPreviousOverflow;\n document.body.parentElement.style.overflow = style.overflow;\n }, [visible]);\n}\n\nexport { useRestrictScrollWhenVisible };","import { useEffect, useState } from \"react\";\nimport { useBanner } from \"../../..\";\n\nfunction useBannerHistory() {\n const banner = useBanner();\n const {\n consent,\n groups,\n tcf,\n activeAction,\n selectHistoryEntry,\n fetchHistory\n } = banner; // Save the current consent and group settings to restore\n\n const [originalConsent, setOriginalConsent] = useState({\n consent,\n groups,\n tcf\n }); // Listen to consent changes and save it as original consent (only when non-history)\n\n useEffect(() => {\n if (!activeAction) {\n setOriginalConsent({\n consent,\n groups,\n tcf\n });\n }\n }, [consent, groups, tcf, activeAction]);\n useEffect(() => {\n async function fetch() {\n const result = await fetchHistory(); // Initially select first item\n\n if (result.length) {\n const [{\n groups,\n decision,\n tcf\n }] = result;\n selectHistoryEntry(groups, decision, tcf);\n } else {\n selectHistoryEntry([], []);\n }\n }\n\n if (activeAction === \"history\") {\n // Save state of original consent\n setOriginalConsent({\n consent,\n groups,\n tcf\n });\n fetch();\n } else {\n // If we close the history, restore the original state\n const {\n groups,\n consent: {\n groups: consentGroups\n },\n tcf\n } = originalConsent;\n selectHistoryEntry === null || selectHistoryEntry === void 0 ? void 0 : selectHistoryEntry(groups, consentGroups, tcf);\n }\n }, [activeAction]);\n}\n\nexport { useBannerHistory };","import { scaleMobile } from \"../..\";\n\nfunction bannerOverlayInlineStyleAlignment({\n layout: {\n type,\n dialogPosition\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n const style = {\n display: \"flex\",\n width: \"100%\",\n height: \"100%\"\n };\n\n if (scaleMobile(mobile, pageRequestUuid4, type, \"banner\") === \"dialog\") {\n style.alignItems = dialogPosition.startsWith(\"top\") ? \"flex-start\" : dialogPosition.startsWith(\"bottom\") ? \"flex-end\" : \"center\";\n style.justifyContent = dialogPosition.endsWith(\"Center\") ? \"center\" : dialogPosition.endsWith(\"Left\") ? \"flex-start\" : \"flex-end\";\n }\n\n return {\n className: \"wp-exclude-emoji \".concat(antiAdBlocker === \"y\" ? \"\" : \"rcb-align\"),\n style\n };\n}\n\nexport { bannerOverlayInlineStyleAlignment };","import { scaleMobile } from \"../..\";\nimport { calculateRgba } from \"../../..\";\n/**\n * This method needs to be ported to Banner.php#wp_footer, too!\n */\n\nfunction bannerOverlayInlineStyle({\n layout: {\n type,\n overlay,\n overlayBg,\n overlayBgAlpha\n },\n design: {\n fontSize\n },\n customCss: {\n antiAdBlocker\n },\n mobile,\n pageRequestUuid4\n}) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-bann3r rcb-bann3r-\".concat(scaleMobile(mobile, pageRequestUuid4, type, \"banner\"), \" \").concat(overlay ? \"\" : \"overlay-deactivated\"),\n style: {\n background: overlay ? calculateRgba(overlayBg, overlayBgAlpha) : \"none\",\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 999999,\n pointerEvents: overlay ? \"all\" : \"none\",\n fontSize: scaleMobile(mobile, pageRequestUuid4, +fontSize),\n filter: \"none\",\n maxHeight: \"100vh\"\n }\n };\n}\n\nexport { bannerOverlayInlineStyle };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentGet = {\n path: \"/consent\",\n method: RouteHttpVerb.GET\n};","import { useState } from \"react\";\nimport { getOptionsFromWindow, getOtherOptionsFromWindow } from \"../utils\";\nimport { useBannerPreDecisionGateway, useTcf } from \"../hooks\";\nimport { applyConsent, getCookieConsentManager } from \"../others\";\nimport { prepareTcfString } from \"../tcf\";\nimport { getUserDecision } from \"@devowl-wp/cookie-consent-web-client\";\nimport { useBannerConsentListener } from \"@devowl-wp/react-cookie-banner\";\nimport { BannerContextFactory, useBannerToggleOverlay, Banner, useBannerStateContextCallbacks } from \"@devowl-wp/react-cookie-banner\";\nimport { locationRestConsentGet } from \"../wp-api\";\nimport { commonRequest } from \"@devowl-wp/utils\";\nimport { BannerProductionNotice } from \".\";\n/**\n * Simply connects a context store to the banner itself. On the website itself\n * it should not rely\n */\n\nconst WebsiteBanner = ({\n poweredLink\n}) => {\n const {\n customizeValuesBanner: {\n layout,\n decision,\n legal,\n design,\n headerDesign,\n bodyDesign,\n footerDesign,\n texts,\n individualLayout,\n saveButton,\n group,\n individualTexts,\n customCss,\n mobile\n },\n pageId,\n pageRequestUuid4,\n pageIdToPermalink,\n consentForwardingExternalHosts,\n essentialGroup,\n isTcf,\n isEPrivacyUSA,\n isAgeNotice,\n isListServicesNotice,\n tcf,\n tcfMetadata,\n groups,\n userConsentCookieName,\n bannerI18n,\n affiliate,\n isCurrentlyInTranslationEditorPreview,\n pageByIdUrl\n } = getOtherOptionsFromWindow();\n const userDecision = getUserDecision(userConsentCookieName); // TCF compatibility\n\n const tcfObject = useTcf(isTcf, tcf, tcfMetadata); // Server-side rendered overlay handler\n\n const {\n toggleOverlay\n } = useBannerToggleOverlay(document.getElementById(pageRequestUuid4));\n const {\n openHistory,\n openBanner,\n revokeConsent,\n updateTcfFilterBy,\n updateIndividualPrivacyOpen,\n updateGroupChecked,\n updateCookieChecked,\n onClose,\n selectHistoryEntry\n } = useBannerStateContextCallbacks({\n toggleOverlay,\n revokeConsent: ({\n tcf\n }) => {\n // Do not rely on current state of `groups` because it can be altered through history change\n const buttonClicked = \"shortcode_revoke\"; // TCF compatibility: revoke TCF string\n\n let tcfString;\n\n if (process.env.IS_TCF === \"1\" && tcf !== null && tcf !== void 0 && tcf.model) {\n tcfString = prepareTcfString(tcf.model, buttonClicked);\n }\n\n return applyConsent({\n consent: {\n groups: getCookieConsentManager().getDefaultDecision(true)\n },\n buttonClicked,\n tcfString\n });\n }\n }); // Context values preparation\n\n const [contextValue, setContextValue] = useState({\n layout: { ...layout\n },\n decision: { ...decision\n },\n legal: { ...legal\n },\n design: { ...design\n },\n headerDesign: { ...headerDesign\n },\n bodyDesign: { ...bodyDesign\n },\n footerDesign: { ...footerDesign\n },\n texts: { ...texts\n },\n individualLayout: { ...individualLayout\n },\n saveButton: { ...saveButton\n },\n group: { ...group\n },\n individualTexts: { ...individualTexts\n },\n customCss: { ...customCss\n },\n mobile: { ...mobile\n },\n productionNotice: h(BannerProductionNotice, null),\n pageRequestUuid4,\n pageIdToPermalink,\n pageByIdUrl,\n consentForwardingExternalHosts,\n pageId,\n isTcf,\n ePrivacyUSA: isEPrivacyUSA,\n ageNotice: isAgeNotice,\n listServicesNotice: isListServicesNotice,\n tcf: tcfObject,\n tcfFilterBy: \"legInt\",\n groups,\n essentialGroup,\n poweredLink,\n visible: false,\n animationVisible: true,\n skipOverlay: true,\n previewCheckboxActiveState: false,\n individualPrivacyOpen: false,\n i18n: bannerI18n,\n keepVariablesInTexts: isCurrentlyInTranslationEditorPreview,\n affiliate,\n consent: {\n groups: { ...(userDecision === false ? {} : userDecision.consent),\n // Always override essential cookies\n ...getCookieConsentManager().getDefaultDecision(userDecision === false)\n }\n },\n didGroupFirstChange: false,\n onSave: (markAsDoNotTrack, buttonClicked) => {\n setContextValue(state => {\n var _state$tcf;\n\n // TCF compatibility: persist TCF string\n let tcfString;\n\n if (process.env.IS_TCF === \"1\" && isTcf && (_state$tcf = state.tcf) !== null && _state$tcf !== void 0 && _state$tcf.model) {\n tcfString = prepareTcfString(state.tcf.model, buttonClicked);\n }\n\n const appliedConsent = applyConsent({\n consent: state.consent,\n markAsDoNotTrack,\n buttonClicked,\n tcfString\n });\n\n if (state.refreshSiteAfterSave) {\n appliedConsent.then(() => // Fix iOS / Safari bug when we want to reload the page after a POST request\n setTimeout(() => window.location.reload(), state.refreshSiteAfterSave ||\n /* BC */\n 2000)); // When refreshing the site, do not show any out animation\n\n return state;\n } else {\n return { ...state,\n ...toggleOverlay(state, false)\n };\n }\n });\n },\n fetchHistory: async () => {\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow();\n const history = await commonRequest({\n location: locationRestConsentGet,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n cookieValueAsParam: [userConsentCookieName],\n sendRestNonce: false\n });\n setContextValue(state => {\n return { ...state,\n history\n };\n });\n return history;\n },\n // Predefined callbacks\n updateTcfFilterBy: newFilter => updateTcfFilterBy(setContextValue, newFilter),\n updateIndividualPrivacyOpen: opened => updateIndividualPrivacyOpen(setContextValue, opened),\n updateGroupChecked: (id, checked) => updateGroupChecked(setContextValue, id, checked),\n updateCookieChecked: (groupId, id, checked) => updateCookieChecked(setContextValue, groupId, id, checked),\n onClose: () => onClose(setContextValue),\n selectHistoryEntry: (groups, consentGroups, tcf) => selectHistoryEntry(setContextValue, groups, consentGroups, tcf),\n openHistory: e => openHistory(setContextValue, e),\n openBanner: e => openBanner(setContextValue, e),\n revokeConsent: (successMessage, e) => revokeConsent(setContextValue, successMessage, e)\n });\n useBannerPreDecisionGateway(contextValue, setContextValue, toggleOverlay);\n useBannerConsentListener(setContextValue, userConsentCookieName);\n const BannerContext = BannerContextFactory.Context();\n return h(BannerContext.Provider, {\n value: contextValue\n }, h(Banner, null));\n};\n\nexport { WebsiteBanner };","import { useMemo } from \"react\";\nimport { prepareTcfString } from \"../tcf\";\nimport { applyTcfModelMetadata, applyRestrictivePurposes, createTcfModel, createTcfModelFromCookie } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getCookieConsentManager } from \"../others\";\n/**\n * Merges the localized `tcf` and `tcfMetadata` together so it can be\n * used inside our `BannerContextProps` and returns a valid `GVL` instance.\n */\n\nfunction useTcf(active, tcf, tcfMeta) {\n return useMemo(() => {\n if (process.env.IS_TCF === \"1\" && active && Object.values(tcf.vendors).length > 0) {\n let gvl;\n let model;\n const manager = getCookieConsentManager();\n const restored = createTcfModelFromCookie(tcf, tcfMeta, manager.getOption(\"tcfCookieName\")); // First, try to resolve from user consent (cookie value)\n\n if (restored) {\n gvl = restored.gvl;\n model = restored.model;\n } else {\n // No consent given, let's create an empty model\n const newTcf = createTcfModel({\n tcf,\n tcfMeta,\n tcfString: \"\"\n });\n gvl = newTcf.gvl;\n model = newTcf.model;\n }\n\n applyTcfModelMetadata(model, tcfMeta, manager);\n applyRestrictivePurposes(model, tcf.vendorConfigurations);\n\n if (!restored) {\n prepareTcfString(model, \"initial\");\n }\n\n return {\n gvl,\n model,\n original: tcf,\n metadata: tcfMeta\n };\n } else {\n return undefined;\n }\n }, [active, tcf, tcfMeta]);\n}\n\nexport { useTcf };","import { useCallback } from \"react\";\nimport { useBannerAnimation } from \"../..\";\n/**\n * Provides a callback which can be used to update the state of the banner context and manipulate\n * the `visible` and `animationVisible` property correctly.\n */\n\nfunction useBannerToggleOverlay(overlay) {\n const useBannerAnimationCallback = useBannerAnimation();\n const toggleOverlay = useCallback(({\n layout\n }, show) => {\n const {\n animationInDuration,\n animationOutDuration\n } = layout;\n const {\n useAnimationIn,\n useAnimationOut\n } = useBannerAnimationCallback(layout);\n const defaultIfNoAnimation = 0; // Avoid \"hard\" overlay\n\n const useDuration = show ? useAnimationIn === \"none\" ? defaultIfNoAnimation : animationInDuration : useAnimationOut === \"none\" ? defaultIfNoAnimation : animationOutDuration; // Toggle SSR-rendered overlay\n\n useDuration > 0 && (overlay.style.transition = \"background \".concat(useDuration, \"ms\"));\n overlay.style.background = \"transparent\";\n\n if (show) {\n // We need a small delay to avoid flickering of animation out effect in customizer\n setTimeout(() => {\n overlay.style.display = \"block\";\n }, 0);\n setTimeout(() => {\n const bg = overlay.getAttribute(\"data-bg\");\n overlay.style.background = bg ? bg.split(\":\")[1].trim().replace(\";\", \"\") : \"transparent\";\n }, 100);\n } else {\n setTimeout(() => {\n overlay.style.display = \"none\";\n }, useDuration);\n }\n\n const animationVisible = {\n animationVisible: show\n };\n return show ? {\n visible: true,\n ...animationVisible\n } : animationVisible;\n }, [useBannerAnimationCallback]);\n return {\n overlay,\n toggleOverlay\n };\n}\n\nexport { useBannerToggleOverlay };","import { useEffect } from \"react\";\nimport { getOptionsFromWindow, isCustomize } from \"../utils\";\nimport { getCookieConsentManager } from \"../others\";\nimport { preDecisionGateway } from \"@devowl-wp/cookie-consent-web-client\";\nimport { preDecisionGatewayDynamicRequest, preDecisionGatewayHasPageClass, preDecisionGatewayIsCrawler, preDecisionGatewayIsPreventPreDecision, preDecisionGatewaySupportsCookies, preDecisionGatewayUserConsent, preDecisionGatewayIsDoNotTrack } from \"@devowl-wp/cookie-consent-web-client\";\nimport { commonRequest } from \"@devowl-wp/utils\";\nimport { locationRestConsentDynamicPredecisionGet } from \"../wp-api\";\nimport { isHiddenDueLegal } from \"@devowl-wp/react-cookie-banner\";\n/**\n * Do some decision gateways like DNT, Bot / Crawler and Decision and depending\n * on that, show the Banner initially.\n */\n\nfunction useBannerPreDecisionGateway(banner, setContextValue, toggleOverlay) {\n useEffect(() => {\n // Only run this predecision mechanism once and when not in customize\n if (isCustomize()) {\n return;\n }\n\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce,\n others: {\n isAcceptAllForBots,\n isPreventPreDecision,\n hasDynamicPreDecisions,\n isRespectDoNotTrack\n }\n } = getOptionsFromWindow();\n const {\n onSave\n } = banner;\n preDecisionGateway(getCookieConsentManager(), {\n gateways: [preDecisionGatewaySupportsCookies, preDecisionGatewayHasPageClass([\"login-action-\"]), preDecisionGatewayDynamicRequest(() => {\n const {\n clientWidth,\n clientHeight\n } = document.documentElement;\n return commonRequest({\n location: locationRestConsentDynamicPredecisionGet,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n request: {\n viewPortWidth: clientWidth,\n viewPortHeight: clientHeight\n },\n params: {\n _wp_http_referer: window.location.href\n }\n });\n }, 10000, hasDynamicPreDecisions), async (_, banner) => isHiddenDueLegal(banner) ? \"consent\" : false, preDecisionGatewayIsPreventPreDecision(isPreventPreDecision), preDecisionGatewayIsCrawler(isAcceptAllForBots ? \"all\" : false), preDecisionGatewayIsDoNotTrack(isRespectDoNotTrack), preDecisionGatewayUserConsent],\n args: [banner],\n onIsDoNotTrack: () => {\n onSave(true, \"none\");\n },\n onShowCookieBanner: () => setContextValue(state => {\n return { ...state,\n // Always revert back to \"Essentials\" only consent when cookie needs to be consented\n consent: {\n groups: getCookieConsentManager().getDefaultDecision()\n },\n ...toggleOverlay(state, true)\n };\n })\n });\n }, []);\n}\n\nexport { useBannerPreDecisionGateway };","import { getOtherOptionsFromWindow } from \"./getOtherOptionsFromWindow\";\n/**\n * Checks if the current page is customize page.\n */\n\nfunction isCustomize() {\n return !!getOtherOptionsFromWindow().customizeIdsBanner;\n}\n\nexport { isCustomize };","import { getUserDecision } from \"../decision\";\nimport { isCrawler } from \"../utils\";\n/**\n * Is the current request from a spider / crawler?\n */\n\nconst preDecisionGatewayIsCrawler = resultIfBot => async ({\n decisionCookieName\n}) => {\n if (getUserDecision(decisionCookieName) !== false || !resultIfBot) {\n return false;\n }\n\n return isCrawler() ? resultIfBot : false;\n};\n\nexport { preDecisionGatewayIsCrawler };","import { getUserDecision } from \"../decision\";\nimport { isCrawler } from \"../utils\";\n/**\n * Prevent any predecision and user decision and force to reuse existing consent or all for crawlers.\n * This could be e.g. be configured by a dynamic hook or on server-side via a localized variable.\n */\n\nconst preDecisionGatewayIsPreventPreDecision = preventPreDecision => async ({\n decisionCookieName\n}) => {\n const userDecision = getUserDecision(decisionCookieName);\n return preventPreDecision && userDecision === false ? isCrawler() ? // For crawlers we need to explicitly allow services on all pages\n \"all\" : \"consent\" : false;\n};\n\nexport { preDecisionGatewayIsPreventPreDecision };","/**\n * Do not show cookie banner for a certain page, e.g. the login page.\n */\nconst preDecisionGatewayHasPageClass = classNames => async () => {\n const {\n className\n } = document.body;\n return classNames.filter(c => className.indexOf(c) > -1).length > 0 ? \"consent\" : false;\n};\n\nexport { preDecisionGatewayHasPageClass };","import { CookieConsentManager } from \"../apply\";\nimport { apply } from \"../apply\";\nimport { BANNER_PRE_DECISION_SHOW_EVENT } from \"../events\";\nimport { ready } from \"../utils\";\n\nasync function preDecisionGateway(options, handler) {\n let show = true;\n const useOptions = options instanceof CookieConsentManager ? options.getOptions() : options;\n const {\n gateways,\n args,\n onIsDoNotTrack,\n onShowCookieBanner\n } = handler;\n\n for (const gateway of gateways) {\n const result = await gateway(useOptions, ...args);\n\n if (result !== false) {\n show = false;\n\n const applyWithOptions = type => apply({\n type,\n ...useOptions\n });\n\n if (result === \"all\") {\n applyWithOptions(\"all\");\n } else if (result === \"essentials\") {\n applyWithOptions(\"essentials\");\n } else if (result === \"dnt\") {\n onIsDoNotTrack(() => applyWithOptions(\"essentials\"));\n } else if (result === \"consent\") {\n // Apply services for the current user decision\n applyWithOptions(\"consent\");\n }\n\n break;\n }\n }\n\n if (show) {\n onShowCookieBanner(); // Wait all events are initialized\n\n await ready();\n document.dispatchEvent(new CustomEvent(BANNER_PRE_DECISION_SHOW_EVENT, {\n detail: {}\n }));\n }\n}\n\nexport { preDecisionGateway };","import { getUserDecision, OPT_IN_ALL_EVENT } from \"@devowl-wp/cookie-consent-web-client\";\nimport { useEffect } from \"react\";\n\nfunction useBannerConsentListener(setContextValue, userConsentCookieName) {\n useEffect(() => {\n const listener = () => {\n const consent = getUserDecision(userConsentCookieName);\n consent && setContextValue(state => ({ ...state,\n consent: {\n groups: consent.consent\n }\n }));\n };\n\n document.addEventListener(OPT_IN_ALL_EVENT, listener);\n return () => {\n document.removeEventListener(OPT_IN_ALL_EVENT, listener);\n };\n }, []);\n}\n\nexport { useBannerConsentListener };","/**\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 { putHtmlCodeToDom, OPT_IN_CONTENT_BLOCKER } from \"@devowl-wp/headless-content-unblocker\";\nimport { OPT_IN_EVENT, waitObject } from \"@devowl-wp/cookie-consent-web-client\";\nlet amazonWidgetsSlotNum = 0;\n/**\n * Some presets have custom opt-in coding, e. g. Amazon Widgets.\n */\n\nfunction listenPresetOptIn() {\n document.addEventListener(OPT_IN_EVENT, async ({\n detail: {\n service: {\n presetId,\n codeOptIn,\n codeDynamics\n }\n }\n }) => {\n switch (presetId) {\n case \"amazon-associates-widget\":\n {\n const {\n amznAssoWidgetHtmlId\n } = codeDynamics || {};\n\n if (amznAssoWidgetHtmlId) {\n const element = document.getElementById(amznAssoWidgetHtmlId);\n\n if (element) {\n const slotNum = amazonWidgetsSlotNum;\n amazonWidgetsSlotNum++;\n putHtmlCodeToDom(codeOptIn, codeDynamics, element); // Amazon Widgets is using `document.write`, we need to manually move the ad container...\n\n const adContainer = await waitObject(() => document.querySelector(\"[id^=\\\"amzn_assoc_ad_div_\\\"][id$=\\\"\".concat(slotNum, \"\\\"]\")), 500, 50);\n\n if (adContainer) {\n element.appendChild(adContainer);\n }\n }\n }\n\n break;\n }\n\n case \"google-maps\":\n {\n document.addEventListener(OPT_IN_CONTENT_BLOCKER, async ({\n detail: {\n element\n }\n }) => {\n const {\n et_pb_map_init,\n jQuery\n } = window;\n\n if (jQuery && element.matches(\".et_pb_map\") && et_pb_map_init) {\n await waitObject(() => window.google);\n et_pb_map_init(jQuery(element).parent());\n }\n });\n break;\n }\n\n default:\n break;\n }\n });\n}\n\nexport { listenPresetOptIn };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentClearDelete = {\n path: \"/consent/clear\",\n method: RouteHttpVerb.DELETE\n};","import { getOtherOptionsFromWindow } from \"../utils\";\nimport { getUserDecision, regExpPatternFromWildcardName } from \"@devowl-wp/cookie-consent-web-client\";\n/**\n * Synchronously check if a consent is given. See `window.consentApi.consent` for more documentation.\n */\n\nfunction consentSync(typeOrId, name,\n/**\n * This can also be `*` to allow all hosts.\n */\nhost) {\n // Find matching cookie\n const found = [];\n const {\n groups,\n revisionHash\n } = getOtherOptionsFromWindow();\n const allCookies = groups.map(({\n items\n }) => items).flat();\n\n for (const row of allCookies) {\n if (typeof typeOrId === \"number\") {\n if (row.id === typeOrId) {\n found.push({\n cookie: row,\n relevance: 10\n });\n }\n } else {\n const {\n technicalDefinitions\n } = row;\n\n if (technicalDefinitions !== null && technicalDefinitions !== void 0 && technicalDefinitions.length) {\n // Check if technical information matches\n for (const td of technicalDefinitions) {\n const regexp = regExpPatternFromWildcardName(td.name);\n\n if (td.type === typeOrId && (td.name === name || name.match(regexp)) && (td.host === host || host === \"*\")) {\n found.push({\n cookie: row,\n // Create a priority by \"relevance\" inside the technical definitions\n // This is the case if e.g. another Cookie consumes the same technical cookie\n // Example: Vimeo uses Facebook Pixel, too\n relevance: technicalDefinitions.length + technicalDefinitions.indexOf(td) + 1\n });\n break;\n }\n }\n }\n }\n }\n\n const already = getUserDecision(getOtherOptionsFromWindow().userConsentCookieName);\n\n if (found.length) {\n const relevantCookie = found.sort(({\n relevance: a\n }, {\n relevance: b\n }) => a - b)[0].cookie; // Check if consent is already given\n\n if (already && revisionHash === already.revision) {\n const consentCookieIds = Object.values(already.consent).flat();\n\n if (consentCookieIds.indexOf(relevantCookie.id) > -1) {\n return {\n cookie: relevantCookie,\n consentGiven: true,\n cookieOptIn: true\n };\n } else {\n return {\n cookie: relevantCookie,\n consentGiven: true,\n cookieOptIn: false\n };\n }\n } else {\n return {\n cookie: relevantCookie,\n consentGiven: false,\n cookieOptIn: false\n };\n }\n } else {\n return {\n cookie: null,\n consentGiven: !!already,\n cookieOptIn: true\n };\n }\n}\n\nexport { consentSync };","import { OPT_IN_EVENT, OPT_OUT_EVENT } from \"@devowl-wp/cookie-consent-web-client\";\nimport { consentSync } from \".\";\n/**\n * `window.consentApi.consent`: Check if a given technical information (e.g. HTTP Cookie, LocalStorage, ...) has a consent:\n *\n * - When a technical information exists in defined cookies, the Promise is only resolved after given consent\n * - When no technical information exists, the Promise is immediate resolved\n *\n * Example (ES5):\n * ```js\n * (window.consentApi && window.consentApi.consent(\"http\", \"_twitter_sess\", \".twitter.com\") || Promise.resolve()).then(function() {\n * console.log(\"Consent for Twitter embed given, do something...!\");\n * });\n * ```\n *\n * Example (ES6, Babel, TS):\n * ```js\n * (window.consentApi?.consent(\"http\", \"_twitter_sess\", \".twitter.com\") || Promise.resolve()).then(() => {\n * console.log(\"Consent for Twitter embed given, do something...!\");\n * });\n * ```\n *\n * **Since 2.3.0**: You can also check for consent by cookie ID (ID in `wp_posts`, post id):\n *\n * ```js\n * window.consentApi.consent(15)\n * ```\n */\n\nfunction consent(...args) {\n return new Promise((resolve, reject) => {\n const {\n cookie: foundCookie,\n consentGiven,\n cookieOptIn\n } = consentSync(...args);\n\n if (foundCookie) {\n if (consentGiven) {\n if (cookieOptIn) {\n resolve();\n } else {\n reject();\n }\n } else {\n // Wait for consent\n document.addEventListener(OPT_IN_EVENT, async ({\n detail: {\n service\n }\n }) => {\n if (service === foundCookie) {\n resolve();\n }\n }); // Wait for opt out\n\n document.addEventListener(OPT_OUT_EVENT, async ({\n detail: {\n service\n }\n }) => {\n if (service === foundCookie) {\n reject();\n }\n });\n }\n } else {\n resolve();\n }\n });\n}\n\nexport { consent };","import { consent } from \".\";\n/**\n * `window.consentApi.consentAll`: Check if a set of given technical information (e.g. HTTP Cookie, LocalStorage, ...)\n * have a consent. This is similar to `window.consentApi.consent` but for multiple cookies.\n */\n\nfunction consentAll(technicalDefinitions) {\n return Promise.all(technicalDefinitions.map(args => consent(...args)));\n}\n\nexport { consentAll };","/* 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 * Entrypoint for plain website. This file is only loaded if the visitor needs to accept cookies.\n */\nimport { render } from \"react-dom\";\nimport { WebsiteBanner } from \"./components\";\nimport { getOtherOptionsFromWindow, ensureBodyElement } from \"./utils\";\nimport { listenPresetOptIn, deleteCookiesServer, getCookieConsentManager } from \"./others\";\nimport { tcfCmpApi } from \"./tcf\";\nimport * as API from \"./api\";\nimport { getWebpackPublicPath } from \"@devowl-wp/utils\";\nimport { printConsentUuidsToHTMLElement } from \"@devowl-wp/cookie-consent-web-client\";\nimport { OPT_OUT_ALL_EVENT, ready } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getSsrPoweredByLink } from \"@devowl-wp/react-cookie-banner\";\n__webpack_public_path__ = getWebpackPublicPath(process.env.slug);\nlistenPresetOptIn();\ntcfCmpApi();\nready(() => {\n const {\n pageRequestUuid4\n } = getOtherOptionsFromWindow();\n const poweredLink = getSsrPoweredByLink(\"\".concat(pageRequestUuid4, \"-powered-by\"));\n const element = ensureBodyElement(document.getElementById(pageRequestUuid4));\n printConsentUuidsToHTMLElement(\".rcb-consent-history-uuids\", getCookieConsentManager());\n document.addEventListener(OPT_OUT_ALL_EVENT, async ({\n detail: {\n deleteHttpCookies\n }\n }) => {\n // Handle cookie deletion which needs to be done server-side (e. g. HTTP cookies)\n deleteHttpCookies.length && setTimeout(() => deleteCookiesServer(deleteHttpCookies), 0);\n });\n\n if (element) {\n render(h(WebsiteBanner, {\n poweredLink: poweredLink\n }), element);\n }\n}, \"interactive\"); // Expose public API\n\nif (window) {\n window.consentApi = API;\n}\n\nexport * from \"./api\";","import { tcfCmpApiDispatcher } from \"@devowl-wp/cookie-consent-web-client\";\nimport { CmpApi } from \"@iabtcf/cmpapi\";\nimport { getCookieConsentManager } from \"../others\";\nimport { getCmpVersion, getOtherOptionsFromWindow } from \"../utils\";\nlet cmpApiInstance;\n/**\n * Initialize a CMP API once for this page request. If TCF is not available, it will\n * return `undefined`.\n *\n * @see https://www.npmjs.com/package/@iabtcf/cmpapi\n */\n\nfunction tcfCmpApi() {\n const other = getOtherOptionsFromWindow();\n const {\n isTcf\n } = other;\n\n if (process.env.IS_TCF === \"1\" && isTcf) {\n const {\n tcf,\n tcfMetadata\n } = other;\n const {\n scope\n } = tcfMetadata; // Create instance only once\n\n if (!cmpApiInstance) {\n cmpApiInstance = new CmpApi(+process.env.TCF_CMP_ID, // Currently, only two bits (https://git.io/JmuD0) can be saved to the cmpVersion, so we can only save the major version\n getCmpVersion(\"major\"), scope === \"service-specific\"); // Dispatch events to vendors can listen to it\n\n setTimeout(() => tcfCmpApiDispatcher(tcf, tcfMetadata, cmpApiInstance, getCookieConsentManager().getOption(\"tcfCookieName\")), 0);\n }\n\n return cmpApiInstance;\n } else {\n return undefined;\n }\n}\n\nexport { tcfCmpApi };","/**\n * Ensure the given HTML is a child of `body`. If not, it automatically gets moved.\n */\nfunction ensureBodyElement(element) {\n const {\n body\n } = document;\n const {\n parentElement\n } = element;\n\n if (parentElement !== body) {\n body.appendChild(element);\n }\n\n return element;\n}\n\nexport { ensureBodyElement };","import { CookieConsentManager } from \"../apply\";\nimport { BANNER_PRE_DECISION_SHOW_EVENT, OPT_IN_ALL_EVENT } from \"../events\";\nimport { getUserDecision } from \".\";\n/**\n * Listen to opt-in so we can safely print the UUID of the current consent to HTML elements.\n */\n\nfunction printConsentUuidsToHTMLElement(selector, decisionCookieName) {\n const elements = Array.prototype.slice.call(document.querySelectorAll(selector));\n document.addEventListener(BANNER_PRE_DECISION_SHOW_EVENT, () => {\n elements.forEach(element => element.innerHTML = element.getAttribute(\"data-fallback\"));\n });\n document.addEventListener(OPT_IN_ALL_EVENT, () => {\n const consent = getUserDecision(decisionCookieName instanceof CookieConsentManager ? decisionCookieName.getOption(\"decisionCookieName\") : decisionCookieName);\n const allUuids = consent ? [consent.uuid, ...consent.previousUuids] : [];\n elements.forEach(element => element.innerHTML = allUuids.length > 0 ? allUuids.join(\", \") : element.getAttribute(\"data-fallback\"));\n });\n}\n\nexport { printConsentUuidsToHTMLElement };","import { commonRequest } from \"@devowl-wp/utils\";\nimport { getOptionsFromWindow } from \"../utils\";\nimport { locationRestConsentClearDelete } from \"../wp-api\";\n/**\n * Delete cookies on server side (currently only `http`).\n */\n\nfunction deleteCookiesServer(cookies) {\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow();\n return commonRequest({\n location: locationRestConsentClearDelete,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n params: {\n cookies: cookies.join(\",\")\n }\n });\n}\n\nexport { deleteCookiesServer };","import { getOtherOptionsFromWindow } from \"../utils\";\n\nconst BannerProductionNotice = () => {\n const {\n isPro,\n isLicensed,\n isDevLicense,\n bannerI18n: {\n noLicense,\n devLicense\n }\n } = getOtherOptionsFromWindow();\n\n if (!isPro) {\n return null;\n }\n\n let useText = \"\";\n\n if (isDevLicense) {\n useText = devLicense;\n } else if (!isLicensed) {\n useText = noLicense;\n }\n\n return useText ? h(\"div\", {\n style: {\n fontSize: 13,\n color: \"#c95252\",\n fontWeight: \"bold\",\n order: 9\n }\n }, useText) : null;\n};\n\nexport { BannerProductionNotice };","import { RouteHttpVerb } from \"@devowl-wp/utils\";\nexport const locationRestConsentPost = {\n path: \"/consent\",\n method: RouteHttpVerb.POST\n};","import { getOtherOptionsFromWindow } from \"../utils\";\n/**\n * Apply Consent Forwarding, it set's cross domain cookies via CORS requests.\n *\n * @see https://javascript.info/fetch-crossorigin\n */\n\nfunction applyConsentForwarding({\n endpoints,\n data\n}) {\n const {\n isPro\n } = getOtherOptionsFromWindow();\n\n if (isPro) {\n /* onlypro:start */\n const promises = [];\n\n for (const endpoint of endpoints) {\n promises.push(window.fetch(endpoint, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n \"Content-Type\": \"application/json;charset=utf-8\"\n },\n body: JSON.stringify(data)\n }));\n }\n\n return Promise.all(promises);\n /* onlypro:start */\n } else {\n return Promise.reject();\n }\n}\n\nexport { applyConsentForwarding };","import { locationRestConsentPost } from \"../wp-api\";\nimport { getOptionsFromWindow } from \"../utils\";\nimport { applyConsentForwarding, getCookieConsentManager } from \".\";\nimport { commonRequest } from \"@devowl-wp/utils\";\n\n/**\n * Save consent to the backend and apply cookies on running session.\n */\nasync function applyConsent({\n consent,\n markAsDoNotTrack = false,\n buttonClicked,\n blocker = 0,\n blockerThumbnail,\n tcfString\n}) {\n const {\n clientWidth,\n clientHeight\n } = document.documentElement;\n const {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n } = getOptionsFromWindow(); // Use `commonRequest` cause on frontend we do not have `wp.i18n` available\n\n const {\n forward,\n uuid,\n cookie_revision,\n decision_in_cookie\n } = await commonRequest({\n location: locationRestConsentPost,\n options: {\n restNamespace,\n restRoot,\n restQuery,\n restNonce\n },\n sendRestNonce: false,\n request: { ...consent,\n markAsDoNotTrack,\n buttonClicked,\n viewPortWidth: clientWidth,\n viewPortHeight: clientHeight,\n blocker,\n blockerThumbnail,\n tcfString\n },\n params: {\n _wp_http_referer: window.location.href\n }\n }); // Does the browser support cookies? Save the decision locally in `window` so `getUserDecision` can fallback\n\n window.rcbDisabledCookieComp = {\n uuid,\n previousUuids: [],\n revision: cookie_revision,\n consent: decision_in_cookie\n };\n await Promise.all([// Apply consent forwarding and wait for all requests\n forward && applyConsentForwarding(forward), getCookieConsentManager().applyCookies({\n type: \"consent\"\n })].filter(Boolean));\n}\n\nexport { applyConsent };","import { getOptionsFromWindow } from \"./getOptionsFromWindow\";\n/**\n * Get the version of Real Cookie Banner as integer.\n */\n\nfunction getCmpVersion(type) {\n const split = getOptionsFromWindow().version.split(\".\");\n return +(type === \"major\" ? split[0] : split.map(i => +i < 10 ? \"0\".concat(i) : i).join(\"\")); // 1.11.1 => 1011000; 2.5.0 => 2005001;\n}\n\nexport { getCmpVersion };","import { CookieConsentManager } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getCmpVersion, getOtherOptionsFromWindow } from \"../utils\";\n\nfunction getCookieConsentManager() {\n const {\n userConsentCookieName,\n revisionHash,\n setCookiesViaManager,\n groups,\n essentialGroup\n } = getOtherOptionsFromWindow();\n\n if (!window.rcbConsentManager) {\n window.rcbConsentManager = new CookieConsentManager({\n decisionCookieName: userConsentCookieName,\n essentialGroupSlug: essentialGroup,\n groups,\n revisionHash,\n supportsCookiesName: \"real_cookie_banner-test\",\n tagManager: setCookiesViaManager,\n skipOptIn: function (cookie) {\n const {\n presetId\n } = cookie;\n return [\"amazon-associates-widget\"].indexOf(presetId) > -1;\n },\n cmpId: process.env.TCF_CMP_ID,\n cmpVersion: getCmpVersion(\"major\"),\n tcfCookieName: \"\".concat(userConsentCookieName, \"-tcf\")\n });\n }\n\n return window.rcbConsentManager;\n}\n\nexport { getCookieConsentManager };","/**\n * Use this if you do not have the Mobx store available in your JavaScript asset.\n * E. g. the `banner.js` does not rely on the mobx store and should access the\n * localized options via `window.realCookieBanner` directly.\n */\nfunction getOptionsFromWindow() {\n return window[process.env.slug.replace(/-([a-z])/g, g => g[1].toUpperCase())];\n}\n\nexport { getOptionsFromWindow };","import { getOptionsFromWindow } from \"./getOptionsFromWindow\";\n/**\n * Use this if you do not have the Mobx store available in your JavaScript asset.\n * E. g. the `banner.js` does not rely on the mobx store and should access the\n * localized options via `window.realCookieBanner.others` directly.\n */\n\nfunction getOtherOptionsFromWindow() {\n return getOptionsFromWindow().others;\n}\n\nexport { getOtherOptionsFromWindow };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t392: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkrealCookieBanner_name_\"] = self[\"webpackChunkrealCookieBanner_name_\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [568], () => (__webpack_require__(9181)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","getManagerDependingVariables","setCookiesViaManager","presetId","useGlobalObjectName","getDataLayer","expectedManagerPresetId","serviceIsManager","managerLabel","isGtm","isMtm","window","getServiceSelection","decisionCookieName","tagManager","groups","essentialGroupSlug","type","selectedGroups","isManagerActive","essentialGroupObj","filter","slug","consentEssentials","id","items","map","decision","getUserDecision","consent","console","warn","iterateServices","async","callback","group","service","_selectedGroups$group","isOptIn","indexOf","useTagManager","apply","options","ready","dataLayerPromise","isManagerOptOut","services","applyOptInReady","allOptInServices","skipOptIn","Promise","resolve","undefined","waitPromises","codeDynamics","codeOptIn","executeCodeOptInWhenNoTagManagerConsentIsGiven","isOnlyWhenNoConsentToManager","isSkipOptIn","push","putHtmlCodeToDom","summary","document","dispatchEvent","CustomEvent","detail","all","applyOptIn","applyOptInOutManagerReady","dataLayer","event","tagManagerOptInEventName","realCookieBannerOptInEvents","setTimeout","tagManagerOptOutEventName","realCookieBannerOptOutEvents","applyOptInOutManager","optInAllReady","deleteHttpCookies","allOptOutServices","optOutReady","codeOptOut","deleteTechnicalDefinitionsAfterOptOut","isEmbeddingOnlyExternalResources","technicalDefinitions","executeCodeOptOutWhenNoTagManagerConsentIsGiven","dynamics","name","pattern","RegExp","regExpPatternFromWildcardName","applyDynamicsToHtml","key","Object","keys","test","useStorage","localStorage","sessionStorage","itemName","setItem","e","tries","getItem","removeItem","deleteCookiesLocally","some","applyOptOut","CookieConsentManager","constructor","this","applyCookies","getOption","getDefaultDecision","respectLegitimateInterests","result","ids","legalBasis","length","getOptions","cookieName","cookieValue","supportsCookies","rcbDisabledCookieComp","split","string","separator","n","out","slice","join","explode","uuidString","revision","uuids","uuid","shift","previousUuids","JSON","parse","BANNER_PRE_DECISION_SHOW_EVENT","OPT_IN_EVENT","OPT_IN_ALL_EVENT","OPT_OUT_EVENT","OPT_OUT_ALL_EVENT","helperCreateResolvablePromise","r","memorizedReadyStatePromises","loading","complete","interactive","LISTEN_TO_EVENTS","fn","state","executed","cb","readyState","reached","memorizeReadyState","addEventListener","then","tmp","replace","concat","str","cookie","DYNAMICS_VARIABLE_REGEXP","src","fullMatch","variableName","prototype","hasOwnProperty","call","HTML_ATTRIBUTE_CAPTURE_PREFIX","HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX","HTML_ATTRIBUTE_CAPTURE_SUFFIX","HTML_ATTRIBUTE_BY","HTML_ATTRIBUTE_COOKIE_IDS","HTML_ATTRIBUTE_VISUAL_PARENT","HTML_ATTRIBUTE_VISUAL_PAINT_MODE","HTML_ATTRIBUTE_INLINE","HTML_ATTRIBUTE_INLINE_STYLE","HTML_ATTRIBUTE_BLOCKER_ID","HTML_TAG_CONSENT_SCRIPT","HTML_ATTRIBUTE_BLOCKER_CONNECTED","HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED","HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE","HTML_ATTRIBUTE_TRANSFORM_WRAPPER","HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE","HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN","HTML_ATTRIBUTE_RESET_PARENT","HTML_ATTRIBUTE_RESET_PARENT_VALUE","HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER","HTML_ATTRIBUTE_GOT_CLICKED","HTML_ATTRIBUTE_GOT_CLICKED_VALUE","HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED","HTML_ATTRIBUTE_THUMBNAIL","WINDOW_ONLOAD_UNBLOCK_REPLACEMENT","html","referenceNode","body","done","error","beforeWriteToken","token","attrs","booleanAttrs","href","content","attr","querySelector","OPT_IN_CONTENT_BLOCKER","dispatchResizeEvent","delay","Event","htmlDecode","input","_doc$querySelector","DOMParser","parseFromString","documentElement","textContent","isUrl","url","parents","element","selector","elements","elem","parentElement","nodeType","Node","ELEMENT_NODE","AsciiSpinner","ms","chars","i","setI","interval","setInterval","clearInterval","h","dangerouslySetInnerHTML","__html","PlainAntdIconAsSvg","icon","rest","svgString","extraSVGAttrs","style","fill","CommonCheckbox","hideCheckbox","isPartial","isChecked","isDisabled","fontSize","onClick","children","after","CheckboxIcon","MinusOutlined","CheckOutlined","bannerOrBlocker","useBannerOrBlocker","isRendered","setIsRendered","layout","borderRadius","headlineFontSize","checkboxBg","checkboxBorderWidth","checkboxBorderColor","checkboxActiveBg","checkboxActiveBorderColor","checkboxActiveColor","customCss","antiAdBlocker","mobile","pageRequestUuid4","visible","checked","disabled","useFontSize","scale","useCheckboxBorderWidth","height","className","cursor","opacity","color","display","background","border","padding","width","marginRight","verticalAlign","lineHeight","boxSizing","commonInlineStyleGroupsCheckbox","CookieProperty","label","value","printValueAs","banner","i18n","yes","no","useValue","wordBreak","c","target","rel","groupBorderWidth","groupBorderColor","borderLeft","paddingLeft","commonInlineStyleGroupsCookieProperty","CookiePropertyList","purpose","provider","providerPrivacyPolicyUrl","ePrivacyUSA","isEssentialGroup","ePrivacyUSAEnabled","types","http","abbr","backgroundColor","local","session","flash","indexedDb","legalRequirement","legitimateInterest","host","duration","durationUnit","isSessionDuration","technicalCookieDefinition","fontFamily","noExpiration","Cookie","onToggleCheck","propertyListProps","descriptionFontSize","marginTop","commonInlineStyleGroupsCookie","marginBottom","Tooltip","title","position","size","always","rounded","noAnimate","bounce","ref","BannerContextFactory","static","context","useBanner","Context","BlockerContextFactory","useBlocker","FooterLink","anchorRest","isHover","setIsHover","onMouseEnter","onMouseLeave","footerDesign","fontColor","hoverFontColor","fontInheritFamily","design","linkTextDecoration","textDecoration","commonInlineStyleFooterLink","FooterPoweredByLink","poweredLink","affiliate","link","innerHTML","description","labelBehind","jsxJoin","components","filtered","Boolean","reduce","acc","curr","useCommonFooterLinks","onClose","putPoweredByLinkInRow","row1","close","poweredByLink","linkTarget","linkPrivacyPolicy","linkImprint","useLegalLinks","targetAttributes","rows","render","row","joinWithAndSeparator","arr","andSeparator","splice","supWithLineHeightFix","useCommonTeachings","disableDataProcessingInUnsafeCountries","disableAgeNotice","disableListServicesNotice","blocker","isEPrivacyUSA","ageNotice","isAgeNotice","listServicesNotice","isListServicesNotice","texts","ageNoticeBanner","consentForwardingExternalHosts","consentForwardingExternalHostsText","tcf","individualPrivacyOpen","individualTexts","individualDescription","essentialGroup","tcfBannerI18n","keepVariablesInTexts","consentForwardingExternalHostsFinalText","useDescription","servicesProcessingUnsafeCountries","flat","tcfVendorsProcessingUnsafeCountries","values","gvl","vendors","vendor","_additionalInformatio","additionalInformation","internationalTransfers","original","vendorConfigurations","useDataProcessingInUnsafeCountries","useAgeNotice","useListServicesNotice","hasBothPlaceholders","nonEssentialGroups","flattenSeparator","listServicesNames","groupIdx","listServiceGroupsNames","listOfServicesAppendix","teachings","legal","privacyPolicy","privacyPolicyExternalUrl","privacyPolicyIsExternalUrl","privacyPolicyLabel","imprint","imprintExternalUrl","imprintIsExternalUrl","imprintLabel","pageByIdUrl","pageIdToPermalink","counter","usePlainCss","css","uniqueId","keep","toString","getElementById","createElement","getElementsByTagName","appendChild","_element$parentNode","parentNode","removeChild","commonInlineStyleBodyTeaching","bodyDesign","teachingsInheritTextAlign","teachingsTextAlign","teachingsInheritFontSize","teachingsFontSize","teachingsInheritFontColor","teachingsFontColor","textAlign","commonInlineStyleBodyTeachingsSeparator","teachingsSeparatorActive","teachingsSeparatorWidth","teachingsSeparatorHeight","teachingsSeparatorColor","maxWidth","commonGroupsInlineStyleLinkMore","linkColor","linkHoverColor","commonInlineStyleHeaderHeadline","headerDesign","fontWeight","hasCloseIcon","paddingRight","scaleMobile","enabled","scalePercent","scalePercentVertical","useWidthOfThisContainerId","replaceWith","additionalVerticalScaling","getSsrPoweredByLink","originalPoweredLink","rcbPoweredByCacheOuterHTML","toLowerCase","outerHTML","matchingSelector","proto","Element","nativeFunction","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","matchingElements","querySelectorAll","matchIdx","applyQueryString","query","merge","search","pool","recreateFetchPool","nonceDeprecationPool","nonce","restRecreateNonceEndpoint","resultPromise","reject","recreateFetch","fetch","ok","newNonce","text","returnNonce","parseResult","method","cloneForFallback","clone","json","lastError","line","startsWith","commonRequest","location","request","routeRequest","params","settings","cookieValueAsParam","multipart","sendRestNonce","apiUrl","URL","restRoot","permalinkPath","rest_route","pathname","foundParams","path","match","getParams","checkParam","_httpCookieInvalidate","stringify","protocol","usePath","namespace","restNamespace","restNonce","_wpnonce","s","_method","restQuery","commonUrlBuilder","allowBody","apiUrlBuilt","hasRestNonce","init","headers","Accept","responseJSON","replay","code","status","detectCorruptRestApiFailed","resultAny","RouteHttpVerb","untrailingslashit","endsWith","trailingslashit","getWebpackPublicPath","g","toUpperCase","publicUrl","chunkFolder","unblock","found","isPseudoRef","loop1","rules","rule","regexp","setAttribute","remove","preDecisionGatewaySupportsCookies","supportsCookiesName","isCrawler","userAgent","navigator","preDecisionGatewayDynamicRequest","timeout","active","revisionHash","predecision","promise","Error","preDecisionGatewayIsDoNotTrack","w","doNotTrack","msDoNotTrack","external","msTrackingProtectionEnabled","isDoNotTrack","preDecisionGatewayUserConsent","locationRestConsentDynamicPredecisionGet","isHiddenDueLegal","imprintHide","privacyPolicyHide","pageId","useBannerAnimation","isMobile","innerWidth","isMobileFirefox","term","animationIn","animationInOnlyMobile","animationOut","animationOutOnlyMobile","useAnimationIn","useAnimationOut","cancelEvent","preventDefault","stopPropagation","HREF_MATCHER","useResettableAnimation","animation","j","setJ","stateAnimation","setStateAnimation","stateAnimationReset","setStateAnimationReset","stateDuration","setStateDuration","stateDurationReset","setStateDurationReset","hexToRgb","hex","exec","parseInt","b","calculateRgba","alpha","getAnimationRelatedState","isVisible","animationInDuration","animationOutDuration","animationInDelay","animationOutDelay","AnimatedCss","animateOnMount","setAnimationRelatedState","classes","backwardStyle","transition","animationDelay","animationDuration","pointerEvents","useRenderedHeightsAsCssVars","cssId","cssElement","previousHeight","recalculate","currentHeight","getBoundingClientRect","Math","floor","animateContainer","ResizeObserver","ro","observe","disconnect","removeEventListener","useBannerButtonCallbacks","onSave","updateGroupChecked","updateCookieChecked","updateIndividualPrivacyOpen","activeAction","buttonClickedAll","buttonClickedEssentials","buttonClickedCloseIcon","buttonClickedCustom","acceptAll","forEach","acceptEssentials","isCloseIcon","cookieId","acceptIndividual","openIndividualPrivacy","closeIcon","Portal","tag","renderInContainer","renderIn","el","classList","add","CloseIcon","tooltipText","framed","tooltipAlways","thickness","idCloseIconNotPortaled","idCloseIconPortaled","idCloseIconPlaceholder","rect","y","x","BannerCloseIcon","closeWithoutSaving","buttonClicked","container","clientWidth","BannerHeader","_","logo","logoRetina","showCloseIcon","headline","headerTitlePrivacyPolicyHistory","useRetina","devicePixelRatio","useLogo","useHeadline","dialogBorderRadius","borderWidth","borderColor","restDesign","inheritBg","bg","useType","useBorderWidth","p","zIndex","top","borderTop","borderRight","bannerHeaderInlineStyleContainer","bannerMaxWidth","inheritTextAlign","logoPosition","restHeaderDesign","individualLayout","useTextAlign","inheritBannerMaxWidth","margin","justifyContent","alignItems","flexDirection","bannerHeaderInlineStyle","alt","logoMaxHeight","logoMargin","logoFitDim","logoRetinaFitDim","isRetina","useFitDim","m","bannerHeaderInlineStyleLogo","BannerGroupSectionTitle","headlineFontColor","headlineFontWeight","bannerGroupsInlineStyleTitle","descriptionFontColor","bannerGroupsInlineStyleDescription","CommonLinkMore","onToggle","showMore","hideMore","isOpen","setIsOpen","newOpen","BannerCookie","_consent$groups","handleCheckbox","BannerGroup","_consent$groups$id","previewCheckboxActiveState","sort","groupBg","groupBorderRadius","groupPadding","groupInheritBg","useGroupBorderWidth","bannerGroupsInlineStyleGroup","BannerGroupList","groupSpacing","useGroups","clear","bannerGroupsInlineStyle","index","BannerDottedGroup","groupsFirstView","dottedGroupsInheritFontSize","dottedGroupsFontSize","whiteSpace","bannerInlineStyleBodyDottedGroupItem","dottedGroupsBulletColor","bannerInlineStyleBodyDottedGroupBullet","BannerDottedGroupList","showGroups","lineBreak","bannerInlineStyleBodyDottedGroups","BannerHistorySelect","selectedId","setSelectedId","history","selectHistoryEntry","historyLabel","historySelectNone","selectedHistoryItem","_history$filter","optionStyle","bannerInlineStyleHistorySelectOption","descriptionInheritFontSize","borderBottom","bannerInlineStyleHistorySelect","onChange","isUnblock","isForwarded","created","Date","toLocaleString","lang","bannerButtonsInlineStyleCommon","order","hoverBg","hoverBorderColor","isTwoButtonRowLayout","fullWidth","marginLeft","overflow","outline","flex","bannerButtonsInlineStyleAcceptEssentials","isTcf","acceptEssentialsFontSize","acceptEssentialsBg","acceptEssentialsTextAlign","acceptEssentialsBorderColor","acceptEssentialsPadding","acceptEssentialsBorderWidth","acceptEssentialsFontColor","acceptEssentialsFontWeight","acceptEssentialsHoverBg","acceptEssentialsHoverFontColor","acceptEssentialsHoverBorderColor","acceptAllFontWeight","acceptAllFontSize","acceptAllPadding","bannerButtonsInlineStyleAcceptIndividual","acceptIndividualFontSize","acceptIndividualBg","acceptIndividualTextAlign","acceptIndividualBorderColor","acceptIndividualPadding","acceptIndividualBorderWidth","acceptIndividualFontColor","acceptIndividualFontWeight","acceptIndividualHoverBg","acceptIndividualHoverFontColor","acceptIndividualHoverBorderColor","bannerButtonsInlineStyleSave","saveButton","bannerButtonsInlineStyleAcceptAll","acceptAllBg","acceptAllTextAlign","acceptAllBorderColor","acceptAllBorderWidth","acceptAllFontColor","acceptAllHoverBg","acceptAllHoverFontColor","acceptAllHoverBorderColor","BannerButton","inlineStyle","busyOnClick","isBusy","setIsBusy","handleOnClick","acceptAllOneRowLayout","acceptEssentialsUseAcceptAll","useAcceptEssentials","interactionAttr","useStyleFn","BannerButtonList","buttonOrder","buttonOrderString","acceptAllText","acceptEssentialsText","acceptIndividualText","saveButtonType","useAcceptAll","saveButtonUseAcceptAll","save","didGroupFirstChange","productionNotice","buttonOrderAll","essential","buttonOrderEssential","individual","buttonOrderIndividual","buttonOrderSave","buttonToOrder","previous","orderToButton","handleAll","handleEssentials","handleIndividual","BannerBody","leftSideContainerRef","rightSideContainerRef","_document$getElementB","leftSideId","rightSideId","contentId","stackOrGroups","leftSide","usePadding","float","paddingTop","paddingBottom","bannerInlineStylesLeftSide","descriptionTextAlign","bannerInlineStyleBodyDescription","teaching","rightSide","dialogMaxWidth","inheritDialogMaxWidth","flexWrap","bannerInlineStylesRightSide","bannerInlineStyleBodyContainer","bannerInlineStyleBody","BannerFooter","isConsentRecord","handleClose","links","renderLinks","useCommonFooterLink","bottom","bannerFooterInlineStyleContainer","bannerFooterInlineStyle","BannerContent","current","currentRef","showHeader","hideHeader","showScrollBoxShadow","setShowScrollBoxShadow","updateShowScrollBoxShadow","clientHeight","scrollHeight","scrollTop","offsetHeight","hasScrollbar","scrolledToBottom","ceil","platform","headerRef","footerRef","innerHeight","mobileMaxHeight","maxHeight","useMobileMaxHeight","closeIconDistance","bannerContentInlineStyle","useDesignBorderWidth","bannerHeaderInlineStyleSeparator","bannerFooterInlineStyleSeparator","BannerAnimatedContent","animationVisible","stateAnimationIn","stateAnimationInDuration","stateAnimationOut","stateAnimationOutDuration","dialogPosition","dialogMargin","bannerPosition","boxShadowEnabled","boxShadowOffsetX","boxShadowOffsetY","boxShadowBlurRadius","boxShadowSpreadRadius","boxShadowColor","boxShadowColorAlpha","alignment","mobileAlignment","alignSelf","boxShadow","bannerContentInlineStyleInner","Banner","overlay","overlayBlur","skipOverlay","gotHiddenDueLegal","hiddenDueLegal","show","dataset","rcbPreviousOverflow","useRestrictScrollWhenVisible","setInvalidate","updateSize","fetchHistory","originalConsent","setOriginalConsent","consentGroups","useBannerHistory","openBanner","openHistory","revokeConsent","handleType","successMessage","eventListenerDocumentClick","parent","getAttribute","eventListenerHashChange","hash","substring","useBannerActionLinks","bannerOverlayInlineStyleAlignment","overlayBg","overlayBgAlpha","left","right","bannerOverlayInlineStyle","locationRestConsentGet","WebsiteBanner","customizeValuesBanner","tcfMetadata","userConsentCookieName","bannerI18n","isCurrentlyInTranslationEditorPreview","getOtherOptionsFromWindow","userDecision","tcfObject","tcfMeta","useTcf","toggleOverlay","useBannerAnimationCallback","useDuration","trim","useBannerToggleOverlay","updateTcfFilterBy","toggleWithActiveAction","setContextValue","refreshSiteAfterSave","args","alert","reload","newFilter","tcfFilterBy","opened","newConsent","groupId","cookieIds","additionalChanges","useBannerStateContextCallbacks","applyConsent","getCookieConsentManager","tcfString","contextValue","markAsDoNotTrack","appliedConsent","getOptionsFromWindow","customizeIdsBanner","others","isAcceptAllForBots","isPreventPreDecision","hasDynamicPreDecisions","isRespectDoNotTrack","resultIfBot","preventPreDecision","classNames","handler","useOptions","gateways","onIsDoNotTrack","onShowCookieBanner","gateway","applyWithOptions","preDecisionGateway","viewPortWidth","viewPortHeight","_wp_http_referer","useBannerPreDecisionGateway","listener","useBannerConsentListener","BannerContext","Provider","waitObject","getObject","delayNextCheck","maxTries","amazonWidgetsSlotNum","locationRestConsentClearDelete","consentSync","typeOrId","allCookies","relevance","td","already","relevantCookie","a","consentGiven","cookieOptIn","foundCookie","consentAll","amznAssoWidgetHtmlId","slotNum","adContainer","et_pb_map_init","jQuery","google","other","tcfCmpApi","ensureBodyElement","Array","allUuids","printConsentUuidsToHTMLElement","cookies","deleteCookiesServer","consentApi","BannerProductionNotice","isPro","isLicensed","isDevLicense","noLicense","devLicense","useText","locationRestConsentPost","applyConsentForwarding","endpoints","data","promises","endpoint","credentials","blockerThumbnail","forward","cookie_revision","decision_in_cookie","getCmpVersion","version","rcbConsentManager","cmpId","cmpVersion","tcfCookieName","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","d","definition","o","defineProperty","enumerable","get","globalThis","Function","obj","prop","Symbol","toStringTag","scriptUrl","importScripts","currentScript","scripts","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}
public/dist/blocker.lite.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var realCookieBanner_blocker;(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[518],{3677:(e,t,o)=>{o.r(t);var n=o(6028),r=o(4548);const i="RCB/OptIn/ContentBlocker/All",c="listenOptInJqueryFnForContentBlockerNow";function s(e){const t=window.jQuery;if(null==t||!t.fn)return;const o=t.fn;for(const n of e){const e=o[n];if(!e)continue;const s=o[c]=o[c]||[];if(s.indexOf(n)>-1)continue;s.push(n);const l=Object.getOwnPropertyDescriptors(e);delete l.length,delete l.name,delete l.prototype,o[n]=function(...o){const n=()=>e.apply(t(this),o);return this.length?this.each((function(){const e=Array.prototype.slice.call(this.querySelectorAll("[".concat(r._W,"]")));this.getAttribute(r._W)&&e.push(this),e.length?Promise.all(e.map((e=>new Promise((t=>e.addEventListener(i,t)))))).then((()=>n())):n()})):n()},Object.defineProperties(o[n],l)}}const l="rcbJQueryEventListenerMemorize";function a(e,t,o){const n="".concat(l,"_").concat(o),{jQuery:r}=e.defaultView||e.parentWindow;if(!r)return;const{event:i,Event:c}=r;i&&c&&!i[n]&&Object.assign(i,{[n]:new Promise((e=>r(t).on(o,e)))})}var d=o(3438),u=o(5213),p=o(6423),b=o(7169),f=o(9707),m=o(1347),v=o(4741);class g{static inner({layout:{type:e,dialogBorderRadius:t},design:{borderWidth:o,borderColor:n,textAlign:r,fontColor:i,fontInheritFamily:c,fontFamily:s},customCss:{antiAdBlocker:l},blocker:{visualType:a}}){const d="wrapped"===a,u={textAlign:r,fontFamily:c?void 0:s,color:i,borderRadius:"dialog"===e?+t:void 0,border:"banner"===e&&o>0?"".concat(o,"px solid ").concat(n):void 0,position:"relative",padding:d?"30px 50px":void 0,overflow:d?"hidden":void 0};return{className:"wp-exclude-emoji ".concat("y"===l?"":"rcb-inner"),style:u}}static innerBackground({customCss:{antiAdBlocker:e},blocker:{visualType:t,visualThumbnail:o,visualBlur:n}}){const r="wrapped"===t,i={position:"absolute",top:0,left:0,right:0,bottom:0,display:r?"block":"none",filter:n>0?"blur(".concat(n,"px)"):void 0};return r&&(i.background="url('".concat(o.url,"') no-repeat center center"),i.backgroundSize="cover"),{className:"y"===e?"":"rcb-inner-bg",style:i}}static content({blocker:{visualType:e},customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-content",style:{boxShadow:"wrapped"===e?"rgb(0 0 0 / 35%) 0px 0px 0px 7px, #0000004d 0px 0px 100px 30px":void 0,position:"relative"}}}}class h{static headerContainer({layout:{type:e,dialogBorderRadius:t},design:{borderWidth:o,borderColor:n,...r},headerDesign:{inheritBg:i,bg:c,padding:s},customCss:{antiAdBlocker:l}}){const a={padding:s.map((e=>"".concat(e,"px"))).join(" "),background:i?r.bg:c,borderRadius:"dialog"===e?"".concat(t,"px ").concat(t,"px 0 0"):void 0};return"dialog"===e&&o>0&&(a.borderTop="".concat(o,"px solid ").concat(n),a.borderLeft=a.borderTop,a.borderRight=a.borderTop),{className:"y"===l?void 0:"rcb-header-container",style:a}}static header({design:{textAlign:e},headerDesign:{inheritTextAlign:t,...o},customCss:{antiAdBlocker:n}}){const r=t?e:o.textAlign;return{className:"y"===n?void 0:"rcb-header",style:{margin:"auto",display:"flex",justifyContent:"center"===r?"center":"right"===r?"flex-end":void 0,alignItems:"center",position:"relative"}}}static headerSeparator({layout:{type:e},design:t,headerDesign:{borderWidth:o,borderColor:n},customCss:{antiAdBlocker:r}}){const i={height:+o,background:n};return"dialog"===e&&t.borderWidth>0&&(i.borderLeft="".concat(t.borderWidth,"px solid ").concat(t.borderColor),i.borderRight=i.borderLeft),{className:"y"===r?void 0:"rcb-header-separator",style:i}}}var y=o(6730),A=o(7029).h;const C=({closeIcon:e})=>{const t=(0,m._)(),{blocker:{name:o},texts:{blockerHeadline:n}}=t;return A("div",h.headerContainer(t),A("div",h.header(t),A("div",(0,y.a)(t,!!e),n.replace(/{{name}}/g,o)),e))};var k=o(6268);class x{static bodyContainer({layout:{type:e,dialogBorderRadius:t},design:{bg:o,borderWidth:n,borderColor:r},bodyDesign:{padding:i},customCss:{antiAdBlocker:c},showFooter:s}){const l={background:o,padding:i.map((e=>"".concat(e,"px"))).join(" "),borderRadius:s||"dialog"!==e?void 0:"0 0 ".concat(t,"px ").concat(t,"px"),lineHeight:1.4,overflow:"auto"};return"dialog"===e&&n>0&&(l.borderLeft="".concat(n,"px solid ").concat(r),l.borderRight=l.borderLeft,s||(l.borderBottom=l.borderLeft)),{className:"y"===c?void 0:"rcb-body-container",style:l}}static body({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-body",style:{margin:"auto"}}}static description({design:{fontSize:e},bodyDesign:{descriptionInheritFontSize:t,descriptionFontSize:o},individualLayout:{descriptionTextAlign:n},customCss:{antiAdBlocker:r}}){return{className:"y"===r?void 0:"rcb-description",style:{marginBottom:10,fontSize:t?+e:+o,textAlign:n}}}}class w{static topSide({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-tb-top",style:{marginBottom:15}}}static bottomSide({design:{bg:e},customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-tb-bottom",style:{background:e}}}}var E=o(8346),B=o(7613),S=o(4902),_=o(7029).h;const N=({inlineStyle:e,type:t,onClick:o,children:n,framed:r,busyOnClick:i})=>{if("hide"===t)return null;const[c,s]=(0,u.eJ)(!1),l=(0,u.I4)((e=>{c||(i&&s(!0),null==o||o(e))}),[o,c,i]),[a,d]=(0,u.eJ)(!1),p=(0,m._)(),b={onClick:l,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1)};return _("div",(0,v.Z)({},"button"===t?b:{},class{static save({decision:{acceptAll:e},layout:{borderRadius:t},bodyDesign:{acceptAllFontSize:o,acceptAllBg:n,acceptAllTextAlign:r,acceptAllBorderColor:i,acceptAllPadding:c,acceptAllBorderWidth:s,acceptAllFontColor:l,acceptAllHoverBg:a,acceptAllHoverFontColor:d,acceptAllHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-all",type:e,borderRadius:t,bg:n,hoverBg:a,fontSize:o,textAlign:r,fontColor:l,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,antiAdBlocker:p},b,f)}static showInfo({decision:{acceptIndividual:e},layout:{borderRadius:t},bodyDesign:{acceptIndividualFontSize:o,acceptIndividualBg:n,acceptIndividualTextAlign:r,acceptIndividualBorderColor:i,acceptIndividualPadding:c,acceptIndividualBorderWidth:s,acceptIndividualFontColor:l,acceptIndividualHoverBg:a,acceptIndividualHoverFontColor:d,acceptIndividualHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-individual",type:e,borderRadius:t,bg:n,hoverBg:a,fontSize:o,textAlign:r,fontColor:l,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,antiAdBlocker:p},b,f)}static hero({decision:{acceptAll:e},layout:{borderRadius:t},bodyDesign:{acceptAllFontSize:o,acceptAllBg:n,acceptAllTextAlign:r,acceptAllBorderColor:i,acceptAllPadding:c,acceptAllBorderWidth:s,acceptAllFontColor:l,acceptAllHoverBg:a,acceptAllHoverFontColor:d,acceptAllHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-all",type:e,borderRadius:t,bg:n,hoverBg:a,fontSize:o,textAlign:r,fontColor:l,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,boxShadow:"rgb(0 0 0 / 15%) 0px 0px 100px 30px, rgb(0 0 0 / 40%) 0px 2px 5px 1px",zIndex:9,antiAdBlocker:p},b,f)}static common({name:e,type:t,borderRadius:o,bg:n,hoverBg:r,fontSize:i,textAlign:c,fontColor:s,hoverFontColor:l,borderWidth:a,borderColor:d,hoverBorderColor:u,padding:p,boxShadow:b,zIndex:f,antiAdBlocker:m},v,g){const h={textDecoration:"link"===t?"underline":"none",borderRadius:+o,cursor:"button"===t?"pointer":void 0,backgroundColor:"button"===t?v?r:n:void 0,fontSize:+i,textAlign:c,color:v?l:s,transition:"background-color 250ms, color 250ms, border-color 250ms",marginBottom:10,border:"button"===t&&a>0?"".concat(a,"px solid ").concat(v?u:d):void 0,padding:p.map((e=>"".concat(e,"px"))).join(" "),overflow:"hidden",outline:g?"rgb(255, 94, 94) solid 5px":void 0,boxShadow:b,zIndex:f};return{className:"y"===m?void 0:"rcb-btn-".concat(e),style:h}}}[e](p,a,r)),_("span","link"===t?{...b,style:{cursor:"pointer"}}:{},c?_(S.X,null):n))};var T=o(229),I=o(7029).h;const L=()=>{const e=(0,m._)(),[t,o]=(0,u.eJ)(!1),{bodyDesign:{teachingsSeparatorActive:n},decision:{acceptAll:r,acceptIndividual:i},texts:{blockerLoadButton:c,blockerLinkShowMissing:s,blockerAcceptInfo:l},blocker:{services:a},consent:d,groups:p,onUnblock:b,productionNotice:f,i18n:{close:g}}=e,h=(0,u.Ye)((()=>{const e=[],t=[];for(const e of Object.values(d.groups))t.push(...e);for(const{items:o}of p)for(const n of o)a.indexOf(n.id)>-1&&-1===t.indexOf(n.id)&&e.push(n);return e}),[p,a,d]),{description:y,teachings:A}=(0,k.k)({disableDataProcessingInUnsafeCountries:0===h.map((({ePrivacyUSA:e})=>e)).filter(Boolean).length,disableListServicesNotice:!0});return I("div",x.bodyContainer(e),I("div",x.body(e),I("div",w.topSide(e),I("div",x.description(e),I("span",{dangerouslySetInnerHTML:{__html:y.replace(/\n/gm,"<br />")}}),!!y&&n&&I("div",null,I("span",(0,E.V)(e))),A.map((t=>I("span",(0,v.Z)({key:t},(0,B.W)(e),{dangerouslySetInnerHTML:{__html:t}})))),I("span",(0,v.Z)({},(0,B.W)(e),{dangerouslySetInnerHTML:{__html:l}}))),I(N,{type:"hide"===i?"link":i,inlineStyle:"showInfo",onClick:()=>o(!t)},t?g:s),t&&I("div",class{static cookieScroll({design:{fontSize:e},bodyDesign:{descriptionInheritFontSize:t,descriptionFontSize:o},customCss:{antiAdBlocker:n}}){return{className:"y"===n?void 0:"rcb-cookie-scroll",style:{fontSize:t?+e:+o,textAlign:"left",marginBottom:10,maxHeight:400,overflowY:"scroll",paddingRight:10}}}}.cookieScroll(e),h.map((e=>I(T.V,{key:e.id,cookie:e,checked:!0,disabled:!0}))))),I("div",w.bottomSide(e),I(N,{type:"hide"===r?"button":r,inlineStyle:"save",onClick:e=>b(e),busyOnClick:!0},c),f)))};class O{static footerContainer({layout:{type:e,dialogBorderRadius:t},design:o,footerDesign:{inheritBg:n,bg:r,inheritTextAlign:i,textAlign:c,padding:s,fontSize:l,fontColor:a},customCss:{antiAdBlocker:d}}){const u={padding:s.map((e=>"".concat(e,"px"))).join(" "),background:n?o.bg:r,borderRadius:"dialog"===e?"0 0 ".concat(t,"px ").concat(t,"px"):void 0,fontSize:+l,color:a,textAlign:i?o.textAlign:c};return"dialog"===e&&o.borderWidth>0&&(u.borderBottom="".concat(o.borderWidth,"px solid ").concat(o.borderColor),u.borderLeft=u.borderBottom,u.borderRight=u.borderBottom),{className:"y"===d?void 0:"rcb-footer-container",style:u}}static footer({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-footer",style:{margin:"auto",lineHeight:1.8}}}static footerSeparator({layout:{type:e},design:t,footerDesign:{borderWidth:o,borderColor:n},customCss:{antiAdBlocker:r}}){const i={height:+o,background:n};return"dialog"===e&&t.borderWidth>0&&(i.borderLeft="".concat(t.borderWidth,"px solid ").concat(t.borderColor),i.borderRight=i.borderLeft),{className:"y"===r?void 0:"rcb-footer-separator",style:i}}}var W=o(6092),P=o(7029).h;const V=()=>{const e=(0,m._)(),{rows:t,render:o}=(0,W.g)({putPoweredByLinkInRow:1});return P("div",O.footerContainer(e),P("div",O.footer(e),o(t)))};var H=o(7029).h;const z=({closeIcon:e})=>{const t=(0,m._)(),{showFooter:o,paintMode:n}=t,r=(0,u.sO)(),i="instantInViewport"===n||function(e){const[t,o]=(0,u.eJ)(!1);return(0,u.d4)((()=>{var t;e.current&&(t=e.current,new Promise((e=>{window.IntersectionObserver?new IntersectionObserver(((t,o)=>{t.forEach((({isIntersecting:t})=>{t&&(e(),o.disconnect())}))})).observe(t):e()}))).then((()=>{o(!0)}))}),[]),t}(r);return H("div",(0,v.Z)({},g.inner(t),{ref:r}),i&&H("div",g.innerBackground(t)),H("div",g.content(t),H(C,{closeIcon:e}),H("div",h.headerSeparator(t)),H(L,null),!!o&&H(u.HY,null,H("div",O.footerSeparator(t)),H(V,null))))};var R=o(7029).h;const F=()=>{const e=(0,m._)(),{blocker:{visualType:t,visualThumbnail:o}}=e;return R(z,null)};var M=o(1100),j=o(7029).h;const D=({poweredLink:e,blocker:t,paintMode:o,setVisualAsLastClickedVisual:n})=>{const{customizeValuesBanner:{layout:i,decision:c,legal:s,design:l,headerDesign:a,bodyDesign:v,footerDesign:g,texts:h,individualLayout:y,saveButton:A,group:C,individualTexts:k,customCss:x},pageIdToPermalink:w,consentForwardingExternalHosts:E,isTcf:B,isEPrivacyUSA:S,isAgeNotice:_,isListServicesNotice:N,groups:T,userConsentCookieName:I,bannerI18n:L,affiliate:O,isCurrentlyInTranslationEditorPreview:W,pageByIdUrl:P}=(0,d.u)(),V=(0,b.h)(I),H={borderWidth:l.borderWidth||1,borderColor:0===l.borderWidth?a.borderWidth>0?a.borderColor:g.borderWidth>0?g.borderColor:l.fontColor:l.borderColor},[z]=(0,u.eJ)({layout:{...i},decision:{...c},legal:{...s},design:{...l,...H},headerDesign:{...a},bodyDesign:{...v},footerDesign:{...g},texts:{...h},individualLayout:{...y},saveButton:{...A},group:{...C},individualTexts:{...k},customCss:{...x},productionNotice:j(M.Z,null),pageIdToPermalink:w,consentForwardingExternalHosts:E,paintMode:o,pageByIdUrl:P,groups:T,poweredLink:e,isTcf:B,ePrivacyUSA:S,ageNotice:_,listServicesNotice:N,blocker:t,i18n:L,keepVariablesInTexts:W,affiliate:O,consent:{groups:{...!1===V?{}:V.consent}},onUnblock:e=>{!async function(e){const{essentialGroup:t,groups:o,isTcf:n,tcf:r,tcfMetadata:i,userConsentCookieName:c}=(0,d.u)(),{id:s,services:l,visualThumbnail:a}=e,u=(0,b.h)(c),[f]=o.filter((({slug:e})=>e===t)),m=!1===u?{groups:{[f.id]:f.items.map((({id:e})=>e))}}:{groups:u.consent};for(const{id:e,items:t}of o)for(const{id:o}of t)if(l.indexOf(o)>-1){var v;if((null===(v=m.groups[e])||void 0===v?void 0:v.indexOf(o))>-1)continue;m.groups[e]=m.groups[e]||[],m.groups[e].push(o)}await(0,p.$)({consent:m,buttonClicked:"unblock",blocker:s,blockerThumbnail:null!=a&&a.embedId?"".concat(a.embedId,"-").concat(a.fileMd5):void 0,tcfString:void 0})}(t),n(e)}});(0,f.G)([".elementor-background-overlay ~ [".concat(r._W,"] { z-index: 99; }")].join(""));const R=m.Z.Context();return j(R.Provider,{value:z},j(F,null))};let q=!1;function Y(e){q=e}function K(){return q}function G(e,t,o,n){return n(e,"string"==typeof t?t.split(",").map(Number):t,o)}async function U(e){const t=e.getAttribute(r.Ng);e.removeAttribute(r.Ng);let o=e.outerHTML.substr(r.v4.length+1);o=o.substr(0,o.length-r.v4.length-3),o=o.replace(new RegExp('type="application/consent"'),""),o="<style ".concat(r.Ng,'="1" ').concat(o).concat(t,"</style>"),e.parentElement.replaceChild((new DOMParser).parseFromString(o,"text/html").querySelector("style"),e)}var J=o(7033);function Q(e,t){let o=0;return[e.replace(/(url\s*\(["'\s]*)([^"]+dummy\.(?:png|css))\?consent-required=([0-9,]+)&consent-by=(\w+)&consent-id=(\d+)&consent-original-url=([^-]+)-/gm,((e,n,r,i,c,s,l)=>{const{consent:a}=G(c,i,+s,t);return a||o++,a?"".concat(n).concat((0,J.l)(atob(l))):e})),o]}var Z=o(8935);function $(e,t,o){const n=t+10*+(0,Z.K)(e.selectorText)[0].specificity.replace(/,/g,"")+function(e,t){var o;return"important"===(null===(o=e.style)||void 0===o?void 0:o.getPropertyPriority(t))?1e5:0}(e,o);return{selector:e.selectorText,specificity:n}}var X=o(7932);function ee(e,t,o,n){for(const r in e){const i=e[r];if(i instanceof CSSStyleRule)try{if((0,X.D)(t,i.selectorText)){const e=i.style[n];void 0!==e&&""!==e&&o.push({...$(i,o.length,n),style:e})}}catch(e){}}}function te(e,t){const o=function(e,t){const o=[];!function(e,t,o){const{styleSheets:n}=document;for(const r in n){const i=n[r];let c;try{c=i.cssRules||i.rules}catch(e){continue}c&&ee(c,e,t,o)}}(e,o,t);const n=function(e,t){const o=e.style[t];return o?{selector:"! undefined !",specificity:1e4+(new String(o).match(/\s!important/gi)?1e5:0),style:o}:void 0}(e,t);if(n&&o.push(n),o.length)return function(e){e.sort(((e,t)=>e.specificity>t.specificity?-1:e.specificity<t.specificity?1:0))}(o),o}(e,t);return null==o?void 0:o[0].style}const oe=["-fit-aspect-ratio","wp-block-embed__wrapper","x-frame-inner","fusion-video"],ne={"max-height":"initial",height:"auto",padding:0},re="consent-cb-memo-style";function ie(e){var t;const{parentElement:o}=e;if(!o)return!1;const n=(null===(t=e.style)||void 0===t?void 0:t.position)||"initial",{style:{position:r,padding:i}}=o;return"absolute"===n&&"relative"===r&&i.indexOf("%")>-1}function ce(e,t){var o;const{parentElement:n}=e,i=[n,null==n?void 0:n.parentElement,null==n||null===(o=n.parentElement)||void 0===o?void 0:o.parentElement].filter(Boolean);for(const o of i){if(!o.hasAttribute(r.of)){const t=oe.filter((e=>o.className.indexOf(e)>-1)).length>0,i=o===n&&ie(e)||t||[0,"0%","0px"].indexOf(te(o,"height"))>-1;o.setAttribute(r.of,i?"1":"0")}if(t&&"1"===o.getAttribute(r.of)){const e=o.hasAttribute(r.Kh);let t=o.getAttribute("style")||"";o.removeAttribute(r.Kh),e||(t=t.replace(/display:\s*none\s*!important;/,"")),o.setAttribute(r.Wm,r.Qt),o.setAttribute(re,t);for(const e in ne)o.style.setProperty(e,ne[e],"important");"absolute"===window.getComputedStyle(o).position&&o.style.setProperty("position","static","important")}else!t&&o.hasAttribute(r.Wm)&&(o.setAttribute("style",o.getAttribute(re)||""),o.removeAttribute(re),o.removeAttribute(r.Wm))}}var se=o(9586);function le(e,t=!1){const{top:o,left:n,bottom:r,right:i,height:c,width:s}=e.getBoundingClientRect(),{innerWidth:l,innerHeight:a}=window;if(t){const e=n<=l&&n+s>=0;return o<=a&&o+c>=0&&e}{const{clientHeight:e,clientWidth:t}=document.documentElement;return o>=0&&n>=0&&r<=(a||e)&&i<=(l||t)}}const ae="children:";function de(e,t={}){if(!e.parentElement)return[e,"none"];let o=["a"].indexOf(e.parentElement.tagName.toLowerCase())>-1;if(e.hasAttribute(r.NY))o=e.getAttribute(r.NY);else{const{className:n}=e.parentElement;for(const e in t)if(n.indexOf(e)>-1){o=t[e];break}}if(o){if(!0===o||"true"===o)return[e.parentElement,"parent"];if(!isNaN(+o)){let t=e;for(let e=0;e<+o;e++){if(!t.parentElement)return[t,"parentZ"];t=t.parentElement}return[t,"parentZ"]}if("string"==typeof o){if(o.startsWith(ae))return[e.querySelector(o.substr(ae.length)),"childrenSelector"];for(let t=e;t;t=t.parentElement)if((0,X.D)(t,o))return[t,"parentSelector"]}}return[e,"none"]}function ue(e,t){const o=function(e){const t=[];for(;e=e.previousElementSibling;)t.push(e);return t}(e).filter((e=>!!e.offsetParent||!!t&&t(e)));return o.length?o[0]:void 0}function pe(e){return e.hasAttribute(r.YO)}function be(e){return e.offsetParent?e:ue(e,pe)}let fe,me=0;function ve({node:e,blocker:t,setVisualParentIfClassOfParent:o,dependantVisibilityContainers:n,mount:i}){var c,s;if(!t)return;e.hasAttribute(r.Gn)||(e.setAttribute(r.Gn,me.toString()),me++);const l=+e.getAttribute(r.Gn),{parentElement:a}=e,{shouldForceToShowVisual:d=!1,isVisual:u,id:p}=t,b=(null===(c=e.style)||void 0===c?void 0:c.position)||"initial",f=["fixed","absolute","sticky"].indexOf(b)>-1,m=[document.body,document.head,document.querySelector("html")].indexOf(a)>-1,v=e.getAttribute(r.YO),[g,h]=de(e,o||{}),y=!!g.offsetParent,A=()=>{if(-1===["script","link"].indexOf(null==e?void 0:e.tagName.toLowerCase())&&"childrenSelector"!==h){const{style:t}=e;"none"===t.getPropertyValue("display")&&"important"===t.getPropertyPriority("display")?e.setAttribute(r.Kh,"1"):t.setProperty("display","none","important")}};if(m||f&&!ie(e)&&!d||!u||v||!y&&!d){if(!y&&n){const t=(0,se.w)(e,n.join(","));if(t.length>0&&!t[0].offsetParent)return}return void A()}const C=function(e,t){var o,n,i,c;const{previousElementSibling:s}=e,l=e.getAttribute(r.Kx),a=null===(o=e.parentElement)||void 0===o?void 0:o.previousElementSibling,d=null===(n=e.parentElement)||void 0===n||null===(i=n.parentElement)||void 0===i?void 0:i.previousElementSibling,u=[ue(e,pe),s,null==s?void 0:s.lastElementChild,a,null==a?void 0:a.lastElementChild,d,null==d?void 0:d.lastElementChild,null==d||null===(c=d.lastElementChild)||void 0===c?void 0:c.lastElementChild].filter(Boolean).map(be).filter(Boolean);for(const e of u)if(+e.getAttribute(r.CT)===t&&e.hasAttribute(r.YO)){const t=e.nextElementSibling;return!(t&&l&&t.hasAttribute(r.Kx)&&t.getAttribute(r.Kx)!==l)&&e}return!1}(g,p);if(C)return e.setAttribute(r.YO,C.getAttribute(r.YO)),ce(g,!0),void A();const{container:k,thumbnail:x}=function(e,t,o){const n=document.createElement("div"),{style:i}=n,c=e.getAttribute(r.Gn);let s;if(n.setAttribute(r.YO,c),n.className="rcb-content-blocker",i.setProperty("max-height","initial"),i.setProperty("pointer-events","all"),e.setAttribute(r.YO,c),t.parentNode.insertBefore(n,t),[r.d3,r.CT,r._W].forEach((t=>{e.hasAttribute(t)&&n.setAttribute(t,e.getAttribute(t))})),"childrenSelector"===o&&t.setAttribute(r.YO,c),e.hasAttribute(r.Kx))s=JSON.parse(e.getAttribute(r.Kx));else{const t=e.querySelectorAll("[".concat(r.Kx));t.length>0&&(s=JSON.parse(t[0].getAttribute(r.Kx)))}return("childrenSelector"===o?t:e).style.setProperty("display","none","important"),{container:n,thumbnail:s}}(e,g,h),w=o=>{k.setAttribute(r.He,o),i({container:k,blocker:t,connectedCounter:l,onClick:e=>{null==e||e.stopPropagation(),ge(l)},blockedNode:e,thumbnail:x,paintMode:o}),ce(g,!0)};le(k,!0)?w("instantInViewport"):"instantInViewport"===(null===(s=document.querySelector(".rcb-content-blocker[".concat(r.YO,'="').concat(l-1,'"][').concat(r.He,"]")))||void 0===s?void 0:s.getAttribute(r.He))?w("instant"):window.requestIdleCallback?window.requestIdleCallback((()=>w("idleCallback"))):setTimeout((()=>w("instant")))}function ge(e){fe=e}function he(e){const t=e.getAttribute(r.YO),o=e.getAttribute(r.CT),n=e.getAttribute(r.d3);let i="".concat(fe)===t;if(i)e.setAttribute(r.fq,r.WK);else{const[t]=(0,se.w)(e,"[".concat(r.fq,'="').concat(r.WK,'"][').concat(r.CT,'="').concat(o,'"][').concat(r.d3,'="').concat(n,'"]'));t&&(t.setAttribute(r.fq,r.jk),i=!0)}return i}let ye=!1;function Ae(e){if(ye)return;const{jQuery:t}=e.defaultView||e.parentWindow;if(!t)return;const o=t.fn.ready;t.fn.ready=function(e){if(e)if(K()){let o=!1;document.addEventListener(i,(()=>{o||(o=!0,setTimeout((()=>{e(t)}),0))}))}else setTimeout((()=>{e(t)}),0);return o.apply(this,[()=>{}])},ye=!0}function Ce(e,t,o,{onBeforeExecute:n}={onBeforeExecute:void 0}){const r="".concat("rcbJQueryEventListener","_").concat(o),c="".concat(l,"_").concat(o),{jQuery:s}=e.defaultView||e.parentWindow;if(!s)return;const{event:a,Event:d}=s;if(!a||!d||a[r])return;const{add:u}=a;Object.assign(a,{[r]:!0,add:function(...e){const[r,s,l,p,b]=e,f=Array.isArray(s)?s:"string"==typeof s?s.split(" "):s,m=a[c],v=K(),g=()=>setTimeout((()=>{null==n||n(v),null==l||l(new d)}),0);if(s&&r===t)for(const e of f){const t=e===o;if(t&&v){let e=!1;document.addEventListener(i,(()=>{e||(e=!0,m?m.then(g):g())}))}else t&&m?m.then(g):u.apply(this,[r,e,l,p,b])}else u.apply(this,e)}})}function ke(e,t,{onBeforeExecute:o}={onBeforeExecute:void 0}){const n="".concat("rcbNativeEventListener","_").concat(t),r="".concat("rcbNativeEventListenerMemorize","_").concat(t);if(e[n])return;const{addEventListener:c}=e;Object.assign(e,{[n]:!0,addEventListener:function(n,...s){if(n===t){const n=e[r];let c=!1;const l=()=>setTimeout((()=>{var e;null==o||o(),null===(e=s[0])||void 0===e||e.call(s,new Event(t,{bubbles:!0,cancelable:!0}))}),0);document.addEventListener(i,(()=>{c||(c=!0,n?n.then(l):l())}))}else c.apply(this,[n,...s])}})}var xe=o(6346);let we=!1;function Ee(e){if(we)return;const t=e.defaultView||e.parentWindow;try{Object.defineProperty(t,xe.L,{set:function(e){"function"==typeof e&&e()},enumerable:!0,configurable:!0})}catch(e){}we=!0}const Be="script[src]:not([async]):not([defer]):not([".concat(r.CT,"]):not([").concat(r.i7,"])");class Se{constructor(){this.scriptsBefore=void 0,this.scriptsBefore=Array.prototype.slice.call(document.querySelectorAll(Be))}diff(){return Array.prototype.slice.call(document.querySelectorAll(Be)).filter((e=>-1===this.scriptsBefore.indexOf(e))).map((e=>new Promise((t=>{performance.getEntriesByType("resource").filter((({name:t})=>t===e.src)).length>0&&t(),e.addEventListener("load",(()=>{t()})),e.addEventListener("error",(()=>{t()}))}))))}}function _e(e,t){const o=t.previousElementSibling;if(!t.parentElement)return Promise.resolve();let n;return null!=o&&o.hasAttribute(r.Ks)?n=o:(n=document.createElement("div"),n.setAttribute(r.Ks,r.dW),t.parentElement.replaceChild(n,t)),(0,xe.K)(e,{},n)}let Ne=0;const Te="consent-tag-transformation-counter";function Ie({node:e,allowClickOverrides:t,onlyModifyAttributes:o,setVisualParentIfClassOfParent:n,overwriteAttributeValue:c}){return new Promise((s=>{let l=!1;const a=e.tagName.toLowerCase(),d="script"===a;let u=d&&!o?e.cloneNode(!0):e;for(const e of u.getAttributeNames())if(e.startsWith(r.jb)&&e.endsWith(r.rG)){var p;let o=e.substr(r.jb.length+1);o=o.slice(0,-1*(r.rG.length+1));const n="".concat(r.zm,"-").concat(o,"-").concat(r.rG),s=u.hasAttribute(n)&&t;let d=u.getAttribute(s?n:e);s&&(l=!0),c&&(d=c(d,o)),u.setAttribute(o,d),u.removeAttribute(e),u.removeAttribute(n),t&&["a"].indexOf(a)>-1&&(["onclick"].indexOf(o.toLowerCase())>-1||null!==(p=u.getAttribute("href"))&&void 0!==p&&p.startsWith("#"))&&u.addEventListener(i,(async({detail:{unblockedNodes:e}})=>e.forEach((()=>u.click()))))}for(const e of u.getAttributeNames())if(e.startsWith(r.zm)&&e.endsWith(r.rG)){const o=u.getAttribute(e);let n=e.substr(r.zm.length+1);n=n.slice(0,-1*(r.rG.length+1)),t&&(u.setAttribute(n,o),l=!0),u.removeAttribute(e)}const b={performedClick:l,workWithNode:e};if(o)return b.performedClick=!1,void s(b);if(a.startsWith("consent-")&&customElements){const e=a.substring(8);u.outerHTML=u.outerHTML.replace(/^<consent-[^\s]+/m,"<".concat(e," ").concat(Te,'="').concat(Ne,'"')).replace(/<\/consent-[^\s]+>$/m,"</".concat(e,">")),u=document.querySelector("[".concat(Te,'="').concat(Ne,'"]')),Ne++,b.workWithNode=u}u.style.removeProperty("display");const[f]=de(e,n||{});if((f!==e||null!=f&&f.hasAttribute(r.YO))&&f.style.removeProperty("display"),d){const{outerHTML:t}=u;_e(t,e).then((()=>s(b)))}else s(b)}))}function Le(e){const t=e.parentElement===document.head,o=e.getAttribute(r.i7);e.removeAttribute(r.i7),e.style.removeProperty("display");let n=e.outerHTML.substr(r.v4.length+1);return n=n.substr(0,n.length-r.v4.length-3),n=n.replace(new RegExp('type="application/consent"'),""),n=n.replace(new RegExp("".concat(r.jb,"-type-").concat(r.rG,'="([^"]+)"')),'type="$1"'),n="<script".concat(n).concat(o,"<\/script>"),t?(0,xe.K)(n,{}):_e(n,e)}var Oe=o(3102);function We(e,{same:t,nextSibling:o,parentNextSibling:n}){let c;const s=e.nextElementSibling,l=e.parentElement,a=null==l?void 0:l.nextElementSibling;e:for(const[r,i]of[[e,t],[s,o],[a,n]])if(r&&i)for(const e of i){if(r.matches(e)){c=r;break e}const t=r.querySelector(e);if(t){c=t;break e}}if(c){const e=()=>setTimeout((()=>c.click()),100);c.hasAttribute(r._W)?c.addEventListener(i,e,{once:!0}):e()}}var Pe=o(3743);class Ve{constructor(e){this.interval=void 0,this.options=void 0,this.options=e}unblockNow(){return async function({checker:e,visual:t,overwriteAttributeValue:o,transactionClosed:n,priorityUnblocked:c,customInitiators:s,delegateClick:l}){Y(!0);const a=function(e){const t=[],o=Array.prototype.slice.call(document.querySelectorAll("[".concat(r._W,"]")));for(const n of o){const{blocker:o,consent:i}=G(n.getAttribute(r.d3),n.getAttribute(r._W),+n.getAttribute(r.CT),e),c=n.className.indexOf("rcb-content-blocker")>-1;t.push({node:n,consent:i,isVisualCb:c,blocker:o,priority:n.tagName.toLowerCase()===r.v4?10:0})}return t.sort((({priority:e},{priority:t})=>e-t)),t}(e);!function(e){let t;t=Array.prototype.slice.call(document.querySelectorAll("[".concat(r.Ng,"]")));for(const o of t){const t=o.tagName.toLowerCase()===r.v4,n=t?o.getAttribute(r.Ng):o.innerHTML,[i,c]=Q(n,e);t?(o.setAttribute(r.Ng,i),U(o)):(o.innerHTML!==i&&(o.innerHTML=i),0===c&&o.removeAttribute(r.Ng))}t=Array.prototype.slice.call(document.querySelectorAll('[style*="'.concat(r._W,'"]')));for(const o of t)o.setAttribute("style",Q(o.getAttribute("style"),e)[0])}(e);const d=[];let u;const p=e=>{var o;null==t||null===(o=t.unmount)||void 0===o||o.call(t,e),ce(e,!1),e.remove()};let b;document.querySelectorAll("[".concat(r.CT,"]:not(.rcb-content-blocker):not([").concat(r._W,"]):not([").concat(r.Ti,"])")).forEach((e=>e.setAttribute(r.Ti,"1"))),document.querySelectorAll("[".concat(r.of,"]")).forEach((e=>e.removeAttribute(r.of)));for(const e of a){const{consent:n,node:i,isVisualCb:a,blocker:g,priority:h}=e;if(n){if(!i.hasAttribute(r._W))continue;if(a){p(i);continue}void 0!==b&&b!==h&&(null==c||c(d,b)),b=h,i.removeAttribute(r._W);const n=i.getAttribute(r.YO),y=he(i);if(y&&(u=e),n){const e=Array.prototype.slice.call(document.querySelectorAll('.rcb-content-blocker[consent-blocker-connected="'.concat(n,'"]')));for(const t of e)p(t);ce(i,!1)}const{ownerDocument:A}=i,{defaultView:C}=A;Ae(A),Ce(A,C,"load"),ke(C,"load"),ke(A,"DOMContentLoaded"),Ee(A),null==s||s(A,C);const k=new Se,x=i.hasAttribute(r.i7),{performedClick:w,workWithNode:E}=await Ie({node:i,allowClickOverrides:!x&&y,onlyModifyAttributes:x,setVisualParentIfClassOfParent:null==t?void 0:t.setVisualParentIfClassOfParent,overwriteAttributeValue:o});if(x?await Le(i):w&&ge(void 0),await Promise.all(k.diff()),E.getAttribute("consent-redom")){const{parentElement:e}=E;if(e){const t=[...e.children].indexOf(E);e.removeChild(E),m=E,(v=t)>=(f=e).children.length?f.appendChild(m):f.insertBefore(m,f.children[v])}}E.dispatchEvent(new CustomEvent(Oe.T,{detail:{blocker:g,gotClicked:y}})),document.dispatchEvent(new CustomEvent(Oe.T,{detail:{blocker:g,element:E,gotClicked:y}})),y&&l&&We(E,l),d.push({...e,node:E})}else t&&!a&&ve({node:e.node,blocker:e.blocker,...t})}var f,m,v;d.length?(u&&ge(void 0),Y(!1),document.dispatchEvent(new CustomEvent(i,{detail:{unblockedNodes:d}})),d.forEach((({node:e})=>{e.setAttribute(r.Ti,"1"),e.dispatchEvent(new CustomEvent(i,{detail:{unblockedNodes:d}}))})),setTimeout((()=>{null==n||n(d),function(e){const t=e.filter((({node:{nodeName:e,parentElement:t}})=>"SOURCE"===e&&"VIDEO"===t.nodeName)).map((({node:{parentElement:e}})=>e));t.filter(((e,o)=>t.indexOf(e)===o)).forEach((e=>e.load()))}(d),(0,Pe.s)(),u&&!le(u.node)&&u.node.scrollIntoView({behavior:"smooth"})}),0)):Y(!1)}(this.options)}start(){clearInterval(this.interval),this.interval=setInterval(this.unblockNow.bind(this),1e3)}stop(){clearInterval(this.interval)}}var He=o(7563),ze=o(7766),Re=o(5672),Fe=o(7029).h,Me=o(9302);const je=["youtube","vimeo"],De=["fitVids","mediaelementplayer","prettyPhoto","gMap"];!function(){let e=[];const{setVisualParentIfClassOfParent:t,multilingualSkipHTMLForTag:o,dependantVisibilityContainers:n,blocker:i,tcf:c,tcfMetadata:s,userConsentCookieName:l,pageRequestUuid4:a}=(0,d.u)(),p=new Ve({checker:(t,o,n)=>{var r;const c=null===(r=i.filter((({id:e})=>e===n)))||void 0===r?void 0:r[0];let s=!0;return"services"===t&&(s=-1===o.map((t=>{for(const{service:{id:o}}of e)if(o===t)return!0;return!1})).indexOf(!1)),{consent:s,blocker:c}},overwriteAttributeValue:(e,t)=>e,transactionClosed:e=>{!function(e){const{elementorFrontend:t,TCB_Front:o,jQuery:n,showGoogleMap:r,et_pb_init_modules:i,et_calculate_fullscreen_section_size:c,tdYoutubePlayers:s,tdVimeoPlayers:l,FWP:a,avadaLightBoxInitializeLightbox:d,WPO_LazyLoad:u}=window;let p=!1;for(const{node:r}of e){const{className:e,id:i}=r;if(null==t||t.elementsHandler.runReadyTrigger(r),(i.startsWith("wpgb-")||e.startsWith("wpgb-"))&&(p=!0),o&&n&&e.indexOf("tcb-yt-bg")>-1){const e=n(r);e.is(":visible")&&o.playBackgroundYoutube(e)}}var b,f;null==o||o.handleIframes(o.$body,!0),null==d||d(),a&&(a.loaded=!1,a.refresh()),null==u||u.update(),null==r||r(),n&&(null===(b=(f=n(window)).lazyLoadXT)||void 0===b||b.call(f)),i&&(n(window).off("resize",c),i()),null==s||s.init(),null==l||l.init();try{p&&window.dispatchEvent(new CustomEvent("wpgb.loaded"))}catch(e){}}(e)},visual:{setVisualParentIfClassOfParent:t,dependantVisibilityContainers:n,unmount:e=>{(0,u.uy)(e)},mount:({container:e,blocker:t,onClick:n,thumbnail:r,paintMode:i})=>{o&&e.setAttribute(o,"1");const c={...t,visualThumbnail:r||t.visualThumbnail};(0,u.sY)(Fe(D,{poweredLink:(0,Re.U)("".concat(a,"-powered-by")),blocker:c,paintMode:i,setVisualAsLastClickedVisual:n}),e)}},customInitiators:(e,t)=>{Ce(e,t,"elementor/frontend/init"),Ce(e,t,"tcb_after_dom_ready"),Ce(e,e,"mylisting/single:tab-switched"),Ce(e,e,"tve-dash.load",{onBeforeExecute:()=>{const{TVE_Dash:e}=window;e.ajax_sent=!0}})},delegateClick:{same:[".ultv-video__play",".elementor-custom-embed-image-overlay",".tb_video_overlay",".premium-video-box-container",".norebro-video-module-sc",'a[rel="wp-video-lightbox"]','[id^="lyte_"]',"lite-youtube","lite-vimeo",".awb-lightbox"],nextSibling:[".jet-video__overlay",".elementor-custom-embed-image-overlay"],parentNextSibling:[".et_pb_video_overlay"]}});document.addEventListener(He.V,(({detail:{services:t}})=>{e=t,p.unblockNow(),p.start()})),document.addEventListener(ze.I,(()=>{e=[],p.unblockNow(),p.start()})),function(){const e=document.createElement("style");e.style.type="text/css",document.getElementsByTagName("head")[0].appendChild(e);const t="".concat(r.Wm,'="').concat(r.Qt,'"'),o=".rcb-content-blocker",n=[...[".thrv_wrapper[".concat(t,"]")].map((e=>"".concat(e,"::before{display:none!important;}"))),...[".jet-video[".concat(t,"]>.jet-video__overlay"),".et_pb_video[".concat(t,"]>.et_pb_video_overlay"),"".concat(o,"+div+.et_pb_video_overlay"),"".concat(o,"+.ultv-video"),"".concat(o,"+.elementor-widget-container"),".wp-block-embed__wrapper[".concat(t,"]>.ast-oembed-container"),"".concat(o,"+.wpgb-facet"),"".concat(o,"+.td_wrapper_video_playlist"),"".concat(o,'+div[class^="lyte-"]'),".elementor-fit-aspect-ratio[".concat(t,"]>.elementor-custom-embed-image-overlay")].map((e=>"".concat(e,"{display:none!important;}"))),".wp-block-embed__wrapper[".concat(t,"]::before{padding-top:0!important;}"),".tve_responsive_video_container[".concat(t,"]{padding-bottom:0!important;}"),...[".x-frame-inner[".concat(t,"]>div.x-video"),".avia-video[".concat(t,"] .avia-iframe-wrap")].map((e=>"".concat(e,"{position:initial!important;}"))),...[".jet-video[".concat(t,"]")].map((e=>"".concat(e,"{background:none!important;}"))),...[".tve_responsive_video_container[".concat(t,"]")].map((e=>"".concat(e," .rcb-content-blocker > div > div > div {border-radius:0!important;}")))];e.innerHTML=n.join("")}()}(),s(De),function(){const e=window,{jQuery:t}=e;null==t||t(window).on("elementor/frontend/init",(async()=>{const{elementorFrontend:o}=e;o.on("components:init",(()=>{for(const e of je){const n=o.utils[e];n&&(n.insertAPI=function(){const e=this.getApiURL();(0,Me.h)(e).then((()=>{this.elements.$firstScript.before(t("<script>",{src:e}))})),this.setSettings("isInserted",!0)})}}));const n=o.elementsHandler.getHandler("video.default");if(n){const e=null!=n&&n.then?await n:n,{onInit:t}=e.prototype;e.prototype.onInit=function(...e){const{$element:o}=this;return null==o||o.get(0).addEventListener(Oe.T,(async({detail:{gotClicked:e}})=>{if(e){const e=o.data("settings");e.autoplay=!0,o.data("settings",e)}})),t.apply(this,e)}}}))}(),(0,n.C)((()=>{s(De),a(document,document,"tve-dash.load"),a(document,document,"mylisting/single:tab-switched")}),"interactive")}},e=>{e.O(0,[568],(()=>(3677,e(e.s=3677))));var t=e.O();realCookieBanner_blocker=t}]);
2
  //# sourceMappingURL=blocker.lite.js.map
1
+ "use strict";var realCookieBanner_blocker;(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[518],{3677:(e,t,o)=>{o.r(t);var n=o(6028),r=o(4548);const i="RCB/OptIn/ContentBlocker/All",c="listenOptInJqueryFnForContentBlockerNow";function s(e){const t=window.jQuery;if(null==t||!t.fn)return;const o=t.fn;for(const n of e){const e=o[n];if(!e)continue;const s=o[c]=o[c]||[];if(s.indexOf(n)>-1)continue;s.push(n);const a=Object.getOwnPropertyDescriptors(e);delete a.length,delete a.name,delete a.prototype,o[n]=function(...o){const n=()=>e.apply(t(this),o);return this.length?this.each((function(){const e=Array.prototype.slice.call(this.querySelectorAll("[".concat(r._W,"]")));this.getAttribute(r._W)&&e.push(this),e.length?Promise.all(e.map((e=>new Promise((t=>e.addEventListener(i,t)))))).then((()=>n())):n()})):n()},Object.defineProperties(o[n],a)}}const a="rcbJQueryEventListenerMemorize";function l(e,t,o){const n="".concat(a,"_").concat(o),{jQuery:r}=e.defaultView||e.parentWindow;if(!r)return;const{event:i,Event:c}=r;i&&c&&!i[n]&&Object.assign(i,{[n]:new Promise((e=>r(t).on(o,e)))})}var d=o(3438),u=o(5213),p=o(6423),b=o(7169),f=o(9707),m=o(1347),g=o(4741);class v{static inner({layout:{type:e,dialogBorderRadius:t},design:{borderWidth:o,borderColor:n,textAlign:r,fontColor:i,fontInheritFamily:c,fontFamily:s},customCss:{antiAdBlocker:a},blocker:{visualType:l}}){const d="wrapped"===l,u={textAlign:r,fontFamily:c?void 0:s,color:i,borderRadius:"dialog"===e?+t:void 0,border:"banner"===e&&o>0?"".concat(o,"px solid ").concat(n):void 0,position:"relative",padding:d?"30px 50px":void 0,overflow:d?"hidden":void 0};return{className:"wp-exclude-emoji ".concat("y"===a?"":"rcb-inner"),style:u}}static innerBackground({customCss:{antiAdBlocker:e},blocker:{visualType:t,visualThumbnail:o,visualBlur:n}}){const r="wrapped"===t,i={position:"absolute",top:0,left:0,right:0,bottom:0,display:r?"block":"none",filter:n>0?"blur(".concat(n,"px)"):void 0};return r&&(i.background="url('".concat(o.url,"') no-repeat center center"),i.backgroundSize="cover"),{className:"y"===e?"":"rcb-inner-bg",style:i}}static content({blocker:{visualType:e},customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-content",style:{boxShadow:"wrapped"===e?"rgb(0 0 0 / 35%) 0px 0px 0px 7px, #0000004d 0px 0px 100px 30px":void 0,position:"relative"}}}}class h{static headerContainer({layout:{type:e,dialogBorderRadius:t},design:{borderWidth:o,borderColor:n,...r},headerDesign:{inheritBg:i,bg:c,padding:s},customCss:{antiAdBlocker:a}}){const l={padding:s.map((e=>"".concat(e,"px"))).join(" "),background:i?r.bg:c,borderRadius:"dialog"===e?"".concat(t,"px ").concat(t,"px 0 0"):void 0};return"dialog"===e&&o>0&&(l.borderTop="".concat(o,"px solid ").concat(n),l.borderLeft=l.borderTop,l.borderRight=l.borderTop),{className:"y"===a?void 0:"rcb-header-container",style:l}}static header({design:{textAlign:e},headerDesign:{inheritTextAlign:t,...o},customCss:{antiAdBlocker:n}}){const r=t?e:o.textAlign;return{className:"y"===n?void 0:"rcb-header",style:{margin:"auto",display:"flex",justifyContent:"center"===r?"center":"right"===r?"flex-end":void 0,alignItems:"center",position:"relative"}}}static headerSeparator({layout:{type:e},design:t,headerDesign:{borderWidth:o,borderColor:n},customCss:{antiAdBlocker:r}}){const i={height:+o,background:n};return"dialog"===e&&t.borderWidth>0&&(i.borderLeft="".concat(t.borderWidth,"px solid ").concat(t.borderColor),i.borderRight=i.borderLeft),{className:"y"===r?void 0:"rcb-header-separator",style:i}}}var y=o(6730),A=o(7029).h;const C=({closeIcon:e})=>{const t=(0,m._)(),{blocker:{name:o},texts:{blockerHeadline:n}}=t;return A("div",h.headerContainer(t),A("div",h.header(t),A("div",(0,y.a)(t,!!e),n.replace(/{{name}}/g,o)),e))};var k=o(6268);class w{static bodyContainer({layout:{type:e,dialogBorderRadius:t},design:{bg:o,borderWidth:n,borderColor:r},bodyDesign:{padding:i},customCss:{antiAdBlocker:c},showFooter:s}){const a={background:o,padding:i.map((e=>"".concat(e,"px"))).join(" "),borderRadius:s||"dialog"!==e?void 0:"0 0 ".concat(t,"px ").concat(t,"px"),lineHeight:1.4,overflow:"auto"};return"dialog"===e&&n>0&&(a.borderLeft="".concat(n,"px solid ").concat(r),a.borderRight=a.borderLeft,s||(a.borderBottom=a.borderLeft)),{className:"y"===c?void 0:"rcb-body-container",style:a}}static body({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-body",style:{margin:"auto"}}}static description({design:{fontSize:e},bodyDesign:{descriptionInheritFontSize:t,descriptionFontSize:o},individualLayout:{descriptionTextAlign:n},customCss:{antiAdBlocker:r}}){return{className:"y"===r?void 0:"rcb-description",style:{marginBottom:10,fontSize:t?+e:+o,textAlign:n}}}}class x{static topSide({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-tb-top",style:{marginBottom:15}}}static bottomSide({design:{bg:e},customCss:{antiAdBlocker:t}}){return{className:"y"===t?void 0:"rcb-tb-bottom",style:{background:e}}}}var E=o(8346),S=o(7613),B=o(4902),_=o(7029).h;const N=({inlineStyle:e,type:t,onClick:o,children:n,framed:r,busyOnClick:i})=>{if("hide"===t)return null;const[c,s]=(0,u.eJ)(!1),a=(0,u.I4)((e=>{c||(i&&s(!0),null==o||o(e))}),[o,c,i]),[l,d]=(0,u.eJ)(!1),p=(0,m._)(),b={onClick:a,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1)};return _("div",(0,g.Z)({},"button"===t?b:{},class{static save({decision:{acceptAll:e},layout:{borderRadius:t},bodyDesign:{acceptAllFontSize:o,acceptAllBg:n,acceptAllTextAlign:r,acceptAllBorderColor:i,acceptAllPadding:c,acceptAllBorderWidth:s,acceptAllFontColor:a,acceptAllHoverBg:l,acceptAllHoverFontColor:d,acceptAllHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-all",type:e,borderRadius:t,bg:n,hoverBg:l,fontSize:o,textAlign:r,fontColor:a,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,antiAdBlocker:p},b,f)}static showInfo({decision:{acceptIndividual:e},layout:{borderRadius:t},bodyDesign:{acceptIndividualFontSize:o,acceptIndividualBg:n,acceptIndividualTextAlign:r,acceptIndividualBorderColor:i,acceptIndividualPadding:c,acceptIndividualBorderWidth:s,acceptIndividualFontColor:a,acceptIndividualHoverBg:l,acceptIndividualHoverFontColor:d,acceptIndividualHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-individual",type:e,borderRadius:t,bg:n,hoverBg:l,fontSize:o,textAlign:r,fontColor:a,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,antiAdBlocker:p},b,f)}static hero({decision:{acceptAll:e},layout:{borderRadius:t},bodyDesign:{acceptAllFontSize:o,acceptAllBg:n,acceptAllTextAlign:r,acceptAllBorderColor:i,acceptAllPadding:c,acceptAllBorderWidth:s,acceptAllFontColor:a,acceptAllHoverBg:l,acceptAllHoverFontColor:d,acceptAllHoverBorderColor:u},customCss:{antiAdBlocker:p}},b,f){return this.common({name:"accept-all",type:e,borderRadius:t,bg:n,hoverBg:l,fontSize:o,textAlign:r,fontColor:a,hoverFontColor:d,borderWidth:s,borderColor:i,hoverBorderColor:u,padding:c,boxShadow:"rgb(0 0 0 / 15%) 0px 0px 100px 30px, rgb(0 0 0 / 40%) 0px 2px 5px 1px",zIndex:9,antiAdBlocker:p},b,f)}static common({name:e,type:t,borderRadius:o,bg:n,hoverBg:r,fontSize:i,textAlign:c,fontColor:s,hoverFontColor:a,borderWidth:l,borderColor:d,hoverBorderColor:u,padding:p,boxShadow:b,zIndex:f,antiAdBlocker:m},g,v){const h={textDecoration:"link"===t?"underline":"none",borderRadius:+o,cursor:"button"===t?"pointer":void 0,backgroundColor:"button"===t?g?r:n:void 0,fontSize:+i,textAlign:c,color:g?a:s,transition:"background-color 250ms, color 250ms, border-color 250ms",marginBottom:10,border:"button"===t&&l>0?"".concat(l,"px solid ").concat(g?u:d):void 0,padding:p.map((e=>"".concat(e,"px"))).join(" "),overflow:"hidden",outline:v?"rgb(255, 94, 94) solid 5px":void 0,boxShadow:b,zIndex:f};return{className:"y"===m?void 0:"rcb-btn-".concat(e),style:h}}}[e](p,l,r)),_("span","link"===t?{...b,style:{cursor:"pointer"}}:{},c?_(B.X,null):n))};var T=o(229),I=o(7029).h;const L=()=>{const e=(0,m._)(),[t,o]=(0,u.eJ)(!1),{bodyDesign:{teachingsSeparatorActive:n},decision:{acceptAll:r,acceptIndividual:i},texts:{blockerLoadButton:c,blockerLinkShowMissing:s,blockerAcceptInfo:a},blocker:{services:l},consent:d,groups:p,onUnblock:b,productionNotice:f,i18n:{close:v}}=e,h=(0,u.Ye)((()=>{const e=[],t=[];for(const e of Object.values(d.groups))t.push(...e);for(const{items:o}of p)for(const n of o)l.indexOf(n.id)>-1&&-1===t.indexOf(n.id)&&e.push(n);return e}),[p,l,d]),{description:y,teachings:A}=(0,k.k)({disableDataProcessingInUnsafeCountries:0===h.map((({ePrivacyUSA:e})=>e)).filter(Boolean).length,disableListServicesNotice:!0});return I("div",w.bodyContainer(e),I("div",w.body(e),I("div",x.topSide(e),I("div",w.description(e),I("span",{dangerouslySetInnerHTML:{__html:y.replace(/\n/gm,"<br />")}}),!!y&&n&&I("div",null,I("span",(0,E.V)(e))),A.map((t=>I("span",(0,g.Z)({key:t},(0,S.W)(e),{dangerouslySetInnerHTML:{__html:t}})))),I("span",(0,g.Z)({},(0,S.W)(e),{dangerouslySetInnerHTML:{__html:a}}))),I(N,{type:"hide"===i?"link":i,inlineStyle:"showInfo",onClick:()=>o(!t)},t?v:s),t&&I("div",class{static cookieScroll({design:{fontSize:e},bodyDesign:{descriptionInheritFontSize:t,descriptionFontSize:o},customCss:{antiAdBlocker:n}}){return{className:"y"===n?void 0:"rcb-cookie-scroll",style:{fontSize:t?+e:+o,textAlign:"left",marginBottom:10,maxHeight:400,overflowY:"scroll",paddingRight:10}}}}.cookieScroll(e),h.map((e=>I(T.V,{key:e.id,cookie:e,checked:!0,disabled:!0}))))),I("div",x.bottomSide(e),I(N,{type:"hide"===r?"button":r,inlineStyle:"save",onClick:e=>b(e),busyOnClick:!0},c),f)))};class O{static footerContainer({layout:{type:e,dialogBorderRadius:t},design:o,footerDesign:{inheritBg:n,bg:r,inheritTextAlign:i,textAlign:c,padding:s,fontSize:a,fontColor:l},customCss:{antiAdBlocker:d}}){const u={padding:s.map((e=>"".concat(e,"px"))).join(" "),background:n?o.bg:r,borderRadius:"dialog"===e?"0 0 ".concat(t,"px ").concat(t,"px"):void 0,fontSize:+a,color:l,textAlign:i?o.textAlign:c};return"dialog"===e&&o.borderWidth>0&&(u.borderBottom="".concat(o.borderWidth,"px solid ").concat(o.borderColor),u.borderLeft=u.borderBottom,u.borderRight=u.borderBottom),{className:"y"===d?void 0:"rcb-footer-container",style:u}}static footer({customCss:{antiAdBlocker:e}}){return{className:"y"===e?void 0:"rcb-footer",style:{margin:"auto",lineHeight:1.8}}}static footerSeparator({layout:{type:e},design:t,footerDesign:{borderWidth:o,borderColor:n},customCss:{antiAdBlocker:r}}){const i={height:+o,background:n};return"dialog"===e&&t.borderWidth>0&&(i.borderLeft="".concat(t.borderWidth,"px solid ").concat(t.borderColor),i.borderRight=i.borderLeft),{className:"y"===r?void 0:"rcb-footer-separator",style:i}}}var P=o(6092),W=o(7029).h;const V=()=>{const e=(0,m._)(),{rows:t,render:o}=(0,P.g)({putPoweredByLinkInRow:1});return W("div",O.footerContainer(e),W("div",O.footer(e),o(t)))};var H=o(7029).h;const z=({closeIcon:e})=>{const t=(0,m._)(),{showFooter:o,paintMode:n}=t,r=(0,u.sO)(),i="instantInViewport"===n||function(e){const[t,o]=(0,u.eJ)(!1);return(0,u.d4)((()=>{var t;e.current&&(t=e.current,new Promise((e=>{window.IntersectionObserver?new IntersectionObserver(((t,o)=>{t.forEach((({isIntersecting:t})=>{t&&(e(),o.disconnect())}))})).observe(t):e()}))).then((()=>{o(!0)}))}),[]),t}(r);return H("div",(0,g.Z)({},v.inner(t),{ref:r}),i&&H("div",v.innerBackground(t)),H("div",v.content(t),H(C,{closeIcon:e}),H("div",h.headerSeparator(t)),H(L,null),!!o&&H(u.HY,null,H("div",O.footerSeparator(t)),H(V,null))))};var R=o(7029).h;const F=()=>{const e=(0,m._)(),{blocker:{visualType:t,visualThumbnail:o}}=e;return R(z,null)};var M=o(1100),j=o(7029).h;const D=({poweredLink:e,blocker:t,paintMode:o,setVisualAsLastClickedVisual:n})=>{const{customizeValuesBanner:{layout:i,decision:c,legal:s,design:a,headerDesign:l,bodyDesign:g,footerDesign:v,texts:h,individualLayout:y,saveButton:A,group:C,individualTexts:k,customCss:w},pageIdToPermalink:x,consentForwardingExternalHosts:E,isTcf:S,isEPrivacyUSA:B,isAgeNotice:_,isListServicesNotice:N,groups:T,userConsentCookieName:I,bannerI18n:L,affiliate:O,isCurrentlyInTranslationEditorPreview:P,pageByIdUrl:W}=(0,d.u)(),V=(0,b.h)(I),H={borderWidth:a.borderWidth||1,borderColor:0===a.borderWidth?l.borderWidth>0?l.borderColor:v.borderWidth>0?v.borderColor:a.fontColor:a.borderColor},[z]=(0,u.eJ)({layout:{...i},decision:{...c},legal:{...s},design:{...a,...H},headerDesign:{...l},bodyDesign:{...g},footerDesign:{...v},texts:{...h},individualLayout:{...y},saveButton:{...A},group:{...C},individualTexts:{...k},customCss:{...w},productionNotice:j(M.Z,null),pageIdToPermalink:x,consentForwardingExternalHosts:E,paintMode:o,pageByIdUrl:W,groups:T,poweredLink:e,isTcf:S,ePrivacyUSA:B,ageNotice:_,listServicesNotice:N,blocker:t,i18n:L,keepVariablesInTexts:P,affiliate:O,consent:{groups:{...!1===V?{}:V.consent}},onUnblock:e=>{!async function(e){const{essentialGroup:t,groups:o,isTcf:n,tcf:r,tcfMetadata:i,userConsentCookieName:c}=(0,d.u)(),{id:s,services:a,visualThumbnail:l}=e,u=(0,b.h)(c),[f]=o.filter((({slug:e})=>e===t)),m=!1===u?{groups:{[f.id]:f.items.map((({id:e})=>e))}}:{groups:u.consent};for(const{id:e,items:t}of o)for(const{id:o}of t)if(a.indexOf(o)>-1){var g;if((null===(g=m.groups[e])||void 0===g?void 0:g.indexOf(o))>-1)continue;m.groups[e]=m.groups[e]||[],m.groups[e].push(o)}await(0,p.$)({consent:m,buttonClicked:"unblock",blocker:s,blockerThumbnail:null!=l&&l.embedId?"".concat(l.embedId,"-").concat(l.fileMd5):void 0,tcfString:void 0})}(t),n(e)}});(0,f.G)([".elementor-background-overlay ~ [".concat(r._W,"] { z-index: 99; }")].join(""));const R=m.Z.Context();return j(R.Provider,{value:z},j(F,null))};let q=!1;function Y(e){q=e}function K(){return q}function G(e,t,o,n){return n(e,"string"==typeof t?t.split(",").map(Number):t,o)}async function U(e){const t=e.getAttribute(r.Ng);e.removeAttribute(r.Ng);let o=e.outerHTML.substr(r.v4.length+1);o=o.substr(0,o.length-r.v4.length-3),o=o.replace(new RegExp('type="application/consent"'),""),o="<style ".concat(r.Ng,'="1" ').concat(o).concat(t,"</style>"),e.parentElement.replaceChild((new DOMParser).parseFromString(o,"text/html").querySelector("style"),e)}var J=o(7033);function Q(e,t){let o=0;return[e.replace(/(url\s*\(["'\s]*)([^"]+dummy\.(?:png|css))\?consent-required=([0-9,]+)&consent-by=(\w+)&consent-id=(\d+)&consent-original-url=([^-]+)-/gm,((e,n,r,i,c,s,a)=>{const{consent:l}=G(c,i,+s,t);return l||o++,l?"".concat(n).concat((0,J.l)(atob(a))):e})),o]}var Z=o(8935);function $(e,t,o){const n=t+10*+(0,Z.K)(e.selectorText)[0].specificity.replace(/,/g,"")+function(e,t){var o;return"important"===(null===(o=e.style)||void 0===o?void 0:o.getPropertyPriority(t))?1e5:0}(e,o);return{selector:e.selectorText,specificity:n}}var X=o(7932);function ee(e,t,o,n){for(const r in e){const i=e[r];if(i instanceof CSSStyleRule)try{if((0,X.D)(t,i.selectorText)){const e=i.style[n];void 0!==e&&""!==e&&o.push({...$(i,o.length,n),style:e})}}catch(e){}}}function te(e,t){const o=function(e,t){const o=[];!function(e,t,o){const{styleSheets:n}=document;for(const r in n){const i=n[r];let c;try{c=i.cssRules||i.rules}catch(e){continue}c&&ee(c,e,t,o)}}(e,o,t);const n=function(e,t){const o=e.style[t];return o?{selector:"! undefined !",specificity:1e4+(new String(o).match(/\s!important/gi)?1e5:0),style:o}:void 0}(e,t);if(n&&o.push(n),o.length)return function(e){e.sort(((e,t)=>e.specificity>t.specificity?-1:e.specificity<t.specificity?1:0))}(o),o}(e,t);return null==o?void 0:o[0].style}const oe=["-aspect-ratio","wp-block-embed__wrapper","x-frame-inner","fusion-video"],ne={"max-height":"initial",height:"auto",padding:0,"aspect-ratio":"initial","box-sizing":"border-box"},re={width:"100%"},ie="consent-cb-memo-style";function ce(e){const{parentElement:t}=e;if(!t)return!1;const o=getComputedStyle(t);if(/\d+\s*\/\s*\d+/g.test(o.aspectRatio))return!0;const{position:n}=getComputedStyle(e),{position:r}=o;return"absolute"===n&&"relative"===r&&t.style.padding.indexOf("%")>-1}function se(e,t){var o;const{parentElement:n}=e,i=[n,null==n?void 0:n.parentElement,null==n||null===(o=n.parentElement)||void 0===o?void 0:o.parentElement].filter(Boolean);for(const o of i){if(!o.hasAttribute(r.of)){const t=oe.filter((e=>o.className.indexOf(e)>-1)).length>0,i=o===n&&ce(e)||t||[0,"0%","0px"].indexOf(te(o,"height"))>-1;o.setAttribute(r.of,i?"1":"0")}if(t&&"1"===o.getAttribute(r.of)){const e=o.hasAttribute(r.Kh);let t=o.getAttribute("style")||"";o.removeAttribute(r.Kh),e||(t=t.replace(/display:\s*none\s*!important;/,"")),o.setAttribute(r.Wm,r.Qt),o.setAttribute(ie,t);for(const e in ne)o.style.setProperty(e,ne[e],"important");for(const e in re)o.style.setProperty(e,re[e]);"absolute"===window.getComputedStyle(o).position&&o.style.setProperty("position","static","important")}else!t&&o.hasAttribute(r.Wm)&&(o.setAttribute("style",o.getAttribute(ie)||""),o.removeAttribute(ie),o.removeAttribute(r.Wm))}}var ae=o(9586);function le(e,t=!1){const{top:o,left:n,bottom:r,right:i,height:c,width:s}=e.getBoundingClientRect(),{innerWidth:a,innerHeight:l}=window;if(t){const e=n<=a&&n+s>=0;return o<=l&&o+c>=0&&e}{const{clientHeight:e,clientWidth:t}=document.documentElement;return o>=0&&n>=0&&r<=(l||e)&&i<=(a||t)}}const de="children:";function ue(e,t={}){if(!e.parentElement)return[e,"none"];let o=["a"].indexOf(e.parentElement.tagName.toLowerCase())>-1;if(e.hasAttribute(r.NY))o=e.getAttribute(r.NY);else{const{className:n}=e.parentElement;for(const e in t)if(n.indexOf(e)>-1){o=t[e];break}}if(o){if(!0===o||"true"===o)return[e.parentElement,"parent"];if(!isNaN(+o)){let t=e;for(let e=0;e<+o;e++){if(!t.parentElement)return[t,"parentZ"];t=t.parentElement}return[t,"parentZ"]}if("string"==typeof o){if(o.startsWith(de))return[e.querySelector(o.substr(de.length)),"childrenSelector"];for(let t=e;t;t=t.parentElement)if((0,X.D)(t,o))return[t,"parentSelector"]}}return[e,"none"]}function pe(e,t){const o=function(e){const t=[];for(;e=e.previousElementSibling;)t.push(e);return t}(e).filter((e=>!!e.offsetParent||!!t&&t(e)));return o.length?o[0]:void 0}function be(e){return e.hasAttribute(r.YO)}function fe(e){return e.offsetParent?e:pe(e,be)}let me,ge=0;function ve({node:e,blocker:t,setVisualParentIfClassOfParent:o,dependantVisibilityContainers:n,mount:i}){var c,s;if(!t)return;e.hasAttribute(r.Gn)||(e.setAttribute(r.Gn,ge.toString()),ge++);const a=+e.getAttribute(r.Gn),{parentElement:l}=e,{shouldForceToShowVisual:d=!1,isVisual:u,id:p}=t,b=(null===(c=e.style)||void 0===c?void 0:c.position)||"initial",f=["fixed","absolute","sticky"].indexOf(b)>-1,m=[document.body,document.head,document.querySelector("html")].indexOf(l)>-1,g=e.getAttribute(r.YO),[v,h]=ue(e,o||{}),y=!!v.offsetParent,A=()=>{if(-1===["script","link"].indexOf(null==e?void 0:e.tagName.toLowerCase())&&"childrenSelector"!==h){const{style:t}=e;"none"===t.getPropertyValue("display")&&"important"===t.getPropertyPriority("display")?e.setAttribute(r.Kh,"1"):t.setProperty("display","none","important")}};if(m||f&&!ce(e)&&!d||!u||g||!y&&!d){if(!y&&n){const t=(0,ae.w)(e,n.join(","));if(t.length>0&&!t[0].offsetParent)return}return void A()}const C=function(e,t){var o,n,i,c;const{previousElementSibling:s}=e,a=e.getAttribute(r.Kx),l=null===(o=e.parentElement)||void 0===o?void 0:o.previousElementSibling,d=null===(n=e.parentElement)||void 0===n||null===(i=n.parentElement)||void 0===i?void 0:i.previousElementSibling,u=[pe(e,be),s,null==s?void 0:s.lastElementChild,l,null==l?void 0:l.lastElementChild,d,null==d?void 0:d.lastElementChild,null==d||null===(c=d.lastElementChild)||void 0===c?void 0:c.lastElementChild].filter(Boolean).map(fe).filter(Boolean);for(const e of u)if(+e.getAttribute(r.CT)===t&&e.hasAttribute(r.YO)){const t=e.nextElementSibling;return!(t&&a&&t.hasAttribute(r.Kx)&&t.getAttribute(r.Kx)!==a)&&e}return!1}(v,p);if(C)return e.setAttribute(r.YO,C.getAttribute(r.YO)),se(v,!0),void A();const{container:k,thumbnail:w}=function(e,t,o){const n=document.createElement("div"),{style:i}=n,c=e.getAttribute(r.Gn);let s;if(n.setAttribute(r.YO,c),n.className="rcb-content-blocker",i.setProperty("max-height","initial"),i.setProperty("pointer-events","all"),e.setAttribute(r.YO,c),t.parentNode.insertBefore(n,t),[r.d3,r.CT,r._W].forEach((t=>{e.hasAttribute(t)&&n.setAttribute(t,e.getAttribute(t))})),"childrenSelector"===o&&t.setAttribute(r.YO,c),e.hasAttribute(r.Kx))s=JSON.parse(e.getAttribute(r.Kx));else{const t=e.querySelectorAll("[".concat(r.Kx));t.length>0&&(s=JSON.parse(t[0].getAttribute(r.Kx)))}return("childrenSelector"===o?t:e).style.setProperty("display","none","important"),{container:n,thumbnail:s}}(e,v,h),x=o=>{k.setAttribute(r.He,o),i({container:k,blocker:t,connectedCounter:a,onClick:e=>{null==e||e.stopPropagation(),he(a)},blockedNode:e,thumbnail:w,paintMode:o}),se(v,!0)};le(k,!0)?x("instantInViewport"):"instantInViewport"===(null===(s=document.querySelector(".rcb-content-blocker[".concat(r.YO,'="').concat(a-1,'"][').concat(r.He,"]")))||void 0===s?void 0:s.getAttribute(r.He))?x("instant"):window.requestIdleCallback?window.requestIdleCallback((()=>x("idleCallback"))):setTimeout((()=>x("instant")))}function he(e){me=e}function ye(e){const t=e.getAttribute(r.YO),o=e.getAttribute(r.CT),n=e.getAttribute(r.d3);let i="".concat(me)===t;if(i)e.setAttribute(r.fq,r.WK);else{const[t]=(0,ae.w)(e,"[".concat(r.fq,'="').concat(r.WK,'"][').concat(r.CT,'="').concat(o,'"][').concat(r.d3,'="').concat(n,'"]'));t&&(t.setAttribute(r.fq,r.jk),i=!0)}return i}let Ae=!1;function Ce(e){if(Ae)return;const{jQuery:t}=e.defaultView||e.parentWindow;if(!t)return;const o=t.fn.ready;t.fn.ready=function(e){if(e)if(K()){let o=!1;document.addEventListener(i,(()=>{o||(o=!0,setTimeout((()=>{e(t)}),0))}))}else setTimeout((()=>{e(t)}),0);return o.apply(this,[()=>{}])},Ae=!0}function ke(e,t,o,{onBeforeExecute:n}={onBeforeExecute:void 0}){const r="".concat("rcbJQueryEventListener","_").concat(o),c="".concat(a,"_").concat(o),{jQuery:s}=e.defaultView||e.parentWindow;if(!s)return;const{event:l,Event:d}=s;if(!l||!d||l[r])return;const{add:u}=l;Object.assign(l,{[r]:!0,add:function(...e){const[r,s,a,p,b]=e,f=Array.isArray(s)?s:"string"==typeof s?s.split(" "):s,m=l[c],g=K(),v=()=>setTimeout((()=>{null==n||n(g),null==a||a(new d)}),0);if(s&&r===t)for(const e of f){const t=e===o;if(t&&g){let e=!1;document.addEventListener(i,(()=>{e||(e=!0,m?m.then(v):v())}))}else t&&m?m.then(v):u.apply(this,[r,e,a,p,b])}else u.apply(this,e)}})}function we(e,t,{onBeforeExecute:o}={onBeforeExecute:void 0}){const n="".concat("rcbNativeEventListener","_").concat(t),r="".concat("rcbNativeEventListenerMemorize","_").concat(t);if(e[n])return;const{addEventListener:c}=e;Object.assign(e,{[n]:!0,addEventListener:function(n,...s){if(n===t){const n=e[r];let c=!1;const a=()=>setTimeout((()=>{var e;null==o||o(),null===(e=s[0])||void 0===e||e.call(s,new Event(t,{bubbles:!0,cancelable:!0}))}),0);document.addEventListener(i,(()=>{c||(c=!0,n?n.then(a):a())}))}else c.apply(this,[n,...s])}})}var xe=o(6346);let Ee=!1;function Se(e){if(Ee)return;const t=e.defaultView||e.parentWindow;try{Object.defineProperty(t,xe.L,{set:function(e){"function"==typeof e&&e()},enumerable:!0,configurable:!0})}catch(e){}Ee=!0}const Be="script[src]:not([async]):not([defer]):not([".concat(r.CT,"]):not([").concat(r.i7,"])");class _e{constructor(){this.scriptsBefore=void 0,this.scriptsBefore=Array.prototype.slice.call(document.querySelectorAll(Be))}diff(){return Array.prototype.slice.call(document.querySelectorAll(Be)).filter((e=>-1===this.scriptsBefore.indexOf(e))).map((e=>new Promise((t=>{performance.getEntriesByType("resource").filter((({name:t})=>t===e.src)).length>0&&t(),e.addEventListener("load",(()=>{t()})),e.addEventListener("error",(()=>{t()}))}))))}}function Ne(e,t){const o=t.previousElementSibling;if(!t.parentElement)return Promise.resolve();let n;return null!=o&&o.hasAttribute(r.Ks)?n=o:(n=document.createElement("div"),n.setAttribute(r.Ks,r.dW),t.parentElement.replaceChild(n,t)),(0,xe.K)(e,{},n)}let Te=0;const Ie="consent-tag-transformation-counter";function Le({node:e,allowClickOverrides:t,onlyModifyAttributes:o,setVisualParentIfClassOfParent:n,overwriteAttributeValue:c}){return new Promise((s=>{let a=!1;const l=e.tagName.toLowerCase(),d="script"===l;let u=d&&!o?e.cloneNode(!0):e;for(const e of u.getAttributeNames())if(e.startsWith(r.jb)&&e.endsWith(r.rG)){var p;let o=e.substr(r.jb.length+1);o=o.slice(0,-1*(r.rG.length+1));const n="".concat(r.zm,"-").concat(o,"-").concat(r.rG),s=u.hasAttribute(n)&&t;let d=u.getAttribute(s?n:e);s&&(a=!0),c&&(d=c(d,o)),u.setAttribute(o,d),u.removeAttribute(e),u.removeAttribute(n),t&&["a"].indexOf(l)>-1&&(["onclick"].indexOf(o.toLowerCase())>-1||null!==(p=u.getAttribute("href"))&&void 0!==p&&p.startsWith("#"))&&u.addEventListener(i,(async({detail:{unblockedNodes:e}})=>e.forEach((()=>u.click()))))}for(const e of u.getAttributeNames())if(e.startsWith(r.zm)&&e.endsWith(r.rG)){const o=u.getAttribute(e);let n=e.substr(r.zm.length+1);n=n.slice(0,-1*(r.rG.length+1)),t&&(u.setAttribute(n,o),a=!0),u.removeAttribute(e)}const b={performedClick:a,workWithNode:e};if(o)return b.performedClick=!1,void s(b);if(l.startsWith("consent-")&&customElements){const e=l.substring(8);u.outerHTML=u.outerHTML.replace(/^<consent-[^\s]+/m,"<".concat(e," ").concat(Ie,'="').concat(Te,'"')).replace(/<\/consent-[^\s]+>$/m,"</".concat(e,">")),u=document.querySelector("[".concat(Ie,'="').concat(Te,'"]')),Te++,b.workWithNode=u}u.style.removeProperty("display");const[f]=ue(e,n||{});if((f!==e||null!=f&&f.hasAttribute(r.YO))&&f.style.removeProperty("display"),d){const{outerHTML:t}=u;Ne(t,e).then((()=>s(b)))}else s(b)}))}function Oe(e){const t=e.parentElement===document.head,o=e.getAttribute(r.i7);e.removeAttribute(r.i7),e.style.removeProperty("display");let n=e.outerHTML.substr(r.v4.length+1);return n=n.substr(0,n.length-r.v4.length-3),n=n.replace(new RegExp('type="application/consent"'),""),n=n.replace(new RegExp("".concat(r.jb,"-type-").concat(r.rG,'="([^"]+)"')),'type="$1"'),n="<script".concat(n).concat(o,"<\/script>"),t?(0,xe.K)(n,{}):Ne(n,e)}var Pe=o(3102);function We(e,{same:t,nextSibling:o,parentNextSibling:n}){let c,s;const a=e.nextElementSibling,l=e.parentElement,d=null==l?void 0:l.nextElementSibling;e:for(const[r,i]of[[e,t],[a,o],[d,n]])if(r&&i)for(const e of i){const t="string"==typeof e?e:e.selector;if("string"!=typeof e&&(s=e.hide||!1),r.matches(t)){c=r;break e}const o=r.querySelector(t);if(o){c=o;break e}}if(c){const e=()=>setTimeout((()=>{c.click(),s&&c.style.setProperty("display","none","important")}),100);c.hasAttribute(r._W)?c.addEventListener(i,e,{once:!0}):e()}}var Ve=o(3743);class He{constructor(e){this.interval=void 0,this.options=void 0,this.options=e}unblockNow(){return async function({checker:e,visual:t,overwriteAttributeValue:o,transactionClosed:n,priorityUnblocked:c,customInitiators:s,delegateClick:a}){Y(!0);const l=function(e){const t=[],o=Array.prototype.slice.call(document.querySelectorAll("[".concat(r._W,"]")));for(const n of o){const{blocker:o,consent:i}=G(n.getAttribute(r.d3),n.getAttribute(r._W),+n.getAttribute(r.CT),e),c=n.className.indexOf("rcb-content-blocker")>-1;t.push({node:n,consent:i,isVisualCb:c,blocker:o,priority:n.tagName.toLowerCase()===r.v4?10:0})}return t.sort((({priority:e},{priority:t})=>e-t)),t}(e);!function(e){let t;t=Array.prototype.slice.call(document.querySelectorAll("[".concat(r.Ng,"]")));for(const o of t){const t=o.tagName.toLowerCase()===r.v4,n=t?o.getAttribute(r.Ng):o.innerHTML,[i,c]=Q(n,e);t?(o.setAttribute(r.Ng,i),U(o)):(o.innerHTML!==i&&(o.innerHTML=i),0===c&&o.removeAttribute(r.Ng))}t=Array.prototype.slice.call(document.querySelectorAll('[style*="'.concat(r._W,'"]')));for(const o of t)o.setAttribute("style",Q(o.getAttribute("style"),e)[0])}(e);const d=[];let u;const p=e=>{var o;null==t||null===(o=t.unmount)||void 0===o||o.call(t,e),se(e,!1),e.remove()};let b;document.querySelectorAll("[".concat(r.CT,"]:not(.rcb-content-blocker):not([").concat(r._W,"]):not([").concat(r.Ti,"])")).forEach((e=>e.setAttribute(r.Ti,"1"))),document.querySelectorAll("[".concat(r.of,"]")).forEach((e=>e.removeAttribute(r.of)));for(const e of l){const{consent:n,node:i,isVisualCb:l,blocker:v,priority:h}=e;if(n){if(!i.hasAttribute(r._W))continue;if(l){p(i);continue}void 0!==b&&b!==h&&(null==c||c(d,b)),b=h,i.removeAttribute(r._W);const n=i.getAttribute(r.YO),y=ye(i);if(y&&(u=e),n){const e=Array.prototype.slice.call(document.querySelectorAll('.rcb-content-blocker[consent-blocker-connected="'.concat(n,'"]')));for(const t of e)p(t);se(i,!1)}const{ownerDocument:A}=i,{defaultView:C}=A;Ce(A),ke(A,C,"load"),we(C,"load"),we(A,"DOMContentLoaded"),Se(A),null==s||s(A,C);const k=new _e,w=i.hasAttribute(r.i7),{performedClick:x,workWithNode:E}=await Le({node:i,allowClickOverrides:!w&&y,onlyModifyAttributes:w,setVisualParentIfClassOfParent:null==t?void 0:t.setVisualParentIfClassOfParent,overwriteAttributeValue:o});if(w?await Oe(i):x&&he(void 0),await Promise.all(k.diff()),E.getAttribute("consent-redom")){const{parentElement:e}=E;if(e){const t=[...e.children].indexOf(E);e.removeChild(E),m=E,(g=t)>=(f=e).children.length?f.appendChild(m):f.insertBefore(m,f.children[g])}}E.dispatchEvent(new CustomEvent(Pe.T,{detail:{blocker:v,gotClicked:y}})),document.dispatchEvent(new CustomEvent(Pe.T,{detail:{blocker:v,element:E,gotClicked:y}})),y&&a&&We(E,a),d.push({...e,node:E})}else t&&!l&&ve({node:e.node,blocker:e.blocker,...t})}var f,m,g;d.length?(u&&he(void 0),Y(!1),document.dispatchEvent(new CustomEvent(i,{detail:{unblockedNodes:d}})),d.forEach((({node:e})=>{e.setAttribute(r.Ti,"1"),e.dispatchEvent(new CustomEvent(i,{detail:{unblockedNodes:d}}))})),setTimeout((()=>{null==n||n(d),function(e){const t=e.filter((({node:{nodeName:e,parentElement:t}})=>"SOURCE"===e&&"VIDEO"===t.nodeName)).map((({node:{parentElement:e}})=>e));t.filter(((e,o)=>t.indexOf(e)===o)).forEach((e=>e.load()))}(d),(0,Ve.s)(),u&&!le(u.node)&&u.node.scrollIntoView({behavior:"smooth"})}),0)):Y(!1)}(this.options)}start(){clearInterval(this.interval),this.interval=setInterval(this.unblockNow.bind(this),1e3)}stop(){clearInterval(this.interval)}}var ze=o(7563),Re=o(7766),Fe=o(5672),Me=o(7029).h,je=o(9302);const De=["youtube","vimeo"],qe=["fitVids","mediaelementplayer","prettyPhoto","gMap"];!function(){let e=[];const{setVisualParentIfClassOfParent:t,multilingualSkipHTMLForTag:o,dependantVisibilityContainers:n,blocker:i,tcf:c,tcfMetadata:s,userConsentCookieName:a,pageRequestUuid4:l}=(0,d.u)(),p=new He({checker:(t,o,n)=>{var r;const c=null===(r=i.filter((({id:e})=>e===n)))||void 0===r?void 0:r[0];let s=!0;return"services"===t&&(s=-1===o.map((t=>{for(const{service:{id:o}}of e)if(o===t)return!0;return!1})).indexOf(!1)),{consent:s,blocker:c}},overwriteAttributeValue:(e,t)=>e,transactionClosed:e=>{!function(e){const{elementorFrontend:t,TCB_Front:o,jQuery:n,showGoogleMap:r,et_pb_init_modules:i,et_calculate_fullscreen_section_size:c,tdYoutubePlayers:s,tdVimeoPlayers:a,FWP:l,avadaLightBoxInitializeLightbox:d,WPO_LazyLoad:u}=window;let p=!1;for(const{node:r}of e){const{className:e,id:i}=r;if(null==t||t.elementsHandler.runReadyTrigger(r),(i.startsWith("wpgb-")||e.startsWith("wpgb-"))&&(p=!0),o&&n&&e.indexOf("tcb-yt-bg")>-1){const e=n(r);e.is(":visible")&&o.playBackgroundYoutube(e)}}var b,f;null==o||o.handleIframes(o.$body,!0),null==d||d(),l&&(l.loaded=!1,l.refresh()),null==u||u.update(),null==r||r(),n&&(null===(b=(f=n(window)).lazyLoadXT)||void 0===b||b.call(f)),i&&(n(window).off("resize",c),i()),null==s||s.init(),null==a||a.init();try{p&&window.dispatchEvent(new CustomEvent("wpgb.loaded"))}catch(e){}}(e)},visual:{setVisualParentIfClassOfParent:t,dependantVisibilityContainers:n,unmount:e=>{(0,u.uy)(e)},mount:({container:e,blocker:t,onClick:n,thumbnail:r,paintMode:i})=>{o&&e.setAttribute(o,"1");const c={...t,visualThumbnail:r||t.visualThumbnail};(0,u.sY)(Me(D,{poweredLink:(0,Fe.U)("".concat(l,"-powered-by")),blocker:c,paintMode:i,setVisualAsLastClickedVisual:n}),e)}},customInitiators:(e,t)=>{ke(e,t,"elementor/frontend/init"),ke(e,t,"tcb_after_dom_ready"),ke(e,e,"mylisting/single:tab-switched"),ke(e,e,"tve-dash.load",{onBeforeExecute:()=>{const{TVE_Dash:e}=window;e.ajax_sent=!0}})},delegateClick:{same:[".ultv-video__play",".elementor-custom-embed-image-overlay",".tb_video_overlay",".premium-video-box-container",".norebro-video-module-sc",'a[rel="wp-video-lightbox"]','[id^="lyte_"]',"lite-youtube","lite-vimeo",".awb-lightbox"],nextSibling:[".jet-video__overlay",".elementor-custom-embed-image-overlay"],parentNextSibling:[{selector:".et_pb_video_overlay",hide:!0}]}});document.addEventListener(ze.V,(({detail:{services:t}})=>{e=t,p.unblockNow(),p.start()})),document.addEventListener(Re.I,(()=>{e=[],p.unblockNow(),p.start()})),function(){const e=document.createElement("style");e.style.type="text/css",document.getElementsByTagName("head")[0].appendChild(e);const t="".concat(r.Wm,'="').concat(r.Qt,'"'),o=".rcb-content-blocker",n=[...[".thrv_wrapper[".concat(t,"]")].map((e=>"".concat(e,"::before{display:none!important;}"))),...[".jet-video[".concat(t,"]>.jet-video__overlay"),".et_pb_video[".concat(t,"]>.et_pb_video_overlay"),"".concat(o,"+div+.et_pb_video_overlay"),"".concat(o,"+.ultv-video"),"".concat(o,"+.elementor-widget-container"),".wp-block-embed__wrapper[".concat(t,"]>.ast-oembed-container"),"".concat(o,"+.wpgb-facet"),"".concat(o,"+.td_wrapper_video_playlist"),"".concat(o,'+div[class^="lyte-"]'),".elementor-fit-aspect-ratio[".concat(t,"]>.elementor-custom-embed-image-overlay")].map((e=>"".concat(e,"{display:none!important;}"))),...[".wp-block-embed__wrapper[".concat(t,"]::before"),".wpb_video_widget[".concat(t,"] .wpb_video_wrapper")].map((e=>"".concat(e,"{padding-top:0!important;}"))),".tve_responsive_video_container[".concat(t,"]{padding-bottom:0!important;}"),...[".x-frame-inner[".concat(t,"]>div.x-video"),".avia-video[".concat(t,"] .avia-iframe-wrap")].map((e=>"".concat(e,"{position:initial!important;}"))),...[".jet-video[".concat(t,"]")].map((e=>"".concat(e,"{background:none!important;}"))),...[".tve_responsive_video_container[".concat(t,"]")].map((e=>"".concat(e," .rcb-content-blocker > div > div > div {border-radius:0!important;}")))];e.innerHTML=n.join("")}()}(),s(qe),function(){const e=window,{jQuery:t}=e;null==t||t(window).on("elementor/frontend/init",(async()=>{const{elementorFrontend:o}=e;o.on("components:init",(()=>{for(const e of De){const n=o.utils[e];n&&(n.insertAPI=function(){const e=this.getApiURL();(0,je.h)(e).then((()=>{t("body").append(t("<script>",{src:e}))})),this.setSettings("isInserted",!0)})}}));const n=o.elementsHandler.getHandler("video.default");if(n){const e=null!=n&&n.then?await n:n,{onInit:t}=e.prototype;e.prototype.onInit=function(...e){const{$element:o}=this;return null==o||o.get(0).addEventListener(Pe.T,(async({detail:{gotClicked:e}})=>{if(e){const e=o.data("settings");e.autoplay=!0,o.data("settings",e)}})),t.apply(this,e)}}}))}(),(0,n.C)((()=>{s(qe),l(document,document,"tve-dash.load"),l(document,document,"mylisting/single:tab-switched")}),"interactive")}},e=>{e.O(0,[568],(()=>(3677,e(e.s=3677))));var t=e.O();realCookieBanner_blocker=t}]);
2
  //# sourceMappingURL=blocker.lite.js.map
public/dist/blocker.lite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"blocker.lite.js","mappings":"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","sources":["webpack:///../../frontend-packages/headless-content-unblocker/src/events/optInContentBlockerAll.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/hijackJqueryFn.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/memorizeJQueryEvent.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/content.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/header/header.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/blocker.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/body/button.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/buttons.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/body/body.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/groups.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/inlineStyles/blocker/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/footer/footer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/textContainer.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/hooks/useWaitElementInViewport.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/utils/waitElementInViewport.tsx","webpack:///../../frontend-packages/react-cookie-banner/src/components/blocker/blocker.tsx","webpack:///./src/public/ts/components/websiteBlocker.tsx","webpack:///./src/public/ts/others/applyContentBlocker/adjustConsent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/checker/transaction.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/checker/decideToUnblock.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/putStyleInlineToDom.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/transformInlineStyleRules.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/calculateScore.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/priorityByRule.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/iterateRules.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/index.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/resolveScorePool.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/iterateStylesheets.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/calculateInlineScore.tsx","webpack:///../../frontend-packages/resolve-none-computed-style/src/sortScores.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/probablyResetParentContainer.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/isElementInViewport.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/findVisualParent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/utils/previousVisibleElement.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/findPreviousVisibleDuplicate.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/createVisual.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/createVisualContainer.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/visual/detectLastClicked.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/jQueryReady.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/jQueryEvent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/nativeEventListener.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/memorizeNativeEvent.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/initiators/windowOnload.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/waitSynchronousScripts.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/ensureScriptWrapper.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/transformToOriginalAttribute.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/putScriptInlineToDom.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/delegateClick.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/watcher.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/checker/findAndUnblock.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/checker/findBlockedNodes.tsx","webpack:///../../frontend-packages/headless-content-unblocker/src/dom/loadVideoSource.tsx","webpack:///./src/public/ts/others/comp/elementorVideoApi.tsx","webpack:///./src/public/ts/blocker.tsx","webpack:///./src/public/ts/others/applyContentBlocker/listenOptIn.tsx","webpack:///./src/public/ts/others/comp/customTriggers.tsx","webpack:///./src/public/ts/others/comp/ratioClassPlainCss.tsx"],"sourcesContent":["/**\n * A content - which was blocked - got unblocked. This event is **not** dispatched\n * for each unblocked content in a \"transaction\", instead it is dispatched\n * when the transaction is complete (all content got unblocked and loaded).\n */\nexport const OPT_IN_CONTENT_BLOCKER_ALL = \"RCB/OptIn/ContentBlocker/All\";","// import $ from \"jquery\"; // not always available\nimport { HTML_ATTRIBUTE_COOKIE_IDS, OPT_IN_CONTENT_BLOCKER_ALL } from \"..\";\nconst ALREADY_OVERWRITTEN_PROPERTY = \"listenOptInJqueryFnForContentBlockerNow\";\n/**\n * Modify a jQuery function to wait for consent if a content blocker is within the\n * given selector.\n */\n\nfunction hijackJqueryFn(fns) {\n const $ = window.jQuery;\n\n if (!($ !== null && $ !== void 0 && $.fn)) {\n return;\n }\n\n const jQueryFns = $.fn;\n\n for (const fn of fns) {\n const originalFunction = jQueryFns[fn];\n\n if (!originalFunction) {\n continue;\n } // Already overwritten?\n\n\n const alreadyOverwritten = jQueryFns[ALREADY_OVERWRITTEN_PROPERTY] = jQueryFns[ALREADY_OVERWRITTEN_PROPERTY] || [];\n\n if (alreadyOverwritten.indexOf(fn) > -1) {\n continue;\n }\n\n alreadyOverwritten.push(fn); // Memorize the static properties (e.g. `jQuery.fn.{fn}.defaults` (https://github.com/marioestrada/jQuery-gMap/blob/33b2771a5789b7531eb56878cfa3e4a0c30a8c43/jquery.gmap.js#L250))\n\n const staticProps = Object.getOwnPropertyDescriptors(originalFunction);\n delete staticProps.length;\n delete staticProps.name;\n delete staticProps.prototype;\n\n jQueryFns[fn] = function (...args) {\n const callOriginal = () => originalFunction.apply($(this), args);\n\n if (this.length) {\n return this.each(function () {\n const nodes = Array.prototype.slice.call(this.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_COOKIE_IDS, \"]\"))); // Also respect own element\n\n if (this.getAttribute(HTML_ATTRIBUTE_COOKIE_IDS)) {\n nodes.push(this);\n } // Call original function immediate if no content blocker found\n\n\n if (!nodes.length) {\n callOriginal();\n } else {\n // Wait for all unblocked content\n Promise.all(nodes.map(node => new Promise(resolve => node.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, resolve)))).then(() => callOriginal());\n }\n });\n } else {\n // There is no jQuery object passed to the jQuery function. But we need to call the\n // original function anyway as some properties of e.g. `$.fn.prettyPhoto` can be\n // lazy loaded and expect a \"first\" call\n return callOriginal();\n }\n }; // Apply memorized static properties\n\n\n Object.defineProperties(jQueryFns[fn], staticProps);\n }\n}\n\nexport { hijackJqueryFn };","const MEMORIZE_JQUERY_EVENT_PROPERTY = \"rcbJQueryEventListenerMemorize\";\n/**\n * We listen to the passed event and once that event got triggered, all event registrations\n * afterwards are automatically executed, too. This does not need another trigger again.\n *\n * You need to call this function as early as possible to catch all triggers.\n */\n\nfunction memorizeJQueryEvent(doc, element, eventName) {\n const memorizeProp = \"\".concat(MEMORIZE_JQUERY_EVENT_PROPERTY, \"_\").concat(eventName);\n const {\n jQuery\n } = doc.defaultView || doc.parentWindow;\n\n if (!jQuery) {\n return;\n }\n\n const {\n event,\n Event\n } = jQuery;\n\n if (!event || !Event || event[memorizeProp]) {\n return;\n } // TODO: shouldn't this be memorized to the element itself?\n\n\n Object.assign(event, {\n [memorizeProp]: new Promise(resolve => jQuery(element).on(eventName, resolve))\n });\n}\n\nexport { memorizeJQueryEvent, MEMORIZE_JQUERY_EVENT_PROPERTY };","class BlockerContentInlineStyles {\n static inner({\n layout: {\n type,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n textAlign,\n fontColor,\n fontInheritFamily,\n fontFamily\n },\n customCss: {\n antiAdBlocker\n },\n blocker: {\n visualType\n }\n }) {\n const hasBg = visualType === \"wrapped\";\n const style = {\n textAlign,\n fontFamily: fontInheritFamily ? undefined : fontFamily,\n color: fontColor,\n // margin: \"10px 0\",\n borderRadius: type === \"dialog\" ? +dialogBorderRadius : undefined,\n border: type === \"banner\" ? borderWidth > 0 ? \"\".concat(borderWidth, \"px solid \").concat(borderColor) : undefined : undefined,\n position: \"relative\",\n padding: hasBg ? \"30px 50px\" : undefined,\n overflow: hasBg ? \"hidden\" : undefined\n };\n return {\n className: \"wp-exclude-emoji \".concat(antiAdBlocker === \"y\" ? \"\" : \"rcb-inner\"),\n style\n };\n }\n\n static innerBackground({\n customCss: {\n antiAdBlocker\n },\n blocker: {\n visualType,\n visualThumbnail,\n visualBlur\n }\n }) {\n const hasBg = visualType === \"wrapped\";\n const style = {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: hasBg ? \"block\" : \"none\",\n filter: visualBlur > 0 ? \"blur(\".concat(visualBlur, \"px)\") : undefined\n };\n\n if (hasBg) {\n style.background = \"url('\".concat(visualThumbnail.url, \"') no-repeat center center\");\n style.backgroundSize = \"cover\";\n }\n\n return {\n className: antiAdBlocker === \"y\" ? \"\" : \"rcb-inner-bg\",\n style\n };\n }\n\n static content({\n blocker: {\n visualType\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-content\",\n style: {\n boxShadow: visualType === \"wrapped\" ? \"rgb(0 0 0 / 35%) 0px 0px 0px 7px, #0000004d 0px 0px 100px 30px\" : undefined,\n position: \"relative\"\n }\n };\n }\n\n}\n\nexport { BlockerContentInlineStyles };","class BlockerHeaderInlineStyles {\n static headerContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design: {\n borderWidth,\n borderColor,\n ...restDesign\n },\n headerDesign: {\n inheritBg,\n bg,\n padding\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n padding: padding.map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? restDesign.bg : bg,\n borderRadius: type === \"dialog\" ? \"\".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px 0 0\") : undefined\n };\n\n if (type === \"dialog\" && borderWidth > 0) {\n style.borderTop = \"\".concat(borderWidth, \"px solid \").concat(borderColor);\n style.borderLeft = style.borderTop;\n style.borderRight = style.borderTop;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-container\",\n style\n };\n }\n\n static header({\n design: {\n textAlign\n },\n headerDesign: {\n inheritTextAlign,\n ...restHeaderDesign\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const useTextAlign = inheritTextAlign ? textAlign : restHeaderDesign.textAlign;\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header\",\n style: {\n margin: \"auto\",\n display: \"flex\",\n justifyContent: useTextAlign === \"center\" ? \"center\" : useTextAlign === \"right\" ? \"flex-end\" : undefined,\n alignItems: \"center\",\n position: \"relative\"\n }\n };\n }\n\n static headerSeparator({\n layout: {\n type\n },\n design,\n headerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n height: +borderWidth,\n background: borderColor\n };\n\n if (type === \"dialog\" && design.borderWidth > 0) {\n style.borderLeft = \"\".concat(design.borderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-header-separator\",\n style\n };\n }\n\n}\n\nexport { BlockerHeaderInlineStyles };","import { commonInlineStyleHeaderHeadline, useBlocker, BlockerHeaderInlineStyles } from \"../../..\";\n\nconst BlockerHeader = ({\n closeIcon\n}) => {\n const blocker = useBlocker();\n const {\n blocker: {\n name\n },\n texts: {\n blockerHeadline\n }\n } = blocker;\n return h(\"div\", BlockerHeaderInlineStyles.headerContainer(blocker), h(\"div\", BlockerHeaderInlineStyles.header(blocker), h(\"div\", commonInlineStyleHeaderHeadline(blocker, !!closeIcon), blockerHeadline.replace(/{{name}}/g, name)), closeIcon));\n};\n\nexport { BlockerHeader };","class BlockerBodyInlineStyles {\n static bodyContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design: {\n bg,\n borderWidth,\n borderColor\n },\n bodyDesign: {\n padding\n },\n customCss: {\n antiAdBlocker\n },\n showFooter\n }) {\n const style = {\n background: bg,\n padding: padding.map(p => \"\".concat(p, \"px\")).join(\" \"),\n borderRadius: !showFooter && type === \"dialog\" ? \"0 0 \".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px\") : undefined,\n lineHeight: 1.4,\n overflow: \"auto\" // See https://stackoverflow.com/a/27829422/5506547\n\n };\n\n if (type === \"dialog\" && borderWidth > 0) {\n style.borderLeft = \"\".concat(borderWidth, \"px solid \").concat(borderColor);\n style.borderRight = style.borderLeft;\n\n if (!showFooter) {\n style.borderBottom = style.borderLeft;\n }\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body-container\",\n style\n };\n }\n\n static body({\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n margin: \"auto\"\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-body\",\n style\n };\n }\n\n static description({\n design: {\n fontSize\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n individualLayout: {\n descriptionTextAlign\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-description\",\n style: {\n marginBottom: 10,\n fontSize: descriptionInheritFontSize ? +fontSize : +descriptionFontSize,\n textAlign: descriptionTextAlign\n }\n };\n }\n\n}\n\nexport { BlockerBodyInlineStyles };","class BlockerInlineStyles {\n static topSide({\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n marginBottom: 15\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-top\",\n style\n };\n }\n\n static bottomSide({\n design: {\n bg\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n background: bg\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-tb-bottom\",\n style\n };\n }\n\n}\n\nexport { BlockerInlineStyles };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useCallback, useState } from \"react\";\nimport { useBlocker, AsciiSpinner, BlockerButtonsInlineStyles } from \"../../..\";\n\nconst BlockerButton = ({\n inlineStyle,\n type,\n onClick,\n children,\n framed,\n busyOnClick\n}) => {\n if (type === \"hide\") {\n return null;\n }\n\n const [isBusy, setIsBusy] = useState(false);\n const handleOnClick = useCallback(e => {\n if (!isBusy) {\n busyOnClick && setIsBusy(true);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }\n }, [onClick, isBusy, busyOnClick]);\n const [isHover, setIsHover] = useState(false);\n const banner = useBlocker();\n const interactionAttr = {\n onClick: handleOnClick,\n onMouseEnter: () => setIsHover(true),\n onMouseLeave: () => setIsHover(false)\n };\n return h(\"div\", _extends({}, type === \"button\" ? interactionAttr : {}, BlockerButtonsInlineStyles[inlineStyle](banner, isHover, framed)), h(\"span\", type === \"link\" ? { ...interactionAttr,\n style: {\n cursor: \"pointer\"\n }\n } : {}, isBusy ? h(AsciiSpinner, null) : children));\n};\n\nexport { BlockerButton };","class BlockerButtonsInlineStyles {\n static save({\n decision: {\n acceptAll\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptAllFontSize,\n acceptAllBg,\n acceptAllTextAlign,\n acceptAllBorderColor,\n acceptAllPadding,\n acceptAllBorderWidth,\n acceptAllFontColor,\n acceptAllHoverBg,\n acceptAllHoverFontColor,\n acceptAllHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n }\n }, isHover, framed) {\n return this.common({\n name: \"accept-all\",\n type: acceptAll,\n borderRadius,\n bg: acceptAllBg,\n hoverBg: acceptAllHoverBg,\n fontSize: acceptAllFontSize,\n textAlign: acceptAllTextAlign,\n fontColor: acceptAllFontColor,\n hoverFontColor: acceptAllHoverFontColor,\n borderWidth: acceptAllBorderWidth,\n borderColor: acceptAllBorderColor,\n hoverBorderColor: acceptAllHoverBorderColor,\n padding: acceptAllPadding,\n antiAdBlocker\n }, isHover, framed);\n }\n\n static showInfo({\n decision: {\n acceptIndividual\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptIndividualFontSize,\n acceptIndividualBg,\n acceptIndividualTextAlign,\n acceptIndividualBorderColor,\n acceptIndividualPadding,\n acceptIndividualBorderWidth,\n acceptIndividualFontColor,\n acceptIndividualHoverBg,\n acceptIndividualHoverFontColor,\n acceptIndividualHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n }\n }, isHover, framed) {\n return this.common({\n name: \"accept-individual\",\n type: acceptIndividual,\n borderRadius,\n bg: acceptIndividualBg,\n hoverBg: acceptIndividualHoverBg,\n fontSize: acceptIndividualFontSize,\n textAlign: acceptIndividualTextAlign,\n fontColor: acceptIndividualFontColor,\n hoverFontColor: acceptIndividualHoverFontColor,\n borderWidth: acceptIndividualBorderWidth,\n borderColor: acceptIndividualBorderColor,\n hoverBorderColor: acceptIndividualHoverBorderColor,\n padding: acceptIndividualPadding,\n antiAdBlocker\n }, isHover, framed);\n }\n\n static hero({\n decision: {\n acceptAll\n },\n layout: {\n borderRadius\n },\n bodyDesign: {\n acceptAllFontSize,\n acceptAllBg,\n acceptAllTextAlign,\n acceptAllBorderColor,\n acceptAllPadding,\n acceptAllBorderWidth,\n acceptAllFontColor,\n acceptAllHoverBg,\n acceptAllHoverFontColor,\n acceptAllHoverBorderColor\n },\n customCss: {\n antiAdBlocker\n }\n }, isHover, framed) {\n return this.common({\n name: \"accept-all\",\n type: acceptAll,\n borderRadius,\n bg: acceptAllBg,\n hoverBg: acceptAllHoverBg,\n fontSize: acceptAllFontSize,\n textAlign: acceptAllTextAlign,\n fontColor: acceptAllFontColor,\n hoverFontColor: acceptAllHoverFontColor,\n borderWidth: acceptAllBorderWidth,\n borderColor: acceptAllBorderColor,\n hoverBorderColor: acceptAllHoverBorderColor,\n padding: acceptAllPadding,\n boxShadow: \"rgb(0 0 0 / 15%) 0px 0px 100px 30px, rgb(0 0 0 / 40%) 0px 2px 5px 1px\",\n zIndex: 9,\n antiAdBlocker\n }, isHover, framed);\n }\n\n static common({\n name,\n type,\n borderRadius,\n bg,\n hoverBg,\n fontSize,\n textAlign,\n fontColor,\n hoverFontColor,\n borderWidth,\n borderColor,\n hoverBorderColor,\n padding,\n boxShadow,\n zIndex,\n antiAdBlocker\n }, isHover, framed) {\n const style = {\n textDecoration: type === \"link\" ? \"underline\" : \"none\",\n borderRadius: +borderRadius,\n cursor: type === \"button\" ? \"pointer\" : undefined,\n backgroundColor: type === \"button\" ? isHover ? hoverBg : bg : undefined,\n fontSize: +fontSize,\n textAlign,\n color: isHover ? hoverFontColor : fontColor,\n transition: \"background-color 250ms, color 250ms, border-color 250ms\",\n marginBottom: 10,\n border: type === \"button\" && borderWidth > 0 ? \"\".concat(borderWidth, \"px solid \").concat(isHover ? hoverBorderColor : borderColor) : undefined,\n padding: padding.map(p => \"\".concat(p, \"px\")).join(\" \"),\n overflow: \"hidden\",\n outline: framed ? \"rgb(255, 94, 94) solid 5px\" : undefined,\n boxShadow,\n zIndex\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-btn-\".concat(name),\n style\n };\n }\n\n}\n\nexport { BlockerButtonsInlineStyles };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useState, useMemo } from \"react\";\nimport { commonInlineStyleBodyTeaching, commonInlineStyleBodyTeachingsSeparator, Cookie, useBlocker, useCommonTeachings, BlockerInlineStyles, BlockerBodyInlineStyles, BlockerGroupsInlineStyles, BlockerButton } from \"../../..\";\n\nconst BlockerBody = () => {\n const blocker = useBlocker();\n const [areCookiesVisible, setCookiesVisible] = useState(false);\n const {\n bodyDesign: {\n teachingsSeparatorActive\n },\n decision: {\n acceptAll,\n acceptIndividual\n },\n texts: {\n blockerLoadButton,\n blockerLinkShowMissing,\n blockerAcceptInfo\n },\n blocker: {\n services\n },\n consent,\n groups,\n onUnblock,\n productionNotice,\n i18n: {\n close\n }\n } = blocker; // Calculate missing cookies\n\n const missing = useMemo(() => {\n const missing = [];\n const allConsentCookies = [];\n\n for (const cookies of Object.values(consent.groups)) {\n allConsentCookies.push(...cookies);\n }\n\n for (const {\n items\n } of groups) {\n for (const cookie of items) {\n // Cookie is needed for this blocker? Yes, check if already consent...\n if (services.indexOf(cookie.id) > -1 && allConsentCookies.indexOf(cookie.id) === -1) {\n missing.push(cookie);\n }\n }\n }\n\n return missing;\n }, [groups, services, consent]);\n const {\n description,\n teachings\n } = useCommonTeachings({\n // Only enable USA notice when the blocked service is USA-relevant\n disableDataProcessingInUnsafeCountries: missing.map(({\n ePrivacyUSA\n }) => ePrivacyUSA).filter(Boolean).length === 0,\n // Not needed in blocker, as there is already a link with \"Show all services which I need to consent to\"\n disableListServicesNotice: true\n });\n return h(\"div\", BlockerBodyInlineStyles.bodyContainer(blocker), h(\"div\", BlockerBodyInlineStyles.body(blocker), h(\"div\", BlockerInlineStyles.topSide(blocker), h(\"div\", BlockerBodyInlineStyles.description(blocker), h(\"span\", {\n dangerouslySetInnerHTML: {\n __html: description.replace(/\\n/gm, \"<br />\")\n }\n }), !!description && teachingsSeparatorActive && h(\"div\", null, h(\"span\", commonInlineStyleBodyTeachingsSeparator(blocker))), teachings.map(teaching => h(\"span\", _extends({\n key: teaching\n }, commonInlineStyleBodyTeaching(blocker), {\n dangerouslySetInnerHTML: {\n __html: teaching\n }\n }))), h(\"span\", _extends({}, commonInlineStyleBodyTeaching(blocker), {\n dangerouslySetInnerHTML: {\n __html: blockerAcceptInfo\n }\n }))), h(BlockerButton, {\n type: acceptIndividual === \"hide\" ? \"link\" : acceptIndividual,\n inlineStyle: \"showInfo\",\n onClick: () => setCookiesVisible(!areCookiesVisible)\n }, areCookiesVisible ? close : blockerLinkShowMissing), areCookiesVisible && h(\"div\", BlockerGroupsInlineStyles.cookieScroll(blocker), missing.map(cookie => h(Cookie, {\n key: cookie.id,\n cookie: cookie,\n checked: true,\n disabled: true\n })))), h(\"div\", BlockerInlineStyles.bottomSide(blocker), h(BlockerButton, {\n type: acceptAll === \"hide\" ? \"button\" : acceptAll,\n inlineStyle: \"save\",\n onClick: e => onUnblock(e),\n busyOnClick: true\n }, blockerLoadButton), productionNotice)));\n};\n\nexport { BlockerBody };","class BlockerGroupsInlineStyles {\n static cookieScroll({\n design: {\n fontSize\n },\n bodyDesign: {\n descriptionInheritFontSize,\n descriptionFontSize\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-cookie-scroll\",\n style: {\n fontSize: descriptionInheritFontSize ? +fontSize : +descriptionFontSize,\n textAlign: \"left\",\n marginBottom: 10,\n maxHeight: 400,\n overflowY: \"scroll\",\n paddingRight: 10\n }\n };\n }\n\n}\n\nexport { BlockerGroupsInlineStyles };","class BlockerFooterInlineStyles {\n static footerContainer({\n layout: {\n type,\n dialogBorderRadius\n },\n design,\n footerDesign: {\n inheritBg,\n bg,\n inheritTextAlign,\n textAlign,\n padding,\n fontSize,\n fontColor\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n padding: padding.map(p => \"\".concat(p, \"px\")).join(\" \"),\n background: inheritBg ? design.bg : bg,\n borderRadius: type === \"dialog\" ? \"0 0 \".concat(dialogBorderRadius, \"px \").concat(dialogBorderRadius, \"px\") : undefined,\n fontSize: +fontSize,\n color: fontColor,\n textAlign: inheritTextAlign ? design.textAlign : textAlign\n };\n\n if (type === \"dialog\" && design.borderWidth > 0) {\n style.borderBottom = \"\".concat(design.borderWidth, \"px solid \").concat(design.borderColor);\n style.borderLeft = style.borderBottom;\n style.borderRight = style.borderBottom;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-container\",\n style\n };\n }\n\n static footer({\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n margin: \"auto\",\n lineHeight: 1.8\n };\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer\",\n style\n };\n }\n\n static footerSeparator({\n layout: {\n type\n },\n design,\n footerDesign: {\n borderWidth,\n borderColor\n },\n customCss: {\n antiAdBlocker\n }\n }) {\n const style = {\n height: +borderWidth,\n background: borderColor\n };\n\n if (type === \"dialog\" && design.borderWidth > 0) {\n style.borderLeft = \"\".concat(design.borderWidth, \"px solid \").concat(design.borderColor);\n style.borderRight = style.borderLeft;\n }\n\n return {\n className: antiAdBlocker === \"y\" ? undefined : \"rcb-footer-separator\",\n style\n };\n }\n\n}\n\nexport { BlockerFooterInlineStyles };","import { useBlocker, useCommonFooterLinks, BlockerFooterInlineStyles } from \"../../..\";\n\nconst BlockerFooter = () => {\n const blocker = useBlocker();\n const {\n rows: links,\n render: renderLinks\n } = useCommonFooterLinks({\n putPoweredByLinkInRow: 1\n });\n return h(\"div\", BlockerFooterInlineStyles.footerContainer(blocker), h(\"div\", BlockerFooterInlineStyles.footer(blocker), renderLinks(links)));\n};\n\nexport { BlockerFooter };","import _extends from \"@babel/runtime/helpers/extends\";\nimport { useBlocker, BlockerContentInlineStyles, BlockerHeaderInlineStyles, BlockerFooterInlineStyles, BlockerHeader, BlockerFooter, BlockerBody, useWaitElementInViewport } from \"../../..\";\nimport { useRef, Fragment } from \"react\";\n\nconst BlockerTextContainer = ({\n closeIcon\n}) => {\n const blocker = useBlocker();\n const {\n showFooter,\n paintMode\n } = blocker;\n const ref = useRef(); // Lazy load background image\n\n const isBackgroundVisible = paintMode === \"instantInViewport\" || useWaitElementInViewport(ref);\n return h(\"div\", _extends({}, BlockerContentInlineStyles.inner(blocker), {\n ref: ref\n }), isBackgroundVisible && h(\"div\", BlockerContentInlineStyles.innerBackground(blocker)), h(\"div\", BlockerContentInlineStyles.content(blocker), h(BlockerHeader, {\n closeIcon: closeIcon\n }), h(\"div\", BlockerHeaderInlineStyles.headerSeparator(blocker)), h(BlockerBody, null), !!showFooter && h(Fragment, null, h(\"div\", BlockerFooterInlineStyles.footerSeparator(blocker)), h(BlockerFooter, null))));\n};\n\nexport { BlockerTextContainer };","import { useEffect, useState } from \"react\";\nimport { waitElementInViewport } from \"../utils\";\n\nfunction useWaitElementInViewport(ref) {\n const [inViewport, setInViewport] = useState(false);\n useEffect(() => {\n if (ref.current) {\n waitElementInViewport(ref.current).then(() => {\n setInViewport(true);\n });\n }\n }, []);\n return inViewport;\n}\n\nexport { useWaitElementInViewport };","/**\n * Attention: Never use this with `async/await` as it blocks the thread!\n */\nfunction waitElementInViewport(container) {\n return new Promise(resolve => {\n if (window.IntersectionObserver) {\n new IntersectionObserver((entries, observer) => {\n entries.forEach(({\n isIntersecting\n }) => {\n if (isIntersecting) {\n resolve();\n observer.disconnect();\n }\n });\n }).observe(container);\n } else {\n resolve();\n }\n });\n}\n\nexport { waitElementInViewport };","import { BlockerTextContainer, useBlocker } from \"../..\";\n\nconst Blocker = () => {\n const blocker = useBlocker();\n const {\n blocker: {\n visualType,\n visualThumbnail\n }\n } = blocker;\n\n if (process.env.PLUGIN_CTX === \"pro\") {\n /* Silence is golden... Until you have PRO Version! */\n } else {\n return h(BlockerTextContainer, null);\n }\n};\n\nexport { Blocker };","import { useState } from \"react\";\nimport { getOtherOptionsFromWindow } from \"../utils\";\nimport { adjustConsentComingFromContentBlocker } from \"../others\";\nimport { HTML_ATTRIBUTE_COOKIE_IDS } from \"@devowl-wp/headless-content-unblocker\";\nimport { getUserDecision } from \"@devowl-wp/cookie-consent-web-client\";\nimport { usePlainCss, BlockerContextFactory, Blocker } from \"@devowl-wp/react-cookie-banner\";\nimport { BannerProductionNotice } from \".\";\n/**\n * Simply connects a context store to the blocker itself. On the website itself\n * it should not rely\n */\n\nconst WebsiteBlocker = ({\n poweredLink,\n blocker,\n paintMode,\n setVisualAsLastClickedVisual\n}) => {\n const {\n customizeValuesBanner: {\n layout,\n decision,\n legal,\n design,\n headerDesign,\n bodyDesign,\n footerDesign,\n texts,\n individualLayout,\n saveButton,\n group,\n individualTexts,\n customCss\n },\n pageIdToPermalink,\n consentForwardingExternalHosts,\n isTcf,\n isEPrivacyUSA,\n isAgeNotice,\n isListServicesNotice,\n groups,\n userConsentCookieName,\n bannerI18n,\n affiliate,\n isCurrentlyInTranslationEditorPreview,\n pageByIdUrl\n } = getOtherOptionsFromWindow();\n const userDecision = getUserDecision(userConsentCookieName); // Calculate a border color for the complete box as the standard box does not have one configured\n\n const overwriteDesign = {\n borderWidth: design.borderWidth || 1,\n borderColor: design.borderWidth === 0 ? headerDesign.borderWidth > 0 ? headerDesign.borderColor : footerDesign.borderWidth > 0 ? footerDesign.borderColor : design.fontColor : design.borderColor\n }; // Context values preparation\n\n const [contextValue] = useState({\n layout: { ...layout\n },\n decision: { ...decision\n },\n legal: { ...legal\n },\n design: { ...design,\n ...overwriteDesign\n },\n headerDesign: { ...headerDesign\n },\n bodyDesign: { ...bodyDesign\n },\n footerDesign: { ...footerDesign\n },\n texts: { ...texts\n },\n individualLayout: { ...individualLayout\n },\n saveButton: { ...saveButton\n },\n group: { ...group\n },\n individualTexts: { ...individualTexts\n },\n customCss: { ...customCss\n },\n productionNotice: h(BannerProductionNotice, null),\n pageIdToPermalink,\n consentForwardingExternalHosts,\n paintMode,\n pageByIdUrl,\n groups,\n poweredLink,\n isTcf,\n ePrivacyUSA: isEPrivacyUSA,\n ageNotice: isAgeNotice,\n listServicesNotice: isListServicesNotice,\n blocker,\n i18n: bannerI18n,\n keepVariablesInTexts: isCurrentlyInTranslationEditorPreview,\n affiliate,\n consent: {\n groups: { ...(userDecision === false ? {} : userDecision.consent)\n }\n },\n onUnblock: event => {\n adjustConsentComingFromContentBlocker(blocker);\n setVisualAsLastClickedVisual(event);\n }\n });\n usePlainCss([\".elementor-background-overlay ~ [\".concat(HTML_ATTRIBUTE_COOKIE_IDS, \"] { z-index: 99; }\")].join(\"\"));\n const BlockerContext = BlockerContextFactory.Context();\n return h(BlockerContext.Provider, {\n value: contextValue\n }, h(Blocker, null));\n};\n\nexport { WebsiteBlocker };","import { getOtherOptionsFromWindow } from \"../../utils\";\nimport { applyConsent } from \"../applyConsent\";\nimport { createTcfModelFromCookie, getUserDecision } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getCookieConsentManager } from \"..\";\n\n/**\n * When a content blocker needs to be unblocked (user click), then\n * we need to get the current consent, and add the newly consent cookies.\n */\nasync function adjustConsentComingFromContentBlocker(blocker) {\n // Get all available groups + current decision\n const {\n essentialGroup,\n groups,\n isTcf,\n tcf,\n tcfMetadata,\n userConsentCookieName\n } = getOtherOptionsFromWindow();\n const {\n id: blockerId,\n services,\n visualThumbnail\n } = blocker;\n const currentDecision = getUserDecision(userConsentCookieName);\n const [essentialGroupObj] = groups.filter(({\n slug\n }) => slug === essentialGroup); // Prepare new consent\n\n const newConsent = currentDecision === false ? {\n // The website owner uses a banner without overlay and content gets unblocked\n // We need to make sure, that also essential cookies got accepted\n groups: {\n [essentialGroupObj.id]: essentialGroupObj.items.map(({\n id\n }) => id)\n }\n } : {\n groups: currentDecision.consent\n };\n\n for (const {\n id: groupId,\n items\n } of groups) {\n for (const {\n id: cookieId\n } of items) {\n if (services.indexOf(cookieId) > -1) {\n var _newConsent$groups$gr;\n\n // Avoid duplicates\n if (((_newConsent$groups$gr = newConsent.groups[groupId]) === null || _newConsent$groups$gr === void 0 ? void 0 : _newConsent$groups$gr.indexOf(cookieId)) > -1) {\n continue;\n }\n\n newConsent.groups[groupId] = newConsent.groups[groupId] || [];\n newConsent.groups[groupId].push(cookieId);\n }\n }\n } // Keep TCF string as it is not touched for a content blocker\n\n\n let tcfString;\n\n if (process.env.IS_TCF === \"1\" && isTcf) {\n var _createTcfModelFromCo;\n\n tcfString = (_createTcfModelFromCo = createTcfModelFromCookie(tcf, tcfMetadata, getCookieConsentManager().getOption(\"tcfCookieName\"))) === null || _createTcfModelFromCo === void 0 ? void 0 : _createTcfModelFromCo.tcfString;\n }\n\n await applyConsent({\n consent: newConsent,\n buttonClicked: \"unblock\",\n blocker: blockerId,\n blockerThumbnail: visualThumbnail !== null && visualThumbnail !== void 0 && visualThumbnail.embedId ? \"\".concat(visualThumbnail.embedId, \"-\").concat(visualThumbnail.fileMd5) : undefined,\n tcfString\n });\n}\n\nexport { adjustConsentComingFromContentBlocker };","let currentlyInTransaction = false;\n\nfunction setCurrentlyInTransaction(state) {\n currentlyInTransaction = state;\n}\n/**\n * Check if the current page is currently unblocking content.\n */\n\n\nfunction isCurrentlyInTransaction() {\n return currentlyInTransaction;\n}\n\nexport { setCurrentlyInTransaction, isCurrentlyInTransaction };","/**\n * Given by criteria, IDs and content blocker ID decide if the consent is given.\n */\nfunction decideToUnblock(by, requiredIds, blockerId, checker) {\n const required = typeof requiredIds === \"string\" ? requiredIds.split(\",\").map(Number) : requiredIds;\n return checker(by, required, blockerId);\n}\n\nexport { decideToUnblock };","import { HTML_ATTRIBUTE_INLINE_STYLE, HTML_TAG_CONSENT_SCRIPT } from \".\";\n/**\n * Put an prepared inline style (tag containing a `consent-inline-style` attribute) to the DOM.\n */\n\nasync function putStyleInlineToDom(node) {\n // Get the inline style itself\n const inlineStyle = node.getAttribute(HTML_ATTRIBUTE_INLINE_STYLE);\n node.removeAttribute(HTML_ATTRIBUTE_INLINE_STYLE); // Transform the tag to the `style`\n // We need to make such a hacky way because regex does not work and `outerHTML` has also some issues...\n\n let inlineStyleHtml = node.outerHTML.substr(HTML_TAG_CONSENT_SCRIPT.length + 1);\n inlineStyleHtml = inlineStyleHtml.substr(0, inlineStyleHtml.length - HTML_TAG_CONSENT_SCRIPT.length - 3);\n inlineStyleHtml = inlineStyleHtml.replace(new RegExp(\"type=\\\"application/consent\\\"\"), \"\");\n inlineStyleHtml = \"<style \".concat(HTML_ATTRIBUTE_INLINE_STYLE, \"=\\\"1\\\" \").concat(inlineStyleHtml).concat(inlineStyle, \"</style>\"); // add inline attribute so `applyStyleRules` can check one more time for blocked URLs\n\n node.parentElement.replaceChild(new DOMParser().parseFromString(inlineStyleHtml, \"text/html\").querySelector(\"style\"), node);\n}\n\nexport { putStyleInlineToDom };","import { putStyleInlineToDom, HTML_ATTRIBUTE_INLINE_STYLE, HTML_TAG_CONSENT_SCRIPT, HTML_ATTRIBUTE_COOKIE_IDS } from \".\";\nimport { decideToUnblock, htmlDecode } from \"..\";\n/**\n * Find consent URLs and check for consent and return new style string.\n *\n * @see https://regex101.com/r/9FJWnR/1\n * @param style\n * @param checker\n */\n\nfunction transformInlineStyle(style, checker) {\n let noConsentCount = 0;\n const newStyle = style.replace(/(url\\s*\\([\"'\\s]*)([^\"]+dummy\\.(?:png|css))\\?consent-required=([0-9,]+)&consent-by=(\\w+)&consent-id=(\\d+)&consent-original-url=([^-]+)-/gm, (m, urlPrefix, maskedUrl, requiredString, by, blockerId, base64EncodedUrl) => {\n const {\n consent\n } = decideToUnblock(by, requiredString, +blockerId, checker);\n\n if (!consent) {\n noConsentCount++;\n }\n\n return consent ? \"\".concat(urlPrefix).concat(htmlDecode(atob(base64EncodedUrl))) : m;\n });\n return [newStyle, noConsentCount];\n}\n/**\n * Get all blocked rules within a inline CSS style and check, if they can be enabled by a consent.\n */\n\n\nfunction transformInlineStyleRules(checker) {\n let nodes; // First: Iterate all `style`'s\n\n nodes = Array.prototype.slice.call(document.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_INLINE_STYLE, \"]\")));\n\n for (const node of nodes) {\n // Get the inline style (can be inside attribute when it should be placed to DOM the first time)\n const isFirstTransition = node.tagName.toLowerCase() === HTML_TAG_CONSENT_SCRIPT;\n const innerHTML = isFirstTransition ? node.getAttribute(HTML_ATTRIBUTE_INLINE_STYLE) : node.innerHTML;\n const [newInnerHTML, noConsentCount] = transformInlineStyle(innerHTML, checker); // Put pack to DOM\n\n if (isFirstTransition) {\n node.setAttribute(HTML_ATTRIBUTE_INLINE_STYLE, newInnerHTML);\n putStyleInlineToDom(node);\n } else {\n if (node.innerHTML !== newInnerHTML) {\n node.innerHTML = newInnerHTML;\n }\n\n if (noConsentCount === 0) {\n node.removeAttribute(HTML_ATTRIBUTE_INLINE_STYLE);\n }\n }\n } // Second: All elements with `style=` attribute\n\n\n nodes = Array.prototype.slice.call(document.querySelectorAll(\"[style*=\\\"\".concat(HTML_ATTRIBUTE_COOKIE_IDS, \"\\\"]\")));\n\n for (const node of nodes) {\n node.setAttribute(\"style\", transformInlineStyle(node.getAttribute(\"style\"), checker)[0]);\n }\n}\n\nexport { transformInlineStyleRules };","import { calculate } from \"specificity\";\nimport { priorityByRule } from \".\";\n\nfunction calculateScore(rule, stackSize, property) {\n const score = +calculate(rule.selectorText)[0].specificity.replace(/,/g, \"\");\n const specificity = stackSize + score * 10 + priorityByRule(rule, property);\n return {\n selector: rule.selectorText,\n specificity\n };\n}\n\nexport { calculateScore };","function priorityByRule(rule, property) {\n var _rule$style;\n\n return ((_rule$style = rule.style) === null || _rule$style === void 0 ? void 0 : _rule$style.getPropertyPriority(property)) === \"important\" ? 100000 : 0;\n}\n\nexport { priorityByRule };","import { calculateScore } from \".\";\nimport { matchingSelector } from \".\";\n\nfunction iterateRules(rules, element, scoresPool, property) {\n for (const ruleIdx in rules) {\n const rule = rules[ruleIdx];\n\n if (!(rule instanceof CSSStyleRule)) {\n continue;\n }\n\n try {\n if (matchingSelector(element, rule.selectorText)) {\n const style = rule.style[property];\n\n if (style !== undefined && style !== \"\") {\n scoresPool.push({ ...calculateScore(rule, scoresPool.length, property),\n style\n });\n }\n }\n } catch (e) {// Silence is golden.\n }\n }\n}\n\nexport { iterateRules };","import { resolveScorePool } from \"./resolveScorePool\";\n\nfunction resolveNoneComputedStyle(element, property) {\n const scores = resolveScorePool(element, property);\n return scores === null || scores === void 0 ? void 0 : scores[0].style;\n}\n\nexport * from \"./calculateInlineScore\";\nexport * from \"./calculateScore\";\nexport * from \"./iterateRules\";\nexport * from \"./iterateStylesheets\";\nexport * from \"./matchingSelector\";\nexport * from \"./priorityByRule\";\nexport * from \"./sortScores\";\nexport * from \"./resolveScorePool\";\nexport { resolveNoneComputedStyle };","import { calculateInlineScore, iterateStylesheets, sortScores } from \".\";\n\nfunction resolveScorePool(element, property) {\n const scores = []; // Iterate all our stylesheets\n\n iterateStylesheets(element, scores, property); // Calculate by inline style\n\n const inline = calculateInlineScore(element, property);\n inline && scores.push(inline); // Prepare result\n\n if (!scores.length) {\n return undefined;\n } // Sort scores\n\n\n sortScores(scores);\n return scores;\n}\n\nexport { resolveScorePool };","import { iterateRules } from \".\";\n\nfunction iterateStylesheets(element, scores, property) {\n const {\n styleSheets\n } = document;\n\n for (const styleSheetIdx in styleSheets) {\n const styleSheet = styleSheets[styleSheetIdx];\n let rules;\n\n try {\n rules = styleSheet.cssRules || styleSheet.rules;\n } catch (e) {\n // Rules could not be read, e.g. CORS policy (https://stackoverflow.com/a/49994161/5506547)\n continue;\n }\n\n if (!rules) {\n continue;\n }\n\n iterateRules(rules, element, scores, property);\n }\n}\n\nexport { iterateStylesheets };","function calculateInlineScore(element, property) {\n const inline = element.style[property];\n return inline ? {\n selector: \"! undefined !\",\n specificity: 10000 + (new String(inline).match(/\\s!important/gi) ? 100000 : 0),\n style: inline\n } : undefined;\n}\n\nexport { calculateInlineScore };","function sortScores(scores) {\n scores.sort((a, b) => {\n if (a.specificity > b.specificity) {\n return -1;\n }\n\n if (a.specificity < b.specificity) {\n return 1;\n }\n\n return 0;\n });\n}\n\nexport { sortScores };","import { resolveNoneComputedStyle } from \"@devowl-wp/resolve-none-computed-style\";\nimport { HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN, HTML_ATTRIBUTE_RESET_PARENT, HTML_ATTRIBUTE_RESET_PARENT_VALUE, HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER } from \"..\"; // TODO: make configurable\n\nconst KNOWN_RATIO_CLASSES = [// Elementor\n\"-fit-aspect-ratio\", // Gutenberg\n\"wp-block-embed__wrapper\", // Cornerstone\n\"x-frame-inner\", // Fusion\n\"fusion-video\"];\nconst RESET_STYLE = {\n \"max-height\": \"initial\",\n height: \"auto\",\n padding: 0\n};\nconst MEMORIZE_OLD_STYLE = \"consent-cb-memo-style\";\n/**\n * Example: Vimeo responsive video.\n *\n * ```html\n * <div style=\"padding:56.25% 0 0 0;position:relative;\">\n * <iframe style=\"position:absolute;top:0;left:0;width:100%;height:100%;\"></iframe>\n * </div>\n * ```\n */\n\nfunction isPotentialVisualWithinResponsiveContainer(node) {\n var _node$style;\n\n const {\n parentElement\n } = node;\n\n if (!parentElement) {\n return false;\n }\n\n const position = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.position) || \"initial\";\n const {\n style: {\n position: parentPosition,\n padding: parentPadding\n }\n } = parentElement;\n return position === \"absolute\" && parentPosition === \"relative\" && parentPadding.indexOf(\"%\") > -1;\n}\n/**\n * Modify parent element with some styles, e. g. Elementor puts some padding into it.\n * We need to enforce the style via inline-style because some themes use `!important` in their\n * classes, too.\n *\n * @param state If `true`, the reset-style will be forced and vice-versa\n */\n\n\nfunction probablyResetParentContainerForVisual(contentBlocker, state) {\n var _parentElement$parent;\n\n const {\n parentElement\n } = contentBlocker;\n const iterateParents = [parentElement, parentElement === null || parentElement === void 0 ? void 0 : parentElement.parentElement, parentElement === null || parentElement === void 0 ? void 0 : (_parentElement$parent = parentElement.parentElement) === null || _parentElement$parent === void 0 ? void 0 : _parentElement$parent.parentElement].filter(Boolean); // Go max three levels upwards\n\n for (const parent of iterateParents) {\n // Calculate if this HTML element is a ratio container and can be reset\n if (!parent.hasAttribute(HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER)) {\n const foundRatioClass = KNOWN_RATIO_CLASSES.filter(c => parent.className.indexOf(c) > -1).length > 0;\n const isFirstItemWithinResponsiveContainer = parent === parentElement && isPotentialVisualWithinResponsiveContainer(contentBlocker);\n const isRatioContainer = isFirstItemWithinResponsiveContainer || foundRatioClass || [0, \"0%\", \"0px\"].indexOf(resolveNoneComputedStyle(parent, \"height\")) > -1;\n parent.setAttribute(HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER, isRatioContainer ? \"1\" : \"0\");\n }\n\n if (state && parent.getAttribute(HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER) === \"1\") {\n // Check the `display:none!important` style\n const previouslyStrictHidden = parent.hasAttribute(HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN);\n let style = parent.getAttribute(\"style\") || \"\";\n parent.removeAttribute(HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN);\n\n if (!previouslyStrictHidden) {\n style = style.replace(/display:\\s*none\\s*!important;/, \"\");\n } // Apply our new styles with memorization\n\n\n parent.setAttribute(HTML_ATTRIBUTE_RESET_PARENT, HTML_ATTRIBUTE_RESET_PARENT_VALUE);\n parent.setAttribute(MEMORIZE_OLD_STYLE, style);\n\n for (const property in RESET_STYLE) {\n parent.style.setProperty(property, RESET_STYLE[property], \"important\");\n } // Special use case: Positioning\n\n\n if (window.getComputedStyle(parent).position === \"absolute\") {\n parent.style.setProperty(\"position\", \"static\", \"important\");\n }\n } else if (!state && parent.hasAttribute(HTML_ATTRIBUTE_RESET_PARENT)) {\n parent.setAttribute(\"style\", parent.getAttribute(MEMORIZE_OLD_STYLE) || \"\");\n parent.removeAttribute(MEMORIZE_OLD_STYLE);\n parent.removeAttribute(HTML_ATTRIBUTE_RESET_PARENT);\n }\n }\n}\n\nexport { isPotentialVisualWithinResponsiveContainer, probablyResetParentContainerForVisual };","/**\n * @see https://stackoverflow.com/a/7557433/5506547\n */\nfunction isElementInViewport(el, partial = false) {\n const {\n top,\n left,\n bottom,\n right,\n height,\n width\n } = el.getBoundingClientRect();\n const {\n innerWidth,\n innerHeight\n } = window;\n\n if (partial) {\n const vertInView = top <= innerHeight && top + height >= 0;\n const horInView = left <= innerWidth && left + width >= 0;\n return vertInView && horInView;\n } else {\n const {\n clientHeight,\n clientWidth\n } = document.documentElement;\n return top >= 0 && left >= 0 && bottom <= (innerHeight || clientHeight) && right <= (innerWidth || clientWidth);\n }\n}\n\nexport { isElementInViewport };","import { matchingSelector } from \"@devowl-wp/resolve-none-computed-style\";\nimport { HTML_ATTRIBUTE_VISUAL_PARENT } from \"..\";\nconst CHILDREN_SELECTOR_PREFIX = \"children:\";\n/**\n * Find element where the visual content blocker should be placed relative to the blocked element.\n */\n\nfunction findVisualParent(node, setVisualParentIfClassOfParent = {}) {\n if (!node.parentElement) {\n return [node, \"none\"];\n } // Find visual parent attribute\n\n\n const forceVisualParent = [\"a\"].indexOf(node.parentElement.tagName.toLowerCase()) > -1; // for links always use the parent\n\n let useVisualParent = forceVisualParent;\n\n if (node.hasAttribute(HTML_ATTRIBUTE_VISUAL_PARENT)) {\n useVisualParent = node.getAttribute(HTML_ATTRIBUTE_VISUAL_PARENT);\n } else {\n const {\n className\n } = node.parentElement;\n\n for (const def in setVisualParentIfClassOfParent) {\n if (className.indexOf(def) > -1) {\n useVisualParent = setVisualParentIfClassOfParent[def];\n break;\n }\n }\n }\n\n if (useVisualParent) {\n if (useVisualParent === true || useVisualParent === \"true\") {\n // Usual behavior, just take the parent\n return [node.parentElement, \"parent\"];\n } else if (!isNaN(+useVisualParent)) {\n // The attribute is a number, let's go up x parents\n let parent = node;\n\n for (let i = 0; i < +useVisualParent; i++) {\n if (!parent.parentElement) {\n return [parent, \"parentZ\"]; // Fallback to last found parent\n }\n\n parent = parent.parentElement;\n }\n\n return [parent, \"parentZ\"];\n } else if (typeof useVisualParent === \"string\") {\n if (useVisualParent.startsWith(CHILDREN_SELECTOR_PREFIX)) {\n return [node.querySelector(useVisualParent.substr(CHILDREN_SELECTOR_PREFIX.length)), \"childrenSelector\"];\n } else {\n // The attribute is a query selector\n for (let elem = node; elem; elem = elem.parentElement) {\n if (matchingSelector(elem, useVisualParent)) {\n return [elem, \"parentSelector\"];\n }\n }\n }\n }\n }\n\n return [node, \"none\"];\n}\n\nexport { findVisualParent };","/**\n * Get previous HTML element which is visible.\n *\n * @see https://stackoverflow.com/a/31207879/5506547\n * @see https://stackoverflow.com/a/21696585/5506547\n */\nfunction getPreviousVisibleElement(node, rateAsVisible) {\n function prevAll(element) {\n const result = [];\n\n while (element = element.previousElementSibling) result.push(element);\n\n return result;\n }\n\n const previousVisible = prevAll(node).filter(e => {\n if (e.offsetParent) {\n // It is safely visible\n return true;\n } // Allow to override rating\n\n\n return rateAsVisible ? rateAsVisible(e) : false;\n });\n return previousVisible.length ? previousVisible[0] : undefined;\n}\n\nexport { getPreviousVisibleElement };","import { getPreviousVisibleElement } from \"../utils\";\nimport { HTML_ATTRIBUTE_THUMBNAIL, HTML_ATTRIBUTE_BLOCKER_CONNECTED, HTML_ATTRIBUTE_BLOCKER_ID } from \"..\";\n\nfunction isHtmlNodeContentBlocker(node) {\n return node.hasAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED);\n}\n\nfunction mapIgnoreInvisibleAndUsePreviousVisible(element) {\n return element.offsetParent ? element : getPreviousVisibleElement(element, isHtmlNodeContentBlocker);\n}\n/**\n * Find a duplicate before a given node to avoid duplicate content blockers for the same content.\n */\n\n\nfunction findPreviousVisibleDuplicate(node, blockerId) {\n var _node$parentElement, _node$parentElement2, _node$parentElement2$, _secondParentPrevious;\n\n const {\n previousElementSibling\n } = node;\n const visualThumbnail = node.getAttribute(HTML_ATTRIBUTE_THUMBNAIL);\n const firstParentPreviousElementSibling = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.previousElementSibling;\n const secondParentPreviousElementSibling = (_node$parentElement2 = node.parentElement) === null || _node$parentElement2 === void 0 ? void 0 : (_node$parentElement2$ = _node$parentElement2.parentElement) === null || _node$parentElement2$ === void 0 ? void 0 : _node$parentElement2$.previousElementSibling;\n const possibleDuplicates = [getPreviousVisibleElement(node, isHtmlNodeContentBlocker), previousElementSibling, previousElementSibling === null || previousElementSibling === void 0 ? void 0 : previousElementSibling.lastElementChild, // 1st parent up\n firstParentPreviousElementSibling, firstParentPreviousElementSibling === null || firstParentPreviousElementSibling === void 0 ? void 0 : firstParentPreviousElementSibling.lastElementChild, // 2nd parent up\n secondParentPreviousElementSibling, secondParentPreviousElementSibling === null || secondParentPreviousElementSibling === void 0 ? void 0 : secondParentPreviousElementSibling.lastElementChild, secondParentPreviousElementSibling === null || secondParentPreviousElementSibling === void 0 ? void 0 : (_secondParentPrevious = secondParentPreviousElementSibling.lastElementChild) === null || _secondParentPrevious === void 0 ? void 0 : _secondParentPrevious.lastElementChild].filter(Boolean) // Get previous visible element if the last child element is not visible\n .map(mapIgnoreInvisibleAndUsePreviousVisible).filter(Boolean);\n\n for (const possibleDuplicate of possibleDuplicates) {\n if (+possibleDuplicate.getAttribute(HTML_ATTRIBUTE_BLOCKER_ID) === blockerId && possibleDuplicate.hasAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED)) {\n // If the blocked node has a visual thumbnail, check if the blocked content of\n // the possible duplicate has not the same visual thumbnail. Otherwise, use it\n // as duplicate.\n const blockedContentOfPossibleDuplicate = possibleDuplicate.nextElementSibling;\n\n if (blockedContentOfPossibleDuplicate && visualThumbnail && blockedContentOfPossibleDuplicate.hasAttribute(HTML_ATTRIBUTE_THUMBNAIL) && blockedContentOfPossibleDuplicate.getAttribute(HTML_ATTRIBUTE_THUMBNAIL) !== visualThumbnail) {\n return false;\n }\n\n return possibleDuplicate;\n }\n }\n\n return false;\n}\n\nexport { findPreviousVisibleDuplicate };","import { parents, isElementInViewport, HTML_ATTRIBUTE_BLOCKER_CONNECTED, HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN, HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED, HTML_ATTRIBUTE_VISUAL_PAINT_MODE } from \"..\";\nimport { probablyResetParentContainerForVisual, isPotentialVisualWithinResponsiveContainer, findVisualParent, findPreviousVisibleDuplicate, createVisualContainer } from \".\";\n/**\n * Save the identifier for the last clicked content blocker so we can\n * dispatch in our event if it is the clicked one. This is useful e.g.\n * to delegate the click event further and start a video.\n */\n\nlet lastClickedConnectedCounter = undefined;\nlet connectedCounterPreserve = 0;\n/**\n * Create visual content blocker for a given node.\n */\n\nfunction createVisual({\n node,\n blocker,\n setVisualParentIfClassOfParent,\n dependantVisibilityContainers,\n mount\n}) {\n var _node$style, _document$querySelect;\n\n // Short circuit: We do not know a blocker for this; do nothing\n if (!blocker) {\n return;\n } // Apply a unique identifier for this node\n\n\n if (!node.hasAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED)) {\n node.setAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED, connectedCounterPreserve.toString());\n connectedCounterPreserve++;\n }\n\n const connectedCounter = +node.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED);\n const {\n parentElement\n } = node;\n const {\n shouldForceToShowVisual = false,\n isVisual,\n id: blockerId\n } = blocker;\n const position = ((_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.position) || \"initial\"; // Visual content blockers are only allowed for \"real\" content\n\n const isPositioned = [\"fixed\", \"absolute\", \"sticky\"].indexOf(position) > -1;\n const isNotInContent = [document.body, document.head, document.querySelector(\"html\")].indexOf(parentElement) > -1;\n const isAlreadyConnected = node.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED);\n const [createBefore, visualParentMode] = findVisualParent(node, setVisualParentIfClassOfParent || {}); // const isInlineScriptOrStyle = createBefore.hasAttribute(HTML_ATTRIBUTE_INLINE) || createBefore.hasAttribute(HTML_ATTRIBUTE_INLINE_STYLE);\n\n const isVisible = !!createBefore.offsetParent; // Always hide elements (again) if no visual blocker is possible (get) and memorize\n // the \"!important\" state so we can correctly reset it in `probablyResetParentContainerForVisual`\n\n const fnStrictHide = () => {\n if ([\"script\", \"link\"].indexOf(node === null || node === void 0 ? void 0 : node.tagName.toLowerCase()) === -1 && visualParentMode !== \"childrenSelector\") {\n const {\n style\n } = node;\n\n if (style.getPropertyValue(\"display\") === \"none\" && style.getPropertyPriority(\"display\") === \"important\") {\n node.setAttribute(HTML_ATTRIBUTE_WAS_PREVIOUSLY_STRICT_HIDDEN, \"1\");\n } else {\n style.setProperty(\"display\", \"none\", \"important\");\n }\n }\n };\n\n if (isNotInContent || isPositioned && !isPotentialVisualWithinResponsiveContainer(node) && !shouldForceToShowVisual || !isVisual || isAlreadyConnected || !isVisible && !shouldForceToShowVisual) {\n // Check if this content blocker is inside a known container for which we need to wait first its visibility\n if (!isVisible && dependantVisibilityContainers) {\n const dependantContainers = parents(node, dependantVisibilityContainers.join(\",\"));\n\n if (dependantContainers.length > 0 && !dependantContainers[0].offsetParent) {\n // Wait for visibility, do nothing with this node...\n return;\n }\n }\n\n fnStrictHide();\n return;\n } // Avoid duplicate visual blockers and connect them\n\n\n const foundDuplicate = findPreviousVisibleDuplicate(createBefore, blockerId);\n\n if (foundDuplicate) {\n node.setAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED, foundDuplicate.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED));\n probablyResetParentContainerForVisual(createBefore, true);\n fnStrictHide();\n return;\n }\n\n const {\n container,\n thumbnail\n } = createVisualContainer(node, createBefore, visualParentMode);\n\n const mountVisualContainer = paintMode => {\n container.setAttribute(HTML_ATTRIBUTE_VISUAL_PAINT_MODE, paintMode);\n mount({\n container,\n blocker,\n connectedCounter,\n onClick: event => {\n // Stop above propagation so click event handlers do not handle this as a click on the\n // mainly blocked element (example: Video inside another container which delegates click event).\n event === null || event === void 0 ? void 0 : event.stopPropagation();\n setLastClickedConnectedCounter(connectedCounter);\n },\n blockedNode: node,\n thumbnail,\n paintMode\n });\n probablyResetParentContainerForVisual(createBefore, true);\n }; // Lazy load the visual container (not depending on view port but do not overload the main thread with idle timing)\n\n\n if (isElementInViewport(container, true)) {\n mountVisualContainer(\"instantInViewport\");\n } else if ( // If the previous one was in viewport, consider the next one as \"instant\" as it could lead\n // to unexpected behavior (e.g. ratio class is used and container is in viewport at the bottom screen\n // but isn't technically due to vertical alignment to bottom).\n ((_document$querySelect = document.querySelector(\".rcb-content-blocker[\".concat(HTML_ATTRIBUTE_BLOCKER_CONNECTED, \"=\\\"\").concat(connectedCounter - 1, \"\\\"][\").concat(HTML_ATTRIBUTE_VISUAL_PAINT_MODE, \"]\"))) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute(HTML_ATTRIBUTE_VISUAL_PAINT_MODE)) === \"instantInViewport\") {\n mountVisualContainer(\"instant\");\n } else if (window.requestIdleCallback) {\n window.requestIdleCallback(() => mountVisualContainer(\"idleCallback\"));\n } else {\n setTimeout(() => mountVisualContainer(\"instant\"));\n }\n}\n\nfunction getLastClickedConnectedCounter() {\n return lastClickedConnectedCounter;\n}\n\nfunction setLastClickedConnectedCounter(connectedCounter) {\n lastClickedConnectedCounter = connectedCounter;\n}\n\nexport { createVisual, getLastClickedConnectedCounter, setLastClickedConnectedCounter };","import { HTML_ATTRIBUTE_BLOCKER_CONNECTED, HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_BY, HTML_ATTRIBUTE_COOKIE_IDS, HTML_ATTRIBUTE_THUMBNAIL } from \"..\";\n\n/**\n * Create visual content blocker container for a given node.\n */\nfunction createVisualContainer(node, createBefore, visualParentMode) {\n const container = document.createElement(\"div\");\n const {\n style\n } = container;\n const connectedCounter = node.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED_PRESERVED); // Connect blocker with blocked node\n\n container.setAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED, connectedCounter);\n container.className = \"rcb-content-blocker\";\n style.setProperty(\"max-height\", \"initial\");\n style.setProperty(\"pointer-events\", \"all\");\n node.setAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED, connectedCounter);\n createBefore.parentNode.insertBefore(container, createBefore); // Copy consent attributes so they are found via `findBlockedNodes`, too\n\n [HTML_ATTRIBUTE_BY, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_COOKIE_IDS].forEach(a => {\n if (node.hasAttribute(a)) {\n container.setAttribute(a, node.getAttribute(a));\n }\n }); // Connect a children selector with the content blocker above\n\n if (visualParentMode === \"childrenSelector\") {\n createBefore.setAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED, connectedCounter);\n } // Find configured visual thumbnail\n\n\n let thumbnail;\n\n if (node.hasAttribute(HTML_ATTRIBUTE_THUMBNAIL)) {\n thumbnail = JSON.parse(node.getAttribute(HTML_ATTRIBUTE_THUMBNAIL));\n } else {\n const nestedThumbnailNode = node.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_THUMBNAIL));\n\n if (nestedThumbnailNode.length > 0) {\n thumbnail = JSON.parse(nestedThumbnailNode[0].getAttribute(HTML_ATTRIBUTE_THUMBNAIL));\n }\n } // Hide our element and render content blocker\n\n\n (visualParentMode === \"childrenSelector\" ? createBefore : node).style.setProperty(\"display\", \"none\", \"important\");\n return {\n container,\n thumbnail\n };\n}\n\nexport { createVisualContainer };","import { getLastClickedConnectedCounter } from \".\";\nimport { HTML_ATTRIBUTE_BLOCKER_CONNECTED, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_BY, HTML_ATTRIBUTE_GOT_CLICKED, HTML_ATTRIBUTE_GOT_CLICKED_VALUE, HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED, parents } from \"..\";\n/**\n * Detect if a given unblocked node is the last clicked element so we can delegate the click\n * event to the unblocking mechanism. This allows us e.g. autoplay for YouTube.\n */\n\nfunction detectLastClicked(node) {\n const connectedBlocker = node.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED);\n const consentId = node.getAttribute(HTML_ATTRIBUTE_BLOCKER_ID);\n const consentBy = node.getAttribute(HTML_ATTRIBUTE_BY);\n const lastClicked = getLastClickedConnectedCounter();\n let isLastClicked = \"\".concat(lastClicked) === connectedBlocker;\n\n if (isLastClicked) {\n node.setAttribute(HTML_ATTRIBUTE_GOT_CLICKED, HTML_ATTRIBUTE_GOT_CLICKED_VALUE);\n } else {\n // Check if there is a parent unblocked element which got clicked and we can\n // use it as our \"click\"-indicator. This allows us to delegate click elements to\n // the first unblocked, nested element.\n const [parentGotClicked] = parents(node, \"[\".concat(HTML_ATTRIBUTE_GOT_CLICKED, \"=\\\"\").concat(HTML_ATTRIBUTE_GOT_CLICKED_VALUE, \"\\\"][\").concat(HTML_ATTRIBUTE_BLOCKER_ID, \"=\\\"\").concat(consentId, \"\\\"][\").concat(HTML_ATTRIBUTE_BY, \"=\\\"\").concat(consentBy, \"\\\"]\"));\n\n if (parentGotClicked) {\n parentGotClicked.setAttribute(HTML_ATTRIBUTE_GOT_CLICKED, HTML_ATTRIBUTE_GOT_CLICKED_VALUE_DO_NOT_USE_IN_NESTED);\n isLastClicked = true;\n }\n }\n\n return isLastClicked;\n}\n\nexport { detectLastClicked };","import { isCurrentlyInTransaction, OPT_IN_CONTENT_BLOCKER_ALL } from \"../..\";\nlet overwritten = false;\n/**\n * Overwrite `jQuery(fn)` as they can not be triggered by our script blocker.\n *\n * @see https://api.jquery.com/ready/\n */\n\nfunction applyJQueryReadyInitiator(doc) {\n // Only overwrite once\n if (overwritten) {\n return;\n }\n\n const {\n jQuery\n } = doc.defaultView || doc.parentWindow;\n\n if (!jQuery) {\n return;\n }\n\n const originalFn = jQuery.fn.ready;\n\n jQuery.fn.ready = function (fn) {\n if (fn) {\n if (isCurrentlyInTransaction()) {\n // Standard behavior: jQuery.ready() got called with the unblocked script\n let executed = false;\n document.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, () => {\n // IE does not support the `once` option\n if (executed) {\n return;\n }\n\n executed = true; // Redirect to own thread to avoid variable order lacks (e. g. Uncode Gmaps Integration, Contact Form 7\n\n setTimeout(() => {\n fn(jQuery);\n }, 0);\n });\n } else {\n // Edge case: jQuery.ready() got called multiple times and nested\n // Example:\n // <script>\n // console.log(\"gravatar.com/avatar\");\n // jQuery(function() {\n // console.log(\"unblocked\");\n // jQuery(function() {\n // console.log(\"unblocked 2\");\n // });\n // });\n // </script>\n setTimeout(() => {\n fn(jQuery);\n }, 0);\n }\n }\n\n return originalFn.apply(this, [() => {// Silence is golden.\n }]);\n };\n\n overwritten = true;\n}\n\nexport { applyJQueryReadyInitiator };","import { isCurrentlyInTransaction, OPT_IN_CONTENT_BLOCKER_ALL } from \"../..\";\nimport { MEMORIZE_JQUERY_EVENT_PROPERTY } from \".\";\nconst OVERWRITE_PROPERTY = \"rcbJQueryEventListener\";\n/**\n * Overwrite `jQuery(selector).on` and `jQuery.event.add` for special events\n * like `elementor/frontend/init`.\n */\n\nfunction applyJQueryEventInitiator(doc, element, eventName, {\n onBeforeExecute\n} = {\n onBeforeExecute: undefined\n}) {\n const overwriteProp = \"\".concat(OVERWRITE_PROPERTY, \"_\").concat(eventName);\n const memorizeProp = \"\".concat(MEMORIZE_JQUERY_EVENT_PROPERTY, \"_\").concat(eventName);\n const {\n jQuery\n } = doc.defaultView || doc.parentWindow;\n\n if (!jQuery) {\n return;\n }\n\n const {\n event,\n Event\n } = jQuery;\n\n if (!event || !Event || event[overwriteProp]) {\n return;\n }\n\n const {\n add\n } = event;\n Object.assign(event, {\n [overwriteProp]: true,\n add: function (...args) {\n // https://git.io/JsXSb\n const [elem, types, handler, data, selector] = args;\n const useTypes = Array.isArray(types) ? types : typeof types === \"string\" ? types.split(\" \") : types;\n const memorizeExecutionPromise = event[memorizeProp];\n const inTransaction = isCurrentlyInTransaction(); // Redirect to own thread to avoid variable order lacks (e. g. Uncode Gmaps Integration, Contact Form 7)\n\n const executeHandle = () => setTimeout(() => {\n onBeforeExecute === null || onBeforeExecute === void 0 ? void 0 : onBeforeExecute(inTransaction);\n handler === null || handler === void 0 ? void 0 : handler(new Event());\n }, 0);\n\n if (types && elem === element) {\n for (const type of useTypes) {\n const isRequestedEventName = type === eventName;\n\n if (isRequestedEventName && inTransaction) {\n let executed = false;\n document.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, () => {\n // IE does not support the `once` option\n if (executed) {\n return;\n }\n\n executed = true;\n\n if (memorizeExecutionPromise) {\n memorizeExecutionPromise.then(executeHandle);\n } else {\n executeHandle();\n }\n });\n } else if (isRequestedEventName && memorizeExecutionPromise) {\n memorizeExecutionPromise.then(executeHandle);\n } else {\n add.apply(this, [elem, type, handler, data, selector]);\n }\n }\n } else {\n add.apply(this, args);\n }\n }\n });\n}\n\nexport { applyJQueryEventInitiator };","import { OPT_IN_CONTENT_BLOCKER_ALL } from \"../..\";\nimport { MEMORIZE_NATIVE_EVENT_PROPERTY } from \".\";\nconst OVERWRITE_PROPERTY = \"rcbNativeEventListener\";\n/**\n * Overwrite `window.addEventListener('load')` as they can not be triggered by our script blocker.\n * This can also be used for other known events.\n */\n\nfunction applyNativeEventListenerInitiator(element, eventName, {\n onBeforeExecute\n} = {\n onBeforeExecute: undefined\n}) {\n const overwriteProp = \"\".concat(OVERWRITE_PROPERTY, \"_\").concat(eventName);\n const memorizeProp = \"\".concat(MEMORIZE_NATIVE_EVENT_PROPERTY, \"_\").concat(eventName); // Only overwrite once\n\n if (element[overwriteProp]) {\n return;\n }\n\n const {\n addEventListener\n } = element;\n Object.assign(element, {\n [overwriteProp]: true,\n addEventListener: function (type, ...rest) {\n if (type === eventName) {\n const memorizeExecutionPromise = element[memorizeProp];\n let executed = false; // Redirect to own thread to avoid variable order lacks (e. g. Uncode Gmaps Integration, Contact Form 7\n\n const executeHandle = () => setTimeout(() => {\n var _rest$;\n\n onBeforeExecute === null || onBeforeExecute === void 0 ? void 0 : onBeforeExecute();\n (_rest$ = rest[0]) === null || _rest$ === void 0 ? void 0 : _rest$.call(rest, new Event(eventName, {\n bubbles: true,\n cancelable: true\n }));\n }, 0);\n\n document.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, () => {\n // IE does not support the `once` option\n if (executed) {\n return;\n }\n\n executed = true;\n\n if (memorizeExecutionPromise) {\n memorizeExecutionPromise.then(executeHandle);\n } else {\n executeHandle();\n }\n });\n } else {\n addEventListener.apply(this, [type, ...rest]);\n }\n }\n });\n}\n\nexport { applyNativeEventListenerInitiator };","const MEMORIZE_NATIVE_EVENT_PROPERTY = \"rcbNativeEventListenerMemorize\";\n/**\n * We listen to the passed event and once that event got triggered, all event registrations\n * afterwards are automatically executed, too. This does not need another trigger again.\n *\n * You need to call this function as early as possible to catch all triggers.\n */\n\nfunction memorizeNativeEvent(element, eventName) {\n const memorizeProp = \"\".concat(MEMORIZE_NATIVE_EVENT_PROPERTY, \"_\").concat(eventName);\n Object.assign(element, {\n [memorizeProp]: new Promise(resolve => element.addEventListener(eventName, resolve))\n });\n}\n\nexport { memorizeNativeEvent, MEMORIZE_NATIVE_EVENT_PROPERTY };","import { WINDOW_ONLOAD_UNBLOCK_REPLACEMENT } from \"..\";\nlet overwritten = false;\n/**\n * Overwrite `window.rcbInitiatorOnload =` assignemnts so they get immediatly executed.\n * At the time of consent the window is definitely loaded.\n */\n\nfunction applyWindowOnloadInitiator(doc) {\n // Only overwrite once\n if (overwritten) {\n return;\n }\n\n const w = doc.defaultView || doc.parentWindow;\n\n try {\n Object.defineProperty(w, WINDOW_ONLOAD_UNBLOCK_REPLACEMENT, {\n set: function (newValue) {\n if (typeof newValue === \"function\") {\n newValue();\n }\n },\n enumerable: true,\n configurable: true\n });\n } catch (e) {// Silence is golden\n }\n\n overwritten = true;\n}\n\nexport { applyWindowOnloadInitiator };","import { HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_INLINE } from \".\";\nconst SCRIPTS_SELECTOR = \"script[src]:not([async]):not([defer]):not([\".concat(HTML_ATTRIBUTE_BLOCKER_ID, \"]):not([\").concat(HTML_ATTRIBUTE_INLINE, \"])\");\n/**\n * Create this instance at the time before adding content or scripts to your DOM,\n * and call the `.wait` function after adding content or scripts to your DOM.\n */\n\nclass WaitSynchronousScripts {\n constructor() {\n this.scriptsBefore = void 0;\n this.scriptsBefore = Array.prototype.slice.call(document.querySelectorAll(SCRIPTS_SELECTOR));\n }\n /**\n * Returns the diff of scripts as Promises and are resolved when script is loaded.\n */\n\n\n diff() {\n const scriptsAfter = Array.prototype.slice.call(document.querySelectorAll(SCRIPTS_SELECTOR));\n const scriptsDiff = scriptsAfter.filter(a => this.scriptsBefore.indexOf(a) === -1);\n const promises = scriptsDiff.map(script => new Promise(resolve => {\n // Check if the script is already loaded or in browser queue (https://stackoverflow.com/a/67184038/5506547)\n const performanceEntries = performance.getEntriesByType(\"resource\").filter(({\n name\n }) => name === script.src); // `getEntriesByName` is not available in all browsers\n\n if (performanceEntries.length > 0) {\n resolve();\n }\n\n script.addEventListener(\"load\", () => {\n resolve();\n });\n script.addEventListener(\"error\", () => {\n // At the moment, we just ignore errors\n resolve();\n });\n }));\n return promises;\n }\n\n}\n\nexport { WaitSynchronousScripts };","import { putHtmlCodeToDom, HTML_ATTRIBUTE_TRANSFORM_WRAPPER, HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE } from \".\";\n/**\n * We do need to create a `span` for postscribe cause the <script> tag can not be used in this case.\n *\n * @param html The `script` tag HTML (can be inline or with `src`)\n */\n\nfunction ensureScriptWrapper(html, node) {\n // Check if there is already a wrapper known\n const previousElementSibling = node.previousElementSibling; // Got the element already be moved by another script? So we just ignore as this\n // is currently an edge-case (e.g. Podigee Podcast Player).\n\n if (!node.parentElement) {\n return Promise.resolve();\n }\n\n let referenceNode;\n\n if (previousElementSibling !== null && previousElementSibling !== void 0 && previousElementSibling.hasAttribute(HTML_ATTRIBUTE_TRANSFORM_WRAPPER)) {\n referenceNode = previousElementSibling;\n } else {\n referenceNode = document.createElement(\"div\"); // we need to have a `block`ing element\n\n referenceNode.setAttribute(HTML_ATTRIBUTE_TRANSFORM_WRAPPER, HTML_ATTRIBUTE_TRANSFORM_WRAPPER_VALUE);\n node.parentElement.replaceChild(referenceNode, node);\n }\n\n return putHtmlCodeToDom(html, {}, referenceNode);\n}\n\nexport { ensureScriptWrapper };","import { ensureScriptWrapper, HTML_ATTRIBUTE_CAPTURE_PREFIX, HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX, HTML_ATTRIBUTE_CAPTURE_SUFFIX, HTML_ATTRIBUTE_BLOCKER_CONNECTED } from \".\";\nimport { OPT_IN_CONTENT_BLOCKER_ALL } from \"../events\";\nimport { findVisualParent } from \"../visual\";\nlet tagTransformationCounter = 0;\nconst HTML_TAG_TRANSFORMATION_COUNTER = \"consent-tag-transformation-counter\";\n/**\n * Transform e. g. `consent-original-href` to `href` of a given node.\n */\n\nfunction transformToOriginalAttribute({\n node,\n allowClickOverrides,\n onlyModifyAttributes,\n setVisualParentIfClassOfParent,\n overwriteAttributeValue\n}) {\n return new Promise(resolve => {\n let performedClick = false; // Scripts need to be handled differently cause we want to use `postscribe` and should not be attached\n // to the DOM -> not be executed\n\n const tagName = node.tagName.toLowerCase();\n const isScript = tagName === \"script\";\n let workWithNode = isScript && !onlyModifyAttributes ? node.cloneNode(true) : node; // Do the transformation from \"blocked\" state to \"unblocked\"\n\n for (const attribute of workWithNode.getAttributeNames()) {\n if (attribute.startsWith(HTML_ATTRIBUTE_CAPTURE_PREFIX) && attribute.endsWith(HTML_ATTRIBUTE_CAPTURE_SUFFIX)) {\n var _workWithNode$getAttr;\n\n let originalAttribute = attribute.substr(HTML_ATTRIBUTE_CAPTURE_PREFIX.length + 1);\n originalAttribute = originalAttribute.slice(0, (HTML_ATTRIBUTE_CAPTURE_SUFFIX.length + 1) * -1); // Check if `allowClickOverride` is given and then the `consent-click-original` attribute may be used, if given\n\n const overwriteClickAttribute = \"\".concat(HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX, \"-\").concat(originalAttribute, \"-\").concat(HTML_ATTRIBUTE_CAPTURE_SUFFIX);\n const hasOverwriteClickAttribute = workWithNode.hasAttribute(overwriteClickAttribute) && allowClickOverrides;\n let value = workWithNode.getAttribute(hasOverwriteClickAttribute ? overwriteClickAttribute : attribute);\n\n if (hasOverwriteClickAttribute) {\n performedClick = true;\n }\n\n if (overwriteAttributeValue) {\n value = overwriteAttributeValue(value, originalAttribute);\n } // Finally, set the valid values\n\n\n workWithNode.setAttribute(originalAttribute, value);\n workWithNode.removeAttribute(attribute);\n workWithNode.removeAttribute(overwriteClickAttribute); // Automatically delegate a `click` event\n\n if (allowClickOverrides && [\"a\"].indexOf(tagName) > -1 && ([\"onclick\"].indexOf(originalAttribute.toLowerCase()) > -1 || (_workWithNode$getAttr = workWithNode.getAttribute(\"href\")) !== null && _workWithNode$getAttr !== void 0 && _workWithNode$getAttr.startsWith(\"#\"))) {\n workWithNode.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, async ({\n detail: {\n unblockedNodes\n }\n }) => unblockedNodes.forEach(() => workWithNode.click()));\n }\n }\n } // Are there any non-transformed clicked attributes? E.g. only add an attribute when it got clicked (without original attribute)\n\n\n for (const attribute of workWithNode.getAttributeNames()) {\n if (attribute.startsWith(HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX) && attribute.endsWith(HTML_ATTRIBUTE_CAPTURE_SUFFIX)) {\n const value = workWithNode.getAttribute(attribute);\n let originalAttribute = attribute.substr(HTML_ATTRIBUTE_CAPTURE_CLICK_PREFIX.length + 1);\n originalAttribute = originalAttribute.slice(0, (HTML_ATTRIBUTE_CAPTURE_SUFFIX.length + 1) * -1); // Finally, set the valid values\n\n if (allowClickOverrides) {\n workWithNode.setAttribute(originalAttribute, value);\n performedClick = true;\n }\n\n workWithNode.removeAttribute(attribute);\n }\n }\n\n const result = {\n performedClick,\n workWithNode: node\n };\n\n if (onlyModifyAttributes) {\n result.performedClick = false;\n resolve(result);\n return;\n } // Allow transition of custom element tags (web components).\n // See also https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-customized-builtin-example)\n\n\n if (tagName.startsWith(\"consent-\") && customElements) {\n const originalTag = tagName.substring(8);\n workWithNode.outerHTML = workWithNode.outerHTML.replace(/^<consent-[^\\s]+/m, \"<\".concat(originalTag, \" \").concat(HTML_TAG_TRANSFORMATION_COUNTER, \"=\\\"\").concat(tagTransformationCounter, \"\\\"\")).replace(/<\\/consent-[^\\s]+>$/m, \"</\".concat(originalTag, \">\"));\n workWithNode = document.querySelector(\"[\".concat(HTML_TAG_TRANSFORMATION_COUNTER, \"=\\\"\").concat(tagTransformationCounter, \"\\\"]\"));\n tagTransformationCounter++;\n result.workWithNode = workWithNode;\n }\n\n workWithNode.style.removeProperty(\"display\"); // Also make the parent visual visible again\n\n const [visualParent] = findVisualParent(node, setVisualParentIfClassOfParent || {});\n\n if (visualParent !== node || visualParent !== null && visualParent !== void 0 && visualParent.hasAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED)) {\n visualParent.style.removeProperty(\"display\");\n }\n\n if (!isScript) {\n resolve(result);\n } else {\n const {\n outerHTML\n } = workWithNode;\n ensureScriptWrapper(outerHTML, node).then(() => resolve(result));\n }\n });\n}\n\nexport { transformToOriginalAttribute };","import { putHtmlCodeToDom, ensureScriptWrapper, HTML_ATTRIBUTE_INLINE, HTML_TAG_CONSENT_SCRIPT, HTML_ATTRIBUTE_CAPTURE_PREFIX, HTML_ATTRIBUTE_CAPTURE_SUFFIX } from \".\";\n/**\n * Put an prepared inline script (tag containing a `consent-inline` attribute) to the DOM.\n */\n\nfunction putScriptInlineToDom(node) {\n const isInHead = node.parentElement === document.head; // Get the inline script itself\n\n const inlineScript = node.getAttribute(HTML_ATTRIBUTE_INLINE);\n node.removeAttribute(HTML_ATTRIBUTE_INLINE); // Sometimes, the inline scripts writes new content via `document.write` and we need to make this visible\n\n node.style.removeProperty(\"display\"); // Transform the tag to the `script`\n // We need to make such a hacky way because regex does not work and `outerHTML` has also some issues...\n\n let inlineScriptHtml = node.outerHTML.substr(HTML_TAG_CONSENT_SCRIPT.length + 1);\n inlineScriptHtml = inlineScriptHtml.substr(0, inlineScriptHtml.length - HTML_TAG_CONSENT_SCRIPT.length - 3);\n inlineScriptHtml = inlineScriptHtml.replace(new RegExp(\"type=\\\"application/consent\\\"\"), \"\");\n inlineScriptHtml = inlineScriptHtml.replace(new RegExp(\"\".concat(HTML_ATTRIBUTE_CAPTURE_PREFIX, \"-type-\").concat(HTML_ATTRIBUTE_CAPTURE_SUFFIX, \"=\\\"([^\\\"]+)\\\"\")), \"type=\\\"$1\\\"\");\n inlineScriptHtml = \"<script\".concat(inlineScriptHtml).concat(inlineScript, \"</script>\");\n return isInHead ? putHtmlCodeToDom(inlineScriptHtml, {}) : ensureScriptWrapper(inlineScriptHtml, node);\n}\n\nexport { putScriptInlineToDom };","import { HTML_ATTRIBUTE_COOKIE_IDS } from \".\";\nimport { OPT_IN_CONTENT_BLOCKER_ALL } from \"..\";\n/**\n * Listen to clicked content blockers and automatically delegate the click\n * event to the underlying element. This is especially useful for overlays of videos\n * so the user does not need to click twice.\n */\n\nfunction delegateClick(element, {\n same,\n nextSibling,\n parentNextSibling\n}) {\n let delegateClick;\n const nextElementSibling = element.nextElementSibling;\n const parentElement = element.parentElement;\n const parentElementNextSibling = parentElement === null || parentElement === void 0 ? void 0 : parentElement.nextElementSibling;\n\n loop1: for (const [node, selectors] of [[// Same element (= the blocked element)\n element, same], [// Next sibling element to the blocked content\n nextElementSibling, nextSibling], [// Next sibling element of parent of the blocked content\n parentElementNextSibling, parentNextSibling]]) {\n if (node && selectors) {\n for (const selector of selectors) {\n if (node.matches(selector)) {\n delegateClick = node;\n break loop1;\n } // Check for children selector\n\n\n const childrenSelected = node.querySelector(selector);\n\n if (childrenSelected) {\n delegateClick = childrenSelected;\n break loop1;\n }\n }\n }\n } // We delegate the click to an element, let's check if it is also blocked and listen to unblock\n\n\n if (delegateClick) {\n const fn = () => setTimeout(() => delegateClick.click(),\n /* Let's delay so we can start after `manipulateDom#customTriggers()` */\n 100);\n\n if (delegateClick.hasAttribute(HTML_ATTRIBUTE_COOKIE_IDS)) {\n delegateClick.addEventListener(OPT_IN_CONTENT_BLOCKER_ALL, fn, {\n once: true\n });\n } else {\n fn();\n }\n }\n}\n\nexport { delegateClick };","import { findAndUnblock } from \".\";\n/**\n * Use this class as main entry for your unblocking mechanism.\n *\n * **Attention:** Please make sure you start the watcher at time where the `document.readyState`\n * is not already `complete`. Why? At this time, we can make sure that our `jQuery.fn.ready` and\n * other initiators works as expected.\n */\n\nclass UnblockWatcher {\n constructor(options) {\n this.interval = void 0;\n this.options = void 0;\n this.options = options;\n }\n\n unblockNow() {\n return findAndUnblock(this.options);\n }\n\n start() {\n clearInterval(this.interval);\n this.interval = setInterval(this.unblockNow.bind(this), 1000);\n }\n\n stop() {\n clearInterval(this.interval);\n }\n\n}\n\nexport { UnblockWatcher };","import { detectLastClicked, WaitSynchronousScripts, setCurrentlyInTransaction, createVisual, probablyResetParentContainerForVisual, putScriptInlineToDom, findBlockedNodes, transformInlineStyleRules, transformToOriginalAttribute, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_COOKIE_IDS, HTML_ATTRIBUTE_BLOCKER_CONNECTED, HTML_ATTRIBUTE_INLINE, HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE, HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER, OPT_IN_CONTENT_BLOCKER_ALL, applyJQueryReadyInitiator, applyJQueryEventInitiator, applyNativeEventListenerInitiator, applyWindowOnloadInitiator, setLastClickedConnectedCounter, OPT_IN_CONTENT_BLOCKER, loadVideoSource, delegateClick, dispatchResizeEvent, isElementInViewport } from \"..\";\n\n/**\n * Refresh the DOM content depending on acceptance. It covers the following things:\n *\n * - Get all available blocked content\n * - Unblock blocked content depending on acceptance\n * - All other blocked content gets a visual content-blocker (if possible)\n */\nasync function findAndUnblock({\n checker,\n visual,\n overwriteAttributeValue,\n transactionClosed,\n priorityUnblocked,\n customInitiators,\n delegateClick: delegateClickSelectors\n}) {\n setCurrentlyInTransaction(true);\n const nodes = findBlockedNodes(checker);\n transformInlineStyleRules(checker); // A collection of all unblocked content for this \"transaction\"; so we can keep track a batch\n // of unblocked items to keep dependencies intact (e.g. Custom script is blocked and needs Google Maps\n // API do be available).\n\n const unblockedNodes = [];\n let foundAnyLastClicked;\n\n const unmount = element => {\n var _visual$unmount;\n\n visual === null || visual === void 0 ? void 0 : (_visual$unmount = visual.unmount) === null || _visual$unmount === void 0 ? void 0 : _visual$unmount.call(visual, element);\n probablyResetParentContainerForVisual(element, false);\n element.remove();\n }; // In some cases, through custom event triggers and unblocked scripts, HTML elements could be \"recreated\" in our DOM\n // without our changes to mark the DOM node as \"complete\". Lets find those nodes and mark them correctly.\n\n\n document.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_BLOCKER_ID, \"]:not(.rcb-content-blocker):not([\").concat(HTML_ATTRIBUTE_COOKIE_IDS, \"]):not([\").concat(HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE, \"])\")).forEach(n => n.setAttribute(HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE, \"1\")); // Reset all calculated and memorized results of ratio container as the CSS styles could be changed again (`probablyResetParentContainerForVisual`)\n\n document.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER, \"]\")).forEach(n => n.removeAttribute(HTML_ATTRIBUTE_RESET_PARENT_IS_RATIO_CONTAINER));\n let previousPriority;\n\n for (const row of nodes) {\n const {\n consent,\n node,\n isVisualCb,\n blocker,\n priority\n } = row;\n\n if (consent) {\n // Got this node already be handled by another call?\n if (!node.hasAttribute(HTML_ATTRIBUTE_COOKIE_IDS)) {\n continue;\n } else if (isVisualCb) {\n unmount(node);\n continue;\n } // Allows to execute custom code when a given priority got completed\n\n\n if (previousPriority !== undefined && previousPriority !== priority) {\n priorityUnblocked === null || priorityUnblocked === void 0 ? void 0 : priorityUnblocked(unblockedNodes, previousPriority);\n }\n\n previousPriority = priority; // Immediate deactivate nodes for future unblocks\n\n node.removeAttribute(HTML_ATTRIBUTE_COOKIE_IDS);\n const connectedBlocker = node.getAttribute(HTML_ATTRIBUTE_BLOCKER_CONNECTED);\n const isLastClicked = detectLastClicked(node);\n\n if (isLastClicked) {\n foundAnyLastClicked = row;\n } // Remove visual content blocker if not yet removed through above method\n\n\n if (connectedBlocker) {\n const contentBlockers = Array.prototype.slice.call(document.querySelectorAll(\".rcb-content-blocker[consent-blocker-connected=\\\"\".concat(connectedBlocker, \"\\\"]\")));\n\n for (const contentBlocker of contentBlockers) {\n unmount(contentBlocker);\n } // Also reset parent containers stylings for nodes which not successfully created\n // a visual content blocker (e.g. duplicate exists)\n\n\n probablyResetParentContainerForVisual(node, false);\n } // Overwrite global listeners so they get immediate executed\n\n\n const {\n ownerDocument\n } = node;\n const {\n defaultView\n } = ownerDocument;\n applyJQueryReadyInitiator(ownerDocument);\n applyJQueryEventInitiator(ownerDocument, defaultView, \"load\"); // $(window).load()\n\n applyNativeEventListenerInitiator(defaultView, \"load\");\n applyNativeEventListenerInitiator(ownerDocument, \"DOMContentLoaded\");\n applyWindowOnloadInitiator(ownerDocument);\n customInitiators === null || customInitiators === void 0 ? void 0 : customInitiators(ownerDocument, defaultView);\n const waitSynchronousScripts = new WaitSynchronousScripts(); // Activate node\n\n const hasInlineAttribute = node.hasAttribute(HTML_ATTRIBUTE_INLINE);\n const {\n performedClick,\n workWithNode\n } = await transformToOriginalAttribute({\n node,\n allowClickOverrides: hasInlineAttribute ? false : isLastClicked,\n onlyModifyAttributes: hasInlineAttribute,\n setVisualParentIfClassOfParent: visual === null || visual === void 0 ? void 0 : visual.setVisualParentIfClassOfParent,\n overwriteAttributeValue\n });\n\n if (hasInlineAttribute) {\n await putScriptInlineToDom(node);\n } else if (performedClick) {\n // Avoid auto replays between the same transaction\n setLastClickedConnectedCounter(undefined);\n }\n\n await Promise.all(waitSynchronousScripts.diff()); // Allow to detach and attach again to DOM so e.g. `MutationObservers` can handle the DOM as expected\n\n if (workWithNode.getAttribute(\"consent-redom\")) {\n const {\n parentElement\n } = workWithNode;\n\n if (parentElement) {\n const idx = [...parentElement.children].indexOf(workWithNode);\n parentElement.removeChild(workWithNode);\n insertChildAtIndex(parentElement, workWithNode, idx);\n }\n }\n\n workWithNode.dispatchEvent(new CustomEvent(OPT_IN_CONTENT_BLOCKER, {\n detail: {\n blocker,\n gotClicked: isLastClicked\n }\n }));\n document.dispatchEvent(new CustomEvent(OPT_IN_CONTENT_BLOCKER, {\n detail: {\n blocker,\n element: workWithNode,\n gotClicked: isLastClicked\n }\n }));\n\n if (isLastClicked && delegateClickSelectors) {\n delegateClick(workWithNode, delegateClickSelectors);\n }\n\n unblockedNodes.push({ ...row,\n node: workWithNode\n });\n } else if (visual && !isVisualCb) {\n createVisual({\n node: row.node,\n blocker: row.blocker,\n ...visual\n });\n }\n } // This transaction is \"complete\"\n\n\n if (unblockedNodes.length) {\n // Definitely reset now our last clicked counter to avoid double auto plays\n if (foundAnyLastClicked) {\n setLastClickedConnectedCounter(undefined);\n } // Do this before the events below to keep the initiators intact (e.g. jQuery.fn.ready)\n\n\n setCurrentlyInTransaction(false);\n document.dispatchEvent(new CustomEvent(OPT_IN_CONTENT_BLOCKER_ALL, {\n detail: {\n unblockedNodes\n }\n }));\n unblockedNodes.forEach(({\n node\n }) => {\n node.setAttribute(HTML_ATTRIBUTE_UNBLOCKED_TRANSACTION_COMPLETE, \"1\");\n node.dispatchEvent(new CustomEvent(OPT_IN_CONTENT_BLOCKER_ALL, {\n detail: {\n unblockedNodes\n }\n }));\n }); // The initiators (e.g. jQuery.ready) are all loaded in a new \"thread\" with a `setTimeout`,\n // but we need to make sure this event is dispatched afterwards.\n\n setTimeout(() => {\n transactionClosed === null || transactionClosed === void 0 ? void 0 : transactionClosed(unblockedNodes);\n loadVideoSource(unblockedNodes);\n dispatchResizeEvent(); // Scroll to unblocked, clicked element automatically\n\n if (foundAnyLastClicked && !isElementInViewport(foundAnyLastClicked.node)) {\n foundAnyLastClicked.node.scrollIntoView({\n behavior: \"smooth\"\n });\n }\n }, 0);\n } else {\n setCurrentlyInTransaction(false);\n }\n}\n\nfunction insertChildAtIndex(container, child, index) {\n if (index >= container.children.length) {\n container.appendChild(child);\n } else {\n container.insertBefore(child, container.children[index]);\n }\n}\n\nexport { findAndUnblock };","import { HTML_ATTRIBUTE_COOKIE_IDS, HTML_ATTRIBUTE_BLOCKER_ID, HTML_ATTRIBUTE_BY, HTML_TAG_CONSENT_SCRIPT } from \"../dom\";\nimport { decideToUnblock } from \".\";\nconst FIND_BLOCKED_NODES_PRIORITY_SCRIPT = 10;\nconst FIND_BLOCKED_NODES_PRIORITY_NON_SCRIPT = 0;\n/**\n * Read all HTML elements and check, if they can be enabled by a consent.\n */\n\nfunction findBlockedNodes(checker) {\n const result = [];\n const nodes = Array.prototype.slice.call(document.querySelectorAll(\"[\".concat(HTML_ATTRIBUTE_COOKIE_IDS, \"]\")));\n\n for (const node of nodes) {\n const {\n blocker,\n consent\n } = decideToUnblock(node.getAttribute(HTML_ATTRIBUTE_BY), node.getAttribute(HTML_ATTRIBUTE_COOKIE_IDS), +node.getAttribute(HTML_ATTRIBUTE_BLOCKER_ID), checker);\n const isVisualCb = node.className.indexOf(\"rcb-content-blocker\") > -1;\n result.push({\n node,\n consent,\n isVisualCb,\n blocker,\n priority: node.tagName.toLowerCase() === HTML_TAG_CONSENT_SCRIPT ? FIND_BLOCKED_NODES_PRIORITY_SCRIPT : FIND_BLOCKED_NODES_PRIORITY_NON_SCRIPT\n });\n } // Sort blockable nodes by priority, e.g. always execute scripts at the end\n\n\n result.sort(({\n priority: a\n }, {\n priority: b\n }) => a - b);\n return result;\n}\n\nexport { findBlockedNodes, FIND_BLOCKED_NODES_PRIORITY_NON_SCRIPT, FIND_BLOCKED_NODES_PRIORITY_SCRIPT };","/**\n * For a list of unblocked nodes, check if it are a list of `<source`s and load the parent `<video`.\n *\n * @see https://stackoverflow.com/a/18454389/5506547\n */\nfunction loadVideoSource(unblockedNodes) {\n const foundVideos = unblockedNodes.filter(({\n node: {\n nodeName,\n parentElement\n }\n }) => nodeName === \"SOURCE\" && parentElement.nodeName === \"VIDEO\").map(({\n node: {\n parentElement\n }\n }) => parentElement); // Unique it to avoid multiple load's\n\n foundVideos.filter((value, index) => foundVideos.indexOf(value) === index).forEach(video => video.load());\n}\n\nexport { loadVideoSource };","import { unblock } from \"../../api\";\nimport { OPT_IN_CONTENT_BLOCKER } from \"@devowl-wp/headless-content-unblocker\";\nconst APIS = [\"youtube\", \"vimeo\"];\n/**\n * Overwrite the video API of elementor to make it GDPR compliant. It also implements\n * auto-play mechanism when clicking the content blocker.\n *\n * @see https://github.com/elementor/elementor/pull/12567\n * @see https://git.io/Js1em\n * @see https://git.io/Js1Eu\n */\n\nfunction overwriteElementorVideoApi() {\n const w = window;\n const {\n jQuery\n } = w;\n jQuery === null || jQuery === void 0 ? void 0 : jQuery(window).on(\"elementor/frontend/init\", async () => {\n const {\n elementorFrontend\n } = w; // Override Video API's and check for consent\n\n elementorFrontend.on(\"components:init\", () => {\n for (const apiName of APIS) {\n const api = elementorFrontend.utils[apiName];\n\n if (api) {\n api.insertAPI = function () {\n const apiUrl = this.getApiURL();\n unblock(apiUrl).then(() => {\n this.elements.$firstScript.before(jQuery(\"<script>\", {\n src: apiUrl\n }));\n });\n this.setSettings(\"isInserted\", true);\n };\n }\n }\n }); // Implement auto play\n\n const handlerWait = elementorFrontend.elementsHandler.getHandler(\"video.default\");\n\n if (handlerWait) {\n const handler = handlerWait !== null && handlerWait !== void 0 && handlerWait.then ? await handlerWait : handlerWait;\n const {\n onInit\n } = handler.prototype; // `onInit` is called for each video element, event it is blocked\n\n handler.prototype.onInit = function (...args) {\n const {\n $element\n } = this;\n $element === null || $element === void 0 ? void 0 : $element.get(0).addEventListener(OPT_IN_CONTENT_BLOCKER, async ({\n detail: {\n gotClicked\n }\n }) => {\n if (gotClicked) {\n const settings = $element.data(\"settings\");\n settings.autoplay = true;\n $element.data(\"settings\", settings);\n }\n });\n return onInit.apply(this, args);\n };\n }\n });\n}\n\nexport { overwriteElementorVideoApi };","/* 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 * Entrypoint for plain website. This file is loaded on all pages.\n */\nimport { ready } from \"@devowl-wp/cookie-consent-web-client\";\nimport { memorizeJQueryEvent, hijackJqueryFn } from \"@devowl-wp/headless-content-unblocker\";\nimport { listenOptInForContentBlocker, overwriteElementorVideoApi } from \"./others\";\nconst hijackJqueryFns = [\"fitVids\", \"mediaelementplayer\", \"prettyPhoto\", \"gMap\"];\nlistenOptInForContentBlocker();\nhijackJqueryFn(hijackJqueryFns);\noverwriteElementorVideoApi();\nready(() => {\n // jQuery fn cannot be ready yet, let's wait for DOM ready\n hijackJqueryFn(hijackJqueryFns);\n memorizeJQueryEvent(document, document, \"tve-dash.load\"); // Thrive Leads\n\n memorizeJQueryEvent(document, document, \"mylisting/single:tab-switched\"); // My Listing theme\n}, \"interactive\");","import { applyContentBlockRatioCssPlainCss, customUnblockTriggers, getCookieConsentManager } from \"..\";\nimport { getOtherOptionsFromWindow } from \"../../utils\";\nimport { render, unmountComponentAtNode } from \"react-dom\";\nimport { WebsiteBlocker } from \"../../components\";\nimport { applyJQueryEventInitiator, UnblockWatcher } from \"@devowl-wp/headless-content-unblocker\";\nimport { createTcfModelFromCookie, getUserDecision, OPT_IN_ALL_EVENT, BANNER_PRE_DECISION_SHOW_EVENT, transformTcfSrc } from \"@devowl-wp/cookie-consent-web-client\";\nimport { getSsrPoweredByLink } from \"@devowl-wp/react-cookie-banner\";\n/**\n * Listen to opt-in of all cookies so we can enable the blocked content or\n * create an visual content blocker. It also listens if no / or invalid consent is given.\n */\n\nfunction listenOptInForContentBlocker() {\n let acceptedCookies = [];\n const {\n setVisualParentIfClassOfParent,\n multilingualSkipHTMLForTag,\n dependantVisibilityContainers,\n blocker: allBlocker,\n tcf,\n tcfMetadata,\n userConsentCookieName,\n pageRequestUuid4\n } = getOtherOptionsFromWindow();\n const watcher = new UnblockWatcher({\n checker: (by, requiredIds, blockerId) => {\n var _allBlocker$filter;\n\n const blocker = (_allBlocker$filter = allBlocker.filter(({\n id\n }) => id === blockerId)) === null || _allBlocker$filter === void 0 ? void 0 : _allBlocker$filter[0];\n let consent = true;\n\n if (by === \"services\") {\n consent = requiredIds.map(requiredId => {\n for (const {\n service: {\n id\n }\n } of acceptedCookies) {\n if (id === requiredId) {\n return true;\n }\n }\n\n return false;\n }).indexOf(false) === -1;\n }\n\n if (process.env.IS_TCF === \"1\" && by === \"tcfVendors\") {\n const tcfData = createTcfModelFromCookie(tcf, tcfMetadata, getCookieConsentManager().getOption(\"tcfCookieName\"));\n\n if (!tcfData) {\n // No consent given yet, fallback to our decision (e.g. Country Bypass and GDPR does not apply for TCF)\n const decision = getUserDecision(userConsentCookieName);\n consent = decision && getOtherOptionsFromWindow().revisionHash === decision.revision;\n } else {\n const {\n model\n } = tcfData; // Map vendor IDs to \"has consent\" and detect if all have consent\n\n consent = requiredIds.map(vendorId => model.vendorConsents.has(vendorId) || model.vendorLegitimateInterests.has(vendorId)).indexOf(false) === -1;\n }\n }\n\n return {\n consent,\n blocker\n };\n },\n overwriteAttributeValue: (value, originalAttribute) => {\n if (process.env.IS_TCF === \"1\" && originalAttribute === \"src\") {\n const current = createTcfModelFromCookie(tcf, tcfMetadata, getCookieConsentManager().getOption(\"tcfCookieName\"));\n return transformTcfSrc(value, current === null || current === void 0 ? void 0 : current.tcfStringForVendors, current === null || current === void 0 ? void 0 : current.gvl);\n }\n\n return value;\n },\n transactionClosed: unblockedNodes => {\n customUnblockTriggers(unblockedNodes);\n },\n visual: {\n setVisualParentIfClassOfParent,\n dependantVisibilityContainers,\n unmount: contentBlocker => {\n unmountComponentAtNode(contentBlocker);\n },\n mount: ({\n container,\n blocker,\n onClick,\n thumbnail,\n paintMode\n }) => {\n // Do not translate this content blocker with an output buffer plugin like TranslatePress or Weglot\n if (multilingualSkipHTMLForTag) {\n container.setAttribute(multilingualSkipHTMLForTag, \"1\");\n }\n\n const blockerDef = { ...blocker,\n visualThumbnail: thumbnail || blocker.visualThumbnail\n };\n render(h(WebsiteBlocker, {\n poweredLink: getSsrPoweredByLink(\"\".concat(pageRequestUuid4, \"-powered-by\")),\n blocker: blockerDef,\n paintMode: paintMode,\n setVisualAsLastClickedVisual: onClick\n }), container);\n }\n },\n customInitiators: (ownerDocument, defaultView) => {\n // [Plugin comp]: TODO: extract to configuration\n applyJQueryEventInitiator(ownerDocument, defaultView, \"elementor/frontend/init\");\n applyJQueryEventInitiator(ownerDocument, defaultView, \"tcb_after_dom_ready\"); // Thrive Architect\n\n applyJQueryEventInitiator(ownerDocument, ownerDocument, \"mylisting/single:tab-switched\");\n applyJQueryEventInitiator(ownerDocument, ownerDocument, \"tve-dash.load\", {\n // Mark requests as already sent as blocked modules in Thrive never gets loaded again\n onBeforeExecute: () => {\n const {\n TVE_Dash\n } = window;\n TVE_Dash.ajax_sent = true;\n }\n }); // Thrive Leads\n },\n delegateClick: {\n same: [// Ultimate Video (WP Bakery Page Builder)\n \".ultv-video__play\", // Elementor\n \".elementor-custom-embed-image-overlay\", // Themify\n \".tb_video_overlay\", // Premium Addons for Elementor\n \".premium-video-box-container\", // https://themeforest.net/item/norebro-creative-multipurpose-wordpress-theme/20834703\n \".norebro-video-module-sc\", // WP Video Lightbox\n 'a[rel=\"wp-video-lightbox\"]', // WP YouTube Lyte\n '[id^=\"lyte_\"]', // https://github.com/paulirish/lite-youtube-embed\n \"lite-youtube\", // https://github.com/luwes/lite-vimeo-embed\n \"lite-vimeo\", // https://avada.theme-fusion.com/design-elements/lightbox-element/\n \".awb-lightbox\"],\n nextSibling: [// JetElements for Element\n \".jet-video__overlay\", // Elementor\n \".elementor-custom-embed-image-overlay\"],\n parentNextSibling: [// Divi Page Builder\n \".et_pb_video_overlay\"]\n }\n });\n document.addEventListener(OPT_IN_ALL_EVENT, ({\n detail: {\n services\n }\n }) => {\n acceptedCookies = services;\n watcher.unblockNow();\n watcher.start();\n });\n document.addEventListener(BANNER_PRE_DECISION_SHOW_EVENT, () => {\n acceptedCookies = [];\n watcher.unblockNow();\n watcher.start();\n });\n applyContentBlockRatioCssPlainCss();\n}\n\nexport { listenOptInForContentBlocker };","/**\n * A content got unblocked, let's run custom triggers on them, for example\n * the Elementor ready hook.\n */\nfunction customUnblockTriggers(nodes) {\n const {\n elementorFrontend,\n TCB_Front,\n jQuery,\n showGoogleMap,\n et_pb_init_modules,\n et_calculate_fullscreen_section_size,\n tdYoutubePlayers,\n tdVimeoPlayers,\n FWP,\n avadaLightBoxInitializeLightbox,\n WPO_LazyLoad\n } = window;\n let foundWpgb = false;\n\n for (const {\n node\n } of nodes) {\n const {\n className,\n id\n } = node; // Elementor https://git.io/JsXoh\n\n elementorFrontend === null || elementorFrontend === void 0 ? void 0 : elementorFrontend.elementsHandler.runReadyTrigger(node); // WP Grid Builder\n\n if (id.startsWith(\"wpgb-\") || className.startsWith(\"wpgb-\")) {\n foundWpgb = true;\n } // Thrive Visual Editor\n\n\n if (TCB_Front && jQuery && className.indexOf(\"tcb-yt-bg\") > -1) {\n const $node = jQuery(node);\n\n if ($node.is(\":visible\")) {\n TCB_Front.playBackgroundYoutube($node);\n }\n }\n } // Thrive Architect\n\n\n TCB_Front === null || TCB_Front === void 0 ? void 0 : TCB_Front.handleIframes(TCB_Front.$body, true); // https://avada.theme-fusion.com/design-elements/lightbox-element/\n\n avadaLightBoxInitializeLightbox === null || avadaLightBoxInitializeLightbox === void 0 ? void 0 : avadaLightBoxInitializeLightbox(); // FacetWP\n\n if (FWP) {\n FWP.loaded = false;\n FWP.refresh();\n } // WP Optimize lazyloading\n\n\n WPO_LazyLoad === null || WPO_LazyLoad === void 0 ? void 0 : WPO_LazyLoad.update(); // https://qodeinteractive.com/wordpress-theme/bridge-creative-multi-purpose-wordpress-theme/\n\n showGoogleMap === null || showGoogleMap === void 0 ? void 0 : showGoogleMap(); // jQuery plugins\n\n if (jQuery) {\n var _jQuery$lazyLoadXT, _jQuery;\n\n // https://github.com/ressio/lazy-load-xt\n (_jQuery$lazyLoadXT = (_jQuery = jQuery(window)).lazyLoadXT) === null || _jQuery$lazyLoadXT === void 0 ? void 0 : _jQuery$lazyLoadXT.call(_jQuery);\n } // Divi modules (e.g. Contact Forms and Newsletter signups)\n\n\n if (et_pb_init_modules) {\n // We need to reset the resize event listener as it results in an \"resize\" loop:\n // https://wordpress.org/support/topic/ultimatemember-profile-picture-upload-flickering/page/2/#post-15471580\n jQuery(window).off(\"resize\", et_calculate_fullscreen_section_size);\n et_pb_init_modules();\n } // tagDiv Composer\n\n\n tdYoutubePlayers === null || tdYoutubePlayers === void 0 ? void 0 : tdYoutubePlayers.init();\n tdVimeoPlayers === null || tdVimeoPlayers === void 0 ? void 0 : tdVimeoPlayers.init(); // WP Grid Builder (the custom event triggers an AJAX request, so do this only if we unblock a WPGB element)\n\n try {\n foundWpgb && window.dispatchEvent(new CustomEvent(\"wpgb.loaded\"));\n } catch (e) {// Silence is golden.\n }\n}\n\nexport { customUnblockTriggers };","import { HTML_ATTRIBUTE_RESET_PARENT, HTML_ATTRIBUTE_RESET_PARENT_VALUE } from \"@devowl-wp/headless-content-unblocker\";\n/**\n * In some cases it is necessary to reset some styles which are not resettable through\n * the `style` attribute. E.g. pseudo-classes like `::before` and `::after`.\n */\n\nfunction applyContentBlockRatioCssPlainCss() {\n const element = document.createElement(\"style\");\n element.style.type = \"text/css\";\n document.getElementsByTagName(\"head\")[0].appendChild(element);\n const selectorResetParentAttribute = \"\".concat(HTML_ATTRIBUTE_RESET_PARENT, \"=\\\"\").concat(HTML_ATTRIBUTE_RESET_PARENT_VALUE, \"\\\"\");\n const selectorContentBlocker = \".rcb-content-blocker\";\n const rules = [// Completely deactivate ::before pseudo element\n ...[// Thrive Architect\n \".thrv_wrapper[\".concat(selectorResetParentAttribute, \"]\")].map(s => \"\".concat(s, \"::before{display:none!important;}\")), // Completely hide element\n ...[// JetElements for Elementor\n \".jet-video[\".concat(selectorResetParentAttribute, \"]>.jet-video__overlay\"), // Divi Page Builder\n \".et_pb_video[\".concat(selectorResetParentAttribute, \"]>.et_pb_video_overlay\"), // legacy\n \"\".concat(selectorContentBlocker, \"+div+.et_pb_video_overlay\"), // Ultimate Video (WP Bakery Page Builder)\n \"\".concat(selectorContentBlocker, \"+.ultv-video\"), // Ultimate Addons for Elementor\n \"\".concat(selectorContentBlocker, \"+.elementor-widget-container\"), // Astra Theme (Gutenberg Block)\n \".wp-block-embed__wrapper[\".concat(selectorResetParentAttribute, \"]>.ast-oembed-container\"), // WP Grid Builder\n \"\".concat(selectorContentBlocker, \"+.wpgb-facet\"), // tagDiv Composer\n \"\".concat(selectorContentBlocker, \"+.td_wrapper_video_playlist\"), // WP YouTube Lyte\n \"\".concat(selectorContentBlocker, \"+div[class^=\\\"lyte-\\\"]\"), // Elementor video image overlay\n \".elementor-fit-aspect-ratio[\".concat(selectorResetParentAttribute, \"]>.elementor-custom-embed-image-overlay\")].map(s => \"\".concat(s, \"{display:none!important;}\")), // Other rules: If you add a similar one, please merge to an array!\n // Gutenberg\n \".wp-block-embed__wrapper[\".concat(selectorResetParentAttribute, \"]::before{padding-top:0!important;}\"), // Thrive Architect\n \".tve_responsive_video_container[\".concat(selectorResetParentAttribute, \"]{padding-bottom:0!important;}\"), // Reset absolute positioning\n ...[// X Pro\n \".x-frame-inner[\".concat(selectorResetParentAttribute, \"]>div.x-video\"), // Avia Builder\n \".avia-video[\".concat(selectorResetParentAttribute, \"] .avia-iframe-wrap\")].map(s => \"\".concat(s, \"{position:initial!important;}\")), // Completely disable background\n ...[// JetElements for Elementor\n \".jet-video[\".concat(selectorResetParentAttribute, \"]\")].map(s => \"\".concat(s, \"{background:none!important;}\")), // Completely disable border radius for content blocker within a container which can not be handled correctly\n ...[// Thrive Architect\n \".tve_responsive_video_container[\".concat(selectorResetParentAttribute, \"]\")].map(s => \"\".concat(s, \" .rcb-content-blocker > div > div > div {border-radius:0!important;}\"))];\n element.innerHTML = rules.join(\"\");\n}\n\nexport { applyContentBlockRatioCssPlainCss, HTML_ATTRIBUTE_RESET_PARENT, HTML_ATTRIBUTE_RESET_PARENT_VALUE };"],"names":["OPT_IN_CONTENT_BLOCKER_ALL","ALREADY_OVERWRITTEN_PROPERTY","hijackJqueryFn","fns","$","window","jQuery","fn","jQueryFns","originalFunction","alreadyOverwritten","indexOf","push","staticProps","Object","getOwnPropertyDescriptors","length","name","prototype","args","callOriginal","apply","this","each","nodes","Array","slice","call","querySelectorAll","concat","getAttribute","Promise","all","map","node","resolve","addEventListener","then","defineProperties","MEMORIZE_JQUERY_EVENT_PROPERTY","memorizeJQueryEvent","doc","element","eventName","memorizeProp","defaultView","parentWindow","event","Event","assign","on","BlockerContentInlineStyles","static","layout","type","dialogBorderRadius","design","borderWidth","borderColor","textAlign","fontColor","fontInheritFamily","fontFamily","customCss","antiAdBlocker","blocker","visualType","hasBg","style","undefined","color","borderRadius","border","position","padding","overflow","className","visualThumbnail","visualBlur","top","left","right","bottom","display","filter","background","url","backgroundSize","boxShadow","BlockerHeaderInlineStyles","restDesign","headerDesign","inheritBg","bg","p","join","borderTop","borderLeft","borderRight","inheritTextAlign","restHeaderDesign","useTextAlign","margin","justifyContent","alignItems","height","BlockerHeader","closeIcon","texts","blockerHeadline","h","headerContainer","header","replace","BlockerBodyInlineStyles","bodyDesign","showFooter","lineHeight","borderBottom","fontSize","descriptionInheritFontSize","descriptionFontSize","individualLayout","descriptionTextAlign","marginBottom","BlockerInlineStyles","BlockerButton","inlineStyle","onClick","children","framed","busyOnClick","isBusy","setIsBusy","handleOnClick","e","isHover","setIsHover","banner","interactionAttr","onMouseEnter","onMouseLeave","decision","acceptAll","acceptAllFontSize","acceptAllBg","acceptAllTextAlign","acceptAllBorderColor","acceptAllPadding","acceptAllBorderWidth","acceptAllFontColor","acceptAllHoverBg","acceptAllHoverFontColor","acceptAllHoverBorderColor","common","hoverBg","hoverFontColor","hoverBorderColor","acceptIndividual","acceptIndividualFontSize","acceptIndividualBg","acceptIndividualTextAlign","acceptIndividualBorderColor","acceptIndividualPadding","acceptIndividualBorderWidth","acceptIndividualFontColor","acceptIndividualHoverBg","acceptIndividualHoverFontColor","acceptIndividualHoverBorderColor","zIndex","textDecoration","cursor","backgroundColor","transition","outline","BlockerBody","areCookiesVisible","setCookiesVisible","teachingsSeparatorActive","blockerLoadButton","blockerLinkShowMissing","blockerAcceptInfo","services","consent","groups","onUnblock","productionNotice","i18n","close","missing","allConsentCookies","cookies","values","items","cookie","id","description","teachings","useCommonTeachings","disableDataProcessingInUnsafeCountries","ePrivacyUSA","Boolean","disableListServicesNotice","bodyContainer","body","topSide","dangerouslySetInnerHTML","__html","teaching","key","maxHeight","overflowY","paddingRight","cookieScroll","checked","disabled","bottomSide","BlockerFooterInlineStyles","footerDesign","BlockerFooter","rows","links","render","renderLinks","useCommonFooterLink","putPoweredByLinkInRow","footerContainer","footer","BlockerTextContainer","paintMode","ref","isBackgroundVisible","inViewport","setInViewport","container","current","IntersectionObserver","entries","observer","forEach","isIntersecting","disconnect","observe","useWaitElementInViewport","inner","innerBackground","content","headerSeparator","footerSeparator","Blocker","WebsiteBlocker","poweredLink","setVisualAsLastClickedVisual","customizeValuesBanner","legal","saveButton","group","individualTexts","pageIdToPermalink","consentForwardingExternalHosts","isTcf","isEPrivacyUSA","isAgeNotice","isListServicesNotice","userConsentCookieName","bannerI18n","affiliate","isCurrentlyInTranslationEditorPreview","pageByIdUrl","getOtherOptionsFromWindow","userDecision","getUserDecision","overwriteDesign","contextValue","ageNotice","listServicesNotice","keepVariablesInTexts","async","essentialGroup","tcf","tcfMetadata","blockerId","currentDecision","essentialGroupObj","slug","newConsent","groupId","cookieId","_newConsent$groups$gr","applyConsent","buttonClicked","blockerThumbnail","embedId","fileMd5","tcfString","adjustConsentComingFromContentBlocker","usePlainCss","BlockerContext","Provider","value","currentlyInTransaction","setCurrentlyInTransaction","state","isCurrentlyInTransaction","decideToUnblock","by","requiredIds","checker","split","Number","putStyleInlineToDom","removeAttribute","inlineStyleHtml","outerHTML","substr","RegExp","parentElement","replaceChild","DOMParser","parseFromString","querySelector","transformInlineStyle","noConsentCount","m","urlPrefix","maskedUrl","requiredString","base64EncodedUrl","htmlDecode","atob","calculateScore","rule","stackSize","property","specificity","selectorText","_rule$style","getPropertyPriority","priorityByRule","selector","iterateRules","rules","scoresPool","ruleIdx","CSSStyleRule","matchingSelector","resolveNoneComputedStyle","scores","styleSheets","document","styleSheetIdx","styleSheet","cssRules","iterateStylesheets","inline","String","match","calculateInlineScore","sort","a","b","sortScores","resolveScorePool","KNOWN_RATIO_CLASSES","RESET_STYLE","MEMORIZE_OLD_STYLE","isPotentialVisualWithinResponsiveContainer","_node$style","parentPosition","parentPadding","probablyResetParentContainerForVisual","contentBlocker","_parentElement$parent","iterateParents","parent","hasAttribute","foundRatioClass","c","isRatioContainer","setAttribute","previouslyStrictHidden","setProperty","getComputedStyle","isElementInViewport","el","partial","width","getBoundingClientRect","innerWidth","innerHeight","horInView","clientHeight","clientWidth","documentElement","CHILDREN_SELECTOR_PREFIX","findVisualParent","setVisualParentIfClassOfParent","useVisualParent","tagName","toLowerCase","def","isNaN","i","startsWith","elem","getPreviousVisibleElement","rateAsVisible","previousVisible","result","previousElementSibling","prevAll","offsetParent","isHtmlNodeContentBlocker","mapIgnoreInvisibleAndUsePreviousVisible","lastClickedConnectedCounter","connectedCounterPreserve","createVisual","dependantVisibilityContainers","mount","_document$querySelect","toString","connectedCounter","shouldForceToShowVisual","isVisual","isPositioned","isNotInContent","head","isAlreadyConnected","createBefore","visualParentMode","isVisible","fnStrictHide","getPropertyValue","dependantContainers","parents","foundDuplicate","_node$parentElement","_node$parentElement2","_node$parentElement2$","_secondParentPrevious","firstParentPreviousElementSibling","secondParentPreviousElementSibling","possibleDuplicates","lastElementChild","possibleDuplicate","blockedContentOfPossibleDuplicate","nextElementSibling","findPreviousVisibleDuplicate","thumbnail","createElement","parentNode","insertBefore","JSON","parse","nestedThumbnailNode","createVisualContainer","mountVisualContainer","stopPropagation","setLastClickedConnectedCounter","blockedNode","requestIdleCallback","setTimeout","detectLastClicked","connectedBlocker","consentId","consentBy","isLastClicked","parentGotClicked","overwritten","applyJQueryReadyInitiator","originalFn","ready","executed","applyJQueryEventInitiator","onBeforeExecute","overwriteProp","add","types","handler","data","useTypes","isArray","memorizeExecutionPromise","inTransaction","executeHandle","isRequestedEventName","applyNativeEventListenerInitiator","rest","_rest$","bubbles","cancelable","applyWindowOnloadInitiator","w","defineProperty","set","newValue","enumerable","configurable","SCRIPTS_SELECTOR","WaitSynchronousScripts","constructor","scriptsBefore","diff","script","performance","getEntriesByType","src","ensureScriptWrapper","html","referenceNode","putHtmlCodeToDom","tagTransformationCounter","HTML_TAG_TRANSFORMATION_COUNTER","transformToOriginalAttribute","allowClickOverrides","onlyModifyAttributes","overwriteAttributeValue","performedClick","isScript","workWithNode","cloneNode","attribute","getAttributeNames","endsWith","_workWithNode$getAttr","originalAttribute","overwriteC