Version Description
Download this release
Release Info
Developer | devowl |
Plugin | Real Cookie Banner: GDPR (DSGVO) & ePrivacy Cookie Consent |
Version | 2.18.1 |
Comparing to | |
See all releases |
Code changes from version 2.17.3 to 2.18.1
- CHANGELOG.md +88 -92
- README.txt +16 -10
- inc/Assets.php +6 -1
- inc/Core.php +53 -3
- inc/MyConsent.php +46 -67
- inc/Utils.php +27 -0
- inc/base/others/cachebuster-lib.php +1 -1
- inc/base/others/cachebuster.php +46 -44
- inc/comp/migration/AbstractDashboardTileMigration.php +1 -1
- inc/overrides/lite/Core.php +1 -0
- inc/overrides/lite/FomoCoupon.php +101 -0
- inc/presets/BannerPresets.php +62 -38
- inc/presets/BlockerPresets.php +1 -1
- inc/presets/free/RealCookieBannerPreset.php +4 -20
- inc/presets/free/blocker/YoutubePreset.php +4 -19
- inc/presets/middleware/AdoptTierFromClassNamespaceMiddleware.php +2 -0
- inc/presets/middleware/BlockerHostsOptionsMiddleware.php +6 -5
- inc/presets/pro/blocker/CalderaFormsPreset.php +12 -15
- inc/presets/pro/blocker/CleverReachRecaptchaPreset.php +12 -15
- inc/presets/pro/blocker/ContactForm7RecaptchaPreset.php +12 -15
- inc/presets/pro/blocker/DiviContactFormPreset.php +12 -15
- inc/presets/pro/blocker/ElementorFormsPreset.php +12 -15
- inc/presets/pro/blocker/FacebookLikePreset.php +8 -10
- inc/presets/pro/blocker/FacebookPixelPreset.php +23 -31
- inc/presets/pro/blocker/FacebookPostPreset.php +16 -20
- inc/presets/pro/blocker/FacebookSharePreset.php +8 -10
- inc/presets/pro/blocker/FiveStarRestaurantReservationsPreset.php +12 -15
- inc/presets/pro/blocker/FormMakerRecaptchaPreset.php +12 -15
- inc/presets/pro/blocker/FormidablePreset.php +12 -15
- inc/presets/pro/blocker/GoogleAnalytics4Preset.php +32 -40
- inc/presets/pro/blocker/GoogleAnalyticsPreset.php +48 -60
- inc/presets/pro/blocker/GoogleMapsPreset.php +4 -1
- inc/presets/pro/blocker/HappyFormsPreset.php +24 -30
- inc/presets/pro/blocker/NinjaFormsPreset.php +24 -30
- inc/presets/pro/blocker/QuformRecaptchaPreset.php +12 -15
- inc/presets/pro/blocker/WPFormsPreset.php +12 -15
- inc/scanner/OnChangeDetection.php +6 -20
- inc/scanner/Query.php +13 -5
- inc/scanner/Scanner.php +6 -10
- inc/settings/Consent.php +30 -0
- inc/settings/Cookie.php +26 -0
- inc/settings/General.php +111 -3
- inc/view/ConfigPage.php +60 -3
- inc/view/checklist/GetPro.php +1 -1
- inc/view/customize/banner/BasicLayout.php +28 -21
- inc/view/customize/banner/BodyDesign.php +67 -39
- inc/view/customize/banner/Decision.php +120 -0
- inc/view/customize/banner/Design.php +17 -9
- inc/view/customize/banner/FooterDesign.php +7 -4
- inc/view/customize/banner/HeaderDesign.php +9 -5
- inc/view/customize/banner/Legal.php +2 -1
- inc/view/customize/banner/Mobile.php +7 -3
- inc/view/customize/banner/Texts.php +72 -4
- inc/view/customize/banner/individual/Group.php +19 -12
- inc/view/customize/banner/individual/Layout.php +9 -6
- inc/view/customize/banner/individual/SaveButton.php +37 -4
- inc/view/customize/banner/individual/Texts.php +18 -3
- inc/view/shortcode/{PrintUuidShortcode.php → HistoryUuidsShortcode.php} +10 -3
- index.php +1 -1
- languages/real-cookie-banner-bg_BG.mo +0 -0
- languages/real-cookie-banner-bg_BG.po +84 -0
- languages/real-cookie-banner-cs_CZ.mo +0 -0
- languages/real-cookie-banner-cs_CZ.po +84 -0
- languages/real-cookie-banner-da_DK.mo +0 -0
- languages/real-cookie-banner-da_DK.po +84 -0
- languages/real-cookie-banner-de_AT.mo +0 -0
- languages/real-cookie-banner-de_AT.po +243 -63
- languages/real-cookie-banner-de_CH.mo +0 -0
- languages/real-cookie-banner-de_CH.po +243 -63
- languages/real-cookie-banner-de_CH_informal.mo +0 -0
- languages/real-cookie-banner-de_CH_informal.po +243 -63
- languages/real-cookie-banner-de_DE.mo +0 -0
- languages/real-cookie-banner-de_DE.po +243 -63
- languages/real-cookie-banner-de_DE_formal.mo +0 -0
- languages/real-cookie-banner-de_DE_formal.po +241 -63
- languages/real-cookie-banner-el.mo +0 -0
- languages/real-cookie-banner-el.po +84 -0
- languages/real-cookie-banner-es_AR.mo +0 -0
- languages/real-cookie-banner-es_AR.po +84 -0
- languages/real-cookie-banner-es_CL.mo +0 -0
- languages/real-cookie-banner-es_CL.po +84 -0
- languages/real-cookie-banner-es_CO.mo +0 -0
- languages/real-cookie-banner-es_CO.po +84 -0
- languages/real-cookie-banner-es_CR.mo +0 -0
- languages/real-cookie-banner-es_CR.po +84 -0
- languages/real-cookie-banner-es_ES.mo +0 -0
- languages/real-cookie-banner-es_ES.po +84 -0
- languages/real-cookie-banner-es_GT.mo +0 -0
- languages/real-cookie-banner-es_GT.po +84 -0
- languages/real-cookie-banner-es_MX.mo +0 -0
- languages/real-cookie-banner-es_MX.po +84 -0
- languages/real-cookie-banner-es_PE.mo +0 -0
- languages/real-cookie-banner-es_PE.po +84 -0
- languages/real-cookie-banner-es_UY.mo +0 -0
- languages/real-cookie-banner-es_UY.po +84 -0
- languages/real-cookie-banner-es_VE.mo +0 -0
- languages/real-cookie-banner-es_VE.po +84 -0
- languages/real-cookie-banner-fi.mo +0 -0
- languages/real-cookie-banner-fi.po +84 -0
- languages/real-cookie-banner-fr_BE.mo +0 -0
- languages/real-cookie-banner-fr_BE.po +84 -0
- languages/real-cookie-banner-fr_CA.mo +0 -0
- languages/real-cookie-banner-fr_CA.po +84 -0
- languages/real-cookie-banner-fr_FR.mo +0 -0
- languages/real-cookie-banner-fr_FR.po +84 -0
- languages/real-cookie-banner-it_IT.mo +0 -0
- languages/real-cookie-banner-it_IT.po +84 -0
- languages/real-cookie-banner-nl_BE.mo +0 -0
- languages/real-cookie-banner-nl_BE.po +84 -0
- languages/real-cookie-banner-nl_NL.mo +0 -0
- languages/real-cookie-banner-nl_NL.po +84 -0
- languages/real-cookie-banner-nl_NL_formal.mo +0 -0
- languages/real-cookie-banner-nl_NL_formal.po +84 -0
- languages/real-cookie-banner-pl_PL.mo +0 -0
- languages/real-cookie-banner-pl_PL.po +84 -0
- languages/real-cookie-banner-pt_BR.mo +0 -0
- languages/real-cookie-banner-pt_BR.po +84 -0
- languages/real-cookie-banner-pt_PT.mo +0 -0
- languages/real-cookie-banner-pt_PT.po +84 -0
- languages/real-cookie-banner-ro_RO.mo +0 -0
- languages/real-cookie-banner-ro_RO.po +84 -0
- languages/real-cookie-banner-ru_RU.mo +0 -0
- languages/real-cookie-banner-ru_RU.po +84 -0
- languages/real-cookie-banner-sv_SE.mo +0 -0
- languages/real-cookie-banner-sv_SE.po +84 -0
- languages/real-cookie-banner-tr_TR.mo +0 -0
- languages/real-cookie-banner-tr_TR.po +84 -0
- languages/real-cookie-banner.pot +105 -23
- public/dist/191.lite.js +1 -1
- public/dist/191.lite.js.map +1 -1
- public/dist/276.lite.js +2 -0
- public/dist/276.lite.js.map +1 -0
CHANGELOG.md
CHANGED
@@ -3,6 +3,80 @@
|
|
3 |
All notable changes to this project will be documented in this file.
|
4 |
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
## 2.17.3 (2022-05-13)
|
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.
|
@@ -30,18 +104,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
30 |
## 2.17.1 (2022-04-29)
|
31 |
|
32 |
|
33 |
-
### chore
|
34 |
-
|
35 |
-
* remove unused code
|
36 |
-
* review 1 (CU-22h6bee)
|
37 |
-
* update changelog URL (CU-2chdb51)
|
38 |
-
|
39 |
-
|
40 |
-
### docs
|
41 |
-
|
42 |
-
* new contributors for WordPress plugins
|
43 |
-
|
44 |
-
|
45 |
### fix
|
46 |
|
47 |
* compatibility with Buddyapp theme as banner buttons were not clickable (CU-2chdca5)
|
@@ -74,16 +136,15 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
74 |
* introduce predefined images for content blocker content types (CU-1y2d0mb)
|
75 |
* prepare new visual content blockers for lite version (CU-eb4h2q)
|
76 |
* remove React and React DOM local copies and rely on WordPress version (CU-awv3bv)
|
77 |
-
* review 1 (CU-1zad7fx)
|
78 |
* store embed thumbnails in a more generic folder in wp-content/uploads (CU-eb4h2q)
|
79 |
* update embera (CU-eb4h2q)
|
80 |
|
81 |
|
82 |
### feat
|
83 |
|
84 |
-
* allow content blocker with preview images in
|
85 |
* allow to create navgiation / menu links with one click instead of shortcodes (CU-we4qxh)
|
86 |
-
* allow to export / import visual content blocker settings
|
87 |
* implement visual content blocker with visual audio player (CU-eb4h2q)
|
88 |
* introduce new visual settings in Content Blocker form (CU-eb4h2q)
|
89 |
|
@@ -94,7 +155,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
94 |
* block 1.gravatar.com in Gravatar content blocker template (CU-2200n8k)
|
95 |
* cleanup code and adjust checklist for legal links (CU-we4qxh)
|
96 |
* compatibility of nav menus with WPML (CU-we4qxh)
|
97 |
-
* compatibility with
|
98 |
* compatibility with Gravity Geolocation and Google Maps (CU-23z12mr)
|
99 |
* compatibility with latest version of HappyForms and Google reCAPTCHA (CU-1znd8x2)
|
100 |
* compatibility with TranslatePress Automatic User Language Detection popup and blurred popup (CU-244r841)
|
@@ -122,18 +183,12 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
122 |
* extract composer dev dependencies to their corresponding dev package (CU-22h231w)
|
123 |
* move more files to @devowl-wp/headless-content-unblocker
|
124 |
* move wordpress packages to isomorphic-packages (CU-22h231w)
|
125 |
-
* name traefik environment to staging (CU-22h231w)
|
126 |
* put composer license packages to @devowl-wp/composer-licenses (CU-22h231w)
|
127 |
* rename wordpress-packages and wordpress-plugins folder (CU-22h231w)
|
128 |
* revert empty commits for package folder rename (CU-22h231w)
|
129 |
* use phpunit-config and phpcs-config in all PHP packages (CU-22h231w)
|
130 |
|
131 |
|
132 |
-
### revert
|
133 |
-
|
134 |
-
* remove max height for preview image as it is not practicable solvable (CU-eb4h2q)
|
135 |
-
|
136 |
-
|
137 |
|
138 |
|
139 |
|
@@ -172,10 +227,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
172 |
|
173 |
### chore
|
174 |
|
175 |
-
*
|
176 |
-
* review 1 (CU-20ch93c)
|
177 |
-
* review 2 (CU-1jkmq84)
|
178 |
-
* update TCF library to latest version (CU-22bavpa)
|
179 |
* use wildcarded composer repository path (CU-1zvg32c)
|
180 |
|
181 |
|
@@ -183,11 +235,10 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
183 |
|
184 |
* adjust US data processing consent setting description (CU-20cherc)
|
185 |
* bypass geo-restriction when using Lighthouse page speed score user agent (CU-20chp0h)
|
186 |
-
* change
|
187 |
* compatibility with latest Oxygen page builder version (CU-20crzbn)
|
188 |
* compatibility with SiteGround Optimizer (CU-1znmzvx)
|
189 |
* correctly invalidate scanner query transients for post deletion and when invalidating preset cache (CU-20jc4q1)
|
190 |
-
* correctly invalidate scanner query transients for post deletion and when invalidating preset cache (CU-20jc4q1)
|
191 |
* disable animations in Firefox mobile as it breaks the layout (CU-20jbyp5)
|
192 |
* fire OptInAll event after GTM/MTM datalayer pushes (CU-20162wr)
|
193 |
* notice while exporting consent by UUID (CU-2015tvy)
|
@@ -233,8 +284,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
233 |
* block Instagram background images embedded by tagDiv (CU-1ydpf9k)
|
234 |
* content blocker rule to block OpenStreetMap embedded via "Ultimate Maps by Supsystic" (CU-1yyy4ae)
|
235 |
* provide ready promise for OptInAll event (CU-1wernq1)
|
236 |
-
* review 1 (CU-1wernq1)
|
237 |
-
* review 1 (CU-1xwnv8m)
|
238 |
|
239 |
|
240 |
### ci
|
@@ -267,7 +316,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
267 |
* compatibility with wpDiscuz and Gravatar content blocking when sorting and posting comments (CU-1z4ghy7)
|
268 |
* compatibility with YouTube Embed Plus (CU-1z4gg3k)
|
269 |
* compatibilty with latest Divi video module and overlay (CU-1yyyc2d)
|
270 |
-
* correctly show
|
271 |
* detect Google Analytics service template without inline script (CU-1yt64aa)
|
272 |
* do migrations also for prerelease versions (CU-1ydq6ff)
|
273 |
* do not anonymouize assets when anti-ad-block system is deactivated (CU-1ydtzkv)
|
@@ -338,7 +387,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
338 |
|
339 |
* compatibility with Autoptimize when obkiller is active (CU-1weqdr2)
|
340 |
* compatibility with Divi contact forms and Google reCAPTCHA (CU-1wepwec)
|
341 |
-
* security issue as the reset-all action did not have a CSRF token (CU-1werk7m)
|
342 |
* tcf consent is correctly saved, but wrong at time of changing privacy preferences (CU-1w9587v)
|
343 |
|
344 |
|
@@ -388,7 +437,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
388 |
|
389 |
* add more security hashes for disabled footer (CU-1znbady)
|
390 |
* add notice to mobile experience in free version as it is always responsive even in free (CU-2328pwb)
|
391 |
-
* review 1 (CU-22b6qqj)
|
392 |
* update Facebook provider to Meta provider for all FB service templates (CU-23kf838)
|
393 |
* update upgrade notice to be more descriptive about update process (CU-23kf838)
|
394 |
|
@@ -434,10 +482,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
434 |
### chore
|
435 |
|
436 |
* new developer filter RCB/IsPreventPreDecision (CU-1yk0nxf)
|
437 |
-
* review 1 (CU-1x5e0jt, CU-1x5enat)
|
438 |
-
* review 1 (CU-1xgxrnt)
|
439 |
-
* review 1 (CU-nz2k7f)
|
440 |
-
* review 2 (CU-nz2k7f)
|
441 |
* suppress webpack warnings about @antv/g2 as it does not impact the frontend but disturbs CI and DX (CU-1z46xp8)
|
442 |
|
443 |
|
@@ -458,14 +502,13 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
458 |
### fix
|
459 |
|
460 |
* allow to disable the powered by link via our license server (CU-1znbady)
|
461 |
-
* allow to disable the powered by link via our license server (part 2, CU-1znbady)
|
462 |
* compatibility with a3 Lazy Load (CU-22gym0m)
|
463 |
* compatibility with WP Contact Slider (CU-1y7nw9p)
|
464 |
* compatibility with WP ImmoMakler Google Maps (CU-200ykt6)
|
465 |
* compatibility with YouTube + Vimeo + Premium Addons for Elementor (CU-1wecmxt)
|
466 |
* correctly break line for dotted groups in cookie banner on iOS safari (CU-nz2k7f)
|
467 |
* detect more ad blockers in admin page (CU-1znepfw)
|
468 |
-
* empty external URL shown when plugin
|
469 |
* for older WP < 5.4 versions an encodedString was printed to website (CU-1yk0may)
|
470 |
* rule to block Google Maps JS API in content blocker for Levelup theme compatibility (CU-20100kp)
|
471 |
* use anchor-links for shortcodes instead of class so they can be used without shortcodes, too (CU-1z9yf6b)
|
@@ -535,7 +578,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
535 |
|
536 |
### fix
|
537 |
|
538 |
-
*
|
539 |
|
540 |
|
541 |
|
@@ -544,22 +587,16 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
544 |
## 2.11.1 (2021-12-15)
|
545 |
|
546 |
|
547 |
-
### build
|
548 |
-
|
549 |
-
* disable bundle analyzer for RCB development build (CU-1wzqjg7)
|
550 |
-
|
551 |
-
|
552 |
### chore
|
553 |
|
554 |
-
* backwards compatible footer visibility in
|
555 |
* cleanup code for scanner (CU-1v6cf91)
|
556 |
* description of the legitimate interest and essential cookies according to the TTDSG concretized (CU-1wejt3d)
|
557 |
* introduce new PHP api wp_rcb_consent_given (CU-1rgeyre)
|
558 |
* introduce plugin and design version for new consents (CU-1vhtwa2)
|
559 |
* introduce query argument validations for scanner (CU-1v6crwz)
|
560 |
* new developer filter RCB/Presets/Cookies/Recommended and RCB/Presets/Blocker/Recommended (CU-1xazcrh)
|
561 |
-
* remove non-saw-out descriptions from
|
562 |
-
* review 1 (CU-1wtzm8t)
|
563 |
|
564 |
|
565 |
### docs
|
@@ -569,7 +606,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
569 |
|
570 |
### fix
|
571 |
|
572 |
-
* allow to dismiss the
|
573 |
* apply preset middlewares in correct order (CU-1x5cj8w)
|
574 |
* compatibility with Ark theme and jQuery(window).load (CU-1wznta2)
|
575 |
* compatibility with fitVids when using together with a caching plugin (CU-1wm4u9v)
|
@@ -603,7 +640,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
603 |
* content blocker last teaching should be above the link and styled as teaching (CU-1vhtwa2)
|
604 |
* customizer presets should respect hidden powered-by-link
|
605 |
* do not show footer for visual content blockers as not needed (CU-1vhtwa2)
|
606 |
-
*
|
607 |
|
608 |
|
609 |
|
@@ -770,11 +807,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
770 |
# 2.9.0 (2021-10-12)
|
771 |
|
772 |
|
773 |
-
### ci
|
774 |
-
|
775 |
-
* remove some jobs no longer needed in CI (CU-1jtj4fg)
|
776 |
-
|
777 |
-
|
778 |
### feat
|
779 |
|
780 |
* allow to filter by context, period and URL in list of consents (CU-ad0gf1)
|
@@ -821,7 +853,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
821 |
* prepare for continuous localization with weblate (CU-f94bdr)
|
822 |
* remove language files from repository (CU-f94bdr)
|
823 |
* rename 'Statistic' to 'Statistics' (CU-12gwu5r)
|
824 |
-
* translation review round 2 (CU-vhmn9k)
|
825 |
|
826 |
|
827 |
### ci
|
@@ -953,7 +984,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
953 |
|
954 |
* allow emojis in cookie banner and content blocker (CU-u3xv7j)
|
955 |
* banner not visible for older safari and internet explorer browser (CU-vhq9jn)
|
956 |
-
* banner not visible for older safari and internet explorer browser (CU-vhq9jn)
|
957 |
* compatibility with latest Avada Fusion Builder (live editor, CU-u9mb2h)
|
958 |
* consider non-WWW host as same host and do not detect as external URL (CU-u9m6rv)
|
959 |
* consider WWW subdomain also for link preconnects and dns-prefetch for the correct template (CU-u9m5e5)
|
@@ -998,11 +1028,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
998 |
* www URLs of the same WordPress installations were considered as external URL in scanner (CU-6fcxcr)
|
999 |
|
1000 |
|
1001 |
-
### refactor
|
1002 |
-
|
1003 |
-
* remove unnecessary translations
|
1004 |
-
|
1005 |
-
|
1006 |
|
1007 |
|
1008 |
|
@@ -1011,7 +1036,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1011 |
|
1012 |
### fix
|
1013 |
|
1014 |
-
* error message when using PHP < 7.3
|
1015 |
* loose sitemap index URLs (CU-rvwmnk)
|
1016 |
|
1017 |
|
@@ -1037,8 +1061,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1037 |
|
1038 |
* introduce new developer filter RCB/Blocker/IsBlocked/AllowMultiple and RCB/Blocker/ResolveBlockables (CU-7mvhak)
|
1039 |
* new developer filter RCB/Blocker/SelectorSyntax/IsBlocked
|
1040 |
-
* settled TODOs and update since-versions (CU-7mvhak)
|
1041 |
-
* translations into German (CU-pb8dpn)
|
1042 |
* update texts for scanner tab (hint, CU-mtddjt)
|
1043 |
|
1044 |
|
@@ -1088,7 +1110,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1088 |
* do not add duplicate URLs to queue
|
1089 |
* do not enqueue real-queue on frontend for logged-in users
|
1090 |
* german support link (CU-rg8qrt)
|
1091 |
-
* improve German translations for scanner (CU-n9cuyh)
|
1092 |
* include all revision data in single consent export
|
1093 |
* native integration for Analytify preset (disabled status, CU-n1f1xc)
|
1094 |
* native integration for GA Google Analytics preset (disabled status, CU-n1f1xc)
|
@@ -1097,14 +1118,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1097 |
* native integration for WooCommerce Google Analytics preset (disabled status, CU-n1f1xc)
|
1098 |
* preset WordPress Emojis should also block the DNS prefetch
|
1099 |
* remove extended presets from scan results
|
1100 |
-
* review 1 (CU-mtdp7v, CU-n1f1xc)
|
1101 |
-
* review 1 (CU-nd8ep0)
|
1102 |
-
* review 2 (CU-7mvhak)
|
1103 |
-
* review 2 (CU-nd8ep0)
|
1104 |
-
* review 3 (CU-7mvhak)
|
1105 |
-
* review user tests #1 (CU-nvafz0)
|
1106 |
-
* review user tests #2 (CU-nvafz0)
|
1107 |
-
* review user tests #3 (CU-nvafz0)
|
1108 |
* split Google Analytics into two content blockers UA and V4 (CU-nq8c3j)
|
1109 |
* tag to fully blocked associated with found count instead of distinct of sites count
|
1110 |
* update Facebook Post preset to be compatible with Facebook Video (CU-p1dxwp)
|
@@ -1140,7 +1153,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1140 |
|
1141 |
### chore
|
1142 |
|
1143 |
-
* translate (CU-pkhcg8)
|
1144 |
* update TCF dependencies to latest version (CU-pq8wt4)
|
1145 |
|
1146 |
|
@@ -1153,7 +1165,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1153 |
* put powered-by link in banner in same align as the legal links (CU-pn8pcz)
|
1154 |
* reload page after consent change (CU-pnbunr)
|
1155 |
* reset essential cookies correctly when custom choice is selected
|
1156 |
-
* review 1 (CU-pn8pcz)
|
1157 |
|
1158 |
|
1159 |
### refactor
|
@@ -1275,9 +1286,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1275 |
|
1276 |
### chore
|
1277 |
|
1278 |
-
* clearer differentiation of the plugin's benefits in wordpress.org description (CU-kbaequ)
|
1279 |
-
* clearer differentiation of the plugin's benefits in wordpress.org description (CU-kbaequ)
|
1280 |
-
* clearer differentiation of the plugin's benefits in wordpress.org description (CU-kbaequ)
|
1281 |
* clearer differentiation of the plugin's benefits in wordpress.org description (CU-kbaequ)
|
1282 |
* translate new cookie and content blocker presets (CU-kt7e5r, CU-kk8gvu, CU-k759kz)
|
1283 |
* update Cloudflare service template (CU-ff6vzc)
|
@@ -1423,7 +1431,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1423 |
|
1424 |
### fix
|
1425 |
|
1426 |
-
*
|
1427 |
|
1428 |
|
1429 |
|
@@ -1524,18 +1532,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
1524 |
* make group description texts resettable (CU-gf3dew)
|
1525 |
* notices thrown when no vendor given (CU-ff0yvh)
|
1526 |
* output UUID on legal sites, too (CU-jha8xc)
|
1527 |
-
* review 1 (TCF, CU-ff0yck)
|
1528 |
-
* review 2 (CU-ff0yvh)
|
1529 |
-
* review 3 (CU-ff0yvh)
|
1530 |
-
* review 4 (CU-ff0yvh)
|
1531 |
-
* review 5 (CU-ff0z49)
|
1532 |
-
* review 6 (CU-80ub8k)
|
1533 |
-
* review 7 (CU-80ub8k)
|
1534 |
-
* review TCF CMP validator (CU-hh395u, CU-hh3dkn)
|
1535 |
-
* review with user test (thanks to Carlo, CU-gd12qp)
|
1536 |
-
* review with user test (thanks to Franz, CU-gd12mq)
|
1537 |
-
* review with user test (thanks to Franz, CU-gd12mq)
|
1538 |
-
* review with user test (thanks to Jonas, CU-gd12hq)
|
1539 |
* show vendor ID in list table of TCF vendors (CU-gf8h2g)
|
1540 |
* show vendor list link for TCF banner in footer (CU-g977x9)
|
1541 |
* the Lighthouse crawler is not a bot (CU-j575je)
|
3 |
All notable changes to this project will be documented in this file.
|
4 |
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5 |
|
6 |
+
## 2.18.1 (2022-05-24)
|
7 |
+
|
8 |
+
|
9 |
+
### fix
|
10 |
+
|
11 |
+
* migrations did not work as expected for newer features and existing users (hotfix, CU-2f1fcfv)
|
12 |
+
* migrations did not work as expected for newer features and existing users (hotfix, CU-2f1fcfv)
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
|
18 |
+
# 2.18.0 (2022-05-24)
|
19 |
+
|
20 |
+
|
21 |
+
### chore
|
22 |
+
|
23 |
+
* highlight consent options equally in design presets (CU-20chay0)
|
24 |
+
* review 1 (CU-20chay0, CU-20chd53)
|
25 |
+
* review 1 (CU-20che0e, CU-2cbpypb, CU-20ch8fp, CU-20ch8w2)
|
26 |
+
* review 1 (CU-2f1fcfv)
|
27 |
+
* review 2 (CU-20ch8fp)
|
28 |
+
* review 2 (CU-20ch8w2)
|
29 |
+
* review 2 (CU-20che0e)
|
30 |
+
* show in-app promo coupons in free version (CU-23tayej)
|
31 |
+
* update changelog URL (CU-2adgjqp)
|
32 |
+
|
33 |
+
|
34 |
+
### docs
|
35 |
+
|
36 |
+
* animated banner in wordpress.org product description (CU-237uw9d)
|
37 |
+
* clean up changelog (CU-294ugp0)
|
38 |
+
* compatibility with WordPress 6.0 (CU-2e4yvvt)
|
39 |
+
* mention new features in wordpress.org product description (CU-294ugp0)
|
40 |
+
|
41 |
+
|
42 |
+
### feat
|
43 |
+
|
44 |
+
* add optional purpose field to technical definitions (CU-20ch8fp)
|
45 |
+
* allow to disable the bullet list of groups in customizer (CU-20chd53)
|
46 |
+
* allow to list all services with their associated groups as superscript in first view (CU-20ch8w2)
|
47 |
+
* allow to modify the button order in customizer (CU-20chay0)
|
48 |
+
* allow to use the same styling in customizer of Accept All for Continue without consent and Save button (CU-20chay0)
|
49 |
+
|
50 |
+
|
51 |
+
### fix
|
52 |
+
|
53 |
+
* automatically update the privacy policy URL of the RCB service when the privacy policy setting changes (CU-1z4gr4p)
|
54 |
+
* compatibility with local Windows environment as all templates are shown as free
|
55 |
+
* compatibility with Rodich theme and their Google Maps shortcode (CU-2eg9czv)
|
56 |
+
* contact form 7 showed up without any Google reCAPTCHA script (CU-2eghepk)
|
57 |
+
* correctly reset new feature defaults for existing installations (CU-20ch8be)
|
58 |
+
* correctly sync Settings > Privacy policy setting in cookie settings (CU-1z4gr4p)
|
59 |
+
* do not translate texts with placeholder in translation editor (TranslatePress, CU-2f1fcfv)
|
60 |
+
* facebook pixel enabled all facebook services in scanner (CU-2eghepk)
|
61 |
+
* make privacy policy required and show notice for already existing services without URL (CU-1z4gr4p)
|
62 |
+
* no reuse of consent UUID to prevent tracking of consent concatenation on server side (CU-20che0e)
|
63 |
+
* preview images for youtube-nocookie.com embeds (CU-2f1fcfv)
|
64 |
+
* show correct status for Content Blocker in admin bar menu (CU-2dz5058)
|
65 |
+
* update all on-premise / local services with updates privacy policy from Cookies > Settings (CU-1z4gr4p)
|
66 |
+
* update texts in cookie banner to be compliant with latest law (CU-2cbpypb)
|
67 |
+
* use range input slider for all PX values in customizer (CU-20chay0)
|
68 |
+
* use range input with value with unit in customizer (CU-20chay0)
|
69 |
+
|
70 |
+
|
71 |
+
### refactor
|
72 |
+
|
73 |
+
* move consent management to @devowl-wp/cookie-consent-web-client
|
74 |
+
* namings for headless-content-blocker scan options (CU-2eghepk)
|
75 |
+
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
|
80 |
## 2.17.3 (2022-05-13)
|
81 |
|
82 |
**Note:** This package (@devowl-wp/real-cookie-banner) has been updated because a dependency, which is also shipped with this package, has changed.
|
104 |
## 2.17.1 (2022-04-29)
|
105 |
|
106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
### fix
|
108 |
|
109 |
* compatibility with Buddyapp theme as banner buttons were not clickable (CU-2chdca5)
|
136 |
* introduce predefined images for content blocker content types (CU-1y2d0mb)
|
137 |
* prepare new visual content blockers for lite version (CU-eb4h2q)
|
138 |
* remove React and React DOM local copies and rely on WordPress version (CU-awv3bv)
|
|
|
139 |
* store embed thumbnails in a more generic folder in wp-content/uploads (CU-eb4h2q)
|
140 |
* update embera (CU-eb4h2q)
|
141 |
|
142 |
|
143 |
### feat
|
144 |
|
145 |
+
* allow content blocker with preview images in list of consents (CU-eb4h2q)
|
146 |
* allow to create navgiation / menu links with one click instead of shortcodes (CU-we4qxh)
|
147 |
+
* allow to export / import visual content blocker settings (CU-eb4h2q)
|
148 |
* implement visual content blocker with visual audio player (CU-eb4h2q)
|
149 |
* introduce new visual settings in Content Blocker form (CU-eb4h2q)
|
150 |
|
155 |
* block 1.gravatar.com in Gravatar content blocker template (CU-2200n8k)
|
156 |
* cleanup code and adjust checklist for legal links (CU-we4qxh)
|
157 |
* compatibility of nav menus with WPML (CU-we4qxh)
|
158 |
+
* compatibility with customizer theme and disabling the footer link in the customizer (CU-244r9ag)
|
159 |
* compatibility with Gravity Geolocation and Google Maps (CU-23z12mr)
|
160 |
* compatibility with latest version of HappyForms and Google reCAPTCHA (CU-1znd8x2)
|
161 |
* compatibility with TranslatePress Automatic User Language Detection popup and blurred popup (CU-244r841)
|
183 |
* extract composer dev dependencies to their corresponding dev package (CU-22h231w)
|
184 |
* move more files to @devowl-wp/headless-content-unblocker
|
185 |
* move wordpress packages to isomorphic-packages (CU-22h231w)
|
|
|
186 |
* put composer license packages to @devowl-wp/composer-licenses (CU-22h231w)
|
187 |
* rename wordpress-packages and wordpress-plugins folder (CU-22h231w)
|
188 |
* revert empty commits for package folder rename (CU-22h231w)
|
189 |
* use phpunit-config and phpcs-config in all PHP packages (CU-22h231w)
|
190 |
|
191 |
|
|
|
|
|
|
|
|
|
|
|
192 |
|
193 |
|
194 |
|
227 |
|
228 |
### chore
|
229 |
|
230 |
+
* update TCF dependencies to latest version (CU-22bavpa)
|
|
|
|
|
|
|
231 |
* use wildcarded composer repository path (CU-1zvg32c)
|
232 |
|
233 |
|
235 |
|
236 |
* adjust US data processing consent setting description (CU-20cherc)
|
237 |
* bypass geo-restriction when using Lighthouse page speed score user agent (CU-20chp0h)
|
238 |
+
* change privacy settings modal did not show accepted visual content blockers (CU-1znufvk)
|
239 |
* compatibility with latest Oxygen page builder version (CU-20crzbn)
|
240 |
* compatibility with SiteGround Optimizer (CU-1znmzvx)
|
241 |
* correctly invalidate scanner query transients for post deletion and when invalidating preset cache (CU-20jc4q1)
|
|
|
242 |
* disable animations in Firefox mobile as it breaks the layout (CU-20jbyp5)
|
243 |
* fire OptInAll event after GTM/MTM datalayer pushes (CU-20162wr)
|
244 |
* notice while exporting consent by UUID (CU-2015tvy)
|
284 |
* block Instagram background images embedded by tagDiv (CU-1ydpf9k)
|
285 |
* content blocker rule to block OpenStreetMap embedded via "Ultimate Maps by Supsystic" (CU-1yyy4ae)
|
286 |
* provide ready promise for OptInAll event (CU-1wernq1)
|
|
|
|
|
287 |
|
288 |
|
289 |
### ci
|
316 |
* compatibility with wpDiscuz and Gravatar content blocking when sorting and posting comments (CU-1z4ghy7)
|
317 |
* compatibility with YouTube Embed Plus (CU-1z4gg3k)
|
318 |
* compatibilty with latest Divi video module and overlay (CU-1yyyc2d)
|
319 |
+
* correctly show blocked URL in scanner results for inline styles (CU-1ydq6ff)
|
320 |
* detect Google Analytics service template without inline script (CU-1yt64aa)
|
321 |
* do migrations also for prerelease versions (CU-1ydq6ff)
|
322 |
* do not anonymouize assets when anti-ad-block system is deactivated (CU-1ydtzkv)
|
387 |
|
388 |
* compatibility with Autoptimize when obkiller is active (CU-1weqdr2)
|
389 |
* compatibility with Divi contact forms and Google reCAPTCHA (CU-1wepwec)
|
390 |
+
* security issue (only as signed-in uses exploitable) as the reset-all action did not have a CSRF token (CU-1werk7m)
|
391 |
* tcf consent is correctly saved, but wrong at time of changing privacy preferences (CU-1w9587v)
|
392 |
|
393 |
|
437 |
|
438 |
* add more security hashes for disabled footer (CU-1znbady)
|
439 |
* add notice to mobile experience in free version as it is always responsive even in free (CU-2328pwb)
|
|
|
440 |
* update Facebook provider to Meta provider for all FB service templates (CU-23kf838)
|
441 |
* update upgrade notice to be more descriptive about update process (CU-23kf838)
|
442 |
|
482 |
### chore
|
483 |
|
484 |
* new developer filter RCB/IsPreventPreDecision (CU-1yk0nxf)
|
|
|
|
|
|
|
|
|
485 |
* suppress webpack warnings about @antv/g2 as it does not impact the frontend but disturbs CI and DX (CU-1z46xp8)
|
486 |
|
487 |
|
502 |
### fix
|
503 |
|
504 |
* allow to disable the powered by link via our license server (CU-1znbady)
|
|
|
505 |
* compatibility with a3 Lazy Load (CU-22gym0m)
|
506 |
* compatibility with WP Contact Slider (CU-1y7nw9p)
|
507 |
* compatibility with WP ImmoMakler Google Maps (CU-200ykt6)
|
508 |
* compatibility with YouTube + Vimeo + Premium Addons for Elementor (CU-1wecmxt)
|
509 |
* correctly break line for dotted groups in cookie banner on iOS safari (CU-nz2k7f)
|
510 |
* detect more ad blockers in admin page (CU-1znepfw)
|
511 |
+
* empty external URL shown when plugin disable WordPress Emojis is active (CU-1y7rr78)
|
512 |
* for older WP < 5.4 versions an encodedString was printed to website (CU-1yk0may)
|
513 |
* rule to block Google Maps JS API in content blocker for Levelup theme compatibility (CU-20100kp)
|
514 |
* use anchor-links for shortcodes instead of class so they can be used without shortcodes, too (CU-1z9yf6b)
|
578 |
|
579 |
### fix
|
580 |
|
581 |
+
* recommended templates are shown as non-existing if already existing in scanner tab (CU-1xpfu3p)
|
582 |
|
583 |
|
584 |
|
587 |
## 2.11.1 (2021-12-15)
|
588 |
|
589 |
|
|
|
|
|
|
|
|
|
|
|
590 |
### chore
|
591 |
|
592 |
+
* backwards compatible footer visibility in list of consents table (CU-1vhtwa2)
|
593 |
* cleanup code for scanner (CU-1v6cf91)
|
594 |
* description of the legitimate interest and essential cookies according to the TTDSG concretized (CU-1wejt3d)
|
595 |
* introduce new PHP api wp_rcb_consent_given (CU-1rgeyre)
|
596 |
* introduce plugin and design version for new consents (CU-1vhtwa2)
|
597 |
* introduce query argument validations for scanner (CU-1v6crwz)
|
598 |
* new developer filter RCB/Presets/Cookies/Recommended and RCB/Presets/Blocker/Recommended (CU-1xazcrh)
|
599 |
+
* remove non-saw-out descriptions from content blocker templates to save space in the content blocker (CU-1vhtwa2)
|
|
|
600 |
|
601 |
|
602 |
### docs
|
606 |
|
607 |
### fix
|
608 |
|
609 |
+
* allow to dismiss the request new consent notice (CU-1wtzm8t)
|
610 |
* apply preset middlewares in correct order (CU-1x5cj8w)
|
611 |
* compatibility with Ark theme and jQuery(window).load (CU-1wznta2)
|
612 |
* compatibility with fitVids when using together with a caching plugin (CU-1wm4u9v)
|
640 |
* content blocker last teaching should be above the link and styled as teaching (CU-1vhtwa2)
|
641 |
* customizer presets should respect hidden powered-by-link
|
642 |
* do not show footer for visual content blockers as not needed (CU-1vhtwa2)
|
643 |
+
* show USA data processing notice in visual content blocker only when needed (CU-1vhtwa2)
|
644 |
|
645 |
|
646 |
|
807 |
# 2.9.0 (2021-10-12)
|
808 |
|
809 |
|
|
|
|
|
|
|
|
|
|
|
810 |
### feat
|
811 |
|
812 |
* allow to filter by context, period and URL in list of consents (CU-ad0gf1)
|
853 |
* prepare for continuous localization with weblate (CU-f94bdr)
|
854 |
* remove language files from repository (CU-f94bdr)
|
855 |
* rename 'Statistic' to 'Statistics' (CU-12gwu5r)
|
|
|
856 |
|
857 |
|
858 |
### ci
|
984 |
|
985 |
* allow emojis in cookie banner and content blocker (CU-u3xv7j)
|
986 |
* banner not visible for older safari and internet explorer browser (CU-vhq9jn)
|
|
|
987 |
* compatibility with latest Avada Fusion Builder (live editor, CU-u9mb2h)
|
988 |
* consider non-WWW host as same host and do not detect as external URL (CU-u9m6rv)
|
989 |
* consider WWW subdomain also for link preconnects and dns-prefetch for the correct template (CU-u9m5e5)
|
1028 |
* www URLs of the same WordPress installations were considered as external URL in scanner (CU-6fcxcr)
|
1029 |
|
1030 |
|
|
|
|
|
|
|
|
|
|
|
1031 |
|
1032 |
|
1033 |
|
1036 |
|
1037 |
### fix
|
1038 |
|
|
|
1039 |
* loose sitemap index URLs (CU-rvwmnk)
|
1040 |
|
1041 |
|
1061 |
|
1062 |
* introduce new developer filter RCB/Blocker/IsBlocked/AllowMultiple and RCB/Blocker/ResolveBlockables (CU-7mvhak)
|
1063 |
* new developer filter RCB/Blocker/SelectorSyntax/IsBlocked
|
|
|
|
|
1064 |
* update texts for scanner tab (hint, CU-mtddjt)
|
1065 |
|
1066 |
|
1110 |
* do not add duplicate URLs to queue
|
1111 |
* do not enqueue real-queue on frontend for logged-in users
|
1112 |
* german support link (CU-rg8qrt)
|
|
|
1113 |
* include all revision data in single consent export
|
1114 |
* native integration for Analytify preset (disabled status, CU-n1f1xc)
|
1115 |
* native integration for GA Google Analytics preset (disabled status, CU-n1f1xc)
|
1118 |
* native integration for WooCommerce Google Analytics preset (disabled status, CU-n1f1xc)
|
1119 |
* preset WordPress Emojis should also block the DNS prefetch
|
1120 |
* remove extended presets from scan results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1121 |
* split Google Analytics into two content blockers UA and V4 (CU-nq8c3j)
|
1122 |
* tag to fully blocked associated with found count instead of distinct of sites count
|
1123 |
* update Facebook Post preset to be compatible with Facebook Video (CU-p1dxwp)
|
1153 |
|
1154 |
### chore
|
1155 |
|
|
|
1156 |
* update TCF dependencies to latest version (CU-pq8wt4)
|
1157 |
|
1158 |
|
1165 |
* put powered-by link in banner in same align as the legal links (CU-pn8pcz)
|
1166 |
* reload page after consent change (CU-pnbunr)
|
1167 |
* reset essential cookies correctly when custom choice is selected
|
|
|
1168 |
|
1169 |
|
1170 |
### refactor
|
1286 |
|
1287 |
### chore
|
1288 |
|
|
|
|
|
|
|
1289 |
* clearer differentiation of the plugin's benefits in wordpress.org description (CU-kbaequ)
|
1290 |
* translate new cookie and content blocker presets (CU-kt7e5r, CU-kk8gvu, CU-k759kz)
|
1291 |
* update Cloudflare service template (CU-ff6vzc)
|
1431 |
|
1432 |
### fix
|
1433 |
|
1434 |
+
* new cookie presets are not visible for Weglot users (CU-hk3jfn)
|
1435 |
|
1436 |
|
1437 |
|
1532 |
* make group description texts resettable (CU-gf3dew)
|
1533 |
* notices thrown when no vendor given (CU-ff0yvh)
|
1534 |
* output UUID on legal sites, too (CU-jha8xc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1535 |
* show vendor ID in list table of TCF vendors (CU-gf8h2g)
|
1536 |
* show vendor list link for TCF banner in footer (CU-g977x9)
|
1537 |
* the Lighthouse crawler is not a bot (CU-j575je)
|
README.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: cookie banner, cookie consent, cookie plugin, cookie scanner, gdpr, dsgvo,
|
|
4 |
Stable tag: trunk
|
5 |
Requires at least: 5.2
|
6 |
Requires PHP: 7.2.0
|
7 |
-
Tested up to:
|
8 |
License: GPLv3 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
|
10 |
|
@@ -18,6 +18,8 @@ Obtain GDPR and ePrivacy Directive compliant consents. **Find services, cookies
|
|
18 |
|
19 |
Real Cookie Banner is an cookie and consent management plugin. **Obtain consent to load services and set cookies for your visitors in accordance with the GDPR and ePrivacy Directive.** In addition, content blockers help you to be compliant even if your theme, plugin or content loads styles, scripts or iframes that would transfer personal data. **Start now with our guided-configuration and avoid legal risks!**
|
20 |
|
|
|
|
|
21 |
_Whether the use of the plugin leads to legally compliant data processing largely depends on whether the plugin is configured correctly for your use case. You yourself are responsible for a correct configuration._
|
22 |
|
23 |
=== Free Sandbox ===
|
@@ -28,7 +30,7 @@ You want to try Real Cookie Banner before installing? **Take a free sandbox** an
|
|
28 |
|
29 |
=== Features of the cookie plugin ===
|
30 |
|
31 |
-
**Consent Management:** You can use Real Cookie Banner to store all technical and legal information about services and cookies to obtain informed consent. You can use
|
32 |
|
33 |
**Content Blocker:** Themes, plugins and co. usually load scripts, styles and content that transfer personal data and set cookies before you have the consent of your visitors. You usually cannot control this by yourself. Content blockers make sure that these features are only executed after you have obtained consent.
|
34 |
|
@@ -44,7 +46,7 @@ You want a list of all features? _Get it by scrolling down!_
|
|
44 |
|
45 |
=== Supported Languages ===
|
46 |
|
47 |
-
**Real Cookie Banner is available in English and German (informal and formal).** More languages will be added soon! In the meantime, you can also customize and translate all the texts yourself.
|
48 |
|
49 |
=== All Features of Real Cookie Banner ===
|
50 |
|
@@ -62,11 +64,11 @@ _Some of the features listed below are only available in the [PRO version of Rea
|
|
62 |
**Consent Management** _// we take care of compliant consents_
|
63 |
|
64 |
* **Cookies and processing of personal data:** We obtain consents for you in accordance with the ePrivacy Directive and GDPR. For more than just cookies!
|
65 |
-
* **
|
66 |
* **Individual groups for services:** Make it easy for your visitors to opt-in by grouping services together. Automatically suggested groups for services with templates.
|
67 |
* **Technical specifications of HTTP cookies and cookie-like information:** You can store all necessary information about HTTP cookies, Local Storage, Session Storage, Flash Local Shared Object and IndexedDB.
|
68 |
* **Execution of opt-in and opt-out scripts:** After the consent or its revocation can be executed per service HTML/JavaScript code.
|
69 |
-
* **
|
70 |
* **Youth protection according to GDPR:** We take care that also minors can give consents on your website according to Art. 8 GDPR. Without data protection violation!
|
71 |
* **Consent for data processing in the USA*:** The USA is considered as a country with an insufficient level of data protection in the EU. We obtain consents so that you can still use US-services like Google Analytics.
|
72 |
* **Hide cookie banner legally compliant:** Imprint and privacy policy must be accessible without cookie banner. On other pages, e.g. landing pages, conversation rates increase*. Works with us quite simply!
|
@@ -85,7 +87,10 @@ _Some of the features listed below are only available in the [PRO version of Rea
|
|
85 |
* **Block already integrated link, script and iframe HTML tags:** Already included elements by your theme or plugins can be blocked based on the HTML tag. Works for every HTML element on initial load of your website!
|
86 |
* **URL blocking:** Elements that may only be loaded after consent can be blocked based on the URL. Works also for inline scripts and retina images.
|
87 |
* **Custom element blocking:** You can block elements based on custom defined rule e.g. via their CSS class. With an easy to understand and flexible syntax. Not only for software developers.
|
|
|
88 |
* **Inline style splitting:** Some page builders download files in inline styles for which you need consent. We split styles so that your website loads correctly while listening for consents.
|
|
|
|
|
89 |
* **Automatic video playback after consent:** If your visitor allows the loading of an external video only via a content blocker, he must start the video manually afterwards. We save him the click and start YouTube, Vimeo and more videos automatically.
|
90 |
* **Content Blocker connected with services:** Each content blocker is associated with one or more services. With it, content is automatically unblocked when consent is given in the cookie banner.
|
91 |
|
@@ -125,7 +130,7 @@ _Some of the features listed below are only available in the [PRO version of Rea
|
|
125 |
|
126 |
We have verified that major Google and Facebook services, Hotjar, YouTube, Vimeo as well as popular WordPress plugins like Jetpack, Contact Form 7 or WooCommerce and many more are compatible.
|
127 |
|
128 |
-
**The PRO Version of Real Cookie Banner comes with
|
129 |
|
130 |
=== Full-featured cookie plugin and consent management for WordPress ===
|
131 |
|
@@ -191,16 +196,17 @@ Our PRO version offers even more useful features and many cookie and content blo
|
|
191 |
We offer a [knowledge base and fast support](https://devowl.io/support/) on our website. **Please feel free to open a support ticket if you have questions, issues or feedback about the plugin.** We love to make Real Cookie Banner better!
|
192 |
|
193 |
= Does Real Cookie Banner find all cookies on my website automatically? =
|
|
|
|
|
|
|
194 |
A cookie scanner could, if at all, only find cookies, but not legally assess the processing of personal data. Moreover, it is highly complex to find all cookies and most so-called cookie scanners do not find all cookies. We have explained [in detail why this is so in our knowledge base](https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/
|
195 |
).
|
196 |
|
197 |
-
Therefore, Real Cookie Banner does not have a cookie scanner. However, 100+ service templates and 60+ content blocker templates will help you set up the cookie banner easily.
|
198 |
-
|
199 |
= Is Real Cookie Banner free? =
|
200 |
**Yes, all core features of Real Cookie Banner are free** and you are able to create unlimited cookies and content blocker. But most of the cookie and content blocker templates that will save you many hours of research work are included only in the PRO version. You want more? [**Learn more about the PRO version.**](https://devowl.io/go/real-cookie-banner?source=wordpress-org-description)
|
201 |
|
202 |
= What is the difference between Real Cookie Banner and Real Cookie Banner PRO? =
|
203 |
-
The PRO Version offers you many additional features like Google Tag Manager and Matomo Tag Manager Support, consent for data processing in the USA after the end of the Privacy Shield, Consent Forwarding or
|
204 |
|
205 |
== Screenshots ==
|
206 |
|
@@ -213,7 +219,7 @@ The PRO Version offers you many additional features like Google Tag Manager and
|
|
213 |
|
214 |
== Changelog ==
|
215 |
|
216 |
-
You can view the changelog and release notes [here](https://
|
217 |
|
218 |
== Upgrade Notice ==
|
219 |
|
4 |
Stable tag: trunk
|
5 |
Requires at least: 5.2
|
6 |
Requires PHP: 7.2.0
|
7 |
+
Tested up to: 6.0
|
8 |
License: GPLv3 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
|
10 |
|
18 |
|
19 |
Real Cookie Banner is an cookie and consent management plugin. **Obtain consent to load services and set cookies for your visitors in accordance with the GDPR and ePrivacy Directive.** In addition, content blockers help you to be compliant even if your theme, plugin or content loads styles, scripts or iframes that would transfer personal data. **Start now with our guided-configuration and avoid legal risks!**
|
20 |
|
21 |
+
➤ **Scan your website** and discover services that require consent!
|
22 |
+
|
23 |
_Whether the use of the plugin leads to legally compliant data processing largely depends on whether the plugin is configured correctly for your use case. You yourself are responsible for a correct configuration._
|
24 |
|
25 |
=== Free Sandbox ===
|
30 |
|
31 |
=== Features of the cookie plugin ===
|
32 |
|
33 |
+
**Consent Management:** You can use Real Cookie Banner to store all technical and legal information about services and cookies to obtain informed consent. You can use 150+ service templates and 120+ content blocker templates to quickly and securely provide all the information you need.
|
34 |
|
35 |
**Content Blocker:** Themes, plugins and co. usually load scripts, styles and content that transfer personal data and set cookies before you have the consent of your visitors. You usually cannot control this by yourself. Content blockers make sure that these features are only executed after you have obtained consent.
|
36 |
|
46 |
|
47 |
=== Supported Languages ===
|
48 |
|
49 |
+
**Real Cookie Banner is available in English and German (informal and formal).** More languages will be added soon! In the meantime, you can also customize and translate all the texts yourself, if your website is in Spanish, French, Italian, Polish, Dutch, Czech, Romanian, Belgian, Danish, Swedish, Finnish, Greek, Portuguese, Turkish and Russian.
|
50 |
|
51 |
=== All Features of Real Cookie Banner ===
|
52 |
|
64 |
**Consent Management** _// we take care of compliant consents_
|
65 |
|
66 |
* **Cookies and processing of personal data:** We obtain consents for you in accordance with the ePrivacy Directive and GDPR. For more than just cookies!
|
67 |
+
* **150+ service and 120+ content blocker templates*:** We’ve already collected all the necessary technical and legal stuff for 150+ popular services, so you can avoid the hassle.
|
68 |
* **Individual groups for services:** Make it easy for your visitors to opt-in by grouping services together. Automatically suggested groups for services with templates.
|
69 |
* **Technical specifications of HTTP cookies and cookie-like information:** You can store all necessary information about HTTP cookies, Local Storage, Session Storage, Flash Local Shared Object and IndexedDB.
|
70 |
* **Execution of opt-in and opt-out scripts:** After the consent or its revocation can be executed per service HTML/JavaScript code.
|
71 |
+
* **Legal links:** View history of consent and change or revoke consent. You can (and must legally) offer this with simple WordPress menu items or shortcodes anywhere on your website.
|
72 |
* **Youth protection according to GDPR:** We take care that also minors can give consents on your website according to Art. 8 GDPR. Without data protection violation!
|
73 |
* **Consent for data processing in the USA*:** The USA is considered as a country with an insufficient level of data protection in the EU. We obtain consents so that you can still use US-services like Google Analytics.
|
74 |
* **Hide cookie banner legally compliant:** Imprint and privacy policy must be accessible without cookie banner. On other pages, e.g. landing pages, conversation rates increase*. Works with us quite simply!
|
87 |
* **Block already integrated link, script and iframe HTML tags:** Already included elements by your theme or plugins can be blocked based on the HTML tag. Works for every HTML element on initial load of your website!
|
88 |
* **URL blocking:** Elements that may only be loaded after consent can be blocked based on the URL. Works also for inline scripts and retina images.
|
89 |
* **Custom element blocking:** You can block elements based on custom defined rule e.g. via their CSS class. With an easy to understand and flexible syntax. Not only for software developers.
|
90 |
+
* **@font-face fonts blocking**: Inline loaded fonts from external servers can be blocked fine granular. You can be privacy-compliant even if Google Fonts can not be disabled in your theme!
|
91 |
* **Inline style splitting:** Some page builders download files in inline styles for which you need consent. We split styles so that your website loads correctly while listening for consents.
|
92 |
+
* **Privacy-compliant lazy loading**: Embeds are post-loaded after the consent check depending on the viewport of your website visitor, which makes your initial page load faster.
|
93 |
+
* **Visual Content Blockers**: They ask for consent from visitors if they have declined services in the cookie banner. Replace e.g. YouTube videos with similar-looking privacy-compliant imitations*.
|
94 |
* **Automatic video playback after consent:** If your visitor allows the loading of an external video only via a content blocker, he must start the video manually afterwards. We save him the click and start YouTube, Vimeo and more videos automatically.
|
95 |
* **Content Blocker connected with services:** Each content blocker is associated with one or more services. With it, content is automatically unblocked when consent is given in the cookie banner.
|
96 |
|
130 |
|
131 |
We have verified that major Google and Facebook services, Hotjar, YouTube, Vimeo as well as popular WordPress plugins like Jetpack, Contact Form 7 or WooCommerce and many more are compatible.
|
132 |
|
133 |
+
**The PRO Version of Real Cookie Banner comes with 150+ service templates and 120+ content blocker templates.** These templates save you a lot of time by giving you all the relevant legal and technical information for a service to use it in accordance with the ePrivacy Directive and GDPR. Check out the [complete list of all services with templates](https://devowl.io/go/real-cookie-banner?source=wordpress-org-description#templates) on our website.
|
134 |
|
135 |
=== Full-featured cookie plugin and consent management for WordPress ===
|
136 |
|
196 |
We offer a [knowledge base and fast support](https://devowl.io/support/) on our website. **Please feel free to open a support ticket if you have questions, issues or feedback about the plugin.** We love to make Real Cookie Banner better!
|
197 |
|
198 |
= Does Real Cookie Banner find all cookies on my website automatically? =
|
199 |
+
Yes, Real Cookie Banner has a scanner that checks your website for used services. It recommends you from 150+ service templates and 120+ content blocker templates suitable configuration. It will also alert you to additional services on your website that may require your consent. For more information on how our service scanner works, [see our knowledge base](https://devowl.io/knowledge-base/real-cookie-banner-service-scanner/).
|
200 |
+
|
201 |
+
However, the service scanner is not a cookie scanner.
|
202 |
A cookie scanner could, if at all, only find cookies, but not legally assess the processing of personal data. Moreover, it is highly complex to find all cookies and most so-called cookie scanners do not find all cookies. We have explained [in detail why this is so in our knowledge base](https://devowl.io/knowledge-base/real-cookie-banner-cookie-scanner-finds-cookies-automatically/
|
203 |
).
|
204 |
|
|
|
|
|
205 |
= Is Real Cookie Banner free? =
|
206 |
**Yes, all core features of Real Cookie Banner are free** and you are able to create unlimited cookies and content blocker. But most of the cookie and content blocker templates that will save you many hours of research work are included only in the PRO version. You want more? [**Learn more about the PRO version.**](https://devowl.io/go/real-cookie-banner?source=wordpress-org-description)
|
207 |
|
208 |
= What is the difference between Real Cookie Banner and Real Cookie Banner PRO? =
|
209 |
+
The PRO Version offers you many additional features like Google Tag Manager and Matomo Tag Manager Support, TCF support, consent for data processing in the USA after the end of the Privacy Shield, Consent Forwarding or 150+ service templates and 120+ content blocker templates. [**Learn more about the PRO version.**](https://devowl.io/go/real-cookie-banner?source=wordpress-org-description)
|
210 |
|
211 |
== Screenshots ==
|
212 |
|
219 |
|
220 |
== Changelog ==
|
221 |
|
222 |
+
You can view the changelog and release notes [here](https://devowl.io/wordpress-real-cookie-banner/changelog/).
|
223 |
|
224 |
== Upgrade Notice ==
|
225 |
|
inc/Assets.php
CHANGED
@@ -397,6 +397,7 @@ class Assets {
|
|
397 |
'isLicensed' => $isLicensed,
|
398 |
'isDevLicense' => $isDevLicense,
|
399 |
'multilingualSkipHTMLForTag' => $core->getCompLanguage()->getSkipHTMLForTag(),
|
|
|
400 |
'defaultLanguage' => $core->getCompLanguage()->getDefaultLanguage(),
|
401 |
'currentLanguage' => $core->getCompLanguage()->getCurrentLanguage(),
|
402 |
'context' => \DevOwl\RealCookieBanner\settings\Revision::getInstance()->getContextVariablesString(),
|
@@ -409,6 +410,7 @@ class Assets {
|
|
409 |
'isRefreshSiteAfterConsent' => $generalSettings->isRefreshSiteAfterConsent(),
|
410 |
'isEPrivacyUSA' => $consentSettings->isEPrivacyUSAEnabled(),
|
411 |
'isAgeNotice' => $consentSettings->isAgeNoticeEnabled(),
|
|
|
412 |
'setCookiesViaManager' => $generalSettings->getSetCookiesViaManager(),
|
413 |
'essentialGroup' => \DevOwl\RealCookieBanner\settings\CookieGroup::getInstance()->getEssentialGroup()
|
414 |
->slug,
|
@@ -444,6 +446,7 @@ class Assets {
|
|
444 |
'mo' => __('month(s)', RCB_TD),
|
445 |
'y' => __('year(s)', RCB_TD)
|
446 |
],
|
|
|
447 |
'type' => __('Type', RCB_TD),
|
448 |
'purpose' => __('Purpose', RCB_TD),
|
449 |
'headerTitlePrivacyPolicyHistory' => __('History of your privacy settings', RCB_TD),
|
@@ -464,7 +467,9 @@ class Assets {
|
|
464 |
'unknown' => __('Unknown', RCB_TD),
|
465 |
'none' => __('None', RCB_TD),
|
466 |
'noLicense' => __('No license activated - not for production use!', RCB_TD),
|
467 |
-
'devLicense' => __('Product license not for production use!', RCB_TD)
|
|
|
|
|
468 |
]),
|
469 |
'pageRequestUuid4' => $core->getPageRequestUuid4(),
|
470 |
'pageByIdUrl' => add_query_arg('page_id', '', home_url()),
|
397 |
'isLicensed' => $isLicensed,
|
398 |
'isDevLicense' => $isDevLicense,
|
399 |
'multilingualSkipHTMLForTag' => $core->getCompLanguage()->getSkipHTMLForTag(),
|
400 |
+
'isCurrentlyInTranslationEditorPreview' => $core->getCompLanguage()->isCurrentlyInEditorPreview(),
|
401 |
'defaultLanguage' => $core->getCompLanguage()->getDefaultLanguage(),
|
402 |
'currentLanguage' => $core->getCompLanguage()->getCurrentLanguage(),
|
403 |
'context' => \DevOwl\RealCookieBanner\settings\Revision::getInstance()->getContextVariablesString(),
|
410 |
'isRefreshSiteAfterConsent' => $generalSettings->isRefreshSiteAfterConsent(),
|
411 |
'isEPrivacyUSA' => $consentSettings->isEPrivacyUSAEnabled(),
|
412 |
'isAgeNotice' => $consentSettings->isAgeNoticeEnabled(),
|
413 |
+
'isListServicesNotice' => $consentSettings->isListServicesNoticeEnabled(),
|
414 |
'setCookiesViaManager' => $generalSettings->getSetCookiesViaManager(),
|
415 |
'essentialGroup' => \DevOwl\RealCookieBanner\settings\CookieGroup::getInstance()->getEssentialGroup()
|
416 |
->slug,
|
446 |
'mo' => __('month(s)', RCB_TD),
|
447 |
'y' => __('year(s)', RCB_TD)
|
448 |
],
|
449 |
+
'noExpiration' => __('No expiration', RCB_TD),
|
450 |
'type' => __('Type', RCB_TD),
|
451 |
'purpose' => __('Purpose', RCB_TD),
|
452 |
'headerTitlePrivacyPolicyHistory' => __('History of your privacy settings', RCB_TD),
|
467 |
'unknown' => __('Unknown', RCB_TD),
|
468 |
'none' => __('None', RCB_TD),
|
469 |
'noLicense' => __('No license activated - not for production use!', RCB_TD),
|
470 |
+
'devLicense' => __('Product license not for production use!', RCB_TD),
|
471 |
+
// translators:
|
472 |
+
'andSeparator' => __(' and ', RCB_TD)
|
473 |
]),
|
474 |
'pageRequestUuid4' => $core->getPageRequestUuid4(),
|
475 |
'pageByIdUrl' => add_query_arg('page_id', '', home_url()),
|
inc/Core.php
CHANGED
@@ -56,10 +56,13 @@ use DevOwl\RealCookieBanner\view\checklist\ActivateBanner;
|
|
56 |
use DevOwl\RealCookieBanner\view\checklist\AddCookie;
|
57 |
use DevOwl\RealCookieBanner\view\checklist\SaveSettings;
|
58 |
use DevOwl\RealCookieBanner\view\customize\banner\BasicLayout;
|
|
|
|
|
59 |
use DevOwl\RealCookieBanner\view\customize\banner\Texts;
|
60 |
use DevOwl\RealCookieBanner\view\customize\banner\Mobile;
|
|
|
61 |
use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
|
62 |
-
use DevOwl\RealCookieBanner\view\shortcode\
|
63 |
use DevOwl\RealCookieBanner\view\Scanner as ViewScanner;
|
64 |
use DevOwl\RealCookieBanner\view\navmenu\NavMenuLinks;
|
65 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\RealUtils\Core as RealUtilsCore;
|
@@ -290,6 +293,22 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
290 |
\DevOwl\RealCookieBanner\scanner\Persist::class,
|
291 |
'new_version_installation_after_2_15_0'
|
292 |
]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
add_filter('RCB/Blocker/Enabled', [$this->getScanner(), 'force_blocker_enabled']);
|
294 |
add_filter('customize_save_response', [$this, 'customize_save_response'], 10, 1);
|
295 |
add_filter('option_' . \DevOwl\RealCookieBanner\settings\Consent::SETTING_COOKIE_DURATION, [
|
@@ -347,8 +366,12 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
347 |
\DevOwl\RealCookieBanner\view\shortcode\LinkShortcode::class,
|
348 |
'render'
|
349 |
]);
|
350 |
-
add_shortcode(\DevOwl\RealCookieBanner\view\shortcode\
|
351 |
-
\DevOwl\RealCookieBanner\view\shortcode\
|
|
|
|
|
|
|
|
|
352 |
'render'
|
353 |
]);
|
354 |
$this->adInitiator = new \DevOwl\RealCookieBanner\AdInitiator();
|
@@ -495,6 +518,7 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
495 |
add_action('admin_notices', [new \DevOwl\RealCookieBanner\presets\UpdateNotice(), 'admin_notices']);
|
496 |
add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_preinstalled_environment']);
|
497 |
add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_ad_blocker']);
|
|
|
498 |
add_action('posts_where', [\DevOwl\RealCookieBanner\Utils::class, 'posts_where_find_in_set'], 10, 2);
|
499 |
add_action('post_updated', [$scannerOnChangeDetection, 'post_updated'], 10, 3);
|
500 |
add_action('save_post', [$scannerOnChangeDetection, 'save_post'], 10, 2);
|
@@ -505,6 +529,26 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
505 |
add_action('wp_update_nav_menu_item', [$navMenuLinks, 'wp_update_nav_menu_item'], 10, 2);
|
506 |
add_action('admin_head-nav-menus.php', [$navMenuLinks, 'admin_head']);
|
507 |
add_action('customize_controls_head', [$navMenuLinks, 'customize_controls_head']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
add_filter('nav_menu_link_attributes', [$navMenuLinks, 'nav_menu_link_attributes'], 10, 2);
|
509 |
add_filter('wp_setup_nav_menu_item', [$navMenuLinks, 'wp_setup_nav_menu_item']);
|
510 |
add_filter('customize_nav_menu_available_item_types', [
|
@@ -555,6 +599,12 @@ class Core extends \DevOwl\RealCookieBanner\base\Core implements
|
|
555 |
10,
|
556 |
2
|
557 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
558 |
// Multilingual
|
559 |
add_filter('rest_' . \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME . '_query', [
|
560 |
\DevOwl\RealCookieBanner\comp\language\Hooks::getInstance(),
|
56 |
use DevOwl\RealCookieBanner\view\checklist\AddCookie;
|
57 |
use DevOwl\RealCookieBanner\view\checklist\SaveSettings;
|
58 |
use DevOwl\RealCookieBanner\view\customize\banner\BasicLayout;
|
59 |
+
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
60 |
+
use DevOwl\RealCookieBanner\view\customize\banner\Decision;
|
61 |
use DevOwl\RealCookieBanner\view\customize\banner\Texts;
|
62 |
use DevOwl\RealCookieBanner\view\customize\banner\Mobile;
|
63 |
+
use DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton;
|
64 |
use DevOwl\RealCookieBanner\view\shortcode\LinkShortcode;
|
65 |
+
use DevOwl\RealCookieBanner\view\shortcode\HistoryUuidsShortcode;
|
66 |
use DevOwl\RealCookieBanner\view\Scanner as ViewScanner;
|
67 |
use DevOwl\RealCookieBanner\view\navmenu\NavMenuLinks;
|
68 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\RealUtils\Core as RealUtilsCore;
|
293 |
\DevOwl\RealCookieBanner\scanner\Persist::class,
|
294 |
'new_version_installation_after_2_15_0'
|
295 |
]);
|
296 |
+
add_action('DevOwl/Utils/NewVersionInstallation/' . RCB_SLUG, [
|
297 |
+
\DevOwl\RealCookieBanner\view\customize\banner\Decision::class,
|
298 |
+
'new_version_installation_after_2_17_3'
|
299 |
+
]);
|
300 |
+
add_action('DevOwl/Utils/NewVersionInstallation/' . RCB_SLUG, [
|
301 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::class,
|
302 |
+
'new_version_installation_after_2_17_3'
|
303 |
+
]);
|
304 |
+
add_action('DevOwl/Utils/NewVersionInstallation/' . RCB_SLUG, [
|
305 |
+
\DevOwl\RealCookieBanner\view\customize\banner\individual\SaveButton::class,
|
306 |
+
'new_version_installation_after_2_17_3'
|
307 |
+
]);
|
308 |
+
add_action('DevOwl/Utils/NewVersionInstallation/' . RCB_SLUG, [
|
309 |
+
\DevOwl\RealCookieBanner\settings\Consent::class,
|
310 |
+
'new_version_installation_after_2_17_3'
|
311 |
+
]);
|
312 |
add_filter('RCB/Blocker/Enabled', [$this->getScanner(), 'force_blocker_enabled']);
|
313 |
add_filter('customize_save_response', [$this, 'customize_save_response'], 10, 1);
|
314 |
add_filter('option_' . \DevOwl\RealCookieBanner\settings\Consent::SETTING_COOKIE_DURATION, [
|
366 |
\DevOwl\RealCookieBanner\view\shortcode\LinkShortcode::class,
|
367 |
'render'
|
368 |
]);
|
369 |
+
add_shortcode(\DevOwl\RealCookieBanner\view\shortcode\HistoryUuidsShortcode::TAG, [
|
370 |
+
\DevOwl\RealCookieBanner\view\shortcode\HistoryUuidsShortcode::class,
|
371 |
+
'render'
|
372 |
+
]);
|
373 |
+
add_shortcode(\DevOwl\RealCookieBanner\view\shortcode\HistoryUuidsShortcode::DEPRECATED_TAG, [
|
374 |
+
\DevOwl\RealCookieBanner\view\shortcode\HistoryUuidsShortcode::class,
|
375 |
'render'
|
376 |
]);
|
377 |
$this->adInitiator = new \DevOwl\RealCookieBanner\AdInitiator();
|
518 |
add_action('admin_notices', [new \DevOwl\RealCookieBanner\presets\UpdateNotice(), 'admin_notices']);
|
519 |
add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_preinstalled_environment']);
|
520 |
add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_ad_blocker']);
|
521 |
+
add_action('admin_notices', [$this->getConfigPage(), 'admin_notices_services_with_empty_privacy_policy']);
|
522 |
add_action('posts_where', [\DevOwl\RealCookieBanner\Utils::class, 'posts_where_find_in_set'], 10, 2);
|
523 |
add_action('post_updated', [$scannerOnChangeDetection, 'post_updated'], 10, 3);
|
524 |
add_action('save_post', [$scannerOnChangeDetection, 'save_post'], 10, 2);
|
529 |
add_action('wp_update_nav_menu_item', [$navMenuLinks, 'wp_update_nav_menu_item'], 10, 2);
|
530 |
add_action('admin_head-nav-menus.php', [$navMenuLinks, 'admin_head']);
|
531 |
add_action('customize_controls_head', [$navMenuLinks, 'customize_controls_head']);
|
532 |
+
add_action('delete_post', [
|
533 |
+
\DevOwl\RealCookieBanner\settings\General::getInstance(),
|
534 |
+
'delete_post_imprint_privacy_policy'
|
535 |
+
]);
|
536 |
+
add_action('wp_trash_post', [
|
537 |
+
\DevOwl\RealCookieBanner\settings\General::getInstance(),
|
538 |
+
'delete_post_imprint_privacy_policy'
|
539 |
+
]);
|
540 |
+
add_action(
|
541 |
+
'update_option_wp_page_for_privacy_policy',
|
542 |
+
[\DevOwl\RealCookieBanner\settings\General::getInstance(), 'update_option_wp_page_for_privacy_policy'],
|
543 |
+
10,
|
544 |
+
2
|
545 |
+
);
|
546 |
+
add_action(
|
547 |
+
'update_option_' . \DevOwl\RealCookieBanner\settings\General::SETTING_PRIVACY_POLICY_ID,
|
548 |
+
[\DevOwl\RealCookieBanner\settings\General::getInstance(), 'update_option_privacy_policy'],
|
549 |
+
10,
|
550 |
+
2
|
551 |
+
);
|
552 |
add_filter('nav_menu_link_attributes', [$navMenuLinks, 'nav_menu_link_attributes'], 10, 2);
|
553 |
add_filter('wp_setup_nav_menu_item', [$navMenuLinks, 'wp_setup_nav_menu_item']);
|
554 |
add_filter('customize_nav_menu_available_item_types', [
|
599 |
10,
|
600 |
2
|
601 |
);
|
602 |
+
add_filter(
|
603 |
+
'RCB/Revision/BackwardsCompatibility',
|
604 |
+
[\DevOwl\RealCookieBanner\view\customize\banner\Decision::class, 'applyBackwardsCompatibility'],
|
605 |
+
10,
|
606 |
+
2
|
607 |
+
);
|
608 |
// Multilingual
|
609 |
add_filter('rest_' . \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME . '_query', [
|
610 |
\DevOwl\RealCookieBanner\comp\language\Hooks::getInstance(),
|
inc/MyConsent.php
CHANGED
@@ -71,14 +71,18 @@ class MyConsent {
|
|
71 |
return $consent;
|
72 |
}
|
73 |
$revision = \DevOwl\RealCookieBanner\settings\Revision::getInstance();
|
74 |
-
$currentHash = $revision->getCurrentHash();
|
75 |
-
$revisionHash = $revision->create(\true, \false)['hash'];
|
76 |
-
$customizeHash = $revision->createIndependent(\true)['hash'];
|
77 |
// Create the cookie on client-side with the latest requested consent hash instead of current real-time hash
|
78 |
// Why? So, the frontend can safely compare latest requested hash to user-consent hash
|
79 |
// What is true, cookie hash or database? I can promise, the database shows the consent hash!
|
80 |
-
$
|
|
|
|
|
|
|
|
|
81 |
$consent_hash = \md5(\json_encode($consent));
|
|
|
|
|
|
|
82 |
$ips = \DevOwl\RealCookieBanner\IpHandler::getInstance()->persistIp();
|
83 |
$table_name = $this->getTableName(\DevOwl\RealCookieBanner\UserConsent::TABLE_NAME);
|
84 |
$table_name_blocker_thumbnails = $this->getTableName(
|
@@ -114,10 +118,10 @@ class MyConsent {
|
|
114 |
$ips['ipv6'] === null ? 'NULL' : $ips['ipv6'],
|
115 |
$ips['ipv4_hash'] === null ? 'NULL' : $ips['ipv4_hash'],
|
116 |
$ips['ipv6_hash'] === null ? 'NULL' : $ips['ipv6_hash'],
|
117 |
-
$
|
118 |
$revisionHash,
|
119 |
-
$
|
120 |
-
\json_encode($
|
121 |
\json_encode($consent),
|
122 |
$consent_hash,
|
123 |
$blocker > 0 ? $blocker : 'NULL',
|
@@ -137,16 +141,22 @@ class MyConsent {
|
|
137 |
$forwardedBlocker,
|
138 |
// %s used for 'NULL' transformation
|
139 |
$tcfString === null ? 'NULL' : $tcfString,
|
140 |
-
|
141 |
)
|
142 |
)
|
143 |
);
|
144 |
$insertId = $wpdb->insert_id;
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
// Why $currentHash? See above
|
147 |
// Persist stats (only when not forwarded)
|
148 |
if ($forwarded === 0) {
|
149 |
-
\DevOwl\RealCookieBanner\Stats::getInstance()->persist($consent, $
|
150 |
}
|
151 |
$result = \array_merge($this->getCurrentUser(\true), ['updated' => \true, 'consent_id' => $insertId]);
|
152 |
/**
|
@@ -159,49 +169,20 @@ class MyConsent {
|
|
159 |
do_action('RCB/Consent/Created', $result, $args);
|
160 |
return $result;
|
161 |
}
|
162 |
-
/**
|
163 |
-
* Ensures an user is connected with the current PHP session. In detail,
|
164 |
-
* it does the following:
|
165 |
-
*
|
166 |
-
* 1. If the user cookie is set, it gets the uuid and revision hash
|
167 |
-
* 2. If there is no user cookie, it will generate a uuid with current
|
168 |
-
* consent hash + set it as cookie
|
169 |
-
*
|
170 |
-
* @param string $revision Hash
|
171 |
-
* @param string $useUuid Force to use an existing UUID (useful for forwarded consents)
|
172 |
-
* @return array 'uuid', 'created', 'cookie_revision', 'consent_revision', 'decision', 'decision_hash'
|
173 |
-
*/
|
174 |
-
protected function ensureUser($revision, $useUuid = null) {
|
175 |
-
$cookieUser = $this->getCurrentUser();
|
176 |
-
// There isn't any consent from an user, create one
|
177 |
-
if ($cookieUser === \false) {
|
178 |
-
$uuid = empty($useUuid) ? $this->createUuid() : $useUuid;
|
179 |
-
$this->setCookie($uuid, $revision, []);
|
180 |
-
return [
|
181 |
-
'uuid' => $uuid,
|
182 |
-
'created' => mysql2date('c', current_time('mysql'), \false),
|
183 |
-
'cookie_revision' => $revision,
|
184 |
-
'consent_revision' => \false,
|
185 |
-
'decision' => \false,
|
186 |
-
'decision_hash' => \false
|
187 |
-
];
|
188 |
-
}
|
189 |
-
return $cookieUser;
|
190 |
-
}
|
191 |
/**
|
192 |
* Set or update the existing cookie to the latest revision. It also respect the fact, that
|
193 |
* cross-site cookies needs to be set with `SameSite=None` attribute.
|
194 |
*
|
195 |
-
* @param string $
|
196 |
* @param string $revision
|
197 |
* @param array $consent
|
198 |
* @see https://developer.wordpress.org/reference/functions/wp_set_auth_cookie/
|
199 |
* @see https://stackoverflow.com/a/46971326/5506547
|
200 |
*/
|
201 |
-
public function setCookie($
|
202 |
$cookieName = $this->getCookieName();
|
203 |
-
$doDelete = $
|
204 |
-
$cookieValue = $doDelete ? '' :
|
205 |
$expire = $doDelete
|
206 |
? -1
|
207 |
: \time() +
|
@@ -228,10 +209,11 @@ class MyConsent {
|
|
228 |
* @param {boolean} $result Got the cookie successfully created?
|
229 |
* @param {boolean} $revoke `true` if the cookie should be deleted
|
230 |
* @param {string} $uuid
|
|
|
231 |
* @param {array}
|
232 |
* @since 2.0.0
|
233 |
*/
|
234 |
-
do_action('RCB/Consent/SetCookie', $cookieName, $cookieValue, $result, $doDelete, $
|
235 |
}
|
236 |
return $result;
|
237 |
}
|
@@ -240,7 +222,7 @@ class MyConsent {
|
|
240 |
* user id and the accepted revision hash. This function is also ported to JS via `getUserDecision.tsx`.
|
241 |
*
|
242 |
* @param boolean $force
|
243 |
-
* @return array 'uuid', 'created', 'cookie_revision', 'consent_revision', 'decision', 'decision_in_cookie', 'decision_hash'
|
244 |
*/
|
245 |
public function getCurrentUser($force = \false) {
|
246 |
if ($this->cacheCurrentUser !== null && !$force) {
|
@@ -264,7 +246,7 @@ class MyConsent {
|
|
264 |
* user id and the accepted revision hash.
|
265 |
*
|
266 |
* @param string $value
|
267 |
-
* @return array 'uuid', 'created', 'cookie_revision', 'consent_revision', 'decision', 'decision_in_cookie', 'decision_hash'
|
268 |
*/
|
269 |
protected function parseCookieValue($value) {
|
270 |
global $wpdb;
|
@@ -280,7 +262,8 @@ class MyConsent {
|
|
280 |
}
|
281 |
$cookieDecision = \json_decode($result[2], ARRAY_A);
|
282 |
// Parse out data (${uuid}-${revision})
|
283 |
-
$
|
|
|
284 |
$revision = $result[1];
|
285 |
// Check if any consent was ever set by this user
|
286 |
// phpcs:disable WordPress.DB.PreparedSQL
|
@@ -299,6 +282,7 @@ class MyConsent {
|
|
299 |
}
|
300 |
return [
|
301 |
'uuid' => $uuid,
|
|
|
302 |
'created' => mysql2date('c', $result['created'], \false),
|
303 |
'cookie_revision' => $revision,
|
304 |
'consent_revision' => $result['revision'],
|
@@ -308,21 +292,6 @@ class MyConsent {
|
|
308 |
'decision_hash' => $result['decision_hash']
|
309 |
];
|
310 |
}
|
311 |
-
/**
|
312 |
-
* Create an unique id for the current user.
|
313 |
-
*/
|
314 |
-
protected function createUuid() {
|
315 |
-
// Read from existing cookies (context-depending)
|
316 |
-
foreach ($_COOKIE as $key => $value) {
|
317 |
-
if (\DevOwl\RealCookieBanner\Utils::startsWith($key, self::COOKIE_NAME_USER_PREFIX)) {
|
318 |
-
$parsed = $this->parseCookieValue($value);
|
319 |
-
if ($parsed !== \false) {
|
320 |
-
return $parsed['uuid'];
|
321 |
-
}
|
322 |
-
}
|
323 |
-
}
|
324 |
-
return wp_generate_uuid4();
|
325 |
-
}
|
326 |
/**
|
327 |
* Get the history of the current user.
|
328 |
*/
|
@@ -337,12 +306,22 @@ class MyConsent {
|
|
337 |
$table_name_revision_independent = $this->getTableName(
|
338 |
\DevOwl\RealCookieBanner\settings\Revision::TABLE_NAME_INDEPENDENT
|
339 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
// phpcs:disable WordPress.DB.PreparedSQL
|
341 |
$rows = $wpdb->get_results(
|
342 |
-
$
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
ARRAY_A
|
347 |
);
|
348 |
// phpcs:enable WordPress.DB.PreparedSQL
|
@@ -351,7 +330,7 @@ class MyConsent {
|
|
351 |
$jsonRevisionIndependent = \json_decode($row['json_revision_independent'], ARRAY_A);
|
352 |
$obj = [
|
353 |
'id' => \intval($row['id']),
|
354 |
-
'uuid' => $
|
355 |
'isDoNotTrack' => \boolval($row['dnt']),
|
356 |
'isUnblock' => \boolval($row['blocker']),
|
357 |
'isForwarded' => $row['forwarded'] > 0,
|
71 |
return $consent;
|
72 |
}
|
73 |
$revision = \DevOwl\RealCookieBanner\settings\Revision::getInstance();
|
|
|
|
|
|
|
74 |
// Create the cookie on client-side with the latest requested consent hash instead of current real-time hash
|
75 |
// Why? So, the frontend can safely compare latest requested hash to user-consent hash
|
76 |
// What is true, cookie hash or database? I can promise, the database shows the consent hash!
|
77 |
+
$currentHash = $revision->getCurrentHash();
|
78 |
+
$revisionHash = $revision->create(\true, \false)['hash'];
|
79 |
+
$revisionIndependentHash = $revision->createIndependent(\true)['hash'];
|
80 |
+
$user = $this->getCurrentUser();
|
81 |
+
$uuid = $forwardedUuid ?? wp_generate_uuid4();
|
82 |
$consent_hash = \md5(\json_encode($consent));
|
83 |
+
$created = mysql2date('c', current_time('mysql'), \false);
|
84 |
+
$previousDecision = $user === \false ? \false : $user['decision'];
|
85 |
+
$previousCreated = $user === \false ? \false : $user['created'];
|
86 |
$ips = \DevOwl\RealCookieBanner\IpHandler::getInstance()->persistIp();
|
87 |
$table_name = $this->getTableName(\DevOwl\RealCookieBanner\UserConsent::TABLE_NAME);
|
88 |
$table_name_blocker_thumbnails = $this->getTableName(
|
118 |
$ips['ipv6'] === null ? 'NULL' : $ips['ipv6'],
|
119 |
$ips['ipv4_hash'] === null ? 'NULL' : $ips['ipv4_hash'],
|
120 |
$ips['ipv6_hash'] === null ? 'NULL' : $ips['ipv6_hash'],
|
121 |
+
$uuid,
|
122 |
$revisionHash,
|
123 |
+
$revisionIndependentHash,
|
124 |
+
\json_encode($previousDecision === \false ? [] : $previousDecision),
|
125 |
\json_encode($consent),
|
126 |
$consent_hash,
|
127 |
$blocker > 0 ? $blocker : 'NULL',
|
141 |
$forwardedBlocker,
|
142 |
// %s used for 'NULL' transformation
|
143 |
$tcfString === null ? 'NULL' : $tcfString,
|
144 |
+
$created
|
145 |
)
|
146 |
)
|
147 |
);
|
148 |
$insertId = $wpdb->insert_id;
|
149 |
+
// Set cookie and merge with previous UUIDs
|
150 |
+
$allUuids = \array_merge(
|
151 |
+
[$uuid],
|
152 |
+
$user === \false ? [] : [$user['uuid']],
|
153 |
+
$user === \false ? [] : $user['previous_uuids']
|
154 |
+
);
|
155 |
+
$this->setCookie($allUuids, $currentHash, $consent);
|
156 |
// Why $currentHash? See above
|
157 |
// Persist stats (only when not forwarded)
|
158 |
if ($forwarded === 0) {
|
159 |
+
\DevOwl\RealCookieBanner\Stats::getInstance()->persist($consent, $previousDecision, $previousCreated);
|
160 |
}
|
161 |
$result = \array_merge($this->getCurrentUser(\true), ['updated' => \true, 'consent_id' => $insertId]);
|
162 |
/**
|
169 |
do_action('RCB/Consent/Created', $result, $args);
|
170 |
return $result;
|
171 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
/**
|
173 |
* Set or update the existing cookie to the latest revision. It also respect the fact, that
|
174 |
* cross-site cookies needs to be set with `SameSite=None` attribute.
|
175 |
*
|
176 |
+
* @param string[] $uuids
|
177 |
* @param string $revision
|
178 |
* @param array $consent
|
179 |
* @see https://developer.wordpress.org/reference/functions/wp_set_auth_cookie/
|
180 |
* @see https://stackoverflow.com/a/46971326/5506547
|
181 |
*/
|
182 |
+
public function setCookie($uuids = null, $revision = null, $consent = null) {
|
183 |
$cookieName = $this->getCookieName();
|
184 |
+
$doDelete = $uuids === null;
|
185 |
+
$cookieValue = $doDelete ? '' : \sprintf('%s:%s:%s', \join(',', $uuids), $revision, \json_encode($consent));
|
186 |
$expire = $doDelete
|
187 |
? -1
|
188 |
: \time() +
|
209 |
* @param {boolean} $result Got the cookie successfully created?
|
210 |
* @param {boolean} $revoke `true` if the cookie should be deleted
|
211 |
* @param {string} $uuid
|
212 |
+
* @param {string[]} $uuids Since v3 multiple consent UUIDs are saved to the database
|
213 |
* @param {array}
|
214 |
* @since 2.0.0
|
215 |
*/
|
216 |
+
do_action('RCB/Consent/SetCookie', $cookieName, $cookieValue, $result, $doDelete, $uuids[0], $uuids);
|
217 |
}
|
218 |
return $result;
|
219 |
}
|
222 |
* user id and the accepted revision hash. This function is also ported to JS via `getUserDecision.tsx`.
|
223 |
*
|
224 |
* @param boolean $force
|
225 |
+
* @return false|array 'uuid', `previous_uuids`, 'created', 'cookie_revision', 'consent_revision', 'decision', 'decision_in_cookie', 'decision_hash'
|
226 |
*/
|
227 |
public function getCurrentUser($force = \false) {
|
228 |
if ($this->cacheCurrentUser !== null && !$force) {
|
246 |
* user id and the accepted revision hash.
|
247 |
*
|
248 |
* @param string $value
|
249 |
+
* @return array 'uuid', `previous_uuids`, 'created', 'cookie_revision', 'consent_revision', 'decision', 'decision_in_cookie', 'decision_hash'
|
250 |
*/
|
251 |
protected function parseCookieValue($value) {
|
252 |
global $wpdb;
|
262 |
}
|
263 |
$cookieDecision = \json_decode($result[2], ARRAY_A);
|
264 |
// Parse out data (${uuid}-${revision})
|
265 |
+
$uuids = \explode(',', $result[0]);
|
266 |
+
$uuid = \array_shift($uuids);
|
267 |
$revision = $result[1];
|
268 |
// Check if any consent was ever set by this user
|
269 |
// phpcs:disable WordPress.DB.PreparedSQL
|
282 |
}
|
283 |
return [
|
284 |
'uuid' => $uuid,
|
285 |
+
'previous_uuids' => $uuids,
|
286 |
'created' => mysql2date('c', $result['created'], \false),
|
287 |
'cookie_revision' => $revision,
|
288 |
'consent_revision' => $result['revision'],
|
292 |
'decision_hash' => $result['decision_hash']
|
293 |
];
|
294 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
/**
|
296 |
* Get the history of the current user.
|
297 |
*/
|
306 |
$table_name_revision_independent = $this->getTableName(
|
307 |
\DevOwl\RealCookieBanner\settings\Revision::TABLE_NAME_INDEPENDENT
|
308 |
);
|
309 |
+
$allUuids = \array_merge([$user['uuid']], $user['previous_uuids']);
|
310 |
+
$allUuidsIn = \sprintf(
|
311 |
+
'(%s)',
|
312 |
+
\join(
|
313 |
+
', ',
|
314 |
+
\array_map(function ($uuid) use ($wpdb) {
|
315 |
+
return $wpdb->prepare('%s', $uuid);
|
316 |
+
}, $allUuids)
|
317 |
+
)
|
318 |
+
);
|
319 |
// phpcs:disable WordPress.DB.PreparedSQL
|
320 |
$rows = $wpdb->get_results(
|
321 |
+
"SELECT uc.id, uc.uuid, uc.created, uc.decision, r.json_revision, ri.json_revision AS json_revision_independent, uc.dnt, uc.blocker, uc.forwarded, uc.tcf_string\n FROM {$table_name} uc\n INNER JOIN {$table_name_revision} r\n ON r.hash = uc.revision\n INNER JOIN {$table_name_revision_independent} ri\n ON ri.hash = uc.revision_independent\n WHERE uuid IN " .
|
322 |
+
$allUuidsIn .
|
323 |
+
' ORDER BY uc.created DESC
|
324 |
+
LIMIT 0, 100',
|
325 |
ARRAY_A
|
326 |
);
|
327 |
// phpcs:enable WordPress.DB.PreparedSQL
|
330 |
$jsonRevisionIndependent = \json_decode($row['json_revision_independent'], ARRAY_A);
|
331 |
$obj = [
|
332 |
'id' => \intval($row['id']),
|
333 |
+
'uuid' => $row['uuid'],
|
334 |
'isDoNotTrack' => \boolval($row['dnt']),
|
335 |
'isUnblock' => \boolval($row['blocker']),
|
336 |
'isForwarded' => $row['forwarded'] > 0,
|
inc/Utils.php
CHANGED
@@ -5,6 +5,7 @@ namespace DevOwl\RealCookieBanner;
|
|
5 |
use RecursiveArrayIterator;
|
6 |
use RecursiveIteratorIterator;
|
7 |
use WP_Rewrite;
|
|
|
8 |
// @codeCoverageIgnoreStart
|
9 |
\defined('ABSPATH') or die('No script kiddies please!');
|
10 |
// Avoid direct file request
|
@@ -34,6 +35,32 @@ class Utils {
|
|
34 |
*/
|
35 |
const HOST_TYPE_CURRENT_WITH_ALL_SUBDOMAINS = 'current+subdomains';
|
36 |
const PREINSTALLED_ENV_IONOS = 'ionos';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
/**
|
38 |
* Get the currently used admin color scheme.
|
39 |
*
|
5 |
use RecursiveArrayIterator;
|
6 |
use RecursiveIteratorIterator;
|
7 |
use WP_Rewrite;
|
8 |
+
use WP_Post;
|
9 |
// @codeCoverageIgnoreStart
|
10 |
\defined('ABSPATH') or die('No script kiddies please!');
|
11 |
// Avoid direct file request
|
35 |
*/
|
36 |
const HOST_TYPE_CURRENT_WITH_ALL_SUBDOMAINS = 'current+subdomains';
|
37 |
const PREINSTALLED_ENV_IONOS = 'ionos';
|
38 |
+
/**
|
39 |
+
* Always create a clone of the post cause we need to force the `post_status` to get the valid permalink.
|
40 |
+
* This also returns a valid permalink even for trashed or draft posts.
|
41 |
+
*
|
42 |
+
* @param WP_Post|number $post
|
43 |
+
* @see https://wordpress.stackexchange.com/a/42988/83335
|
44 |
+
* @return string|false
|
45 |
+
*/
|
46 |
+
public static function getPermalink($post) {
|
47 |
+
if (\is_numeric($post)) {
|
48 |
+
$post = get_post($post);
|
49 |
+
}
|
50 |
+
if (!$post instanceof \WP_Post) {
|
51 |
+
return \false;
|
52 |
+
}
|
53 |
+
if ($post->post_status === 'publish') {
|
54 |
+
return get_permalink($post);
|
55 |
+
}
|
56 |
+
$clone = clone $post;
|
57 |
+
if ($clone->post_status === 'trash') {
|
58 |
+
$clone->post_name = \preg_replace('/__trashed$/', '', $clone->post_name);
|
59 |
+
}
|
60 |
+
$clone->post_status = 'publish';
|
61 |
+
$clone->post_name = sanitize_title($clone->post_name ? $clone->post_name : $clone->post_title, $clone->ID);
|
62 |
+
return get_permalink($clone);
|
63 |
+
}
|
64 |
/**
|
65 |
* Get the currently used admin color scheme.
|
66 |
*
|
inc/base/others/cachebuster-lib.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
/* This file was automatically generated (
|
3 |
return [
|
4 |
'animate.css' => '4.1.1',
|
5 |
'mobx' => '4.15.7',
|
1 |
<?php
|
2 |
+
/* This file was automatically generated (Tue May 24 2022 13:54:10 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,76 +1,78 @@
|
|
1 |
<?php
|
2 |
-
/* This file was automatically generated (
|
3 |
return [
|
4 |
-
'src/public/dist/191.lite.js' => '
|
5 |
-
'src/public/dist/191.pro.js' => '
|
6 |
'src/public/dist/193.lite.js' => 'd7a0722155f835c915b08b6c93a9208d',
|
7 |
'src/public/dist/193.pro.js' => 'd71177a05a4f8e8252c7a480e8a2842b',
|
8 |
-
'src/public/dist/
|
9 |
-
'src/public/dist/
|
10 |
-
'src/public/dist/
|
|
|
|
|
|
|
|
|
11 |
'src/public/dist/440.lite.js' => '507b1d1d30a2155478e54f9c41e43d3b',
|
12 |
'src/public/dist/440.pro.js' => 'be0305e357c4bec403a16175006c8fd8',
|
13 |
'src/public/dist/472.pro.js' => 'a1855f174db45a591510ec767a2e2104',
|
14 |
-
'src/public/dist/548.lite.js' => '
|
15 |
-
'src/public/dist/641.pro.js' => '301f039aaffaebf49794c72d81cd0cca',
|
16 |
'src/public/dist/716.lite.js' => '2387b139748accec44017fa5ed1ed3e3',
|
17 |
'src/public/dist/716.pro.js' => 'a93d630f29e6762defcf6f97e9896223',
|
18 |
'src/public/dist/756.lite.js' => 'a33fd915f84e6f8be48f0e54138e39f2',
|
19 |
'src/public/dist/756.pro.js' => '0f18eab40b089c103d9f598326bcdf15',
|
20 |
-
'src/public/dist/789.
|
21 |
-
'src/public/dist/789.pro.js' => '9f82736c88ac6856084db70fa3bfecee',
|
22 |
'src/public/dist/795.lite.js' => 'f24c07d99365d028468d9a8eef40ca37',
|
23 |
'src/public/dist/795.pro.js' => '0f2c5c70d9be03caab24126e536c3c3d',
|
24 |
-
'src/public/dist/813.lite.js' => '
|
25 |
-
'src/public/dist/813.pro.js' => '
|
26 |
'src/public/dist/826.lite.js' => '3bc881855215a625d93f2525804b4ca8',
|
27 |
'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
|
28 |
'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
|
29 |
-
'src/public/dist/930.lite.js' => '
|
30 |
-
'src/public/dist/930.pro.js' => '
|
31 |
-
'src/public/dist/954.lite.js' => '
|
32 |
-
'src/public/dist/954.pro.js' => '
|
33 |
-
'src/public/dist/admin.lite.js' => '
|
34 |
-
'src/public/dist/admin.pro.js' => '
|
35 |
-
'src/public/dist/banner_tcf.pro.js' => '
|
36 |
-
'src/public/dist/banner.lite.js' => '
|
37 |
-
'src/public/dist/banner.pro.js' => '
|
38 |
-
'src/public/dist/blocker_tcf.pro.js' => '
|
39 |
-
'src/public/dist/blocker.lite.js' => '
|
40 |
-
'src/public/dist/blocker.pro.js' => '
|
41 |
'src/public/dist/chunk-config-tab-blocker.lite.js' => 'a91d327211ca5e165107f4158a9da752',
|
42 |
'src/public/dist/chunk-config-tab-blocker.pro.js' => '01a54b916148e4a884a14dcea0d5463d',
|
43 |
-
'src/public/dist/chunk-config-tab-consent.lite.js' => '
|
44 |
-
'src/public/dist/chunk-config-tab-consent.pro.js' => '
|
45 |
'src/public/dist/chunk-config-tab-cookies.lite.js' => '3f665830d802d689add48a5fb8eeb691',
|
46 |
'src/public/dist/chunk-config-tab-cookies.pro.js' => '680d91812dd9d6f7351e952231c5a487',
|
47 |
-
'src/public/dist/chunk-config-tab-dashboard.lite.js' => '
|
48 |
-
'src/public/dist/chunk-config-tab-dashboard.pro.js' => '
|
49 |
-
'src/public/dist/chunk-config-tab-import.lite.js' => '
|
50 |
-
'src/public/dist/chunk-config-tab-import.pro.js' => '
|
51 |
-
'src/public/dist/chunk-config-tab-licensing.lite.js' => '
|
52 |
-
'src/public/dist/chunk-config-tab-licensing.pro.js' => '
|
53 |
'src/public/dist/chunk-config-tab-scanner.lite.js' => '1560805869186588d4d28f4bab9ffc87',
|
54 |
'src/public/dist/chunk-config-tab-scanner.pro.js' => '3df7f1ab1e88b1eb1772f3e0f5d33f66',
|
55 |
-
'src/public/dist/chunk-config-tab-settings.lite.js' => '
|
56 |
-
'src/public/dist/chunk-config-tab-settings.pro.js' => '
|
57 |
'src/public/dist/chunk-config-tab-tcf.lite.js' => '6365310df181df3e606648c820281492',
|
58 |
'src/public/dist/chunk-config-tab-tcf.pro.js' => 'e1c180231e480c84449cd51dcac15d54',
|
59 |
-
'src/public/dist/customize_banner.lite.js' => '
|
60 |
-
'src/public/dist/customize_banner.pro.js' => '
|
61 |
-
'src/public/dist/customize.lite.js' => '
|
62 |
-
'src/public/dist/customize.pro.js' => '
|
63 |
'src/public/dist/queue.lite.js' => '7b9c552c5049e1b529155a7c01b25aef',
|
64 |
'src/public/dist/queue.pro.js' => '352f65e78294e1be38b2cc3a8c9f4a8e',
|
65 |
-
'src/public/dist/vendor-admin.lite.js' => '
|
66 |
-
'src/public/dist/vendor-admin.pro.js' => '
|
67 |
'src/public/dist/vendor-banner_tcf.pro.js' => '5f087cf149b75526844e11e03ba7ca32',
|
68 |
'src/public/dist/vendor-banner.lite.js' => '9d21941f8683c473e4fad7ce9737b540',
|
69 |
'src/public/dist/vendor-banner.pro.js' => '7a72278ea147e6c777ef2c21d441214d',
|
70 |
-
'src/public/dist/vendor-customize_banner.lite.js' => '
|
71 |
-
'src/public/dist/vendor-customize_banner.pro.js' => '
|
72 |
-
'src/public/dist/vendor-customize.lite.js' => '
|
73 |
-
'src/public/dist/vendor-customize.pro.js' => '
|
74 |
'src/public/dist/vendor-queue.lite.js' => 'b72bded98fc236932c39620d16d7780e',
|
75 |
'src/public/dist/vendor-queue.pro.js' => 'b72bded98fc236932c39620d16d7780e',
|
76 |
'src/public/dist/admin.css' => '80138025b52ea88ade1dba28bccf90e1',
|
1 |
<?php
|
2 |
+
/* This file was automatically generated (Tue May 24 2022 13:54:10 GMT+0000 (Coordinated Universal Time)). */
|
3 |
return [
|
4 |
+
'src/public/dist/191.lite.js' => '38637a7ba9b7edb104d1f3db693c41a8',
|
5 |
+
'src/public/dist/191.pro.js' => '2fdb045aa34fad13b865bf56d869bdff',
|
6 |
'src/public/dist/193.lite.js' => 'd7a0722155f835c915b08b6c93a9208d',
|
7 |
'src/public/dist/193.pro.js' => 'd71177a05a4f8e8252c7a480e8a2842b',
|
8 |
+
'src/public/dist/276.lite.js' => 'b658a312356b0e71ec521276a45587b0',
|
9 |
+
'src/public/dist/276.pro.js' => '7f80575a91b2b090999dce05c53d7571',
|
10 |
+
'src/public/dist/348.lite.js' => 'b10e5a1b4ed020083d9b90e354362967',
|
11 |
+
'src/public/dist/348.pro.js' => 'e161c26a84fd4aa4dd792c78d8126c02',
|
12 |
+
'src/public/dist/41.pro.js' => 'eccdc3b1385610e2299308e3a5b4e7ed',
|
13 |
+
'src/public/dist/418.lite.js' => 'e67dca2dbaa4c6f9fd77a2a546069d67',
|
14 |
+
'src/public/dist/418.pro.js' => 'fbfddcc807d91362e42c82e1d16f96ff',
|
15 |
'src/public/dist/440.lite.js' => '507b1d1d30a2155478e54f9c41e43d3b',
|
16 |
'src/public/dist/440.pro.js' => 'be0305e357c4bec403a16175006c8fd8',
|
17 |
'src/public/dist/472.pro.js' => 'a1855f174db45a591510ec767a2e2104',
|
18 |
+
'src/public/dist/548.lite.js' => 'd4f0bbe78792da246669cd8ca870707f',
|
|
|
19 |
'src/public/dist/716.lite.js' => '2387b139748accec44017fa5ed1ed3e3',
|
20 |
'src/public/dist/716.pro.js' => 'a93d630f29e6762defcf6f97e9896223',
|
21 |
'src/public/dist/756.lite.js' => 'a33fd915f84e6f8be48f0e54138e39f2',
|
22 |
'src/public/dist/756.pro.js' => '0f18eab40b089c103d9f598326bcdf15',
|
23 |
+
'src/public/dist/789.pro.js' => '21467511370feb31437c55e345306f83',
|
|
|
24 |
'src/public/dist/795.lite.js' => 'f24c07d99365d028468d9a8eef40ca37',
|
25 |
'src/public/dist/795.pro.js' => '0f2c5c70d9be03caab24126e536c3c3d',
|
26 |
+
'src/public/dist/813.lite.js' => 'a891cb31407bfee9406f428177ebcfe9',
|
27 |
+
'src/public/dist/813.pro.js' => '9a203f5404c510520abcf0bbdd2218bb',
|
28 |
'src/public/dist/826.lite.js' => '3bc881855215a625d93f2525804b4ca8',
|
29 |
'src/public/dist/914.lite.js' => 'e58092e06d5f33173282b43d04705d56',
|
30 |
'src/public/dist/914.pro.js' => '182de60076ce6b7f80084a25543f0e63',
|
31 |
+
'src/public/dist/930.lite.js' => 'e8fd40bb3b535bfa0b37c2c92902042a',
|
32 |
+
'src/public/dist/930.pro.js' => 'e1092ede607c69f5547e5440ee10b93b',
|
33 |
+
'src/public/dist/954.lite.js' => 'eaaae2e681627767c86add5ebd61aaf6',
|
34 |
+
'src/public/dist/954.pro.js' => 'faf328b7bd41817fcb3693740adbc496',
|
35 |
+
'src/public/dist/admin.lite.js' => '33e4e49e7c0d099316f4b3d0bc65a9dd',
|
36 |
+
'src/public/dist/admin.pro.js' => '6b40183918200c30d3460cb71bc7b616',
|
37 |
+
'src/public/dist/banner_tcf.pro.js' => '7cb8672151aa2be4aa6864191d863665',
|
38 |
+
'src/public/dist/banner.lite.js' => 'c3b119fa6102a7b03cf44bf9ac4c63b0',
|
39 |
+
'src/public/dist/banner.pro.js' => 'de4c2f3640a078345b556d216bfc2323',
|
40 |
+
'src/public/dist/blocker_tcf.pro.js' => 'd78de7fc544c155bd9f3b946832685f9',
|
41 |
+
'src/public/dist/blocker.lite.js' => '1bb6ec2bb8f522dbe75f46bfc72a2896',
|
42 |
+
'src/public/dist/blocker.pro.js' => '87c0848344f3cd8ed311a754c6b11d3d',
|
43 |
'src/public/dist/chunk-config-tab-blocker.lite.js' => 'a91d327211ca5e165107f4158a9da752',
|
44 |
'src/public/dist/chunk-config-tab-blocker.pro.js' => '01a54b916148e4a884a14dcea0d5463d',
|
45 |
+
'src/public/dist/chunk-config-tab-consent.lite.js' => '03ad4e0ef3d1413f265a9335977ae82f',
|
46 |
+
'src/public/dist/chunk-config-tab-consent.pro.js' => 'bc9989d9628d47c39eec2bd404a391c5',
|
47 |
'src/public/dist/chunk-config-tab-cookies.lite.js' => '3f665830d802d689add48a5fb8eeb691',
|
48 |
'src/public/dist/chunk-config-tab-cookies.pro.js' => '680d91812dd9d6f7351e952231c5a487',
|
49 |
+
'src/public/dist/chunk-config-tab-dashboard.lite.js' => 'c2db7d58f8d1d161907ef98a45b26c0e',
|
50 |
+
'src/public/dist/chunk-config-tab-dashboard.pro.js' => '88936b0da2ba956234ae523895c6d76b',
|
51 |
+
'src/public/dist/chunk-config-tab-import.lite.js' => '10fb25f16aba75af21e38c0423ed964b',
|
52 |
+
'src/public/dist/chunk-config-tab-import.pro.js' => '4a11612f27493b430a4a70082e903aea',
|
53 |
+
'src/public/dist/chunk-config-tab-licensing.lite.js' => 'f03f0e80b7ce66f91dc3392518d8af9c',
|
54 |
+
'src/public/dist/chunk-config-tab-licensing.pro.js' => '2fdfebedf923e5c376bd469ff1e1eb31',
|
55 |
'src/public/dist/chunk-config-tab-scanner.lite.js' => '1560805869186588d4d28f4bab9ffc87',
|
56 |
'src/public/dist/chunk-config-tab-scanner.pro.js' => '3df7f1ab1e88b1eb1772f3e0f5d33f66',
|
57 |
+
'src/public/dist/chunk-config-tab-settings.lite.js' => '0546eab20093f4a491c73339caa1b832',
|
58 |
+
'src/public/dist/chunk-config-tab-settings.pro.js' => 'bf0cb2878745240e490839cfb72efdd2',
|
59 |
'src/public/dist/chunk-config-tab-tcf.lite.js' => '6365310df181df3e606648c820281492',
|
60 |
'src/public/dist/chunk-config-tab-tcf.pro.js' => 'e1c180231e480c84449cd51dcac15d54',
|
61 |
+
'src/public/dist/customize_banner.lite.js' => '70cdf95b2d3c5b3bd3448db6c789ff5a',
|
62 |
+
'src/public/dist/customize_banner.pro.js' => '945e90685e00ac601c3ad68e67380d0d',
|
63 |
+
'src/public/dist/customize.lite.js' => 'ef93c3c40dd5ddb0f45b541a79af7c30',
|
64 |
+
'src/public/dist/customize.pro.js' => '1e7c11da7d3dda54eb14891026b3d9c6',
|
65 |
'src/public/dist/queue.lite.js' => '7b9c552c5049e1b529155a7c01b25aef',
|
66 |
'src/public/dist/queue.pro.js' => '352f65e78294e1be38b2cc3a8c9f4a8e',
|
67 |
+
'src/public/dist/vendor-admin.lite.js' => 'f1c19a085c135d0f8d34f8678f9737df',
|
68 |
+
'src/public/dist/vendor-admin.pro.js' => 'a66ff8967c03ab9411bbbe3051ca0b94',
|
69 |
'src/public/dist/vendor-banner_tcf.pro.js' => '5f087cf149b75526844e11e03ba7ca32',
|
70 |
'src/public/dist/vendor-banner.lite.js' => '9d21941f8683c473e4fad7ce9737b540',
|
71 |
'src/public/dist/vendor-banner.pro.js' => '7a72278ea147e6c777ef2c21d441214d',
|
72 |
+
'src/public/dist/vendor-customize_banner.lite.js' => '007f442eac218ac42576ab09c67a7b9f',
|
73 |
+
'src/public/dist/vendor-customize_banner.pro.js' => '981ae3c7ccb0989d61996710f937996a',
|
74 |
+
'src/public/dist/vendor-customize.lite.js' => '318f0df06a7f1686f580e3500783e0cc',
|
75 |
+
'src/public/dist/vendor-customize.pro.js' => '218aacecd433ad4ae272bdc2f339bd7d',
|
76 |
'src/public/dist/vendor-queue.lite.js' => 'b72bded98fc236932c39620d16d7780e',
|
77 |
'src/public/dist/vendor-queue.pro.js' => 'b72bded98fc236932c39620d16d7780e',
|
78 |
'src/public/dist/admin.css' => '80138025b52ea88ade1dba28bccf90e1',
|
inc/comp/migration/AbstractDashboardTileMigration.php
CHANGED
@@ -126,7 +126,7 @@ abstract class AbstractDashboardTileMigration {
|
|
126 |
*/
|
127 |
public function revisionCurrent($array) {
|
128 |
if ($this->isActive()) {
|
129 |
-
$array['
|
130 |
'id' => $this->getId(),
|
131 |
'headline' => $this->getHeadline(),
|
132 |
'description' => $this->getDescription(),
|
126 |
*/
|
127 |
public function revisionCurrent($array) {
|
128 |
if ($this->isActive()) {
|
129 |
+
$array['dashboard_migration'] = [
|
130 |
'id' => $this->getId(),
|
131 |
'headline' => $this->getHeadline(),
|
132 |
'description' => $this->getDescription(),
|
inc/overrides/lite/Core.php
CHANGED
@@ -273,6 +273,7 @@ trait Core {
|
|
273 |
// Documented in IOverrideCore
|
274 |
public function overrideInit() {
|
275 |
add_action('rest_api_init', [\DevOwl\RealCookieBanner\lite\rest\Service::instance(), 'rest_api_init']);
|
|
|
276 |
}
|
277 |
/**
|
278 |
* Create PRO-specific cookie presets.
|
273 |
// Documented in IOverrideCore
|
274 |
public function overrideInit() {
|
275 |
add_action('rest_api_init', [\DevOwl\RealCookieBanner\lite\rest\Service::instance(), 'rest_api_init']);
|
276 |
+
add_filter('RCB/Revision/Current', [new \DevOwl\RealCookieBanner\lite\FomoCoupon(), 'revisionCurrent']);
|
277 |
}
|
278 |
/**
|
279 |
* Create PRO-specific cookie presets.
|
inc/overrides/lite/FomoCoupon.php
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace DevOwl\RealCookieBanner\lite;
|
4 |
+
|
5 |
+
use DevOwl\RealCookieBanner\Core;
|
6 |
+
// @codeCoverageIgnoreStart
|
7 |
+
\defined('ABSPATH') or die('No script kiddies please!');
|
8 |
+
// Avoid direct file request
|
9 |
+
// @codeCoverageIgnoreEnd
|
10 |
+
/**
|
11 |
+
* Fetch a FOMO coupon from our Real Commerce backend for free users with valid license.
|
12 |
+
*/
|
13 |
+
class FomoCoupon {
|
14 |
+
/**
|
15 |
+
* The option value can be one of the following:
|
16 |
+
*
|
17 |
+
* - `-1`: You already have an in-app FOMO coupon received -> never send a request to the backend again
|
18 |
+
* - `number > 0`: Timestamp, when we retry the backend as it was not available
|
19 |
+
* - `array`: Result of the Fomo Coupon
|
20 |
+
*/
|
21 |
+
const OPTION_NAME_FOMO_COUPON = RCB_OPT_PREFIX . '-fomo-coupon';
|
22 |
+
const ENDPOINT_FOMO_COUPON = '1.0.0/fomo/in-app-coupon';
|
23 |
+
const RETRY_ENDPOINT_ON_ERROR_IN_SECONDS = 6 * 60 * 60;
|
24 |
+
/**
|
25 |
+
* Fetch the FOMO coupon from the Real Commerce database only once and cache it. If there is no free
|
26 |
+
* license activated, never fetch a coupon from the external server (GDPR).
|
27 |
+
*
|
28 |
+
* @return array|false
|
29 |
+
*/
|
30 |
+
protected function fetchFomoCoupon() {
|
31 |
+
$license = \DevOwl\RealCookieBanner\Core::getInstance()
|
32 |
+
->getRpmInitiator()
|
33 |
+
->getPluginUpdater()
|
34 |
+
->getCurrentBlogLicense();
|
35 |
+
$licenseActivation = $license->getActivation();
|
36 |
+
$code = $licenseActivation->getCode();
|
37 |
+
$uuid = $license->getUuid();
|
38 |
+
$isLicensed = !empty($code);
|
39 |
+
// Already cached?
|
40 |
+
$fomoCoupon = get_option(self::OPTION_NAME_FOMO_COUPON);
|
41 |
+
if (\is_numeric($fomoCoupon)) {
|
42 |
+
$fomoCoupon = \intval($fomoCoupon);
|
43 |
+
}
|
44 |
+
if (!\is_array($fomoCoupon) && $isLicensed && $fomoCoupon !== -1) {
|
45 |
+
// Check if the FOMO coupon failed recently through another error (e.g. server was down) and retry in x hours
|
46 |
+
if (\is_int($fomoCoupon)) {
|
47 |
+
if (\time() < $fomoCoupon) {
|
48 |
+
return \false;
|
49 |
+
} else {
|
50 |
+
// Reset value, so we can trigger a retry again if server is still not available
|
51 |
+
$fomoCoupon = \false;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
// Do the request to the RCB backend and try to receive a FOMO coupon
|
55 |
+
$url = add_query_arg(
|
56 |
+
['licenseKey' => $code, 'clientUuid' => $uuid],
|
57 |
+
$this->getApiUrl() . self::ENDPOINT_FOMO_COUPON
|
58 |
+
);
|
59 |
+
$result = wp_remote_get($url);
|
60 |
+
$resultCode = wp_remote_retrieve_response_code($result);
|
61 |
+
$resultBodyString = wp_remote_retrieve_body($result);
|
62 |
+
if (!empty($resultBodyString)) {
|
63 |
+
$resultBody = \json_decode($resultBodyString, ARRAY_A);
|
64 |
+
if ($resultCode === 200 && isset($resultBody['inAppFomoCoupon'])) {
|
65 |
+
// Received a valid FOMO coupon
|
66 |
+
$resultBody = $resultBody['inAppFomoCoupon'];
|
67 |
+
$fomoCoupon = $resultBody;
|
68 |
+
update_option(self::OPTION_NAME_FOMO_COUPON, $fomoCoupon, \false);
|
69 |
+
} elseif (\strpos($resultBodyString, 'InAppFomoCouponAlreadyIssued') !== \false) {
|
70 |
+
// FOMO coupon already issued for this client and license key
|
71 |
+
$fomoCoupon = -1;
|
72 |
+
update_option(self::OPTION_NAME_FOMO_COUPON, $fomoCoupon, \false);
|
73 |
+
}
|
74 |
+
}
|
75 |
+
// If e.g. the server was down, try again in x hours
|
76 |
+
if ($fomoCoupon === \false) {
|
77 |
+
$fomoCoupon = \time() + self::RETRY_ENDPOINT_ON_ERROR_IN_SECONDS;
|
78 |
+
update_option(self::OPTION_NAME_FOMO_COUPON, $fomoCoupon, \false);
|
79 |
+
}
|
80 |
+
}
|
81 |
+
return \is_array($fomoCoupon) && \strtotime($fomoCoupon['validUntil']) > \time() ? $fomoCoupon : \false;
|
82 |
+
}
|
83 |
+
/**
|
84 |
+
* Output the FOMO coupon to the current revision REST endpoint, so the UI can work with it.
|
85 |
+
* If the FOMO coupon is not yet available, fetch it.
|
86 |
+
*
|
87 |
+
* @param array $arr
|
88 |
+
*/
|
89 |
+
public function revisionCurrent($arr) {
|
90 |
+
$arr['fomo_coupon'] = $this->fetchFomoCoupon();
|
91 |
+
return $arr;
|
92 |
+
}
|
93 |
+
/**
|
94 |
+
* Get the URL to the Real Commerce API.
|
95 |
+
*/
|
96 |
+
protected function getApiUrl() {
|
97 |
+
return \defined('DEVOWL_WP_DEV') && \constant('DEVOWL_WP_DEV')
|
98 |
+
? 'http://real_commerce_backend:8000/'
|
99 |
+
: 'https://commerce.devowl.io/';
|
100 |
+
}
|
101 |
+
}
|
inc/presets/BannerPresets.php
CHANGED
@@ -53,6 +53,7 @@ class BannerPresets {
|
|
53 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_TEXT_ALIGN => 'left',
|
54 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_OFFSET_Y => 0,
|
55 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_BLUR_RADIUS => 17,
|
|
|
56 |
\DevOwl\RealCookieBanner\view\customize\banner\individual\Layout::SETTING_INHERIT_BANNER_MAX_WIDTH => \false
|
57 |
]
|
58 |
],
|
@@ -240,6 +241,10 @@ class BannerPresets {
|
|
240 |
'#2ea3f2',
|
241 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
242 |
'#2993d9',
|
|
|
|
|
|
|
|
|
243 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
244 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_WIDTH => 1,
|
245 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_COLOR =>
|
@@ -291,6 +296,10 @@ class BannerPresets {
|
|
291 |
'#2ea3f2',
|
292 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
293 |
'#2993d9',
|
|
|
|
|
|
|
|
|
294 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
295 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
296 |
17,
|
@@ -338,7 +347,7 @@ class BannerPresets {
|
|
338 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 21,
|
339 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_COLOR =>
|
340 |
'#f5f5f5',
|
341 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30,
|
342 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_TEACHINGS_SEPARATOR_COLOR =>
|
343 |
'#0274be',
|
344 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
@@ -348,9 +357,9 @@ class BannerPresets {
|
|
348 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
349 |
'#0264a6',
|
350 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
351 |
-
'#
|
352 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
353 |
-
'#
|
354 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
355 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
356 |
19,
|
@@ -420,14 +429,14 @@ class BannerPresets {
|
|
420 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
421 |
'#0264a6',
|
422 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
423 |
-
'#
|
424 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
425 |
-
'#
|
426 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
427 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
428 |
19,
|
429 |
30,
|
430 |
-
|
431 |
30
|
432 |
],
|
433 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#3a3a3a',
|
@@ -480,7 +489,7 @@ class BannerPresets {
|
|
480 |
30
|
481 |
],
|
482 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 26,
|
483 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30,
|
484 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_TEACHINGS_SEPARATOR_COLOR =>
|
485 |
'#65bc7b',
|
486 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
@@ -508,9 +517,11 @@ class BannerPresets {
|
|
508 |
5
|
509 |
],
|
510 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
511 |
-
'#
|
512 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
513 |
-
'#
|
|
|
|
|
514 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
515 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
516 |
25,
|
@@ -600,9 +611,11 @@ class BannerPresets {
|
|
600 |
],
|
601 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 16,
|
602 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
603 |
-
'#
|
604 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
605 |
-
'#
|
|
|
|
|
606 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
607 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
608 |
25,
|
@@ -669,6 +682,10 @@ class BannerPresets {
|
|
669 |
'#000000',
|
670 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
671 |
'#262626',
|
|
|
|
|
|
|
|
|
672 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
673 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [7, 20, 11, 20],
|
674 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_WIDTH => 1,
|
@@ -715,7 +732,7 @@ class BannerPresets {
|
|
715 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
716 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'bold',
|
717 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_WIDTH => 0,
|
718 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20,
|
719 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
720 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
721 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
@@ -745,9 +762,9 @@ class BannerPresets {
|
|
745 |
5
|
746 |
],
|
747 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
748 |
-
'#
|
749 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
750 |
-
'#
|
751 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f7f4',
|
752 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_SIZE => 12,
|
753 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#54595f',
|
@@ -824,7 +841,7 @@ class BannerPresets {
|
|
824 |
],
|
825 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 18,
|
826 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
827 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20,
|
828 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
829 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
830 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
@@ -863,9 +880,9 @@ class BannerPresets {
|
|
863 |
5
|
864 |
],
|
865 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
866 |
-
'#
|
867 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
868 |
-
'#
|
869 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
870 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
871 |
15,
|
@@ -951,7 +968,7 @@ class BannerPresets {
|
|
951 |
30
|
952 |
],
|
953 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 26,
|
954 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30,
|
955 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
956 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_FONT_SIZE => 14,
|
957 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
@@ -997,9 +1014,9 @@ class BannerPresets {
|
|
997 |
],
|
998 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 16,
|
999 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1000 |
-
'#
|
1001 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1002 |
-
'#
|
1003 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
1004 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1005 |
25,
|
@@ -1060,16 +1077,16 @@ class BannerPresets {
|
|
1060 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_COLOR => '#0a0a0a',
|
1061 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_PADDING => [
|
1062 |
17,
|
1063 |
-
|
1064 |
15,
|
1065 |
-
|
1066 |
],
|
1067 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 17,
|
1068 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#f9f9f9',
|
1069 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'lighter',
|
1070 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_COLOR =>
|
1071 |
'#424242',
|
1072 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [15,
|
1073 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
1074 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
1075 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
@@ -1106,18 +1123,17 @@ class BannerPresets {
|
|
1106 |
'#ffffff',
|
1107 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1108 |
'#b58d00',
|
1109 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 13,
|
1110 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1111 |
-
'#
|
1112 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1113 |
-
'#
|
1114 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1115 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#141414',
|
1116 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1117 |
15,
|
1118 |
-
|
1119 |
17,
|
1120 |
-
|
1121 |
],
|
1122 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_SIZE => 13,
|
1123 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#969696',
|
@@ -1263,11 +1279,10 @@ class BannerPresets {
|
|
1263 |
'#5b8172',
|
1264 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1265 |
'#5b8172',
|
1266 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 13,
|
1267 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1268 |
-
'#
|
1269 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1270 |
-
'#
|
1271 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#416a59',
|
1272 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1273 |
15,
|
@@ -1351,7 +1366,7 @@ class BannerPresets {
|
|
1351 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
1352 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'bold',
|
1353 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_WIDTH => 0,
|
1354 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20,
|
1355 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
1356 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
1357 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
@@ -1395,10 +1410,11 @@ class BannerPresets {
|
|
1395 |
0,
|
1396 |
5
|
1397 |
],
|
|
|
1398 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1399 |
-
'#
|
1400 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1401 |
-
'#
|
1402 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1403 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f7f4',
|
1404 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
@@ -1517,9 +1533,10 @@ class BannerPresets {
|
|
1517 |
'#17324f',
|
1518 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1519 |
'#17324f',
|
1520 |
-
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::
|
|
|
1521 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1522 |
-
'#
|
1523 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
1524 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1525 |
15,
|
@@ -1644,10 +1661,13 @@ class BannerPresets {
|
|
1644 |
'#020b1d',
|
1645 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1646 |
'#ffffff',
|
|
|
1647 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1648 |
-
'#
|
|
|
|
|
1649 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1650 |
-
'#
|
1651 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
1652 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
1653 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
@@ -1781,6 +1801,10 @@ class BannerPresets {
|
|
1781 |
'#000000',
|
1782 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_FONT_COLOR =>
|
1783 |
'#ffffff',
|
|
|
|
|
|
|
|
|
1784 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1785 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
1786 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
53 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_TEXT_ALIGN => 'left',
|
54 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_OFFSET_Y => 0,
|
55 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_BLUR_RADIUS => 17,
|
56 |
+
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [10, 20, 12, 20],
|
57 |
\DevOwl\RealCookieBanner\view\customize\banner\individual\Layout::SETTING_INHERIT_BANNER_MAX_WIDTH => \false
|
58 |
]
|
59 |
],
|
241 |
'#2ea3f2',
|
242 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
243 |
'#2993d9',
|
244 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
245 |
+
'#2ea3f2',
|
246 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
247 |
+
'#2993d9',
|
248 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
249 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_WIDTH => 1,
|
250 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_COLOR =>
|
296 |
'#2ea3f2',
|
297 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
298 |
'#2993d9',
|
299 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
300 |
+
'#2ea3f2',
|
301 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
302 |
+
'#2993d9',
|
303 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
304 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
305 |
17,
|
347 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 21,
|
348 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_COLOR =>
|
349 |
'#f5f5f5',
|
350 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30, 5, 30],
|
351 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_TEACHINGS_SEPARATOR_COLOR =>
|
352 |
'#0274be',
|
353 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
357 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
358 |
'#0264a6',
|
359 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
360 |
+
'#0274be',
|
361 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
362 |
+
'#0264a6',
|
363 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
364 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
365 |
19,
|
429 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
430 |
'#0264a6',
|
431 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
432 |
+
'#0274be',
|
433 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
434 |
+
'#0264a6',
|
435 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
436 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
437 |
19,
|
438 |
30,
|
439 |
+
19,
|
440 |
30
|
441 |
],
|
442 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#3a3a3a',
|
489 |
30
|
490 |
],
|
491 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 26,
|
492 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30, 15, 30],
|
493 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_TEACHINGS_SEPARATOR_COLOR =>
|
494 |
'#65bc7b',
|
495 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
517 |
5
|
518 |
],
|
519 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
520 |
+
'#65bc7b',
|
521 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
522 |
+
'#58a36b',
|
523 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT =>
|
524 |
+
'bolder',
|
525 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
526 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
527 |
25,
|
611 |
],
|
612 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 16,
|
613 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
614 |
+
'#65bc7b',
|
615 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
616 |
+
'#58a36b',
|
617 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT =>
|
618 |
+
'bolder',
|
619 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
620 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
621 |
25,
|
682 |
'#000000',
|
683 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ALL_HOVER_BG =>
|
684 |
'#262626',
|
685 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
686 |
+
'#000000',
|
687 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
688 |
+
'#262626',
|
689 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
690 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [7, 20, 11, 20],
|
691 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_TOP_BORDER_WIDTH => 1,
|
732 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
733 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'bold',
|
734 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_WIDTH => 0,
|
735 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20, 10, 20],
|
736 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
737 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
738 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
762 |
5
|
763 |
],
|
764 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
765 |
+
'#007f50',
|
766 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
767 |
+
'#576a76',
|
768 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f7f4',
|
769 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_SIZE => 12,
|
770 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#54595f',
|
841 |
],
|
842 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 18,
|
843 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
844 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20, 10, 20],
|
845 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
846 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
847 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
880 |
5
|
881 |
],
|
882 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
883 |
+
'#A0282B',
|
884 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
885 |
+
'#686868',
|
886 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f5f5f5',
|
887 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
888 |
15,
|
968 |
30
|
969 |
],
|
970 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 26,
|
971 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 30, 15, 30],
|
972 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
973 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_FONT_SIZE => 14,
|
974 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
1014 |
],
|
1015 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 16,
|
1016 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1017 |
+
'#9b0103',
|
1018 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1019 |
+
'#9b0103',
|
1020 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#1d242d',
|
1021 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1022 |
25,
|
1077 |
\DevOwl\RealCookieBanner\view\customize\banner\Design::SETTING_BOX_SHADOW_COLOR => '#0a0a0a',
|
1078 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_PADDING => [
|
1079 |
17,
|
1080 |
+
20,
|
1081 |
15,
|
1082 |
+
20
|
1083 |
],
|
1084 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_SIZE => 17,
|
1085 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#f9f9f9',
|
1086 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'lighter',
|
1087 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_COLOR =>
|
1088 |
'#424242',
|
1089 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [15, 20, 10, 20],
|
1090 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
1091 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
1092 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_BULLET_COLOR =>
|
1123 |
'#ffffff',
|
1124 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1125 |
'#b58d00',
|
|
|
1126 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1127 |
+
'#b58d00',
|
1128 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1129 |
+
'#936900',
|
1130 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1131 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#141414',
|
1132 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1133 |
15,
|
1134 |
+
20,
|
1135 |
17,
|
1136 |
+
20
|
1137 |
],
|
1138 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_SIZE => 13,
|
1139 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_FONT_COLOR => '#969696',
|
1279 |
'#5b8172',
|
1280 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1281 |
'#5b8172',
|
|
|
1282 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1283 |
+
'#916704',
|
1284 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1285 |
+
'#e5b720',
|
1286 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#416a59',
|
1287 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1288 |
15,
|
1366 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_COLOR => '#576a76',
|
1367 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_FONT_WEIGHT => 'bold',
|
1368 |
\DevOwl\RealCookieBanner\view\customize\banner\HeaderDesign::SETTING_BOTTOM_BORDER_WIDTH => 0,
|
1369 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_PADDING => [20, 20, 10, 20],
|
1370 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_INHERIT_FONT_SIZE => \false,
|
1371 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DESCRIPTION_FONT_SIZE => 14,
|
1372 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_DOTTED_GROUPS_INHERIT_FONT_SIZE => \false,
|
1410 |
0,
|
1411 |
5
|
1412 |
],
|
1413 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 15,
|
1414 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1415 |
+
'#007c63',
|
1416 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1417 |
+
'#576a76',
|
1418 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1419 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f7f4',
|
1420 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1533 |
'#17324f',
|
1534 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1535 |
'#17324f',
|
1536 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1537 |
+
'#13293e',
|
1538 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1539 |
+
'#17324f',
|
1540 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
1541 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1542 |
15,
|
1661 |
'#020b1d',
|
1662 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR =>
|
1663 |
'#ffffff',
|
1664 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => 16,
|
1665 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1666 |
+
'#f9f9fa',
|
1667 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT =>
|
1668 |
+
'bolder',
|
1669 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1670 |
+
'#707780',
|
1671 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
1672 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
1673 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_PADDING => [
|
1801 |
'#000000',
|
1802 |
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_ESSENTIALS_HOVER_FONT_COLOR =>
|
1803 |
'#ffffff',
|
1804 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR =>
|
1805 |
+
'#000000',
|
1806 |
+
\DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR =>
|
1807 |
+
'#282828',
|
1808 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_POWERED_BY_LINK => \false,
|
1809 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_INHERIT_BG => \true,
|
1810 |
\DevOwl\RealCookieBanner\view\customize\banner\FooterDesign::SETTING_BG => '#f4f4f4',
|
inc/presets/BlockerPresets.php
CHANGED
@@ -138,7 +138,7 @@ class BlockerPresets extends \DevOwl\RealCookieBanner\presets\Presets {
|
|
138 |
// Documented in Presets
|
139 |
public function getOtherMetaKeys() {
|
140 |
// Make hosts always available in cache cause we need this for the scanner
|
141 |
-
return [
|
142 |
}
|
143 |
/**
|
144 |
* Resolve `attributes.cookies` so we can e.g. show created cookies in "Connected cookies"
|
138 |
// Documented in Presets
|
139 |
public function getOtherMetaKeys() {
|
140 |
// Make hosts always available in cache cause we need this for the scanner
|
141 |
+
return ['extended', 'scanOptions'];
|
142 |
}
|
143 |
/**
|
144 |
* Resolve `attributes.cookies` so we can e.g. show created cookies in "Connected cookies"
|
inc/presets/free/RealCookieBannerPreset.php
CHANGED
@@ -8,7 +8,6 @@ use DevOwl\RealCookieBanner\MyConsent;
|
|
8 |
use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
|
9 |
use DevOwl\RealCookieBanner\presets\CookiePresets;
|
10 |
use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
|
11 |
-
use DevOwl\RealCookieBanner\settings\Blocker;
|
12 |
use DevOwl\RealCookieBanner\settings\Consent;
|
13 |
use DevOwl\RealCookieBanner\settings\Cookie;
|
14 |
use DevOwl\RealCookieBanner\settings\General;
|
@@ -105,30 +104,15 @@ class RealCookieBannerPreset extends \DevOwl\RealCookieBanner\presets\AbstractCo
|
|
105 |
add_action(
|
106 |
'init',
|
107 |
function () {
|
108 |
-
$realCookieBannerService =
|
109 |
-
|
110 |
-
[
|
111 |
-
'post_type' => \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME,
|
112 |
-
'numberposts' => -1,
|
113 |
-
'nopaging' => \true,
|
114 |
-
'meta_query' => [
|
115 |
-
[
|
116 |
-
'key' => \DevOwl\RealCookieBanner\settings\Blocker::META_NAME_PRESET_ID,
|
117 |
-
'value' => self::IDENTIFIER,
|
118 |
-
'compare' => '='
|
119 |
-
]
|
120 |
-
],
|
121 |
-
'post_status' => ['publish', 'private', 'draft']
|
122 |
-
],
|
123 |
-
'RealCookieBannerPreset::new_version_installation_after_2_11_0'
|
124 |
-
)
|
125 |
);
|
126 |
-
if (
|
127 |
$td = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
128 |
(new \DevOwl\RealCookieBanner\presets\CookiePresets())->createFromPreset(
|
129 |
self::IDENTIFIER,
|
130 |
\false,
|
131 |
-
$realCookieBannerService
|
132 |
);
|
133 |
$td->teardown();
|
134 |
}
|
8 |
use DevOwl\RealCookieBanner\presets\AbstractCookiePreset;
|
9 |
use DevOwl\RealCookieBanner\presets\CookiePresets;
|
10 |
use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
|
|
|
11 |
use DevOwl\RealCookieBanner\settings\Consent;
|
12 |
use DevOwl\RealCookieBanner\settings\Cookie;
|
13 |
use DevOwl\RealCookieBanner\settings\General;
|
104 |
add_action(
|
105 |
'init',
|
106 |
function () {
|
107 |
+
$realCookieBannerService = \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getServiceByIdentifier(
|
108 |
+
self::IDENTIFIER
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
);
|
110 |
+
if ($realCookieBannerService !== null) {
|
111 |
$td = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
112 |
(new \DevOwl\RealCookieBanner\presets\CookiePresets())->createFromPreset(
|
113 |
self::IDENTIFIER,
|
114 |
\false,
|
115 |
+
$realCookieBannerService->ID
|
116 |
);
|
117 |
$td->teardown();
|
118 |
}
|
inc/presets/free/blocker/YoutubePreset.php
CHANGED
@@ -5,7 +5,6 @@ namespace DevOwl\RealCookieBanner\presets\free\blocker;
|
|
5 |
use DevOwl\RealCookieBanner\Core;
|
6 |
use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
|
7 |
use DevOwl\RealCookieBanner\presets\free\YoutubePreset as FreeYoutubePreset;
|
8 |
-
use DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware;
|
9 |
// @codeCoverageIgnoreStart
|
10 |
\defined('ABSPATH') or die('No script kiddies please!');
|
11 |
// Avoid direct file request
|
@@ -33,24 +32,10 @@ class YoutubePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPres
|
|
33 |
'*youtu.be*',
|
34 |
'*youtube-nocookie.com*',
|
35 |
'*ytimg.com*',
|
36 |
-
// platform.js needs to be implemented together with `div[class*="g-ytsubscribe"]`...
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST =>
|
41 |
-
self::HOSTS_GROUP_PLATFORM_JS_NAME
|
42 |
-
]
|
43 |
-
],
|
44 |
-
[
|
45 |
-
'div[class*="g-ytsubscribe"]',
|
46 |
-
[
|
47 |
-
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::LOGICAL_MUST => [
|
48 |
-
// ... but `div[class*="g-ytsubscribe"]` can also be standalone
|
49 |
-
self::HOSTS_GROUP_PLATFORM_JS_NAME,
|
50 |
-
self::HOSTS_GROUP_SUBSCRIBE_EMBED_PLATFORM_JS_NAME
|
51 |
-
]
|
52 |
-
]
|
53 |
-
],
|
54 |
'*youtube.com/subscribe_embed*',
|
55 |
// [Plugin Comp] Elementor
|
56 |
'div[data-settings*="youtube_url"]',
|
5 |
use DevOwl\RealCookieBanner\Core;
|
6 |
use DevOwl\RealCookieBanner\presets\AbstractBlockerPreset;
|
7 |
use DevOwl\RealCookieBanner\presets\free\YoutubePreset as FreeYoutubePreset;
|
|
|
8 |
// @codeCoverageIgnoreStart
|
9 |
\defined('ABSPATH') or die('No script kiddies please!');
|
10 |
// Avoid direct file request
|
32 |
'*youtu.be*',
|
33 |
'*youtube-nocookie.com*',
|
34 |
'*ytimg.com*',
|
35 |
+
// TODO: platform.js needs to be implemented together with `div[class*="g-ytsubscribe"]`...
|
36 |
+
// This needs to be done with the service cloud and `ruleGroups`
|
37 |
+
'*apis.google.com/js/platform.js*',
|
38 |
+
'div[class*="g-ytsubscribe"]',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
'*youtube.com/subscribe_embed*',
|
40 |
// [Plugin Comp] Elementor
|
41 |
'div[data-settings*="youtube_url"]',
|
inc/presets/middleware/AdoptTierFromClassNamespaceMiddleware.php
CHANGED
@@ -24,6 +24,8 @@ class AdoptTierFromClassNamespaceMiddleware {
|
|
24 |
public function middleware(&$preset, $instance) {
|
25 |
if (!isset($preset['tier']) && $instance !== null) {
|
26 |
$declaringFileName = (new \ReflectionClass(\get_class($instance)))->getFileName();
|
|
|
|
|
27 |
$isProFileName =
|
28 |
\strpos($declaringFileName, 'overrides/pro/presets') !== \false ||
|
29 |
\strpos($declaringFileName, 'presets/pro') !== \false;
|
24 |
public function middleware(&$preset, $instance) {
|
25 |
if (!isset($preset['tier']) && $instance !== null) {
|
26 |
$declaringFileName = (new \ReflectionClass(\get_class($instance)))->getFileName();
|
27 |
+
// Windows compatibility: consider backslashes as forward-slashes
|
28 |
+
$declaringFileName = \str_replace('\\', '/', $declaringFileName);
|
29 |
$isProFileName =
|
30 |
\strpos($declaringFileName, 'overrides/pro/presets') !== \false ||
|
31 |
\strpos($declaringFileName, 'presets/pro') !== \false;
|
inc/presets/middleware/BlockerHostsOptionsMiddleware.php
CHANGED
@@ -14,10 +14,11 @@ use WP_Post;
|
|
14 |
*
|
15 |
* If you are using this in conjunction with an `extends` middleware, make sure to add this afterwards!
|
16 |
*
|
17 |
-
* See `
|
18 |
*/
|
19 |
class BlockerHostsOptionsMiddleware {
|
20 |
-
const
|
|
|
21 |
const QUERY_ARGS = 'queryArgs';
|
22 |
/**
|
23 |
* See class description.
|
@@ -34,14 +35,14 @@ class BlockerHostsOptionsMiddleware {
|
|
34 |
foreach ($preset['attributes']['hosts'] as $key => $host) {
|
35 |
if (\is_array($host)) {
|
36 |
$scanOptions[] = $host;
|
37 |
-
$preset['attributes']['hosts'][$key] = $host[
|
|
|
|
|
38 |
}
|
39 |
}
|
40 |
if (\count($scanOptions) > 0) {
|
41 |
$preset['scanOptions'] = $scanOptions;
|
42 |
}
|
43 |
-
// Make `hosts` always available in metadata (needed for scanner)
|
44 |
-
$preset['hosts'] = $preset['attributes']['hosts'];
|
45 |
// Unique hosts as they can be duplicated in hosts settings due to different hosts options
|
46 |
$preset['attributes']['hosts'] = \array_unique($preset['attributes']['hosts']);
|
47 |
}
|
14 |
*
|
15 |
* If you are using this in conjunction with an `extends` middleware, make sure to add this afterwards!
|
16 |
*
|
17 |
+
* See `Rule` for more information.
|
18 |
*/
|
19 |
class BlockerHostsOptionsMiddleware {
|
20 |
+
const EXPRESSION = 'expression';
|
21 |
+
const ASSIGNED_TO_GROUPS = 'assignedToGroups';
|
22 |
const QUERY_ARGS = 'queryArgs';
|
23 |
/**
|
24 |
* See class description.
|
35 |
foreach ($preset['attributes']['hosts'] as $key => $host) {
|
36 |
if (\is_array($host)) {
|
37 |
$scanOptions[] = $host;
|
38 |
+
$preset['attributes']['hosts'][$key] = $host[self::EXPRESSION];
|
39 |
+
} elseif (\is_string($host)) {
|
40 |
+
$scanOptions[] = [self::EXPRESSION => $host];
|
41 |
}
|
42 |
}
|
43 |
if (\count($scanOptions) > 0) {
|
44 |
$preset['scanOptions'] = $scanOptions;
|
45 |
}
|
|
|
|
|
46 |
// Unique hosts as they can be duplicated in hosts settings due to different hosts options
|
47 |
$preset['attributes']['hosts'] = \array_unique($preset['attributes']['hosts']);
|
48 |
}
|
inc/presets/pro/blocker/CalderaFormsPreset.php
CHANGED
@@ -28,25 +28,22 @@ class CalderaFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlocke
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
]
|
51 |
]
|
52 |
],
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'div[class*="caldera-grid"]',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
]
|
48 |
]
|
49 |
],
|
inc/presets/pro/blocker/CleverReachRecaptchaPreset.php
CHANGED
@@ -26,25 +26,22 @@ class CleverReachRecaptchaPreset extends \DevOwl\RealCookieBanner\presets\Abstra
|
|
26 |
'attributes' => [
|
27 |
'hosts' => [
|
28 |
[
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
]
|
34 |
],
|
35 |
[
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
]
|
41 |
],
|
42 |
[
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
]
|
48 |
],
|
49 |
'img[src*="cloudfront.net/cr3_images/badget"]'
|
50 |
]
|
26 |
'attributes' => [
|
27 |
'hosts' => [
|
28 |
[
|
29 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
30 |
+
'*google.com/recaptcha*',
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
32 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
33 |
],
|
34 |
[
|
35 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
36 |
+
'*gstatic.com/recaptcha*',
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
38 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
39 |
],
|
40 |
[
|
41 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
42 |
+
'form[action*="cleverreach.com"]',
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
44 |
+
self::IDENTIFIER
|
|
|
45 |
],
|
46 |
'img[src*="cloudfront.net/cr3_images/badget"]'
|
47 |
]
|
inc/presets/pro/blocker/ContactForm7RecaptchaPreset.php
CHANGED
@@ -28,25 +28,22 @@ class ContactForm7RecaptchaPreset extends \DevOwl\RealCookieBanner\presets\Abstr
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
],
|
51 |
'div[class="wpcf7"]',
|
52 |
'link[href="//www.google.com"]'
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'*wp-content/plugins/contact-form-7/*',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
],
|
48 |
'div[class="wpcf7"]',
|
49 |
'link[href="//www.google.com"]'
|
inc/presets/pro/blocker/DiviContactFormPreset.php
CHANGED
@@ -28,25 +28,22 @@ class DiviContactFormPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlo
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
]
|
51 |
]
|
52 |
],
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'div[class*="et_pb_recaptcha_enabled"]',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
]
|
48 |
]
|
49 |
],
|
inc/presets/pro/blocker/ElementorFormsPreset.php
CHANGED
@@ -28,25 +28,22 @@ class ElementorFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBloc
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
]
|
51 |
]
|
52 |
],
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'div[class*="elementor-widget-form"]',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
]
|
48 |
]
|
49 |
],
|
inc/presets/pro/blocker/FacebookLikePreset.php
CHANGED
@@ -27,18 +27,16 @@ class FacebookLikePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlocke
|
|
27 |
'hosts' => \array_merge(
|
28 |
[
|
29 |
[
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
]
|
35 |
],
|
36 |
[
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
]
|
42 |
]
|
43 |
],
|
44 |
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
27 |
'hosts' => \array_merge(
|
28 |
[
|
29 |
[
|
30 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
31 |
+
'*facebook.com/plugins/like.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 |
+
'div[class="fb-like"]',
|
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\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
inc/presets/pro/blocker/FacebookPixelPreset.php
CHANGED
@@ -17,10 +17,7 @@ class FacebookPixelPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlock
|
|
17 |
const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\FacebookPixelPreset::IDENTIFIER;
|
18 |
const VERSION = 1;
|
19 |
const HOSTS_GROUP_SDK_FUNCTION_NAME = 'sdk-function';
|
20 |
-
const HOSTS_GROUP_SDK_SCRIPT = [
|
21 |
-
// This script should not be in a logical-must group, as it cannot exist standalone
|
22 |
-
'*connect.facebook.net*'
|
23 |
-
];
|
24 |
// Documented in AbstractPreset
|
25 |
public function common() {
|
26 |
$name = 'Facebook Pixel';
|
@@ -32,42 +29,37 @@ class FacebookPixelPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlock
|
|
32 |
'hosts' => \array_merge(
|
33 |
[
|
34 |
[
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
]
|
40 |
],
|
41 |
[
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
]
|
47 |
],
|
48 |
// <noscript> <img> tag
|
49 |
[
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
]
|
55 |
],
|
56 |
[
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
]
|
62 |
],
|
63 |
[
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
]
|
71 |
]
|
72 |
]
|
73 |
],
|
17 |
const IDENTIFIER = \DevOwl\RealCookieBanner\presets\pro\FacebookPixelPreset::IDENTIFIER;
|
18 |
const VERSION = 1;
|
19 |
const HOSTS_GROUP_SDK_FUNCTION_NAME = 'sdk-function';
|
20 |
+
const HOSTS_GROUP_SDK_SCRIPT = ['*connect.facebook.net*'];
|
|
|
|
|
|
|
21 |
// Documented in AbstractPreset
|
22 |
public function common() {
|
23 |
$name = 'Facebook Pixel';
|
29 |
'hosts' => \array_merge(
|
30 |
[
|
31 |
[
|
32 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
33 |
+
'fbq(\'',
|
34 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
35 |
+
self::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
36 |
],
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'fbq("',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
41 |
+
self::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
42 |
],
|
43 |
// <noscript> <img> tag
|
44 |
[
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
46 |
+
'img[alt="fbpx"]',
|
47 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
48 |
+
self::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
49 |
],
|
50 |
[
|
51 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
52 |
+
'img[alt="facebook_pixel"]',
|
53 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
54 |
+
self::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
55 |
],
|
56 |
[
|
57 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
58 |
+
'*facebook.com/tr*',
|
59 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
60 |
+
self::HOSTS_GROUP_SDK_FUNCTION_NAME,
|
61 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
62 |
+
['queryArg' => 'noscript', 'regexp' => '/^1$/']
|
|
|
63 |
]
|
64 |
]
|
65 |
],
|
inc/presets/pro/blocker/FacebookPostPreset.php
CHANGED
@@ -28,32 +28,28 @@ class FacebookPostPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlocke
|
|
28 |
'hosts' => \array_merge(
|
29 |
[
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
],
|
51 |
[
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
]
|
57 |
]
|
58 |
],
|
59 |
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
28 |
'hosts' => \array_merge(
|
29 |
[
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*facebook.com/plugins/post.php*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*facebook.com/plugins/video.php*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'*fbcdn.net*',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
47 |
],
|
48 |
[
|
49 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
50 |
+
'div[class="fb-post"]',
|
51 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
52 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_FUNCTION_NAME
|
|
|
53 |
]
|
54 |
],
|
55 |
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
inc/presets/pro/blocker/FacebookSharePreset.php
CHANGED
@@ -27,18 +27,16 @@ class FacebookSharePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlock
|
|
27 |
'hosts' => \array_merge(
|
28 |
[
|
29 |
[
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
]
|
35 |
],
|
36 |
[
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
]
|
42 |
]
|
43 |
],
|
44 |
\DevOwl\RealCookieBanner\presets\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
27 |
'hosts' => \array_merge(
|
28 |
[
|
29 |
[
|
30 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
31 |
+
'*facebook.com/plugins/share_button.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 |
+
'div[class="fb-share-button"]',
|
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\pro\blocker\FacebookPixelPreset::HOSTS_GROUP_SDK_SCRIPT
|
inc/presets/pro/blocker/FiveStarRestaurantReservationsPreset.php
CHANGED
@@ -29,25 +29,22 @@ class FiveStarRestaurantReservationsPreset extends \DevOwl\RealCookieBanner\pres
|
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
]
|
37 |
],
|
38 |
[
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
]
|
44 |
],
|
45 |
[
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
]
|
52 |
]
|
53 |
],
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
33 |
+
'*google.com/recaptcha*',
|
34 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
35 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
36 |
],
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'*gstatic.com/recaptcha*',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
41 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
42 |
],
|
43 |
[
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
45 |
+
'form[class*="rtb-booking-form-form"]',
|
46 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
47 |
+
self::IDENTIFIER
|
|
|
48 |
]
|
49 |
]
|
50 |
],
|
inc/presets/pro/blocker/FormMakerRecaptchaPreset.php
CHANGED
@@ -28,25 +28,22 @@ class FormMakerRecaptchaPreset extends \DevOwl\RealCookieBanner\presets\Abstract
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
],
|
51 |
'*wp-content/plugins/form-maker/js/*',
|
52 |
'*wp-content/uploads/form-maker-frontend/js/*'
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'div[class*="fm-form-container"]',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
],
|
48 |
'*wp-content/plugins/form-maker/js/*',
|
49 |
'*wp-content/uploads/form-maker-frontend/js/*'
|
inc/presets/pro/blocker/FormidablePreset.php
CHANGED
@@ -29,25 +29,22 @@ class FormidablePreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
|
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
]
|
37 |
],
|
38 |
[
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
]
|
44 |
],
|
45 |
[
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
]
|
52 |
]
|
53 |
],
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
33 |
+
'*google.com/recaptcha*',
|
34 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
35 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
36 |
],
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'*gstatic.com/recaptcha*',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
41 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
42 |
],
|
43 |
[
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
45 |
+
'div[class*="frm_forms"]',
|
46 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
47 |
+
self::IDENTIFIER
|
|
|
48 |
]
|
49 |
]
|
50 |
],
|
inc/presets/pro/blocker/GoogleAnalytics4Preset.php
CHANGED
@@ -18,18 +18,14 @@ class GoogleAnalytics4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBl
|
|
18 |
const VERSION = 1;
|
19 |
const HOSTS_GROUP_SCRIPT_PROPERTY = [
|
20 |
[
|
21 |
-
'"G-*"',
|
22 |
-
|
23 |
-
\DevOwl\RealCookieBanner\presets\
|
24 |
-
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
25 |
-
]
|
26 |
],
|
27 |
[
|
28 |
-
"'G-*'",
|
29 |
-
|
30 |
-
\DevOwl\RealCookieBanner\presets\
|
31 |
-
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
32 |
-
]
|
33 |
]
|
34 |
];
|
35 |
/**
|
@@ -39,15 +35,14 @@ class GoogleAnalytics4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBl
|
|
39 |
*/
|
40 |
const HOSTS_GROUP_COLLECTOR = [
|
41 |
[
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
]
|
52 |
]
|
53 |
];
|
@@ -64,38 +59,35 @@ class GoogleAnalytics4Preset extends \DevOwl\RealCookieBanner\presets\AbstractBl
|
|
64 |
self::HOSTS_GROUP_SCRIPT_PROPERTY,
|
65 |
[
|
66 |
[
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
]
|
72 |
]
|
73 |
],
|
74 |
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_SCRIPT,
|
75 |
self::HOSTS_GROUP_COLLECTOR,
|
76 |
[
|
77 |
[
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
]
|
85 |
]
|
86 |
]
|
87 |
],
|
88 |
[
|
89 |
[
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
]
|
99 |
]
|
100 |
]
|
101 |
]
|
18 |
const VERSION = 1;
|
19 |
const HOSTS_GROUP_SCRIPT_PROPERTY = [
|
20 |
[
|
21 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION => '"G-*"',
|
22 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
23 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
|
|
24 |
],
|
25 |
[
|
26 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION => "'G-*'",
|
27 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
28 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
|
|
29 |
]
|
30 |
];
|
31 |
/**
|
35 |
*/
|
36 |
const HOSTS_GROUP_COLLECTOR = [
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'*google-analytics.com/g/collect*',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS => [
|
41 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_SCRIPT_NAME,
|
42 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
43 |
+
],
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
45 |
+
['queryArg' => 'tid', 'regexp' => '/^G-/']
|
|
|
46 |
]
|
47 |
]
|
48 |
];
|
59 |
self::HOSTS_GROUP_SCRIPT_PROPERTY,
|
60 |
[
|
61 |
[
|
62 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
63 |
+
'gtag(',
|
64 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
65 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
66 |
]
|
67 |
],
|
68 |
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_SCRIPT,
|
69 |
self::HOSTS_GROUP_COLLECTOR,
|
70 |
[
|
71 |
[
|
72 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
73 |
+
'*googletagmanager.com/gtag/js?*',
|
74 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
75 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_SCRIPT_NAME,
|
76 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
77 |
+
['queryArg' => 'id', 'isOptional' => \true, 'regexp' => '/^G-/']
|
|
|
78 |
]
|
79 |
]
|
80 |
],
|
81 |
[
|
82 |
[
|
83 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
84 |
+
'*googletagmanager.com/gtag/js?*',
|
85 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS => [
|
86 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_SCRIPT_NAME,
|
87 |
+
\DevOwl\RealCookieBanner\presets\pro\blocker\GoogleAnalyticsPreset::HOSTS_GROUP_PROPERTY_ID_NAME
|
88 |
+
],
|
89 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
90 |
+
['queryArg' => 'id', 'isOptional' => \false, 'regexp' => '/^G-/']
|
|
|
91 |
]
|
92 |
]
|
93 |
]
|
inc/presets/pro/blocker/GoogleAnalyticsPreset.php
CHANGED
@@ -20,42 +20,35 @@ class GoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlo
|
|
20 |
const HOSTS_GROUP_SCRIPT_NAME = 'script';
|
21 |
const HOSTS_GROUP_SCRIPT = [
|
22 |
[
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
]
|
28 |
],
|
29 |
[
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
]
|
35 |
],
|
36 |
// Comp: RankMath
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
]
|
44 |
];
|
45 |
const HOSTS_GROUP_SCRIPT_PROPERTY = [
|
46 |
[
|
47 |
-
'"UA-*"',
|
48 |
-
|
49 |
-
|
50 |
-
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
51 |
-
]
|
52 |
],
|
53 |
[
|
54 |
-
"'UA-*'",
|
55 |
-
|
56 |
-
|
57 |
-
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
58 |
-
]
|
59 |
]
|
60 |
];
|
61 |
/**
|
@@ -65,15 +58,14 @@ class GoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlo
|
|
65 |
*/
|
66 |
const HOSTS_GROUP_COLLECTOR = [
|
67 |
[
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
]
|
77 |
]
|
78 |
]
|
79 |
];
|
@@ -90,45 +82,41 @@ class GoogleAnalyticsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlo
|
|
90 |
self::HOSTS_GROUP_SCRIPT_PROPERTY,
|
91 |
[
|
92 |
[
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
]
|
98 |
],
|
99 |
[
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
]
|
105 |
]
|
106 |
],
|
107 |
self::HOSTS_GROUP_SCRIPT,
|
108 |
self::HOSTS_GROUP_COLLECTOR,
|
109 |
[
|
110 |
[
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
]
|
118 |
]
|
119 |
]
|
120 |
],
|
121 |
[
|
122 |
[
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
]
|
132 |
]
|
133 |
]
|
134 |
]
|
20 |
const HOSTS_GROUP_SCRIPT_NAME = 'script';
|
21 |
const HOSTS_GROUP_SCRIPT = [
|
22 |
[
|
23 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
24 |
+
'*google-analytics.com/analytics.js*',
|
25 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
26 |
+
self::HOSTS_GROUP_SCRIPT_NAME
|
|
|
27 |
],
|
28 |
[
|
29 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
30 |
+
'*google-analytics.com/ga.js*',
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
32 |
+
self::HOSTS_GROUP_SCRIPT_NAME
|
|
|
33 |
],
|
34 |
// Comp: RankMath
|
35 |
[
|
36 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
37 |
+
'script[id="google_gtagjs"]',
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
39 |
+
self::HOSTS_GROUP_SCRIPT_NAME
|
|
|
40 |
]
|
41 |
];
|
42 |
const HOSTS_GROUP_SCRIPT_PROPERTY = [
|
43 |
[
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION => '"UA-*"',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
|
|
47 |
],
|
48 |
[
|
49 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION => "'UA-*'",
|
50 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
51 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
|
|
52 |
]
|
53 |
];
|
54 |
/**
|
58 |
*/
|
59 |
const HOSTS_GROUP_COLLECTOR = [
|
60 |
[
|
61 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
62 |
+
'*google-analytics.com/collect*',
|
63 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS => [
|
64 |
+
self::HOSTS_GROUP_SCRIPT_NAME,
|
65 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
66 |
+
],
|
67 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
68 |
+
['queryArg' => 'tid', 'regexp' => '/^UA-/']
|
|
|
69 |
]
|
70 |
]
|
71 |
];
|
82 |
self::HOSTS_GROUP_SCRIPT_PROPERTY,
|
83 |
[
|
84 |
[
|
85 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
86 |
+
'ga(',
|
87 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
88 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
89 |
],
|
90 |
[
|
91 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
92 |
+
'gtag(',
|
93 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
94 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
|
|
95 |
]
|
96 |
],
|
97 |
self::HOSTS_GROUP_SCRIPT,
|
98 |
self::HOSTS_GROUP_COLLECTOR,
|
99 |
[
|
100 |
[
|
101 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
102 |
+
'*googletagmanager.com/gtag/js?*',
|
103 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
104 |
+
self::HOSTS_GROUP_SCRIPT_NAME,
|
105 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
106 |
+
['queryArg' => 'id', 'isOptional' => \true, 'regexp' => '/^UA-/']
|
|
|
107 |
]
|
108 |
]
|
109 |
],
|
110 |
[
|
111 |
[
|
112 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
113 |
+
'*googletagmanager.com/gtag/js?*',
|
114 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS => [
|
115 |
+
self::HOSTS_GROUP_SCRIPT_NAME,
|
116 |
+
self::HOSTS_GROUP_PROPERTY_ID_NAME
|
117 |
+
],
|
118 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::QUERY_ARGS => [
|
119 |
+
['queryArg' => 'id', 'isOptional' => \false, 'regexp' => '/^UA-/']
|
|
|
120 |
]
|
121 |
]
|
122 |
]
|
inc/presets/pro/blocker/GoogleMapsPreset.php
CHANGED
@@ -113,7 +113,10 @@ class GoogleMapsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
|
|
113 |
// [Plugin Comp] Advanced Maps (Jet Elements)
|
114 |
'div[class*="jet-map"]',
|
115 |
// [Plugin Comp] https://gravitygeolocation.com/
|
116 |
-
'div[class*="ginput_container_gfgeo_google_map"]'
|
|
|
|
|
|
|
117 |
]
|
118 |
],
|
119 |
'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
|
113 |
// [Plugin Comp] Advanced Maps (Jet Elements)
|
114 |
'div[class*="jet-map"]',
|
115 |
// [Plugin Comp] https://gravitygeolocation.com/
|
116 |
+
'div[class*="ginput_container_gfgeo_google_map"]',
|
117 |
+
// [Theme Comp] https://themeforest.net/item/rodich-a-restaurant-wordpress-theme/19949280
|
118 |
+
'div[class*="rodich-google-map"]',
|
119 |
+
'.googleMap({'
|
120 |
]
|
121 |
],
|
122 |
'logoFile' => \DevOwl\RealCookieBanner\Core::getInstance()->getBaseAssetsUrl('logos/google-maps.png')
|
inc/presets/pro/blocker/HappyFormsPreset.php
CHANGED
@@ -29,47 +29,41 @@ class HappyFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
|
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
]
|
37 |
],
|
38 |
[
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
]
|
44 |
],
|
45 |
[
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
],
|
52 |
[
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
]
|
58 |
],
|
59 |
// Newer version
|
60 |
[
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
]
|
66 |
],
|
67 |
[
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
]
|
73 |
]
|
74 |
]
|
75 |
],
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
33 |
+
'*google.com/recaptcha*',
|
34 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
35 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
36 |
],
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'*gstatic.com/recaptcha*',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
41 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
42 |
],
|
43 |
[
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
45 |
+
'div[class*="happyforms-form"]',
|
46 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
47 |
+
self::IDENTIFIER
|
|
|
48 |
],
|
49 |
[
|
50 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
51 |
+
'*/wp-content/plugins/happyforms-upgrade/inc/assets/js/frontend*',
|
52 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
53 |
+
self::IDENTIFIER
|
|
|
54 |
],
|
55 |
// Newer version
|
56 |
[
|
57 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
58 |
+
'*/wp-content/plugins/happyforms-upgrade/bundles/js/frontend*',
|
59 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
60 |
+
self::IDENTIFIER
|
|
|
61 |
],
|
62 |
[
|
63 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
64 |
+
'*/wp-content/plugins/happyforms/inc/assets/js/frontend*',
|
65 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
66 |
+
self::IDENTIFIER
|
|
|
67 |
]
|
68 |
]
|
69 |
],
|
inc/presets/pro/blocker/NinjaFormsPreset.php
CHANGED
@@ -28,48 +28,42 @@ class NinjaFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerP
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
// Gutenberg
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
],
|
52 |
[
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
]
|
58 |
],
|
59 |
[
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
]
|
65 |
],
|
66 |
[
|
67 |
// All official plugins of Ninja Forms
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
]
|
73 |
]
|
74 |
]
|
75 |
],
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
// Gutenberg
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
45 |
+
'div[class="wp-block-ninja-forms-form"]',
|
46 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
47 |
+
self::IDENTIFIER
|
|
|
48 |
],
|
49 |
[
|
50 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
51 |
+
'div[class*="nf-form-cont"]',
|
52 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
53 |
+
self::IDENTIFIER
|
|
|
54 |
],
|
55 |
[
|
56 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
57 |
+
'*wp-content/plugins/ninja-forms/assets/js*',
|
58 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
59 |
+
self::IDENTIFIER
|
|
|
60 |
],
|
61 |
[
|
62 |
// All official plugins of Ninja Forms
|
63 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
64 |
+
'*wp-content/plugins/ninja-forms-*/*',
|
65 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
66 |
+
self::IDENTIFIER
|
|
|
67 |
]
|
68 |
]
|
69 |
],
|
inc/presets/pro/blocker/QuformRecaptchaPreset.php
CHANGED
@@ -28,25 +28,22 @@ class QuformRecaptchaPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlo
|
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
]
|
36 |
],
|
37 |
[
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
]
|
43 |
],
|
44 |
[
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
]
|
50 |
]
|
51 |
]
|
52 |
],
|
28 |
'attributes' => [
|
29 |
'hosts' => [
|
30 |
[
|
31 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
32 |
+
'*google.com/recaptcha*',
|
33 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
34 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
35 |
],
|
36 |
[
|
37 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
38 |
+
'*gstatic.com/recaptcha*',
|
39 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
40 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
41 |
],
|
42 |
[
|
43 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
44 |
+
'div[class*="quform-form"]',
|
45 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
46 |
+
self::IDENTIFIER
|
|
|
47 |
]
|
48 |
]
|
49 |
],
|
inc/presets/pro/blocker/WPFormsPreset.php
CHANGED
@@ -29,25 +29,22 @@ class WPFormsPreset extends \DevOwl\RealCookieBanner\presets\AbstractBlockerPres
|
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
]
|
37 |
],
|
38 |
[
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
]
|
44 |
],
|
45 |
[
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
]
|
51 |
],
|
52 |
'*wpformsRecaptchaLoad*'
|
53 |
]
|
29 |
'attributes' => [
|
30 |
'hosts' => [
|
31 |
[
|
32 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
33 |
+
'*google.com/recaptcha*',
|
34 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
35 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
36 |
],
|
37 |
[
|
38 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
39 |
+
'*gstatic.com/recaptcha*',
|
40 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
41 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::GOOGLE_RECAPTCHA
|
|
|
42 |
],
|
43 |
[
|
44 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::EXPRESSION =>
|
45 |
+
'div[class*="wpforms-container"]',
|
46 |
+
\DevOwl\RealCookieBanner\presets\middleware\BlockerHostsOptionsMiddleware::ASSIGNED_TO_GROUPS =>
|
47 |
+
self::IDENTIFIER
|
|
|
48 |
],
|
49 |
'*wpformsRecaptchaLoad*'
|
50 |
]
|
inc/scanner/OnChangeDetection.php
CHANGED
@@ -4,6 +4,7 @@ namespace DevOwl\RealCookieBanner\scanner;
|
|
4 |
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
use DevOwl\RealCookieBanner\Core;
|
|
|
7 |
use WP_Post;
|
8 |
// @codeCoverageIgnoreStart
|
9 |
\defined('ABSPATH') or die('No script kiddies please!');
|
@@ -41,8 +42,8 @@ class OnChangeDetection {
|
|
41 |
* @param WP_Post $post_before
|
42 |
*/
|
43 |
public function post_updated($post_id, $post_after, $post_before) {
|
44 |
-
$permalinkAfter =
|
45 |
-
$permalinkBefore =
|
46 |
if ($permalinkAfter !== $permalinkBefore) {
|
47 |
$this->scanner->getQuery()->removeSourceUrls([$permalinkBefore]);
|
48 |
}
|
@@ -55,7 +56,7 @@ class OnChangeDetection {
|
|
55 |
public function delete_post($post_id) {
|
56 |
$post = get_post($post_id);
|
57 |
if ($post) {
|
58 |
-
$link =
|
59 |
if (!empty($link)) {
|
60 |
$this->scanner->getQuery()->removeSourceUrls([$link]);
|
61 |
}
|
@@ -67,7 +68,7 @@ class OnChangeDetection {
|
|
67 |
* @param int $post_id
|
68 |
*/
|
69 |
public function wp_trash_post($post_id) {
|
70 |
-
$link =
|
71 |
if (!empty($link)) {
|
72 |
$this->scanner->getQuery()->removeSourceUrls([$link]);
|
73 |
}
|
@@ -79,7 +80,7 @@ class OnChangeDetection {
|
|
79 |
*/
|
80 |
protected function fromPost($post) {
|
81 |
if (is_post_type_viewable($post->post_type)) {
|
82 |
-
$link =
|
83 |
if (!empty($link)) {
|
84 |
if ($post->post_status === 'publish') {
|
85 |
$this->addUrlToScanner($link);
|
@@ -110,21 +111,6 @@ class OnChangeDetection {
|
|
110 |
}
|
111 |
$this->scanner->addUrlsToQueue(\array_unique($urls));
|
112 |
}
|
113 |
-
/**
|
114 |
-
* Always create a clone of the post cause we need to force the `post_status` to get the valid permalink.
|
115 |
-
*
|
116 |
-
* @param WP_Post $post
|
117 |
-
* @see https://wordpress.stackexchange.com/a/42988/83335
|
118 |
-
*/
|
119 |
-
protected function getPermalink($post) {
|
120 |
-
$clone = clone $post;
|
121 |
-
if ($clone->post_status === 'trash') {
|
122 |
-
$clone->post_name = \preg_replace('/__trashed$/', '', $clone->post_name);
|
123 |
-
}
|
124 |
-
$clone->post_status = 'publish';
|
125 |
-
$clone->post_name = sanitize_title($clone->post_name ? $clone->post_name : $clone->post_title, $clone->ID);
|
126 |
-
return get_permalink($clone);
|
127 |
-
}
|
128 |
/**
|
129 |
* Getter.
|
130 |
*
|
4 |
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
use DevOwl\RealCookieBanner\Core;
|
7 |
+
use DevOwl\RealCookieBanner\Utils;
|
8 |
use WP_Post;
|
9 |
// @codeCoverageIgnoreStart
|
10 |
\defined('ABSPATH') or die('No script kiddies please!');
|
42 |
* @param WP_Post $post_before
|
43 |
*/
|
44 |
public function post_updated($post_id, $post_after, $post_before) {
|
45 |
+
$permalinkAfter = \DevOwl\RealCookieBanner\Utils::getPermalink($post_after);
|
46 |
+
$permalinkBefore = \DevOwl\RealCookieBanner\Utils::getPermalink($post_before);
|
47 |
if ($permalinkAfter !== $permalinkBefore) {
|
48 |
$this->scanner->getQuery()->removeSourceUrls([$permalinkBefore]);
|
49 |
}
|
56 |
public function delete_post($post_id) {
|
57 |
$post = get_post($post_id);
|
58 |
if ($post) {
|
59 |
+
$link = \DevOwl\RealCookieBanner\Utils::getPermalink($post);
|
60 |
if (!empty($link)) {
|
61 |
$this->scanner->getQuery()->removeSourceUrls([$link]);
|
62 |
}
|
68 |
* @param int $post_id
|
69 |
*/
|
70 |
public function wp_trash_post($post_id) {
|
71 |
+
$link = \DevOwl\RealCookieBanner\Utils::getPermalink(get_post($post_id));
|
72 |
if (!empty($link)) {
|
73 |
$this->scanner->getQuery()->removeSourceUrls([$link]);
|
74 |
}
|
80 |
*/
|
81 |
protected function fromPost($post) {
|
82 |
if (is_post_type_viewable($post->post_type)) {
|
83 |
+
$link = \DevOwl\RealCookieBanner\Utils::getPermalink($post);
|
84 |
if (!empty($link)) {
|
85 |
if ($post->post_status === 'publish') {
|
86 |
$this->addUrlToScanner($link);
|
111 |
}
|
112 |
$this->scanner->addUrlsToQueue(\array_unique($urls));
|
113 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
/**
|
115 |
* Getter.
|
116 |
*
|
inc/scanner/Query.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\scanner;
|
4 |
|
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable;
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
@@ -369,11 +370,18 @@ class Query {
|
|
369 |
foreach ($hosts as $host) {
|
370 |
$hostsArray = \array_merge($hostsArray, \explode("\n", $host));
|
371 |
}
|
372 |
-
$
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
}
|
378 |
/**
|
379 |
* Transform a set of expression strings to a valid SQL statement. The regular
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\scanner;
|
4 |
|
5 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\FastHtmlTag\finder\SelectorSyntaxFinder;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\Constants;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable;
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
370 |
foreach ($hosts as $host) {
|
371 |
$hostsArray = \array_merge($hostsArray, \explode("\n", $host));
|
372 |
}
|
373 |
+
$urlExpressions = [];
|
374 |
+
foreach (\array_filter($hostsArray) as $host) {
|
375 |
+
// Filter out custom element expressions
|
376 |
+
if (
|
377 |
+
\DevOwl\RealCookieBanner\Vendor\DevOwl\FastHtmlTag\finder\SelectorSyntaxFinder::fromExpression(
|
378 |
+
$host
|
379 |
+
) === \false
|
380 |
+
) {
|
381 |
+
$urlExpressions[] = $host;
|
382 |
+
}
|
383 |
+
}
|
384 |
+
return $urlExpressions;
|
385 |
}
|
386 |
/**
|
387 |
* Transform a set of expression strings to a valid SQL statement. The regular
|
inc/scanner/Scanner.php
CHANGED
@@ -279,18 +279,14 @@ class Scanner {
|
|
279 |
}
|
280 |
$presets = new \DevOwl\RealCookieBanner\presets\BlockerPresets();
|
281 |
foreach ($presets->getAllFromCache() as $preset) {
|
282 |
-
if ($preset['disabled']) {
|
283 |
continue;
|
284 |
}
|
285 |
-
$
|
286 |
-
|
287 |
-
$
|
288 |
-
|
289 |
-
|
290 |
-
$preset['extended'] ?? null,
|
291 |
-
$preset['scanOptions'] ?? []
|
292 |
-
);
|
293 |
-
}
|
294 |
}
|
295 |
return $blockables;
|
296 |
}
|
279 |
}
|
280 |
$presets = new \DevOwl\RealCookieBanner\presets\BlockerPresets();
|
281 |
foreach ($presets->getAllFromCache() as $preset) {
|
282 |
+
if ($preset['disabled'] || !isset($preset['scanOptions'])) {
|
283 |
continue;
|
284 |
}
|
285 |
+
$blockables[] = new \DevOwl\RealCookieBanner\Vendor\DevOwl\HeadlessContentBlocker\plugins\scanner\ScannableBlockable(
|
286 |
+
$preset['identifier'],
|
287 |
+
$preset['extended'] ?? null,
|
288 |
+
$preset['scanOptions'] ?? []
|
289 |
+
);
|
|
|
|
|
|
|
|
|
290 |
}
|
291 |
return $blockables;
|
292 |
}
|
inc/settings/Consent.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\settings;
|
4 |
|
|
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
use DevOwl\RealCookieBanner\lite\settings\Consent as LiteConsent;
|
7 |
use DevOwl\RealCookieBanner\overrides\interfce\settings\IOverrideConsent;
|
@@ -22,12 +23,14 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
22 |
const SETTING_SAVE_IP = RCB_OPT_PREFIX . '-save-ip';
|
23 |
const SETTING_EPRIVACY_USA = RCB_OPT_PREFIX . '-eprivacy-usa';
|
24 |
const SETTING_AGE_NOTICE = RCB_OPT_PREFIX . '-age-notice';
|
|
|
25 |
const DEFAULT_ACCEPT_ALL_FOR_BOTS = \true;
|
26 |
const DEFAULT_RESPECT_DO_NOT_TRACK = \false;
|
27 |
const DEFAULT_COOKIE_DURATION = 365;
|
28 |
const DEFAULT_SAVE_IP = \false;
|
29 |
const DEFAULT_EPRIVACY_USA = \false;
|
30 |
const DEFAULT_AGE_NOTICE = \true;
|
|
|
31 |
/**
|
32 |
* Singleton instance.
|
33 |
*
|
@@ -69,6 +72,11 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
69 |
self::DEFAULT_AGE_NOTICE,
|
70 |
'boolval'
|
71 |
);
|
|
|
|
|
|
|
|
|
|
|
72 |
$this->overrideEnableOptionsAutoload();
|
73 |
}
|
74 |
/**
|
@@ -89,6 +97,10 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
89 |
]);
|
90 |
register_setting(self::OPTION_GROUP, self::SETTING_SAVE_IP, ['type' => 'boolean', 'show_in_rest' => \true]);
|
91 |
register_setting(self::OPTION_GROUP, self::SETTING_AGE_NOTICE, ['type' => 'boolean', 'show_in_rest' => \true]);
|
|
|
|
|
|
|
|
|
92 |
$this->overrideRegister();
|
93 |
}
|
94 |
/**
|
@@ -123,6 +135,14 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
123 |
public function isAgeNoticeEnabled() {
|
124 |
return get_option(self::SETTING_AGE_NOTICE);
|
125 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
/**
|
127 |
* Get the cookie duration for the consent cookies.
|
128 |
*
|
@@ -152,4 +172,14 @@ class Consent implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
152 |
public static function getInstance() {
|
153 |
return self::$me === null ? (self::$me = new \DevOwl\RealCookieBanner\settings\Consent()) : self::$me;
|
154 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
}
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\settings;
|
4 |
|
5 |
+
use DevOwl\RealCookieBanner\Core;
|
6 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
7 |
use DevOwl\RealCookieBanner\lite\settings\Consent as LiteConsent;
|
8 |
use DevOwl\RealCookieBanner\overrides\interfce\settings\IOverrideConsent;
|
23 |
const SETTING_SAVE_IP = RCB_OPT_PREFIX . '-save-ip';
|
24 |
const SETTING_EPRIVACY_USA = RCB_OPT_PREFIX . '-eprivacy-usa';
|
25 |
const SETTING_AGE_NOTICE = RCB_OPT_PREFIX . '-age-notice';
|
26 |
+
const SETTING_LIST_SERVICES_NOTICE = RCB_OPT_PREFIX . '-list-services-notice';
|
27 |
const DEFAULT_ACCEPT_ALL_FOR_BOTS = \true;
|
28 |
const DEFAULT_RESPECT_DO_NOT_TRACK = \false;
|
29 |
const DEFAULT_COOKIE_DURATION = 365;
|
30 |
const DEFAULT_SAVE_IP = \false;
|
31 |
const DEFAULT_EPRIVACY_USA = \false;
|
32 |
const DEFAULT_AGE_NOTICE = \true;
|
33 |
+
const DEFAULT_LIST_SERVICES_NOTICE = \true;
|
34 |
/**
|
35 |
* Singleton instance.
|
36 |
*
|
72 |
self::DEFAULT_AGE_NOTICE,
|
73 |
'boolval'
|
74 |
);
|
75 |
+
\DevOwl\RealCookieBanner\settings\General::enableOptionAutoload(
|
76 |
+
self::SETTING_LIST_SERVICES_NOTICE,
|
77 |
+
self::DEFAULT_LIST_SERVICES_NOTICE,
|
78 |
+
'boolval'
|
79 |
+
);
|
80 |
$this->overrideEnableOptionsAutoload();
|
81 |
}
|
82 |
/**
|
97 |
]);
|
98 |
register_setting(self::OPTION_GROUP, self::SETTING_SAVE_IP, ['type' => 'boolean', 'show_in_rest' => \true]);
|
99 |
register_setting(self::OPTION_GROUP, self::SETTING_AGE_NOTICE, ['type' => 'boolean', 'show_in_rest' => \true]);
|
100 |
+
register_setting(self::OPTION_GROUP, self::SETTING_LIST_SERVICES_NOTICE, [
|
101 |
+
'type' => 'boolean',
|
102 |
+
'show_in_rest' => \true
|
103 |
+
]);
|
104 |
$this->overrideRegister();
|
105 |
}
|
106 |
/**
|
135 |
public function isAgeNoticeEnabled() {
|
136 |
return get_option(self::SETTING_AGE_NOTICE);
|
137 |
}
|
138 |
+
/**
|
139 |
+
* Check if list-services notice hint is enabled
|
140 |
+
*
|
141 |
+
* @return boolean
|
142 |
+
*/
|
143 |
+
public function isListServicesNoticeEnabled() {
|
144 |
+
return get_option(self::SETTING_LIST_SERVICES_NOTICE);
|
145 |
+
}
|
146 |
/**
|
147 |
* Get the cookie duration for the consent cookies.
|
148 |
*
|
172 |
public static function getInstance() {
|
173 |
return self::$me === null ? (self::$me = new \DevOwl\RealCookieBanner\settings\Consent()) : self::$me;
|
174 |
}
|
175 |
+
/**
|
176 |
+
* Deactivate "Naming of all services in first view" as it should not be activated automatically for already existing users.
|
177 |
+
*
|
178 |
+
* @param string|false $installed
|
179 |
+
*/
|
180 |
+
public static function new_version_installation_after_2_17_3($installed) {
|
181 |
+
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.17.3', ['2.17.4', '2.18.0'])) {
|
182 |
+
update_option(self::SETTING_LIST_SERVICES_NOTICE, '');
|
183 |
+
}
|
184 |
+
}
|
185 |
}
|
inc/settings/Cookie.php
CHANGED
@@ -483,6 +483,32 @@ class Cookie {
|
|
483 |
public function getAllCount() {
|
484 |
return \array_sum(\array_map('intval', \array_values((array) wp_count_posts(self::CPT_NAME))));
|
485 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
/**
|
487 |
* Modify the cookie item schema and allow to pass the opt-in codes as base64-encoded strings
|
488 |
* so they do not get inspected as XSS e.g. in Cloudflare.
|
483 |
public function getAllCount() {
|
484 |
return \array_sum(\array_map('intval', \array_values((array) wp_count_posts(self::CPT_NAME))));
|
485 |
}
|
486 |
+
/**
|
487 |
+
* Get a created service by identifier.
|
488 |
+
*
|
489 |
+
* @param string $identifier
|
490 |
+
*/
|
491 |
+
public function getServiceByIdentifier($identifier) {
|
492 |
+
$realCookieBannerService = get_posts(
|
493 |
+
\DevOwl\RealCookieBanner\Core::getInstance()->queryArguments(
|
494 |
+
[
|
495 |
+
'post_type' => \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME,
|
496 |
+
'numberposts' => -1,
|
497 |
+
'nopaging' => \true,
|
498 |
+
'meta_query' => [
|
499 |
+
[
|
500 |
+
'key' => \DevOwl\RealCookieBanner\settings\Blocker::META_NAME_PRESET_ID,
|
501 |
+
'value' => $identifier,
|
502 |
+
'compare' => '='
|
503 |
+
]
|
504 |
+
],
|
505 |
+
'post_status' => ['publish', 'private', 'draft']
|
506 |
+
],
|
507 |
+
'Cookie::getServiceByIdentifier'
|
508 |
+
)
|
509 |
+
);
|
510 |
+
return $realCookieBannerService[0] ?? null;
|
511 |
+
}
|
512 |
/**
|
513 |
* Modify the cookie item schema and allow to pass the opt-in codes as base64-encoded strings
|
514 |
* so they do not get inspected as XSS e.g. in Cloudflare.
|
inc/settings/General.php
CHANGED
@@ -3,9 +3,12 @@
|
|
3 |
namespace DevOwl\RealCookieBanner\settings;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
|
|
6 |
use DevOwl\RealCookieBanner\lite\settings\General as LiteGeneral;
|
7 |
use DevOwl\RealCookieBanner\overrides\interfce\settings\IOverrideGeneral;
|
8 |
use DevOwl\RealCookieBanner\view\customize\banner\Legal;
|
|
|
|
|
9 |
// @codeCoverageIgnoreStart
|
10 |
\defined('ABSPATH') or die('No script kiddies please!');
|
11 |
// Avoid direct file request
|
@@ -170,7 +173,7 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
170 |
} else {
|
171 |
$id = get_option(self::SETTING_IMPRINT_ID);
|
172 |
if ($id > 0) {
|
173 |
-
$permalink =
|
174 |
if ($permalink !== \false) {
|
175 |
return $permalink;
|
176 |
}
|
@@ -194,7 +197,7 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
194 |
} else {
|
195 |
$id = get_option(self::SETTING_PRIVACY_POLICY_ID, $this->getDefaultPrivacyPolicy());
|
196 |
if ($id > 0) {
|
197 |
-
$permalink =
|
198 |
if ($permalink !== \false) {
|
199 |
return $permalink;
|
200 |
}
|
@@ -206,7 +209,10 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
206 |
* Get default privacy policy post ID.
|
207 |
*/
|
208 |
public function getDefaultPrivacyPolicy() {
|
209 |
-
|
|
|
|
|
|
|
210 |
}
|
211 |
/**
|
212 |
* Return a map of `post_id` to permalink URL for imprint and privacy policy.
|
@@ -225,6 +231,108 @@ class General implements \DevOwl\RealCookieBanner\overrides\interfce\settings\IO
|
|
225 |
}
|
226 |
return $result;
|
227 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
/**
|
229 |
* Get singleton instance.
|
230 |
*
|
3 |
namespace DevOwl\RealCookieBanner\settings;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
+
use DevOwl\RealCookieBanner\Core;
|
7 |
use DevOwl\RealCookieBanner\lite\settings\General as LiteGeneral;
|
8 |
use DevOwl\RealCookieBanner\overrides\interfce\settings\IOverrideGeneral;
|
9 |
use DevOwl\RealCookieBanner\view\customize\banner\Legal;
|
10 |
+
use DevOwl\RealCookieBanner\presets\PresetIdentifierMap;
|
11 |
+
use DevOwl\RealCookieBanner\Utils;
|
12 |
// @codeCoverageIgnoreStart
|
13 |
\defined('ABSPATH') or die('No script kiddies please!');
|
14 |
// Avoid direct file request
|
173 |
} else {
|
174 |
$id = get_option(self::SETTING_IMPRINT_ID);
|
175 |
if ($id > 0) {
|
176 |
+
$permalink = \DevOwl\RealCookieBanner\Utils::getPermalink($id);
|
177 |
if ($permalink !== \false) {
|
178 |
return $permalink;
|
179 |
}
|
197 |
} else {
|
198 |
$id = get_option(self::SETTING_PRIVACY_POLICY_ID, $this->getDefaultPrivacyPolicy());
|
199 |
if ($id > 0) {
|
200 |
+
$permalink = \DevOwl\RealCookieBanner\Utils::getPermalink($id);
|
201 |
if ($permalink !== \false) {
|
202 |
return $permalink;
|
203 |
}
|
209 |
* Get default privacy policy post ID.
|
210 |
*/
|
211 |
public function getDefaultPrivacyPolicy() {
|
212 |
+
$privacyPolicy = \intval(get_option('wp_page_for_privacy_policy', self::DEFAULT_PRIVACY_POLICY_ID));
|
213 |
+
return \in_array(get_post_status($privacyPolicy), ['draft', 'publish'], \true)
|
214 |
+
? $privacyPolicy
|
215 |
+
: self::DEFAULT_PRIVACY_POLICY_ID;
|
216 |
}
|
217 |
/**
|
218 |
* Return a map of `post_id` to permalink URL for imprint and privacy policy.
|
231 |
}
|
232 |
return $result;
|
233 |
}
|
234 |
+
/**
|
235 |
+
* When a page gets deleted, check if the value is our configured imprint or privacy policy
|
236 |
+
* page and reset the value accordingly.
|
237 |
+
*
|
238 |
+
* @param number $postId
|
239 |
+
*/
|
240 |
+
public function delete_post_imprint_privacy_policy($postId) {
|
241 |
+
$imprintId = get_option(self::SETTING_IMPRINT_ID);
|
242 |
+
$privacyPolicyId = get_option(self::SETTING_PRIVACY_POLICY_ID);
|
243 |
+
if ($postId === $imprintId) {
|
244 |
+
update_option(self::SETTING_IMPRINT_ID, self::DEFAULT_IMPRINT_ID);
|
245 |
+
}
|
246 |
+
if ($postId === $privacyPolicyId) {
|
247 |
+
update_option(self::SETTING_PRIVACY_POLICY_ID, self::DEFAULT_PRIVACY_POLICY_ID);
|
248 |
+
}
|
249 |
+
}
|
250 |
+
/**
|
251 |
+
* When Settings > Privacy got adjusted, apply the new privacy policy to the cookie settings, too.
|
252 |
+
*
|
253 |
+
* @param int $old_value
|
254 |
+
* @param int $new_value
|
255 |
+
*/
|
256 |
+
public function update_option_wp_page_for_privacy_policy($old_value, $new_value) {
|
257 |
+
$compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
|
258 |
+
if ($compLanguage !== null) {
|
259 |
+
$new_value = $compLanguage->getOriginalPostId($new_value, 'page');
|
260 |
+
}
|
261 |
+
if (get_post_status($new_value) === 'publish') {
|
262 |
+
update_option(self::SETTING_PRIVACY_POLICY_ID, $new_value);
|
263 |
+
}
|
264 |
+
}
|
265 |
+
/**
|
266 |
+
* When the privacy policy page gets adjusted, let's update the Real Cookie Banner services
|
267 |
+
* including the WPML/PolyLang translations.
|
268 |
+
*
|
269 |
+
* @param int $old_value
|
270 |
+
* @param int $new_value
|
271 |
+
*/
|
272 |
+
public function update_option_privacy_policy($old_value, $new_value) {
|
273 |
+
$compLanguage = \DevOwl\RealCookieBanner\Core::getInstance()->getCompLanguage();
|
274 |
+
$fnUpdate = function () use ($compLanguage, $new_value) {
|
275 |
+
$realCookieBannerService = \DevOwl\RealCookieBanner\settings\Cookie::getInstance()->getServiceByIdentifier(
|
276 |
+
\DevOwl\RealCookieBanner\presets\PresetIdentifierMap::REAL_COOKIE_BANNER
|
277 |
+
);
|
278 |
+
if ($realCookieBannerService !== null) {
|
279 |
+
$rcbServiceId = $realCookieBannerService->ID;
|
280 |
+
$oldPrivacyPolicy = get_post_meta(
|
281 |
+
$rcbServiceId,
|
282 |
+
\DevOwl\RealCookieBanner\settings\Cookie::META_NAME_PROVIDER_PRIVACY_POLICY,
|
283 |
+
\true
|
284 |
+
);
|
285 |
+
$postId = $new_value;
|
286 |
+
if ($compLanguage !== null) {
|
287 |
+
$postId = $compLanguage->getCurrentPostId($postId, 'page');
|
288 |
+
}
|
289 |
+
$permalink = \DevOwl\RealCookieBanner\Utils::getPermalink($postId);
|
290 |
+
if (!empty($permalink)) {
|
291 |
+
update_post_meta(
|
292 |
+
$rcbServiceId,
|
293 |
+
\DevOwl\RealCookieBanner\settings\Cookie::META_NAME_PROVIDER_PRIVACY_POLICY,
|
294 |
+
$permalink
|
295 |
+
);
|
296 |
+
// Search for all other local services like "WordPress Comments"
|
297 |
+
if (!empty($oldPrivacyPolicy)) {
|
298 |
+
$postsWithOldPrivacyPolicy = get_posts(
|
299 |
+
\DevOwl\RealCookieBanner\Core::getInstance()->queryArguments(
|
300 |
+
[
|
301 |
+
'lang' => 'all',
|
302 |
+
'post_type' => \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME,
|
303 |
+
'numberposts' => -1,
|
304 |
+
'fields' => 'ids',
|
305 |
+
'nopaging' => \true,
|
306 |
+
'meta_query' => [
|
307 |
+
[
|
308 |
+
'key' =>
|
309 |
+
\DevOwl\RealCookieBanner\settings\Cookie::META_NAME_PROVIDER_PRIVACY_POLICY,
|
310 |
+
'value' => $oldPrivacyPolicy,
|
311 |
+
'compare' => '='
|
312 |
+
]
|
313 |
+
],
|
314 |
+
'post_status' => ['publish', 'private', 'draft']
|
315 |
+
],
|
316 |
+
'General::update_option_privacy_policy'
|
317 |
+
)
|
318 |
+
);
|
319 |
+
foreach ($postsWithOldPrivacyPolicy as $postWithOldPrivacyPolicy) {
|
320 |
+
update_post_meta(
|
321 |
+
$postWithOldPrivacyPolicy,
|
322 |
+
\DevOwl\RealCookieBanner\settings\Cookie::META_NAME_PROVIDER_PRIVACY_POLICY,
|
323 |
+
$permalink
|
324 |
+
);
|
325 |
+
}
|
326 |
+
}
|
327 |
+
}
|
328 |
+
}
|
329 |
+
};
|
330 |
+
if ($compLanguage !== null && $compLanguage->isActive()) {
|
331 |
+
$compLanguage->iterateAllLanguagesContext($fnUpdate);
|
332 |
+
} else {
|
333 |
+
$fnUpdate();
|
334 |
+
}
|
335 |
+
}
|
336 |
/**
|
337 |
* Get singleton instance.
|
338 |
*
|
inc/view/ConfigPage.php
CHANGED
@@ -5,6 +5,8 @@ namespace DevOwl\RealCookieBanner\view;
|
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
use DevOwl\RealCookieBanner\settings\General;
|
7 |
use DevOwl\RealCookieBanner\Core;
|
|
|
|
|
8 |
use DevOwl\RealCookieBanner\Utils;
|
9 |
use WP_Admin_Bar;
|
10 |
// @codeCoverageIgnoreStart
|
@@ -22,12 +24,67 @@ class ConfigPage {
|
|
22 |
const NEXT_PRO_NOTICE = 60 * 60 * 24 * 30;
|
23 |
// 30 days
|
24 |
const ADMIN_BAR_TOP_LEVEL_NODE_ID = 'rcb-top-node';
|
|
|
25 |
/**
|
26 |
* C'tor.
|
27 |
*/
|
28 |
private function __construct() {
|
29 |
// Silence is golden.
|
30 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* Creates an admin notice for preinstalled environments.
|
33 |
*/
|
@@ -193,15 +250,14 @@ class ConfigPage {
|
|
193 |
'<span style="color:#b63c3c;">⬤</span> %s',
|
194 |
__('Disabled', RCB_TD)
|
195 |
);
|
|
|
196 |
$wp_admin_bar->add_menu([
|
197 |
'parent' => self::ADMIN_BAR_TOP_LEVEL_NODE_ID,
|
198 |
'id' => 'rcb-cookie-banner-active',
|
199 |
'title' => \sprintf(
|
200 |
'%s: %s',
|
201 |
__('Cookie Banner', RCB_TD),
|
202 |
-
|
203 |
-
? $enabledLabel
|
204 |
-
: $disabledLabel
|
205 |
)
|
206 |
]);
|
207 |
$wp_admin_bar->add_menu([
|
@@ -210,6 +266,7 @@ class ConfigPage {
|
|
210 |
'title' => \sprintf(
|
211 |
'%s: %s',
|
212 |
__('Content Blocker', RCB_TD),
|
|
|
213 |
\DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive()
|
214 |
? $enabledLabel
|
215 |
: $disabledLabel
|
5 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
6 |
use DevOwl\RealCookieBanner\settings\General;
|
7 |
use DevOwl\RealCookieBanner\Core;
|
8 |
+
use DevOwl\RealCookieBanner\settings\Cookie;
|
9 |
+
use DevOwl\RealCookieBanner\settings\CookieGroup;
|
10 |
use DevOwl\RealCookieBanner\Utils;
|
11 |
use WP_Admin_Bar;
|
12 |
// @codeCoverageIgnoreStart
|
24 |
const NEXT_PRO_NOTICE = 60 * 60 * 24 * 30;
|
25 |
// 30 days
|
26 |
const ADMIN_BAR_TOP_LEVEL_NODE_ID = 'rcb-top-node';
|
27 |
+
const TRANSIENT_SERVICES_WITH_EMPTY_PRIVACY_POLICY = RCB_OPT_PREFIX . '-services-with-empty-privacy-policy';
|
28 |
/**
|
29 |
* C'tor.
|
30 |
*/
|
31 |
private function __construct() {
|
32 |
// Silence is golden.
|
33 |
}
|
34 |
+
/**
|
35 |
+
* Create an admin notice for services without privacy policy set.
|
36 |
+
*/
|
37 |
+
public function admin_notices_services_with_empty_privacy_policy() {
|
38 |
+
$url = $this->getUrl();
|
39 |
+
$servicesWithoutPrivacyPolicy = get_posts(
|
40 |
+
\DevOwl\RealCookieBanner\Core::getInstance()->queryArguments(
|
41 |
+
[
|
42 |
+
'post_type' => \DevOwl\RealCookieBanner\settings\Cookie::CPT_NAME,
|
43 |
+
'fields' => 'ids',
|
44 |
+
'numberposts' => -1,
|
45 |
+
'nopaging' => \true,
|
46 |
+
'meta_query' => [
|
47 |
+
[
|
48 |
+
'key' => \DevOwl\RealCookieBanner\settings\Cookie::META_NAME_PROVIDER_PRIVACY_POLICY,
|
49 |
+
'value' => '',
|
50 |
+
'compare' => ''
|
51 |
+
]
|
52 |
+
],
|
53 |
+
'post_status' => ['publish', 'private', 'draft']
|
54 |
+
],
|
55 |
+
'ConfigPage::admin_notices_services_with_empty_privacy_policy'
|
56 |
+
)
|
57 |
+
);
|
58 |
+
if (\count($servicesWithoutPrivacyPolicy) === 0) {
|
59 |
+
return;
|
60 |
+
}
|
61 |
+
$liOutput = [];
|
62 |
+
$isConfigPage = $this->isVisible();
|
63 |
+
foreach ($servicesWithoutPrivacyPolicy as $serviceId) {
|
64 |
+
$service = get_post($serviceId);
|
65 |
+
$cookieGroup =
|
66 |
+
get_the_terms($service, \DevOwl\RealCookieBanner\settings\CookieGroup::TAXONOMY_NAME)[0] ?? null;
|
67 |
+
if ($cookieGroup === null || $service === null) {
|
68 |
+
continue;
|
69 |
+
}
|
70 |
+
$liOutput[] = \sprintf(
|
71 |
+
'<li data-id="%d">%s • <a href="%s" target="%s">%s</a></li>',
|
72 |
+
$serviceId,
|
73 |
+
$service->post_title,
|
74 |
+
esc_attr($url . '#/cookies/' . $cookieGroup->term_id . '/edit/' . $serviceId),
|
75 |
+
$isConfigPage ? '_top' : '_blank',
|
76 |
+
__('Set privacy policy URL', RCB_TD)
|
77 |
+
);
|
78 |
+
}
|
79 |
+
echo \sprintf(
|
80 |
+
'<div class="notice notice-warning" id="rcb-services-with-empty-privacy-policy-notice"><p>%s</p><ul>%s</ul></div>',
|
81 |
+
__(
|
82 |
+
'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!',
|
83 |
+
RCB_TD
|
84 |
+
),
|
85 |
+
\join('', $liOutput)
|
86 |
+
);
|
87 |
+
}
|
88 |
/**
|
89 |
* Creates an admin notice for preinstalled environments.
|
90 |
*/
|
250 |
'<span style="color:#b63c3c;">⬤</span> %s',
|
251 |
__('Disabled', RCB_TD)
|
252 |
);
|
253 |
+
$isBannerActive = \DevOwl\RealCookieBanner\settings\General::getInstance()->isBannerActive();
|
254 |
$wp_admin_bar->add_menu([
|
255 |
'parent' => self::ADMIN_BAR_TOP_LEVEL_NODE_ID,
|
256 |
'id' => 'rcb-cookie-banner-active',
|
257 |
'title' => \sprintf(
|
258 |
'%s: %s',
|
259 |
__('Cookie Banner', RCB_TD),
|
260 |
+
$isBannerActive ? $enabledLabel : $disabledLabel
|
|
|
|
|
261 |
)
|
262 |
]);
|
263 |
$wp_admin_bar->add_menu([
|
266 |
'title' => \sprintf(
|
267 |
'%s: %s',
|
268 |
__('Content Blocker', RCB_TD),
|
269 |
+
$isBannerActive &&
|
270 |
\DevOwl\RealCookieBanner\settings\General::getInstance()->isBlockerActive()
|
271 |
? $enabledLabel
|
272 |
: $disabledLabel
|
inc/view/checklist/GetPro.php
CHANGED
@@ -35,7 +35,7 @@ class GetPro extends \DevOwl\RealCookieBanner\view\checklist\AbstractChecklistIt
|
|
35 |
}
|
36 |
// Documented in AbstractChecklistItem
|
37 |
public function getLink() {
|
38 |
-
return RCB_PRO_VERSION;
|
39 |
}
|
40 |
// Documented in AbstractChecklistItem
|
41 |
public function needsPro() {
|
35 |
}
|
36 |
// Documented in AbstractChecklistItem
|
37 |
public function getLink() {
|
38 |
+
return add_query_arg('feature', 'checklist', RCB_PRO_VERSION);
|
39 |
}
|
40 |
// Documented in AbstractChecklistItem
|
41 |
public function needsPro() {
|
inc/view/customize/banner/BasicLayout.php
CHANGED
@@ -5,6 +5,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\Core;
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
@@ -44,7 +45,7 @@ class BasicLayout {
|
|
44 |
const DEFAULT_TYPE = 'dialog';
|
45 |
const DEFAULT_DIALOG_POSITION = 'middleCenter';
|
46 |
const DEFAULT_DIALOG_MARGIN = [0, 0, 0, 0];
|
47 |
-
const DEFAULT_DIALOG_MAX_WIDTH =
|
48 |
const DEFAULT_BANNER_POSITION = 'bottom';
|
49 |
const DEFAULT_BANNER_MAX_WIDTH = 1024;
|
50 |
const DEFAULT_OVERLAY = \true;
|
@@ -53,10 +54,10 @@ class BasicLayout {
|
|
53 |
const DEFAULT_OVERLAY_BLUR = 2;
|
54 |
const DEFAULT_ANIMATION_IN = 'slideInUp';
|
55 |
const DEFAULT_ANIMATION_IN_DURATION = 500;
|
56 |
-
const
|
57 |
const DEFAULT_ANIMATION_OUT = 'none';
|
58 |
const DEFAULT_ANIMATION_OUT_DURATION = 500;
|
59 |
-
const
|
60 |
const DEFAULT_BORDER_RADIUS = 5;
|
61 |
const DEFAULT_DIALOG_BORDER_RADIUS = 3;
|
62 |
/**
|
@@ -76,9 +77,10 @@ class BasicLayout {
|
|
76 |
],
|
77 |
self::SETTING_DIALOG_MAX_WIDTH => [
|
78 |
'name' => 'dialogMaxWidth',
|
79 |
-
'label' => __('Maximum width
|
80 |
-
'
|
81 |
-
'
|
|
|
82 |
'setting' => ['default' => self::DEFAULT_DIALOG_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
83 |
],
|
84 |
self::SETTING_DIALOG_POSITION => [
|
@@ -114,22 +116,25 @@ class BasicLayout {
|
|
114 |
],
|
115 |
self::SETTING_BANNER_MAX_WIDTH => [
|
116 |
'name' => 'bannerMaxWidth',
|
117 |
-
'label' => __('Maximum content width
|
118 |
-
'
|
119 |
-
'
|
|
|
120 |
'setting' => ['default' => self::DEFAULT_BANNER_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
121 |
],
|
122 |
self::SETTING_DIALOG_BORDER_RADIUS => [
|
123 |
'name' => 'dialogBorderRadius',
|
124 |
'label' => __('Dialog border radius', RCB_TD),
|
125 |
-
'
|
|
|
126 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
127 |
'setting' => ['default' => self::DEFAULT_DIALOG_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
128 |
],
|
129 |
self::SETTING_BORDER_RADIUS => [
|
130 |
'name' => 'borderRadius',
|
131 |
'label' => __('Button border radius', RCB_TD),
|
132 |
-
'
|
|
|
133 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
134 |
'setting' => ['default' => self::DEFAULT_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
135 |
],
|
@@ -146,9 +151,10 @@ class BasicLayout {
|
|
146 |
],
|
147 |
self::SETTING_ANIMATION_IN_DURATION => [
|
148 |
'name' => 'animationInDuration',
|
149 |
-
'label' => __('Duration
|
150 |
-
'
|
151 |
-
'
|
|
|
152 |
'setting' => ['default' => self::DEFAULT_ANIMATION_IN_DURATION, 'sanitize_callback' => 'absint']
|
153 |
],
|
154 |
self::SETTING_ANIMATION_IN_ONLY_MOBILE => [
|
@@ -156,7 +162,7 @@ class BasicLayout {
|
|
156 |
'label' => __('Animation only on mobile devices', RCB_TD),
|
157 |
'type' => 'checkbox',
|
158 |
'setting' => [
|
159 |
-
'default' => self::
|
160 |
'sanitize_callback' => [
|
161 |
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
162 |
'sanitize_checkbox'
|
@@ -176,9 +182,10 @@ class BasicLayout {
|
|
176 |
],
|
177 |
self::SETTING_ANIMATION_OUT_DURATION => [
|
178 |
'name' => 'animationOutDuration',
|
179 |
-
'label' => __('Duration
|
180 |
-
'
|
181 |
-
'
|
|
|
182 |
'setting' => ['default' => self::DEFAULT_ANIMATION_OUT_DURATION, 'sanitize_callback' => 'absint']
|
183 |
],
|
184 |
self::SETTING_ANIMATION_OUT_ONLY_MOBILE => [
|
@@ -186,7 +193,7 @@ class BasicLayout {
|
|
186 |
'label' => __('Animation only on mobile devices', RCB_TD),
|
187 |
'type' => 'checkbox',
|
188 |
'setting' => [
|
189 |
-
'default' => self::
|
190 |
'sanitize_callback' => [
|
191 |
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
192 |
'sanitize_checkbox'
|
@@ -281,8 +288,8 @@ class BasicLayout {
|
|
281 |
*/
|
282 |
public static function new_version_installation_after_2_15_0($installed) {
|
283 |
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.15.0', ['2.16.0', '2.15.1'])) {
|
284 |
-
update_option(self::SETTING_ANIMATION_IN_ONLY_MOBILE,
|
285 |
-
update_option(self::SETTING_ANIMATION_OUT_ONLY_MOBILE,
|
286 |
}
|
287 |
}
|
288 |
}
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
10 |
use DevOwl\RealCookieBanner\Core;
|
11 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
45 |
const DEFAULT_TYPE = 'dialog';
|
46 |
const DEFAULT_DIALOG_POSITION = 'middleCenter';
|
47 |
const DEFAULT_DIALOG_MARGIN = [0, 0, 0, 0];
|
48 |
+
const DEFAULT_DIALOG_MAX_WIDTH = 530;
|
49 |
const DEFAULT_BANNER_POSITION = 'bottom';
|
50 |
const DEFAULT_BANNER_MAX_WIDTH = 1024;
|
51 |
const DEFAULT_OVERLAY = \true;
|
54 |
const DEFAULT_OVERLAY_BLUR = 2;
|
55 |
const DEFAULT_ANIMATION_IN = 'slideInUp';
|
56 |
const DEFAULT_ANIMATION_IN_DURATION = 500;
|
57 |
+
const DEFAULT_ANIMATION_IN_ONLY_MOBILE = \true;
|
58 |
const DEFAULT_ANIMATION_OUT = 'none';
|
59 |
const DEFAULT_ANIMATION_OUT_DURATION = 500;
|
60 |
+
const DEFAULT_ANIMATION_OUT_ONLY_MOBILE = \true;
|
61 |
const DEFAULT_BORDER_RADIUS = 5;
|
62 |
const DEFAULT_DIALOG_BORDER_RADIUS = 3;
|
63 |
/**
|
77 |
],
|
78 |
self::SETTING_DIALOG_MAX_WIDTH => [
|
79 |
'name' => 'dialogMaxWidth',
|
80 |
+
'label' => __('Maximum width', RCB_TD),
|
81 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
82 |
+
'unit' => 'px',
|
83 |
+
'input_attrs' => ['step' => 5, 'min' => 200, 'max' => 3000],
|
84 |
'setting' => ['default' => self::DEFAULT_DIALOG_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
85 |
],
|
86 |
self::SETTING_DIALOG_POSITION => [
|
116 |
],
|
117 |
self::SETTING_BANNER_MAX_WIDTH => [
|
118 |
'name' => 'bannerMaxWidth',
|
119 |
+
'label' => __('Maximum content width', RCB_TD),
|
120 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
121 |
+
'unit' => 'px',
|
122 |
+
'input_attrs' => ['step' => 5, 'min' => 200, 'max' => 3000],
|
123 |
'setting' => ['default' => self::DEFAULT_BANNER_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
124 |
],
|
125 |
self::SETTING_DIALOG_BORDER_RADIUS => [
|
126 |
'name' => 'dialogBorderRadius',
|
127 |
'label' => __('Dialog border radius', RCB_TD),
|
128 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
129 |
+
'unit' => 'px',
|
130 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
131 |
'setting' => ['default' => self::DEFAULT_DIALOG_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
132 |
],
|
133 |
self::SETTING_BORDER_RADIUS => [
|
134 |
'name' => 'borderRadius',
|
135 |
'label' => __('Button border radius', RCB_TD),
|
136 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
137 |
+
'unit' => 'px',
|
138 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
139 |
'setting' => ['default' => self::DEFAULT_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
140 |
],
|
151 |
],
|
152 |
self::SETTING_ANIMATION_IN_DURATION => [
|
153 |
'name' => 'animationInDuration',
|
154 |
+
'label' => __('Duration', RCB_TD),
|
155 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
156 |
+
'unit' => 'ms',
|
157 |
+
'input_attrs' => ['step' => 500, 'min' => 0, 'max' => 20000],
|
158 |
'setting' => ['default' => self::DEFAULT_ANIMATION_IN_DURATION, 'sanitize_callback' => 'absint']
|
159 |
],
|
160 |
self::SETTING_ANIMATION_IN_ONLY_MOBILE => [
|
162 |
'label' => __('Animation only on mobile devices', RCB_TD),
|
163 |
'type' => 'checkbox',
|
164 |
'setting' => [
|
165 |
+
'default' => self::DEFAULT_ANIMATION_IN_ONLY_MOBILE,
|
166 |
'sanitize_callback' => [
|
167 |
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
168 |
'sanitize_checkbox'
|
182 |
],
|
183 |
self::SETTING_ANIMATION_OUT_DURATION => [
|
184 |
'name' => 'animationOutDuration',
|
185 |
+
'label' => __('Duration', RCB_TD),
|
186 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
187 |
+
'unit' => 'ms',
|
188 |
+
'input_attrs' => ['step' => 500, 'min' => 0, 'max' => 20000],
|
189 |
'setting' => ['default' => self::DEFAULT_ANIMATION_OUT_DURATION, 'sanitize_callback' => 'absint']
|
190 |
],
|
191 |
self::SETTING_ANIMATION_OUT_ONLY_MOBILE => [
|
193 |
'label' => __('Animation only on mobile devices', RCB_TD),
|
194 |
'type' => 'checkbox',
|
195 |
'setting' => [
|
196 |
+
'default' => self::DEFAULT_ANIMATION_OUT_ONLY_MOBILE,
|
197 |
'sanitize_callback' => [
|
198 |
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
199 |
'sanitize_checkbox'
|
288 |
*/
|
289 |
public static function new_version_installation_after_2_15_0($installed) {
|
290 |
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.15.0', ['2.16.0', '2.15.1'])) {
|
291 |
+
update_option(self::SETTING_ANIMATION_IN_ONLY_MOBILE, \false);
|
292 |
+
update_option(self::SETTING_ANIMATION_OUT_ONLY_MOBILE, \false);
|
293 |
}
|
294 |
}
|
295 |
}
|
inc/view/customize/banner/BodyDesign.php
CHANGED
@@ -6,7 +6,9 @@ use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
8 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
|
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
use WP_Customize_Color_Control;
|
12 |
// @codeCoverageIgnoreStart
|
@@ -21,8 +23,6 @@ class BodyDesign {
|
|
21 |
const SECTION = \DevOwl\RealCookieBanner\view\BannerCustomize::PANEL_MAIN . '-body-design';
|
22 |
const CUSTOM_HTML_BUTTON_ACCEPT_ALL_ONE_ROW_LAYOUT_NOTICE =
|
23 |
self::SECTION . '-custom-html-button-accept-all-one-row-layout-notice';
|
24 |
-
const CUSTOM_HTML_BUTTON_ACCEPT_ALL_SIMILAR_NOTICE =
|
25 |
-
self::SECTION . '-custom-html-button-accept-all-similar-notice';
|
26 |
const HEADLINE_TEACHINGS = self::SECTION . '-headline-teachings';
|
27 |
const HEADLINE_TEACHINGS_FONT = self::SECTION . '-headline-teachings-font';
|
28 |
const HEADLINE_TEACHINGS_SEPARATOR = self::SECTION . '-headline-teachings-separator';
|
@@ -68,6 +68,7 @@ class BodyDesign {
|
|
68 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_BG = self::SETTING . '-btn-accept-all-hover-bg';
|
69 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_BORDER_COLOR = self::SETTING . '-btn-accept-all-hover-border-color';
|
70 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_FONT_COLOR = self::SETTING . '-btn-accept-all-hover-font-color';
|
|
|
71 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_TYPE = self::SETTING . '-btn-accept-essentials-type';
|
72 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_PADDING = self::SETTING . '-btn-accept-essentials-padding';
|
73 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_BG = self::SETTING . '-btn-accept-essentials-bg';
|
@@ -94,7 +95,7 @@ class BodyDesign {
|
|
94 |
const SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BORDER_COLOR =
|
95 |
self::SETTING . '-btn-accept-individual-hover-border-color';
|
96 |
const SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR = self::SETTING . '-btn-accept-individual-hover-font-color';
|
97 |
-
const DEFAULT_PADDING = [15, 20,
|
98 |
const DEFAULT_DESCRIPTION_INHERIT_FONT_SIZE = \true;
|
99 |
const DEFAULT_DESCRIPTION_FONT_SIZE = \DevOwl\RealCookieBanner\view\customize\banner\Design::DEFAULT_FONT_SIZE;
|
100 |
const DEFAULT_DOTTED_GROUPS_INHERIT_FONT_SIZE = \true;
|
@@ -122,6 +123,7 @@ class BodyDesign {
|
|
122 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_BG = '#11607d';
|
123 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_BORDER_COLOR = '#000000';
|
124 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_FONT_COLOR = '#ffffff';
|
|
|
125 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_PADDING = self::DEFAULT_BUTTON_ACCEPT_ALL_PADDING;
|
126 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BG = '#efefef';
|
127 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_TEXT_ALIGN = 'center';
|
@@ -133,17 +135,17 @@ class BodyDesign {
|
|
133 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_BG = '#e8e8e8';
|
134 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR = '#000000';
|
135 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_FONT_COLOR = '#000000';
|
136 |
-
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_PADDING = [
|
137 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BG = '#ffffff';
|
138 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_TEXT_ALIGN = 'center';
|
139 |
-
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE =
|
140 |
-
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR = '#
|
141 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT = self::DEFAULT_BUTTON_ACCEPT_ALL_FONT_WEIGHT;
|
142 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH = 0;
|
143 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_COLOR = '#000000';
|
144 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BG = '#ffffff';
|
145 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BORDER_COLOR = '#000000';
|
146 |
-
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR = '#
|
147 |
/**
|
148 |
* Return arguments for this section.
|
149 |
*/
|
@@ -159,13 +161,6 @@ class BodyDesign {
|
|
159 |
RCB_TD
|
160 |
)
|
161 |
);
|
162 |
-
$textButtonAcceptAllSimilarNotice = \sprintf(
|
163 |
-
'<div class="notice notice-info inline below-h2 notice-alt" style="margin: 0"><p>%s</p></div>',
|
164 |
-
__(
|
165 |
-
'The "Accept" and "Reject" buttons should be the same size (button and text size) so that they are considered equal.',
|
166 |
-
RCB_TD
|
167 |
-
)
|
168 |
-
);
|
169 |
return [
|
170 |
'name' => 'bodyDesign',
|
171 |
'title' => __('Body', RCB_TD),
|
@@ -193,7 +188,8 @@ class BodyDesign {
|
|
193 |
self::SETTING_DESCRIPTION_FONT_SIZE => [
|
194 |
'name' => 'descriptionFontSize',
|
195 |
'label' => __('Description font size', RCB_TD),
|
196 |
-
'
|
|
|
197 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
198 |
'setting' => ['default' => self::DEFAULT_DESCRIPTION_FONT_SIZE, 'sanitize_callback' => 'absint']
|
199 |
],
|
@@ -212,7 +208,8 @@ class BodyDesign {
|
|
212 |
self::SETTING_DOTTED_GROUPS_FONT_SIZE => [
|
213 |
'name' => 'dottedGroupsFontSize',
|
214 |
'label' => __('Service groups font size', RCB_TD),
|
215 |
-
'
|
|
|
216 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
217 |
'setting' => ['default' => self::DEFAULT_DOTTED_GROUPS_FONT_SIZE, 'sanitize_callback' => 'absint']
|
218 |
],
|
@@ -276,15 +273,17 @@ class BodyDesign {
|
|
276 |
],
|
277 |
self::SETTING_TEACHINGS_SEPARATOR_WIDTH => [
|
278 |
'name' => 'teachingsSeparatorWidth',
|
279 |
-
'label' => __('Width
|
280 |
-
'
|
|
|
281 |
'input_attrs' => ['min' => 1, 'max' => 1000, 'step' => 5],
|
282 |
'setting' => ['default' => self::DEFAULT_TEACHINGS_SEPARATOR_WIDTH, 'sanitize_callback' => 'absint']
|
283 |
],
|
284 |
self::SETTING_TEACHINGS_SEPARATOR_HEIGHT => [
|
285 |
'name' => 'teachingsSeparatorHeight',
|
286 |
-
'label' => __('Height
|
287 |
-
'
|
|
|
288 |
'input_attrs' => ['min' => 1, 'max' => 20, 'step' => 1],
|
289 |
'setting' => [
|
290 |
'default' => self::DEFAULT_TEACHINGS_SEPARATOR_HEIGHT,
|
@@ -322,7 +321,8 @@ class BodyDesign {
|
|
322 |
self::SETTING_TEACHINGS_FONT_SIZE => [
|
323 |
'name' => 'teachingsFontSize',
|
324 |
'label' => __('Size', RCB_TD),
|
325 |
-
'
|
|
|
326 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
327 |
'setting' => ['default' => self::DEFAULT_TEACHINGS_FONT_SIZE, 'sanitize_callback' => 'absint']
|
328 |
],
|
@@ -352,11 +352,6 @@ class BodyDesign {
|
|
352 |
'name' => 'bodyDesignAcceptAll',
|
353 |
'label' => __('Button: Accept all', RCB_TD)
|
354 |
],
|
355 |
-
self::CUSTOM_HTML_BUTTON_ACCEPT_ALL_SIMILAR_NOTICE => [
|
356 |
-
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML::class,
|
357 |
-
'name' => 'customHtmlButtonAcceptAllSimilarNotice',
|
358 |
-
'description' => $textButtonAcceptAllSimilarNotice
|
359 |
-
],
|
360 |
self::SETTING_BUTTON_ACCEPT_ALL_TYPE => [
|
361 |
'label' => __('Type', RCB_TD),
|
362 |
'type' => 'acceptAllButtonType'
|
@@ -412,7 +407,8 @@ class BodyDesign {
|
|
412 |
self::SETTING_BUTTON_ACCEPT_ALL_FONT_SIZE => [
|
413 |
'name' => 'acceptAllFontSize',
|
414 |
'label' => __('Size', RCB_TD),
|
415 |
-
'
|
|
|
416 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
417 |
'setting' => [
|
418 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ALL_FONT_SIZE,
|
@@ -444,9 +440,10 @@ class BodyDesign {
|
|
444 |
],
|
445 |
self::SETTING_BUTTON_ACCEPT_ALL_BORDER_WIDTH => [
|
446 |
'name' => 'acceptAllBorderWidth',
|
447 |
-
'
|
448 |
-
'
|
449 |
-
'
|
|
|
450 |
'setting' => [
|
451 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ALL_BORDER_WIDTH,
|
452 |
'sanitize_callback' => 'absint'
|
@@ -504,9 +501,26 @@ class BodyDesign {
|
|
504 |
'name' => 'bodyDesignAcceptEssentials',
|
505 |
'label' => __('Button: Continue without consent', RCB_TD)
|
506 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
507 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_TYPE => [
|
508 |
'label' => __('Type', RCB_TD),
|
509 |
-
'type' => 'acceptEssentialsButtonType'
|
|
|
510 |
],
|
511 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_PADDING => [
|
512 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput::class,
|
@@ -542,7 +556,8 @@ class BodyDesign {
|
|
542 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_FONT_SIZE => [
|
543 |
'name' => 'acceptEssentialsFontSize',
|
544 |
'label' => __('Size', RCB_TD),
|
545 |
-
'
|
|
|
546 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
547 |
'setting' => [
|
548 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_FONT_SIZE,
|
@@ -574,9 +589,10 @@ class BodyDesign {
|
|
574 |
],
|
575 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_BORDER_WIDTH => [
|
576 |
'name' => 'acceptEssentialsBorderWidth',
|
577 |
-
'
|
578 |
-
'
|
579 |
-
'
|
|
|
580 |
'setting' => [
|
581 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BORDER_WIDTH,
|
582 |
'sanitize_callback' => 'absint'
|
@@ -672,7 +688,8 @@ class BodyDesign {
|
|
672 |
self::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => [
|
673 |
'name' => 'acceptIndividualFontSize',
|
674 |
'label' => __('Size', RCB_TD),
|
675 |
-
'
|
|
|
676 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
677 |
'setting' => [
|
678 |
'default' => self::DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE,
|
@@ -704,9 +721,10 @@ class BodyDesign {
|
|
704 |
],
|
705 |
self::SETTING_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH => [
|
706 |
'name' => 'acceptIndividualBorderWidth',
|
707 |
-
'
|
708 |
-
'
|
709 |
-
'
|
|
|
710 |
'setting' => [
|
711 |
'default' => self::DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH,
|
712 |
'sanitize_callback' => 'absint'
|
@@ -784,4 +802,14 @@ class BodyDesign {
|
|
784 |
'bold' => __('Bold', RCB_TD)
|
785 |
];
|
786 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
}
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
8 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
9 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
10 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
11 |
+
use DevOwl\RealCookieBanner\Core;
|
12 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
13 |
use WP_Customize_Color_Control;
|
14 |
// @codeCoverageIgnoreStart
|
23 |
const SECTION = \DevOwl\RealCookieBanner\view\BannerCustomize::PANEL_MAIN . '-body-design';
|
24 |
const CUSTOM_HTML_BUTTON_ACCEPT_ALL_ONE_ROW_LAYOUT_NOTICE =
|
25 |
self::SECTION . '-custom-html-button-accept-all-one-row-layout-notice';
|
|
|
|
|
26 |
const HEADLINE_TEACHINGS = self::SECTION . '-headline-teachings';
|
27 |
const HEADLINE_TEACHINGS_FONT = self::SECTION . '-headline-teachings-font';
|
28 |
const HEADLINE_TEACHINGS_SEPARATOR = self::SECTION . '-headline-teachings-separator';
|
68 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_BG = self::SETTING . '-btn-accept-all-hover-bg';
|
69 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_BORDER_COLOR = self::SETTING . '-btn-accept-all-hover-border-color';
|
70 |
const SETTING_BUTTON_ACCEPT_ALL_HOVER_FONT_COLOR = self::SETTING . '-btn-accept-all-hover-font-color';
|
71 |
+
const SETTING_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL = self::SETTING . '-btn-accept-essentials-use-accept-all';
|
72 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_TYPE = self::SETTING . '-btn-accept-essentials-type';
|
73 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_PADDING = self::SETTING . '-btn-accept-essentials-padding';
|
74 |
const SETTING_BUTTON_ACCEPT_ESSENTIALS_BG = self::SETTING . '-btn-accept-essentials-bg';
|
95 |
const SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BORDER_COLOR =
|
96 |
self::SETTING . '-btn-accept-individual-hover-border-color';
|
97 |
const SETTING_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR = self::SETTING . '-btn-accept-individual-hover-font-color';
|
98 |
+
const DEFAULT_PADDING = [15, 20, 5, 20];
|
99 |
const DEFAULT_DESCRIPTION_INHERIT_FONT_SIZE = \true;
|
100 |
const DEFAULT_DESCRIPTION_FONT_SIZE = \DevOwl\RealCookieBanner\view\customize\banner\Design::DEFAULT_FONT_SIZE;
|
101 |
const DEFAULT_DOTTED_GROUPS_INHERIT_FONT_SIZE = \true;
|
123 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_BG = '#11607d';
|
124 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_BORDER_COLOR = '#000000';
|
125 |
const DEFAULT_BUTTON_ACCEPT_ALL_HOVER_FONT_COLOR = '#ffffff';
|
126 |
+
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL = \true;
|
127 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_PADDING = self::DEFAULT_BUTTON_ACCEPT_ALL_PADDING;
|
128 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BG = '#efefef';
|
129 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_TEXT_ALIGN = 'center';
|
135 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_BG = '#e8e8e8';
|
136 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_BORDER_COLOR = '#000000';
|
137 |
const DEFAULT_BUTTON_ACCEPT_ESSENTIALS_HOVER_FONT_COLOR = '#000000';
|
138 |
+
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_PADDING = [5, 5, 5, 5];
|
139 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BG = '#ffffff';
|
140 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_TEXT_ALIGN = 'center';
|
141 |
+
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE = 15;
|
142 |
+
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_COLOR = '#15779b';
|
143 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_WEIGHT = self::DEFAULT_BUTTON_ACCEPT_ALL_FONT_WEIGHT;
|
144 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH = 0;
|
145 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_COLOR = '#000000';
|
146 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BG = '#ffffff';
|
147 |
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_BORDER_COLOR = '#000000';
|
148 |
+
const DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_HOVER_FONT_COLOR = '#11607d';
|
149 |
/**
|
150 |
* Return arguments for this section.
|
151 |
*/
|
161 |
RCB_TD
|
162 |
)
|
163 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
return [
|
165 |
'name' => 'bodyDesign',
|
166 |
'title' => __('Body', RCB_TD),
|
188 |
self::SETTING_DESCRIPTION_FONT_SIZE => [
|
189 |
'name' => 'descriptionFontSize',
|
190 |
'label' => __('Description font size', RCB_TD),
|
191 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
192 |
+
'unit' => 'px',
|
193 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
194 |
'setting' => ['default' => self::DEFAULT_DESCRIPTION_FONT_SIZE, 'sanitize_callback' => 'absint']
|
195 |
],
|
208 |
self::SETTING_DOTTED_GROUPS_FONT_SIZE => [
|
209 |
'name' => 'dottedGroupsFontSize',
|
210 |
'label' => __('Service groups font size', RCB_TD),
|
211 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
212 |
+
'unit' => 'px',
|
213 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
214 |
'setting' => ['default' => self::DEFAULT_DOTTED_GROUPS_FONT_SIZE, 'sanitize_callback' => 'absint']
|
215 |
],
|
273 |
],
|
274 |
self::SETTING_TEACHINGS_SEPARATOR_WIDTH => [
|
275 |
'name' => 'teachingsSeparatorWidth',
|
276 |
+
'label' => __('Width', RCB_TD),
|
277 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
278 |
+
'unit' => 'px',
|
279 |
'input_attrs' => ['min' => 1, 'max' => 1000, 'step' => 5],
|
280 |
'setting' => ['default' => self::DEFAULT_TEACHINGS_SEPARATOR_WIDTH, 'sanitize_callback' => 'absint']
|
281 |
],
|
282 |
self::SETTING_TEACHINGS_SEPARATOR_HEIGHT => [
|
283 |
'name' => 'teachingsSeparatorHeight',
|
284 |
+
'label' => __('Height', RCB_TD),
|
285 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
286 |
+
'unit' => 'px',
|
287 |
'input_attrs' => ['min' => 1, 'max' => 20, 'step' => 1],
|
288 |
'setting' => [
|
289 |
'default' => self::DEFAULT_TEACHINGS_SEPARATOR_HEIGHT,
|
321 |
self::SETTING_TEACHINGS_FONT_SIZE => [
|
322 |
'name' => 'teachingsFontSize',
|
323 |
'label' => __('Size', RCB_TD),
|
324 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
325 |
+
'unit' => 'px',
|
326 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
327 |
'setting' => ['default' => self::DEFAULT_TEACHINGS_FONT_SIZE, 'sanitize_callback' => 'absint']
|
328 |
],
|
352 |
'name' => 'bodyDesignAcceptAll',
|
353 |
'label' => __('Button: Accept all', RCB_TD)
|
354 |
],
|
|
|
|
|
|
|
|
|
|
|
355 |
self::SETTING_BUTTON_ACCEPT_ALL_TYPE => [
|
356 |
'label' => __('Type', RCB_TD),
|
357 |
'type' => 'acceptAllButtonType'
|
407 |
self::SETTING_BUTTON_ACCEPT_ALL_FONT_SIZE => [
|
408 |
'name' => 'acceptAllFontSize',
|
409 |
'label' => __('Size', RCB_TD),
|
410 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
411 |
+
'unit' => 'px',
|
412 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
413 |
'setting' => [
|
414 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ALL_FONT_SIZE,
|
440 |
],
|
441 |
self::SETTING_BUTTON_ACCEPT_ALL_BORDER_WIDTH => [
|
442 |
'name' => 'acceptAllBorderWidth',
|
443 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
444 |
+
'unit' => 'px',
|
445 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 100],
|
446 |
+
'label' => __('Border width', RCB_TD),
|
447 |
'setting' => [
|
448 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ALL_BORDER_WIDTH,
|
449 |
'sanitize_callback' => 'absint'
|
501 |
'name' => 'bodyDesignAcceptEssentials',
|
502 |
'label' => __('Button: Continue without consent', RCB_TD)
|
503 |
],
|
504 |
+
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL => [
|
505 |
+
'name' => 'acceptEssentialsUseAcceptAll',
|
506 |
+
'label' => __('Use the same stylings as for "Accept all"', RCB_TD),
|
507 |
+
'description' => __(
|
508 |
+
'According to the <a href="https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf" target="_blank">guidance of the data protection authorities in Germany (German)</a>, there must be an equivalent way for your visitors to express their choice (agree to everything, continue without consent or an indivudual decision). Equivalent does not necessarily mean that the buttons/links must look exactly the same. However, you should be safest if they look exactly the same.',
|
509 |
+
RCB_TD
|
510 |
+
),
|
511 |
+
'type' => 'checkbox',
|
512 |
+
'setting' => [
|
513 |
+
'default' => self::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL,
|
514 |
+
'sanitize_callback' => [
|
515 |
+
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
516 |
+
'sanitize_checkbox'
|
517 |
+
]
|
518 |
+
]
|
519 |
+
],
|
520 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_TYPE => [
|
521 |
'label' => __('Type', RCB_TD),
|
522 |
+
'type' => 'acceptEssentialsButtonType',
|
523 |
+
'name' => 'acceptEssentialsButtonType'
|
524 |
],
|
525 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_PADDING => [
|
526 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput::class,
|
556 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_FONT_SIZE => [
|
557 |
'name' => 'acceptEssentialsFontSize',
|
558 |
'label' => __('Size', RCB_TD),
|
559 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
560 |
+
'unit' => 'px',
|
561 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
562 |
'setting' => [
|
563 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_FONT_SIZE,
|
589 |
],
|
590 |
self::SETTING_BUTTON_ACCEPT_ESSENTIALS_BORDER_WIDTH => [
|
591 |
'name' => 'acceptEssentialsBorderWidth',
|
592 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
593 |
+
'unit' => 'px',
|
594 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 100],
|
595 |
+
'label' => __('Border width', RCB_TD),
|
596 |
'setting' => [
|
597 |
'default' => self::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BORDER_WIDTH,
|
598 |
'sanitize_callback' => 'absint'
|
688 |
self::SETTING_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE => [
|
689 |
'name' => 'acceptIndividualFontSize',
|
690 |
'label' => __('Size', RCB_TD),
|
691 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
692 |
+
'unit' => 'px',
|
693 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
694 |
'setting' => [
|
695 |
'default' => self::DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_FONT_SIZE,
|
721 |
],
|
722 |
self::SETTING_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH => [
|
723 |
'name' => 'acceptIndividualBorderWidth',
|
724 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
725 |
+
'unit' => 'px',
|
726 |
+
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 1],
|
727 |
+
'label' => __('Border width', RCB_TD),
|
728 |
'setting' => [
|
729 |
'default' => self::DEFAULT_BUTTON_ACCEPT_INDIVIDUAL_BORDER_WIDTH,
|
730 |
'sanitize_callback' => 'absint'
|
802 |
'bold' => __('Bold', RCB_TD)
|
803 |
];
|
804 |
}
|
805 |
+
/**
|
806 |
+
* Deactivate "Use same stylings as 'Accept all'" as it should not be activated automatically for already existing users.
|
807 |
+
*
|
808 |
+
* @param string|false $installed
|
809 |
+
*/
|
810 |
+
public static function new_version_installation_after_2_17_3($installed) {
|
811 |
+
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.17.3', ['2.17.4', '2.18.0'])) {
|
812 |
+
update_option(self::SETTING_BUTTON_ACCEPT_ESSENTIALS_USE_ACCEPT_ALL, '');
|
813 |
+
}
|
814 |
+
}
|
815 |
}
|
inc/view/customize/banner/Decision.php
CHANGED
@@ -4,7 +4,9 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
|
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
|
|
8 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
9 |
// @codeCoverageIgnoreStart
|
10 |
\defined('ABSPATH') or die('No script kiddies please!');
|
@@ -15,24 +17,60 @@ use DevOwl\RealCookieBanner\view\BannerCustomize;
|
|
15 |
*/
|
16 |
class Decision {
|
17 |
use UtilsProvider;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
const SECTION = \DevOwl\RealCookieBanner\view\BannerCustomize::PANEL_MAIN . '-decision';
|
19 |
const CUSTOM_HTML_BUTTON_TYPE_DIFFERS_NOTICE = self::SECTION . '-custom-html-button-type-differs-notice';
|
20 |
const CUSTOM_HTML_LEGAL_NOTICE_ALL = self::SECTION . '-custom-html-legal-notice-all';
|
21 |
const CUSTOM_HTML_LEGAL_NOTICE_ESSENTIALS = self::SECTION . '-custom-html-legal-notice-essentials';
|
22 |
const CUSTOM_HTML_LEGAL_NOTICE_INDIVIDUAL = self::SECTION . '-custom-html-legal-notice-individual';
|
|
|
23 |
const SETTING = RCB_OPT_PREFIX . '-banner-decision';
|
24 |
const SETTING_ACCEPT_ALL = self::SETTING . '-accept-all';
|
25 |
const SETTING_ACCEPT_ESSENTIALS = self::SETTING . '-accept-essentials';
|
26 |
const SETTING_SHOW_CLOSE_ICON = self::SETTING . '-show-close-icon';
|
27 |
const SETTING_ACCEPT_INDIVIDUAL = self::SETTING . '-accept-individual';
|
|
|
28 |
const SETTING_GROUPS_FIRST_VIEW = self::SETTING . '-groups-first-view';
|
29 |
const SETTING_SAVE_BUTTON = self::SETTING . '-save-button';
|
|
|
30 |
const DEFAULT_ACCEPT_ALL = 'button';
|
31 |
const DEFAULT_ACCEPT_ESSENTIALS = 'button';
|
32 |
const DEFAULT_SHOW_CLOSE_ICON = \false;
|
33 |
const DEFAULT_ACCEPT_INDIVIDUAL = 'link';
|
|
|
34 |
const DEFAULT_GROUPS_FIRST_VIEW = \false;
|
35 |
const DEFAULT_SAVE_BUTTON = 'always';
|
|
|
36 |
/**
|
37 |
* Return arguments for this section.
|
38 |
*/
|
@@ -149,6 +187,34 @@ class Decision {
|
|
149 |
'name' => 'customHtmlDecisionLegalNoticeIndividual',
|
150 |
'description' => $textLegalNotice
|
151 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
self::SETTING_GROUPS_FIRST_VIEW => [
|
153 |
'name' => 'groupsFirstView',
|
154 |
'label' => __('Custom choice in first view', RCB_TD),
|
@@ -175,4 +241,58 @@ class Decision {
|
|
175 |
]
|
176 |
];
|
177 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
}
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
7 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
+
use DevOwl\RealCookieBanner\Core;
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
// @codeCoverageIgnoreStart
|
12 |
\defined('ABSPATH') or die('No script kiddies please!');
|
17 |
*/
|
18 |
class Decision {
|
19 |
use UtilsProvider;
|
20 |
+
/**
|
21 |
+
* Available permutations for the button order.
|
22 |
+
*
|
23 |
+
* @see https://phpsandbox.io/n/real-cookie-banner-button-order-premutation-9uk9m
|
24 |
+
*/
|
25 |
+
const BUTTON_ORDER_PERMUTATIONS = [
|
26 |
+
['all', 'essential', 'individual', 'save'],
|
27 |
+
['all', 'essential', 'save', 'individual'],
|
28 |
+
['all', 'individual', 'essential', 'save'],
|
29 |
+
['all', 'individual', 'save', 'essential'],
|
30 |
+
['all', 'save', 'essential', 'individual'],
|
31 |
+
['all', 'save', 'individual', 'essential'],
|
32 |
+
['essential', 'all', 'individual', 'save'],
|
33 |
+
['essential', 'all', 'save', 'individual'],
|
34 |
+
['essential', 'individual', 'all', 'save'],
|
35 |
+
['essential', 'individual', 'save', 'all'],
|
36 |
+
['essential', 'save', 'all', 'individual'],
|
37 |
+
['essential', 'save', 'individual', 'all'],
|
38 |
+
['individual', 'all', 'essential', 'save'],
|
39 |
+
['individual', 'all', 'save', 'essential'],
|
40 |
+
['individual', 'essential', 'all', 'save'],
|
41 |
+
['individual', 'essential', 'save', 'all'],
|
42 |
+
['individual', 'save', 'all', 'essential'],
|
43 |
+
['individual', 'save', 'essential', 'all'],
|
44 |
+
['save', 'all', 'essential', 'individual'],
|
45 |
+
['save', 'all', 'individual', 'essential'],
|
46 |
+
['save', 'essential', 'all', 'individual'],
|
47 |
+
['save', 'essential', 'individual', 'all'],
|
48 |
+
['save', 'individual', 'all', 'essential'],
|
49 |
+
['save', 'individual', 'essential', 'all']
|
50 |
+
];
|
51 |
const SECTION = \DevOwl\RealCookieBanner\view\BannerCustomize::PANEL_MAIN . '-decision';
|
52 |
const CUSTOM_HTML_BUTTON_TYPE_DIFFERS_NOTICE = self::SECTION . '-custom-html-button-type-differs-notice';
|
53 |
const CUSTOM_HTML_LEGAL_NOTICE_ALL = self::SECTION . '-custom-html-legal-notice-all';
|
54 |
const CUSTOM_HTML_LEGAL_NOTICE_ESSENTIALS = self::SECTION . '-custom-html-legal-notice-essentials';
|
55 |
const CUSTOM_HTML_LEGAL_NOTICE_INDIVIDUAL = self::SECTION . '-custom-html-legal-notice-individual';
|
56 |
+
const HEADLINE_SERVICE_GROUPS = self::SECTION . '-headline-service-groups';
|
57 |
const SETTING = RCB_OPT_PREFIX . '-banner-decision';
|
58 |
const SETTING_ACCEPT_ALL = self::SETTING . '-accept-all';
|
59 |
const SETTING_ACCEPT_ESSENTIALS = self::SETTING . '-accept-essentials';
|
60 |
const SETTING_SHOW_CLOSE_ICON = self::SETTING . '-show-close-icon';
|
61 |
const SETTING_ACCEPT_INDIVIDUAL = self::SETTING . '-accept-individual';
|
62 |
+
const SETTING_SHOW_GROUPS = self::SETTING . '-show-groups';
|
63 |
const SETTING_GROUPS_FIRST_VIEW = self::SETTING . '-groups-first-view';
|
64 |
const SETTING_SAVE_BUTTON = self::SETTING . '-save-button';
|
65 |
+
const SETTING_BUTTON_ORDER = self::SETTING . '-button-order';
|
66 |
const DEFAULT_ACCEPT_ALL = 'button';
|
67 |
const DEFAULT_ACCEPT_ESSENTIALS = 'button';
|
68 |
const DEFAULT_SHOW_CLOSE_ICON = \false;
|
69 |
const DEFAULT_ACCEPT_INDIVIDUAL = 'link';
|
70 |
+
const DEFAULT_SHOW_GROUPS = \false;
|
71 |
const DEFAULT_GROUPS_FIRST_VIEW = \false;
|
72 |
const DEFAULT_SAVE_BUTTON = 'always';
|
73 |
+
const DEFAULT_BUTTON_ORDER = 'all,essential,save,individual';
|
74 |
/**
|
75 |
* Return arguments for this section.
|
76 |
*/
|
187 |
'name' => 'customHtmlDecisionLegalNoticeIndividual',
|
188 |
'description' => $textLegalNotice
|
189 |
],
|
190 |
+
self::SETTING_BUTTON_ORDER => [
|
191 |
+
'name' => 'buttonOrder',
|
192 |
+
'label' => __('Order of the buttons', RCB_TD),
|
193 |
+
'description' => __(
|
194 |
+
'According to the <a href="https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf" target="_blank">guidance of the data protection authorities in Germany (German)</a>, there must be an equivalent way for your visitors to express their choice (agree to everything, continue without consent or an indivudual decision). Which order of options is considered equivalent is unclear. Therefore, the options should be arranged according to the cultural conditions of the main target country.',
|
195 |
+
RCB_TD
|
196 |
+
),
|
197 |
+
'type' => 'select',
|
198 |
+
'choices' => self::getButtonOrderPermutations(),
|
199 |
+
'setting' => ['default' => self::DEFAULT_BUTTON_ORDER]
|
200 |
+
],
|
201 |
+
self::HEADLINE_SERVICE_GROUPS => [
|
202 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline::class,
|
203 |
+
'name' => 'serviceGroups',
|
204 |
+
'label' => __('Service groups as bullet list', RCB_TD)
|
205 |
+
],
|
206 |
+
self::SETTING_SHOW_GROUPS => [
|
207 |
+
'name' => 'showGroups',
|
208 |
+
'label' => __('Show service groups as bullet list', RCB_TD),
|
209 |
+
'type' => 'checkbox',
|
210 |
+
'setting' => [
|
211 |
+
'default' => self::DEFAULT_SHOW_GROUPS,
|
212 |
+
'sanitize_callback' => [
|
213 |
+
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
214 |
+
'sanitize_checkbox'
|
215 |
+
]
|
216 |
+
]
|
217 |
+
],
|
218 |
self::SETTING_GROUPS_FIRST_VIEW => [
|
219 |
'name' => 'groupsFirstView',
|
220 |
'label' => __('Custom choice in first view', RCB_TD),
|
241 |
]
|
242 |
];
|
243 |
}
|
244 |
+
/**
|
245 |
+
* Calculate button order permutations with translated select dropdown in an associative array.
|
246 |
+
*/
|
247 |
+
public static function getButtonOrderPermutations() {
|
248 |
+
$result = [];
|
249 |
+
foreach (self::BUTTON_ORDER_PERMUTATIONS as $permutation) {
|
250 |
+
$key = \join(',', $permutation);
|
251 |
+
$result[$key] = \join(
|
252 |
+
', ',
|
253 |
+
\array_map(function ($button) {
|
254 |
+
switch ($button) {
|
255 |
+
case 'all':
|
256 |
+
return __('Accept all', RCB_TD);
|
257 |
+
case 'essential':
|
258 |
+
return __('Continue without consent', RCB_TD);
|
259 |
+
case 'individual':
|
260 |
+
return __('Individual privacy preferences', RCB_TD);
|
261 |
+
case 'save':
|
262 |
+
return __('Save custom choices', RCB_TD);
|
263 |
+
default:
|
264 |
+
return '';
|
265 |
+
}
|
266 |
+
}, $permutation)
|
267 |
+
);
|
268 |
+
}
|
269 |
+
return $result;
|
270 |
+
}
|
271 |
+
/**
|
272 |
+
* Activate bullet list as it should not be deactivated automatically for already existing users.
|
273 |
+
*
|
274 |
+
* @param string|false $installed
|
275 |
+
*/
|
276 |
+
public static function new_version_installation_after_2_17_3($installed) {
|
277 |
+
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.17.3', ['2.17.4', '2.18.0'])) {
|
278 |
+
update_option(self::SETTING_SHOW_GROUPS, '1');
|
279 |
+
}
|
280 |
+
}
|
281 |
+
/**
|
282 |
+
* Enable bullet groups + default button order for older revision.
|
283 |
+
*
|
284 |
+
* @param array $revision
|
285 |
+
* @param boolean $independent
|
286 |
+
*/
|
287 |
+
public static function applyBackwardsCompatibility($revision, $independent) {
|
288 |
+
if ($independent) {
|
289 |
+
if (!isset($revision['banner']['customizeValuesBanner']['decision']['showGroups'])) {
|
290 |
+
$revision['banner']['customizeValuesBanner']['decision']['showGroups'] = \true;
|
291 |
+
}
|
292 |
+
if (!isset($revision['banner']['customizeValuesBanner']['decision']['buttonOrder'])) {
|
293 |
+
$revision['banner']['customizeValuesBanner']['decision']['buttonOrder'] = self::DEFAULT_BUTTON_ORDER;
|
294 |
+
}
|
295 |
+
}
|
296 |
+
return $revision;
|
297 |
+
}
|
298 |
}
|
inc/view/customize/banner/Design.php
CHANGED
@@ -4,6 +4,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
8 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
9 |
use WP_Customize_Color_Control;
|
@@ -89,9 +90,10 @@ class Design {
|
|
89 |
],
|
90 |
self::SETTING_BORDER_WIDTH => [
|
91 |
'name' => 'borderWidth',
|
92 |
-
'
|
93 |
-
'
|
94 |
-
'
|
|
|
95 |
'setting' => ['default' => self::DEFAULT_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
96 |
],
|
97 |
self::SETTING_BORDER_COLOR => [
|
@@ -111,7 +113,8 @@ class Design {
|
|
111 |
'The font size will be applied to the entire dialog. You can overwrite this setting e.g for headings in the respective section.',
|
112 |
RCB_TD
|
113 |
),
|
114 |
-
'
|
|
|
115 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
116 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
117 |
],
|
@@ -169,7 +172,8 @@ class Design {
|
|
169 |
self::SETTING_BOX_SHADOW_OFFSET_X => [
|
170 |
'name' => 'boxShadowOffsetX',
|
171 |
'label' => __('Horizontal offset', RCB_TD),
|
172 |
-
'
|
|
|
173 |
'input_attrs' => ['min' => -50, 'max' => 50, 'step' => 0],
|
174 |
'setting' => [
|
175 |
'default' => self::DEFAULT_BOX_SHADOW_OFFSET_X,
|
@@ -181,7 +185,8 @@ class Design {
|
|
181 |
self::SETTING_BOX_SHADOW_OFFSET_Y => [
|
182 |
'name' => 'boxShadowOffsetY',
|
183 |
'label' => __('Vertical offset', RCB_TD),
|
184 |
-
'
|
|
|
185 |
'input_attrs' => ['min' => -50, 'max' => 50, 'step' => 0],
|
186 |
'setting' => [
|
187 |
'default' => self::DEFAULT_BOX_SHADOW_OFFSET_Y,
|
@@ -193,14 +198,16 @@ class Design {
|
|
193 |
self::SETTING_BOX_SHADOW_BLUR_RADIUS => [
|
194 |
'name' => 'boxShadowBlurRadius',
|
195 |
'label' => __('Blur radius', RCB_TD),
|
196 |
-
'
|
|
|
197 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
198 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_BLUR_RADIUS, 'sanitize_callback' => 'absint']
|
199 |
],
|
200 |
self::SETTING_BOX_SHADOW_SPREAD_RADIUS => [
|
201 |
'name' => 'boxShadowSpreadRadius',
|
202 |
'label' => __('Spread radius', RCB_TD),
|
203 |
-
'
|
|
|
204 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
205 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_SPREAD_RADIUS, 'sanitize_callback' => 'absint']
|
206 |
],
|
@@ -216,7 +223,8 @@ class Design {
|
|
216 |
self::SETTING_BOX_SHADOW_COLOR_ALPHA => [
|
217 |
'name' => 'boxShadowColorAlpha',
|
218 |
'label' => __('Color opacity', RCB_TD),
|
219 |
-
'
|
|
|
220 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
221 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_COLOR_ALPHA, 'sanitize_callback' => 'absint']
|
222 |
]
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
7 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
10 |
use WP_Customize_Color_Control;
|
90 |
],
|
91 |
self::SETTING_BORDER_WIDTH => [
|
92 |
'name' => 'borderWidth',
|
93 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
94 |
+
'unit' => 'px',
|
95 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 100],
|
96 |
+
'label' => __('Width', RCB_TD),
|
97 |
'setting' => ['default' => self::DEFAULT_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
98 |
],
|
99 |
self::SETTING_BORDER_COLOR => [
|
113 |
'The font size will be applied to the entire dialog. You can overwrite this setting e.g for headings in the respective section.',
|
114 |
RCB_TD
|
115 |
),
|
116 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
117 |
+
'unit' => 'px',
|
118 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
119 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
120 |
],
|
172 |
self::SETTING_BOX_SHADOW_OFFSET_X => [
|
173 |
'name' => 'boxShadowOffsetX',
|
174 |
'label' => __('Horizontal offset', RCB_TD),
|
175 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
176 |
+
'unit' => 'px',
|
177 |
'input_attrs' => ['min' => -50, 'max' => 50, 'step' => 0],
|
178 |
'setting' => [
|
179 |
'default' => self::DEFAULT_BOX_SHADOW_OFFSET_X,
|
185 |
self::SETTING_BOX_SHADOW_OFFSET_Y => [
|
186 |
'name' => 'boxShadowOffsetY',
|
187 |
'label' => __('Vertical offset', RCB_TD),
|
188 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
189 |
+
'unit' => 'px',
|
190 |
'input_attrs' => ['min' => -50, 'max' => 50, 'step' => 0],
|
191 |
'setting' => [
|
192 |
'default' => self::DEFAULT_BOX_SHADOW_OFFSET_Y,
|
198 |
self::SETTING_BOX_SHADOW_BLUR_RADIUS => [
|
199 |
'name' => 'boxShadowBlurRadius',
|
200 |
'label' => __('Blur radius', RCB_TD),
|
201 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
202 |
+
'unit' => 'px',
|
203 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
204 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_BLUR_RADIUS, 'sanitize_callback' => 'absint']
|
205 |
],
|
206 |
self::SETTING_BOX_SHADOW_SPREAD_RADIUS => [
|
207 |
'name' => 'boxShadowSpreadRadius',
|
208 |
'label' => __('Spread radius', RCB_TD),
|
209 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
210 |
+
'unit' => 'px',
|
211 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
212 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_SPREAD_RADIUS, 'sanitize_callback' => 'absint']
|
213 |
],
|
223 |
self::SETTING_BOX_SHADOW_COLOR_ALPHA => [
|
224 |
'name' => 'boxShadowColorAlpha',
|
225 |
'label' => __('Color opacity', RCB_TD),
|
226 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
227 |
+
'unit' => '%',
|
228 |
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 0],
|
229 |
'setting' => ['default' => self::DEFAULT_BOX_SHADOW_COLOR_ALPHA, 'sanitize_callback' => 'absint']
|
230 |
]
|
inc/view/customize/banner/FooterDesign.php
CHANGED
@@ -5,6 +5,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
10 |
use WP_Customize_Color_Control;
|
@@ -132,7 +133,8 @@ class FooterDesign {
|
|
132 |
self::SETTING_FONT_SIZE => [
|
133 |
'name' => 'fontSize',
|
134 |
'label' => __('Size', RCB_TD),
|
135 |
-
'
|
|
|
136 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
137 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
138 |
],
|
@@ -200,9 +202,10 @@ class FooterDesign {
|
|
200 |
],
|
201 |
self::SETTING_TOP_BORDER_WIDTH => [
|
202 |
'name' => 'borderWidth',
|
203 |
-
'
|
204 |
-
'
|
205 |
-
'
|
|
|
206 |
'setting' => ['default' => self::DEFAULT_TOP_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
207 |
],
|
208 |
self::SETTING_TOP_BORDER_COLOR => [
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
use WP_Customize_Color_Control;
|
133 |
self::SETTING_FONT_SIZE => [
|
134 |
'name' => 'fontSize',
|
135 |
'label' => __('Size', RCB_TD),
|
136 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
137 |
+
'unit' => 'px',
|
138 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
139 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
140 |
],
|
202 |
],
|
203 |
self::SETTING_TOP_BORDER_WIDTH => [
|
204 |
'name' => 'borderWidth',
|
205 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
206 |
+
'unit' => 'px',
|
207 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 100],
|
208 |
+
'label' => __('Height', RCB_TD),
|
209 |
'setting' => ['default' => self::DEFAULT_TOP_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
210 |
],
|
211 |
self::SETTING_TOP_BORDER_COLOR => [
|
inc/view/customize/banner/HeaderDesign.php
CHANGED
@@ -5,6 +5,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
10 |
use WP_Customize_Color_Control;
|
@@ -129,7 +130,8 @@ class HeaderDesign {
|
|
129 |
self::SETTING_LOGO_MAX_HEIGHT => [
|
130 |
'name' => 'logoMaxHeight',
|
131 |
'label' => __('Size', RCB_TD),
|
132 |
-
'
|
|
|
133 |
'input_attrs' => ['min' => 40, 'max' => 200, 'step' => 0],
|
134 |
'setting' => ['default' => self::DEFAULT_LOGO_MAX_HEIGHT, 'sanitize_callback' => 'absint']
|
135 |
],
|
@@ -158,7 +160,8 @@ class HeaderDesign {
|
|
158 |
self::SETTING_FONT_SIZE => [
|
159 |
'name' => 'fontSize',
|
160 |
'label' => __('Size', RCB_TD),
|
161 |
-
'
|
|
|
162 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
163 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
164 |
],
|
@@ -207,9 +210,10 @@ class HeaderDesign {
|
|
207 |
],
|
208 |
self::SETTING_BOTTOM_BORDER_WIDTH => [
|
209 |
'name' => 'borderWidth',
|
210 |
-
'
|
211 |
-
'
|
212 |
-
'
|
|
|
213 |
'setting' => ['default' => self::DEFAULT_BOTTOM_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
214 |
],
|
215 |
self::SETTING_BOTTOM_BORDER_COLOR => [
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
use WP_Customize_Color_Control;
|
130 |
self::SETTING_LOGO_MAX_HEIGHT => [
|
131 |
'name' => 'logoMaxHeight',
|
132 |
'label' => __('Size', RCB_TD),
|
133 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
134 |
+
'unit' => 'px',
|
135 |
'input_attrs' => ['min' => 40, 'max' => 200, 'step' => 0],
|
136 |
'setting' => ['default' => self::DEFAULT_LOGO_MAX_HEIGHT, 'sanitize_callback' => 'absint']
|
137 |
],
|
160 |
self::SETTING_FONT_SIZE => [
|
161 |
'name' => 'fontSize',
|
162 |
'label' => __('Size', RCB_TD),
|
163 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
164 |
+
'unit' => 'px',
|
165 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
166 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
167 |
],
|
210 |
],
|
211 |
self::SETTING_BOTTOM_BORDER_WIDTH => [
|
212 |
'name' => 'borderWidth',
|
213 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
214 |
+
'unit' => 'px',
|
215 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 100],
|
216 |
+
'label' => __('Height', RCB_TD),
|
217 |
'setting' => ['default' => self::DEFAULT_BOTTOM_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
218 |
],
|
219 |
self::SETTING_BOTTOM_BORDER_COLOR => [
|
inc/view/customize/banner/Legal.php
CHANGED
@@ -7,6 +7,7 @@ use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
8 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
9 |
use DevOwl\RealCookieBanner\Core;
|
|
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
use WP_Error;
|
12 |
// @codeCoverageIgnoreStart
|
@@ -80,7 +81,7 @@ class Legal {
|
|
80 |
'type' => $disableSiteIds ? 'number' : 'dropdown-pages',
|
81 |
'input_attrs' => $disableSiteIdsAttrs,
|
82 |
'setting' => [
|
83 |
-
'default' => \
|
84 |
'sanitize_callback' => 'absint'
|
85 |
]
|
86 |
],
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
8 |
use DevOwl\RealCookieBanner\comp\language\Hooks;
|
9 |
use DevOwl\RealCookieBanner\Core;
|
10 |
+
use DevOwl\RealCookieBanner\settings\General;
|
11 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
12 |
use WP_Error;
|
13 |
// @codeCoverageIgnoreStart
|
81 |
'type' => $disableSiteIds ? 'number' : 'dropdown-pages',
|
82 |
'input_attrs' => $disableSiteIdsAttrs,
|
83 |
'setting' => [
|
84 |
+
'default' => \DevOwl\RealCookieBanner\settings\General::getInstance()->getDefaultPrivacyPolicy(),
|
85 |
'sanitize_callback' => 'absint'
|
86 |
]
|
87 |
],
|
inc/view/customize/banner/Mobile.php
CHANGED
@@ -4,6 +4,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner;
|
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
|
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
8 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
9 |
// @codeCoverageIgnoreStart
|
@@ -74,7 +75,8 @@ class Mobile {
|
|
74 |
self::SETTING_MAX_HEIGHT => [
|
75 |
'name' => 'maxHeight',
|
76 |
'label' => __('Maximum height', RCB_TD),
|
77 |
-
'
|
|
|
78 |
'input_attrs' => ['min' => 200, 'max' => 900, 'step' => 0],
|
79 |
'setting' => ['default' => self::DEFAULT_MAX_HEIGHT, 'sanitize_callback' => 'absint']
|
80 |
],
|
@@ -113,7 +115,8 @@ class Mobile {
|
|
113 |
'Elements in the cookie banner can be scaled smaller or larger relative to the desktop view. Make sure that all elements are still clearly legible so that you obtain valid consents.',
|
114 |
RCB_TD
|
115 |
),
|
116 |
-
'
|
|
|
117 |
'input_attrs' => ['min' => 70, 'max' => 110, 'step' => 0],
|
118 |
'setting' => ['default' => self::DEFAULT_SCALE_PERCENT, 'sanitize_callback' => 'absint']
|
119 |
],
|
@@ -124,7 +127,8 @@ class Mobile {
|
|
124 |
'The vertical distance between elements can be decreased or increased relative to the desktop view.',
|
125 |
RCB_TD
|
126 |
),
|
127 |
-
'
|
|
|
128 |
'input_attrs' => ['min' => -70, 'max' => 10, 'step' => 0],
|
129 |
'setting' => [
|
130 |
'default' => self::DEFAULT_SCALE_PERCENT_VERTICAL,
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CustomHTML;
|
7 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
10 |
// @codeCoverageIgnoreStart
|
75 |
self::SETTING_MAX_HEIGHT => [
|
76 |
'name' => 'maxHeight',
|
77 |
'label' => __('Maximum height', RCB_TD),
|
78 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
79 |
+
'unit' => 'px',
|
80 |
'input_attrs' => ['min' => 200, 'max' => 900, 'step' => 0],
|
81 |
'setting' => ['default' => self::DEFAULT_MAX_HEIGHT, 'sanitize_callback' => 'absint']
|
82 |
],
|
115 |
'Elements in the cookie banner can be scaled smaller or larger relative to the desktop view. Make sure that all elements are still clearly legible so that you obtain valid consents.',
|
116 |
RCB_TD
|
117 |
),
|
118 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
119 |
+
'unit' => '%',
|
120 |
'input_attrs' => ['min' => 70, 'max' => 110, 'step' => 0],
|
121 |
'setting' => ['default' => self::DEFAULT_SCALE_PERCENT, 'sanitize_callback' => 'absint']
|
122 |
],
|
127 |
'The vertical distance between elements can be decreased or increased relative to the desktop view.',
|
128 |
RCB_TD
|
129 |
),
|
130 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
131 |
+
'unit' => '%',
|
132 |
'input_attrs' => ['min' => -70, 'max' => 10, 'step' => 0],
|
133 |
'setting' => [
|
134 |
'default' => self::DEFAULT_SCALE_PERCENT_VERTICAL,
|
inc/view/customize/banner/Texts.php
CHANGED
@@ -25,6 +25,7 @@ class Texts {
|
|
25 |
const HEADLINE_GENERAL = self::SECTION . '-headline-general';
|
26 |
const HEADLINE_EPRIVACY_USA = self::SECTION . '-headline-eprivacy-usa';
|
27 |
const HEADLINE_AGE_NOTICE = self::SECTION . '-headline-age-notice';
|
|
|
28 |
const HEADLINE_CONSENT_FORWARDING = self::SECTION . '-headline-consent-forwarding';
|
29 |
const HEADLINE_BLOCKER = self::SECTION . '-headline-blocker';
|
30 |
const SETTING = RCB_OPT_PREFIX . '-banner-texts';
|
@@ -34,6 +35,7 @@ class Texts {
|
|
34 |
const SETTING_EPRIVACY_USA = self::SETTING . '-eprivacy-usa';
|
35 |
const SETTING_AGE_NOTICE = self::SETTING . '-age-notice';
|
36 |
const SETTING_AGE_NOTICE_BLOCKER = self::SETTING . '-age-notice-blocker';
|
|
|
37 |
const SETTING_CONSENT_FORWARDING = self::SETTING . '-consent-forwarding';
|
38 |
const SETTING_ACCEPT_ALL = self::SETTING . '-accept-all';
|
39 |
const SETTING_ACCEPT_ESSENTIALS = self::SETTING . '-accept-essentials';
|
@@ -61,6 +63,7 @@ class Texts {
|
|
61 |
: \false;
|
62 |
$ePrivacyUSAEnabled = $consentSettings->isEPrivacyUSAEnabled();
|
63 |
$ageNoticeEnabled = $consentSettings->isAgeNoticeEnabled();
|
|
|
64 |
// Use current always as default for "powered by" link text cause it is random per installation
|
65 |
$poweredByTexts = self::getPoweredByLinkTexts();
|
66 |
$currentPoweredByText = get_option(self::SETTING_POWERED_BY_TEXT);
|
@@ -86,6 +89,10 @@ class Texts {
|
|
86 |
self::SETTING_DESCRIPTION => [
|
87 |
'name' => 'description',
|
88 |
'label' => __('Description', RCB_TD),
|
|
|
|
|
|
|
|
|
89 |
'type' => 'textarea',
|
90 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\TinyMCE::class,
|
91 |
'mediaButtons' => \true,
|
@@ -178,6 +185,33 @@ class Texts {
|
|
178 |
'allowEmpty' => \true
|
179 |
]
|
180 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
self::HEADLINE_CONSENT_FORWARDING => [
|
182 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline::class,
|
183 |
'label' => __('Consent Forwarding', RCB_TD),
|
@@ -297,6 +331,29 @@ class Texts {
|
|
297 |
)
|
298 |
);
|
299 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
/**
|
301 |
* Return a notice HTML for the customize description when RCB's Consent Forwarding is deactivated.
|
302 |
*/
|
@@ -328,9 +385,16 @@ class Texts {
|
|
328 |
$tempTd = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
329 |
$defaults = [
|
330 |
'headline' => __('Privacy preferences', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
331 |
-
'description' =>
|
332 |
-
'
|
333 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
),
|
335 |
'acceptAll' => __('Accept all', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
336 |
'acceptEssentials' => __(
|
@@ -338,7 +402,7 @@ class Texts {
|
|
338 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
339 |
),
|
340 |
'acceptIndividual' => __(
|
341 |
-
'
|
342 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
343 |
),
|
344 |
'ePrivacyUSA' => __(
|
@@ -353,6 +417,10 @@ class Texts {
|
|
353 |
'You are under 16 years old? Unfortunately, you are not permitted to consent to this service to view this content. Please ask your parents or guardians to agree to the service with you!',
|
354 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
355 |
),
|
|
|
|
|
|
|
|
|
356 |
'consentForwardingExternalHosts' => __(
|
357 |
'Your consent is also applicable on {{websites}}.',
|
358 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
25 |
const HEADLINE_GENERAL = self::SECTION . '-headline-general';
|
26 |
const HEADLINE_EPRIVACY_USA = self::SECTION . '-headline-eprivacy-usa';
|
27 |
const HEADLINE_AGE_NOTICE = self::SECTION . '-headline-age-notice';
|
28 |
+
const HEADLINE_LIST_SERVICES_NOTICE = self::SECTION . '-headline-list-services-notice';
|
29 |
const HEADLINE_CONSENT_FORWARDING = self::SECTION . '-headline-consent-forwarding';
|
30 |
const HEADLINE_BLOCKER = self::SECTION . '-headline-blocker';
|
31 |
const SETTING = RCB_OPT_PREFIX . '-banner-texts';
|
35 |
const SETTING_EPRIVACY_USA = self::SETTING . '-eprivacy-usa';
|
36 |
const SETTING_AGE_NOTICE = self::SETTING . '-age-notice';
|
37 |
const SETTING_AGE_NOTICE_BLOCKER = self::SETTING . '-age-notice-blocker';
|
38 |
+
const SETTING_LIST_SERVICES_NOTICE = self::SETTING . '-list-services-notice';
|
39 |
const SETTING_CONSENT_FORWARDING = self::SETTING . '-consent-forwarding';
|
40 |
const SETTING_ACCEPT_ALL = self::SETTING . '-accept-all';
|
41 |
const SETTING_ACCEPT_ESSENTIALS = self::SETTING . '-accept-essentials';
|
63 |
: \false;
|
64 |
$ePrivacyUSAEnabled = $consentSettings->isEPrivacyUSAEnabled();
|
65 |
$ageNoticeEnabled = $consentSettings->isAgeNoticeEnabled();
|
66 |
+
$listServicesNoticeEnabled = $consentSettings->isListServicesNoticeEnabled();
|
67 |
// Use current always as default for "powered by" link text cause it is random per installation
|
68 |
$poweredByTexts = self::getPoweredByLinkTexts();
|
69 |
$currentPoweredByText = get_option(self::SETTING_POWERED_BY_TEXT);
|
89 |
self::SETTING_DESCRIPTION => [
|
90 |
'name' => 'description',
|
91 |
'label' => __('Description', RCB_TD),
|
92 |
+
'description' => __(
|
93 |
+
'Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a placeholder for the privacy policy link.',
|
94 |
+
RCB_TD
|
95 |
+
),
|
96 |
'type' => 'textarea',
|
97 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\TinyMCE::class,
|
98 |
'mediaButtons' => \true,
|
185 |
'allowEmpty' => \true
|
186 |
]
|
187 |
],
|
188 |
+
self::HEADLINE_LIST_SERVICES_NOTICE => [
|
189 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline::class,
|
190 |
+
'label' => __('List of services', RCB_TD),
|
191 |
+
'level' => 3,
|
192 |
+
'isSubHeadline' => \true,
|
193 |
+
'description' => $listServicesNoticeEnabled ? '' : $this->getListServicesNotice()
|
194 |
+
],
|
195 |
+
self::SETTING_LIST_SERVICES_NOTICE => [
|
196 |
+
'name' => 'listServicesNotice',
|
197 |
+
'label' => __('Naming of all services in first view', RCB_TD),
|
198 |
+
'description' => $listServicesNoticeEnabled
|
199 |
+
? __(
|
200 |
+
'Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a placeholder for a list of services and groups.',
|
201 |
+
RCB_TD
|
202 |
+
)
|
203 |
+
: '',
|
204 |
+
'type' => 'textarea',
|
205 |
+
'input_attrs' => $listServicesNoticeEnabled ? [] : ['disabled' => 'disabled'],
|
206 |
+
'class' => $listServicesNoticeEnabled
|
207 |
+
? \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\TinyMCE::class
|
208 |
+
: null,
|
209 |
+
'setting' => [
|
210 |
+
'default' => $defaultButtonTexts['listServicesNotice'],
|
211 |
+
'sanitize_callback' => 'wp_kses_post',
|
212 |
+
'allowEmpty' => \true
|
213 |
+
]
|
214 |
+
],
|
215 |
self::HEADLINE_CONSENT_FORWARDING => [
|
216 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline::class,
|
217 |
'label' => __('Consent Forwarding', RCB_TD),
|
331 |
)
|
332 |
);
|
333 |
}
|
334 |
+
/**
|
335 |
+
* Return a notice HTML for the customize description when list-services notice is deactivated.
|
336 |
+
*/
|
337 |
+
public static function getListServicesNotice() {
|
338 |
+
return \sprintf(
|
339 |
+
'<div class="notice notice-info inline below-h2 notice-alt" style="margin: 10px 0px 0px;"><p>%s</p></div>',
|
340 |
+
\sprintf(
|
341 |
+
// translators:
|
342 |
+
__(
|
343 |
+
'Naming of all services in first view is currently disabled. Please navigate to %1$sSettings > Consent%2$s to activate it.',
|
344 |
+
RCB_TD
|
345 |
+
),
|
346 |
+
'<a href="' .
|
347 |
+
esc_attr(
|
348 |
+
\DevOwl\RealCookieBanner\Core::getInstance()
|
349 |
+
->getConfigPage()
|
350 |
+
->getUrl()
|
351 |
+
) .
|
352 |
+
'#/settings/consent" target="_blank">',
|
353 |
+
'</a>'
|
354 |
+
)
|
355 |
+
);
|
356 |
+
}
|
357 |
/**
|
358 |
* Return a notice HTML for the customize description when RCB's Consent Forwarding is deactivated.
|
359 |
*/
|
385 |
$tempTd = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
386 |
$defaults = [
|
387 |
'headline' => __('Privacy preferences', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
388 |
+
'description' => \sprintf(
|
389 |
+
'%s<br/><br/>%s',
|
390 |
+
__(
|
391 |
+
'We use cookies and similar technologies on our website and process your personal data (e.g. IP address), for example, to personalize content and ads, to integrate media from third-party providers or to analyze traffic on our website. Data processing may also happen as a result of cookies being set. We share this data with third parties that we name in the privacy settings.',
|
392 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
393 |
+
),
|
394 |
+
__(
|
395 |
+
'The data processing may take place with your consent or on the basis of a legitimate interest, which you can object to in the privacy settings. You have the right not to consent and to change or revoke your consent at a later time. For more information on the use of your data, please visit our {{privacyPolicy}}privacy policy{{/privacyPolicy}}.',
|
396 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
397 |
+
)
|
398 |
),
|
399 |
'acceptAll' => __('Accept all', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
400 |
'acceptEssentials' => __(
|
402 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
403 |
),
|
404 |
'acceptIndividual' => __(
|
405 |
+
'Set privacy settings individually',
|
406 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
407 |
),
|
408 |
'ePrivacyUSA' => __(
|
417 |
'You are under 16 years old? Unfortunately, you are not permitted to consent to this service to view this content. Please ask your parents or guardians to agree to the service with you!',
|
418 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
419 |
),
|
420 |
+
'listServicesNotice' => __(
|
421 |
+
'By accepting all services, you allow {{services}} to be loaded. These services are divided into groups {{serviceGroups}} according to their purpose (belonging marked with superscript numbers).',
|
422 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
423 |
+
),
|
424 |
'consentForwardingExternalHosts' => __(
|
425 |
'Your consent is also applicable on {{websites}}.',
|
426 |
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
inc/view/customize/banner/individual/Group.php
CHANGED
@@ -5,6 +5,7 @@ namespace DevOwl\RealCookieBanner\view\customize\banner\individual;
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
8 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
9 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
10 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
@@ -94,9 +95,10 @@ class Group {
|
|
94 |
],
|
95 |
self::SETTING_CHECKBOX_BORDER_WIDTH => [
|
96 |
'name' => 'checkboxBorderWidth',
|
97 |
-
'
|
98 |
-
'
|
99 |
-
'
|
|
|
100 |
'setting' => ['default' => self::DEFAULT_CHECKBOX_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
101 |
],
|
102 |
self::SETTING_CHECKBOX_BORDER_COLOR => [
|
@@ -173,15 +175,17 @@ class Group {
|
|
173 |
],
|
174 |
self::SETTING_GROUP_SPACING => [
|
175 |
'name' => 'groupSpacing',
|
176 |
-
'
|
177 |
-
'
|
178 |
-
'
|
|
|
179 |
'setting' => ['default' => self::DEFAULT_GROUP_SPACING, 'sanitize_callback' => 'absint']
|
180 |
],
|
181 |
self::SETTING_GROUP_BORDER_RADIUS => [
|
182 |
'name' => 'groupBorderRadius',
|
183 |
'label' => __('Border radius', RCB_TD),
|
184 |
-
'
|
|
|
185 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
186 |
'setting' => ['default' => self::DEFAULT_GROUP_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
187 |
],
|
@@ -193,9 +197,10 @@ class Group {
|
|
193 |
],
|
194 |
self::SETTING_GROUP_BORDER_WIDTH => [
|
195 |
'name' => 'groupBorderWidth',
|
196 |
-
'
|
197 |
-
'
|
198 |
-
'
|
|
|
199 |
'setting' => ['default' => self::DEFAULT_GROUP_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
200 |
],
|
201 |
self::SETTING_GROUP_BORDER_COLOR => [
|
@@ -216,7 +221,8 @@ class Group {
|
|
216 |
self::SETTING_HEADLINE_FONT_SIZE => [
|
217 |
'name' => 'headlineFontSize',
|
218 |
'label' => __('Size', RCB_TD),
|
219 |
-
'
|
|
|
220 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
221 |
'setting' => ['default' => self::DEFAULT_HEADLINE_FONT_SIZE, 'sanitize_callback' => 'absint']
|
222 |
],
|
@@ -245,7 +251,8 @@ class Group {
|
|
245 |
self::SETTING_DESCRIPTION_FONT_SIZE => [
|
246 |
'name' => 'descriptionFontSize',
|
247 |
'label' => __('Size', RCB_TD),
|
248 |
-
'
|
|
|
249 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
250 |
'setting' => ['default' => self::DEFAULT_DESCRIPTION_FONT_SIZE, 'sanitize_callback' => 'absint']
|
251 |
],
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
10 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
11 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
95 |
],
|
96 |
self::SETTING_CHECKBOX_BORDER_WIDTH => [
|
97 |
'name' => 'checkboxBorderWidth',
|
98 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
99 |
+
'unit' => 'px',
|
100 |
+
'input_attrs' => ['min' => 0, 'max' => 15, 'step' => 1],
|
101 |
+
'label' => __('Border width', RCB_TD),
|
102 |
'setting' => ['default' => self::DEFAULT_CHECKBOX_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
103 |
],
|
104 |
self::SETTING_CHECKBOX_BORDER_COLOR => [
|
175 |
],
|
176 |
self::SETTING_GROUP_SPACING => [
|
177 |
'name' => 'groupSpacing',
|
178 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
179 |
+
'unit' => 'px',
|
180 |
+
'input_attrs' => ['min' => 0, 'step' => 1, 'max' => 300],
|
181 |
+
'label' => __('Spacing between groups', RCB_TD),
|
182 |
'setting' => ['default' => self::DEFAULT_GROUP_SPACING, 'sanitize_callback' => 'absint']
|
183 |
],
|
184 |
self::SETTING_GROUP_BORDER_RADIUS => [
|
185 |
'name' => 'groupBorderRadius',
|
186 |
'label' => __('Border radius', RCB_TD),
|
187 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
188 |
+
'unit' => 'px',
|
189 |
'input_attrs' => ['min' => 0, 'max' => 50, 'step' => 0],
|
190 |
'setting' => ['default' => self::DEFAULT_GROUP_BORDER_RADIUS, 'sanitize_callback' => 'absint']
|
191 |
],
|
197 |
],
|
198 |
self::SETTING_GROUP_BORDER_WIDTH => [
|
199 |
'name' => 'groupBorderWidth',
|
200 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
201 |
+
'unit' => 'px',
|
202 |
+
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 1],
|
203 |
+
'label' => __('Width', RCB_TD),
|
204 |
'setting' => ['default' => self::DEFAULT_GROUP_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
205 |
],
|
206 |
self::SETTING_GROUP_BORDER_COLOR => [
|
221 |
self::SETTING_HEADLINE_FONT_SIZE => [
|
222 |
'name' => 'headlineFontSize',
|
223 |
'label' => __('Size', RCB_TD),
|
224 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
225 |
+
'unit' => 'px',
|
226 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
227 |
'setting' => ['default' => self::DEFAULT_HEADLINE_FONT_SIZE, 'sanitize_callback' => 'absint']
|
228 |
],
|
251 |
self::SETTING_DESCRIPTION_FONT_SIZE => [
|
252 |
'name' => 'descriptionFontSize',
|
253 |
'label' => __('Size', RCB_TD),
|
254 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
255 |
+
'unit' => 'px',
|
256 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
257 |
'setting' => ['default' => self::DEFAULT_DESCRIPTION_FONT_SIZE, 'sanitize_callback' => 'absint']
|
258 |
],
|
inc/view/customize/banner/individual/Layout.php
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
namespace DevOwl\RealCookieBanner\view\customize\banner\individual;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
|
|
6 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
7 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
8 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
@@ -49,9 +50,10 @@ class Layout {
|
|
49 |
],
|
50 |
self::SETTING_DIALOG_MAX_WIDTH => [
|
51 |
'name' => 'dialogMaxWidth',
|
52 |
-
'label' => __('Maximum width
|
53 |
-
'
|
54 |
-
'
|
|
|
55 |
'setting' => ['default' => self::DEFAULT_DIALOG_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
56 |
],
|
57 |
self::SETTING_INHERIT_BANNER_MAX_WIDTH => [
|
@@ -68,9 +70,10 @@ class Layout {
|
|
68 |
],
|
69 |
self::SETTING_BANNER_MAX_WIDTH => [
|
70 |
'name' => 'bannerMaxWidth',
|
71 |
-
'label' => __('Maximum width
|
72 |
-
'
|
73 |
-
'
|
|
|
74 |
'setting' => ['default' => self::DEFAULT_BANNER_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
75 |
],
|
76 |
self::SETTING_DESCRIPTION_TEXT_ALIGN => [
|
3 |
namespace DevOwl\RealCookieBanner\view\customize\banner\individual;
|
4 |
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
8 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
9 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
50 |
],
|
51 |
self::SETTING_DIALOG_MAX_WIDTH => [
|
52 |
'name' => 'dialogMaxWidth',
|
53 |
+
'label' => __('Maximum width', RCB_TD),
|
54 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
55 |
+
'unit' => 'px',
|
56 |
+
'input_attrs' => ['step' => 5, 'min' => 200, 'max' => 3000],
|
57 |
'setting' => ['default' => self::DEFAULT_DIALOG_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
58 |
],
|
59 |
self::SETTING_INHERIT_BANNER_MAX_WIDTH => [
|
70 |
],
|
71 |
self::SETTING_BANNER_MAX_WIDTH => [
|
72 |
'name' => 'bannerMaxWidth',
|
73 |
+
'label' => __('Maximum width', RCB_TD),
|
74 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
75 |
+
'unit' => 'px',
|
76 |
+
'input_attrs' => ['step' => 5, 'min' => 200, 'max' => 3000],
|
77 |
'setting' => ['default' => self::DEFAULT_BANNER_MAX_WIDTH, 'sanitize_callback' => 'absint']
|
78 |
],
|
79 |
self::SETTING_DESCRIPTION_TEXT_ALIGN => [
|
inc/view/customize/banner/individual/SaveButton.php
CHANGED
@@ -2,9 +2,12 @@
|
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\view\customize\banner\individual;
|
4 |
|
|
|
5 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
|
|
7 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
|
|
8 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
9 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
10 |
use WP_Customize_Color_Control;
|
@@ -22,6 +25,7 @@ class SaveButton {
|
|
22 |
const HEADLINE_BORDER = self::SECTION . '-headline-border';
|
23 |
const HEADLINE_HOVER = self::SECTION . '-headline-hover';
|
24 |
const SETTING = RCB_OPT_PREFIX . '-save-button';
|
|
|
25 |
const SETTING_TYPE = self::SETTING . '-type';
|
26 |
const SETTING_PADDING = self::SETTING . '-padding';
|
27 |
const SETTING_BG = self::SETTING . '-bg';
|
@@ -34,6 +38,7 @@ class SaveButton {
|
|
34 |
const SETTING_HOVER_BG = self::SETTING . '-hover-bg';
|
35 |
const SETTING_HOVER_BORDER_COLOR = self::SETTING . '-hover-border-color';
|
36 |
const SETTING_HOVER_FONT_COLOR = self::SETTING . '-hover-font-color';
|
|
|
37 |
const DEFAULT_TYPE = 'button';
|
38 |
const DEFAULT_PADDING = \DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_PADDING;
|
39 |
const DEFAULT_BG = \DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BG;
|
@@ -54,6 +59,22 @@ class SaveButton {
|
|
54 |
'name' => 'saveButton',
|
55 |
'title' => __('"Save" button', RCB_TD),
|
56 |
'controls' => [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
self::SETTING_TYPE => [
|
58 |
'name' => 'type',
|
59 |
'label' => __('Type', RCB_TD),
|
@@ -90,7 +111,8 @@ class SaveButton {
|
|
90 |
self::SETTING_FONT_SIZE => [
|
91 |
'name' => 'fontSize',
|
92 |
'label' => __('Size', RCB_TD),
|
93 |
-
'
|
|
|
94 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
95 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
96 |
],
|
@@ -114,9 +136,10 @@ class SaveButton {
|
|
114 |
],
|
115 |
self::SETTING_BORDER_WIDTH => [
|
116 |
'name' => 'borderWidth',
|
117 |
-
'
|
118 |
-
'
|
119 |
-
'
|
|
|
120 |
'setting' => ['default' => self::DEFAULT_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
121 |
],
|
122 |
self::SETTING_BORDER_COLOR => [
|
@@ -161,4 +184,14 @@ class SaveButton {
|
|
161 |
]
|
162 |
];
|
163 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
2 |
|
3 |
namespace DevOwl\RealCookieBanner\view\customize\banner\individual;
|
4 |
|
5 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel;
|
6 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\CssMarginInput;
|
7 |
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\Headline;
|
8 |
+
use DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput;
|
9 |
use DevOwl\RealCookieBanner\base\UtilsProvider;
|
10 |
+
use DevOwl\RealCookieBanner\Core;
|
11 |
use DevOwl\RealCookieBanner\view\BannerCustomize;
|
12 |
use DevOwl\RealCookieBanner\view\customize\banner\BodyDesign;
|
13 |
use WP_Customize_Color_Control;
|
25 |
const HEADLINE_BORDER = self::SECTION . '-headline-border';
|
26 |
const HEADLINE_HOVER = self::SECTION . '-headline-hover';
|
27 |
const SETTING = RCB_OPT_PREFIX . '-save-button';
|
28 |
+
const SETTING_USE_ACCEPT_ALL = self::SETTING . '-use-accept-all';
|
29 |
const SETTING_TYPE = self::SETTING . '-type';
|
30 |
const SETTING_PADDING = self::SETTING . '-padding';
|
31 |
const SETTING_BG = self::SETTING . '-bg';
|
38 |
const SETTING_HOVER_BG = self::SETTING . '-hover-bg';
|
39 |
const SETTING_HOVER_BORDER_COLOR = self::SETTING . '-hover-border-color';
|
40 |
const SETTING_HOVER_FONT_COLOR = self::SETTING . '-hover-font-color';
|
41 |
+
const DEFAULT_USE_ACCEPT_ALL = \true;
|
42 |
const DEFAULT_TYPE = 'button';
|
43 |
const DEFAULT_PADDING = \DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_PADDING;
|
44 |
const DEFAULT_BG = \DevOwl\RealCookieBanner\view\customize\banner\BodyDesign::DEFAULT_BUTTON_ACCEPT_ESSENTIALS_BG;
|
59 |
'name' => 'saveButton',
|
60 |
'title' => __('"Save" button', RCB_TD),
|
61 |
'controls' => [
|
62 |
+
self::SETTING_USE_ACCEPT_ALL => [
|
63 |
+
'name' => 'useAcceptAll',
|
64 |
+
'label' => __('Use the same stylings as for "Accept all"', RCB_TD),
|
65 |
+
'description' => __(
|
66 |
+
'According to the <a href="https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf" target="_blank">guidance of the data protection authorities in Germany (German)</a>, there must be an equivalent way for your visitors to express their choice (agree to everything, continue without consent or an indivudual decision). Equivalent does not necessarily mean that the buttons/links must look exactly the same. However, you should be safest if they look exactly the same.',
|
67 |
+
RCB_TD
|
68 |
+
),
|
69 |
+
'type' => 'checkbox',
|
70 |
+
'setting' => [
|
71 |
+
'default' => self::DEFAULT_USE_ACCEPT_ALL,
|
72 |
+
'sanitize_callback' => [
|
73 |
+
\DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\AbstractCustomizePanel::class,
|
74 |
+
'sanitize_checkbox'
|
75 |
+
]
|
76 |
+
]
|
77 |
+
],
|
78 |
self::SETTING_TYPE => [
|
79 |
'name' => 'type',
|
80 |
'label' => __('Type', RCB_TD),
|
111 |
self::SETTING_FONT_SIZE => [
|
112 |
'name' => 'fontSize',
|
113 |
'label' => __('Size', RCB_TD),
|
114 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
115 |
+
'unit' => 'px',
|
116 |
'input_attrs' => ['min' => 10, 'max' => 30, 'step' => 0],
|
117 |
'setting' => ['default' => self::DEFAULT_FONT_SIZE, 'sanitize_callback' => 'absint']
|
118 |
],
|
136 |
],
|
137 |
self::SETTING_BORDER_WIDTH => [
|
138 |
'name' => 'borderWidth',
|
139 |
+
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\RangeInput::class,
|
140 |
+
'unit' => 'px',
|
141 |
+
'input_attrs' => ['min' => 0, 'max' => 100, 'step' => 1],
|
142 |
+
'label' => __('Border width', RCB_TD),
|
143 |
'setting' => ['default' => self::DEFAULT_BORDER_WIDTH, 'sanitize_callback' => 'absint']
|
144 |
],
|
145 |
self::SETTING_BORDER_COLOR => [
|
184 |
]
|
185 |
];
|
186 |
}
|
187 |
+
/**
|
188 |
+
* Deactivate "Use same stylings as 'Accept all'" as it should not be activated automatically for already existing users.
|
189 |
+
*
|
190 |
+
* @param string|false $installed
|
191 |
+
*/
|
192 |
+
public static function new_version_installation_after_2_17_3($installed) {
|
193 |
+
if (\DevOwl\RealCookieBanner\Core::versionCompareOlderThan($installed, '2.17.3', ['2.17.4', '2.18.0'])) {
|
194 |
+
update_option(self::SETTING_USE_ACCEPT_ALL, '');
|
195 |
+
}
|
196 |
+
}
|
197 |
}
|
inc/view/customize/banner/individual/Texts.php
CHANGED
@@ -50,6 +50,10 @@ class Texts {
|
|
50 |
self::SETTING_DESCRIPTION => [
|
51 |
'name' => 'description',
|
52 |
'label' => __('Description', RCB_TD),
|
|
|
|
|
|
|
|
|
53 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\TinyMCE::class,
|
54 |
'type' => 'textarea',
|
55 |
'setting' => [
|
@@ -83,9 +87,20 @@ class Texts {
|
|
83 |
$tempTd = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
84 |
$defaults = [
|
85 |
'headline' => __('Individual privacy preferences', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
86 |
-
'description' =>
|
87 |
-
'
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
),
|
90 |
'save' => __('Save custom choices', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
91 |
'showMore' => __('Show service information', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
50 |
self::SETTING_DESCRIPTION => [
|
51 |
'name' => 'description',
|
52 |
'label' => __('Description', RCB_TD),
|
53 |
+
'description' => __(
|
54 |
+
'Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a placeholder for the privacy policy link.',
|
55 |
+
RCB_TD
|
56 |
+
),
|
57 |
'class' => \DevOwl\RealCookieBanner\Vendor\DevOwl\Customize\controls\TinyMCE::class,
|
58 |
'type' => 'textarea',
|
59 |
'setting' => [
|
87 |
$tempTd = \DevOwl\RealCookieBanner\comp\language\Hooks::getInstance()->createTemporaryTextDomain();
|
88 |
$defaults = [
|
89 |
'headline' => __('Individual privacy preferences', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
90 |
+
'description' => \sprintf(
|
91 |
+
'%s<br/><br/>%s<br/><br/>%s',
|
92 |
+
__(
|
93 |
+
'We use cookies and similar technologies on our website and process your personal data (e.g. IP address), for example, to personalize content and ads, to integrate media from third-party providers or to analyze traffic on our website. Data processing may also happen as a result of cookies being set. We share this data with third parties that we name in the privacy settings.',
|
94 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
95 |
+
),
|
96 |
+
__(
|
97 |
+
'The data processing may take place with your consent or on the basis of a legitimate interest, which you can object to in the privacy settings. You have the right not to consent and to change or revoke your consent at a later time. For more information on the use of your data, please visit our {{privacyPolicy}}privacy policy{{/privacyPolicy}}.',
|
98 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
99 |
+
),
|
100 |
+
__(
|
101 |
+
'Below you will find an overview of all services used by this website. You can view detailed information about each service and agree to them individually or exercise your right to object.',
|
102 |
+
\DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED
|
103 |
+
)
|
104 |
),
|
105 |
'save' => __('Save custom choices', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
106 |
'showMore' => __('Show service information', \DevOwl\RealCookieBanner\comp\language\Hooks::TD_FORCED),
|
inc/view/shortcode/{PrintUuidShortcode.php → HistoryUuidsShortcode.php}
RENAMED
@@ -8,11 +8,18 @@ use DevOwl\RealCookieBanner\base\UtilsProvider;
|
|
8 |
// Avoid direct file request
|
9 |
// @codeCoverageIgnoreEnd
|
10 |
/**
|
11 |
-
* Shortcode to print the consent
|
12 |
*/
|
13 |
-
class
|
14 |
use UtilsProvider;
|
15 |
-
const TAG = 'rcb-consent-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
/**
|
17 |
* Render shortcode HTML.
|
18 |
*
|
8 |
// Avoid direct file request
|
9 |
// @codeCoverageIgnoreEnd
|
10 |
/**
|
11 |
+
* Shortcode to print the consent UUIDs of the current user.
|
12 |
*/
|
13 |
+
class HistoryUuidsShortcode {
|
14 |
use UtilsProvider;
|
15 |
+
const TAG = 'rcb-consent-history-uuids';
|
16 |
+
/**
|
17 |
+
* Real Cookie Banner v2 had only one UUID in their consent. It does not change any behavior,
|
18 |
+
* but the name changed accordingly.
|
19 |
+
*
|
20 |
+
* @deprecated
|
21 |
+
*/
|
22 |
+
const DEPRECATED_TAG = 'rcb-consent-print-uuid';
|
23 |
/**
|
24 |
* Render shortcode HTML.
|
25 |
*
|
index.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Description: Obtain GDPR (DSGVO) and ePrivacy (EU cookie law) compliant opt-in consent. Find cookies and fill all legal information in your cookie banner. More than just a cookie notice!
|
9 |
* Author: devowl.io
|
10 |
* Author URI: https://devowl.io
|
11 |
-
* Version: 2.
|
12 |
* Text Domain: real-cookie-banner
|
13 |
* Domain Path: /languages
|
14 |
*/
|
8 |
* Description: Obtain GDPR (DSGVO) and ePrivacy (EU cookie law) compliant opt-in consent. Find cookies and fill all legal information in your cookie banner. More than just a cookie notice!
|
9 |
* Author: devowl.io
|
10 |
* Author URI: https://devowl.io
|
11 |
+
* Version: 2.18.1
|
12 |
* Text Domain: real-cookie-banner
|
13 |
* Domain Path: /languages
|
14 |
*/
|
languages/real-cookie-banner-bg_BG.mo
CHANGED
Binary file
|
languages/real-cookie-banner-bg_BG.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Няма активиран лиценз - не е за производ
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Лицензът на продукта не е за производствена употреба!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Лицензът на продукта не е за производствена употреба!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " и "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Без срок на валидност"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Освен това давате съгласието си за предаване на данни на партньори по стандарта TCF за следните цели:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Списък с доставчици"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Доставчици"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Покажи повече"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Скрий"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Обработка на данни на правното основание:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Няма искания от доставчици за целите на това правно основание."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Нестандартизирана обработка на данни"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Някои услуги задават бисквитки и/или обработват лични данни, без да спазват стандартите за комуникация за съгласие. Тези услуги са разделени на няколко групи. Така наречените \"основни услуги\" се използват въз основа на легитимен интерес и не могат да бъдат отказани (може да се наложи да се направи възражение по имейл или с писмо в съответствие с политиката за поверителност), докато всички останали услуги се използват само след дадено съгласие."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Обработка на данни, стандартизирана съгласно TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Рамката за прозрачност и съгласие (TCF) е стандарт за получаване на последователно съгласие за обработка на лични данни и задаване на бисквитки. Това трябва да даде възможност на всички участници в цифровата (рекламната) верига да гарантират, че задават, обработват и съхраняват данни и бисквитки в съответствие с ОРЗД и Директивата за правото на неприкосновеност на личния живот и електронни комуникации."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Цели"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Специални цели"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Функции"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Специални функции"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Целите описват с каква цел кои доставчици могат да задават \"бисквитки\" и да обработват лични данни. Целите се избират предварително, ако има законен интерес за обработката на данните му. За всички останали цели данните ще се обработват само с изрично съгласие."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Специалните цели за задаване на бисквитки и обработване на лични данни от нашите доставчици описват целите, за които имаме легитимен интерес, който не може да бъде отхвърлен. Например, трябва да обработваме данни, за да предотвратим измами."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Характеристиките за обработване на лични данни описват как данните се използват за изпълнение на една или повече цели. Функциите не могат да бъдат отхвърлени, но в раздела \"Цели\" целите, които водят до използването на функциите, могат да бъдат избрани или отменени. Всяка цел може да доведе до използването на функции."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Специалните функции за обработване на лични данни описват как данните се използват за изпълнение на една или повече цели по задълбочен начин. Личните данни ще бъдат обработвани по този начин само с изрично съгласие."
|
languages/real-cookie-banner-cs_CZ.mo
CHANGED
Binary file
|
languages/real-cookie-banner-cs_CZ.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Žádná licence není aktivována - není určena pro produkční použ
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence produktu není určena pro výrobní použití!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence produktu není určena pro výrobní použití!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " a "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Žádné vypršení platnosti"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Kromě toho souhlasíte s předáváním údajů partnerům podle standardu TCF pro následující účely:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Seznam prodejců"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Prodejci"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Zobrazit více"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Skrýt"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Zpracování údajů na právním základě:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Žádný prodejce nežádá o účely na tomto právním základě."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Nestandardizované zpracování údajů"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Některé služby nastavují soubory cookie a/nebo zpracovávají osobní údaje, aniž by dodržovaly standardy komunikace se souhlasem. Tyto služby se dělí do několika skupin. Takzvané \"základní služby\" jsou využívány na základě oprávněného zájmu a nelze je odmítnout (námitku je případně nutné vznést e-mailem nebo dopisem v souladu se zásadami ochrany osobních údajů), zatímco všechny ostatní služby jsou využívány pouze po udělení souhlasu."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Standardizované zpracování údajů podle TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Rámec pro transparentnost a souhlas (TCF) je standardem pro získání konzistentního souhlasu se zpracováním osobních údajů a nastavením souborů cookie. To by mělo umožnit všem účastníkům digitálního (reklamního) řetězce zajistit, aby nastavovali, zpracovávali a ukládali údaje a soubory cookie v souladu s GDPR a směrnicí o soukromí a elektronických komunikacích."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Účely"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Zvláštní účely"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Funkce"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Zvláštní funkce"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Účely popisují, za jakým účelem mohou jednotliví poskytovatelé nastavovat soubory cookie a zpracovávat osobní údaje. Účely jsou předem zvoleny, pokud existuje oprávněný zájem na jejich zpracování údajů. Pro všechny ostatní účely se údaje zpracovávají pouze s výslovným souhlasem."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Zvláštní účely pro nastavení souborů cookie a zpracování osobních údajů našimi dodavateli popisují účely, pro které máme oprávněný zájem, který nelze odmítnout. Například potřebujeme zpracovávat údaje, abychom zabránili podvodům."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Funkce pro zpracování osobních údajů popisují, jak jsou údaje používány ke splnění jednoho nebo více účelů. Funkce nelze odmítnout, ale v části \"Účely\" lze vybrat nebo zrušit výběr účelů, které vedou k použití funkcí. K použití funkcí může vést jakýkoli účel."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Zvláštní funkce pro zpracování osobních údajů popisují, jak jsou údaje používány k naplnění jednoho nebo více účelů hloubkovým způsobem. Osobní údaje budou tímto způsobem zpracovávány pouze s výslovným souhlasem."
|
languages/real-cookie-banner-da_DK.mo
CHANGED
Binary file
|
languages/real-cookie-banner-da_DK.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Ingen licens aktiveret - ikke til produktionsbrug!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Produktlicens ikke til produktionsbrug!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Produktlicens ikke til produktionsbrug!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " og "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Ingen udløbsdato"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Derudover giver du dit samtykke til overførsel af data til partnere i henhold til TCF-standarden til følgende formål:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Leverandørliste"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Leverandører"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Vis mere"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Skjul"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Databehandling på retsgrundlag af:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ingen anmodninger fra sælgere har til formål under dette retsgrundlag."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Ikke-standardiseret databehandling"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Nogle tjenester sætter cookies og/eller behandler personoplysninger uden at overholde standarderne for kommunikation af samtykke. Disse tjenester er opdelt i flere grupper. Såkaldte \"væsentlige tjenester\" anvendes på grundlag af legitime interesser og kan ikke fravælges (en indsigelse skal muligvis fremsættes pr. e-mail eller brev i overensstemmelse med privatlivspolitikken), mens alle andre tjenester kun anvendes efter at der er givet samtykke."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Databehandling standardiseret i henhold til TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Transparency and Consent Framework (TCF) er en standard for indhentning af konsekvent samtykke til behandling af personoplysninger og cookie-sætning. Dette skal gøre det muligt for alle parter i den digitale (reklame)kæde at sikre, at de indstiller, behandler og opbevarer data og cookies i overensstemmelse med GDPR og ePrivacy-direktivet."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Formål"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Særlige formål"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Funktioner"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Særlige funktioner"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Formål beskriver, til hvilket formål hvilke udbydere må sætte cookies og behandle personoplysninger. Formålene vælges på forhånd, hvis der er en legitim interesse i databehandlingen. Til alle andre formål behandles data kun med udtrykkeligt samtykke."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Særlige formål for vores leverandørers indstilling af cookies og behandling af personoplysninger beskriver formål, hvortil vi har en legitim interesse, som ikke kan afvises. Vi har f.eks. brug for at behandle data for at forhindre svig."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Funktioner til behandling af personoplysninger beskriver, hvordan data bruges til at opfylde et eller flere formål. Funktioner kan ikke fravælges, men i afsnittet \"Formål\" kan formål, der fører til brugen af funktioner, vælges til eller fravælges. Alle formål kan føre til, at funktioner anvendes."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Særlige funktioner til behandling af personoplysninger beskriver, hvordan data anvendes til at opfylde et eller flere formål på en dybtgående måde. Personoplysninger vil kun blive behandlet på denne måde med udtrykkeligt samtykke."
|
languages/real-cookie-banner-de_AT.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_AT.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
@@ -220,7 +220,7 @@ msgstr ""
|
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
-
#: inc/Assets.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
@@ -248,6 +248,10 @@ msgstr "Monat(e)"
|
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
|
|
|
|
|
|
|
|
251 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
252 |
#: inc/view/customize/banner/BodyDesign.php:1
|
253 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -323,6 +327,11 @@ msgstr "Keine Lizenz aktiviert - kein Produktionseinsatz!"
|
|
323 |
msgid "Product license not for production use!"
|
324 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
325 |
|
|
|
|
|
|
|
|
|
|
|
326 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
327 |
msgid "Learn more"
|
328 |
msgstr "Mehr erfahren"
|
@@ -5023,9 +5032,6 @@ msgid "Border"
|
|
5023 |
msgstr "Rahmen"
|
5024 |
|
5025 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
5026 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
5027 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
5028 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
5029 |
msgid "Border width (px)"
|
5030 |
msgstr "Rahmen breite (px)"
|
5031 |
|
@@ -5111,6 +5117,14 @@ msgstr ""
|
|
5111 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5112 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5114 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5115 |
msgid "Vendor list"
|
5116 |
msgstr "Liste der Anbieter"
|
@@ -6328,6 +6342,23 @@ msgstr ""
|
|
6328 |
msgid "View stats"
|
6329 |
msgstr "Statistiken ansehen"
|
6330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6331 |
#: inc/view/ConfigPage.php:1
|
6332 |
msgid ""
|
6333 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
@@ -6381,8 +6412,8 @@ msgstr "Banner"
|
|
6381 |
|
6382 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6383 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6384 |
-
msgid "Maximum width
|
6385 |
-
msgstr "Maximale Breite
|
6386 |
|
6387 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6388 |
msgid "Position"
|
@@ -6441,8 +6472,8 @@ msgid "Bottom"
|
|
6441 |
msgstr "Unten"
|
6442 |
|
6443 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6444 |
-
msgid "Maximum content width
|
6445 |
-
msgstr "Maximale Inhaltsbreite
|
6446 |
|
6447 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6448 |
msgid "Dialog border radius"
|
@@ -6456,10 +6487,6 @@ msgstr "Button-Rahmen: Abgerundete Ecken"
|
|
6456 |
msgid "Animation on display"
|
6457 |
msgstr "Animation beim Einblenden"
|
6458 |
|
6459 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
6460 |
-
msgid "Duration (milliseconds)"
|
6461 |
-
msgstr "Dauer (Millisekunden)"
|
6462 |
-
|
6463 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6464 |
msgid "Animation only on mobile devices"
|
6465 |
msgstr "Animation nur auf mobilen Geräten"
|
@@ -6513,14 +6540,6 @@ msgstr ""
|
|
6513 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6514 |
"Internet Explorer) nicht funktioniert."
|
6515 |
|
6516 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
6517 |
-
msgid ""
|
6518 |
-
"The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
6519 |
-
"text size) so that they are considered equal."
|
6520 |
-
msgstr ""
|
6521 |
-
"Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe haben "
|
6522 |
-
"(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
6523 |
-
|
6524 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6525 |
msgid "Body"
|
6526 |
msgstr "Hauptbereich (Body)"
|
@@ -6596,14 +6615,14 @@ msgstr "Trenner"
|
|
6596 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6597 |
#: inc/view/customize/banner/Design.php:1
|
6598 |
#: inc/view/customize/banner/individual/Group.php:1
|
6599 |
-
msgid "Width
|
6600 |
-
msgstr "Breite
|
6601 |
|
6602 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6603 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6604 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6605 |
-
msgid "Height
|
6606 |
-
msgstr "Höhe
|
6607 |
|
6608 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6609 |
#: inc/view/customize/banner/Design.php:1
|
@@ -6633,6 +6652,12 @@ msgstr "Buttons nebeneinander ausrichten"
|
|
6633 |
msgid "Define inner distance of the button/link."
|
6634 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6636 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6637 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6638 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -6663,6 +6688,31 @@ msgstr "Rahmenfarbe"
|
|
6663 |
msgid "Button: Continue without consent"
|
6664 |
msgstr "Button: Weiter ohne Einwilligung"
|
6665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6666 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6667 |
msgid "Button: Individual privacy preferences"
|
6668 |
msgstr "Button: Individuelle Einstellungen"
|
@@ -6830,7 +6880,6 @@ msgstr ""
|
|
6830 |
|
6831 |
#: inc/view/customize/banner/Decision.php:1
|
6832 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6833 |
-
#: inc/view/customize/banner/Texts.php:1
|
6834 |
msgid "Individual privacy preferences"
|
6835 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6836 |
|
@@ -6847,6 +6896,37 @@ msgstr ""
|
|
6847 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6848 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6849 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6850 |
#: inc/view/customize/banner/Decision.php:1
|
6851 |
msgid "Custom choice in first view"
|
6852 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
@@ -6868,6 +6948,11 @@ msgid "Text of \"Accept all\" changes when user changes selection"
|
|
6868 |
msgstr ""
|
6869 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6870 |
|
|
|
|
|
|
|
|
|
|
|
6871 |
#: inc/view/customize/banner/Design.php:1
|
6872 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6873 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -7047,8 +7132,8 @@ msgid "Define the inner distance of the group box."
|
|
7047 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7048 |
|
7049 |
#: inc/view/customize/banner/individual/Group.php:1
|
7050 |
-
msgid "Spacing between groups
|
7051 |
-
msgstr "Abstand zwischen Gruppen
|
7052 |
|
7053 |
#: inc/view/customize/banner/individual/Group.php:1
|
7054 |
msgid "Border radius"
|
@@ -7085,6 +7170,15 @@ msgstr "Definiere den Innenabstand des Buttons."
|
|
7085 |
msgid "Texts"
|
7086 |
msgstr "Texte"
|
7087 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7088 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7089 |
msgid "\"Save\" button/link"
|
7090 |
msgstr "\"Speichern”-Button/Link"
|
@@ -7098,30 +7192,49 @@ msgid "\"Hide service information\" link"
|
|
7098 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7099 |
|
7100 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
7101 |
msgid ""
|
7102 |
-
"We use cookies and similar technologies on our website and process
|
7103 |
-
"data
|
7104 |
-
"
|
7105 |
-
"
|
7106 |
-
"
|
7107 |
-
"
|
7108 |
-
"used by this website. You can view detailed information about each service "
|
7109 |
-
"and agree to them individually or exercise your right to object."
|
7110 |
msgstr ""
|
7111 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7112 |
-
"verarbeiten personenbezogene Daten (z.B.
|
7113 |
-
"
|
7114 |
-
"
|
7115 |
-
"
|
7116 |
-
"
|
7117 |
-
"
|
7118 |
-
"eine Übersicht über alle Services, die von dieser Website genutzt werden. Du "
|
7119 |
-
"kannst detaillierte Informationen zu jedem Service einsehen und diesen "
|
7120 |
-
"einzeln zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7121 |
|
7122 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7123 |
-
|
7124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7125 |
|
7126 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7127 |
msgid "Show service information"
|
@@ -7313,6 +7426,22 @@ msgstr "Altershinweis im Cookie Banner"
|
|
7313 |
msgid "Age notice in content blocker"
|
7314 |
msgstr "Altershinweis im Content Blocker"
|
7315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7316 |
#: inc/view/customize/banner/Texts.php:1
|
7317 |
msgid "Consent Forwarding"
|
7318 |
msgstr "Weiterleitung der Einwilligung"
|
@@ -7387,6 +7516,15 @@ msgstr ""
|
|
7387 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7388 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7390 |
#. translators:
|
7391 |
#: inc/view/customize/banner/Texts.php:1
|
7392 |
msgid ""
|
@@ -7402,22 +7540,8 @@ msgid "Privacy preferences"
|
|
7402 |
msgstr "Privatsphäre-Einstellungen"
|
7403 |
|
7404 |
#: inc/view/customize/banner/Texts.php:1
|
7405 |
-
msgid ""
|
7406 |
-
"
|
7407 |
-
"data about you, such as your IP address. We also share this data with third "
|
7408 |
-
"parties. Data processing may be done with your consent or on the basis of a "
|
7409 |
-
"legitimate interest, which you can object to in the individual privacy "
|
7410 |
-
"settings. You have the right to consent to essential services only and to "
|
7411 |
-
"modify or revoke your consent at a later time in the privacy policy."
|
7412 |
-
msgstr ""
|
7413 |
-
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7414 |
-
"verarbeiten personenbezogene Daten (z.B. deine IP-Adresse) über dich. Wir "
|
7415 |
-
"teilen diese Daten auch mit Dritten. Die Datenverarbeitung kann mit deiner "
|
7416 |
-
"Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem du "
|
7417 |
-
"in den individuellen Privatsphäre-Einstellungen widersprechen kannst. Du "
|
7418 |
-
"hast das Recht, nur in essenzielle Services einzuwilligen und deine "
|
7419 |
-
"Einwilligung in der Datenschutzerklärung zu einem späteren Zeitpunkt zu "
|
7420 |
-
"ändern oder zu widerrufen."
|
7421 |
|
7422 |
#: inc/view/customize/banner/Texts.php:1
|
7423 |
msgid ""
|
@@ -7457,6 +7581,16 @@ msgstr ""
|
|
7457 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7458 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7460 |
#: inc/view/customize/banner/Texts.php:1
|
7461 |
msgid "Your consent is also applicable on {{websites}}."
|
7462 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
@@ -7576,6 +7710,52 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7576 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7577 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7578 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7579 |
#~ msgid "Place shortcodes in your privacy policy"
|
7580 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7581 |
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-05-24 09:42+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
+
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
251 |
+
#: inc/Assets.php:1
|
252 |
+
msgid "No expiration"
|
253 |
+
msgstr "Kein Ablauf"
|
254 |
+
|
255 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
256 |
#: inc/view/customize/banner/BodyDesign.php:1
|
257 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
327 |
msgid "Product license not for production use!"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
+
#. translators:
|
331 |
+
#: inc/Assets.php:1
|
332 |
+
msgid " and "
|
333 |
+
msgstr " und "
|
334 |
+
|
335 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
336 |
msgid "Learn more"
|
337 |
msgstr "Mehr erfahren"
|
5032 |
msgstr "Rahmen"
|
5033 |
|
5034 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
5035 |
msgid "Border width (px)"
|
5036 |
msgstr "Rahmen breite (px)"
|
5037 |
|
5117 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5118 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5119 |
|
5120 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
5121 |
+
msgid ""
|
5122 |
+
"In addition, you consent to the transfer of data to partners under the TCF "
|
5123 |
+
"standard for the following purposes:"
|
5124 |
+
msgstr ""
|
5125 |
+
"Darüber hinaus stimmst du der Übermittlung von Daten an Partner im Rahmen "
|
5126 |
+
"des TCF-Standards für die folgenden Zwecke zu:"
|
5127 |
+
|
5128 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5129 |
msgid "Vendor list"
|
5130 |
msgstr "Liste der Anbieter"
|
6342 |
msgid "View stats"
|
6343 |
msgstr "Statistiken ansehen"
|
6344 |
|
6345 |
+
#: inc/view/ConfigPage.php:1
|
6346 |
+
msgid "Set privacy policy URL"
|
6347 |
+
msgstr "Datenschutzerklärung Seite einstellen"
|
6348 |
+
|
6349 |
+
#: inc/view/ConfigPage.php:1
|
6350 |
+
msgid ""
|
6351 |
+
"There are no privacy policies with further information linked for the "
|
6352 |
+
"following services in your cookie banner. We now consider these to be "
|
6353 |
+
"mandatory in order to comply with the information obligations under the "
|
6354 |
+
"GDPR. Please provide a privacy policy for each service!"
|
6355 |
+
msgstr ""
|
6356 |
+
"Für folgende Services in deinen Cookie Banner sind keine "
|
6357 |
+
"Datenschutzerklärungen mit weiterführenden Informationen verlinkt. Wir "
|
6358 |
+
"halten diese mittlerweile als zwingend notwendig, um den "
|
6359 |
+
"Informationspflichten nach DSGVO nachzukommen. Bitte hinterlege in jedem "
|
6360 |
+
"Service eine Datenschutzerklärung!"
|
6361 |
+
|
6362 |
#: inc/view/ConfigPage.php:1
|
6363 |
msgid ""
|
6364 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
6412 |
|
6413 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6414 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6415 |
+
msgid "Maximum width"
|
6416 |
+
msgstr "Maximale Breite"
|
6417 |
|
6418 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6419 |
msgid "Position"
|
6472 |
msgstr "Unten"
|
6473 |
|
6474 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6475 |
+
msgid "Maximum content width"
|
6476 |
+
msgstr "Maximale Inhaltsbreite"
|
6477 |
|
6478 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6479 |
msgid "Dialog border radius"
|
6487 |
msgid "Animation on display"
|
6488 |
msgstr "Animation beim Einblenden"
|
6489 |
|
|
|
|
|
|
|
|
|
6490 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6491 |
msgid "Animation only on mobile devices"
|
6492 |
msgstr "Animation nur auf mobilen Geräten"
|
6540 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6541 |
"Internet Explorer) nicht funktioniert."
|
6542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6543 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6544 |
msgid "Body"
|
6545 |
msgstr "Hauptbereich (Body)"
|
6615 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6616 |
#: inc/view/customize/banner/Design.php:1
|
6617 |
#: inc/view/customize/banner/individual/Group.php:1
|
6618 |
+
msgid "Width"
|
6619 |
+
msgstr "Breite"
|
6620 |
|
6621 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6622 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6623 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6624 |
+
msgid "Height"
|
6625 |
+
msgstr "Höhe"
|
6626 |
|
6627 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6628 |
#: inc/view/customize/banner/Design.php:1
|
6652 |
msgid "Define inner distance of the button/link."
|
6653 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6654 |
|
6655 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6656 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
6657 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6658 |
+
msgid "Border width"
|
6659 |
+
msgstr "Rahmen-Breite"
|
6660 |
+
|
6661 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6662 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6663 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6688 |
msgid "Button: Continue without consent"
|
6689 |
msgstr "Button: Weiter ohne Einwilligung"
|
6690 |
|
6691 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6692 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6693 |
+
msgid "Use the same stylings as for \"Accept all\""
|
6694 |
+
msgstr "Gleiche Formatierung wie für \"Alle akzeptieren\" verwenden"
|
6695 |
+
|
6696 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6697 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6698 |
+
msgid ""
|
6699 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6700 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6701 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6702 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6703 |
+
"without consent or an indivudual decision). Equivalent does not necessarily "
|
6704 |
+
"mean that the buttons/links must look exactly the same. However, you should "
|
6705 |
+
"be safest if they look exactly the same."
|
6706 |
+
msgstr ""
|
6707 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6708 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6709 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6710 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6711 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6712 |
+
"Gleichwertig bedeutet nicht unbedingt, dass die Buttons/Links genau gleich "
|
6713 |
+
"aussehen müssen. Am sichersten bist du jedoch, wenn sie genau gleich "
|
6714 |
+
"aussehen."
|
6715 |
+
|
6716 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6717 |
msgid "Button: Individual privacy preferences"
|
6718 |
msgstr "Button: Individuelle Einstellungen"
|
6880 |
|
6881 |
#: inc/view/customize/banner/Decision.php:1
|
6882 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
6883 |
msgid "Individual privacy preferences"
|
6884 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6885 |
|
6896 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6897 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6898 |
|
6899 |
+
#: inc/view/customize/banner/Decision.php:1
|
6900 |
+
msgid "Order of the buttons"
|
6901 |
+
msgstr "Reihenfolge der Buttons"
|
6902 |
+
|
6903 |
+
#: inc/view/customize/banner/Decision.php:1
|
6904 |
+
msgid ""
|
6905 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6906 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6907 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6908 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6909 |
+
"without consent or an indivudual decision). Which order of options is "
|
6910 |
+
"considered equivalent is unclear. Therefore, the options should be arranged "
|
6911 |
+
"according to the cultural conditions of the main target country."
|
6912 |
+
msgstr ""
|
6913 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6914 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6915 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6916 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6917 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6918 |
+
"Welche Reihenfolge der Optionen als gleichwertig gilt, ist unklar. Daher "
|
6919 |
+
"sollten die Optionen nach den kulturellen Gegebenheiten des Hauptziellandes "
|
6920 |
+
"angeordnet werden."
|
6921 |
+
|
6922 |
+
#: inc/view/customize/banner/Decision.php:1
|
6923 |
+
msgid "Service groups as bullet list"
|
6924 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6925 |
+
|
6926 |
+
#: inc/view/customize/banner/Decision.php:1
|
6927 |
+
msgid "Show service groups as bullet list"
|
6928 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6929 |
+
|
6930 |
#: inc/view/customize/banner/Decision.php:1
|
6931 |
msgid "Custom choice in first view"
|
6932 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
6948 |
msgstr ""
|
6949 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6950 |
|
6951 |
+
#: inc/view/customize/banner/Decision.php:1
|
6952 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
6953 |
+
msgid "Save custom choices"
|
6954 |
+
msgstr "Individuelle Auswahlen speichern"
|
6955 |
+
|
6956 |
#: inc/view/customize/banner/Design.php:1
|
6957 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6958 |
#: inc/view/customize/banner/Texts.php:1
|
7132 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7133 |
|
7134 |
#: inc/view/customize/banner/individual/Group.php:1
|
7135 |
+
msgid "Spacing between groups"
|
7136 |
+
msgstr "Abstand zwischen Gruppen"
|
7137 |
|
7138 |
#: inc/view/customize/banner/individual/Group.php:1
|
7139 |
msgid "Border radius"
|
7170 |
msgid "Texts"
|
7171 |
msgstr "Texte"
|
7172 |
|
7173 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7174 |
+
#: inc/view/customize/banner/Texts.php:1
|
7175 |
+
msgid ""
|
7176 |
+
"Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a "
|
7177 |
+
"placeholder for the privacy policy link."
|
7178 |
+
msgstr ""
|
7179 |
+
"Verwende <code>{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}</"
|
7180 |
+
"code> als Platzhalter für den Link zur Datenschutzerklärung."
|
7181 |
+
|
7182 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7183 |
msgid "\"Save\" button/link"
|
7184 |
msgstr "\"Speichern”-Button/Link"
|
7192 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7193 |
|
7194 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7195 |
+
#: inc/view/customize/banner/Texts.php:1
|
7196 |
msgid ""
|
7197 |
+
"We use cookies and similar technologies on our website and process your "
|
7198 |
+
"personal data (e.g. IP address), for example, to personalize content and "
|
7199 |
+
"ads, to integrate media from third-party providers or to analyze traffic on "
|
7200 |
+
"our website. Data processing may also happen as a result of cookies being "
|
7201 |
+
"set. We share this data with third parties that we name in the privacy "
|
7202 |
+
"settings."
|
|
|
|
|
7203 |
msgstr ""
|
7204 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7205 |
+
"verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7206 |
+
"Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7207 |
+
"einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7208 |
+
"Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. Wir "
|
7209 |
+
"teilen diese Daten mit Dritten, die wir in den Privatsphäre-Einstellungen "
|
7210 |
+
"benennen."
|
|
|
|
|
|
|
7211 |
|
7212 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7213 |
+
#: inc/view/customize/banner/Texts.php:1
|
7214 |
+
msgid ""
|
7215 |
+
"The data processing may take place with your consent or on the basis of a "
|
7216 |
+
"legitimate interest, which you can object to in the privacy settings. You "
|
7217 |
+
"have the right not to consent and to change or revoke your consent at a "
|
7218 |
+
"later time. For more information on the use of your data, please visit our "
|
7219 |
+
"{{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
7220 |
+
msgstr ""
|
7221 |
+
"Die Datenverarbeitung kann mit deiner Einwilligung oder auf Basis eines "
|
7222 |
+
"berechtigten Interesses erfolgen, dem du in den Privatsphäre-Einstellungen "
|
7223 |
+
"widersprechen kannst. Du hast das Recht, nicht einzuwilligen und deine "
|
7224 |
+
"Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu widerrufen. "
|
7225 |
+
"Weitere Informationen zur Verwendung deiner Daten findest du in unserer "
|
7226 |
+
"{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}."
|
7227 |
+
|
7228 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7229 |
+
msgid ""
|
7230 |
+
"Below you will find an overview of all services used by this website. You "
|
7231 |
+
"can view detailed information about each service and agree to them "
|
7232 |
+
"individually or exercise your right to object."
|
7233 |
+
msgstr ""
|
7234 |
+
"Im Folgenden findest du eine Übersicht über alle Services, die von dieser "
|
7235 |
+
"Website genutzt werden. Du kannst dir detaillierte Informationen zu jedem "
|
7236 |
+
"Service ansehen und ihm einzeln zustimmen oder von deinem Widerspruchsrecht "
|
7237 |
+
"Gebrauch machen."
|
7238 |
|
7239 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7240 |
msgid "Show service information"
|
7426 |
msgid "Age notice in content blocker"
|
7427 |
msgstr "Altershinweis im Content Blocker"
|
7428 |
|
7429 |
+
#: inc/view/customize/banner/Texts.php:1
|
7430 |
+
msgid "List of services"
|
7431 |
+
msgstr "Liste der Services"
|
7432 |
+
|
7433 |
+
#: inc/view/customize/banner/Texts.php:1
|
7434 |
+
msgid "Naming of all services in first view"
|
7435 |
+
msgstr "Benennung aller Services in der ersten Ansicht"
|
7436 |
+
|
7437 |
+
#: inc/view/customize/banner/Texts.php:1
|
7438 |
+
msgid ""
|
7439 |
+
"Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a "
|
7440 |
+
"placeholder for a list of services and groups."
|
7441 |
+
msgstr ""
|
7442 |
+
"Verwende <code>{{services}}</code> und <code>{{serviceGroups}}</code> als "
|
7443 |
+
"Platzhalter für eine Liste von Services und Gruppen."
|
7444 |
+
|
7445 |
#: inc/view/customize/banner/Texts.php:1
|
7446 |
msgid "Consent Forwarding"
|
7447 |
msgstr "Weiterleitung der Einwilligung"
|
7516 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7517 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7518 |
|
7519 |
+
#. translators:
|
7520 |
+
#: inc/view/customize/banner/Texts.php:1
|
7521 |
+
msgid ""
|
7522 |
+
"Naming of all services in first view is currently disabled. Please navigate "
|
7523 |
+
"to %1$sSettings > Consent%2$s to activate it."
|
7524 |
+
msgstr ""
|
7525 |
+
"Die Liste aller Services ist derzeit deaktiviert. Bitte navigiere zu "
|
7526 |
+
"%1$sEinstellungen > Einwilligung%2$s, um diese zu aktivieren."
|
7527 |
+
|
7528 |
#. translators:
|
7529 |
#: inc/view/customize/banner/Texts.php:1
|
7530 |
msgid ""
|
7540 |
msgstr "Privatsphäre-Einstellungen"
|
7541 |
|
7542 |
#: inc/view/customize/banner/Texts.php:1
|
7543 |
+
msgid "Set privacy settings individually"
|
7544 |
+
msgstr "Privatsphäre-Einstellungen individuell festlegen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7545 |
|
7546 |
#: inc/view/customize/banner/Texts.php:1
|
7547 |
msgid ""
|
7581 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7582 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7583 |
|
7584 |
+
#: inc/view/customize/banner/Texts.php:1
|
7585 |
+
msgid ""
|
7586 |
+
"By accepting all services, you allow {{services}} to be loaded. These "
|
7587 |
+
"services are divided into groups {{serviceGroups}} according to their "
|
7588 |
+
"purpose (belonging marked with superscript numbers)."
|
7589 |
+
msgstr ""
|
7590 |
+
"Wenn du alle Services akzeptierst, erlaubst du, dass {{services}} geladen "
|
7591 |
+
"werden. Diese sind nach ihrem Zweck in Gruppen {{serviceGroups}} unterteilt "
|
7592 |
+
"(Zugehörigkeit durch hochgestellte Zahlen gekennzeichnet)."
|
7593 |
+
|
7594 |
#: inc/view/customize/banner/Texts.php:1
|
7595 |
msgid "Your consent is also applicable on {{websites}}."
|
7596 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
7710 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7711 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7712 |
|
7713 |
+
#~ msgid ""
|
7714 |
+
#~ "We use cookies and similar technologies on our website and process your "
|
7715 |
+
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
7716 |
+
#~ "ads, to integrate media from third-party providers or to analyze traffic "
|
7717 |
+
#~ "on our website. Data processing may also happen as a result of cookies "
|
7718 |
+
#~ "being set. We share this data with third parties that we name in the "
|
7719 |
+
#~ "privacy settings.<br/><br/>The data processing may take place with your "
|
7720 |
+
#~ "consent or on the basis of a legitimate interest, which you can object to "
|
7721 |
+
#~ "in the privacy settings. You have the right not to consent and to change "
|
7722 |
+
#~ "or revoke your consent at a later time. For more information on the use "
|
7723 |
+
#~ "of your data, please visit our {{privacyPolicy}}privacy policy{{/"
|
7724 |
+
#~ "privacyPolicy}}.<br/><br/>Below you will find an overview of all services "
|
7725 |
+
#~ "used by this website. You can view detailed information about each "
|
7726 |
+
#~ "service and agree to them individually or exercise your right to object."
|
7727 |
+
#~ msgstr ""
|
7728 |
+
#~ "Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7729 |
+
#~ "verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7730 |
+
#~ "Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7731 |
+
#~ "einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7732 |
+
#~ "Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. "
|
7733 |
+
#~ "Wir teilen diese Daten mit Dritten, die wir in den Privatsphäre-"
|
7734 |
+
#~ "Einstellungen benennen.<br/><br/>Die Datenverarbeitung kann mit deiner "
|
7735 |
+
#~ "Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem "
|
7736 |
+
#~ "du in den Privatsphäre-Einstellungen widersprechen kannst. Du hast das "
|
7737 |
+
#~ "Recht, nicht einzuwilligen und deine Einwilligung zu einem späteren "
|
7738 |
+
#~ "Zeitpunkt zu ändern oder zu widerrufen. Weitere Informationen zur "
|
7739 |
+
#~ "Verwendung deiner Daten findest du in unserer {{privacyPolicy}}"
|
7740 |
+
#~ "Datenschutzerklärung{{/privacyPolicy}}.<br/><br/>Nachstehend findest du "
|
7741 |
+
#~ "eine Übersicht über alle von dieser Website genutzten Dienste. Du kannst "
|
7742 |
+
#~ "detaillierte Informationen zu jedem Dienst einsehen und diesen einzeln "
|
7743 |
+
#~ "zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7744 |
+
|
7745 |
+
#~ msgid "Duration (milliseconds)"
|
7746 |
+
#~ msgstr "Dauer (Millisekunden)"
|
7747 |
+
|
7748 |
+
#~ msgid ""
|
7749 |
+
#~ "The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
7750 |
+
#~ "text size) so that they are considered equal."
|
7751 |
+
#~ msgstr ""
|
7752 |
+
#~ "Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe "
|
7753 |
+
#~ "haben (Button- und Textgröße), damit sie als gleichwertig angesehen "
|
7754 |
+
#~ "werden."
|
7755 |
+
|
7756 |
+
#~ msgid "Height (px)"
|
7757 |
+
#~ msgstr "Höhe (px)"
|
7758 |
+
|
7759 |
#~ msgid "Place shortcodes in your privacy policy"
|
7760 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7761 |
|
languages/real-cookie-banner-de_CH.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_CH.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
@@ -220,7 +220,7 @@ msgstr ""
|
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
-
#: inc/Assets.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
@@ -248,6 +248,10 @@ msgstr "Monat(e)"
|
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
|
|
|
|
|
|
|
|
251 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
252 |
#: inc/view/customize/banner/BodyDesign.php:1
|
253 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -323,6 +327,11 @@ msgstr "Keine Lizenz aktiviert - kein Produktionseinsatz!"
|
|
323 |
msgid "Product license not for production use!"
|
324 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
325 |
|
|
|
|
|
|
|
|
|
|
|
326 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
327 |
msgid "Learn more"
|
328 |
msgstr "Mehr erfahren"
|
@@ -5023,9 +5032,6 @@ msgid "Border"
|
|
5023 |
msgstr "Rahmen"
|
5024 |
|
5025 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
5026 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
5027 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
5028 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
5029 |
msgid "Border width (px)"
|
5030 |
msgstr "Rahmen breite (px)"
|
5031 |
|
@@ -5111,6 +5117,14 @@ msgstr ""
|
|
5111 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5112 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5114 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5115 |
msgid "Vendor list"
|
5116 |
msgstr "Liste der Anbieter"
|
@@ -6328,6 +6342,23 @@ msgstr ""
|
|
6328 |
msgid "View stats"
|
6329 |
msgstr "Statistiken ansehen"
|
6330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6331 |
#: inc/view/ConfigPage.php:1
|
6332 |
msgid ""
|
6333 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
@@ -6381,8 +6412,8 @@ msgstr "Banner"
|
|
6381 |
|
6382 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6383 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6384 |
-
msgid "Maximum width
|
6385 |
-
msgstr "Maximale Breite
|
6386 |
|
6387 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6388 |
msgid "Position"
|
@@ -6441,8 +6472,8 @@ msgid "Bottom"
|
|
6441 |
msgstr "Unten"
|
6442 |
|
6443 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6444 |
-
msgid "Maximum content width
|
6445 |
-
msgstr "Maximale Inhaltsbreite
|
6446 |
|
6447 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6448 |
msgid "Dialog border radius"
|
@@ -6456,10 +6487,6 @@ msgstr "Button-Rahmen: Abgerundete Ecken"
|
|
6456 |
msgid "Animation on display"
|
6457 |
msgstr "Animation beim Einblenden"
|
6458 |
|
6459 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
6460 |
-
msgid "Duration (milliseconds)"
|
6461 |
-
msgstr "Dauer (Millisekunden)"
|
6462 |
-
|
6463 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6464 |
msgid "Animation only on mobile devices"
|
6465 |
msgstr "Animation nur auf mobilen Geräten"
|
@@ -6513,14 +6540,6 @@ msgstr ""
|
|
6513 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6514 |
"Internet Explorer) nicht funktioniert."
|
6515 |
|
6516 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
6517 |
-
msgid ""
|
6518 |
-
"The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
6519 |
-
"text size) so that they are considered equal."
|
6520 |
-
msgstr ""
|
6521 |
-
"Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe haben "
|
6522 |
-
"(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
6523 |
-
|
6524 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6525 |
msgid "Body"
|
6526 |
msgstr "Hauptbereich (Body)"
|
@@ -6596,14 +6615,14 @@ msgstr "Trenner"
|
|
6596 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6597 |
#: inc/view/customize/banner/Design.php:1
|
6598 |
#: inc/view/customize/banner/individual/Group.php:1
|
6599 |
-
msgid "Width
|
6600 |
-
msgstr "Breite
|
6601 |
|
6602 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6603 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6604 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6605 |
-
msgid "Height
|
6606 |
-
msgstr "Höhe
|
6607 |
|
6608 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6609 |
#: inc/view/customize/banner/Design.php:1
|
@@ -6633,6 +6652,12 @@ msgstr "Buttons nebeneinander ausrichten"
|
|
6633 |
msgid "Define inner distance of the button/link."
|
6634 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6636 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6637 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6638 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -6663,6 +6688,31 @@ msgstr "Rahmenfarbe"
|
|
6663 |
msgid "Button: Continue without consent"
|
6664 |
msgstr "Button: Weiter ohne Einwilligung"
|
6665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6666 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6667 |
msgid "Button: Individual privacy preferences"
|
6668 |
msgstr "Button: Individuelle Einstellungen"
|
@@ -6830,7 +6880,6 @@ msgstr ""
|
|
6830 |
|
6831 |
#: inc/view/customize/banner/Decision.php:1
|
6832 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6833 |
-
#: inc/view/customize/banner/Texts.php:1
|
6834 |
msgid "Individual privacy preferences"
|
6835 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6836 |
|
@@ -6847,6 +6896,37 @@ msgstr ""
|
|
6847 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6848 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6849 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6850 |
#: inc/view/customize/banner/Decision.php:1
|
6851 |
msgid "Custom choice in first view"
|
6852 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
@@ -6868,6 +6948,11 @@ msgid "Text of \"Accept all\" changes when user changes selection"
|
|
6868 |
msgstr ""
|
6869 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6870 |
|
|
|
|
|
|
|
|
|
|
|
6871 |
#: inc/view/customize/banner/Design.php:1
|
6872 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6873 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -7047,8 +7132,8 @@ msgid "Define the inner distance of the group box."
|
|
7047 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7048 |
|
7049 |
#: inc/view/customize/banner/individual/Group.php:1
|
7050 |
-
msgid "Spacing between groups
|
7051 |
-
msgstr "Abstand zwischen Gruppen
|
7052 |
|
7053 |
#: inc/view/customize/banner/individual/Group.php:1
|
7054 |
msgid "Border radius"
|
@@ -7085,6 +7170,15 @@ msgstr "Definiere den Innenabstand des Buttons."
|
|
7085 |
msgid "Texts"
|
7086 |
msgstr "Texte"
|
7087 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7088 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7089 |
msgid "\"Save\" button/link"
|
7090 |
msgstr "\"Speichern”-Button/Link"
|
@@ -7098,30 +7192,49 @@ msgid "\"Hide service information\" link"
|
|
7098 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7099 |
|
7100 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
7101 |
msgid ""
|
7102 |
-
"We use cookies and similar technologies on our website and process
|
7103 |
-
"data
|
7104 |
-
"
|
7105 |
-
"
|
7106 |
-
"
|
7107 |
-
"
|
7108 |
-
"used by this website. You can view detailed information about each service "
|
7109 |
-
"and agree to them individually or exercise your right to object."
|
7110 |
msgstr ""
|
7111 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7112 |
-
"verarbeiten personenbezogene Daten (z.B.
|
7113 |
-
"
|
7114 |
-
"
|
7115 |
-
"
|
7116 |
-
"
|
7117 |
-
"
|
7118 |
-
"eine Übersicht über alle Services, die von dieser Website genutzt werden. Du "
|
7119 |
-
"kannst detaillierte Informationen zu jedem Service einsehen und diesen "
|
7120 |
-
"einzeln zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7121 |
|
7122 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7123 |
-
|
7124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7125 |
|
7126 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7127 |
msgid "Show service information"
|
@@ -7313,6 +7426,22 @@ msgstr "Altershinweis im Cookie Banner"
|
|
7313 |
msgid "Age notice in content blocker"
|
7314 |
msgstr "Altershinweis im Content Blocker"
|
7315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7316 |
#: inc/view/customize/banner/Texts.php:1
|
7317 |
msgid "Consent Forwarding"
|
7318 |
msgstr "Weiterleitung der Einwilligung"
|
@@ -7387,6 +7516,15 @@ msgstr ""
|
|
7387 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7388 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7390 |
#. translators:
|
7391 |
#: inc/view/customize/banner/Texts.php:1
|
7392 |
msgid ""
|
@@ -7402,22 +7540,8 @@ msgid "Privacy preferences"
|
|
7402 |
msgstr "Privatsphäre-Einstellungen"
|
7403 |
|
7404 |
#: inc/view/customize/banner/Texts.php:1
|
7405 |
-
msgid ""
|
7406 |
-
"
|
7407 |
-
"data about you, such as your IP address. We also share this data with third "
|
7408 |
-
"parties. Data processing may be done with your consent or on the basis of a "
|
7409 |
-
"legitimate interest, which you can object to in the individual privacy "
|
7410 |
-
"settings. You have the right to consent to essential services only and to "
|
7411 |
-
"modify or revoke your consent at a later time in the privacy policy."
|
7412 |
-
msgstr ""
|
7413 |
-
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7414 |
-
"verarbeiten personenbezogene Daten (z.B. deine IP-Adresse) über dich. Wir "
|
7415 |
-
"teilen diese Daten auch mit Dritten. Die Datenverarbeitung kann mit deiner "
|
7416 |
-
"Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem du "
|
7417 |
-
"in den individuellen Privatsphäre-Einstellungen widersprechen kannst. Du "
|
7418 |
-
"hast das Recht, nur in essenzielle Services einzuwilligen und deine "
|
7419 |
-
"Einwilligung in der Datenschutzerklärung zu einem späteren Zeitpunkt zu "
|
7420 |
-
"ändern oder zu widerrufen."
|
7421 |
|
7422 |
#: inc/view/customize/banner/Texts.php:1
|
7423 |
msgid ""
|
@@ -7457,6 +7581,16 @@ msgstr ""
|
|
7457 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7458 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7460 |
#: inc/view/customize/banner/Texts.php:1
|
7461 |
msgid "Your consent is also applicable on {{websites}}."
|
7462 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
@@ -7576,6 +7710,52 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7576 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7577 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7578 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7579 |
#~ msgid "Place shortcodes in your privacy policy"
|
7580 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7581 |
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-05-24 09:42+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
+
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
251 |
+
#: inc/Assets.php:1
|
252 |
+
msgid "No expiration"
|
253 |
+
msgstr "Kein Ablauf"
|
254 |
+
|
255 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
256 |
#: inc/view/customize/banner/BodyDesign.php:1
|
257 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
327 |
msgid "Product license not for production use!"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
+
#. translators:
|
331 |
+
#: inc/Assets.php:1
|
332 |
+
msgid " and "
|
333 |
+
msgstr " und "
|
334 |
+
|
335 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
336 |
msgid "Learn more"
|
337 |
msgstr "Mehr erfahren"
|
5032 |
msgstr "Rahmen"
|
5033 |
|
5034 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
5035 |
msgid "Border width (px)"
|
5036 |
msgstr "Rahmen breite (px)"
|
5037 |
|
5117 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5118 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5119 |
|
5120 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
5121 |
+
msgid ""
|
5122 |
+
"In addition, you consent to the transfer of data to partners under the TCF "
|
5123 |
+
"standard for the following purposes:"
|
5124 |
+
msgstr ""
|
5125 |
+
"Darüber hinaus stimmst du der Übermittlung von Daten an Partner im Rahmen "
|
5126 |
+
"des TCF-Standards für die folgenden Zwecke zu:"
|
5127 |
+
|
5128 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5129 |
msgid "Vendor list"
|
5130 |
msgstr "Liste der Anbieter"
|
6342 |
msgid "View stats"
|
6343 |
msgstr "Statistiken ansehen"
|
6344 |
|
6345 |
+
#: inc/view/ConfigPage.php:1
|
6346 |
+
msgid "Set privacy policy URL"
|
6347 |
+
msgstr "Datenschutzerklärung Seite einstellen"
|
6348 |
+
|
6349 |
+
#: inc/view/ConfigPage.php:1
|
6350 |
+
msgid ""
|
6351 |
+
"There are no privacy policies with further information linked for the "
|
6352 |
+
"following services in your cookie banner. We now consider these to be "
|
6353 |
+
"mandatory in order to comply with the information obligations under the "
|
6354 |
+
"GDPR. Please provide a privacy policy for each service!"
|
6355 |
+
msgstr ""
|
6356 |
+
"Für folgende Services in deinen Cookie Banner sind keine "
|
6357 |
+
"Datenschutzerklärungen mit weiterführenden Informationen verlinkt. Wir "
|
6358 |
+
"halten diese mittlerweile als zwingend notwendig, um den "
|
6359 |
+
"Informationspflichten nach DSGVO nachzukommen. Bitte hinterlege in jedem "
|
6360 |
+
"Service eine Datenschutzerklärung!"
|
6361 |
+
|
6362 |
#: inc/view/ConfigPage.php:1
|
6363 |
msgid ""
|
6364 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
6412 |
|
6413 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6414 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6415 |
+
msgid "Maximum width"
|
6416 |
+
msgstr "Maximale Breite"
|
6417 |
|
6418 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6419 |
msgid "Position"
|
6472 |
msgstr "Unten"
|
6473 |
|
6474 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6475 |
+
msgid "Maximum content width"
|
6476 |
+
msgstr "Maximale Inhaltsbreite"
|
6477 |
|
6478 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6479 |
msgid "Dialog border radius"
|
6487 |
msgid "Animation on display"
|
6488 |
msgstr "Animation beim Einblenden"
|
6489 |
|
|
|
|
|
|
|
|
|
6490 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6491 |
msgid "Animation only on mobile devices"
|
6492 |
msgstr "Animation nur auf mobilen Geräten"
|
6540 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6541 |
"Internet Explorer) nicht funktioniert."
|
6542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6543 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6544 |
msgid "Body"
|
6545 |
msgstr "Hauptbereich (Body)"
|
6615 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6616 |
#: inc/view/customize/banner/Design.php:1
|
6617 |
#: inc/view/customize/banner/individual/Group.php:1
|
6618 |
+
msgid "Width"
|
6619 |
+
msgstr "Breite"
|
6620 |
|
6621 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6622 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6623 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6624 |
+
msgid "Height"
|
6625 |
+
msgstr "Höhe"
|
6626 |
|
6627 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6628 |
#: inc/view/customize/banner/Design.php:1
|
6652 |
msgid "Define inner distance of the button/link."
|
6653 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6654 |
|
6655 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6656 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
6657 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6658 |
+
msgid "Border width"
|
6659 |
+
msgstr "Rahmen-Breite"
|
6660 |
+
|
6661 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6662 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6663 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6688 |
msgid "Button: Continue without consent"
|
6689 |
msgstr "Button: Weiter ohne Einwilligung"
|
6690 |
|
6691 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6692 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6693 |
+
msgid "Use the same stylings as for \"Accept all\""
|
6694 |
+
msgstr "Gleiche Formatierung wie für \"Alle akzeptieren\" verwenden"
|
6695 |
+
|
6696 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6697 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6698 |
+
msgid ""
|
6699 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6700 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6701 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6702 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6703 |
+
"without consent or an indivudual decision). Equivalent does not necessarily "
|
6704 |
+
"mean that the buttons/links must look exactly the same. However, you should "
|
6705 |
+
"be safest if they look exactly the same."
|
6706 |
+
msgstr ""
|
6707 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6708 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6709 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6710 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6711 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6712 |
+
"Gleichwertig bedeutet nicht unbedingt, dass die Buttons/Links genau gleich "
|
6713 |
+
"aussehen müssen. Am sichersten bist du jedoch, wenn sie genau gleich "
|
6714 |
+
"aussehen."
|
6715 |
+
|
6716 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6717 |
msgid "Button: Individual privacy preferences"
|
6718 |
msgstr "Button: Individuelle Einstellungen"
|
6880 |
|
6881 |
#: inc/view/customize/banner/Decision.php:1
|
6882 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
6883 |
msgid "Individual privacy preferences"
|
6884 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6885 |
|
6896 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6897 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6898 |
|
6899 |
+
#: inc/view/customize/banner/Decision.php:1
|
6900 |
+
msgid "Order of the buttons"
|
6901 |
+
msgstr "Reihenfolge der Buttons"
|
6902 |
+
|
6903 |
+
#: inc/view/customize/banner/Decision.php:1
|
6904 |
+
msgid ""
|
6905 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6906 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6907 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6908 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6909 |
+
"without consent or an indivudual decision). Which order of options is "
|
6910 |
+
"considered equivalent is unclear. Therefore, the options should be arranged "
|
6911 |
+
"according to the cultural conditions of the main target country."
|
6912 |
+
msgstr ""
|
6913 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6914 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6915 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6916 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6917 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6918 |
+
"Welche Reihenfolge der Optionen als gleichwertig gilt, ist unklar. Daher "
|
6919 |
+
"sollten die Optionen nach den kulturellen Gegebenheiten des Hauptziellandes "
|
6920 |
+
"angeordnet werden."
|
6921 |
+
|
6922 |
+
#: inc/view/customize/banner/Decision.php:1
|
6923 |
+
msgid "Service groups as bullet list"
|
6924 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6925 |
+
|
6926 |
+
#: inc/view/customize/banner/Decision.php:1
|
6927 |
+
msgid "Show service groups as bullet list"
|
6928 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6929 |
+
|
6930 |
#: inc/view/customize/banner/Decision.php:1
|
6931 |
msgid "Custom choice in first view"
|
6932 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
6948 |
msgstr ""
|
6949 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6950 |
|
6951 |
+
#: inc/view/customize/banner/Decision.php:1
|
6952 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
6953 |
+
msgid "Save custom choices"
|
6954 |
+
msgstr "Individuelle Auswahlen speichern"
|
6955 |
+
|
6956 |
#: inc/view/customize/banner/Design.php:1
|
6957 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6958 |
#: inc/view/customize/banner/Texts.php:1
|
7132 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7133 |
|
7134 |
#: inc/view/customize/banner/individual/Group.php:1
|
7135 |
+
msgid "Spacing between groups"
|
7136 |
+
msgstr "Abstand zwischen Gruppen"
|
7137 |
|
7138 |
#: inc/view/customize/banner/individual/Group.php:1
|
7139 |
msgid "Border radius"
|
7170 |
msgid "Texts"
|
7171 |
msgstr "Texte"
|
7172 |
|
7173 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7174 |
+
#: inc/view/customize/banner/Texts.php:1
|
7175 |
+
msgid ""
|
7176 |
+
"Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a "
|
7177 |
+
"placeholder for the privacy policy link."
|
7178 |
+
msgstr ""
|
7179 |
+
"Verwende <code>{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}</"
|
7180 |
+
"code> als Platzhalter für den Link zur Datenschutzerklärung."
|
7181 |
+
|
7182 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7183 |
msgid "\"Save\" button/link"
|
7184 |
msgstr "\"Speichern”-Button/Link"
|
7192 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7193 |
|
7194 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7195 |
+
#: inc/view/customize/banner/Texts.php:1
|
7196 |
msgid ""
|
7197 |
+
"We use cookies and similar technologies on our website and process your "
|
7198 |
+
"personal data (e.g. IP address), for example, to personalize content and "
|
7199 |
+
"ads, to integrate media from third-party providers or to analyze traffic on "
|
7200 |
+
"our website. Data processing may also happen as a result of cookies being "
|
7201 |
+
"set. We share this data with third parties that we name in the privacy "
|
7202 |
+
"settings."
|
|
|
|
|
7203 |
msgstr ""
|
7204 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7205 |
+
"verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7206 |
+
"Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7207 |
+
"einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7208 |
+
"Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. Wir "
|
7209 |
+
"teilen diese Daten mit Dritten, die wir in den Privatsphäre-Einstellungen "
|
7210 |
+
"benennen."
|
|
|
|
|
|
|
7211 |
|
7212 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7213 |
+
#: inc/view/customize/banner/Texts.php:1
|
7214 |
+
msgid ""
|
7215 |
+
"The data processing may take place with your consent or on the basis of a "
|
7216 |
+
"legitimate interest, which you can object to in the privacy settings. You "
|
7217 |
+
"have the right not to consent and to change or revoke your consent at a "
|
7218 |
+
"later time. For more information on the use of your data, please visit our "
|
7219 |
+
"{{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
7220 |
+
msgstr ""
|
7221 |
+
"Die Datenverarbeitung kann mit deiner Einwilligung oder auf Basis eines "
|
7222 |
+
"berechtigten Interesses erfolgen, dem du in den Privatsphäre-Einstellungen "
|
7223 |
+
"widersprechen kannst. Du hast das Recht, nicht einzuwilligen und deine "
|
7224 |
+
"Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu widerrufen. "
|
7225 |
+
"Weitere Informationen zur Verwendung deiner Daten findest du in unserer "
|
7226 |
+
"{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}."
|
7227 |
+
|
7228 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7229 |
+
msgid ""
|
7230 |
+
"Below you will find an overview of all services used by this website. You "
|
7231 |
+
"can view detailed information about each service and agree to them "
|
7232 |
+
"individually or exercise your right to object."
|
7233 |
+
msgstr ""
|
7234 |
+
"Im Folgenden findest du eine Übersicht über alle Services, die von dieser "
|
7235 |
+
"Website genutzt werden. Du kannst dir detaillierte Informationen zu jedem "
|
7236 |
+
"Service ansehen und ihm einzeln zustimmen oder von deinem Widerspruchsrecht "
|
7237 |
+
"Gebrauch machen."
|
7238 |
|
7239 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7240 |
msgid "Show service information"
|
7426 |
msgid "Age notice in content blocker"
|
7427 |
msgstr "Altershinweis im Content Blocker"
|
7428 |
|
7429 |
+
#: inc/view/customize/banner/Texts.php:1
|
7430 |
+
msgid "List of services"
|
7431 |
+
msgstr "Liste der Services"
|
7432 |
+
|
7433 |
+
#: inc/view/customize/banner/Texts.php:1
|
7434 |
+
msgid "Naming of all services in first view"
|
7435 |
+
msgstr "Benennung aller Services in der ersten Ansicht"
|
7436 |
+
|
7437 |
+
#: inc/view/customize/banner/Texts.php:1
|
7438 |
+
msgid ""
|
7439 |
+
"Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a "
|
7440 |
+
"placeholder for a list of services and groups."
|
7441 |
+
msgstr ""
|
7442 |
+
"Verwende <code>{{services}}</code> und <code>{{serviceGroups}}</code> als "
|
7443 |
+
"Platzhalter für eine Liste von Services und Gruppen."
|
7444 |
+
|
7445 |
#: inc/view/customize/banner/Texts.php:1
|
7446 |
msgid "Consent Forwarding"
|
7447 |
msgstr "Weiterleitung der Einwilligung"
|
7516 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7517 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7518 |
|
7519 |
+
#. translators:
|
7520 |
+
#: inc/view/customize/banner/Texts.php:1
|
7521 |
+
msgid ""
|
7522 |
+
"Naming of all services in first view is currently disabled. Please navigate "
|
7523 |
+
"to %1$sSettings > Consent%2$s to activate it."
|
7524 |
+
msgstr ""
|
7525 |
+
"Die Liste aller Services ist derzeit deaktiviert. Bitte navigiere zu "
|
7526 |
+
"%1$sEinstellungen > Einwilligung%2$s, um diese zu aktivieren."
|
7527 |
+
|
7528 |
#. translators:
|
7529 |
#: inc/view/customize/banner/Texts.php:1
|
7530 |
msgid ""
|
7540 |
msgstr "Privatsphäre-Einstellungen"
|
7541 |
|
7542 |
#: inc/view/customize/banner/Texts.php:1
|
7543 |
+
msgid "Set privacy settings individually"
|
7544 |
+
msgstr "Privatsphäre-Einstellungen individuell festlegen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7545 |
|
7546 |
#: inc/view/customize/banner/Texts.php:1
|
7547 |
msgid ""
|
7581 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7582 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7583 |
|
7584 |
+
#: inc/view/customize/banner/Texts.php:1
|
7585 |
+
msgid ""
|
7586 |
+
"By accepting all services, you allow {{services}} to be loaded. These "
|
7587 |
+
"services are divided into groups {{serviceGroups}} according to their "
|
7588 |
+
"purpose (belonging marked with superscript numbers)."
|
7589 |
+
msgstr ""
|
7590 |
+
"Wenn du alle Services akzeptierst, erlaubst du, dass {{services}} geladen "
|
7591 |
+
"werden. Diese sind nach ihrem Zweck in Gruppen {{serviceGroups}} unterteilt "
|
7592 |
+
"(Zugehörigkeit durch hochgestellte Zahlen gekennzeichnet)."
|
7593 |
+
|
7594 |
#: inc/view/customize/banner/Texts.php:1
|
7595 |
msgid "Your consent is also applicable on {{websites}}."
|
7596 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
7710 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7711 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7712 |
|
7713 |
+
#~ msgid ""
|
7714 |
+
#~ "We use cookies and similar technologies on our website and process your "
|
7715 |
+
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
7716 |
+
#~ "ads, to integrate media from third-party providers or to analyze traffic "
|
7717 |
+
#~ "on our website. Data processing may also happen as a result of cookies "
|
7718 |
+
#~ "being set. We share this data with third parties that we name in the "
|
7719 |
+
#~ "privacy settings.<br/><br/>The data processing may take place with your "
|
7720 |
+
#~ "consent or on the basis of a legitimate interest, which you can object to "
|
7721 |
+
#~ "in the privacy settings. You have the right not to consent and to change "
|
7722 |
+
#~ "or revoke your consent at a later time. For more information on the use "
|
7723 |
+
#~ "of your data, please visit our {{privacyPolicy}}privacy policy{{/"
|
7724 |
+
#~ "privacyPolicy}}.<br/><br/>Below you will find an overview of all services "
|
7725 |
+
#~ "used by this website. You can view detailed information about each "
|
7726 |
+
#~ "service and agree to them individually or exercise your right to object."
|
7727 |
+
#~ msgstr ""
|
7728 |
+
#~ "Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7729 |
+
#~ "verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7730 |
+
#~ "Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7731 |
+
#~ "einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7732 |
+
#~ "Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. "
|
7733 |
+
#~ "Wir teilen diese Daten mit Dritten, die wir in den Privatsphäre-"
|
7734 |
+
#~ "Einstellungen benennen.<br/><br/>Die Datenverarbeitung kann mit deiner "
|
7735 |
+
#~ "Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem "
|
7736 |
+
#~ "du in den Privatsphäre-Einstellungen widersprechen kannst. Du hast das "
|
7737 |
+
#~ "Recht, nicht einzuwilligen und deine Einwilligung zu einem späteren "
|
7738 |
+
#~ "Zeitpunkt zu ändern oder zu widerrufen. Weitere Informationen zur "
|
7739 |
+
#~ "Verwendung deiner Daten findest du in unserer {{privacyPolicy}}"
|
7740 |
+
#~ "Datenschutzerklärung{{/privacyPolicy}}.<br/><br/>Nachstehend findest du "
|
7741 |
+
#~ "eine Übersicht über alle von dieser Website genutzten Dienste. Du kannst "
|
7742 |
+
#~ "detaillierte Informationen zu jedem Dienst einsehen und diesen einzeln "
|
7743 |
+
#~ "zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7744 |
+
|
7745 |
+
#~ msgid "Duration (milliseconds)"
|
7746 |
+
#~ msgstr "Dauer (Millisekunden)"
|
7747 |
+
|
7748 |
+
#~ msgid ""
|
7749 |
+
#~ "The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
7750 |
+
#~ "text size) so that they are considered equal."
|
7751 |
+
#~ msgstr ""
|
7752 |
+
#~ "Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe "
|
7753 |
+
#~ "haben (Button- und Textgröße), damit sie als gleichwertig angesehen "
|
7754 |
+
#~ "werden."
|
7755 |
+
|
7756 |
+
#~ msgid "Height (px)"
|
7757 |
+
#~ msgstr "Höhe (px)"
|
7758 |
+
|
7759 |
#~ msgid "Place shortcodes in your privacy policy"
|
7760 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7761 |
|
languages/real-cookie-banner-de_CH_informal.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_CH_informal.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
@@ -220,7 +220,7 @@ msgstr ""
|
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
-
#: inc/Assets.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
@@ -248,6 +248,10 @@ msgstr "Monat(e)"
|
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
|
|
|
|
|
|
|
|
251 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
252 |
#: inc/view/customize/banner/BodyDesign.php:1
|
253 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -323,6 +327,11 @@ msgstr "Keine Lizenz aktiviert - kein Produktionseinsatz!"
|
|
323 |
msgid "Product license not for production use!"
|
324 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
325 |
|
|
|
|
|
|
|
|
|
|
|
326 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
327 |
msgid "Learn more"
|
328 |
msgstr "Mehr erfahren"
|
@@ -5023,9 +5032,6 @@ msgid "Border"
|
|
5023 |
msgstr "Rahmen"
|
5024 |
|
5025 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
5026 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
5027 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
5028 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
5029 |
msgid "Border width (px)"
|
5030 |
msgstr "Rahmen breite (px)"
|
5031 |
|
@@ -5111,6 +5117,14 @@ msgstr ""
|
|
5111 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5112 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5114 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5115 |
msgid "Vendor list"
|
5116 |
msgstr "Liste der Anbieter"
|
@@ -6328,6 +6342,23 @@ msgstr ""
|
|
6328 |
msgid "View stats"
|
6329 |
msgstr "Statistiken ansehen"
|
6330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6331 |
#: inc/view/ConfigPage.php:1
|
6332 |
msgid ""
|
6333 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
@@ -6381,8 +6412,8 @@ msgstr "Banner"
|
|
6381 |
|
6382 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6383 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6384 |
-
msgid "Maximum width
|
6385 |
-
msgstr "Maximale Breite
|
6386 |
|
6387 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6388 |
msgid "Position"
|
@@ -6441,8 +6472,8 @@ msgid "Bottom"
|
|
6441 |
msgstr "Unten"
|
6442 |
|
6443 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6444 |
-
msgid "Maximum content width
|
6445 |
-
msgstr "Maximale Inhaltsbreite
|
6446 |
|
6447 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6448 |
msgid "Dialog border radius"
|
@@ -6456,10 +6487,6 @@ msgstr "Button-Rahmen: Abgerundete Ecken"
|
|
6456 |
msgid "Animation on display"
|
6457 |
msgstr "Animation beim Einblenden"
|
6458 |
|
6459 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
6460 |
-
msgid "Duration (milliseconds)"
|
6461 |
-
msgstr "Dauer (Millisekunden)"
|
6462 |
-
|
6463 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6464 |
msgid "Animation only on mobile devices"
|
6465 |
msgstr "Animation nur auf mobilen Geräten"
|
@@ -6513,14 +6540,6 @@ msgstr ""
|
|
6513 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6514 |
"Internet Explorer) nicht funktioniert."
|
6515 |
|
6516 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
6517 |
-
msgid ""
|
6518 |
-
"The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
6519 |
-
"text size) so that they are considered equal."
|
6520 |
-
msgstr ""
|
6521 |
-
"Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe haben "
|
6522 |
-
"(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
6523 |
-
|
6524 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6525 |
msgid "Body"
|
6526 |
msgstr "Hauptbereich (Body)"
|
@@ -6596,14 +6615,14 @@ msgstr "Trenner"
|
|
6596 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6597 |
#: inc/view/customize/banner/Design.php:1
|
6598 |
#: inc/view/customize/banner/individual/Group.php:1
|
6599 |
-
msgid "Width
|
6600 |
-
msgstr "Breite
|
6601 |
|
6602 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6603 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6604 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6605 |
-
msgid "Height
|
6606 |
-
msgstr "Höhe
|
6607 |
|
6608 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6609 |
#: inc/view/customize/banner/Design.php:1
|
@@ -6633,6 +6652,12 @@ msgstr "Buttons nebeneinander ausrichten"
|
|
6633 |
msgid "Define inner distance of the button/link."
|
6634 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6636 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6637 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6638 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -6663,6 +6688,31 @@ msgstr "Rahmenfarbe"
|
|
6663 |
msgid "Button: Continue without consent"
|
6664 |
msgstr "Button: Weiter ohne Einwilligung"
|
6665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6666 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6667 |
msgid "Button: Individual privacy preferences"
|
6668 |
msgstr "Button: Individuelle Einstellungen"
|
@@ -6830,7 +6880,6 @@ msgstr ""
|
|
6830 |
|
6831 |
#: inc/view/customize/banner/Decision.php:1
|
6832 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6833 |
-
#: inc/view/customize/banner/Texts.php:1
|
6834 |
msgid "Individual privacy preferences"
|
6835 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6836 |
|
@@ -6847,6 +6896,37 @@ msgstr ""
|
|
6847 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6848 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6849 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6850 |
#: inc/view/customize/banner/Decision.php:1
|
6851 |
msgid "Custom choice in first view"
|
6852 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
@@ -6868,6 +6948,11 @@ msgid "Text of \"Accept all\" changes when user changes selection"
|
|
6868 |
msgstr ""
|
6869 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6870 |
|
|
|
|
|
|
|
|
|
|
|
6871 |
#: inc/view/customize/banner/Design.php:1
|
6872 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6873 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -7047,8 +7132,8 @@ msgid "Define the inner distance of the group box."
|
|
7047 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7048 |
|
7049 |
#: inc/view/customize/banner/individual/Group.php:1
|
7050 |
-
msgid "Spacing between groups
|
7051 |
-
msgstr "Abstand zwischen Gruppen
|
7052 |
|
7053 |
#: inc/view/customize/banner/individual/Group.php:1
|
7054 |
msgid "Border radius"
|
@@ -7085,6 +7170,15 @@ msgstr "Definiere den Innenabstand des Buttons."
|
|
7085 |
msgid "Texts"
|
7086 |
msgstr "Texte"
|
7087 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7088 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7089 |
msgid "\"Save\" button/link"
|
7090 |
msgstr "\"Speichern”-Button/Link"
|
@@ -7098,30 +7192,49 @@ msgid "\"Hide service information\" link"
|
|
7098 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7099 |
|
7100 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
7101 |
msgid ""
|
7102 |
-
"We use cookies and similar technologies on our website and process
|
7103 |
-
"data
|
7104 |
-
"
|
7105 |
-
"
|
7106 |
-
"
|
7107 |
-
"
|
7108 |
-
"used by this website. You can view detailed information about each service "
|
7109 |
-
"and agree to them individually or exercise your right to object."
|
7110 |
msgstr ""
|
7111 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7112 |
-
"verarbeiten personenbezogene Daten (z.B.
|
7113 |
-
"
|
7114 |
-
"
|
7115 |
-
"
|
7116 |
-
"
|
7117 |
-
"
|
7118 |
-
"eine Übersicht über alle Services, die von dieser Website genutzt werden. Du "
|
7119 |
-
"kannst detaillierte Informationen zu jedem Service einsehen und diesen "
|
7120 |
-
"einzeln zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7121 |
|
7122 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7123 |
-
|
7124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7125 |
|
7126 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7127 |
msgid "Show service information"
|
@@ -7313,6 +7426,22 @@ msgstr "Altershinweis im Cookie Banner"
|
|
7313 |
msgid "Age notice in content blocker"
|
7314 |
msgstr "Altershinweis im Content Blocker"
|
7315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7316 |
#: inc/view/customize/banner/Texts.php:1
|
7317 |
msgid "Consent Forwarding"
|
7318 |
msgstr "Weiterleitung der Einwilligung"
|
@@ -7387,6 +7516,15 @@ msgstr ""
|
|
7387 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7388 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7390 |
#. translators:
|
7391 |
#: inc/view/customize/banner/Texts.php:1
|
7392 |
msgid ""
|
@@ -7402,22 +7540,8 @@ msgid "Privacy preferences"
|
|
7402 |
msgstr "Privatsphäre-Einstellungen"
|
7403 |
|
7404 |
#: inc/view/customize/banner/Texts.php:1
|
7405 |
-
msgid ""
|
7406 |
-
"
|
7407 |
-
"data about you, such as your IP address. We also share this data with third "
|
7408 |
-
"parties. Data processing may be done with your consent or on the basis of a "
|
7409 |
-
"legitimate interest, which you can object to in the individual privacy "
|
7410 |
-
"settings. You have the right to consent to essential services only and to "
|
7411 |
-
"modify or revoke your consent at a later time in the privacy policy."
|
7412 |
-
msgstr ""
|
7413 |
-
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7414 |
-
"verarbeiten personenbezogene Daten (z.B. deine IP-Adresse) über dich. Wir "
|
7415 |
-
"teilen diese Daten auch mit Dritten. Die Datenverarbeitung kann mit deiner "
|
7416 |
-
"Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem du "
|
7417 |
-
"in den individuellen Privatsphäre-Einstellungen widersprechen kannst. Du "
|
7418 |
-
"hast das Recht, nur in essenzielle Services einzuwilligen und deine "
|
7419 |
-
"Einwilligung in der Datenschutzerklärung zu einem späteren Zeitpunkt zu "
|
7420 |
-
"ändern oder zu widerrufen."
|
7421 |
|
7422 |
#: inc/view/customize/banner/Texts.php:1
|
7423 |
msgid ""
|
@@ -7457,6 +7581,16 @@ msgstr ""
|
|
7457 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7458 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7460 |
#: inc/view/customize/banner/Texts.php:1
|
7461 |
msgid "Your consent is also applicable on {{websites}}."
|
7462 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
@@ -7576,6 +7710,52 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7576 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7577 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7578 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7579 |
#~ msgid "Place shortcodes in your privacy policy"
|
7580 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7581 |
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-05-24 09:42+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
+
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
251 |
+
#: inc/Assets.php:1
|
252 |
+
msgid "No expiration"
|
253 |
+
msgstr "Kein Ablauf"
|
254 |
+
|
255 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
256 |
#: inc/view/customize/banner/BodyDesign.php:1
|
257 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
327 |
msgid "Product license not for production use!"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
+
#. translators:
|
331 |
+
#: inc/Assets.php:1
|
332 |
+
msgid " and "
|
333 |
+
msgstr " und "
|
334 |
+
|
335 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
336 |
msgid "Learn more"
|
337 |
msgstr "Mehr erfahren"
|
5032 |
msgstr "Rahmen"
|
5033 |
|
5034 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
5035 |
msgid "Border width (px)"
|
5036 |
msgstr "Rahmen breite (px)"
|
5037 |
|
5117 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5118 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5119 |
|
5120 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
5121 |
+
msgid ""
|
5122 |
+
"In addition, you consent to the transfer of data to partners under the TCF "
|
5123 |
+
"standard for the following purposes:"
|
5124 |
+
msgstr ""
|
5125 |
+
"Darüber hinaus stimmst du der Übermittlung von Daten an Partner im Rahmen "
|
5126 |
+
"des TCF-Standards für die folgenden Zwecke zu:"
|
5127 |
+
|
5128 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5129 |
msgid "Vendor list"
|
5130 |
msgstr "Liste der Anbieter"
|
6342 |
msgid "View stats"
|
6343 |
msgstr "Statistiken ansehen"
|
6344 |
|
6345 |
+
#: inc/view/ConfigPage.php:1
|
6346 |
+
msgid "Set privacy policy URL"
|
6347 |
+
msgstr "Datenschutzerklärung Seite einstellen"
|
6348 |
+
|
6349 |
+
#: inc/view/ConfigPage.php:1
|
6350 |
+
msgid ""
|
6351 |
+
"There are no privacy policies with further information linked for the "
|
6352 |
+
"following services in your cookie banner. We now consider these to be "
|
6353 |
+
"mandatory in order to comply with the information obligations under the "
|
6354 |
+
"GDPR. Please provide a privacy policy for each service!"
|
6355 |
+
msgstr ""
|
6356 |
+
"Für folgende Services in deinen Cookie Banner sind keine "
|
6357 |
+
"Datenschutzerklärungen mit weiterführenden Informationen verlinkt. Wir "
|
6358 |
+
"halten diese mittlerweile als zwingend notwendig, um den "
|
6359 |
+
"Informationspflichten nach DSGVO nachzukommen. Bitte hinterlege in jedem "
|
6360 |
+
"Service eine Datenschutzerklärung!"
|
6361 |
+
|
6362 |
#: inc/view/ConfigPage.php:1
|
6363 |
msgid ""
|
6364 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
6412 |
|
6413 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6414 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6415 |
+
msgid "Maximum width"
|
6416 |
+
msgstr "Maximale Breite"
|
6417 |
|
6418 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6419 |
msgid "Position"
|
6472 |
msgstr "Unten"
|
6473 |
|
6474 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6475 |
+
msgid "Maximum content width"
|
6476 |
+
msgstr "Maximale Inhaltsbreite"
|
6477 |
|
6478 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6479 |
msgid "Dialog border radius"
|
6487 |
msgid "Animation on display"
|
6488 |
msgstr "Animation beim Einblenden"
|
6489 |
|
|
|
|
|
|
|
|
|
6490 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6491 |
msgid "Animation only on mobile devices"
|
6492 |
msgstr "Animation nur auf mobilen Geräten"
|
6540 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6541 |
"Internet Explorer) nicht funktioniert."
|
6542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6543 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6544 |
msgid "Body"
|
6545 |
msgstr "Hauptbereich (Body)"
|
6615 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6616 |
#: inc/view/customize/banner/Design.php:1
|
6617 |
#: inc/view/customize/banner/individual/Group.php:1
|
6618 |
+
msgid "Width"
|
6619 |
+
msgstr "Breite"
|
6620 |
|
6621 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6622 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6623 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6624 |
+
msgid "Height"
|
6625 |
+
msgstr "Höhe"
|
6626 |
|
6627 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6628 |
#: inc/view/customize/banner/Design.php:1
|
6652 |
msgid "Define inner distance of the button/link."
|
6653 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6654 |
|
6655 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6656 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
6657 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6658 |
+
msgid "Border width"
|
6659 |
+
msgstr "Rahmen-Breite"
|
6660 |
+
|
6661 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6662 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6663 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6688 |
msgid "Button: Continue without consent"
|
6689 |
msgstr "Button: Weiter ohne Einwilligung"
|
6690 |
|
6691 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6692 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6693 |
+
msgid "Use the same stylings as for \"Accept all\""
|
6694 |
+
msgstr "Gleiche Formatierung wie für \"Alle akzeptieren\" verwenden"
|
6695 |
+
|
6696 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6697 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6698 |
+
msgid ""
|
6699 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6700 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6701 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6702 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6703 |
+
"without consent or an indivudual decision). Equivalent does not necessarily "
|
6704 |
+
"mean that the buttons/links must look exactly the same. However, you should "
|
6705 |
+
"be safest if they look exactly the same."
|
6706 |
+
msgstr ""
|
6707 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6708 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6709 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6710 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6711 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6712 |
+
"Gleichwertig bedeutet nicht unbedingt, dass die Buttons/Links genau gleich "
|
6713 |
+
"aussehen müssen. Am sichersten bist du jedoch, wenn sie genau gleich "
|
6714 |
+
"aussehen."
|
6715 |
+
|
6716 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6717 |
msgid "Button: Individual privacy preferences"
|
6718 |
msgstr "Button: Individuelle Einstellungen"
|
6880 |
|
6881 |
#: inc/view/customize/banner/Decision.php:1
|
6882 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
6883 |
msgid "Individual privacy preferences"
|
6884 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6885 |
|
6896 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6897 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6898 |
|
6899 |
+
#: inc/view/customize/banner/Decision.php:1
|
6900 |
+
msgid "Order of the buttons"
|
6901 |
+
msgstr "Reihenfolge der Buttons"
|
6902 |
+
|
6903 |
+
#: inc/view/customize/banner/Decision.php:1
|
6904 |
+
msgid ""
|
6905 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6906 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6907 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6908 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6909 |
+
"without consent or an indivudual decision). Which order of options is "
|
6910 |
+
"considered equivalent is unclear. Therefore, the options should be arranged "
|
6911 |
+
"according to the cultural conditions of the main target country."
|
6912 |
+
msgstr ""
|
6913 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6914 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6915 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6916 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6917 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6918 |
+
"Welche Reihenfolge der Optionen als gleichwertig gilt, ist unklar. Daher "
|
6919 |
+
"sollten die Optionen nach den kulturellen Gegebenheiten des Hauptziellandes "
|
6920 |
+
"angeordnet werden."
|
6921 |
+
|
6922 |
+
#: inc/view/customize/banner/Decision.php:1
|
6923 |
+
msgid "Service groups as bullet list"
|
6924 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6925 |
+
|
6926 |
+
#: inc/view/customize/banner/Decision.php:1
|
6927 |
+
msgid "Show service groups as bullet list"
|
6928 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6929 |
+
|
6930 |
#: inc/view/customize/banner/Decision.php:1
|
6931 |
msgid "Custom choice in first view"
|
6932 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
6948 |
msgstr ""
|
6949 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6950 |
|
6951 |
+
#: inc/view/customize/banner/Decision.php:1
|
6952 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
6953 |
+
msgid "Save custom choices"
|
6954 |
+
msgstr "Individuelle Auswahlen speichern"
|
6955 |
+
|
6956 |
#: inc/view/customize/banner/Design.php:1
|
6957 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6958 |
#: inc/view/customize/banner/Texts.php:1
|
7132 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7133 |
|
7134 |
#: inc/view/customize/banner/individual/Group.php:1
|
7135 |
+
msgid "Spacing between groups"
|
7136 |
+
msgstr "Abstand zwischen Gruppen"
|
7137 |
|
7138 |
#: inc/view/customize/banner/individual/Group.php:1
|
7139 |
msgid "Border radius"
|
7170 |
msgid "Texts"
|
7171 |
msgstr "Texte"
|
7172 |
|
7173 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7174 |
+
#: inc/view/customize/banner/Texts.php:1
|
7175 |
+
msgid ""
|
7176 |
+
"Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a "
|
7177 |
+
"placeholder for the privacy policy link."
|
7178 |
+
msgstr ""
|
7179 |
+
"Verwende <code>{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}</"
|
7180 |
+
"code> als Platzhalter für den Link zur Datenschutzerklärung."
|
7181 |
+
|
7182 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7183 |
msgid "\"Save\" button/link"
|
7184 |
msgstr "\"Speichern”-Button/Link"
|
7192 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7193 |
|
7194 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7195 |
+
#: inc/view/customize/banner/Texts.php:1
|
7196 |
msgid ""
|
7197 |
+
"We use cookies and similar technologies on our website and process your "
|
7198 |
+
"personal data (e.g. IP address), for example, to personalize content and "
|
7199 |
+
"ads, to integrate media from third-party providers or to analyze traffic on "
|
7200 |
+
"our website. Data processing may also happen as a result of cookies being "
|
7201 |
+
"set. We share this data with third parties that we name in the privacy "
|
7202 |
+
"settings."
|
|
|
|
|
7203 |
msgstr ""
|
7204 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7205 |
+
"verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7206 |
+
"Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7207 |
+
"einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7208 |
+
"Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. Wir "
|
7209 |
+
"teilen diese Daten mit Dritten, die wir in den Privatsphäre-Einstellungen "
|
7210 |
+
"benennen."
|
|
|
|
|
|
|
7211 |
|
7212 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7213 |
+
#: inc/view/customize/banner/Texts.php:1
|
7214 |
+
msgid ""
|
7215 |
+
"The data processing may take place with your consent or on the basis of a "
|
7216 |
+
"legitimate interest, which you can object to in the privacy settings. You "
|
7217 |
+
"have the right not to consent and to change or revoke your consent at a "
|
7218 |
+
"later time. For more information on the use of your data, please visit our "
|
7219 |
+
"{{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
7220 |
+
msgstr ""
|
7221 |
+
"Die Datenverarbeitung kann mit deiner Einwilligung oder auf Basis eines "
|
7222 |
+
"berechtigten Interesses erfolgen, dem du in den Privatsphäre-Einstellungen "
|
7223 |
+
"widersprechen kannst. Du hast das Recht, nicht einzuwilligen und deine "
|
7224 |
+
"Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu widerrufen. "
|
7225 |
+
"Weitere Informationen zur Verwendung deiner Daten findest du in unserer "
|
7226 |
+
"{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}."
|
7227 |
+
|
7228 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7229 |
+
msgid ""
|
7230 |
+
"Below you will find an overview of all services used by this website. You "
|
7231 |
+
"can view detailed information about each service and agree to them "
|
7232 |
+
"individually or exercise your right to object."
|
7233 |
+
msgstr ""
|
7234 |
+
"Im Folgenden findest du eine Übersicht über alle Services, die von dieser "
|
7235 |
+
"Website genutzt werden. Du kannst dir detaillierte Informationen zu jedem "
|
7236 |
+
"Service ansehen und ihm einzeln zustimmen oder von deinem Widerspruchsrecht "
|
7237 |
+
"Gebrauch machen."
|
7238 |
|
7239 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7240 |
msgid "Show service information"
|
7426 |
msgid "Age notice in content blocker"
|
7427 |
msgstr "Altershinweis im Content Blocker"
|
7428 |
|
7429 |
+
#: inc/view/customize/banner/Texts.php:1
|
7430 |
+
msgid "List of services"
|
7431 |
+
msgstr "Liste der Services"
|
7432 |
+
|
7433 |
+
#: inc/view/customize/banner/Texts.php:1
|
7434 |
+
msgid "Naming of all services in first view"
|
7435 |
+
msgstr "Benennung aller Services in der ersten Ansicht"
|
7436 |
+
|
7437 |
+
#: inc/view/customize/banner/Texts.php:1
|
7438 |
+
msgid ""
|
7439 |
+
"Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a "
|
7440 |
+
"placeholder for a list of services and groups."
|
7441 |
+
msgstr ""
|
7442 |
+
"Verwende <code>{{services}}</code> und <code>{{serviceGroups}}</code> als "
|
7443 |
+
"Platzhalter für eine Liste von Services und Gruppen."
|
7444 |
+
|
7445 |
#: inc/view/customize/banner/Texts.php:1
|
7446 |
msgid "Consent Forwarding"
|
7447 |
msgstr "Weiterleitung der Einwilligung"
|
7516 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7517 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7518 |
|
7519 |
+
#. translators:
|
7520 |
+
#: inc/view/customize/banner/Texts.php:1
|
7521 |
+
msgid ""
|
7522 |
+
"Naming of all services in first view is currently disabled. Please navigate "
|
7523 |
+
"to %1$sSettings > Consent%2$s to activate it."
|
7524 |
+
msgstr ""
|
7525 |
+
"Die Liste aller Services ist derzeit deaktiviert. Bitte navigiere zu "
|
7526 |
+
"%1$sEinstellungen > Einwilligung%2$s, um diese zu aktivieren."
|
7527 |
+
|
7528 |
#. translators:
|
7529 |
#: inc/view/customize/banner/Texts.php:1
|
7530 |
msgid ""
|
7540 |
msgstr "Privatsphäre-Einstellungen"
|
7541 |
|
7542 |
#: inc/view/customize/banner/Texts.php:1
|
7543 |
+
msgid "Set privacy settings individually"
|
7544 |
+
msgstr "Privatsphäre-Einstellungen individuell festlegen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7545 |
|
7546 |
#: inc/view/customize/banner/Texts.php:1
|
7547 |
msgid ""
|
7581 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7582 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7583 |
|
7584 |
+
#: inc/view/customize/banner/Texts.php:1
|
7585 |
+
msgid ""
|
7586 |
+
"By accepting all services, you allow {{services}} to be loaded. These "
|
7587 |
+
"services are divided into groups {{serviceGroups}} according to their "
|
7588 |
+
"purpose (belonging marked with superscript numbers)."
|
7589 |
+
msgstr ""
|
7590 |
+
"Wenn du alle Services akzeptierst, erlaubst du, dass {{services}} geladen "
|
7591 |
+
"werden. Diese sind nach ihrem Zweck in Gruppen {{serviceGroups}} unterteilt "
|
7592 |
+
"(Zugehörigkeit durch hochgestellte Zahlen gekennzeichnet)."
|
7593 |
+
|
7594 |
#: inc/view/customize/banner/Texts.php:1
|
7595 |
msgid "Your consent is also applicable on {{websites}}."
|
7596 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
7710 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7711 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7712 |
|
7713 |
+
#~ msgid ""
|
7714 |
+
#~ "We use cookies and similar technologies on our website and process your "
|
7715 |
+
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
7716 |
+
#~ "ads, to integrate media from third-party providers or to analyze traffic "
|
7717 |
+
#~ "on our website. Data processing may also happen as a result of cookies "
|
7718 |
+
#~ "being set. We share this data with third parties that we name in the "
|
7719 |
+
#~ "privacy settings.<br/><br/>The data processing may take place with your "
|
7720 |
+
#~ "consent or on the basis of a legitimate interest, which you can object to "
|
7721 |
+
#~ "in the privacy settings. You have the right not to consent and to change "
|
7722 |
+
#~ "or revoke your consent at a later time. For more information on the use "
|
7723 |
+
#~ "of your data, please visit our {{privacyPolicy}}privacy policy{{/"
|
7724 |
+
#~ "privacyPolicy}}.<br/><br/>Below you will find an overview of all services "
|
7725 |
+
#~ "used by this website. You can view detailed information about each "
|
7726 |
+
#~ "service and agree to them individually or exercise your right to object."
|
7727 |
+
#~ msgstr ""
|
7728 |
+
#~ "Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7729 |
+
#~ "verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7730 |
+
#~ "Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7731 |
+
#~ "einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7732 |
+
#~ "Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. "
|
7733 |
+
#~ "Wir teilen diese Daten mit Dritten, die wir in den Privatsphäre-"
|
7734 |
+
#~ "Einstellungen benennen.<br/><br/>Die Datenverarbeitung kann mit deiner "
|
7735 |
+
#~ "Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem "
|
7736 |
+
#~ "du in den Privatsphäre-Einstellungen widersprechen kannst. Du hast das "
|
7737 |
+
#~ "Recht, nicht einzuwilligen und deine Einwilligung zu einem späteren "
|
7738 |
+
#~ "Zeitpunkt zu ändern oder zu widerrufen. Weitere Informationen zur "
|
7739 |
+
#~ "Verwendung deiner Daten findest du in unserer {{privacyPolicy}}"
|
7740 |
+
#~ "Datenschutzerklärung{{/privacyPolicy}}.<br/><br/>Nachstehend findest du "
|
7741 |
+
#~ "eine Übersicht über alle von dieser Website genutzten Dienste. Du kannst "
|
7742 |
+
#~ "detaillierte Informationen zu jedem Dienst einsehen und diesen einzeln "
|
7743 |
+
#~ "zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7744 |
+
|
7745 |
+
#~ msgid "Duration (milliseconds)"
|
7746 |
+
#~ msgstr "Dauer (Millisekunden)"
|
7747 |
+
|
7748 |
+
#~ msgid ""
|
7749 |
+
#~ "The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
7750 |
+
#~ "text size) so that they are considered equal."
|
7751 |
+
#~ msgstr ""
|
7752 |
+
#~ "Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe "
|
7753 |
+
#~ "haben (Button- und Textgröße), damit sie als gleichwertig angesehen "
|
7754 |
+
#~ "werden."
|
7755 |
+
|
7756 |
+
#~ msgid "Height (px)"
|
7757 |
+
#~ msgstr "Höhe (px)"
|
7758 |
+
|
7759 |
#~ msgid "Place shortcodes in your privacy policy"
|
7760 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7761 |
|
languages/real-cookie-banner-de_DE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_DE.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
-
"PO-Revision-Date: 2022-
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
@@ -220,7 +220,7 @@ msgstr ""
|
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
-
#: inc/Assets.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
@@ -248,6 +248,10 @@ msgstr "Monat(e)"
|
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
|
|
|
|
|
|
|
|
251 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
252 |
#: inc/view/customize/banner/BodyDesign.php:1
|
253 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -323,6 +327,11 @@ msgstr "Keine Lizenz aktiviert - kein Produktionseinsatz!"
|
|
323 |
msgid "Product license not for production use!"
|
324 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
325 |
|
|
|
|
|
|
|
|
|
|
|
326 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
327 |
msgid "Learn more"
|
328 |
msgstr "Mehr erfahren"
|
@@ -5023,9 +5032,6 @@ msgid "Border"
|
|
5023 |
msgstr "Rahmen"
|
5024 |
|
5025 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
5026 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
5027 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
5028 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
5029 |
msgid "Border width (px)"
|
5030 |
msgstr "Rahmen breite (px)"
|
5031 |
|
@@ -5111,6 +5117,14 @@ msgstr ""
|
|
5111 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5112 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5114 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5115 |
msgid "Vendor list"
|
5116 |
msgstr "Liste der Anbieter"
|
@@ -6328,6 +6342,23 @@ msgstr ""
|
|
6328 |
msgid "View stats"
|
6329 |
msgstr "Statistiken ansehen"
|
6330 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6331 |
#: inc/view/ConfigPage.php:1
|
6332 |
msgid ""
|
6333 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
@@ -6381,8 +6412,8 @@ msgstr "Banner"
|
|
6381 |
|
6382 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6383 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6384 |
-
msgid "Maximum width
|
6385 |
-
msgstr "Maximale Breite
|
6386 |
|
6387 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6388 |
msgid "Position"
|
@@ -6441,8 +6472,8 @@ msgid "Bottom"
|
|
6441 |
msgstr "Unten"
|
6442 |
|
6443 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6444 |
-
msgid "Maximum content width
|
6445 |
-
msgstr "Maximale Inhaltsbreite
|
6446 |
|
6447 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6448 |
msgid "Dialog border radius"
|
@@ -6456,10 +6487,6 @@ msgstr "Button-Rahmen: Abgerundete Ecken"
|
|
6456 |
msgid "Animation on display"
|
6457 |
msgstr "Animation beim Einblenden"
|
6458 |
|
6459 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
6460 |
-
msgid "Duration (milliseconds)"
|
6461 |
-
msgstr "Dauer (Millisekunden)"
|
6462 |
-
|
6463 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6464 |
msgid "Animation only on mobile devices"
|
6465 |
msgstr "Animation nur auf mobilen Geräten"
|
@@ -6513,14 +6540,6 @@ msgstr ""
|
|
6513 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6514 |
"Internet Explorer) nicht funktioniert."
|
6515 |
|
6516 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
6517 |
-
msgid ""
|
6518 |
-
"The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
6519 |
-
"text size) so that they are considered equal."
|
6520 |
-
msgstr ""
|
6521 |
-
"Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe haben "
|
6522 |
-
"(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
6523 |
-
|
6524 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6525 |
msgid "Body"
|
6526 |
msgstr "Hauptbereich (Body)"
|
@@ -6596,14 +6615,14 @@ msgstr "Trenner"
|
|
6596 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6597 |
#: inc/view/customize/banner/Design.php:1
|
6598 |
#: inc/view/customize/banner/individual/Group.php:1
|
6599 |
-
msgid "Width
|
6600 |
-
msgstr "Breite
|
6601 |
|
6602 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6603 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6604 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6605 |
-
msgid "Height
|
6606 |
-
msgstr "Höhe
|
6607 |
|
6608 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6609 |
#: inc/view/customize/banner/Design.php:1
|
@@ -6633,6 +6652,12 @@ msgstr "Buttons nebeneinander ausrichten"
|
|
6633 |
msgid "Define inner distance of the button/link."
|
6634 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6636 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6637 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6638 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -6663,6 +6688,31 @@ msgstr "Rahmenfarbe"
|
|
6663 |
msgid "Button: Continue without consent"
|
6664 |
msgstr "Button: Weiter ohne Einwilligung"
|
6665 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6666 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6667 |
msgid "Button: Individual privacy preferences"
|
6668 |
msgstr "Button: Individuelle Einstellungen"
|
@@ -6830,7 +6880,6 @@ msgstr ""
|
|
6830 |
|
6831 |
#: inc/view/customize/banner/Decision.php:1
|
6832 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6833 |
-
#: inc/view/customize/banner/Texts.php:1
|
6834 |
msgid "Individual privacy preferences"
|
6835 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6836 |
|
@@ -6847,6 +6896,37 @@ msgstr ""
|
|
6847 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6848 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6849 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6850 |
#: inc/view/customize/banner/Decision.php:1
|
6851 |
msgid "Custom choice in first view"
|
6852 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
@@ -6868,6 +6948,11 @@ msgid "Text of \"Accept all\" changes when user changes selection"
|
|
6868 |
msgstr ""
|
6869 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6870 |
|
|
|
|
|
|
|
|
|
|
|
6871 |
#: inc/view/customize/banner/Design.php:1
|
6872 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6873 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -7047,8 +7132,8 @@ msgid "Define the inner distance of the group box."
|
|
7047 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7048 |
|
7049 |
#: inc/view/customize/banner/individual/Group.php:1
|
7050 |
-
msgid "Spacing between groups
|
7051 |
-
msgstr "Abstand zwischen Gruppen
|
7052 |
|
7053 |
#: inc/view/customize/banner/individual/Group.php:1
|
7054 |
msgid "Border radius"
|
@@ -7085,6 +7170,15 @@ msgstr "Definiere den Innenabstand des Buttons."
|
|
7085 |
msgid "Texts"
|
7086 |
msgstr "Texte"
|
7087 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7088 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7089 |
msgid "\"Save\" button/link"
|
7090 |
msgstr "\"Speichern”-Button/Link"
|
@@ -7098,30 +7192,49 @@ msgid "\"Hide service information\" link"
|
|
7098 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7099 |
|
7100 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
7101 |
msgid ""
|
7102 |
-
"We use cookies and similar technologies on our website and process
|
7103 |
-
"data
|
7104 |
-
"
|
7105 |
-
"
|
7106 |
-
"
|
7107 |
-
"
|
7108 |
-
"used by this website. You can view detailed information about each service "
|
7109 |
-
"and agree to them individually or exercise your right to object."
|
7110 |
msgstr ""
|
7111 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7112 |
-
"verarbeiten personenbezogene Daten (z.B.
|
7113 |
-
"
|
7114 |
-
"
|
7115 |
-
"
|
7116 |
-
"
|
7117 |
-
"
|
7118 |
-
"eine Übersicht über alle Services, die von dieser Website genutzt werden. Du "
|
7119 |
-
"kannst detaillierte Informationen zu jedem Service einsehen und diesen "
|
7120 |
-
"einzeln zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7121 |
|
7122 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7123 |
-
|
7124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7125 |
|
7126 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7127 |
msgid "Show service information"
|
@@ -7313,6 +7426,22 @@ msgstr "Altershinweis im Cookie Banner"
|
|
7313 |
msgid "Age notice in content blocker"
|
7314 |
msgstr "Altershinweis im Content Blocker"
|
7315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7316 |
#: inc/view/customize/banner/Texts.php:1
|
7317 |
msgid "Consent Forwarding"
|
7318 |
msgstr "Weiterleitung der Einwilligung"
|
@@ -7387,6 +7516,15 @@ msgstr ""
|
|
7387 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7388 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7390 |
#. translators:
|
7391 |
#: inc/view/customize/banner/Texts.php:1
|
7392 |
msgid ""
|
@@ -7402,22 +7540,8 @@ msgid "Privacy preferences"
|
|
7402 |
msgstr "Privatsphäre-Einstellungen"
|
7403 |
|
7404 |
#: inc/view/customize/banner/Texts.php:1
|
7405 |
-
msgid ""
|
7406 |
-
"
|
7407 |
-
"data about you, such as your IP address. We also share this data with third "
|
7408 |
-
"parties. Data processing may be done with your consent or on the basis of a "
|
7409 |
-
"legitimate interest, which you can object to in the individual privacy "
|
7410 |
-
"settings. You have the right to consent to essential services only and to "
|
7411 |
-
"modify or revoke your consent at a later time in the privacy policy."
|
7412 |
-
msgstr ""
|
7413 |
-
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7414 |
-
"verarbeiten personenbezogene Daten (z.B. deine IP-Adresse) über dich. Wir "
|
7415 |
-
"teilen diese Daten auch mit Dritten. Die Datenverarbeitung kann mit deiner "
|
7416 |
-
"Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem du "
|
7417 |
-
"in den individuellen Privatsphäre-Einstellungen widersprechen kannst. Du "
|
7418 |
-
"hast das Recht, nur in essenzielle Services einzuwilligen und deine "
|
7419 |
-
"Einwilligung in der Datenschutzerklärung zu einem späteren Zeitpunkt zu "
|
7420 |
-
"ändern oder zu widerrufen."
|
7421 |
|
7422 |
#: inc/view/customize/banner/Texts.php:1
|
7423 |
msgid ""
|
@@ -7457,6 +7581,16 @@ msgstr ""
|
|
7457 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7458 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7460 |
#: inc/view/customize/banner/Texts.php:1
|
7461 |
msgid "Your consent is also applicable on {{websites}}."
|
7462 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
@@ -7576,6 +7710,52 @@ msgstr "Bitte gib ein `text`-Attribut in deinem Shortcode an!"
|
|
7576 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7577 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7578 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7579 |
#~ msgid "Place shortcodes in your privacy policy"
|
7580 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7581 |
|
2 |
msgstr ""
|
3 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
4 |
"POT-Creation-Date: n/a\n"
|
5 |
+
"PO-Revision-Date: 2022-05-24 09:42+0000\n"
|
6 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
7 |
"Language-Team: German <https://translate.devowl.io/projects/wordpress-real-"
|
8 |
"cookie-banner-backend-php/develop/de/>\n"
|
220 |
msgid "Host"
|
221 |
msgstr "Host"
|
222 |
|
223 |
+
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
224 |
msgid "Duration"
|
225 |
msgstr "Dauer"
|
226 |
|
248 |
msgid "year(s)"
|
249 |
msgstr "Jahr(e)"
|
250 |
|
251 |
+
#: inc/Assets.php:1
|
252 |
+
msgid "No expiration"
|
253 |
+
msgstr "Kein Ablauf"
|
254 |
+
|
255 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
256 |
#: inc/view/customize/banner/BodyDesign.php:1
|
257 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
327 |
msgid "Product license not for production use!"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
330 |
+
#. translators:
|
331 |
+
#: inc/Assets.php:1
|
332 |
+
msgid " and "
|
333 |
+
msgstr " und "
|
334 |
+
|
335 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
336 |
msgid "Learn more"
|
337 |
msgstr "Mehr erfahren"
|
5032 |
msgstr "Rahmen"
|
5033 |
|
5034 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
5035 |
msgid "Border width (px)"
|
5036 |
msgstr "Rahmen breite (px)"
|
5037 |
|
5117 |
"genutzt. Details zu den einzelnen Gruppen und Zwecken der Services findest "
|
5118 |
"du in den individuellen Privatsphäre-Einstellungen."
|
5119 |
|
5120 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
5121 |
+
msgid ""
|
5122 |
+
"In addition, you consent to the transfer of data to partners under the TCF "
|
5123 |
+
"standard for the following purposes:"
|
5124 |
+
msgstr ""
|
5125 |
+
"Darüber hinaus stimmst du der Übermittlung von Daten an Partner im Rahmen "
|
5126 |
+
"des TCF-Standards für die folgenden Zwecke zu:"
|
5127 |
+
|
5128 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5129 |
msgid "Vendor list"
|
5130 |
msgstr "Liste der Anbieter"
|
6342 |
msgid "View stats"
|
6343 |
msgstr "Statistiken ansehen"
|
6344 |
|
6345 |
+
#: inc/view/ConfigPage.php:1
|
6346 |
+
msgid "Set privacy policy URL"
|
6347 |
+
msgstr "Datenschutzerklärung Seite einstellen"
|
6348 |
+
|
6349 |
+
#: inc/view/ConfigPage.php:1
|
6350 |
+
msgid ""
|
6351 |
+
"There are no privacy policies with further information linked for the "
|
6352 |
+
"following services in your cookie banner. We now consider these to be "
|
6353 |
+
"mandatory in order to comply with the information obligations under the "
|
6354 |
+
"GDPR. Please provide a privacy policy for each service!"
|
6355 |
+
msgstr ""
|
6356 |
+
"Für folgende Services in deinen Cookie Banner sind keine "
|
6357 |
+
"Datenschutzerklärungen mit weiterführenden Informationen verlinkt. Wir "
|
6358 |
+
"halten diese mittlerweile als zwingend notwendig, um den "
|
6359 |
+
"Informationspflichten nach DSGVO nachzukommen. Bitte hinterlege in jedem "
|
6360 |
+
"Service eine Datenschutzerklärung!"
|
6361 |
+
|
6362 |
#: inc/view/ConfigPage.php:1
|
6363 |
msgid ""
|
6364 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
6412 |
|
6413 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6414 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6415 |
+
msgid "Maximum width"
|
6416 |
+
msgstr "Maximale Breite"
|
6417 |
|
6418 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6419 |
msgid "Position"
|
6472 |
msgstr "Unten"
|
6473 |
|
6474 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6475 |
+
msgid "Maximum content width"
|
6476 |
+
msgstr "Maximale Inhaltsbreite"
|
6477 |
|
6478 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6479 |
msgid "Dialog border radius"
|
6487 |
msgid "Animation on display"
|
6488 |
msgstr "Animation beim Einblenden"
|
6489 |
|
|
|
|
|
|
|
|
|
6490 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6491 |
msgid "Animation only on mobile devices"
|
6492 |
msgstr "Animation nur auf mobilen Geräten"
|
6540 |
"Beachte, dass diese Option für Besucher mit einem älteren Browser (z. B. "
|
6541 |
"Internet Explorer) nicht funktioniert."
|
6542 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6543 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6544 |
msgid "Body"
|
6545 |
msgstr "Hauptbereich (Body)"
|
6615 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6616 |
#: inc/view/customize/banner/Design.php:1
|
6617 |
#: inc/view/customize/banner/individual/Group.php:1
|
6618 |
+
msgid "Width"
|
6619 |
+
msgstr "Breite"
|
6620 |
|
6621 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6622 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6623 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6624 |
+
msgid "Height"
|
6625 |
+
msgstr "Höhe"
|
6626 |
|
6627 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6628 |
#: inc/view/customize/banner/Design.php:1
|
6652 |
msgid "Define inner distance of the button/link."
|
6653 |
msgstr "Definiere den Innenabstand des Buttons/Links."
|
6654 |
|
6655 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6656 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
6657 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6658 |
+
msgid "Border width"
|
6659 |
+
msgstr "Rahmen-Breite"
|
6660 |
+
|
6661 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6662 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6663 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6688 |
msgid "Button: Continue without consent"
|
6689 |
msgstr "Button: Weiter ohne Einwilligung"
|
6690 |
|
6691 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6692 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6693 |
+
msgid "Use the same stylings as for \"Accept all\""
|
6694 |
+
msgstr "Gleiche Formatierung wie für \"Alle akzeptieren\" verwenden"
|
6695 |
+
|
6696 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6697 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6698 |
+
msgid ""
|
6699 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6700 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6701 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6702 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6703 |
+
"without consent or an indivudual decision). Equivalent does not necessarily "
|
6704 |
+
"mean that the buttons/links must look exactly the same. However, you should "
|
6705 |
+
"be safest if they look exactly the same."
|
6706 |
+
msgstr ""
|
6707 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6708 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6709 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6710 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6711 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6712 |
+
"Gleichwertig bedeutet nicht unbedingt, dass die Buttons/Links genau gleich "
|
6713 |
+
"aussehen müssen. Am sichersten bist du jedoch, wenn sie genau gleich "
|
6714 |
+
"aussehen."
|
6715 |
+
|
6716 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6717 |
msgid "Button: Individual privacy preferences"
|
6718 |
msgstr "Button: Individuelle Einstellungen"
|
6880 |
|
6881 |
#: inc/view/customize/banner/Decision.php:1
|
6882 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
6883 |
msgid "Individual privacy preferences"
|
6884 |
msgstr "Individuelle Privatsphäre-Einstellungen"
|
6885 |
|
6896 |
"Daher muss dem Nutzer die Möglichkeit gegeben werden, die Seite mit den "
|
6897 |
"individuellen Privatsphäre-Einstellungen aufzurufen."
|
6898 |
|
6899 |
+
#: inc/view/customize/banner/Decision.php:1
|
6900 |
+
msgid "Order of the buttons"
|
6901 |
+
msgstr "Reihenfolge der Buttons"
|
6902 |
+
|
6903 |
+
#: inc/view/customize/banner/Decision.php:1
|
6904 |
+
msgid ""
|
6905 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6906 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6907 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6908 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6909 |
+
"without consent or an indivudual decision). Which order of options is "
|
6910 |
+
"considered equivalent is unclear. Therefore, the options should be arranged "
|
6911 |
+
"according to the cultural conditions of the main target country."
|
6912 |
+
msgstr ""
|
6913 |
+
"Gemäß der <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6914 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6915 |
+
"deutschen Datenschutzbehörden</a> muss es für deine Besucher eine "
|
6916 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6917 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6918 |
+
"Welche Reihenfolge der Optionen als gleichwertig gilt, ist unklar. Daher "
|
6919 |
+
"sollten die Optionen nach den kulturellen Gegebenheiten des Hauptziellandes "
|
6920 |
+
"angeordnet werden."
|
6921 |
+
|
6922 |
+
#: inc/view/customize/banner/Decision.php:1
|
6923 |
+
msgid "Service groups as bullet list"
|
6924 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6925 |
+
|
6926 |
+
#: inc/view/customize/banner/Decision.php:1
|
6927 |
+
msgid "Show service groups as bullet list"
|
6928 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6929 |
+
|
6930 |
#: inc/view/customize/banner/Decision.php:1
|
6931 |
msgid "Custom choice in first view"
|
6932 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
6948 |
msgstr ""
|
6949 |
"Text von “Alle akzeptieren” ändert sich, wenn der Benutzer die Auswahl ändert"
|
6950 |
|
6951 |
+
#: inc/view/customize/banner/Decision.php:1
|
6952 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
6953 |
+
msgid "Save custom choices"
|
6954 |
+
msgstr "Individuelle Auswahlen speichern"
|
6955 |
+
|
6956 |
#: inc/view/customize/banner/Design.php:1
|
6957 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6958 |
#: inc/view/customize/banner/Texts.php:1
|
7132 |
msgstr "Definiere den Innenabstand der Gruppen-Box."
|
7133 |
|
7134 |
#: inc/view/customize/banner/individual/Group.php:1
|
7135 |
+
msgid "Spacing between groups"
|
7136 |
+
msgstr "Abstand zwischen Gruppen"
|
7137 |
|
7138 |
#: inc/view/customize/banner/individual/Group.php:1
|
7139 |
msgid "Border radius"
|
7170 |
msgid "Texts"
|
7171 |
msgstr "Texte"
|
7172 |
|
7173 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7174 |
+
#: inc/view/customize/banner/Texts.php:1
|
7175 |
+
msgid ""
|
7176 |
+
"Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a "
|
7177 |
+
"placeholder for the privacy policy link."
|
7178 |
+
msgstr ""
|
7179 |
+
"Verwende <code>{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}</"
|
7180 |
+
"code> als Platzhalter für den Link zur Datenschutzerklärung."
|
7181 |
+
|
7182 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7183 |
msgid "\"Save\" button/link"
|
7184 |
msgstr "\"Speichern”-Button/Link"
|
7192 |
msgstr "\"Service-Informationen ausblenden”-Link"
|
7193 |
|
7194 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7195 |
+
#: inc/view/customize/banner/Texts.php:1
|
7196 |
msgid ""
|
7197 |
+
"We use cookies and similar technologies on our website and process your "
|
7198 |
+
"personal data (e.g. IP address), for example, to personalize content and "
|
7199 |
+
"ads, to integrate media from third-party providers or to analyze traffic on "
|
7200 |
+
"our website. Data processing may also happen as a result of cookies being "
|
7201 |
+
"set. We share this data with third parties that we name in the privacy "
|
7202 |
+
"settings."
|
|
|
|
|
7203 |
msgstr ""
|
7204 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7205 |
+
"verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7206 |
+
"Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7207 |
+
"einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7208 |
+
"Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. Wir "
|
7209 |
+
"teilen diese Daten mit Dritten, die wir in den Privatsphäre-Einstellungen "
|
7210 |
+
"benennen."
|
|
|
|
|
|
|
7211 |
|
7212 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7213 |
+
#: inc/view/customize/banner/Texts.php:1
|
7214 |
+
msgid ""
|
7215 |
+
"The data processing may take place with your consent or on the basis of a "
|
7216 |
+
"legitimate interest, which you can object to in the privacy settings. You "
|
7217 |
+
"have the right not to consent and to change or revoke your consent at a "
|
7218 |
+
"later time. For more information on the use of your data, please visit our "
|
7219 |
+
"{{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
7220 |
+
msgstr ""
|
7221 |
+
"Die Datenverarbeitung kann mit deiner Einwilligung oder auf Basis eines "
|
7222 |
+
"berechtigten Interesses erfolgen, dem du in den Privatsphäre-Einstellungen "
|
7223 |
+
"widersprechen kannst. Du hast das Recht, nicht einzuwilligen und deine "
|
7224 |
+
"Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu widerrufen. "
|
7225 |
+
"Weitere Informationen zur Verwendung deiner Daten findest du in unserer "
|
7226 |
+
"{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}."
|
7227 |
+
|
7228 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7229 |
+
msgid ""
|
7230 |
+
"Below you will find an overview of all services used by this website. You "
|
7231 |
+
"can view detailed information about each service and agree to them "
|
7232 |
+
"individually or exercise your right to object."
|
7233 |
+
msgstr ""
|
7234 |
+
"Im Folgenden findest du eine Übersicht über alle Services, die von dieser "
|
7235 |
+
"Website genutzt werden. Du kannst dir detaillierte Informationen zu jedem "
|
7236 |
+
"Service ansehen und ihm einzeln zustimmen oder von deinem Widerspruchsrecht "
|
7237 |
+
"Gebrauch machen."
|
7238 |
|
7239 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7240 |
msgid "Show service information"
|
7426 |
msgid "Age notice in content blocker"
|
7427 |
msgstr "Altershinweis im Content Blocker"
|
7428 |
|
7429 |
+
#: inc/view/customize/banner/Texts.php:1
|
7430 |
+
msgid "List of services"
|
7431 |
+
msgstr "Liste der Services"
|
7432 |
+
|
7433 |
+
#: inc/view/customize/banner/Texts.php:1
|
7434 |
+
msgid "Naming of all services in first view"
|
7435 |
+
msgstr "Benennung aller Services in der ersten Ansicht"
|
7436 |
+
|
7437 |
+
#: inc/view/customize/banner/Texts.php:1
|
7438 |
+
msgid ""
|
7439 |
+
"Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a "
|
7440 |
+
"placeholder for a list of services and groups."
|
7441 |
+
msgstr ""
|
7442 |
+
"Verwende <code>{{services}}</code> und <code>{{serviceGroups}}</code> als "
|
7443 |
+
"Platzhalter für eine Liste von Services und Gruppen."
|
7444 |
+
|
7445 |
#: inc/view/customize/banner/Texts.php:1
|
7446 |
msgid "Consent Forwarding"
|
7447 |
msgstr "Weiterleitung der Einwilligung"
|
7516 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigiere zu "
|
7517 |
"%1$sEinstellungen > Einwilligung%2$s, um diesen zu aktivieren."
|
7518 |
|
7519 |
+
#. translators:
|
7520 |
+
#: inc/view/customize/banner/Texts.php:1
|
7521 |
+
msgid ""
|
7522 |
+
"Naming of all services in first view is currently disabled. Please navigate "
|
7523 |
+
"to %1$sSettings > Consent%2$s to activate it."
|
7524 |
+
msgstr ""
|
7525 |
+
"Die Liste aller Services ist derzeit deaktiviert. Bitte navigiere zu "
|
7526 |
+
"%1$sEinstellungen > Einwilligung%2$s, um diese zu aktivieren."
|
7527 |
+
|
7528 |
#. translators:
|
7529 |
#: inc/view/customize/banner/Texts.php:1
|
7530 |
msgid ""
|
7540 |
msgstr "Privatsphäre-Einstellungen"
|
7541 |
|
7542 |
#: inc/view/customize/banner/Texts.php:1
|
7543 |
+
msgid "Set privacy settings individually"
|
7544 |
+
msgstr "Privatsphäre-Einstellungen individuell festlegen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7545 |
|
7546 |
#: inc/view/customize/banner/Texts.php:1
|
7547 |
msgid ""
|
7581 |
"zustimmen, um diese Inhalte zu sehen. Bitte deine Eltern oder "
|
7582 |
"Erziehungsberechtigten, dem Service mit dir zuzustimmen!"
|
7583 |
|
7584 |
+
#: inc/view/customize/banner/Texts.php:1
|
7585 |
+
msgid ""
|
7586 |
+
"By accepting all services, you allow {{services}} to be loaded. These "
|
7587 |
+
"services are divided into groups {{serviceGroups}} according to their "
|
7588 |
+
"purpose (belonging marked with superscript numbers)."
|
7589 |
+
msgstr ""
|
7590 |
+
"Wenn du alle Services akzeptierst, erlaubst du, dass {{services}} geladen "
|
7591 |
+
"werden. Diese sind nach ihrem Zweck in Gruppen {{serviceGroups}} unterteilt "
|
7592 |
+
"(Zugehörigkeit durch hochgestellte Zahlen gekennzeichnet)."
|
7593 |
+
|
7594 |
#: inc/view/customize/banner/Texts.php:1
|
7595 |
msgid "Your consent is also applicable on {{websites}}."
|
7596 |
msgstr "Deine Einwilligung gilt auch auf {{websites}}."
|
7710 |
msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
7711 |
msgstr "Bitte gib in deinem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7712 |
|
7713 |
+
#~ msgid ""
|
7714 |
+
#~ "We use cookies and similar technologies on our website and process your "
|
7715 |
+
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
7716 |
+
#~ "ads, to integrate media from third-party providers or to analyze traffic "
|
7717 |
+
#~ "on our website. Data processing may also happen as a result of cookies "
|
7718 |
+
#~ "being set. We share this data with third parties that we name in the "
|
7719 |
+
#~ "privacy settings.<br/><br/>The data processing may take place with your "
|
7720 |
+
#~ "consent or on the basis of a legitimate interest, which you can object to "
|
7721 |
+
#~ "in the privacy settings. You have the right not to consent and to change "
|
7722 |
+
#~ "or revoke your consent at a later time. For more information on the use "
|
7723 |
+
#~ "of your data, please visit our {{privacyPolicy}}privacy policy{{/"
|
7724 |
+
#~ "privacyPolicy}}.<br/><br/>Below you will find an overview of all services "
|
7725 |
+
#~ "used by this website. You can view detailed information about each "
|
7726 |
+
#~ "service and agree to them individually or exercise your right to object."
|
7727 |
+
#~ msgstr ""
|
7728 |
+
#~ "Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7729 |
+
#~ "verarbeiten personenbezogene Daten von dir (z.B. IP-Adresse), um z.B. "
|
7730 |
+
#~ "Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7731 |
+
#~ "einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7732 |
+
#~ "Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. "
|
7733 |
+
#~ "Wir teilen diese Daten mit Dritten, die wir in den Privatsphäre-"
|
7734 |
+
#~ "Einstellungen benennen.<br/><br/>Die Datenverarbeitung kann mit deiner "
|
7735 |
+
#~ "Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem "
|
7736 |
+
#~ "du in den Privatsphäre-Einstellungen widersprechen kannst. Du hast das "
|
7737 |
+
#~ "Recht, nicht einzuwilligen und deine Einwilligung zu einem späteren "
|
7738 |
+
#~ "Zeitpunkt zu ändern oder zu widerrufen. Weitere Informationen zur "
|
7739 |
+
#~ "Verwendung deiner Daten findest du in unserer {{privacyPolicy}}"
|
7740 |
+
#~ "Datenschutzerklärung{{/privacyPolicy}}.<br/><br/>Nachstehend findest du "
|
7741 |
+
#~ "eine Übersicht über alle von dieser Website genutzten Dienste. Du kannst "
|
7742 |
+
#~ "detaillierte Informationen zu jedem Dienst einsehen und diesen einzeln "
|
7743 |
+
#~ "zustimmen oder von deinem Widerspruchsrecht Gebrauch machen."
|
7744 |
+
|
7745 |
+
#~ msgid "Duration (milliseconds)"
|
7746 |
+
#~ msgstr "Dauer (Millisekunden)"
|
7747 |
+
|
7748 |
+
#~ msgid ""
|
7749 |
+
#~ "The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
7750 |
+
#~ "text size) so that they are considered equal."
|
7751 |
+
#~ msgstr ""
|
7752 |
+
#~ "Die Buttons \"Akzeptieren\" und \"Ablehnen\" sollten die gleiche Größe "
|
7753 |
+
#~ "haben (Button- und Textgröße), damit sie als gleichwertig angesehen "
|
7754 |
+
#~ "werden."
|
7755 |
+
|
7756 |
+
#~ msgid "Height (px)"
|
7757 |
+
#~ msgstr "Höhe (px)"
|
7758 |
+
|
7759 |
#~ msgid "Place shortcodes in your privacy policy"
|
7760 |
#~ msgstr "Platziere Shortcodes in deiner Datenschutzerklärung"
|
7761 |
|
languages/real-cookie-banner-de_DE_formal.mo
CHANGED
Binary file
|
languages/real-cookie-banner-de_DE_formal.po
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: n/a\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"POT-Creation-Date: n/a\n"
|
8 |
-
"PO-Revision-Date: 2022-
|
9 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
10 |
"Language-Team: German (formal) <https://translate.devowl.io/projects/"
|
11 |
"wordpress-real-cookie-banner-backend-php/develop/de@formal/>\n"
|
@@ -224,7 +224,7 @@ msgstr ""
|
|
224 |
msgid "Host"
|
225 |
msgstr "Host"
|
226 |
|
227 |
-
#: inc/Assets.php:1
|
228 |
msgid "Duration"
|
229 |
msgstr "Dauer"
|
230 |
|
@@ -252,6 +252,10 @@ msgstr "Monat(e)"
|
|
252 |
msgid "year(s)"
|
253 |
msgstr "Jahr(e)"
|
254 |
|
|
|
|
|
|
|
|
|
255 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
256 |
#: inc/view/customize/banner/BodyDesign.php:1
|
257 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -327,6 +331,11 @@ msgstr "Keine Lizenz aktiviert – kein Einsatz auf produktiven Systemen!"
|
|
327 |
msgid "Product license not for production use!"
|
328 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
329 |
|
|
|
|
|
|
|
|
|
|
|
330 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
331 |
msgid "Learn more"
|
332 |
msgstr "Mehr erfahren"
|
@@ -5039,9 +5048,6 @@ msgid "Border"
|
|
5039 |
msgstr "Rahmen"
|
5040 |
|
5041 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
5042 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
5043 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
5044 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
5045 |
msgid "Border width (px)"
|
5046 |
msgstr "Rahmenbreite (px)"
|
5047 |
|
@@ -5127,6 +5133,14 @@ msgstr ""
|
|
5127 |
"mit Ihrer Zustimmung genutzt. Einzelheiten zu den einzelnen Gruppen und "
|
5128 |
"Zwecken der Dienste finden Sie in den jeweiligen Datenschutzeinstellungen."
|
5129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5130 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5131 |
msgid "Vendor list"
|
5132 |
msgstr "Liste der Anbieter"
|
@@ -6345,6 +6359,23 @@ msgstr ""
|
|
6345 |
msgid "View stats"
|
6346 |
msgstr "Statistiken ansehen"
|
6347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6348 |
#: inc/view/ConfigPage.php:1
|
6349 |
msgid ""
|
6350 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
@@ -6398,8 +6429,8 @@ msgstr "Banner"
|
|
6398 |
|
6399 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6400 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6401 |
-
msgid "Maximum width
|
6402 |
-
msgstr "Maximale Breite
|
6403 |
|
6404 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6405 |
msgid "Position"
|
@@ -6458,8 +6489,8 @@ msgid "Bottom"
|
|
6458 |
msgstr "Unten"
|
6459 |
|
6460 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6461 |
-
msgid "Maximum content width
|
6462 |
-
msgstr "Maximale Inhaltsbreite
|
6463 |
|
6464 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6465 |
msgid "Dialog border radius"
|
@@ -6473,10 +6504,6 @@ msgstr "Button: Abgerundete Ecken"
|
|
6473 |
msgid "Animation on display"
|
6474 |
msgstr "Animation beim Einblenden"
|
6475 |
|
6476 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
6477 |
-
msgid "Duration (milliseconds)"
|
6478 |
-
msgstr "Dauer (Millisekunden)"
|
6479 |
-
|
6480 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6481 |
msgid "Animation only on mobile devices"
|
6482 |
msgstr "Animation nur auf mobilen Geräten"
|
@@ -6530,14 +6557,6 @@ msgstr ""
|
|
6530 |
"Beachten Sie, dass für Besucher mit einem älteren Browser (z.B. Internet "
|
6531 |
"Explorer) diese Option nicht funktioniert."
|
6532 |
|
6533 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
6534 |
-
msgid ""
|
6535 |
-
"The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
6536 |
-
"text size) so that they are considered equal."
|
6537 |
-
msgstr ""
|
6538 |
-
"Die Buttons „Akzeptieren“ und „Ablehnen“ sollten die gleiche Größe haben "
|
6539 |
-
"(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
6540 |
-
|
6541 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6542 |
msgid "Body"
|
6543 |
msgstr "Hauptbereich (Body)"
|
@@ -6613,14 +6632,14 @@ msgstr "Trennelement"
|
|
6613 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6614 |
#: inc/view/customize/banner/Design.php:1
|
6615 |
#: inc/view/customize/banner/individual/Group.php:1
|
6616 |
-
msgid "Width
|
6617 |
-
msgstr "Breite
|
6618 |
|
6619 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6620 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6621 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6622 |
-
msgid "Height
|
6623 |
-
msgstr "Höhe
|
6624 |
|
6625 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6626 |
#: inc/view/customize/banner/Design.php:1
|
@@ -6650,6 +6669,12 @@ msgstr "Buttons nebeneinander ausrichten"
|
|
6650 |
msgid "Define inner distance of the button/link."
|
6651 |
msgstr "Definieren Sie den Innenabstand des Buttons/Links."
|
6652 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6653 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6654 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6655 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
@@ -6680,6 +6705,31 @@ msgstr "Rahmenfarbe"
|
|
6680 |
msgid "Button: Continue without consent"
|
6681 |
msgstr "Button: Weiter ohne Einwilligung"
|
6682 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6683 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6684 |
msgid "Button: Individual privacy preferences"
|
6685 |
msgstr "Button: Individuelle Einstellung"
|
@@ -6847,7 +6897,6 @@ msgstr ""
|
|
6847 |
|
6848 |
#: inc/view/customize/banner/Decision.php:1
|
6849 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6850 |
-
#: inc/view/customize/banner/Texts.php:1
|
6851 |
msgid "Individual privacy preferences"
|
6852 |
msgstr "Individuelle Privatsphäre-Präferenzen"
|
6853 |
|
@@ -6864,6 +6913,37 @@ msgstr ""
|
|
6864 |
"muss der Nutzer die Möglichkeit haben, die Seite mit den individuellen "
|
6865 |
"Privatsphären-Einstellungen aufzurufen."
|
6866 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6867 |
#: inc/view/customize/banner/Decision.php:1
|
6868 |
msgid "Custom choice in first view"
|
6869 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
@@ -6885,6 +6965,11 @@ msgid "Text of \"Accept all\" changes when user changes selection"
|
|
6885 |
msgstr ""
|
6886 |
"Text von „Alle akzeptieren“ ändert, wenn der Benutzer die Auswahl ändert"
|
6887 |
|
|
|
|
|
|
|
|
|
|
|
6888 |
#: inc/view/customize/banner/Design.php:1
|
6889 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6890 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -7064,8 +7149,8 @@ msgid "Define the inner distance of the group box."
|
|
7064 |
msgstr "Innenabstand der Gruppen-Box definieren."
|
7065 |
|
7066 |
#: inc/view/customize/banner/individual/Group.php:1
|
7067 |
-
msgid "Spacing between groups
|
7068 |
-
msgstr "Abstand zwischen Gruppen
|
7069 |
|
7070 |
#: inc/view/customize/banner/individual/Group.php:1
|
7071 |
msgid "Border radius"
|
@@ -7102,6 +7187,15 @@ msgstr "Innenabstand des Buttons definieren."
|
|
7102 |
msgid "Texts"
|
7103 |
msgstr "Texte"
|
7104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7105 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7106 |
msgid "\"Save\" button/link"
|
7107 |
msgstr "„Speichern“ Button/Link"
|
@@ -7115,30 +7209,48 @@ msgid "\"Hide service information\" link"
|
|
7115 |
msgstr "„Service-Informationen ausblenden“-Link"
|
7116 |
|
7117 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
7118 |
msgid ""
|
7119 |
-
"We use cookies and similar technologies on our website and process
|
7120 |
-
"data
|
7121 |
-
"
|
7122 |
-
"
|
7123 |
-
"
|
7124 |
-
"
|
7125 |
-
"used by this website. You can view detailed information about each service "
|
7126 |
-
"and agree to them individually or exercise your right to object."
|
7127 |
msgstr ""
|
7128 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7129 |
-
"verarbeiten
|
7130 |
-
"
|
7131 |
-
"
|
7132 |
-
"
|
7133 |
-
"
|
7134 |
-
"der Datenschutzerklärung zu ändern oder zu widerrufen. Nachfolgend finden "
|
7135 |
-
"Sie eine Übersicht über alle Services, die von dieser Website genutzt "
|
7136 |
-
"werden. Sie können detaillierte Informationen zu jedem Service einsehen und "
|
7137 |
-
"diesen einzeln zustimmen oder von Ihrem Widerspruchsrecht Gebrauch machen."
|
7138 |
|
7139 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7140 |
-
|
7141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7142 |
|
7143 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7144 |
msgid "Show service information"
|
@@ -7330,6 +7442,22 @@ msgstr "Altershinweis im Cookie Banner"
|
|
7330 |
msgid "Age notice in content blocker"
|
7331 |
msgstr "Altershinweis in Content Blocker"
|
7332 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7333 |
#: inc/view/customize/banner/Texts.php:1
|
7334 |
msgid "Consent Forwarding"
|
7335 |
msgstr "Weiterleitung der Einwilligung"
|
@@ -7405,6 +7533,15 @@ msgstr ""
|
|
7405 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigieren Sie zu "
|
7406 |
"%1$sEinstellungen > Einwilligung%2$s, um ihn zu aktivieren."
|
7407 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7408 |
#. translators:
|
7409 |
#: inc/view/customize/banner/Texts.php:1
|
7410 |
msgid ""
|
@@ -7420,22 +7557,8 @@ msgid "Privacy preferences"
|
|
7420 |
msgstr "Privatsphäre-Einstellungen"
|
7421 |
|
7422 |
#: inc/view/customize/banner/Texts.php:1
|
7423 |
-
msgid ""
|
7424 |
-
"
|
7425 |
-
"data about you, such as your IP address. We also share this data with third "
|
7426 |
-
"parties. Data processing may be done with your consent or on the basis of a "
|
7427 |
-
"legitimate interest, which you can object to in the individual privacy "
|
7428 |
-
"settings. You have the right to consent to essential services only and to "
|
7429 |
-
"modify or revoke your consent at a later time in the privacy policy."
|
7430 |
-
msgstr ""
|
7431 |
-
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7432 |
-
"verarbeiten personenbezogene Daten über Sie, wie Ihre IP-Adresse. Wir teilen "
|
7433 |
-
"diese Daten auch mit Dritten. Die Datenverarbeitung kann mit Ihrer "
|
7434 |
-
"Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem Sie "
|
7435 |
-
"in den individuellen Privatsphäre-Einstellungen widersprechen können. Sie "
|
7436 |
-
"haben das Recht, nur in essenzielle Services einzuwilligen und Ihre "
|
7437 |
-
"Einwilligung in der Datenschutzerklärung zu einem späteren Zeitpunkt zu "
|
7438 |
-
"ändern oder zu widerrufen."
|
7439 |
|
7440 |
#: inc/view/customize/banner/Texts.php:1
|
7441 |
msgid ""
|
@@ -7474,6 +7597,16 @@ msgstr ""
|
|
7474 |
"zustimmen, um diese Inhalte zu sehen. Bitten Sie Ihre Eltern oder "
|
7475 |
"Erziehungsberechtigten, dem Service mit Ihnen zuzustimmen!"
|
7476 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7477 |
#: inc/view/customize/banner/Texts.php:1
|
7478 |
msgid "Your consent is also applicable on {{websites}}."
|
7479 |
msgstr "Ihre Einwilligung gilt auch auf {{websites}}."
|
@@ -7594,6 +7727,51 @@ msgid "Please provide a `type` attribute in your shortcode. Allowed: %s!"
|
|
7594 |
msgstr ""
|
7595 |
"Bitte geben Sie in Ihrem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7596 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7597 |
#~ msgid "Place shortcodes in your privacy policy"
|
7598 |
#~ msgstr "Platzieren Sie Shortcodes in Ihrer Datenschutzerklärung"
|
7599 |
|
5 |
"Project-Id-Version: n/a\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"POT-Creation-Date: n/a\n"
|
8 |
+
"PO-Revision-Date: 2022-05-24 09:42+0000\n"
|
9 |
"Last-Translator: Matthias Günter <matthias.guenter@devowl.io>\n"
|
10 |
"Language-Team: German (formal) <https://translate.devowl.io/projects/"
|
11 |
"wordpress-real-cookie-banner-backend-php/develop/de@formal/>\n"
|
224 |
msgid "Host"
|
225 |
msgstr "Host"
|
226 |
|
227 |
+
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
228 |
msgid "Duration"
|
229 |
msgstr "Dauer"
|
230 |
|
252 |
msgid "year(s)"
|
253 |
msgstr "Jahr(e)"
|
254 |
|
255 |
+
#: inc/Assets.php:1
|
256 |
+
msgid "No expiration"
|
257 |
+
msgstr "Kein Ablauf"
|
258 |
+
|
259 |
#: inc/Assets.php:1 inc/view/customize/banner/BasicLayout.php:1
|
260 |
#: inc/view/customize/banner/BodyDesign.php:1
|
261 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
331 |
msgid "Product license not for production use!"
|
332 |
msgstr "Produktlizenz nicht für den Produktionseinsatz!"
|
333 |
|
334 |
+
#. translators:
|
335 |
+
#: inc/Assets.php:1
|
336 |
+
msgid " and "
|
337 |
+
msgstr " und "
|
338 |
+
|
339 |
#: inc/Assets.php:1 inc/view/checklist/GetPro.php:1
|
340 |
msgid "Learn more"
|
341 |
msgstr "Mehr erfahren"
|
5048 |
msgstr "Rahmen"
|
5049 |
|
5050 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
5051 |
msgid "Border width (px)"
|
5052 |
msgstr "Rahmenbreite (px)"
|
5053 |
|
5133 |
"mit Ihrer Zustimmung genutzt. Einzelheiten zu den einzelnen Gruppen und "
|
5134 |
"Zwecken der Dienste finden Sie in den jeweiligen Datenschutzeinstellungen."
|
5135 |
|
5136 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
5137 |
+
msgid ""
|
5138 |
+
"In addition, you consent to the transfer of data to partners under the TCF "
|
5139 |
+
"standard for the following purposes:"
|
5140 |
+
msgstr ""
|
5141 |
+
"Darüber hinaus stimmen Sie der Übermittlung von Daten an Partner im Rahmen "
|
5142 |
+
"des TCF-Standards für die folgenden Zwecke zu:"
|
5143 |
+
|
5144 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
5145 |
msgid "Vendor list"
|
5146 |
msgstr "Liste der Anbieter"
|
6359 |
msgid "View stats"
|
6360 |
msgstr "Statistiken ansehen"
|
6361 |
|
6362 |
+
#: inc/view/ConfigPage.php:1
|
6363 |
+
msgid "Set privacy policy URL"
|
6364 |
+
msgstr "Seite für Datenschutzerklärung festlegen"
|
6365 |
+
|
6366 |
+
#: inc/view/ConfigPage.php:1
|
6367 |
+
msgid ""
|
6368 |
+
"There are no privacy policies with further information linked for the "
|
6369 |
+
"following services in your cookie banner. We now consider these to be "
|
6370 |
+
"mandatory in order to comply with the information obligations under the "
|
6371 |
+
"GDPR. Please provide a privacy policy for each service!"
|
6372 |
+
msgstr ""
|
6373 |
+
"Für folgende Services in Ihrem Cookie Banner sind keine "
|
6374 |
+
"Datenschutzerklärungen mit weiterführenden Informationen verlinkt. Wir "
|
6375 |
+
"halten diese mittlerweile als zwingend notwendig, um den "
|
6376 |
+
"Informationspflichten nach DSGVO nachzukommen. Bitte hinterlegen Sie in "
|
6377 |
+
"jedem Service eine Datenschutzerklärung!"
|
6378 |
+
|
6379 |
#: inc/view/ConfigPage.php:1
|
6380 |
msgid ""
|
6381 |
"A cookie banner for your website is installed. With it, you can integrate e."
|
6429 |
|
6430 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6431 |
#: inc/view/customize/banner/individual/Layout.php:1
|
6432 |
+
msgid "Maximum width"
|
6433 |
+
msgstr "Maximale Breite"
|
6434 |
|
6435 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6436 |
msgid "Position"
|
6489 |
msgstr "Unten"
|
6490 |
|
6491 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6492 |
+
msgid "Maximum content width"
|
6493 |
+
msgstr "Maximale Inhaltsbreite"
|
6494 |
|
6495 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6496 |
msgid "Dialog border radius"
|
6504 |
msgid "Animation on display"
|
6505 |
msgstr "Animation beim Einblenden"
|
6506 |
|
|
|
|
|
|
|
|
|
6507 |
#: inc/view/customize/banner/BasicLayout.php:1
|
6508 |
msgid "Animation only on mobile devices"
|
6509 |
msgstr "Animation nur auf mobilen Geräten"
|
6557 |
"Beachten Sie, dass für Besucher mit einem älteren Browser (z.B. Internet "
|
6558 |
"Explorer) diese Option nicht funktioniert."
|
6559 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6560 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6561 |
msgid "Body"
|
6562 |
msgstr "Hauptbereich (Body)"
|
6632 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6633 |
#: inc/view/customize/banner/Design.php:1
|
6634 |
#: inc/view/customize/banner/individual/Group.php:1
|
6635 |
+
msgid "Width"
|
6636 |
+
msgstr "Breite"
|
6637 |
|
6638 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6639 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6640 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
6641 |
+
msgid "Height"
|
6642 |
+
msgstr "Höhe"
|
6643 |
|
6644 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6645 |
#: inc/view/customize/banner/Design.php:1
|
6669 |
msgid "Define inner distance of the button/link."
|
6670 |
msgstr "Definieren Sie den Innenabstand des Buttons/Links."
|
6671 |
|
6672 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6673 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
6674 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6675 |
+
msgid "Border width"
|
6676 |
+
msgstr "Rahmen-Breite"
|
6677 |
+
|
6678 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6679 |
#: inc/view/customize/banner/FooterDesign.php:1
|
6680 |
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6705 |
msgid "Button: Continue without consent"
|
6706 |
msgstr "Button: Weiter ohne Einwilligung"
|
6707 |
|
6708 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6709 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6710 |
+
msgid "Use the same stylings as for \"Accept all\""
|
6711 |
+
msgstr "Gleiche Formatierung wie für \"Alle akzeptieren\" verwenden"
|
6712 |
+
|
6713 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
6714 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
6715 |
+
msgid ""
|
6716 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6717 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6718 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6719 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6720 |
+
"without consent or an indivudual decision). Equivalent does not necessarily "
|
6721 |
+
"mean that the buttons/links must look exactly the same. However, you should "
|
6722 |
+
"be safest if they look exactly the same."
|
6723 |
+
msgstr ""
|
6724 |
+
"Gemäß <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6725 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6726 |
+
"deutschen Datenschutzbehörden</a> muss es für Ihre Besucher eine "
|
6727 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6728 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6729 |
+
"Gleichwertig bedeutet nicht unbedingt, dass die Buttons/Links genau gleich "
|
6730 |
+
"aussehen müssen. Sie sind jedoch am sichersten, wenn sie genau gleich "
|
6731 |
+
"aussehen."
|
6732 |
+
|
6733 |
#: inc/view/customize/banner/BodyDesign.php:1
|
6734 |
msgid "Button: Individual privacy preferences"
|
6735 |
msgstr "Button: Individuelle Einstellung"
|
6897 |
|
6898 |
#: inc/view/customize/banner/Decision.php:1
|
6899 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
6900 |
msgid "Individual privacy preferences"
|
6901 |
msgstr "Individuelle Privatsphäre-Präferenzen"
|
6902 |
|
6913 |
"muss der Nutzer die Möglichkeit haben, die Seite mit den individuellen "
|
6914 |
"Privatsphären-Einstellungen aufzurufen."
|
6915 |
|
6916 |
+
#: inc/view/customize/banner/Decision.php:1
|
6917 |
+
msgid "Order of the buttons"
|
6918 |
+
msgstr "Reihenfolge der Buttons"
|
6919 |
+
|
6920 |
+
#: inc/view/customize/banner/Decision.php:1
|
6921 |
+
msgid ""
|
6922 |
+
"According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6923 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data "
|
6924 |
+
"protection authorities in Germany (German)</a>, there must be an equivalent "
|
6925 |
+
"way for your visitors to express their choice (agree to everything, continue "
|
6926 |
+
"without consent or an indivudual decision). Which order of options is "
|
6927 |
+
"considered equivalent is unclear. Therefore, the options should be arranged "
|
6928 |
+
"according to the cultural conditions of the main target country."
|
6929 |
+
msgstr ""
|
6930 |
+
"Gemäß <a href=\"https://www.datenschutzkonferenz-online.de/media/"
|
6931 |
+
"oh/20211220_oh_telemedien.pdf\" target=\"_blank\">Orientierungshilfe der "
|
6932 |
+
"deutschen Datenschutzbehörden</a> muss es für Ihre Besucher eine "
|
6933 |
+
"gleichwertige Möglichkeit geben, ihren Willen auszudrücken (allem zustimmen, "
|
6934 |
+
"ohne Zustimmung fortfahren oder eine individuelle Entscheidung treffen). "
|
6935 |
+
"Welche Reihenfolge der Optionen als gleichwertig angesehen wird, ist unklar. "
|
6936 |
+
"Daher sollten die Optionen nach den kulturellen Gegebenheiten des "
|
6937 |
+
"Hauptziellandes angeordnet werden."
|
6938 |
+
|
6939 |
+
#: inc/view/customize/banner/Decision.php:1
|
6940 |
+
msgid "Service groups as bullet list"
|
6941 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6942 |
+
|
6943 |
+
#: inc/view/customize/banner/Decision.php:1
|
6944 |
+
msgid "Show service groups as bullet list"
|
6945 |
+
msgstr "Service-Gruppen als Aufzählungsliste ausgeben"
|
6946 |
+
|
6947 |
#: inc/view/customize/banner/Decision.php:1
|
6948 |
msgid "Custom choice in first view"
|
6949 |
msgstr "Benutzerdefinierte Auswahl in der ersten Ansicht"
|
6965 |
msgstr ""
|
6966 |
"Text von „Alle akzeptieren“ ändert, wenn der Benutzer die Auswahl ändert"
|
6967 |
|
6968 |
+
#: inc/view/customize/banner/Decision.php:1
|
6969 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
6970 |
+
msgid "Save custom choices"
|
6971 |
+
msgstr "Individuelle Auswahl speichern"
|
6972 |
+
|
6973 |
#: inc/view/customize/banner/Design.php:1
|
6974 |
#: inc/view/customize/banner/individual/Texts.php:1
|
6975 |
#: inc/view/customize/banner/Texts.php:1
|
7149 |
msgstr "Innenabstand der Gruppen-Box definieren."
|
7150 |
|
7151 |
#: inc/view/customize/banner/individual/Group.php:1
|
7152 |
+
msgid "Spacing between groups"
|
7153 |
+
msgstr "Abstand zwischen Gruppen"
|
7154 |
|
7155 |
#: inc/view/customize/banner/individual/Group.php:1
|
7156 |
msgid "Border radius"
|
7187 |
msgid "Texts"
|
7188 |
msgstr "Texte"
|
7189 |
|
7190 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7191 |
+
#: inc/view/customize/banner/Texts.php:1
|
7192 |
+
msgid ""
|
7193 |
+
"Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a "
|
7194 |
+
"placeholder for the privacy policy link."
|
7195 |
+
msgstr ""
|
7196 |
+
"Verwenden Sie <code>{{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}</"
|
7197 |
+
"code> als Platzhalter für den Link zur Datenschutzerklärung."
|
7198 |
+
|
7199 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7200 |
msgid "\"Save\" button/link"
|
7201 |
msgstr "„Speichern“ Button/Link"
|
7209 |
msgstr "„Service-Informationen ausblenden“-Link"
|
7210 |
|
7211 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7212 |
+
#: inc/view/customize/banner/Texts.php:1
|
7213 |
msgid ""
|
7214 |
+
"We use cookies and similar technologies on our website and process your "
|
7215 |
+
"personal data (e.g. IP address), for example, to personalize content and "
|
7216 |
+
"ads, to integrate media from third-party providers or to analyze traffic on "
|
7217 |
+
"our website. Data processing may also happen as a result of cookies being "
|
7218 |
+
"set. We share this data with third parties that we name in the privacy "
|
7219 |
+
"settings."
|
|
|
|
|
7220 |
msgstr ""
|
7221 |
"Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7222 |
+
"verarbeiten Ihre personenbezogenen Daten (z.B. IP-Adresse), um z.B. Inhalte "
|
7223 |
+
"und Anzeigen zu personalisieren, Medien von Drittanbietern einzubinden oder "
|
7224 |
+
"Zugriffe auf unsere Website zu analysieren. Die Datenverarbeitung kann auch "
|
7225 |
+
"erst in Folge gesetzter Cookies stattfinden. Wir geben diese Daten an Dritte "
|
7226 |
+
"weiter, die wir in den Privatsphäre-Einstellungen benennen."
|
|
|
|
|
|
|
|
|
7227 |
|
7228 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7229 |
+
#: inc/view/customize/banner/Texts.php:1
|
7230 |
+
msgid ""
|
7231 |
+
"The data processing may take place with your consent or on the basis of a "
|
7232 |
+
"legitimate interest, which you can object to in the privacy settings. You "
|
7233 |
+
"have the right not to consent and to change or revoke your consent at a "
|
7234 |
+
"later time. For more information on the use of your data, please visit our "
|
7235 |
+
"{{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
7236 |
+
msgstr ""
|
7237 |
+
"Die Datenverarbeitung kann mit Ihrer Einwilligung oder auf Basis eines "
|
7238 |
+
"berechtigten Interesses erfolgen, dem Sie in den Privatsphäre-Einstellungen "
|
7239 |
+
"widersprechen können. Sie haben das Recht, Ihre Einwilligung nicht zu "
|
7240 |
+
"erteilen und Ihre Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu "
|
7241 |
+
"widerrufen. Weitere Informationen über die Verwendung Ihrer Daten finden Sie "
|
7242 |
+
"in unserer {{privacyPolicy}}Datenschutzerklärung{{/privacyPolicy}}."
|
7243 |
+
|
7244 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
7245 |
+
msgid ""
|
7246 |
+
"Below you will find an overview of all services used by this website. You "
|
7247 |
+
"can view detailed information about each service and agree to them "
|
7248 |
+
"individually or exercise your right to object."
|
7249 |
+
msgstr ""
|
7250 |
+
"Nachstehend finden Sie eine Übersicht über alle von dieser Website genutzten "
|
7251 |
+
"Services. Sie können detaillierte Informationen zu jedem Service einsehen "
|
7252 |
+
"und diesen einzeln zustimmen oder von Ihrem Widerspruchsrecht Gebrauch "
|
7253 |
+
"machen."
|
7254 |
|
7255 |
#: inc/view/customize/banner/individual/Texts.php:1
|
7256 |
msgid "Show service information"
|
7442 |
msgid "Age notice in content blocker"
|
7443 |
msgstr "Altershinweis in Content Blocker"
|
7444 |
|
7445 |
+
#: inc/view/customize/banner/Texts.php:1
|
7446 |
+
msgid "List of services"
|
7447 |
+
msgstr "Liste der Services"
|
7448 |
+
|
7449 |
+
#: inc/view/customize/banner/Texts.php:1
|
7450 |
+
msgid "Naming of all services in first view"
|
7451 |
+
msgstr "Benennung aller Services in der ersten Ansicht"
|
7452 |
+
|
7453 |
+
#: inc/view/customize/banner/Texts.php:1
|
7454 |
+
msgid ""
|
7455 |
+
"Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a "
|
7456 |
+
"placeholder for a list of services and groups."
|
7457 |
+
msgstr ""
|
7458 |
+
"Verwenden Sie <code>{{services}}</code> und <code>{{serviceGroups}}</code> "
|
7459 |
+
"als Platzhalter für eine Liste von Services und Gruppen."
|
7460 |
+
|
7461 |
#: inc/view/customize/banner/Texts.php:1
|
7462 |
msgid "Consent Forwarding"
|
7463 |
msgstr "Weiterleitung der Einwilligung"
|
7533 |
"Der Altershinweis ist derzeit deaktiviert. Bitte navigieren Sie zu "
|
7534 |
"%1$sEinstellungen > Einwilligung%2$s, um ihn zu aktivieren."
|
7535 |
|
7536 |
+
#. translators:
|
7537 |
+
#: inc/view/customize/banner/Texts.php:1
|
7538 |
+
msgid ""
|
7539 |
+
"Naming of all services in first view is currently disabled. Please navigate "
|
7540 |
+
"to %1$sSettings > Consent%2$s to activate it."
|
7541 |
+
msgstr ""
|
7542 |
+
"Die Liste aller Services ist derzeit deaktiviert. Bitte navigieren Sie zu "
|
7543 |
+
"%1$sEinstellungen > Einwilligung%2$s, um diese zu aktivieren."
|
7544 |
+
|
7545 |
#. translators:
|
7546 |
#: inc/view/customize/banner/Texts.php:1
|
7547 |
msgid ""
|
7557 |
msgstr "Privatsphäre-Einstellungen"
|
7558 |
|
7559 |
#: inc/view/customize/banner/Texts.php:1
|
7560 |
+
msgid "Set privacy settings individually"
|
7561 |
+
msgstr "Privatsphäre-Einstellungen individuell festlegen"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7562 |
|
7563 |
#: inc/view/customize/banner/Texts.php:1
|
7564 |
msgid ""
|
7597 |
"zustimmen, um diese Inhalte zu sehen. Bitten Sie Ihre Eltern oder "
|
7598 |
"Erziehungsberechtigten, dem Service mit Ihnen zuzustimmen!"
|
7599 |
|
7600 |
+
#: inc/view/customize/banner/Texts.php:1
|
7601 |
+
msgid ""
|
7602 |
+
"By accepting all services, you allow {{services}} to be loaded. These "
|
7603 |
+
"services are divided into groups {{serviceGroups}} according to their "
|
7604 |
+
"purpose (belonging marked with superscript numbers)."
|
7605 |
+
msgstr ""
|
7606 |
+
"Indem Sie alle Services akzeptieren, erlauben Sie, dass {{services}} geladen "
|
7607 |
+
"werden. Diese sind nach ihrem Zweck in Gruppen {{serviceGroups}} unterteilt "
|
7608 |
+
"(Zugehörigkeit durch hochgestellte Zahlen gekennzeichnet)."
|
7609 |
+
|
7610 |
#: inc/view/customize/banner/Texts.php:1
|
7611 |
msgid "Your consent is also applicable on {{websites}}."
|
7612 |
msgstr "Ihre Einwilligung gilt auch auf {{websites}}."
|
7727 |
msgstr ""
|
7728 |
"Bitte geben Sie in Ihrem Shortcode das Attribut `type` an. Erlaubt: %s!"
|
7729 |
|
7730 |
+
#~ msgid ""
|
7731 |
+
#~ "We use cookies and similar technologies on our website and process your "
|
7732 |
+
#~ "personal data (e.g. IP address), for example, to personalize content and "
|
7733 |
+
#~ "ads, to integrate media from third-party providers or to analyze traffic "
|
7734 |
+
#~ "on our website. Data processing may also happen as a result of cookies "
|
7735 |
+
#~ "being set. We share this data with third parties that we name in the "
|
7736 |
+
#~ "privacy settings.<br/><br/>The data processing may take place with your "
|
7737 |
+
#~ "consent or on the basis of a legitimate interest, which you can object to "
|
7738 |
+
#~ "in the privacy settings. You have the right not to consent and to change "
|
7739 |
+
#~ "or revoke your consent at a later time. For more information on the use "
|
7740 |
+
#~ "of your data, please visit our {{privacyPolicy}}privacy policy{{/"
|
7741 |
+
#~ "privacyPolicy}}.<br/><br/>Below you will find an overview of all services "
|
7742 |
+
#~ "used by this website. You can view detailed information about each "
|
7743 |
+
#~ "service and agree to them individually or exercise your right to object."
|
7744 |
+
#~ msgstr ""
|
7745 |
+
#~ "Wir verwenden Cookies und ähnliche Technologien auf unserer Website und "
|
7746 |
+
#~ "verarbeiten Ihre personenbezogenen Daten (z.B. IP-Adresse), um z.B. "
|
7747 |
+
#~ "Inhalte und Anzeigen zu personalisieren, Medien von Drittanbietern "
|
7748 |
+
#~ "einzubinden oder Zugriffe auf unsere Website zu analysieren. Die "
|
7749 |
+
#~ "Datenverarbeitung kann auch erst in Folge gesetzter Cookies stattfinden. "
|
7750 |
+
#~ "Wir geben diese Daten an Dritte weiter, die wir in den Privatsphäre-"
|
7751 |
+
#~ "Einstellungen benennen.<br/><br/>Die Datenverarbeitung kann mit Ihrer "
|
7752 |
+
#~ "Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem "
|
7753 |
+
#~ "Sie in den Privatsphäre-Einstellungen widersprechen können. Sie haben das "
|
7754 |
+
#~ "Recht, Ihre Einwilligung nicht zu erteilen und Ihre Einwilligung zu einem "
|
7755 |
+
#~ "späteren Zeitpunkt zu ändern oder zu widerrufen. Weitere Informationen "
|
7756 |
+
#~ "über die Verwendung Ihrer Daten finden Sie in unserer {{privacyPolicy}}"
|
7757 |
+
#~ "Datenschutzerklärung{{/privacyPolicy}}.<br/><br/>Nachstehend finden Sie "
|
7758 |
+
#~ "eine Übersicht über alle von dieser Website genutzten Dienste. Sie können "
|
7759 |
+
#~ "detaillierte Informationen zu jedem Dienst einsehen und diesen einzeln "
|
7760 |
+
#~ "zustimmen oder von Ihrem Widerspruchsrecht Gebrauch machen."
|
7761 |
+
|
7762 |
+
#~ msgid "Duration (milliseconds)"
|
7763 |
+
#~ msgstr "Dauer (Millisekunden)"
|
7764 |
+
|
7765 |
+
#~ msgid ""
|
7766 |
+
#~ "The \"Accept\" and \"Reject\" buttons should be the same size (button and "
|
7767 |
+
#~ "text size) so that they are considered equal."
|
7768 |
+
#~ msgstr ""
|
7769 |
+
#~ "Die Buttons „Akzeptieren“ und „Ablehnen“ sollten die gleiche Größe haben "
|
7770 |
+
#~ "(Button- und Textgröße), damit sie als gleichwertig angesehen werden."
|
7771 |
+
|
7772 |
+
#~ msgid "Height (px)"
|
7773 |
+
#~ msgstr "Höhe (px)"
|
7774 |
+
|
7775 |
#~ msgid "Place shortcodes in your privacy policy"
|
7776 |
#~ msgstr "Platzieren Sie Shortcodes in Ihrer Datenschutzerklärung"
|
7777 |
|
languages/real-cookie-banner-el.mo
CHANGED
Binary file
|
languages/real-cookie-banner-el.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Δεν έχει ενεργοποιηθεί άδεια χρήσης - ό
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Άδεια χρήσης προϊόντος όχι για παραγωγική χρήση!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Άδεια χρήσης προϊόντος όχι για παραγωγική χρήση!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " και "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Δεν υπάρχει λήξη"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Επιπλέον, συναινείτε στη διαβίβαση δεδομένων σε συνεργάτες σύμφωνα με το πρότυπο TCF για τους ακόλουθους σκοπούς:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Κατάλογος προμηθευτών"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Προμηθευτές"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Εμφάνιση περισσότερων"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Απόκρυψη"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Επεξεργασία δεδομένων βάσει της νομικής βάσης της:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Δεν υπάρχουν αιτήματα πωλητών για σκοπούς βάσει αυτής της νομικής βάσης."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Μη τυποποιημένη επεξεργασία δεδομένων"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Ορισμένες υπηρεσίες θέτουν cookies ή/και επεξεργάζονται προσωπικά δεδομένα χωρίς να συμμορφώνονται με τα πρότυπα επικοινωνίας συναίνεσης. Οι υπηρεσίες αυτές χωρίζονται σε διάφορες ομάδες. Οι λεγόμενες \"βασικές υπηρεσίες\" χρησιμοποιούνται με βάση το έννομο συμφέρον και δεν μπορούν να εξαιρεθούν (ενδέχεται να πρέπει να υποβληθεί αντίρρηση μέσω ηλεκτρονικού ταχυδρομείου ή επιστολής σύμφωνα με την πολιτική απορρήτου), ενώ όλες οι άλλες υπηρεσίες χρησιμοποιούνται μόνο μετά από συγκατάθεση."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Τυποποιημένη επεξεργασία δεδομένων σύμφωνα με την TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Το Πλαίσιο Διαφάνειας και Συγκατάθεσης (TCF) είναι ένα πρότυπο για τη λήψη συνεπούς συγκατάθεσης για την επεξεργασία προσωπικών δεδομένων και τη ρύθμιση cookie. Αυτό θα πρέπει να επιτρέπει σε όλα τα μέρη της ψηφιακής (διαφημιστικής) αλυσίδας να διασφαλίζουν ότι ορίζουν, επεξεργάζονται και αποθηκεύουν δεδομένα και cookies σύμφωνα με τον ΓΚΠΔ και την οδηγία για την προστασία της ιδιωτικής ζωής στις ηλεκτρονικές επικοινωνίες."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Σκοποί"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Ειδικοί σκοποί"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Χαρακτηριστικά"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Ειδικά χαρακτηριστικά"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Οι σκοποί περιγράφουν για ποιο σκοπό ποιοι πάροχοι μπορούν να θέτουν cookies και να επεξεργάζονται προσωπικά δεδομένα. Οι σκοποί προεπιλέγονται εάν υπάρχει έννομο συμφέρον για την επεξεργασία των δεδομένων του. Για όλους τους άλλους σκοπούς, η επεξεργασία δεδομένων γίνεται μόνο με ρητή συγκατάθεση."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Οι ειδικοί σκοποί για τον ορισμό cookies και την επεξεργασία προσωπικών δεδομένων από τους προμηθευτές μας περιγράφουν σκοπούς για τους οποίους έχουμε έννομο συμφέρον που δεν μπορεί να απορριφθεί. Για παράδειγμα, πρέπει να επεξεργαστούμε δεδομένα για την πρόληψη της απάτης."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Τα χαρακτηριστικά για την επεξεργασία δεδομένων προσωπικού χαρακτήρα περιγράφουν τον τρόπο με τον οποίο τα δεδομένα χρησιμοποιούνται για την εκπλήρωση ενός ή περισσότερων σκοπών. Τα χαρακτηριστικά δεν μπορούν να εξαιρεθούν, αλλά στην ενότητα \"Σκοποί\", οι σκοποί που οδηγούν στη χρήση των χαρακτηριστικών μπορούν να επιλεγούν ή να αποεπιλεγούν. Οποιοσδήποτε σκοπός μπορεί να οδηγήσει στη χρήση χαρακτηριστικών."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Τα ειδικά χαρακτηριστικά για την επεξεργασία δεδομένων προσωπικού χαρακτήρα περιγράφουν τον τρόπο με τον οποίο τα δεδομένα χρησιμοποιούνται για την εκπλήρωση ενός ή περισσότερων σκοπών με βαθύ τρόπο. Τα δεδομένα προσωπικού χαρακτήρα υποβάλλονται σε επεξεργασία με αυτόν τον τρόπο μόνο με ρητή συγκατάθεση."
|
languages/real-cookie-banner-es_AR.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_AR.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_CL.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_CL.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_CO.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_CO.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_CR.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_CR.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_ES.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_ES.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_GT.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_GT.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_MX.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_MX.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_PE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_PE.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_UY.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_UY.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-es_VE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-es_VE.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "No se ha activado la licencia - ¡no es para uso de producción!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "La licencia del producto no es para uso de producción!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " y "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "No hay caducidad"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Además, usted autoriza la transferencia de datos a los socios en el marco de la norma TCF para los siguientes fines:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de proveedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Proveedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar más"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ocultar"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tratamiento de datos sobre la base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ningún proveedor solicita fines bajo esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Tratamiento de datos no estandarizado"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Algunos servicios instalan cookies y/o procesan datos personales sin cumplir con las normas de comunicación de consentimiento. Estos servicios se dividen en varios grupos. Los denominados \"servicios esenciales\" se utilizan sobre la base de un interés legítimo y no pueden excluirse (puede ser necesario presentar una objeción por correo electrónico o por carta de acuerdo con la política de privacidad), mientras que todos los demás servicios se utilizan sólo después de haber dado el consentimiento."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Tratamiento de datos estandarizado según el TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "El Marco de Transparencia y Consentimiento (TCF) es una norma para obtener un consentimiento coherente para el tratamiento de datos personales y la instalación de cookies. Esto debería permitir a todas las partes de la cadena digital (publicitaria) garantizar que establecen, procesan y almacenan los datos y las cookies de acuerdo con el RGPD y la Directiva sobre privacidad electrónica."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Fines"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Fines especiales"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Los propósitos describen con qué fin los proveedores pueden establecer cookies y procesar datos personales. Las finalidades se preseleccionan si existe un interés legítimo para su tratamiento de datos. Para todos los demás fines, los datos sólo se tratarán con el consentimiento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Las finalidades especiales para la instalación de cookies y el tratamiento de datos personales por parte de nuestros proveedores describen los fines para los que tenemos un interés legítimo que no puede ser rechazado. Por ejemplo, necesitamos procesar los datos para prevenir el fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Las funciones para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o varios fines. Las funciones no pueden excluirse, pero en la sección \"Finalidades\" pueden seleccionarse o deseleccionarse las finalidades que conducen al uso de las funciones. Cualquier finalidad puede dar lugar a la utilización de las funciones."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Las características especiales para el tratamiento de datos personales describen cómo se utilizan los datos para cumplir uno o más propósitos de manera profunda. Los datos personales sólo se tratarán de este modo con el consentimiento explícito."
|
languages/real-cookie-banner-fi.mo
CHANGED
Binary file
|
languages/real-cookie-banner-fi.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Ei lisenssiä aktivoitu - ei tuotantokäyttöön!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Tuotteen lisenssi ei ole tarkoitettu tuotantokäyttöön!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Tuotteen lisenssi ei ole tarkoitettu tuotantokäyttöön!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " ja "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Ei voimassaoloaikaa"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Lisäksi annat suostumuksesi tietojen siirtämiseen TCF-standardin mukaisille yhteistyökumppaneille seuraavia tarkoituksia varten:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Myyjäluettelo"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Myyjät"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Näytä lisää"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Piilota"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Tietojen käsittely oikeudellisella perusteella:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Tietojenkäsittelyn oikeusperusta: Ei myyjäpyyntöjä tämän oikeusperustan nojalla."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Ei-standardoitu tietojenkäsittely"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Jotkin palvelut asettavat evästeitä ja/tai käsittelevät henkilötietoja noudattamatta suostumusviestinnän standardeja. Nämä palvelut jaetaan useisiin ryhmiin. Ns. välttämättömiä palveluita käytetään oikeutetun edun perusteella, eikä niitä voi poistaa käytöstä (vastalause on ehkä tehtävä sähköpostitse tai kirjeitse tietosuojakäytännön mukaisesti), kun taas kaikkia muita palveluita käytetään vasta suostumuksen antamisen jälkeen."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "TCF:n mukaisesti standardoitu tietojenkäsittely"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Avoimuus- ja suostumuskehys (TCF, Transparency and Consent Framework) on standardi, jonka avulla saadaan johdonmukainen suostumus henkilötietojen käsittelyyn ja evästeiden asettamiseen. Tämän pitäisi antaa kaikille digitaalisen (mainos)ketjun osapuolille mahdollisuus varmistaa, että ne asettavat, käsittelevät ja tallentavat tietoja ja evästeitä yleisen tietosuoja-asetuksen ja sähköisen viestinnän tietosuojadirektiivin mukaisesti."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Käyttötarkoitukset"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Erityistarkoitukset"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Ominaisuudet"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Erityisominaisuudet"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Käyttötarkoitukset kuvaavat, mitä tarkoitusta varten palveluntarjoajat voivat asettaa evästeitä ja käsitellä henkilötietoja. Käyttötarkoitukset valitaan ennalta, jos tietojen käsittelyyn on oikeutettu etu. Kaikkia muita tarkoituksia varten tietoja käsitellään vain nimenomaisella suostumuksella."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Erityiset tarkoitukset evästeiden asettamiselle ja toimittajiemme suorittamalle henkilötietojen käsittelylle kuvaavat tarkoituksia, joita varten meillä on oikeutettu etu, jota ei voida hylätä. Meidän on esimerkiksi käsiteltävä tietoja petosten estämiseksi."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Henkilötietojen käsittelyn ominaisuuksissa kuvataan, miten tietoja käytetään yhden tai useamman tarkoituksen täyttämiseksi. Ominaisuuksia ei voi kieltää, mutta kohdassa \"Käyttötarkoitukset\" voidaan valita tai poistaa tarkoitukset, jotka johtavat ominaisuuksien käyttöön. Mikä tahansa tarkoitus voi johtaa ominaisuuksien käyttöön."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Henkilötietojen käsittelyn erityispiirteet kuvaavat, miten tietoja käytetään yhden tai useamman tarkoituksen täyttämiseksi perusteellisesti. Henkilötietoja käsitellään tällä tavoin vain nimenomaisella suostumuksella."
|
languages/real-cookie-banner-fr_BE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-fr_BE.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Aucune licence activée - pas pour une utilisation en production !"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " et "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Pas d'expiration"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "En outre, vous consentez au transfert de données à des partenaires dans le cadre de la norme TCF aux fins suivantes :"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Liste des vendeurs"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Vendeurs"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Afficher plus"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Cacher"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Traitement des données sur la base juridique de :"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Aucune demande de vendeur ne porte sur cette base juridique."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Traitement des données non normalisé"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Certains services définissent des cookies et/ou traitent des données personnelles sans respecter les normes de communication du consentement. Ces services sont divisés en plusieurs groupes. Les services dits \"essentiels\" sont utilisés sur la base de l'intérêt légitime et ne peuvent pas être désactivés (une objection peut devoir être faite par e-mail ou par lettre conformément à la politique de confidentialité), tandis que tous les autres services ne sont utilisés qu'après avoir donné leur consentement."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Traitement des données normalisé selon le TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Le cadre de transparence et de consentement (TCF) est une norme permettant d'obtenir un consentement cohérent pour le traitement des données personnelles et la mise en place de cookies. Cela devrait permettre à toutes les parties de la chaîne (publicitaire) numérique de s'assurer qu'elles définissent, traitent et stockent les données et les cookies conformément au GDPR et à la directive ePrivacy."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Finalités"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Objectifs particuliers"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Caractéristiques"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Caractéristiques spéciales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Les finalités décrivent dans quel but les fournisseurs peuvent installer des cookies et traiter des données personnelles. Les finalités sont présélectionnées s'il existe un intérêt légitime pour le traitement des données. Pour toutes les autres finalités, les données ne seront traitées qu'avec un consentement explicite."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Les finalités particulières pour la mise en place de cookies et le traitement des données à caractère personnel par nos fournisseurs décrivent les finalités pour lesquelles nous avons un intérêt légitime qui ne peut être rejeté. Par exemple, nous devons traiter des données pour prévenir la fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Les caractéristiques du traitement des données à caractère personnel décrivent la manière dont les données sont utilisées pour atteindre un ou plusieurs objectifs. Les fonctionnalités ne peuvent pas être refusées, mais dans la section \"Objectifs\", les objectifs qui conduisent à l'utilisation des fonctionnalités peuvent être sélectionnés ou désélectionnés. Toute finalité peut entraîner l'utilisation de fonctionnalités."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Les caractéristiques spéciales de traitement des données à caractère personnel décrivent comment les données sont utilisées pour atteindre une ou plusieurs finalités de manière approfondie. Les données personnelles ne seront traitées de cette manière qu'avec un consentement explicite."
|
languages/real-cookie-banner-fr_CA.mo
CHANGED
Binary file
|
languages/real-cookie-banner-fr_CA.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Aucune licence activée - pas pour une utilisation en production !"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " et "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Pas d'expiration"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "En outre, vous consentez au transfert de données à des partenaires dans le cadre de la norme TCF aux fins suivantes :"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Liste des vendeurs"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Vendeurs"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Afficher plus"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Cacher"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Traitement des données sur la base juridique de :"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Aucune demande de vendeur ne porte sur cette base juridique."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Traitement des données non normalisé"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Certains services définissent des cookies et/ou traitent des données personnelles sans respecter les normes de communication du consentement. Ces services sont divisés en plusieurs groupes. Les services dits \"essentiels\" sont utilisés sur la base de l'intérêt légitime et ne peuvent pas être désactivés (une objection peut devoir être faite par e-mail ou par lettre conformément à la politique de confidentialité), tandis que tous les autres services ne sont utilisés qu'après avoir donné leur consentement."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Traitement des données normalisé selon le TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Le cadre de transparence et de consentement (TCF) est une norme permettant d'obtenir un consentement cohérent pour le traitement des données personnelles et la mise en place de cookies. Cela devrait permettre à toutes les parties de la chaîne (publicitaire) numérique de s'assurer qu'elles définissent, traitent et stockent les données et les cookies conformément au GDPR et à la directive ePrivacy."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Finalités"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Objectifs particuliers"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Caractéristiques"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Caractéristiques spéciales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Les finalités décrivent dans quel but les fournisseurs peuvent installer des cookies et traiter des données personnelles. Les finalités sont présélectionnées s'il existe un intérêt légitime pour le traitement des données. Pour toutes les autres finalités, les données ne seront traitées qu'avec un consentement explicite."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Les finalités particulières pour la mise en place de cookies et le traitement des données à caractère personnel par nos fournisseurs décrivent les finalités pour lesquelles nous avons un intérêt légitime qui ne peut être rejeté. Par exemple, nous devons traiter des données pour prévenir la fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Les caractéristiques du traitement des données à caractère personnel décrivent la manière dont les données sont utilisées pour atteindre un ou plusieurs objectifs. Les fonctionnalités ne peuvent pas être refusées, mais dans la section \"Objectifs\", les objectifs qui conduisent à l'utilisation des fonctionnalités peuvent être sélectionnés ou désélectionnés. Toute finalité peut entraîner l'utilisation de fonctionnalités."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Les caractéristiques spéciales de traitement des données à caractère personnel décrivent comment les données sont utilisées pour atteindre une ou plusieurs finalités de manière approfondie. Les données personnelles ne seront traitées de cette manière qu'avec un consentement explicite."
|
languages/real-cookie-banner-fr_FR.mo
CHANGED
Binary file
|
languages/real-cookie-banner-fr_FR.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Aucune licence activée - pas pour une utilisation en production !"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licence de produit non destinée à la production !"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " et "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Pas d'expiration"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "En outre, vous consentez au transfert de données à des partenaires dans le cadre de la norme TCF aux fins suivantes :"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Liste des vendeurs"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Vendeurs"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Afficher plus"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Cacher"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Traitement des données sur la base juridique de :"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Aucune demande de vendeur ne porte sur cette base juridique."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Traitement des données non normalisé"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Certains services définissent des cookies et/ou traitent des données personnelles sans respecter les normes de communication du consentement. Ces services sont divisés en plusieurs groupes. Les services dits \"essentiels\" sont utilisés sur la base de l'intérêt légitime et ne peuvent pas être désactivés (une objection peut devoir être faite par e-mail ou par lettre conformément à la politique de confidentialité), tandis que tous les autres services ne sont utilisés qu'après avoir donné leur consentement."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Traitement des données normalisé selon le TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Le cadre de transparence et de consentement (TCF) est une norme permettant d'obtenir un consentement cohérent pour le traitement des données personnelles et la mise en place de cookies. Cela devrait permettre à toutes les parties de la chaîne (publicitaire) numérique de s'assurer qu'elles définissent, traitent et stockent les données et les cookies conformément au GDPR et à la directive ePrivacy."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Finalités"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Objectifs particuliers"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Caractéristiques"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Caractéristiques spéciales"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Les finalités décrivent dans quel but les fournisseurs peuvent installer des cookies et traiter des données personnelles. Les finalités sont présélectionnées s'il existe un intérêt légitime pour le traitement des données. Pour toutes les autres finalités, les données ne seront traitées qu'avec un consentement explicite."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Les finalités particulières pour la mise en place de cookies et le traitement des données à caractère personnel par nos fournisseurs décrivent les finalités pour lesquelles nous avons un intérêt légitime qui ne peut être rejeté. Par exemple, nous devons traiter des données pour prévenir la fraude."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Les caractéristiques du traitement des données à caractère personnel décrivent la manière dont les données sont utilisées pour atteindre un ou plusieurs objectifs. Les fonctionnalités ne peuvent pas être refusées, mais dans la section \"Objectifs\", les objectifs qui conduisent à l'utilisation des fonctionnalités peuvent être sélectionnés ou désélectionnés. Toute finalité peut entraîner l'utilisation de fonctionnalités."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Les caractéristiques spéciales de traitement des données à caractère personnel décrivent comment les données sont utilisées pour atteindre une ou plusieurs finalités de manière approfondie. Les données personnelles ne seront traitées de cette manière qu'avec un consentement explicite."
|
languages/real-cookie-banner-it_IT.mo
CHANGED
Binary file
|
languages/real-cookie-banner-it_IT.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Nessuna licenza attivata - non per uso produttivo!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licenza del prodotto non per uso di produzione!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licenza del prodotto non per uso di produzione!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " e "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Nessuna scadenza"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Inoltre, l'utente acconsente al trasferimento dei dati ai partner in base allo standard TCF per i seguenti scopi:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Elenco dei fornitori"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Fornitori"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostra di più"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Nascondi"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Trattamento dei dati sulla base giuridica di:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Non ci sono richieste di venditori in base a questa base giuridica."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Trattamento dei dati non standardizzato"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Alcuni servizi impostano cookie e/o elaborano dati personali senza rispettare gli standard di comunicazione del consenso. Questi servizi si dividono in diversi gruppi. I cosiddetti \"servizi essenziali\" sono utilizzati in base al legittimo interesse e non possono essere rifiutati (può essere necessaria un'obiezione via e-mail o lettera in conformità con l'informativa sulla privacy), mentre tutti gli altri servizi sono utilizzati solo dopo aver dato il consenso."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Trattamento dei dati standardizzato secondo il TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Il Transparency and Consent Framework (TCF) è uno standard per ottenere un consenso coerente per il trattamento dei dati personali e l'impostazione dei cookie. Ciò dovrebbe consentire a tutte le parti della catena digitale (pubblicitaria) di garantire l'impostazione, l'elaborazione e l'archiviazione dei dati e dei cookie in conformità con il GDPR e la direttiva ePrivacy."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Finalità"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Scopi speciali"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Caratteristiche"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Caratteristiche speciali"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Le finalità descrivono per quale scopo i fornitori possono impostare i cookie ed elaborare i dati personali. Le finalità sono preselezionate se esiste un interesse legittimo per il trattamento dei dati. Per tutti gli altri scopi, i dati saranno trattati solo con il consenso esplicito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Le finalità speciali per l'impostazione dei cookie e il trattamento dei dati personali da parte dei nostri fornitori descrivono scopi per i quali abbiamo un interesse legittimo che non può essere rifiutato. Ad esempio, abbiamo bisogno di elaborare i dati per prevenire le frodi."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Le funzioni per il trattamento dei dati personali descrivono le modalità di utilizzo dei dati per il raggiungimento di uno o più scopi. Le funzioni non possono essere escluse, ma nella sezione \"Finalità\" è possibile selezionare o deselezionare le finalità che portano all'utilizzo delle funzioni. Qualsiasi finalità può portare all'utilizzo delle funzioni."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Le funzioni speciali per il trattamento dei dati personali descrivono come i dati vengono utilizzati per soddisfare una o più finalità in modo profondo. I dati personali saranno trattati in questo modo solo con il consenso esplicito."
|
languages/real-cookie-banner-nl_BE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-nl_BE.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Geen licentie geactiveerd - niet voor productie gebruik!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " en "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Geen vervaldatum"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Bovendien stemt u in met de overdracht van gegevens aan partners volgens de TCF-norm voor de volgende doeleinden:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lijst van leveranciers"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Verkopers"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Meer tonen"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Verbergen"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Gegevensverwerking op de wettelijke basis van:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Geen verzoeken van verkopers doeleinden onder deze rechtsgrondslag."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Niet-gestandaardiseerde gegevensverwerking"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Sommige diensten plaatsen cookies en/of verwerken persoonsgegevens zonder te voldoen aan de normen voor communicatie met toestemming. Deze diensten zijn onderverdeeld in verschillende groepen. Zogenaamde \"essentiële diensten\" worden gebruikt op basis van gerechtvaardigd belang en kunnen niet worden uitgeschakeld (een bezwaar moet eventueel per e-mail of brief worden ingediend overeenkomstig het privacybeleid), terwijl alle andere diensten pas worden gebruikt nadat toestemming is gegeven."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Gegevensverwerking gestandaardiseerd volgens TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Het Transparantie en Toestemmingsraamwerk (TCF) is een standaard voor het verkrijgen van consistente toestemming voor het verwerken van persoonsgegevens en het plaatsen van cookies. Hiermee moeten alle partijen in de digitale (reclame)keten ervoor kunnen zorgen dat zij gegevens en cookies plaatsen, verwerken en opslaan in overeenstemming met de GDPR en de ePrivacyrichtlijn."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Doeleinden"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Speciale doeleinden"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Functies"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Speciale kenmerken"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Doeleinden beschrijven voor welk doel welke aanbieders cookies mogen plaatsen en persoonsgegevens mogen verwerken. Doeleinden worden vooraf gekozen indien er een gerechtvaardigd belang is voor de verwerking van de gegevens. Voor alle andere doeleinden worden gegevens alleen verwerkt met uitdrukkelijke toestemming."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Speciale doeleinden voor het plaatsen van cookies en het verwerken van persoonsgegevens door onze leveranciers beschrijven doeleinden waarvoor wij een legitiem belang hebben dat niet kan worden afgewezen. Wij moeten bijvoorbeeld gegevens verwerken om fraude te voorkomen."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Functies voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om te voldoen aan een of meer doeleinden. Kenmerken kunnen niet worden geweigerd, maar in de rubriek \"Doeleinden\" kunnen de doeleinden die tot het gebruik van kenmerken leiden, worden geselecteerd of gedeselecteerd. Elk doel kan leiden tot het gebruik van kenmerken."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Speciale kenmerken voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om op een diepgaande manier te voldoen aan een of meer doeleinden. Persoonsgegevens worden op deze manier alleen verwerkt met uitdrukkelijke toestemming."
|
languages/real-cookie-banner-nl_NL.mo
CHANGED
Binary file
|
languages/real-cookie-banner-nl_NL.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Geen licentie geactiveerd - niet voor productie gebruik!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " en "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Geen vervaldatum"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Bovendien stemt u in met de overdracht van gegevens aan partners volgens de TCF-norm voor de volgende doeleinden:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lijst van leveranciers"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Verkopers"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Meer tonen"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Verbergen"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Gegevensverwerking op de wettelijke basis van:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Geen verzoeken van verkopers doeleinden onder deze rechtsgrondslag."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Niet-gestandaardiseerde gegevensverwerking"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Sommige diensten plaatsen cookies en/of verwerken persoonsgegevens zonder te voldoen aan de normen voor communicatie met toestemming. Deze diensten zijn onderverdeeld in verschillende groepen. Zogenaamde \"essentiële diensten\" worden gebruikt op basis van gerechtvaardigd belang en kunnen niet worden uitgeschakeld (een bezwaar moet eventueel per e-mail of brief worden ingediend overeenkomstig het privacybeleid), terwijl alle andere diensten pas worden gebruikt nadat toestemming is gegeven."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Gegevensverwerking gestandaardiseerd volgens TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Het Transparantie en Toestemmingsraamwerk (TCF) is een standaard voor het verkrijgen van consistente toestemming voor het verwerken van persoonsgegevens en het plaatsen van cookies. Hiermee moeten alle partijen in de digitale (reclame)keten ervoor kunnen zorgen dat zij gegevens en cookies plaatsen, verwerken en opslaan in overeenstemming met de GDPR en de ePrivacyrichtlijn."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Doeleinden"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Speciale doeleinden"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Functies"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Speciale kenmerken"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Doeleinden beschrijven voor welk doel welke aanbieders cookies mogen plaatsen en persoonsgegevens mogen verwerken. Doeleinden worden vooraf gekozen indien er een gerechtvaardigd belang is voor de verwerking van de gegevens. Voor alle andere doeleinden worden gegevens alleen verwerkt met uitdrukkelijke toestemming."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Speciale doeleinden voor het plaatsen van cookies en het verwerken van persoonsgegevens door onze leveranciers beschrijven doeleinden waarvoor wij een legitiem belang hebben dat niet kan worden afgewezen. Wij moeten bijvoorbeeld gegevens verwerken om fraude te voorkomen."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Functies voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om te voldoen aan een of meer doeleinden. Kenmerken kunnen niet worden geweigerd, maar in de rubriek \"Doeleinden\" kunnen de doeleinden die tot het gebruik van kenmerken leiden, worden geselecteerd of gedeselecteerd. Elk doel kan leiden tot het gebruik van kenmerken."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Speciale kenmerken voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om op een diepgaande manier te voldoen aan een of meer doeleinden. Persoonsgegevens worden op deze manier alleen verwerkt met uitdrukkelijke toestemming."
|
languages/real-cookie-banner-nl_NL_formal.mo
CHANGED
Binary file
|
languages/real-cookie-banner-nl_NL_formal.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Geen licentie geactiveerd - niet voor productie gebruik!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Product licentie niet voor productie gebruik!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " en "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Geen vervaldatum"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Bovendien stemt u in met de overdracht van gegevens aan partners volgens de TCF-norm voor de volgende doeleinden:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lijst van leveranciers"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Verkopers"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Meer tonen"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Verbergen"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Gegevensverwerking op de wettelijke basis van:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Geen verzoeken van verkopers doeleinden onder deze rechtsgrondslag."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Niet-gestandaardiseerde gegevensverwerking"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Sommige diensten plaatsen cookies en/of verwerken persoonsgegevens zonder te voldoen aan de normen voor communicatie met toestemming. Deze diensten zijn onderverdeeld in verschillende groepen. Zogenaamde \"essentiële diensten\" worden gebruikt op basis van gerechtvaardigd belang en kunnen niet worden uitgeschakeld (een bezwaar moet eventueel per e-mail of brief worden ingediend overeenkomstig het privacybeleid), terwijl alle andere diensten pas worden gebruikt nadat toestemming is gegeven."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Gegevensverwerking gestandaardiseerd volgens TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Het Transparantie en Toestemmingsraamwerk (TCF) is een standaard voor het verkrijgen van consistente toestemming voor het verwerken van persoonsgegevens en het plaatsen van cookies. Hiermee moeten alle partijen in de digitale (reclame)keten ervoor kunnen zorgen dat zij gegevens en cookies plaatsen, verwerken en opslaan in overeenstemming met de GDPR en de ePrivacyrichtlijn."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Doeleinden"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Speciale doeleinden"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Functies"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Speciale kenmerken"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Doeleinden beschrijven voor welk doel welke aanbieders cookies mogen plaatsen en persoonsgegevens mogen verwerken. Doeleinden worden vooraf gekozen indien er een gerechtvaardigd belang is voor de verwerking van de gegevens. Voor alle andere doeleinden worden gegevens alleen verwerkt met uitdrukkelijke toestemming."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Speciale doeleinden voor het plaatsen van cookies en het verwerken van persoonsgegevens door onze leveranciers beschrijven doeleinden waarvoor wij een legitiem belang hebben dat niet kan worden afgewezen. Wij moeten bijvoorbeeld gegevens verwerken om fraude te voorkomen."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Functies voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om te voldoen aan een of meer doeleinden. Kenmerken kunnen niet worden geweigerd, maar in de rubriek \"Doeleinden\" kunnen de doeleinden die tot het gebruik van kenmerken leiden, worden geselecteerd of gedeselecteerd. Elk doel kan leiden tot het gebruik van kenmerken."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Speciale kenmerken voor de verwerking van persoonsgegevens beschrijven hoe gegevens worden gebruikt om op een diepgaande manier te voldoen aan een of meer doeleinden. Persoonsgegevens worden op deze manier alleen verwerkt met uitdrukkelijke toestemming."
|
languages/real-cookie-banner-pl_PL.mo
CHANGED
Binary file
|
languages/real-cookie-banner-pl_PL.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Brak aktywnej licencji - nie do użytku produkcyjnego!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licencja produktu nie do użytku produkcyjnego!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licencja produktu nie do użytku produkcyjnego!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " i "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Brak wygaśnięcia"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Ponadto użytkownik wyraża zgodę na przekazywanie danych partnerom w ramach standardu TCF w następujących celach:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista sprzedawców"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Sprzedawcy"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Pokaż więcej"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ukryj"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Przetwarzanie danych w oparciu o podstawę prawną:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Brak celów zapytań od sprzedawców w ramach tej podstawy prawnej."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Niestandaryzowane przetwarzanie danych"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Niektóre serwisy ustawiają pliki cookie i/lub przetwarzają dane osobowe bez przestrzegania standardów komunikacji w zakresie zgody. Usługi te można podzielić na kilka grup. Tak zwane \"usługi podstawowe\" są wykorzystywane w oparciu o uzasadniony interes i nie można z nich zrezygnować (sprzeciw może być zgłoszony pocztą elektroniczną lub listownie zgodnie z polityką prywatności), natomiast wszystkie inne usługi są wykorzystywane wyłącznie po wyrażeniu zgody."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Standaryzacja przetwarzania danych zgodnie z TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Ramowe zasady przejrzystości i zgody (TCF) to standard uzyskiwania spójnej zgody na przetwarzanie danych osobowych i ustawianie plików cookie. Powinno to umożliwić wszystkim stronom w łańcuchu cyfrowym (reklamowym) zapewnienie, że ustawiają, przetwarzają i przechowują dane i pliki cookie zgodnie z GDPR i dyrektywą o prywatności i łączności elektronicznej."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Cele"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Cele specjalne"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Funkcje"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Cechy szczególne"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Cele opisują, w jakim celu dostawcy mogą ustawiać pliki cookie i przetwarzać dane osobowe. Cele są wybierane wstępnie, jeśli istnieje uzasadniony interes w przetwarzaniu danych. Dla wszystkich innych celów dane będą przetwarzane wyłącznie za wyraźną zgodą."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Szczególne cele ustawiania plików cookie i przetwarzania danych osobowych przez naszych sprzedawców opisują cele, w których mamy uzasadniony interes, którego nie można odrzucić. Na przykład, musimy przetwarzać dane, aby zapobiec oszustwom."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Funkcje przetwarzania danych osobowych opisują sposób, w jaki dane są wykorzystywane do realizacji jednego lub więcej celów. Z funkcji nie można zrezygnować, ale w sekcji \"Cele\" można wybrać lub usunąć cele, które prowadzą do korzystania z funkcji. Każdy cel może prowadzić do wykorzystania funkcji."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Specjalne cechy przetwarzania danych osobowych opisują, w jaki sposób dane są wykorzystywane do spełnienia jednego lub więcej celów w głęboki sposób. Dane osobowe będą przetwarzane w ten sposób wyłącznie za wyraźną zgodą."
|
languages/real-cookie-banner-pt_BR.mo
CHANGED
Binary file
|
languages/real-cookie-banner-pt_BR.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Sem licença ativada - não para uso na produção!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licença de produto não para uso de produção!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licença de produto não para uso de produção!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " e "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Nenhuma expiração"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Além disso, você consente com a transferência de dados a parceiros sob a norma TCF para os seguintes propósitos:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de fornecedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Fornecedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar mais"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Esconder"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Processamento de dados com base na base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Nenhum fornecedor solicita objetivos sob esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Processamento de dados não-padronizados"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Alguns serviços estabelecem cookies e/ou processam dados pessoais sem cumprir com as normas de comunicação de consentimento. Estes serviços estão divididos em vários grupos. Os chamados \"serviços essenciais\" são utilizados com base em interesse legítimo e não podem ser excluídos (uma objeção pode ter que ser feita por e-mail ou carta de acordo com a política de privacidade), enquanto todos os outros serviços são utilizados somente após o consentimento ter sido dado."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Processamento de dados padronizado de acordo com a TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "A Estrutura de Transparência e Consentimento (TCF) é um padrão para obter um consentimento consistente para o processamento de dados pessoais e configuração de cookies. Isto deve permitir que todas as partes da cadeia digital (publicidade) possam garantir que eles definam, processem e armazenem dados e cookies de acordo com a GDPR e a Diretiva de Privacidade Eletrônica (ePrivacy Directive)."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Propósitos"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Finalidades especiais"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiais"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Os propósitos descrevem para qual finalidade os fornecedores podem definir cookies e processar dados pessoais. Os propósitos são pré-selecionados se houver um interesse legítimo para o processamento de seus dados. Para todos os outros fins, os dados só serão processados com consentimento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Finalidades especiais para definir cookies e processar dados pessoais por nossos fornecedores descrevem as finalidades para as quais temos um interesse legítimo que não pode ser rejeitado. Por exemplo, precisamos processar dados para evitar fraudes."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Características para o processamento de dados pessoais descrevem como os dados são utilizados para cumprir uma ou mais finalidades. Os recursos não podem ser excluídos, mas na seção \"Propósitos\", os propósitos que levam ao uso de recursos podem ser selecionados ou desmarcados. Qualquer finalidade pode levar ao uso de recursos."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Características especiais para o processamento de dados pessoais descrevem como os dados são usados para cumprir uma ou mais finalidades de forma profunda. Os dados pessoais só serão processados desta forma com o consentimento explícito."
|
languages/real-cookie-banner-pt_PT.mo
CHANGED
Binary file
|
languages/real-cookie-banner-pt_PT.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Sem licença ativada - não para uso na produção!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licença de produto não para uso de produção!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licença de produto não para uso de produção!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " e "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Nenhuma expiração"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Além disso, você consente com a transferência de dados a parceiros sob a norma TCF para os seguintes propósitos:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista de fornecedores"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Fornecedores"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Mostrar mais"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Esconder"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Processamento de dados com base na base legal de:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Nenhum fornecedor solicita objetivos sob esta base legal."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Processamento de dados não-padronizados"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Alguns serviços estabelecem cookies e/ou processam dados pessoais sem cumprir com as normas de comunicação de consentimento. Estes serviços estão divididos em vários grupos. Os chamados \"serviços essenciais\" são utilizados com base em interesse legítimo e não podem ser excluídos (uma objeção pode ter que ser feita por e-mail ou carta de acordo com a política de privacidade), enquanto todos os outros serviços são utilizados somente após o consentimento ter sido dado."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Processamento de dados padronizado de acordo com a TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "A Estrutura de Transparência e Consentimento (TCF) é um padrão para obter um consentimento consistente para o processamento de dados pessoais e configuração de cookies. Isto deve permitir que todas as partes da cadeia digital (publicidade) possam garantir que eles definam, processem e armazenem dados e cookies de acordo com a GDPR e a Diretiva de Privacidade Eletrônica (ePrivacy Directive)."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Propósitos"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Finalidades especiais"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Características"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Características especiais"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Os propósitos descrevem para qual finalidade os fornecedores podem definir cookies e processar dados pessoais. Os propósitos são pré-selecionados se houver um interesse legítimo para o processamento de seus dados. Para todos os outros fins, os dados só serão processados com consentimento explícito."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Finalidades especiais para definir cookies e processar dados pessoais por nossos fornecedores descrevem as finalidades para as quais temos um interesse legítimo que não pode ser rejeitado. Por exemplo, precisamos processar dados para evitar fraudes."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Características para o processamento de dados pessoais descrevem como os dados são utilizados para cumprir uma ou mais finalidades. Os recursos não podem ser excluídos, mas na seção \"Propósitos\", os propósitos que levam ao uso de recursos podem ser selecionados ou desmarcados. Qualquer finalidade pode levar ao uso de recursos."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Características especiais para o processamento de dados pessoais descrevem como os dados são usados para cumprir uma ou mais finalidades de forma profunda. Os dados pessoais só serão processados desta forma com o consentimento explícito."
|
languages/real-cookie-banner-ro_RO.mo
CHANGED
Binary file
|
languages/real-cookie-banner-ro_RO.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Nici o licență activată - nu pentru utilizare în producție!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licența produsului nu este destinată utilizării în producție!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Licența produsului nu este destinată utilizării în producție!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " și "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Fără expirare"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "În plus, sunteți de acord cu transferul de date către parteneri în conformitate cu standardul TCF în următoarele scopuri:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Lista furnizorilor"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Furnizori"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Afișați mai multe"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Ascundeți"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Prelucrarea datelor în baza temeiului juridic al:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Nu există scopuri de solicitare a furnizorilor în temeiul acestui temei juridic."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Prelucrarea nestandardizată a datelor"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Unele servicii setează cookie-uri și/sau prelucrează date cu caracter personal fără a respecta standardele de comunicare a consimțământului. Aceste servicii sunt împărțite în mai multe grupuri. Așa-numitele \"servicii esențiale\" sunt utilizate pe baza interesului legitim și nu pot fi refuzate (este posibil să fie necesară o obiecție prin e-mail sau scrisoare, în conformitate cu politica de confidențialitate), în timp ce toate celelalte servicii sunt utilizate numai după ce a fost acordat consimțământul."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Prelucrarea datelor standardizată în conformitate cu TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Cadrul de transparență și consimțământ (TCF) este un standard pentru obținerea unui consimțământ coerent pentru prelucrarea datelor cu caracter personal și pentru setarea de cookie-uri. Acest lucru ar trebui să permită tuturor părților din lanțul digital (publicitar) să se asigure că setează, prelucrează și stochează datele și cookie-urile în conformitate cu GDPR și cu Directiva privind confidențialitatea în mediul electronic."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Scopuri"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Scopuri speciale"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Caracteristici"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Caracteristici speciale"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Scopurile descriu în ce scop care furnizori pot seta module cookie și prelucra date cu caracter personal. Scopurile sunt preselectate în cazul în care există un interes legitim pentru prelucrarea datelor sale. Pentru toate celelalte scopuri, datele vor fi prelucrate numai cu consimțământul explicit."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Scopurile speciale pentru setarea modulelor cookie și prelucrarea datelor cu caracter personal de către furnizorii noștri descriu scopurile pentru care avem un interes legitim care nu poate fi respins. De exemplu, trebuie să prelucrăm datele pentru a preveni frauda."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Caracteristicile pentru prelucrarea datelor cu caracter personal descriu modul în care datele sunt utilizate pentru a îndeplini unul sau mai multe scopuri. Caracteristicile nu pot fi refuzate, dar în secțiunea \"Scopuri\", scopurile care conduc la utilizarea caracteristicilor pot fi selectate sau deselectate. Orice scop poate conduce la utilizarea caracteristicilor."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Caracteristicile speciale pentru prelucrarea datelor cu caracter personal descriu modul în care datele sunt utilizate pentru a îndeplini unul sau mai multe scopuri într-un mod profund. Datele cu caracter personal vor fi prelucrate în acest mod numai cu consimțământul explicit."
|
languages/real-cookie-banner-ru_RU.mo
CHANGED
Binary file
|
languages/real-cookie-banner-ru_RU.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Лицензия не активирована - не для произ
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Лицензия на продукт не для производственного использования!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Лицензия на продукт не для производственного использования!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " и "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Без срока годности"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Кроме того, вы даете согласие на передачу данных партнерам в соответствии со стандартом TCF для следующих целей:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Список поставщиков"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Поставщики"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Показать больше"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Скрыть"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Обработка данных на законном основании:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "На этой правовой основе не было запросов от поставщиков."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Нестандартизированная обработка данных"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Некоторые сервисы устанавливают файлы cookie и/или обрабатывают персональные данные без соблюдения стандартов передачи согласия. Такие сервисы делятся на несколько групп. Так называемые \"основные услуги\" используются на основании законных интересов и от них нельзя отказаться (возражение может быть сделано по электронной почте или письмом в соответствии с политикой конфиденциальности), в то время как все остальные услуги используются только после получения согласия."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Обработка данных стандартизирована в соответствии с TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Transparency and Consent Framework (TCF) - это стандарт для получения последовательного согласия на обработку персональных данных и установку файлов cookie. Это должно позволить всем участникам цифровой (рекламной) цепочки обеспечить установку, обработку и хранение данных и файлов cookie в соответствии с GDPR и Директивой ePrivacy."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Цели"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Специальные цели"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Функции"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Специальные функции"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Цели описывают, для какой цели какие провайдеры могут устанавливать файлы cookie и обрабатывать персональные данные. Цели выбираются заранее, если существует законный интерес для обработки данных. Для всех остальных целей данные будут обрабатываться только с явного согласия."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Специальные цели для установки cookies и обработки персональных данных нашими поставщиками описывают цели, для которых у нас есть законный интерес, от которого нельзя отказаться. Например, нам необходимо обрабатывать данные для предотвращения мошенничества."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Функции обработки персональных данных описывают, как данные используются для выполнения одной или нескольких целей. От функций нельзя отказаться, но в разделе \"Цели\" можно выбрать или отменить выбор целей, которые приводят к использованию функций. Любая цель может привести к использованию функций."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Особенности обработки персональных данных описывают, как данные используются для глубокого выполнения одной или нескольких целей. Персональные данные будут обрабатываться таким образом только с явного согласия."
|
languages/real-cookie-banner-sv_SE.mo
CHANGED
Binary file
|
languages/real-cookie-banner-sv_SE.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Ingen licens aktiverad - inte för produktionsbruk!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Produktlicens inte för produktionsbruk!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Produktlicens inte för produktionsbruk!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " och "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Inget utgångsdatum"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Dessutom samtycker du till att uppgifter överförs till partners enligt TCF-standarden för följande ändamål:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Leverantörslista"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Leverantörer"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Visa mer"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Dölj"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Behandling av uppgifter på rättslig grund av:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Ingen begäran från en säljare har gjorts på denna rättsliga grund."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Icke-standardiserad databehandling"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Vissa tjänster ställer in cookies och/eller behandlar personuppgifter utan att följa standarderna för kommunikation om samtycke. Dessa tjänster är indelade i flera grupper. Så kallade \"väsentliga tjänster\" används på grundval av legitimt intresse och kan inte avregistreras (en invändning kan behöva göras via e-post eller brev i enlighet med sekretesspolicyn), medan alla andra tjänster används endast efter att samtycke har getts."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "Standardiserad databehandling enligt TCF"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Transparency and Consent Framework (TCF) är en standard för att få ett konsekvent samtycke till behandling av personuppgifter och cookie-inställning. Detta ska göra det möjligt för alla parter i den digitala (reklam)kedjan att se till att de ställer in, behandlar och lagrar data och cookies i enlighet med GDPR och direktivet om integritet och elektronisk kommunikation."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Ändamål"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "Särskilda ändamål"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Funktioner"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Särskilda funktioner"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Ändamålen beskriver för vilket syfte vilka leverantörer får ställa in cookies och behandla personuppgifter. Ändamålen väljs i förväg om det finns ett legitimt intresse för behandlingen av uppgifterna. För alla andra ändamål behandlas uppgifter endast med uttryckligt samtycke."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Särskilda ändamål för att sätta cookies och behandla personuppgifter av våra leverantörer beskriver ändamål för vilka vi har ett legitimt intresse som inte kan avvisas. Vi behöver till exempel behandla uppgifter för att förhindra bedrägerier."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Funktioner för behandling av personuppgifter beskriver hur uppgifterna används för att uppfylla ett eller flera ändamål. Funktioner kan inte väljas bort, men i avsnittet \"Ändamål\" kan ändamål som leder till användning av funktioner väljas eller avfärdas. Alla syften kan leda till att funktioner används."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Särskilda funktioner för behandling av personuppgifter beskriver hur uppgifter används för att uppfylla ett eller flera ändamål på ett djupgående sätt. Personuppgifter kommer endast att behandlas på detta sätt med uttryckligt samtycke."
|
languages/real-cookie-banner-tr_TR.mo
CHANGED
Binary file
|
languages/real-cookie-banner-tr_TR.po
CHANGED
@@ -146,3 +146,87 @@ msgstr "Hiçbir lisans etkinleştirilmedi - üretim kullanımı için değil!"
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Ürün lisansı üretim amaçlı değil!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
#: inc/Assets.php:1
|
147 |
msgid "Product license not for production use!"
|
148 |
msgstr "Ürün lisansı üretim amaçlı değil!"
|
149 |
+
|
150 |
+
#: inc/Assets.php:1
|
151 |
+
msgid " and "
|
152 |
+
msgstr " ve "
|
153 |
+
|
154 |
+
#: inc/Assets.php:1
|
155 |
+
msgid "No expiration"
|
156 |
+
msgstr "Bitiş süresi yok"
|
157 |
+
|
158 |
+
#: inc/Assets.php:1
|
159 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
160 |
+
msgstr "Ek olarak, aşağıdaki amaçlarla TCF standardı kapsamında ortaklara veri aktarımına izin vermiş olursunuz:"
|
161 |
+
|
162 |
+
#: inc/Assets.php:1
|
163 |
+
msgid "Vendor list"
|
164 |
+
msgstr "Satıcı listesi"
|
165 |
+
|
166 |
+
#: inc/Assets.php:1
|
167 |
+
msgid "Vendors"
|
168 |
+
msgstr "Satıcılar"
|
169 |
+
|
170 |
+
#: inc/Assets.php:1
|
171 |
+
msgid "Show more"
|
172 |
+
msgstr "Daha fazla göster"
|
173 |
+
|
174 |
+
#: inc/Assets.php:1
|
175 |
+
msgid "Hide"
|
176 |
+
msgstr "Saklamak"
|
177 |
+
|
178 |
+
#: inc/Assets.php:1
|
179 |
+
msgid "Data processing on the legal basis of:"
|
180 |
+
msgstr "Aşağıdakilerin yasal temeli üzerinde veri işleme:"
|
181 |
+
|
182 |
+
#: inc/Assets.php:1
|
183 |
+
msgid "No vendor requests purposes under this legal basis."
|
184 |
+
msgstr "Bu yasal dayanak altında hiçbir satıcı amaç talep etmez."
|
185 |
+
|
186 |
+
#: inc/Assets.php:1
|
187 |
+
msgid "Non-standardized data processing"
|
188 |
+
msgstr "Standartlaştırılmamış veri işleme"
|
189 |
+
|
190 |
+
#: inc/Assets.php:1
|
191 |
+
msgid "Some services set cookies and/or process personal data without complying with consent communication standards. These services are divided into several groups. So-called \"essential services\" are used based on legitimate interest and cannot be opted out (an objection may have to be made by email or letter in accordance with the privacy policy), while all other services are used only after consent has been given."
|
192 |
+
msgstr "Bazı hizmetler, rıza iletişim standartlarına uymadan çerezler yerleştirir ve/veya kişisel verileri işler. Bu hizmetler birkaç gruba ayrılır. Sözde \"temel hizmetler\" meşru menfaat temelinde kullanılır ve devre dışı bırakılamaz (gizlilik politikasına uygun olarak e-posta veya mektup yoluyla itirazda bulunulması gerekebilir), diğer tüm hizmetler yalnızca onay verildikten sonra kullanılır. ."
|
193 |
+
|
194 |
+
#: inc/Assets.php:1
|
195 |
+
msgid "Data processing standardized according to TCF"
|
196 |
+
msgstr "TCF'ye göre standartlaştırılmış veri işleme"
|
197 |
+
|
198 |
+
#: inc/Assets.php:1
|
199 |
+
msgid "The Transparency and Consent Framework (TCF) is a standard for obtaining consistent consent for processing of personal data and cookie setting. This should enable all parties in the digital (advertising) chain to ensure that they set, process and store data and cookies in accordance with the GDPR and the ePrivacy Directive."
|
200 |
+
msgstr "Şeffaflık ve Rıza Çerçevesi (TCF), kişisel verilerin işlenmesi ve çerez ayarı için tutarlı izin alınmasına yönelik bir standarttır. Bu, dijital (reklamcılık) zincirindeki tüm tarafların verileri ve çerezleri GDPR ve eGizlilik Yönergesi uyarınca ayarladıklarından, işlediklerinden ve sakladıklarından emin olmalarını sağlamalıdır."
|
201 |
+
|
202 |
+
#: inc/Assets.php:1
|
203 |
+
msgid "Purposes"
|
204 |
+
msgstr "Amaçlar"
|
205 |
+
|
206 |
+
#: inc/Assets.php:1
|
207 |
+
msgid "Special purposes"
|
208 |
+
msgstr "özel amaçlar"
|
209 |
+
|
210 |
+
#: inc/Assets.php:1
|
211 |
+
msgid "Features"
|
212 |
+
msgstr "Özellikler"
|
213 |
+
|
214 |
+
#: inc/Assets.php:1
|
215 |
+
msgid "Special features"
|
216 |
+
msgstr "Özel özellikler"
|
217 |
+
|
218 |
+
#: inc/Assets.php:1
|
219 |
+
msgid "Purposes describe for which purpose which providers may set cookies and process personal data. Purposes are pre-selected if there is a legitimate interest for its data processing. For all other purposes, data will only be processed with explicit consent."
|
220 |
+
msgstr "Amaçlar, hangi sağlayıcıların çerezleri hangi amaçla ayarlayabileceğini ve kişisel verileri işleyebileceğini açıklar. Verilerin işlenmesi için meşru bir menfaat varsa, amaçlar önceden seçilir. Diğer tüm amaçlar için veriler yalnızca açık rıza ile işlenecektir."
|
221 |
+
|
222 |
+
#: inc/Assets.php:1
|
223 |
+
msgid "Special purposes for setting cookies and processing personal data by our vendors describe purposes for which we have a legitimate interest that cannot be rejected. For example, we need to process data to prevent fraud."
|
224 |
+
msgstr "Tanımlama bilgilerinin ayarlanmasına ve satıcılarımız tarafından kişisel verilerin işlenmesine yönelik özel amaçlar, reddedilemeyecek meşru bir menfaatimizin olduğu amaçları tanımlar. Örneğin, dolandırıcılığı önlemek için verileri işlememiz gerekir."
|
225 |
+
|
226 |
+
#: inc/Assets.php:1
|
227 |
+
msgid "Features for processing personal data describe how data is used to fulfill one or more purposes. Features cannot be opted out, but in the \"Purposes\" section, purposes that lead to the use of features can be selected or deselected. Any purpose can lead to features being used."
|
228 |
+
msgstr "Kişisel verilerin işlenmesine yönelik özellikler, verilerin bir veya daha fazla amacı yerine getirmek için nasıl kullanıldığını açıklar. Özellikler devre dışı bırakılamaz, ancak \"Amaçlar\" bölümünde özelliklerin kullanımına yol açan amaçlar seçilebilir veya seçimi kaldırılabilir. Herhangi bir amaç, özelliklerin kullanılmasına neden olabilir."
|
229 |
+
|
230 |
+
#: inc/Assets.php:1
|
231 |
+
msgid "Special features for processing personal data describe how data is used to fulfill one or more purposes in a profound way. Personal data will only be processed in this way with explicit consent."
|
232 |
+
msgstr "Kişisel verilerin işlenmesine yönelik özel özellikler, verilerin bir veya daha fazla amacı kapsamlı bir şekilde yerine getirmek için nasıl kullanıldığını açıklar. Kişisel veriler bu şekilde ancak açık rıza ile işlenecektir."
|
languages/real-cookie-banner.pot
CHANGED
@@ -157,6 +157,8 @@ msgid "Host"
|
|
157 |
msgstr ""
|
158 |
|
159 |
#: inc/Assets.php:1
|
|
|
|
|
160 |
msgid "Duration"
|
161 |
msgstr ""
|
162 |
|
@@ -184,6 +186,10 @@ msgstr ""
|
|
184 |
msgid "year(s)"
|
185 |
msgstr ""
|
186 |
|
|
|
|
|
|
|
|
|
187 |
#: inc/Assets.php:1
|
188 |
#: inc/view/customize/banner/BasicLayout.php:1
|
189 |
#: inc/view/customize/banner/BasicLayout.php:1
|
@@ -266,6 +272,11 @@ msgstr ""
|
|
266 |
msgid "Product license not for production use!"
|
267 |
msgstr ""
|
268 |
|
|
|
|
|
|
|
|
|
|
|
269 |
#: inc/Assets.php:1
|
270 |
#: inc/view/checklist/GetPro.php:1
|
271 |
msgid "Learn more"
|
@@ -2405,11 +2416,6 @@ msgid "Border"
|
|
2405 |
msgstr ""
|
2406 |
|
2407 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
2408 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
2409 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
2410 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
2411 |
-
#: inc/view/customize/banner/individual/Group.php:1
|
2412 |
-
#: inc/view/customize/banner/individual/SaveButton.php:1
|
2413 |
msgid "Border width (px)"
|
2414 |
msgstr ""
|
2415 |
|
@@ -2505,6 +2511,10 @@ msgstr ""
|
|
2505 |
msgid "Services that do not share consents via the TCF standard, but via other technologies. These are divided into several groups according to their purpose. Some of them are used based on a legitimate interest (e.g. threat prevention), others are used only with your consent. Details about the individual groups and purposes of the services can be found in the individual privacy settings."
|
2506 |
msgstr ""
|
2507 |
|
|
|
|
|
|
|
|
|
2508 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
2509 |
msgid "Vendor list"
|
2510 |
msgstr ""
|
@@ -3282,6 +3292,14 @@ msgstr ""
|
|
3282 |
msgid "View stats"
|
3283 |
msgstr ""
|
3284 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3285 |
#: inc/view/ConfigPage.php:1
|
3286 |
msgid "A cookie banner for your website is installed. With it, you can integrate e.g. <strong>Google Analytics, Google Maps or YouTube videos</strong> legally compliant. You just have to configure it!"
|
3287 |
msgstr ""
|
@@ -3323,7 +3341,7 @@ msgstr ""
|
|
3323 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3324 |
#: inc/view/customize/banner/individual/Layout.php:1
|
3325 |
#: inc/view/customize/banner/individual/Layout.php:1
|
3326 |
-
msgid "Maximum width
|
3327 |
msgstr ""
|
3328 |
|
3329 |
#: inc/view/customize/banner/BasicLayout.php:1
|
@@ -3385,7 +3403,7 @@ msgid "Bottom"
|
|
3385 |
msgstr ""
|
3386 |
|
3387 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3388 |
-
msgid "Maximum content width
|
3389 |
msgstr ""
|
3390 |
|
3391 |
#: inc/view/customize/banner/BasicLayout.php:1
|
@@ -3400,11 +3418,6 @@ msgstr ""
|
|
3400 |
msgid "Animation on display"
|
3401 |
msgstr ""
|
3402 |
|
3403 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
3404 |
-
#: inc/view/customize/banner/BasicLayout.php:1
|
3405 |
-
msgid "Duration (milliseconds)"
|
3406 |
-
msgstr ""
|
3407 |
-
|
3408 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3409 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3410 |
msgid "Animation only on mobile devices"
|
@@ -3446,10 +3459,6 @@ msgstr ""
|
|
3446 |
msgid "Note that for visitors with an older browser (e.g. Internet Explorer) this option will not work."
|
3447 |
msgstr ""
|
3448 |
|
3449 |
-
#: inc/view/customize/banner/BodyDesign.php:1
|
3450 |
-
msgid "The \"Accept\" and \"Reject\" buttons should be the same size (button and text size) so that they are considered equal."
|
3451 |
-
msgstr ""
|
3452 |
-
|
3453 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3454 |
msgid "Body"
|
3455 |
msgstr ""
|
@@ -3531,13 +3540,13 @@ msgstr ""
|
|
3531 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3532 |
#: inc/view/customize/banner/Design.php:1
|
3533 |
#: inc/view/customize/banner/individual/Group.php:1
|
3534 |
-
msgid "Width
|
3535 |
msgstr ""
|
3536 |
|
3537 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3538 |
#: inc/view/customize/banner/FooterDesign.php:1
|
3539 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
3540 |
-
msgid "Height
|
3541 |
msgstr ""
|
3542 |
|
3543 |
#: inc/view/customize/banner/BodyDesign.php:1
|
@@ -3573,6 +3582,14 @@ msgstr ""
|
|
3573 |
msgid "Define inner distance of the button/link."
|
3574 |
msgstr ""
|
3575 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3576 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3577 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3578 |
#: inc/view/customize/banner/BodyDesign.php:1
|
@@ -3609,6 +3626,16 @@ msgstr ""
|
|
3609 |
msgid "Button: Continue without consent"
|
3610 |
msgstr ""
|
3611 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3612 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3613 |
msgid "Button: Individual privacy preferences"
|
3614 |
msgstr ""
|
@@ -3670,6 +3697,7 @@ msgstr ""
|
|
3670 |
msgid "Consent options"
|
3671 |
msgstr ""
|
3672 |
|
|
|
3673 |
#: inc/view/customize/banner/Decision.php:1
|
3674 |
#: inc/view/customize/banner/Texts.php:1
|
3675 |
msgid "Accept all"
|
@@ -3695,6 +3723,7 @@ msgstr ""
|
|
3695 |
msgid "Link"
|
3696 |
msgstr ""
|
3697 |
|
|
|
3698 |
#: inc/view/customize/banner/Decision.php:1
|
3699 |
#: inc/view/customize/banner/Texts.php:1
|
3700 |
msgid "Continue without consent"
|
@@ -3712,9 +3741,9 @@ msgstr ""
|
|
3712 |
msgid "An \"X\" icon is displayed at the top right of the cookie banner, which allows website visitors to close the cookie banner. It has the same function as clicking on the \"Continue without consent\" button/link."
|
3713 |
msgstr ""
|
3714 |
|
|
|
3715 |
#: inc/view/customize/banner/Decision.php:1
|
3716 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3717 |
-
#: inc/view/customize/banner/Texts.php:1
|
3718 |
msgid "Individual privacy preferences"
|
3719 |
msgstr ""
|
3720 |
|
@@ -3722,6 +3751,22 @@ msgstr ""
|
|
3722 |
msgid "According to the GDPR (EU 2016/679) and the ePrivacy Directive (EU 2009/136/EC), the user must be free to choose which services to use and be informed about their purpose before giving consent. Therefore, the user must be given the opportunity to access the page with the individual privacy settings."
|
3723 |
msgstr ""
|
3724 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3725 |
#: inc/view/customize/banner/Decision.php:1
|
3726 |
msgid "Custom choice in first view"
|
3727 |
msgstr ""
|
@@ -3742,6 +3787,11 @@ msgstr ""
|
|
3742 |
msgid "Text of \"Accept all\" changes when user changes selection"
|
3743 |
msgstr ""
|
3744 |
|
|
|
|
|
|
|
|
|
|
|
3745 |
#: inc/view/customize/banner/Design.php:1
|
3746 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3747 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -3903,7 +3953,7 @@ msgid "Define the inner distance of the group box."
|
|
3903 |
msgstr ""
|
3904 |
|
3905 |
#: inc/view/customize/banner/individual/Group.php:1
|
3906 |
-
msgid "Spacing between groups
|
3907 |
msgstr ""
|
3908 |
|
3909 |
#: inc/view/customize/banner/individual/Group.php:1
|
@@ -3943,6 +3993,11 @@ msgstr ""
|
|
3943 |
msgid "Texts"
|
3944 |
msgstr ""
|
3945 |
|
|
|
|
|
|
|
|
|
|
|
3946 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3947 |
msgid "\"Save\" button/link"
|
3948 |
msgstr ""
|
@@ -3956,11 +4011,17 @@ msgid "\"Hide service information\" link"
|
|
3956 |
msgstr ""
|
3957 |
|
3958 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3959 |
-
|
|
|
3960 |
msgstr ""
|
3961 |
|
3962 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3963 |
-
|
|
|
|
|
|
|
|
|
|
|
3964 |
msgstr ""
|
3965 |
|
3966 |
#: inc/view/customize/banner/individual/Texts.php:1
|
@@ -4110,6 +4171,18 @@ msgstr ""
|
|
4110 |
msgid "Age notice in content blocker"
|
4111 |
msgstr ""
|
4112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4113 |
#: inc/view/customize/banner/Texts.php:1
|
4114 |
msgid "Consent Forwarding"
|
4115 |
msgstr ""
|
@@ -4156,6 +4229,11 @@ msgstr ""
|
|
4156 |
msgid "Age notice is currently disabled. Please navigate to %1$sSettings > Consent%2$s to activate it."
|
4157 |
msgstr ""
|
4158 |
|
|
|
|
|
|
|
|
|
|
|
4159 |
#. translators:
|
4160 |
#: inc/view/customize/banner/Texts.php:1
|
4161 |
msgid "Consent Forwarding is currently disabled. Please navigate to %1$sSettings > Multisite / Consent Forwarding%2$s to activate it."
|
@@ -4166,7 +4244,7 @@ msgid "Privacy preferences"
|
|
4166 |
msgstr ""
|
4167 |
|
4168 |
#: inc/view/customize/banner/Texts.php:1
|
4169 |
-
msgid "
|
4170 |
msgstr ""
|
4171 |
|
4172 |
#: inc/view/customize/banner/Texts.php:1
|
@@ -4181,6 +4259,10 @@ msgstr ""
|
|
4181 |
msgid "You are under 16 years old? Unfortunately, you are not permitted to consent to this service to view this content. Please ask your parents or guardians to agree to the service with you!"
|
4182 |
msgstr ""
|
4183 |
|
|
|
|
|
|
|
|
|
4184 |
#: inc/view/customize/banner/Texts.php:1
|
4185 |
msgid "Your consent is also applicable on {{websites}}."
|
4186 |
msgstr ""
|
157 |
msgstr ""
|
158 |
|
159 |
#: inc/Assets.php:1
|
160 |
+
#: inc/view/customize/banner/BasicLayout.php:1
|
161 |
+
#: inc/view/customize/banner/BasicLayout.php:1
|
162 |
msgid "Duration"
|
163 |
msgstr ""
|
164 |
|
186 |
msgid "year(s)"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: inc/Assets.php:1
|
190 |
+
msgid "No expiration"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
#: inc/Assets.php:1
|
194 |
#: inc/view/customize/banner/BasicLayout.php:1
|
195 |
#: inc/view/customize/banner/BasicLayout.php:1
|
272 |
msgid "Product license not for production use!"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#. translators:
|
276 |
+
#: inc/Assets.php:1
|
277 |
+
msgid " and "
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
#: inc/Assets.php:1
|
281 |
#: inc/view/checklist/GetPro.php:1
|
282 |
msgid "Learn more"
|
2416 |
msgstr ""
|
2417 |
|
2418 |
#: inc/overrides/pro/view/customize/banner/TcfBodyDesign.php:1
|
|
|
|
|
|
|
|
|
|
|
2419 |
msgid "Border width (px)"
|
2420 |
msgstr ""
|
2421 |
|
2511 |
msgid "Services that do not share consents via the TCF standard, but via other technologies. These are divided into several groups according to their purpose. Some of them are used based on a legitimate interest (e.g. threat prevention), others are used only with your consent. Details about the individual groups and purposes of the services can be found in the individual privacy settings."
|
2512 |
msgstr ""
|
2513 |
|
2514 |
+
#: inc/overrides/pro/view/TcfBanner.php:1
|
2515 |
+
msgid "In addition, you consent to the transfer of data to partners under the TCF standard for the following purposes:"
|
2516 |
+
msgstr ""
|
2517 |
+
|
2518 |
#: inc/overrides/pro/view/TcfBanner.php:1
|
2519 |
msgid "Vendor list"
|
2520 |
msgstr ""
|
3292 |
msgid "View stats"
|
3293 |
msgstr ""
|
3294 |
|
3295 |
+
#: inc/view/ConfigPage.php:1
|
3296 |
+
msgid "Set privacy policy URL"
|
3297 |
+
msgstr ""
|
3298 |
+
|
3299 |
+
#: inc/view/ConfigPage.php:1
|
3300 |
+
msgid "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!"
|
3301 |
+
msgstr ""
|
3302 |
+
|
3303 |
#: inc/view/ConfigPage.php:1
|
3304 |
msgid "A cookie banner for your website is installed. With it, you can integrate e.g. <strong>Google Analytics, Google Maps or YouTube videos</strong> legally compliant. You just have to configure it!"
|
3305 |
msgstr ""
|
3341 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3342 |
#: inc/view/customize/banner/individual/Layout.php:1
|
3343 |
#: inc/view/customize/banner/individual/Layout.php:1
|
3344 |
+
msgid "Maximum width"
|
3345 |
msgstr ""
|
3346 |
|
3347 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3403 |
msgstr ""
|
3404 |
|
3405 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3406 |
+
msgid "Maximum content width"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3418 |
msgid "Animation on display"
|
3419 |
msgstr ""
|
3420 |
|
|
|
|
|
|
|
|
|
|
|
3421 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3422 |
#: inc/view/customize/banner/BasicLayout.php:1
|
3423 |
msgid "Animation only on mobile devices"
|
3459 |
msgid "Note that for visitors with an older browser (e.g. Internet Explorer) this option will not work."
|
3460 |
msgstr ""
|
3461 |
|
|
|
|
|
|
|
|
|
3462 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3463 |
msgid "Body"
|
3464 |
msgstr ""
|
3540 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3541 |
#: inc/view/customize/banner/Design.php:1
|
3542 |
#: inc/view/customize/banner/individual/Group.php:1
|
3543 |
+
msgid "Width"
|
3544 |
msgstr ""
|
3545 |
|
3546 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3547 |
#: inc/view/customize/banner/FooterDesign.php:1
|
3548 |
#: inc/view/customize/banner/HeaderDesign.php:1
|
3549 |
+
msgid "Height"
|
3550 |
msgstr ""
|
3551 |
|
3552 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3582 |
msgid "Define inner distance of the button/link."
|
3583 |
msgstr ""
|
3584 |
|
3585 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
3586 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
3587 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
3588 |
+
#: inc/view/customize/banner/individual/Group.php:1
|
3589 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
3590 |
+
msgid "Border width"
|
3591 |
+
msgstr ""
|
3592 |
+
|
3593 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3594 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3595 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3626 |
msgid "Button: Continue without consent"
|
3627 |
msgstr ""
|
3628 |
|
3629 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
3630 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
3631 |
+
msgid "Use the same stylings as for \"Accept all\""
|
3632 |
+
msgstr ""
|
3633 |
+
|
3634 |
+
#: inc/view/customize/banner/BodyDesign.php:1
|
3635 |
+
#: inc/view/customize/banner/individual/SaveButton.php:1
|
3636 |
+
msgid "According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data protection authorities in Germany (German)</a>, there must be an equivalent way for your visitors to express their choice (agree to everything, continue without consent or an indivudual decision). Equivalent does not necessarily mean that the buttons/links must look exactly the same. However, you should be safest if they look exactly the same."
|
3637 |
+
msgstr ""
|
3638 |
+
|
3639 |
#: inc/view/customize/banner/BodyDesign.php:1
|
3640 |
msgid "Button: Individual privacy preferences"
|
3641 |
msgstr ""
|
3697 |
msgid "Consent options"
|
3698 |
msgstr ""
|
3699 |
|
3700 |
+
#: inc/view/customize/banner/Decision.php:1
|
3701 |
#: inc/view/customize/banner/Decision.php:1
|
3702 |
#: inc/view/customize/banner/Texts.php:1
|
3703 |
msgid "Accept all"
|
3723 |
msgid "Link"
|
3724 |
msgstr ""
|
3725 |
|
3726 |
+
#: inc/view/customize/banner/Decision.php:1
|
3727 |
#: inc/view/customize/banner/Decision.php:1
|
3728 |
#: inc/view/customize/banner/Texts.php:1
|
3729 |
msgid "Continue without consent"
|
3741 |
msgid "An \"X\" icon is displayed at the top right of the cookie banner, which allows website visitors to close the cookie banner. It has the same function as clicking on the \"Continue without consent\" button/link."
|
3742 |
msgstr ""
|
3743 |
|
3744 |
+
#: inc/view/customize/banner/Decision.php:1
|
3745 |
#: inc/view/customize/banner/Decision.php:1
|
3746 |
#: inc/view/customize/banner/individual/Texts.php:1
|
|
|
3747 |
msgid "Individual privacy preferences"
|
3748 |
msgstr ""
|
3749 |
|
3751 |
msgid "According to the GDPR (EU 2016/679) and the ePrivacy Directive (EU 2009/136/EC), the user must be free to choose which services to use and be informed about their purpose before giving consent. Therefore, the user must be given the opportunity to access the page with the individual privacy settings."
|
3752 |
msgstr ""
|
3753 |
|
3754 |
+
#: inc/view/customize/banner/Decision.php:1
|
3755 |
+
msgid "Order of the buttons"
|
3756 |
+
msgstr ""
|
3757 |
+
|
3758 |
+
#: inc/view/customize/banner/Decision.php:1
|
3759 |
+
msgid "According to the <a href=\"https://www.datenschutzkonferenz-online.de/media/oh/20211220_oh_telemedien.pdf\" target=\"_blank\">guidance of the data protection authorities in Germany (German)</a>, there must be an equivalent way for your visitors to express their choice (agree to everything, continue without consent or an indivudual decision). Which order of options is considered equivalent is unclear. Therefore, the options should be arranged according to the cultural conditions of the main target country."
|
3760 |
+
msgstr ""
|
3761 |
+
|
3762 |
+
#: inc/view/customize/banner/Decision.php:1
|
3763 |
+
msgid "Service groups as bullet list"
|
3764 |
+
msgstr ""
|
3765 |
+
|
3766 |
+
#: inc/view/customize/banner/Decision.php:1
|
3767 |
+
msgid "Show service groups as bullet list"
|
3768 |
+
msgstr ""
|
3769 |
+
|
3770 |
#: inc/view/customize/banner/Decision.php:1
|
3771 |
msgid "Custom choice in first view"
|
3772 |
msgstr ""
|
3787 |
msgid "Text of \"Accept all\" changes when user changes selection"
|
3788 |
msgstr ""
|
3789 |
|
3790 |
+
#: inc/view/customize/banner/Decision.php:1
|
3791 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
3792 |
+
msgid "Save custom choices"
|
3793 |
+
msgstr ""
|
3794 |
+
|
3795 |
#: inc/view/customize/banner/Design.php:1
|
3796 |
#: inc/view/customize/banner/individual/Texts.php:1
|
3797 |
#: inc/view/customize/banner/Texts.php:1
|
3953 |
msgstr ""
|
3954 |
|
3955 |
#: inc/view/customize/banner/individual/Group.php:1
|
3956 |
+
msgid "Spacing between groups"
|
3957 |
msgstr ""
|
3958 |
|
3959 |
#: inc/view/customize/banner/individual/Group.php:1
|
3993 |
msgid "Texts"
|
3994 |
msgstr ""
|
3995 |
|
3996 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
3997 |
+
#: inc/view/customize/banner/Texts.php:1
|
3998 |
+
msgid "Use <code>{{privacyPolicy}}privacy policy{{/privacyPolicy}}</code> as a placeholder for the privacy policy link."
|
3999 |
+
msgstr ""
|
4000 |
+
|
4001 |
#: inc/view/customize/banner/individual/Texts.php:1
|
4002 |
msgid "\"Save\" button/link"
|
4003 |
msgstr ""
|
4011 |
msgstr ""
|
4012 |
|
4013 |
#: inc/view/customize/banner/individual/Texts.php:1
|
4014 |
+
#: inc/view/customize/banner/Texts.php:1
|
4015 |
+
msgid "We use cookies and similar technologies on our website and process your personal data (e.g. IP address), for example, to personalize content and ads, to integrate media from third-party providers or to analyze traffic on our website. Data processing may also happen as a result of cookies being set. We share this data with third parties that we name in the privacy settings."
|
4016 |
msgstr ""
|
4017 |
|
4018 |
#: inc/view/customize/banner/individual/Texts.php:1
|
4019 |
+
#: inc/view/customize/banner/Texts.php:1
|
4020 |
+
msgid "The data processing may take place with your consent or on the basis of a legitimate interest, which you can object to in the privacy settings. You have the right not to consent and to change or revoke your consent at a later time. For more information on the use of your data, please visit our {{privacyPolicy}}privacy policy{{/privacyPolicy}}."
|
4021 |
+
msgstr ""
|
4022 |
+
|
4023 |
+
#: inc/view/customize/banner/individual/Texts.php:1
|
4024 |
+
msgid "Below you will find an overview of all services used by this website. You can view detailed information about each service and agree to them individually or exercise your right to object."
|
4025 |
msgstr ""
|
4026 |
|
4027 |
#: inc/view/customize/banner/individual/Texts.php:1
|
4171 |
msgid "Age notice in content blocker"
|
4172 |
msgstr ""
|
4173 |
|
4174 |
+
#: inc/view/customize/banner/Texts.php:1
|
4175 |
+
msgid "List of services"
|
4176 |
+
msgstr ""
|
4177 |
+
|
4178 |
+
#: inc/view/customize/banner/Texts.php:1
|
4179 |
+
msgid "Naming of all services in first view"
|
4180 |
+
msgstr ""
|
4181 |
+
|
4182 |
+
#: inc/view/customize/banner/Texts.php:1
|
4183 |
+
msgid "Use <code>{{services}}</code> and <code>{{serviceGroups}}</code> as a placeholder for a list of services and groups."
|
4184 |
+
msgstr ""
|
4185 |
+
|
4186 |
#: inc/view/customize/banner/Texts.php:1
|
4187 |
msgid "Consent Forwarding"
|
4188 |
msgstr ""
|
4229 |
msgid "Age notice is currently disabled. Please navigate to %1$sSettings > Consent%2$s to activate it."
|
4230 |
msgstr ""
|
4231 |
|
4232 |
+
#. translators:
|
4233 |
+
#: inc/view/customize/banner/Texts.php:1
|
4234 |
+
msgid "Naming of all services in first view is currently disabled. Please navigate to %1$sSettings > Consent%2$s to activate it."
|
4235 |
+
msgstr ""
|
4236 |
+
|
4237 |
#. translators:
|
4238 |
#: inc/view/customize/banner/Texts.php:1
|
4239 |
msgid "Consent Forwarding is currently disabled. Please navigate to %1$sSettings > Multisite / Consent Forwarding%2$s to activate it."
|
4244 |
msgstr ""
|
4245 |
|
4246 |
#: inc/view/customize/banner/Texts.php:1
|
4247 |
+
msgid "Set privacy settings individually"
|
4248 |
msgstr ""
|
4249 |
|
4250 |
#: inc/view/customize/banner/Texts.php:1
|
4259 |
msgid "You are under 16 years old? Unfortunately, you are not permitted to consent to this service to view this content. Please ask your parents or guardians to agree to the service with you!"
|
4260 |
msgstr ""
|
4261 |
|
4262 |
+
#: inc/view/customize/banner/Texts.php:1
|
4263 |
+
msgid "By accepting all services, you allow {{services}} to be loaded. These services are divided into groups {{serviceGroups}} according to their purpose (belonging marked with superscript numbers)."
|
4264 |
+
msgstr ""
|
4265 |
+
|
4266 |
#: inc/view/customize/banner/Texts.php:1
|
4267 |
msgid "Your consent is also applicable on {{websites}}."
|
4268 |
msgstr ""
|
public/dist/191.lite.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[191],{8122:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="LeftOutlined";var l=a.forwardRef(o)},4632:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="RightOutlined";var l=a.forwardRef(o)},3735:function(e,t,n){n.d(t,{Z:function(){return g}});var a=n(63),r=n(4741),c=n(7363),o=n(2286),l=n.n(o),i=n(733),s=n(4178),u=function(e){var t=e.prefixCls,n=e.className,o=e.hoverable,i=void 0===o||o,u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","hoverable"]);return c.createElement(s.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),s=l()("".concat(o,"-grid"),n,(0,a.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,r.Z)({},u,{className:s}))}))},p=n(9440),m=n(5489),d=n(8503),h=n(8533),f=function(e){var t,n,o,f=c.useContext(s.E_),g=f.getPrefixCls,v=f.direction,y=c.useContext(h.Z),b=e.prefixCls,x=e.className,E=e.extra,C=e.headStyle,N=void 0===C?{}:C,Z=e.bodyStyle,P=void 0===Z?{}:Z,S=e.title,O=e.loading,k=e.bordered,I=void 0===k||k,w=e.size,z=e.type,j=e.cover,T=e.actions,_=e.tabList,K=e.children,V=e.activeTabKey,L=e.defaultActiveTabKey,M=e.tabBarExtraContent,B=e.hoverable,J=e.tabProps,R=void 0===J?{}:J,D=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),G=g("card",b),U=0===P.padding||"0px"===P.padding?{padding:24}:void 0,A=c.createElement("div",{className:"".concat(G,"-loading-block")}),q=c.createElement("div",{className:"".concat(G,"-loading-content"),style:U},c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:22},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:8},A),c.createElement(d.Z,{span:15},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:6},A),c.createElement(d.Z,{span:18},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:13},A),c.createElement(d.Z,{span:9},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:4},A),c.createElement(d.Z,{span:3},A),c.createElement(d.Z,{span:16},A))),H=void 0!==V,Q=(0,r.Z)((0,r.Z)({},R),(t={},(0,a.Z)(t,H?"activeKey":"defaultActiveKey",H?V:L),(0,a.Z)(t,"tabBarExtraContent",M),t)),W=_&&_.length?c.createElement(p.Z,(0,r.Z)({size:"large"},Q,{className:"".concat(G,"-head-tabs"),onChange:function(t){var n;null===(n=e.onTabChange)||void 0===n||n.call(e,t)}}),_.map((function(e){return c.createElement(p.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(S||E||W)&&(o=c.createElement("div",{className:"".concat(G,"-head"),style:N},c.createElement("div",{className:"".concat(G,"-head-wrapper")},S&&c.createElement("div",{className:"".concat(G,"-head-title")},S),E&&c.createElement("div",{className:"".concat(G,"-extra")},E)),W));var F,Y=j?c.createElement("div",{className:"".concat(G,"-cover")},j):null,X=c.createElement("div",{className:"".concat(G,"-body"),style:P},O?q:K),$=T&&T.length?c.createElement("ul",{className:"".concat(G,"-actions")},function(e){return e.map((function(t,n){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},c.createElement("span",null,t))}))}(T)):null,ee=(0,i.Z)(D,["onTabChange"]),te=w||y,ne=l()(G,(n={},(0,a.Z)(n,"".concat(G,"-loading"),O),(0,a.Z)(n,"".concat(G,"-bordered"),I),(0,a.Z)(n,"".concat(G,"-hoverable"),B),(0,a.Z)(n,"".concat(G,"-contain-grid"),(c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===u&&(F=!0)})),F)),(0,a.Z)(n,"".concat(G,"-contain-tabs"),_&&_.length),(0,a.Z)(n,"".concat(G,"-").concat(te),te),(0,a.Z)(n,"".concat(G,"-type-").concat(z),!!z),(0,a.Z)(n,"".concat(G,"-rtl"),"rtl"===v),n),x);return c.createElement("div",(0,r.Z)({},ee,{className:ne}),o,Y,X,$)};f.Grid=u,f.Meta=function(e){return c.createElement(s.C,null,(function(t){var n=t.getPrefixCls,a=e.prefixCls,o=e.className,i=e.avatar,s=e.title,u=e.description,p=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","avatar","title","description"]),m=n("card",a),d=l()("".concat(m,"-meta"),o),h=i?c.createElement("div",{className:"".concat(m,"-meta-avatar")},i):null,f=s?c.createElement("div",{className:"".concat(m,"-meta-title")},s):null,g=u?c.createElement("div",{className:"".concat(m,"-meta-description")},u):null,v=f||g?c.createElement("div",{className:"".concat(m,"-meta-detail")},f,g):null;return c.createElement("div",(0,r.Z)({},p,{className:d}),h,v)}))};var g=f},5806:function(e,t,n){var a=n(7228),r=n(7363),c=n(5e3);t.Z=function(){var e=(0,r.useState)({}),t=(0,a.Z)(e,2),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=c.ZP.subscribe((function(e){o(e)}));return function(){return c.ZP.unsubscribe(e)}}),[]),n}},9455:function(e,t,n){n.d(t,{ZM:function(){return C},ZP:function(){return Z}});var a=n(7870),r=n(4741),c=n(63),o=n(7228),l=n(3429),i=n(7363),s=n(2286),u=n.n(s),p=n(9591),m=n(5806),d=n(5e3),h=n(4178),f=n(754),g=n(9388),v=n(2275),y=n(8929),b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},x=function(e){var t,n=e.prefixCls,a=e.children,o=e.actions,l=e.extra,s=e.className,p=e.colStyle,m=b(e,["prefixCls","children","actions","extra","className","colStyle"]),d=i.useContext(C),f=d.grid,g=d.itemLayout,x=(0,i.useContext(h.E_).getPrefixCls)("list",n),E=o&&o.length>0&&i.createElement("ul",{className:"".concat(x,"-item-action"),key:"actions"},o.map((function(e,t){return i.createElement("li",{key:"".concat(x,"-item-action-").concat(t)},e,t!==o.length-1&&i.createElement("em",{className:"".concat(x,"-item-action-split")}))}))),N=f?"div":"li",Z=i.createElement(N,(0,r.Z)({},m,{className:u()("".concat(x,"-item"),(0,c.Z)({},"".concat(x,"-item-no-flex"),!("vertical"===g?l:(i.Children.forEach(a,(function(e){"string"==typeof e&&(t=!0)})),!(t&&i.Children.count(a)>1)))),s)}),"vertical"===g&&l?[i.createElement("div",{className:"".concat(x,"-item-main"),key:"content"},a,E),i.createElement("div",{className:"".concat(x,"-item-extra"),key:"extra"},l)]:[a,E,(0,y.Tm)(l,{key:"extra"})]);return f?i.createElement(v.Z,{flex:1,style:p},Z):Z};x.Meta=function(e){var t=e.prefixCls,n=e.className,a=e.avatar,c=e.title,o=e.description,l=b(e,["prefixCls","className","avatar","title","description"]),s=(0,i.useContext(h.E_).getPrefixCls)("list",t),p=u()("".concat(s,"-item-meta"),n),m=i.createElement("div",{className:"".concat(s,"-item-meta-content")},c&&i.createElement("h4",{className:"".concat(s,"-item-meta-title")},c),o&&i.createElement("div",{className:"".concat(s,"-item-meta-description")},o));return i.createElement("div",(0,r.Z)({},l,{className:p}),a&&i.createElement("div",{className:"".concat(s,"-item-meta-avatar")},a),(c||o)&&m)};var E=x,C=i.createContext({});function N(e){var t,n=e.pagination,s=void 0!==n&&n,v=e.prefixCls,y=e.bordered,b=void 0!==y&&y,x=e.split,E=void 0===x||x,N=e.className,Z=e.children,P=e.itemLayout,S=e.loadMore,O=e.grid,k=e.dataSource,I=void 0===k?[]:k,w=e.size,z=e.header,j=e.footer,T=e.loading,_=void 0!==T&&T,K=e.rowKey,V=e.renderItem,L=e.locale,M=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["pagination","prefixCls","bordered","split","className","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),B=s&&"object"===(0,l.Z)(s)?s:{},J=i.useState(B.defaultCurrent||1),R=(0,o.Z)(J,2),D=R[0],G=R[1],U=i.useState(B.defaultPageSize||10),A=(0,o.Z)(U,2),q=A[0],H=A[1],Q=i.useContext(h.E_),W=Q.getPrefixCls,F=Q.renderEmpty,Y=Q.direction,X={},$=function(e){return function(t,n){G(t),H(n),s&&s[e]&&s[e](t,n)}},ee=$("onChange"),te=$("onShowSizeChange"),ne=W("list",v),ae=_;"boolean"==typeof ae&&(ae={spinning:ae});var re=ae&&ae.spinning,ce="";switch(w){case"large":ce="lg";break;case"small":ce="sm"}var oe=u()(ne,(t={},(0,c.Z)(t,"".concat(ne,"-vertical"),"vertical"===P),(0,c.Z)(t,"".concat(ne,"-").concat(ce),ce),(0,c.Z)(t,"".concat(ne,"-split"),E),(0,c.Z)(t,"".concat(ne,"-bordered"),b),(0,c.Z)(t,"".concat(ne,"-loading"),re),(0,c.Z)(t,"".concat(ne,"-grid"),!!O),(0,c.Z)(t,"".concat(ne,"-something-after-last-item"),!!(S||s||j)),(0,c.Z)(t,"".concat(ne,"-rtl"),"rtl"===Y),t),N),le=(0,r.Z)((0,r.Z)((0,r.Z)({},{current:1,total:0}),{total:I.length,current:D,pageSize:q}),s||{}),ie=Math.ceil(le.total/le.pageSize);le.current>ie&&(le.current=ie);var se=s?i.createElement("div",{className:"".concat(ne,"-pagination")},i.createElement(f.Z,(0,r.Z)({},le,{onChange:ee,onShowSizeChange:te}))):null,ue=(0,a.Z)(I);s&&I.length>(le.current-1)*le.pageSize&&(ue=(0,a.Z)(I).splice((le.current-1)*le.pageSize,le.pageSize));var pe=(0,m.Z)(),me=i.useMemo((function(){for(var e=0;e<d.c4.length;e+=1){var t=d.c4[e];if(pe[t])return t}}),[pe]),de=i.useMemo((function(){if(O){var e=me&&O[me]?O[me]:O.column;return e?{width:"".concat(100/e,"%"),maxWidth:"".concat(100/e,"%")}:void 0}}),[null==O?void 0:O.column,me]),he=re&&i.createElement("div",{style:{minHeight:53}});if(ue.length>0){var fe=ue.map((function(e,t){return function(e,t){return V?((n="function"==typeof K?K(e):"string"==typeof K?e[K]:e.key)||(n="list-item-".concat(t)),X[t]=n,V(e,t)):null;var n}(e,t)})),ge=i.Children.map(fe,(function(e,t){return i.createElement("div",{key:X[t],style:de},e)}));he=O?i.createElement(g.Z,{gutter:O.gutter},ge):i.createElement("ul",{className:"".concat(ne,"-items")},fe)}else Z||re||(he=function(e,t){return i.createElement("div",{className:"".concat(e,"-empty-text")},L&&L.emptyText||t("List"))}(ne,F));var ve=le.position||"bottom";return i.createElement(C.Provider,{value:{grid:O,itemLayout:P}},i.createElement("div",(0,r.Z)({className:oe},M),("top"===ve||"both"===ve)&&se,z&&i.createElement("div",{className:"".concat(ne,"-header")},z),i.createElement(p.Z,ae,he,Z),j&&i.createElement("div",{className:"".concat(ne,"-footer")},j),S||("bottom"===ve||"both"===ve)&&se))}C.Consumer,N.Item=E;var Z=N},754:function(e,t,n){n.d(t,{Z:function(){return L}});var a=n(63),r=n(4741),c=n(7363),o=n.n(c),l=n(2711),i=n(6762),s=n(3340),u=n(3841),p=n(5952),m=n(2286),d=n.n(m),h=function(e){var t,n="".concat(e.rootPrefixCls,"-item"),r=d()(n,"".concat(n,"-").concat(e.page),(t={},(0,a.Z)(t,"".concat(n,"-active"),e.active),(0,a.Z)(t,e.className,!!e.className),(0,a.Z)(t,"".concat(n,"-disabled"),!e.page),t));return o().createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:function(){e.onClick(e.page)},onKeyPress:function(t){e.onKeyPress(t,e.onClick,e.page)},tabIndex:"0"},e.itemRender(e.page,"page",o().createElement("a",{rel:"nofollow"},e.page)))},f=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var a=arguments.length,r=new Array(a),c=0;c<a;c++)r[c]=arguments[c];return(e=t.call.apply(t,[this].concat(r))).state={goInputText:""},e.buildOptionText=function(t){return"".concat(t," ").concat(e.props.locale.items_per_page)},e.changeSize=function(t){e.props.changeSize(Number(t))},e.handleChange=function(t){e.setState({goInputText:t.target.value})},e.handleBlur=function(t){var n=e.props,a=n.goButton,r=n.quickGo,c=n.rootPrefixCls,o=e.state.goInputText;a||""===o||(e.setState({goInputText:""}),t.relatedTarget&&(t.relatedTarget.className.indexOf("".concat(c,"-item-link"))>=0||t.relatedTarget.className.indexOf("".concat(c,"-item"))>=0)||r(e.getValidValue()))},e.go=function(t){""!==e.state.goInputText&&(13!==t.keyCode&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return(0,s.Z)(n,[{key:"getValidValue",value:function(){var e=this.state.goInputText;return!e||isNaN(e)?void 0:Number(e)}},{key:"getPageSizeOptions",value:function(){var e=this.props,t=e.pageSize,n=e.pageSizeOptions;return n.some((function(e){return e.toString()===t.toString()}))?n:n.concat([t.toString()]).sort((function(e,t){return(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,a=t.locale,r=t.rootPrefixCls,c=t.changeSize,l=t.quickGo,i=t.goButton,s=t.selectComponentClass,u=t.buildOptionText,p=t.selectPrefixCls,m=t.disabled,d=this.state.goInputText,h="".concat(r,"-options"),f=s,g=null,v=null,y=null;if(!c&&!l)return null;var b=this.getPageSizeOptions();if(c&&f){var x=b.map((function(t,n){return o().createElement(f.Option,{key:n,value:t.toString()},(u||e.buildOptionText)(t))}));g=o().createElement(f,{disabled:m,prefixCls:p,showSearch:!1,className:"".concat(h,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||b[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},x)}return l&&(i&&(y="boolean"==typeof i?o().createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:m,className:"".concat(h,"-quick-jumper-button")},a.jump_to_confirm):o().createElement("span",{onClick:this.go,onKeyUp:this.go},i)),v=o().createElement("div",{className:"".concat(h,"-quick-jumper")},a.jump_to,o().createElement("input",{disabled:m,type:"text",value:d,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),a.page,y)),o().createElement("li",{className:"".concat(h)},g,v)}}]),n}(o().Component);f.defaultProps={pageSizeOptions:["10","20","50","100"]};var g=f;function v(){}function y(e,t,n){var a=void 0===e?t.pageSize:e;return Math.floor((n.total-1)/a)+1}var b=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(e){var a;(0,i.Z)(this,n),(a=t.call(this,e)).getJumpPrevPage=function(){return Math.max(1,a.state.current-(a.props.showLessItems?3:5))},a.getJumpNextPage=function(){return Math.min(y(void 0,a.state,a.props),a.state.current+(a.props.showLessItems?3:5))},a.getItemIcon=function(e,t){var n=a.props.prefixCls,r=e||o().createElement("button",{type:"button","aria-label":t,className:"".concat(n,"-item-link")});return"function"==typeof e&&(r=o().createElement(e,(0,l.Z)({},a.props))),r},a.savePaginationNode=function(e){a.paginationNode=e},a.isValid=function(e){return"number"==typeof(t=e)&&isFinite(t)&&Math.floor(t)===t&&e!==a.state.current;var t},a.shouldDisplayQuickJumper=function(){var e=a.props,t=e.showQuickJumper,n=e.pageSize;return!(e.total<=n)&&t},a.handleKeyDown=function(e){38!==e.keyCode&&40!==e.keyCode||e.preventDefault()},a.handleKeyUp=function(e){var t=a.getValidValue(e);t!==a.state.currentInputValue&&a.setState({currentInputValue:t}),13===e.keyCode?a.handleChange(t):38===e.keyCode?a.handleChange(t-1):40===e.keyCode&&a.handleChange(t+1)},a.changePageSize=function(e){var t=a.state.current,n=y(e,a.state,a.props);t=t>n?n:t,0===n&&(t=a.state.current),"number"==typeof e&&("pageSize"in a.props||a.setState({pageSize:e}),"current"in a.props||a.setState({current:t,currentInputValue:t})),a.props.onShowSizeChange(t,e),"onChange"in a.props&&a.props.onChange&&a.props.onChange(t,e)},a.handleChange=function(e){var t=a.props.disabled,n=e;if(a.isValid(n)&&!t){var r=y(void 0,a.state,a.props);n>r?n=r:n<1&&(n=1),"current"in a.props||a.setState({current:n,currentInputValue:n});var c=a.state.pageSize;return a.props.onChange(n,c),n}return a.state.current},a.prev=function(){a.hasPrev()&&a.handleChange(a.state.current-1)},a.next=function(){a.hasNext()&&a.handleChange(a.state.current+1)},a.jumpPrev=function(){a.handleChange(a.getJumpPrevPage())},a.jumpNext=function(){a.handleChange(a.getJumpNextPage())},a.hasPrev=function(){return a.state.current>1},a.hasNext=function(){return a.state.current<y(void 0,a.state,a.props)},a.runIfEnter=function(e,t){if("Enter"===e.key||13===e.charCode){for(var n=arguments.length,a=new Array(n>2?n-2:0),r=2;r<n;r++)a[r-2]=arguments[r];t.apply(void 0,a)}},a.runIfEnterPrev=function(e){a.runIfEnter(e,a.prev)},a.runIfEnterNext=function(e){a.runIfEnter(e,a.next)},a.runIfEnterJumpPrev=function(e){a.runIfEnter(e,a.jumpPrev)},a.runIfEnterJumpNext=function(e){a.runIfEnter(e,a.jumpNext)},a.handleGoTO=function(e){13!==e.keyCode&&"click"!==e.type||a.handleChange(a.state.currentInputValue)};var r=e.onChange!==v;"current"in e&&!r&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var c=e.defaultCurrent;"current"in e&&(c=e.current);var s=e.defaultPageSize;return"pageSize"in e&&(s=e.pageSize),c=Math.min(c,y(s,void 0,e)),a.state={current:c,currentInputValue:c,pageSize:s},a}return(0,s.Z)(n,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var a=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));a&&document.activeElement===a&&a.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=y(void 0,this.state,this.props),a=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?a:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,a=e.totalBoundaryShowSizeChanger;return void 0!==t?t:n>a}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,a=(0,t.itemRender)(e,"prev",this.getItemIcon(n,"prev page")),r=!this.hasPrev();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,a=(0,t.itemRender)(e,"next",this.getItemIcon(n,"next page")),r=!this.hasNext();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,l=t.className,i=t.style,s=t.disabled,u=t.hideOnSinglePage,p=t.total,m=t.locale,f=t.showQuickJumper,v=t.showLessItems,b=t.showTitle,x=t.showTotal,E=t.simple,C=t.itemRender,N=t.showPrevNextJumpers,Z=t.jumpPrevIcon,P=t.jumpNextIcon,S=t.selectComponentClass,O=t.selectPrefixCls,k=t.pageSizeOptions,I=this.state,w=I.current,z=I.pageSize,j=I.currentInputValue;if(!0===u&&p<=z)return null;var T=y(void 0,this.state,this.props),_=[],K=null,V=null,L=null,M=null,B=null,J=f&&f.goButton,R=v?1:2,D=w-1>0?w-1:0,G=w+1<T?w+1:T,U=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{});if(E)return J&&(B="boolean"==typeof J?o().createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},m.jump_to_confirm):o().createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},J),B=o().createElement("li",{title:b?"".concat(m.jump_to).concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},B)),o().createElement("ul",(0,r.Z)({className:d()(n,"".concat(n,"-simple"),(0,a.Z)({},"".concat(n,"-disabled"),s),l),style:i,ref:this.savePaginationNode},U),o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},this.renderPrev(D)),o().createElement("li",{title:b?"".concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},o().createElement("input",{type:"text",value:j,disabled:s,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:"3"}),o().createElement("span",{className:"".concat(n,"-slash")},"/"),T),o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(G)),B);if(T<=3+2*R){var A={locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:b,itemRender:C};T||_.push(o().createElement(h,(0,r.Z)({},A,{key:"noPager",page:T,className:"".concat(n,"-disabled")})));for(var q=1;q<=T;q+=1){var H=w===q;_.push(o().createElement(h,(0,r.Z)({},A,{key:q,page:q,active:H})))}}else{var Q=v?m.prev_3:m.prev_5,W=v?m.next_3:m.next_5;N&&(K=o().createElement("li",{title:b?Q:null,key:"prev",onClick:this.jumpPrev,tabIndex:"0",onKeyPress:this.runIfEnterJumpPrev,className:d()("".concat(n,"-jump-prev"),(0,a.Z)({},"".concat(n,"-jump-prev-custom-icon"),!!Z))},C(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(Z,"prev page"))),V=o().createElement("li",{title:b?W:null,key:"next",tabIndex:"0",onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:d()("".concat(n,"-jump-next"),(0,a.Z)({},"".concat(n,"-jump-next-custom-icon"),!!P))},C(this.getJumpNextPage(),"jump-next",this.getItemIcon(P,"next page")))),M=o().createElement(h,{locale:m,last:!0,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:T,page:T,active:!1,showTitle:b,itemRender:C}),L=o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:b,itemRender:C});var F=Math.max(1,w-R),Y=Math.min(w+R,T);w-1<=R&&(Y=1+2*R),T-w<=R&&(F=T-2*R);for(var X=F;X<=Y;X+=1){var $=w===X;_.push(o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:X,page:X,active:$,showTitle:b,itemRender:C}))}w-1>=2*R&&3!==w&&(_[0]=(0,c.cloneElement)(_[0],{className:"".concat(n,"-item-after-jump-prev")}),_.unshift(K)),T-w>=2*R&&w!==T-2&&(_[_.length-1]=(0,c.cloneElement)(_[_.length-1],{className:"".concat(n,"-item-before-jump-next")}),_.push(V)),1!==F&&_.unshift(L),Y!==T&&_.push(M)}var ee=null;x&&(ee=o().createElement("li",{className:"".concat(n,"-total-text")},x(p,[0===p?0:(w-1)*z+1,w*z>p?p:w*z])));var te=!this.hasPrev()||!T,ne=!this.hasNext()||!T;return o().createElement("ul",(0,r.Z)({className:d()(n,l,(0,a.Z)({},"".concat(n,"-disabled"),s)),style:i,unselectable:"unselectable",ref:this.savePaginationNode},U),ee,o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:te?null:0,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),te)),"aria-disabled":te},this.renderPrev(D)),_,o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:ne?null:0,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),ne)),"aria-disabled":ne},this.renderNext(G)),o().createElement(g,{disabled:s,locale:m,rootPrefixCls:n,selectComponentClass:S,selectPrefixCls:O,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:w,pageSize:z,pageSizeOptions:k,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:J}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var a=t.current,r=y(e.pageSize,t,e);a=a>r?r:a,"current"in e||(n.current=a,n.currentInputValue=a),n.pageSize=e.pageSize}return n}}]),n}(o().Component);b.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:v,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:v,locale:{items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"},style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var x=b,E=n(2191),C=n(8122),N=n(4632),Z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},P=n(3751),S=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:Z}))};S.displayName="DoubleLeftOutlined";var O=c.forwardRef(S),k={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},I=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:k}))};I.displayName="DoubleRightOutlined";var w=c.forwardRef(I),z=n(3828),j=function(e){return c.createElement(z.Z,(0,r.Z)({size:"small"},e))};j.Option=z.Z.Option;var T=j,_=n(7416),K=n(4178),V=n(5806),L=function(e){var t=e.prefixCls,n=e.selectPrefixCls,o=e.className,l=e.size,i=e.locale,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","selectPrefixCls","className","size","locale"]),u=(0,V.Z)().xs,p=c.useContext(K.E_),m=p.getPrefixCls,h=p.direction,f=m("pagination",t),g=function(e){var t=(0,r.Z)((0,r.Z)({},e),i),p="small"===l||!(!u||l||!s.responsive),g=m("select",n),v=d()((0,a.Z)({mini:p},"".concat(f,"-rtl"),"rtl"===h),o);return c.createElement(x,(0,r.Z)({},s,{prefixCls:f,selectPrefixCls:g},function(){var e=c.createElement("span",{className:"".concat(f,"-item-ellipsis")},"•••"),t=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(C.Z,null)),n=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(N.Z,null)),a=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(O,{className:"".concat(f,"-item-link-icon")}),e)),r=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(w,{className:"".concat(f,"-item-link-icon")}),e));if("rtl"===h){var o=[n,t];t=o[0],n=o[1];var l=[r,a];a=l[0],r=l[1]}return{prevIcon:t,nextIcon:n,jumpPrevIcon:a,jumpNextIcon:r}}(),{className:v,selectComponentClass:p?T:z.Z,locale:t}))};return c.createElement(_.Z,{componentName:"Pagination",defaultLocale:E.Z},g)}}}]);
|
2 |
-
//# sourceMappingURL=191.lite.js.map?ver=
|
1 |
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[191],{8122:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="LeftOutlined";var l=a.forwardRef(o)},4632:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(7363),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},c=n(3751),o=function(e,t){return a.createElement(c.Z,Object.assign({},e,{ref:t,icon:r}))};o.displayName="RightOutlined";var l=a.forwardRef(o)},3735:function(e,t,n){n.d(t,{Z:function(){return g}});var a=n(63),r=n(4741),c=n(7363),o=n(2286),l=n.n(o),i=n(733),s=n(4178),u=function(e){var t=e.prefixCls,n=e.className,o=e.hoverable,i=void 0===o||o,u=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","hoverable"]);return c.createElement(s.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),s=l()("".concat(o,"-grid"),n,(0,a.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,r.Z)({},u,{className:s}))}))},p=n(9440),m=n(5489),d=n(8503),h=n(8533),f=function(e){var t,n,o,f=c.useContext(s.E_),g=f.getPrefixCls,v=f.direction,y=c.useContext(h.Z),b=e.prefixCls,x=e.className,E=e.extra,C=e.headStyle,N=void 0===C?{}:C,Z=e.bodyStyle,P=void 0===Z?{}:Z,S=e.title,O=e.loading,k=e.bordered,I=void 0===k||k,w=e.size,z=e.type,j=e.cover,T=e.actions,_=e.tabList,K=e.children,V=e.activeTabKey,L=e.defaultActiveTabKey,M=e.tabBarExtraContent,B=e.hoverable,J=e.tabProps,R=void 0===J?{}:J,D=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),G=g("card",b),U=0===P.padding||"0px"===P.padding?{padding:24}:void 0,A=c.createElement("div",{className:"".concat(G,"-loading-block")}),q=c.createElement("div",{className:"".concat(G,"-loading-content"),style:U},c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:22},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:8},A),c.createElement(d.Z,{span:15},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:6},A),c.createElement(d.Z,{span:18},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:13},A),c.createElement(d.Z,{span:9},A)),c.createElement(m.Z,{gutter:8},c.createElement(d.Z,{span:4},A),c.createElement(d.Z,{span:3},A),c.createElement(d.Z,{span:16},A))),H=void 0!==V,Q=(0,r.Z)((0,r.Z)({},R),(t={},(0,a.Z)(t,H?"activeKey":"defaultActiveKey",H?V:L),(0,a.Z)(t,"tabBarExtraContent",M),t)),W=_&&_.length?c.createElement(p.Z,(0,r.Z)({size:"large"},Q,{className:"".concat(G,"-head-tabs"),onChange:function(t){var n;null===(n=e.onTabChange)||void 0===n||n.call(e,t)}}),_.map((function(e){return c.createElement(p.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(S||E||W)&&(o=c.createElement("div",{className:"".concat(G,"-head"),style:N},c.createElement("div",{className:"".concat(G,"-head-wrapper")},S&&c.createElement("div",{className:"".concat(G,"-head-title")},S),E&&c.createElement("div",{className:"".concat(G,"-extra")},E)),W));var F,Y=j?c.createElement("div",{className:"".concat(G,"-cover")},j):null,X=c.createElement("div",{className:"".concat(G,"-body"),style:P},O?q:K),$=T&&T.length?c.createElement("ul",{className:"".concat(G,"-actions")},function(e){return e.map((function(t,n){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},c.createElement("span",null,t))}))}(T)):null,ee=(0,i.Z)(D,["onTabChange"]),te=w||y,ne=l()(G,(n={},(0,a.Z)(n,"".concat(G,"-loading"),O),(0,a.Z)(n,"".concat(G,"-bordered"),I),(0,a.Z)(n,"".concat(G,"-hoverable"),B),(0,a.Z)(n,"".concat(G,"-contain-grid"),(c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===u&&(F=!0)})),F)),(0,a.Z)(n,"".concat(G,"-contain-tabs"),_&&_.length),(0,a.Z)(n,"".concat(G,"-").concat(te),te),(0,a.Z)(n,"".concat(G,"-type-").concat(z),!!z),(0,a.Z)(n,"".concat(G,"-rtl"),"rtl"===v),n),x);return c.createElement("div",(0,r.Z)({},ee,{className:ne}),o,Y,X,$)};f.Grid=u,f.Meta=function(e){return c.createElement(s.C,null,(function(t){var n=t.getPrefixCls,a=e.prefixCls,o=e.className,i=e.avatar,s=e.title,u=e.description,p=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","className","avatar","title","description"]),m=n("card",a),d=l()("".concat(m,"-meta"),o),h=i?c.createElement("div",{className:"".concat(m,"-meta-avatar")},i):null,f=s?c.createElement("div",{className:"".concat(m,"-meta-title")},s):null,g=u?c.createElement("div",{className:"".concat(m,"-meta-description")},u):null,v=f||g?c.createElement("div",{className:"".concat(m,"-meta-detail")},f,g):null;return c.createElement("div",(0,r.Z)({},p,{className:d}),h,v)}))};var g=f},5806:function(e,t,n){var a=n(7228),r=n(7363),c=n(5e3);t.Z=function(){var e=(0,r.useState)({}),t=(0,a.Z)(e,2),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=c.ZP.subscribe((function(e){o(e)}));return function(){return c.ZP.unsubscribe(e)}}),[]),n}},9455:function(e,t,n){n.d(t,{ZM:function(){return C},ZP:function(){return Z}});var a=n(7870),r=n(4741),c=n(63),o=n(7228),l=n(3429),i=n(7363),s=n(2286),u=n.n(s),p=n(9591),m=n(5806),d=n(5e3),h=n(4178),f=n(754),g=n(9388),v=n(2275),y=n(8929),b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},x=function(e){var t,n=e.prefixCls,a=e.children,o=e.actions,l=e.extra,s=e.className,p=e.colStyle,m=b(e,["prefixCls","children","actions","extra","className","colStyle"]),d=i.useContext(C),f=d.grid,g=d.itemLayout,x=(0,i.useContext(h.E_).getPrefixCls)("list",n),E=o&&o.length>0&&i.createElement("ul",{className:"".concat(x,"-item-action"),key:"actions"},o.map((function(e,t){return i.createElement("li",{key:"".concat(x,"-item-action-").concat(t)},e,t!==o.length-1&&i.createElement("em",{className:"".concat(x,"-item-action-split")}))}))),N=f?"div":"li",Z=i.createElement(N,(0,r.Z)({},m,{className:u()("".concat(x,"-item"),(0,c.Z)({},"".concat(x,"-item-no-flex"),!("vertical"===g?l:(i.Children.forEach(a,(function(e){"string"==typeof e&&(t=!0)})),!(t&&i.Children.count(a)>1)))),s)}),"vertical"===g&&l?[i.createElement("div",{className:"".concat(x,"-item-main"),key:"content"},a,E),i.createElement("div",{className:"".concat(x,"-item-extra"),key:"extra"},l)]:[a,E,(0,y.Tm)(l,{key:"extra"})]);return f?i.createElement(v.Z,{flex:1,style:p},Z):Z};x.Meta=function(e){var t=e.prefixCls,n=e.className,a=e.avatar,c=e.title,o=e.description,l=b(e,["prefixCls","className","avatar","title","description"]),s=(0,i.useContext(h.E_).getPrefixCls)("list",t),p=u()("".concat(s,"-item-meta"),n),m=i.createElement("div",{className:"".concat(s,"-item-meta-content")},c&&i.createElement("h4",{className:"".concat(s,"-item-meta-title")},c),o&&i.createElement("div",{className:"".concat(s,"-item-meta-description")},o));return i.createElement("div",(0,r.Z)({},l,{className:p}),a&&i.createElement("div",{className:"".concat(s,"-item-meta-avatar")},a),(c||o)&&m)};var E=x,C=i.createContext({});function N(e){var t,n=e.pagination,s=void 0!==n&&n,v=e.prefixCls,y=e.bordered,b=void 0!==y&&y,x=e.split,E=void 0===x||x,N=e.className,Z=e.children,P=e.itemLayout,S=e.loadMore,O=e.grid,k=e.dataSource,I=void 0===k?[]:k,w=e.size,z=e.header,j=e.footer,T=e.loading,_=void 0!==T&&T,K=e.rowKey,V=e.renderItem,L=e.locale,M=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["pagination","prefixCls","bordered","split","className","children","itemLayout","loadMore","grid","dataSource","size","header","footer","loading","rowKey","renderItem","locale"]),B=s&&"object"===(0,l.Z)(s)?s:{},J=i.useState(B.defaultCurrent||1),R=(0,o.Z)(J,2),D=R[0],G=R[1],U=i.useState(B.defaultPageSize||10),A=(0,o.Z)(U,2),q=A[0],H=A[1],Q=i.useContext(h.E_),W=Q.getPrefixCls,F=Q.renderEmpty,Y=Q.direction,X={},$=function(e){return function(t,n){G(t),H(n),s&&s[e]&&s[e](t,n)}},ee=$("onChange"),te=$("onShowSizeChange"),ne=W("list",v),ae=_;"boolean"==typeof ae&&(ae={spinning:ae});var re=ae&&ae.spinning,ce="";switch(w){case"large":ce="lg";break;case"small":ce="sm"}var oe=u()(ne,(t={},(0,c.Z)(t,"".concat(ne,"-vertical"),"vertical"===P),(0,c.Z)(t,"".concat(ne,"-").concat(ce),ce),(0,c.Z)(t,"".concat(ne,"-split"),E),(0,c.Z)(t,"".concat(ne,"-bordered"),b),(0,c.Z)(t,"".concat(ne,"-loading"),re),(0,c.Z)(t,"".concat(ne,"-grid"),!!O),(0,c.Z)(t,"".concat(ne,"-something-after-last-item"),!!(S||s||j)),(0,c.Z)(t,"".concat(ne,"-rtl"),"rtl"===Y),t),N),le=(0,r.Z)((0,r.Z)((0,r.Z)({},{current:1,total:0}),{total:I.length,current:D,pageSize:q}),s||{}),ie=Math.ceil(le.total/le.pageSize);le.current>ie&&(le.current=ie);var se=s?i.createElement("div",{className:"".concat(ne,"-pagination")},i.createElement(f.Z,(0,r.Z)({},le,{onChange:ee,onShowSizeChange:te}))):null,ue=(0,a.Z)(I);s&&I.length>(le.current-1)*le.pageSize&&(ue=(0,a.Z)(I).splice((le.current-1)*le.pageSize,le.pageSize));var pe=(0,m.Z)(),me=i.useMemo((function(){for(var e=0;e<d.c4.length;e+=1){var t=d.c4[e];if(pe[t])return t}}),[pe]),de=i.useMemo((function(){if(O){var e=me&&O[me]?O[me]:O.column;return e?{width:"".concat(100/e,"%"),maxWidth:"".concat(100/e,"%")}:void 0}}),[null==O?void 0:O.column,me]),he=re&&i.createElement("div",{style:{minHeight:53}});if(ue.length>0){var fe=ue.map((function(e,t){return function(e,t){return V?((n="function"==typeof K?K(e):"string"==typeof K?e[K]:e.key)||(n="list-item-".concat(t)),X[t]=n,V(e,t)):null;var n}(e,t)})),ge=i.Children.map(fe,(function(e,t){return i.createElement("div",{key:X[t],style:de},e)}));he=O?i.createElement(g.Z,{gutter:O.gutter},ge):i.createElement("ul",{className:"".concat(ne,"-items")},fe)}else Z||re||(he=function(e,t){return i.createElement("div",{className:"".concat(e,"-empty-text")},L&&L.emptyText||t("List"))}(ne,F));var ve=le.position||"bottom";return i.createElement(C.Provider,{value:{grid:O,itemLayout:P}},i.createElement("div",(0,r.Z)({className:oe},M),("top"===ve||"both"===ve)&&se,z&&i.createElement("div",{className:"".concat(ne,"-header")},z),i.createElement(p.Z,ae,he,Z),j&&i.createElement("div",{className:"".concat(ne,"-footer")},j),S||("bottom"===ve||"both"===ve)&&se))}C.Consumer,N.Item=E;var Z=N},754:function(e,t,n){n.d(t,{Z:function(){return L}});var a=n(63),r=n(4741),c=n(7363),o=n.n(c),l=n(2711),i=n(6762),s=n(3340),u=n(3841),p=n(5952),m=n(2286),d=n.n(m),h=function(e){var t,n="".concat(e.rootPrefixCls,"-item"),r=d()(n,"".concat(n,"-").concat(e.page),(t={},(0,a.Z)(t,"".concat(n,"-active"),e.active),(0,a.Z)(t,e.className,!!e.className),(0,a.Z)(t,"".concat(n,"-disabled"),!e.page),t));return o().createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:function(){e.onClick(e.page)},onKeyPress:function(t){e.onKeyPress(t,e.onClick,e.page)},tabIndex:"0"},e.itemRender(e.page,"page",o().createElement("a",{rel:"nofollow"},e.page)))},f=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var a=arguments.length,r=new Array(a),c=0;c<a;c++)r[c]=arguments[c];return(e=t.call.apply(t,[this].concat(r))).state={goInputText:""},e.buildOptionText=function(t){return"".concat(t," ").concat(e.props.locale.items_per_page)},e.changeSize=function(t){e.props.changeSize(Number(t))},e.handleChange=function(t){e.setState({goInputText:t.target.value})},e.handleBlur=function(t){var n=e.props,a=n.goButton,r=n.quickGo,c=n.rootPrefixCls,o=e.state.goInputText;a||""===o||(e.setState({goInputText:""}),t.relatedTarget&&(t.relatedTarget.className.indexOf("".concat(c,"-item-link"))>=0||t.relatedTarget.className.indexOf("".concat(c,"-item"))>=0)||r(e.getValidValue()))},e.go=function(t){""!==e.state.goInputText&&(13!==t.keyCode&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return(0,s.Z)(n,[{key:"getValidValue",value:function(){var e=this.state.goInputText;return!e||isNaN(e)?void 0:Number(e)}},{key:"getPageSizeOptions",value:function(){var e=this.props,t=e.pageSize,n=e.pageSizeOptions;return n.some((function(e){return e.toString()===t.toString()}))?n:n.concat([t.toString()]).sort((function(e,t){return(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,a=t.locale,r=t.rootPrefixCls,c=t.changeSize,l=t.quickGo,i=t.goButton,s=t.selectComponentClass,u=t.buildOptionText,p=t.selectPrefixCls,m=t.disabled,d=this.state.goInputText,h="".concat(r,"-options"),f=s,g=null,v=null,y=null;if(!c&&!l)return null;var b=this.getPageSizeOptions();if(c&&f){var x=b.map((function(t,n){return o().createElement(f.Option,{key:n,value:t.toString()},(u||e.buildOptionText)(t))}));g=o().createElement(f,{disabled:m,prefixCls:p,showSearch:!1,className:"".concat(h,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||b[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},x)}return l&&(i&&(y="boolean"==typeof i?o().createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:m,className:"".concat(h,"-quick-jumper-button")},a.jump_to_confirm):o().createElement("span",{onClick:this.go,onKeyUp:this.go},i)),v=o().createElement("div",{className:"".concat(h,"-quick-jumper")},a.jump_to,o().createElement("input",{disabled:m,type:"text",value:d,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),a.page,y)),o().createElement("li",{className:"".concat(h)},g,v)}}]),n}(o().Component);f.defaultProps={pageSizeOptions:["10","20","50","100"]};var g=f;function v(){}function y(e,t,n){var a=void 0===e?t.pageSize:e;return Math.floor((n.total-1)/a)+1}var b=function(e){(0,u.Z)(n,e);var t=(0,p.Z)(n);function n(e){var a;(0,i.Z)(this,n),(a=t.call(this,e)).getJumpPrevPage=function(){return Math.max(1,a.state.current-(a.props.showLessItems?3:5))},a.getJumpNextPage=function(){return Math.min(y(void 0,a.state,a.props),a.state.current+(a.props.showLessItems?3:5))},a.getItemIcon=function(e,t){var n=a.props.prefixCls,r=e||o().createElement("button",{type:"button","aria-label":t,className:"".concat(n,"-item-link")});return"function"==typeof e&&(r=o().createElement(e,(0,l.Z)({},a.props))),r},a.savePaginationNode=function(e){a.paginationNode=e},a.isValid=function(e){return"number"==typeof(t=e)&&isFinite(t)&&Math.floor(t)===t&&e!==a.state.current;var t},a.shouldDisplayQuickJumper=function(){var e=a.props,t=e.showQuickJumper,n=e.pageSize;return!(e.total<=n)&&t},a.handleKeyDown=function(e){38!==e.keyCode&&40!==e.keyCode||e.preventDefault()},a.handleKeyUp=function(e){var t=a.getValidValue(e);t!==a.state.currentInputValue&&a.setState({currentInputValue:t}),13===e.keyCode?a.handleChange(t):38===e.keyCode?a.handleChange(t-1):40===e.keyCode&&a.handleChange(t+1)},a.changePageSize=function(e){var t=a.state.current,n=y(e,a.state,a.props);t=t>n?n:t,0===n&&(t=a.state.current),"number"==typeof e&&("pageSize"in a.props||a.setState({pageSize:e}),"current"in a.props||a.setState({current:t,currentInputValue:t})),a.props.onShowSizeChange(t,e),"onChange"in a.props&&a.props.onChange&&a.props.onChange(t,e)},a.handleChange=function(e){var t=a.props.disabled,n=e;if(a.isValid(n)&&!t){var r=y(void 0,a.state,a.props);n>r?n=r:n<1&&(n=1),"current"in a.props||a.setState({current:n,currentInputValue:n});var c=a.state.pageSize;return a.props.onChange(n,c),n}return a.state.current},a.prev=function(){a.hasPrev()&&a.handleChange(a.state.current-1)},a.next=function(){a.hasNext()&&a.handleChange(a.state.current+1)},a.jumpPrev=function(){a.handleChange(a.getJumpPrevPage())},a.jumpNext=function(){a.handleChange(a.getJumpNextPage())},a.hasPrev=function(){return a.state.current>1},a.hasNext=function(){return a.state.current<y(void 0,a.state,a.props)},a.runIfEnter=function(e,t){if("Enter"===e.key||13===e.charCode){for(var n=arguments.length,a=new Array(n>2?n-2:0),r=2;r<n;r++)a[r-2]=arguments[r];t.apply(void 0,a)}},a.runIfEnterPrev=function(e){a.runIfEnter(e,a.prev)},a.runIfEnterNext=function(e){a.runIfEnter(e,a.next)},a.runIfEnterJumpPrev=function(e){a.runIfEnter(e,a.jumpPrev)},a.runIfEnterJumpNext=function(e){a.runIfEnter(e,a.jumpNext)},a.handleGoTO=function(e){13!==e.keyCode&&"click"!==e.type||a.handleChange(a.state.currentInputValue)};var r=e.onChange!==v;"current"in e&&!r&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var c=e.defaultCurrent;"current"in e&&(c=e.current);var s=e.defaultPageSize;return"pageSize"in e&&(s=e.pageSize),c=Math.min(c,y(s,void 0,e)),a.state={current:c,currentInputValue:c,pageSize:s},a}return(0,s.Z)(n,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var a=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));a&&document.activeElement===a&&a.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=y(void 0,this.state,this.props),a=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?a:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,a=e.totalBoundaryShowSizeChanger;return void 0!==t?t:n>a}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,a=(0,t.itemRender)(e,"prev",this.getItemIcon(n,"prev page")),r=!this.hasPrev();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,a=(0,t.itemRender)(e,"next",this.getItemIcon(n,"next page")),r=!this.hasNext();return(0,c.isValidElement)(a)?(0,c.cloneElement)(a,{disabled:r}):a}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,l=t.className,i=t.style,s=t.disabled,u=t.hideOnSinglePage,p=t.total,m=t.locale,f=t.showQuickJumper,v=t.showLessItems,b=t.showTitle,x=t.showTotal,E=t.simple,C=t.itemRender,N=t.showPrevNextJumpers,Z=t.jumpPrevIcon,P=t.jumpNextIcon,S=t.selectComponentClass,O=t.selectPrefixCls,k=t.pageSizeOptions,I=this.state,w=I.current,z=I.pageSize,j=I.currentInputValue;if(!0===u&&p<=z)return null;var T=y(void 0,this.state,this.props),_=[],K=null,V=null,L=null,M=null,B=null,J=f&&f.goButton,R=v?1:2,D=w-1>0?w-1:0,G=w+1<T?w+1:T,U=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{});if(E)return J&&(B="boolean"==typeof J?o().createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},m.jump_to_confirm):o().createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},J),B=o().createElement("li",{title:b?"".concat(m.jump_to).concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},B)),o().createElement("ul",(0,r.Z)({className:d()(n,"".concat(n,"-simple"),(0,a.Z)({},"".concat(n,"-disabled"),s),l),style:i,ref:this.savePaginationNode},U),o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},this.renderPrev(D)),o().createElement("li",{title:b?"".concat(w,"/").concat(T):null,className:"".concat(n,"-simple-pager")},o().createElement("input",{type:"text",value:j,disabled:s,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:"3"}),o().createElement("span",{className:"".concat(n,"-slash")},"/"),T),o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(G)),B);if(T<=3+2*R){var A={locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:b,itemRender:C};T||_.push(o().createElement(h,(0,r.Z)({},A,{key:"noPager",page:T,className:"".concat(n,"-disabled")})));for(var q=1;q<=T;q+=1){var H=w===q;_.push(o().createElement(h,(0,r.Z)({},A,{key:q,page:q,active:H})))}}else{var Q=v?m.prev_3:m.prev_5,W=v?m.next_3:m.next_5;N&&(K=o().createElement("li",{title:b?Q:null,key:"prev",onClick:this.jumpPrev,tabIndex:"0",onKeyPress:this.runIfEnterJumpPrev,className:d()("".concat(n,"-jump-prev"),(0,a.Z)({},"".concat(n,"-jump-prev-custom-icon"),!!Z))},C(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(Z,"prev page"))),V=o().createElement("li",{title:b?W:null,key:"next",tabIndex:"0",onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:d()("".concat(n,"-jump-next"),(0,a.Z)({},"".concat(n,"-jump-next-custom-icon"),!!P))},C(this.getJumpNextPage(),"jump-next",this.getItemIcon(P,"next page")))),M=o().createElement(h,{locale:m,last:!0,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:T,page:T,active:!1,showTitle:b,itemRender:C}),L=o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:b,itemRender:C});var F=Math.max(1,w-R),Y=Math.min(w+R,T);w-1<=R&&(Y=1+2*R),T-w<=R&&(F=T-2*R);for(var X=F;X<=Y;X+=1){var $=w===X;_.push(o().createElement(h,{locale:m,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:X,page:X,active:$,showTitle:b,itemRender:C}))}w-1>=2*R&&3!==w&&(_[0]=(0,c.cloneElement)(_[0],{className:"".concat(n,"-item-after-jump-prev")}),_.unshift(K)),T-w>=2*R&&w!==T-2&&(_[_.length-1]=(0,c.cloneElement)(_[_.length-1],{className:"".concat(n,"-item-before-jump-next")}),_.push(V)),1!==F&&_.unshift(L),Y!==T&&_.push(M)}var ee=null;x&&(ee=o().createElement("li",{className:"".concat(n,"-total-text")},x(p,[0===p?0:(w-1)*z+1,w*z>p?p:w*z])));var te=!this.hasPrev()||!T,ne=!this.hasNext()||!T;return o().createElement("ul",(0,r.Z)({className:d()(n,l,(0,a.Z)({},"".concat(n,"-disabled"),s)),style:i,unselectable:"unselectable",ref:this.savePaginationNode},U),ee,o().createElement("li",{title:b?m.prev_page:null,onClick:this.prev,tabIndex:te?null:0,onKeyPress:this.runIfEnterPrev,className:d()("".concat(n,"-prev"),(0,a.Z)({},"".concat(n,"-disabled"),te)),"aria-disabled":te},this.renderPrev(D)),_,o().createElement("li",{title:b?m.next_page:null,onClick:this.next,tabIndex:ne?null:0,onKeyPress:this.runIfEnterNext,className:d()("".concat(n,"-next"),(0,a.Z)({},"".concat(n,"-disabled"),ne)),"aria-disabled":ne},this.renderNext(G)),o().createElement(g,{disabled:s,locale:m,rootPrefixCls:n,selectComponentClass:S,selectPrefixCls:O,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:w,pageSize:z,pageSizeOptions:k,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:J}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var a=t.current,r=y(e.pageSize,t,e);a=a>r?r:a,"current"in e||(n.current=a,n.currentInputValue=a),n.pageSize=e.pageSize}return n}}]),n}(o().Component);b.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:v,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:v,locale:{items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"},style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var x=b,E=n(2191),C=n(8122),N=n(4632),Z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},P=n(3751),S=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:Z}))};S.displayName="DoubleLeftOutlined";var O=c.forwardRef(S),k={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},I=function(e,t){return c.createElement(P.Z,Object.assign({},e,{ref:t,icon:k}))};I.displayName="DoubleRightOutlined";var w=c.forwardRef(I),z=n(3828),j=function(e){return c.createElement(z.Z,(0,r.Z)({size:"small"},e))};j.Option=z.Z.Option;var T=j,_=n(7416),K=n(4178),V=n(5806),L=function(e){var t=e.prefixCls,n=e.selectPrefixCls,o=e.className,l=e.size,i=e.locale,s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n}(e,["prefixCls","selectPrefixCls","className","size","locale"]),u=(0,V.Z)().xs,p=c.useContext(K.E_),m=p.getPrefixCls,h=p.direction,f=m("pagination",t),g=function(e){var t=(0,r.Z)((0,r.Z)({},e),i),p="small"===l||!(!u||l||!s.responsive),g=m("select",n),v=d()((0,a.Z)({mini:p},"".concat(f,"-rtl"),"rtl"===h),o);return c.createElement(x,(0,r.Z)({},s,{prefixCls:f,selectPrefixCls:g},function(){var e=c.createElement("span",{className:"".concat(f,"-item-ellipsis")},"•••"),t=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(C.Z,null)),n=c.createElement("button",{className:"".concat(f,"-item-link"),type:"button",tabIndex:-1},c.createElement(N.Z,null)),a=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(O,{className:"".concat(f,"-item-link-icon")}),e)),r=c.createElement("a",{className:"".concat(f,"-item-link")},c.createElement("div",{className:"".concat(f,"-item-container")},c.createElement(w,{className:"".concat(f,"-item-link-icon")}),e));if("rtl"===h){var o=[n,t];t=o[0],n=o[1];var l=[r,a];a=l[0],r=l[1]}return{prevIcon:t,nextIcon:n,jumpPrevIcon:a,jumpNextIcon:r}}(),{className:v,selectComponentClass:p?T:z.Z,locale:t}))};return c.createElement(_.Z,{componentName:"Pagination",defaultLocale:E.Z},g)}}}]);
|
2 |
+
//# sourceMappingURL=191.lite.js.map?ver=59d6c6957751262b22aa
|
public/dist/191.lite.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"file":"191.lite.js?ver=e7cc201b0fd38612fca5","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Grid.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Meta.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/Item.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pager.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Options.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/KeyCode.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pagination.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/MiniSelect.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/Pagination.js"],"sourcesContent":["// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\n\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\n\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\n\nvar Card = function Card(props) {\n var _extends2, _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var onTabChange = function onTabChange(key) {\n var _a;\n\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {\n padding: 24\n } : undefined;\n var block = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-block\")\n });\n var loadingBlock = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-content\"),\n style: loadingBlockStyle\n }, /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 22\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 8\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 15\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 6\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 18\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 13\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 9\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 4\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 3\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 16\n }, block)));\n var hasActiveTabKey = activeTabKey !== undefined;\n\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange\n }), tabList.map(function (item) {\n return /*#__PURE__*/React.createElement(Tabs.TabPane, {\n tab: item.tab,\n disabled: item.disabled,\n key: item.key\n });\n })) : null;\n\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n};\n\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\n\nexport default Meta;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ListContext } from './index';\nimport { Col } from '../grid';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nexport var Meta = function Meta(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n avatar = _a.avatar,\n title = _a.title,\n description = _a.description,\n others = __rest(_a, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-item-meta\"), className);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-content\")\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: \"\".concat(prefixCls, \"-item-meta-title\")\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-description\")\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-avatar\")\n }, avatar), (title || description) && content);\n};\n\nvar Item = function Item(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n actions = _a.actions,\n extra = _a.extra,\n className = _a.className,\n colStyle = _a.colStyle,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\", \"colStyle\"]);\n\n var _React$useContext2 = React.useContext(ListContext),\n grid = _React$useContext2.grid,\n itemLayout = _React$useContext2.itemLayout;\n\n var _React$useContext3 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext3.getPrefixCls;\n\n var isItemContainsTextNodeAndNotSingular = function isItemContainsTextNodeAndNotSingular() {\n var result;\n React.Children.forEach(children, function (element) {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && React.Children.count(children) > 1;\n };\n\n var isFlexMode = function isFlexMode() {\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n\n return !isItemContainsTextNodeAndNotSingular();\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var actionsContent = actions && actions.length > 0 && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-item-action\"),\n key: \"actions\"\n }, actions.map(function (action, i) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: \"\".concat(prefixCls, \"-item-action-\").concat(i)\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: \"\".concat(prefixCls, \"-item-action-split\")\n }))\n );\n }));\n var Element = grid ? 'div' : 'li';\n var itemChildren = /*#__PURE__*/React.createElement(Element, _extends({}, others, {\n // `li` element `onCopy` prop args is not same as `div`\n className: classNames(\"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-no-flex\"), !isFlexMode()), className)\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-main\"),\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-extra\"),\n key: \"extra\"\n }, extra)] : [children, actionsContent, cloneElement(extra, {\n key: 'extra'\n })]);\n return grid ? /*#__PURE__*/React.createElement(Col, {\n flex: 1,\n style: colStyle\n }, itemChildren) : itemChildren;\n};\n\nItem.Meta = Meta;\nexport default Item;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Spin from '../spin';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport { ConfigContext } from '../config-provider';\nimport Pagination from '../pagination';\nimport { Row } from '../grid';\nimport Item from './Item';\nexport var ListContext = /*#__PURE__*/React.createContext({});\nexport var ListConsumer = ListContext.Consumer;\n\nfunction List(_a) {\n var _classNames;\n\n var _a$pagination = _a.pagination,\n pagination = _a$pagination === void 0 ? false : _a$pagination,\n customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$split = _a.split,\n split = _a$split === void 0 ? true : _a$split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n _a$loading = _a.loading,\n loading = _a$loading === void 0 ? false : _a$loading,\n rowKey = _a.rowKey,\n renderItem = _a.renderItem,\n locale = _a.locale,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n\n var _React$useState = React.useState(paginationObj.defaultCurrent || 1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n paginationCurrent = _React$useState2[0],\n setPaginationCurrent = _React$useState2[1];\n\n var _React$useState3 = React.useState(paginationObj.defaultPageSize || 10),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n paginationSize = _React$useState4[0],\n setPaginationSize = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n\n var defaultPaginationProps = {\n current: 1,\n total: 0\n };\n var keys = {};\n\n var triggerPaginationEvent = function triggerPaginationEvent(eventName) {\n return function (page, pageSize) {\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n };\n\n var onPaginationChange = triggerPaginationEvent('onChange');\n var onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n\n var renderInnerItem = function renderInnerItem(item, index) {\n if (!renderItem) return null;\n var key;\n\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (typeof rowKey === 'string') {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n\n keys[index] = key;\n return renderItem(item, index);\n };\n\n var isSomethingAfterLastItem = function isSomethingAfterLastItem() {\n return !!(loadMore || pagination || footer);\n };\n\n var renderEmptyFunc = function renderEmptyFunc(prefixCls, renderEmptyHandler) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmptyHandler('List'));\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n\n var isLoading = loadingProp && loadingProp.spinning; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-split\"), split), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), isLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-grid\"), !!grid), _defineProperty(_classNames, \"\".concat(prefixCls, \"-something-after-last-item\"), isSomethingAfterLastItem()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n var paginationProps = _extends(_extends(_extends({}, defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n\n var paginationContent = pagination ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n }))) : null;\n\n var splitDataSource = _toConsumableArray(dataSource);\n\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n\n var screens = useBreakpoint();\n var currentBreakpoint = React.useMemo(function () {\n for (var i = 0; i < responsiveArray.length; i += 1) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n\n return undefined;\n }, [screens]);\n var colStyle = React.useMemo(function () {\n if (!grid) {\n return undefined;\n }\n\n var columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n\n if (columnCount) {\n return {\n width: \"\".concat(100 / columnCount, \"%\"),\n maxWidth: \"\".concat(100 / columnCount, \"%\")\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n var childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return renderInnerItem(item, index);\n });\n var childrenList = React.Children.map(items, function (child, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: keys[index],\n style: colStyle\n }, child);\n });\n childrenContent = grid ? /*#__PURE__*/React.createElement(Row, {\n gutter: grid.gutter\n }, childrenList) : /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, items);\n } else if (!children && !isLoading) {\n childrenContent = renderEmptyFunc(prefixCls, renderEmpty);\n }\n\n var paginationPosition = paginationProps.position || 'bottom';\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: {\n grid: grid,\n itemLayout: itemLayout\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(Spin, loadingProp, childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent));\n}\n\nList.Item = Item;\nexport default List;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Pager = function Pager(props) {\n var _classNames;\n\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _classNames));\n\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\n\nexport default Pager;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\n\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n\n var _super = _createSuper(Options);\n\n function Options() {\n var _this;\n\n _classCallCheck(this, Options);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n\n if (goButton || goInputText === '') {\n return;\n }\n\n _this.setState({\n goInputText: ''\n });\n\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n\n quickGo(_this.getValidValue());\n };\n\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n\n if (goInputText === '') {\n return;\n }\n\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n\n _this.props.quickGo(_this.getValidValue());\n }\n };\n\n return _this;\n }\n\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText; // eslint-disable-next-line no-restricted-globals\n\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a); // eslint-disable-next-line no-restricted-globals\n\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n var pageSizeOptions = this.getPageSizeOptions();\n\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n }\n }, options);\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur\n }), locale.page, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n\n return Options;\n}(React.Component);\n\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\n\nfunction noop() {}\n\nfunction isInteger(value) {\n return (// eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n );\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n var _super = _createSuper(Pagination);\n\n function Pagination(props) {\n var _this;\n\n _classCallCheck(this, Pagination);\n\n _this = _super.call(this, props);\n\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n\n return iconNode;\n };\n\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n\n _this.isValid = function (page) {\n return isInteger(page) && page !== _this.state.current;\n };\n\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n pageSize = _this$props.pageSize,\n total = _this$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n\n return showQuickJumper;\n };\n\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n\n var currentInputValue = _this.state.currentInputValue;\n\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current; // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n\n _this.props.onShowSizeChange(current, size);\n\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n\n _this.handleChange = function (p) {\n var disabled = _this.props.disabled;\n var page = p;\n\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: page,\n currentInputValue: page\n });\n }\n\n var pageSize = _this.state.pageSize;\n\n _this.props.onChange(page, pageSize);\n\n return page;\n }\n\n return _this.state.current;\n };\n\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(void 0, restParams);\n }\n };\n\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n\n var _current = props.defaultCurrent;\n\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n\n var _pageSize = props.defaultPageSize;\n\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n\n if (inputValue === '') {\n value = inputValue; // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props2 = this.props,\n showSizeChanger = _this$props2.showSizeChanger,\n total = _this$props2.total,\n totalBoundaryShowSizeChanger = _this$props2.totalBoundaryShowSizeChanger;\n\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props3 = this.props,\n prevIcon = _this$props3.prevIcon,\n itemRender = _this$props3.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props4 = this.props,\n nextIcon = _this$props4.nextIcon,\n itemRender = _this$props4.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n className = _this$props5.className,\n style = _this$props5.style,\n disabled = _this$props5.disabled,\n hideOnSinglePage = _this$props5.hideOnSinglePage,\n total = _this$props5.total,\n locale = _this$props5.locale,\n showQuickJumper = _this$props5.showQuickJumper,\n showLessItems = _this$props5.showLessItems,\n showTitle = _this$props5.showTitle,\n showTotal = _this$props5.showTotal,\n simple = _this$props5.simple,\n itemRender = _this$props5.itemRender,\n showPrevNextJumpers = _this$props5.showPrevNextJumpers,\n jumpPrevIcon = _this$props5.jumpPrevIcon,\n jumpNextIcon = _this$props5.jumpNextIcon,\n selectComponentClass = _this$props5.selectComponentClass,\n selectPrefixCls = _this$props5.selectPrefixCls,\n pageSizeOptions = _this$props5.pageSizeOptions;\n var _this$state = this.state,\n current = _this$state.current,\n pageSize = _this$state.pageSize,\n currentInputValue = _this$state.currentInputValue; // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n\n return prev;\n }, {});\n\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: allPages,\n className: \"\".concat(prefixCls, \"-disabled\")\n })));\n }\n\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (showTotal) {\n totalText = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n }\n\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n unselectable: \"unselectable\",\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n\n if ('current' in props) {\n newState.current = props.current;\n\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n\n newState.pageSize = props.pageSize;\n }\n\n return newState;\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\n\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\n\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\n\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({\n size: \"small\"\n }, props));\n};\n\nMiniSelect.Option = Select.Option;\nexport default MiniSelect;","import Pagination from './Pagination';\nexport default Pagination;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport classNames from 'classnames';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport MiniSelect from './MiniSelect';\nimport Select from '../select';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\n\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\"]);\n\n var _useBreakpoint = useBreakpoint(),\n xs = _useBreakpoint.xs;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis)); // change arrows direction in right-to-left direction\n\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n\n var renderPagination = function renderPagination(contextLocale) {\n var locale = _extends(_extends({}, contextLocale), customLocale);\n\n var isSmall = size === 'small' || !!(xs && !size && restProps.responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames(_defineProperty({\n mini: isSmall\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls\n }, getIconsProps(), {\n className: extendedClassName,\n selectComponentClass: isSmall ? MiniSelect : Select,\n locale: locale\n }));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, renderPagination);\n};\n\nexport default Pagination;"],"names":["props","ref","AntdIcon","Object","assign","icon","displayName","_a","prefixCls","className","_a$hoverable","hoverable","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","C","_ref","prefix","getPrefixCls","classString","concat","Card","_extends2","_classNames","head","_React$useContext","direction","size","SizeContext","customizePrefixCls","extra","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","title","loading","_props$bordered","bordered","customizeSize","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","_props$tabProps","tabProps","others","loadingBlockStyle","padding","undefined","block","loadingBlock","style","gutter","span","hasActiveTabKey","extraProps","tabs","onChange","key","onTabChange","map","item","tab","disabled","containGrid","coverDom","body","actionDom","action","index","width","getAction","divProps","omit","mergedSize","element","Grid","Meta","avatar","description","avatarDom","titleDom","descriptionDom","MetaDetail","_useState","useState","_useState2","screens","setScreens","useEffect","token","supportScreens","Item","result","colStyle","_React$useContext2","ListContext","grid","itemLayout","actionsContent","Element","itemChildren","flex","content","List","_a$pagination","pagination","_a$bordered","_a$split","split","loadMore","_a$dataSource","dataSource","header","footer","_a$loading","rowKey","renderItem","locale","rest","paginationObj","_React$useState","defaultCurrent","_React$useState2","paginationCurrent","setPaginationCurrent","_React$useState3","defaultPageSize","_React$useState4","paginationSize","setPaginationSize","renderEmpty","keys","triggerPaginationEvent","eventName","page","pageSize","onPaginationChange","onPaginationShowSizeChange","loadingProp","spinning","isLoading","sizeCls","paginationProps","current","total","largestPage","Math","ceil","paginationContent","onShowSizeChange","splitDataSource","splice","useBreakpoint","currentBreakpoint","breakpoint","columnCount","column","maxWidth","childrenContent","minHeight","items","renderInnerItem","childrenList","child","renderEmptyHandler","emptyText","renderEmptyFunc","paginationPosition","position","Provider","value","Consumer","rootPrefixCls","cls","active","showTitle","onClick","onKeyPress","tabIndex","itemRender","rel","Options","_React$Component","_super","_this","this","_len","arguments","args","Array","_key","apply","state","goInputText","buildOptionText","items_per_page","changeSize","Number","handleChange","setState","target","handleBlur","_this$props","goButton","quickGo","relatedTarget","getValidValue","go","keyCode","isNaN","_this$props2","pageSizeOptions","some","option","toString","sort","a","b","_this2","_this$props3","selectComponentClass","selectPrefixCls","Select","changeSelect","goInput","gotoButton","getPageSizeOptions","options","opt","Option","showSearch","optionLabelProp","dropdownMatchSelectWidth","getPopupContainer","triggerNode","parentNode","onKeyUp","jump_to_confirm","jump_to","onBlur","defaultProps","noop","calculatePage","floor","Pagination","getJumpPrevPage","max","showLessItems","getJumpNextPage","min","getItemIcon","label","iconNode","savePaginationNode","node","paginationNode","isValid","isFinite","shouldDisplayQuickJumper","showQuickJumper","handleKeyDown","preventDefault","handleKeyUp","currentInputValue","changePageSize","newCurrent","currentPage","prev","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","event","callback","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","console","warn","_current","_pageSize","prevProps","prevState","lastCurrentNode","querySelector","document","activeElement","blur","inputValue","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","isValidElement","cloneElement","nextPage","_this$props4","nextIcon","nextButton","_this$props5","hideOnSinglePage","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","_this$state","pagerList","firstPager","lastPager","pageBufferSize","dataOrAriaAttributeProps","reduce","substr","prev_page","renderPrev","onKeyDown","next_page","renderNext","pagerProps","push","prevItemTitle","prev_3","prev_5","nextItemTitle","next_3","next_5","last","left","right","_i","_active","unshift","totalText","prevDisabled","nextDisabled","unselectable","getShowSizeChanger","newState","MiniSelect","customizeSelectPrefixCls","customLocale","restProps","xs","renderPagination","contextLocale","isSmall","responsive","extendedClassName","mini","ellipsis","LeftOutlined","RightOutlined","_ref2","getIconsProps","LocaleReceiver","componentName","defaultLocale"],"sourceRoot":""}
|
1 |
+
{"version":3,"file":"191.lite.js?ver=59d6c6957751262b22aa","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Grid.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/card/Meta.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/Item.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/list/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pager.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Options.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/KeyCode.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/Pagination.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-pagination/es/locale/zh_CN.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/MiniSelect.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/pagination/Pagination.js"],"sourcesContent":["// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\n\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\n\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport Grid from './Grid';\nimport Meta from './Meta';\nimport Tabs from '../tabs';\nimport Row from '../row';\nimport Col from '../col';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\n\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\n\nvar Card = function Card(props) {\n var _extends2, _classNames;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var size = React.useContext(SizeContext);\n\n var onTabChange = function onTabChange(key) {\n var _a;\n\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlockStyle = bodyStyle.padding === 0 || bodyStyle.padding === '0px' ? {\n padding: 24\n } : undefined;\n var block = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-block\")\n });\n var loadingBlock = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-loading-content\"),\n style: loadingBlockStyle\n }, /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 22\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 8\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 15\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 6\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 18\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 13\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 9\n }, block)), /*#__PURE__*/React.createElement(Row, {\n gutter: 8\n }, /*#__PURE__*/React.createElement(Col, {\n span: 4\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 3\n }, block), /*#__PURE__*/React.createElement(Col, {\n span: 16\n }, block)));\n var hasActiveTabKey = activeTabKey !== undefined;\n\n var extraProps = _extends(_extends({}, tabProps), (_extends2 = {}, _defineProperty(_extends2, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), _defineProperty(_extends2, \"tabBarExtraContent\", tabBarExtraContent), _extends2));\n\n var head;\n var tabs = tabList && tabList.length ? /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange\n }), tabList.map(function (item) {\n return /*#__PURE__*/React.createElement(Tabs.TabPane, {\n tab: item.tab,\n disabled: item.disabled,\n key: item.key\n });\n })) : null;\n\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions)) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-hoverable\"), hoverable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), _defineProperty(_classNames, \"\".concat(prefixCls, \"-type-\").concat(type), !!type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n};\n\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\n\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description) : null;\n var MetaDetail = titleDom || descriptionDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\n\nexport default Meta;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ListContext } from './index';\nimport { Col } from '../grid';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nexport var Meta = function Meta(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n avatar = _a.avatar,\n title = _a.title,\n description = _a.description,\n others = __rest(_a, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-item-meta\"), className);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-content\")\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: \"\".concat(prefixCls, \"-item-meta-title\")\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-description\")\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-avatar\")\n }, avatar), (title || description) && content);\n};\n\nvar Item = function Item(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n actions = _a.actions,\n extra = _a.extra,\n className = _a.className,\n colStyle = _a.colStyle,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\", \"colStyle\"]);\n\n var _React$useContext2 = React.useContext(ListContext),\n grid = _React$useContext2.grid,\n itemLayout = _React$useContext2.itemLayout;\n\n var _React$useContext3 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext3.getPrefixCls;\n\n var isItemContainsTextNodeAndNotSingular = function isItemContainsTextNodeAndNotSingular() {\n var result;\n React.Children.forEach(children, function (element) {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && React.Children.count(children) > 1;\n };\n\n var isFlexMode = function isFlexMode() {\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n\n return !isItemContainsTextNodeAndNotSingular();\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var actionsContent = actions && actions.length > 0 && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-item-action\"),\n key: \"actions\"\n }, actions.map(function (action, i) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: \"\".concat(prefixCls, \"-item-action-\").concat(i)\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: \"\".concat(prefixCls, \"-item-action-split\")\n }))\n );\n }));\n var Element = grid ? 'div' : 'li';\n var itemChildren = /*#__PURE__*/React.createElement(Element, _extends({}, others, {\n // `li` element `onCopy` prop args is not same as `div`\n className: classNames(\"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-no-flex\"), !isFlexMode()), className)\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-main\"),\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-extra\"),\n key: \"extra\"\n }, extra)] : [children, actionsContent, cloneElement(extra, {\n key: 'extra'\n })]);\n return grid ? /*#__PURE__*/React.createElement(Col, {\n flex: 1,\n style: colStyle\n }, itemChildren) : itemChildren;\n};\n\nItem.Meta = Meta;\nexport default Item;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Spin from '../spin';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport { ConfigContext } from '../config-provider';\nimport Pagination from '../pagination';\nimport { Row } from '../grid';\nimport Item from './Item';\nexport var ListContext = /*#__PURE__*/React.createContext({});\nexport var ListConsumer = ListContext.Consumer;\n\nfunction List(_a) {\n var _classNames;\n\n var _a$pagination = _a.pagination,\n pagination = _a$pagination === void 0 ? false : _a$pagination,\n customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$split = _a.split,\n split = _a$split === void 0 ? true : _a$split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n _a$loading = _a.loading,\n loading = _a$loading === void 0 ? false : _a$loading,\n rowKey = _a.rowKey,\n renderItem = _a.renderItem,\n locale = _a.locale,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n\n var _React$useState = React.useState(paginationObj.defaultCurrent || 1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n paginationCurrent = _React$useState2[0],\n setPaginationCurrent = _React$useState2[1];\n\n var _React$useState3 = React.useState(paginationObj.defaultPageSize || 10),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n paginationSize = _React$useState4[0],\n setPaginationSize = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n\n var defaultPaginationProps = {\n current: 1,\n total: 0\n };\n var keys = {};\n\n var triggerPaginationEvent = function triggerPaginationEvent(eventName) {\n return function (page, pageSize) {\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n };\n\n var onPaginationChange = triggerPaginationEvent('onChange');\n var onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n\n var renderInnerItem = function renderInnerItem(item, index) {\n if (!renderItem) return null;\n var key;\n\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (typeof rowKey === 'string') {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n\n keys[index] = key;\n return renderItem(item, index);\n };\n\n var isSomethingAfterLastItem = function isSomethingAfterLastItem() {\n return !!(loadMore || pagination || footer);\n };\n\n var renderEmptyFunc = function renderEmptyFunc(prefixCls, renderEmptyHandler) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmptyHandler('List'));\n };\n\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n\n var isLoading = loadingProp && loadingProp.spinning; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-split\"), split), _defineProperty(_classNames, \"\".concat(prefixCls, \"-bordered\"), bordered), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), isLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-grid\"), !!grid), _defineProperty(_classNames, \"\".concat(prefixCls, \"-something-after-last-item\"), isSomethingAfterLastItem()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n\n var paginationProps = _extends(_extends(_extends({}, defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n\n var paginationContent = pagination ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n }))) : null;\n\n var splitDataSource = _toConsumableArray(dataSource);\n\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n\n var screens = useBreakpoint();\n var currentBreakpoint = React.useMemo(function () {\n for (var i = 0; i < responsiveArray.length; i += 1) {\n var breakpoint = responsiveArray[i];\n\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n\n return undefined;\n }, [screens]);\n var colStyle = React.useMemo(function () {\n if (!grid) {\n return undefined;\n }\n\n var columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n\n if (columnCount) {\n return {\n width: \"\".concat(100 / columnCount, \"%\"),\n maxWidth: \"\".concat(100 / columnCount, \"%\")\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n var childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return renderInnerItem(item, index);\n });\n var childrenList = React.Children.map(items, function (child, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: keys[index],\n style: colStyle\n }, child);\n });\n childrenContent = grid ? /*#__PURE__*/React.createElement(Row, {\n gutter: grid.gutter\n }, childrenList) : /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, items);\n } else if (!children && !isLoading) {\n childrenContent = renderEmptyFunc(prefixCls, renderEmpty);\n }\n\n var paginationPosition = paginationProps.position || 'bottom';\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: {\n grid: grid,\n itemLayout: itemLayout\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(Spin, loadingProp, childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent));\n}\n\nList.Item = Item;\nexport default List;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Pager = function Pager(props) {\n var _classNames;\n\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, props.className, !!props.className), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _classNames));\n\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\n\nexport default Pager;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\n\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n\n var _super = _createSuper(Options);\n\n function Options() {\n var _this;\n\n _classCallCheck(this, Options);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n\n if (goButton || goInputText === '') {\n return;\n }\n\n _this.setState({\n goInputText: ''\n });\n\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n\n quickGo(_this.getValidValue());\n };\n\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n\n if (goInputText === '') {\n return;\n }\n\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n\n _this.props.quickGo(_this.getValidValue());\n }\n };\n\n return _this;\n }\n\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText; // eslint-disable-next-line no-restricted-globals\n\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a); // eslint-disable-next-line no-restricted-globals\n\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n\n if (!changeSize && !quickGo) {\n return null;\n }\n\n var pageSizeOptions = this.getPageSizeOptions();\n\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n }\n }, options);\n }\n\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur\n }), locale.page, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n\n return Options;\n}(React.Component);\n\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\n\nfunction noop() {}\n\nfunction isInteger(value) {\n return (// eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n );\n}\n\nfunction defaultItemRender(page, type, element) {\n return element;\n}\n\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\n\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n\n var _super = _createSuper(Pagination);\n\n function Pagination(props) {\n var _this;\n\n _classCallCheck(this, Pagination);\n\n _this = _super.call(this, props);\n\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n\n return iconNode;\n };\n\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n\n _this.isValid = function (page) {\n return isInteger(page) && page !== _this.state.current;\n };\n\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n pageSize = _this$props.pageSize,\n total = _this$props.total;\n\n if (total <= pageSize) {\n return false;\n }\n\n return showQuickJumper;\n };\n\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n\n var currentInputValue = _this.state.currentInputValue;\n\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current; // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n\n _this.props.onShowSizeChange(current, size);\n\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n\n _this.handleChange = function (p) {\n var disabled = _this.props.disabled;\n var page = p;\n\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n\n if (page > currentPage) {\n page = currentPage;\n } else if (page < 1) {\n page = 1;\n }\n\n if (!('current' in _this.props)) {\n _this.setState({\n current: page,\n currentInputValue: page\n });\n }\n\n var pageSize = _this.state.pageSize;\n\n _this.props.onChange(page, pageSize);\n\n return page;\n }\n\n return _this.state.current;\n };\n\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n\n callback.apply(void 0, restParams);\n }\n };\n\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n\n var _current = props.defaultCurrent;\n\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n\n var _pageSize = props.defaultPageSize;\n\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n\n if (inputValue === '') {\n value = inputValue; // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props2 = this.props,\n showSizeChanger = _this$props2.showSizeChanger,\n total = _this$props2.total,\n totalBoundaryShowSizeChanger = _this$props2.totalBoundaryShowSizeChanger;\n\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props3 = this.props,\n prevIcon = _this$props3.prevIcon,\n itemRender = _this$props3.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props4 = this.props,\n nextIcon = _this$props4.nextIcon,\n itemRender = _this$props4.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n className = _this$props5.className,\n style = _this$props5.style,\n disabled = _this$props5.disabled,\n hideOnSinglePage = _this$props5.hideOnSinglePage,\n total = _this$props5.total,\n locale = _this$props5.locale,\n showQuickJumper = _this$props5.showQuickJumper,\n showLessItems = _this$props5.showLessItems,\n showTitle = _this$props5.showTitle,\n showTotal = _this$props5.showTotal,\n simple = _this$props5.simple,\n itemRender = _this$props5.itemRender,\n showPrevNextJumpers = _this$props5.showPrevNextJumpers,\n jumpPrevIcon = _this$props5.jumpPrevIcon,\n jumpNextIcon = _this$props5.jumpNextIcon,\n selectComponentClass = _this$props5.selectComponentClass,\n selectPrefixCls = _this$props5.selectPrefixCls,\n pageSizeOptions = _this$props5.pageSizeOptions;\n var _this$state = this.state,\n current = _this$state.current,\n pageSize = _this$state.pageSize,\n currentInputValue = _this$state.currentInputValue; // When hideOnSinglePage is true and there is only 1 page, hide the pager\n\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n\n return prev;\n }, {});\n\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: allPages,\n className: \"\".concat(prefixCls, \"-disabled\")\n })));\n }\n\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n\n var totalText = null;\n\n if (showTotal) {\n totalText = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n }\n\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n unselectable: \"unselectable\",\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n\n if ('current' in props) {\n newState.current = props.current;\n\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n\n newState.pageSize = props.pageSize;\n }\n\n return newState;\n }\n }]);\n\n return Pagination;\n}(React.Component);\n\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\n\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, Object.assign({}, props, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\n\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\n\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({\n size: \"small\"\n }, props));\n};\n\nMiniSelect.Option = Select.Option;\nexport default MiniSelect;","import Pagination from './Pagination';\nexport default Pagination;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport classNames from 'classnames';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport MiniSelect from './MiniSelect';\nimport Select from '../select';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\n\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\"]);\n\n var _useBreakpoint = useBreakpoint(),\n xs = _useBreakpoint.xs;\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis)); // change arrows direction in right-to-left direction\n\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n\n var renderPagination = function renderPagination(contextLocale) {\n var locale = _extends(_extends({}, contextLocale), customLocale);\n\n var isSmall = size === 'small' || !!(xs && !size && restProps.responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames(_defineProperty({\n mini: isSmall\n }, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls\n }, getIconsProps(), {\n className: extendedClassName,\n selectComponentClass: isSmall ? MiniSelect : Select,\n locale: locale\n }));\n };\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, renderPagination);\n};\n\nexport default Pagination;"],"names":["props","ref","AntdIcon","Object","assign","icon","displayName","_a","prefixCls","className","_a$hoverable","hoverable","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__rest","C","_ref","prefix","getPrefixCls","classString","concat","Card","_extends2","_classNames","head","_React$useContext","direction","size","SizeContext","customizePrefixCls","extra","_props$headStyle","headStyle","_props$bodyStyle","bodyStyle","title","loading","_props$bordered","bordered","customizeSize","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","_props$tabProps","tabProps","others","loadingBlockStyle","padding","undefined","block","loadingBlock","style","gutter","span","hasActiveTabKey","extraProps","tabs","onChange","key","onTabChange","map","item","tab","disabled","containGrid","coverDom","body","actionDom","action","index","width","getAction","divProps","omit","mergedSize","element","Grid","Meta","avatar","description","avatarDom","titleDom","descriptionDom","MetaDetail","_useState","useState","_useState2","screens","setScreens","useEffect","token","supportScreens","Item","result","colStyle","_React$useContext2","ListContext","grid","itemLayout","actionsContent","Element","itemChildren","flex","content","List","_a$pagination","pagination","_a$bordered","_a$split","split","loadMore","_a$dataSource","dataSource","header","footer","_a$loading","rowKey","renderItem","locale","rest","paginationObj","_React$useState","defaultCurrent","_React$useState2","paginationCurrent","setPaginationCurrent","_React$useState3","defaultPageSize","_React$useState4","paginationSize","setPaginationSize","renderEmpty","keys","triggerPaginationEvent","eventName","page","pageSize","onPaginationChange","onPaginationShowSizeChange","loadingProp","spinning","isLoading","sizeCls","paginationProps","current","total","largestPage","Math","ceil","paginationContent","onShowSizeChange","splitDataSource","splice","useBreakpoint","currentBreakpoint","breakpoint","columnCount","column","maxWidth","childrenContent","minHeight","items","renderInnerItem","childrenList","child","renderEmptyHandler","emptyText","renderEmptyFunc","paginationPosition","position","Provider","value","Consumer","rootPrefixCls","cls","active","showTitle","onClick","onKeyPress","tabIndex","itemRender","rel","Options","_React$Component","_super","_this","this","_len","arguments","args","Array","_key","apply","state","goInputText","buildOptionText","items_per_page","changeSize","Number","handleChange","setState","target","handleBlur","_this$props","goButton","quickGo","relatedTarget","getValidValue","go","keyCode","isNaN","_this$props2","pageSizeOptions","some","option","toString","sort","a","b","_this2","_this$props3","selectComponentClass","selectPrefixCls","Select","changeSelect","goInput","gotoButton","getPageSizeOptions","options","opt","Option","showSearch","optionLabelProp","dropdownMatchSelectWidth","getPopupContainer","triggerNode","parentNode","onKeyUp","jump_to_confirm","jump_to","onBlur","defaultProps","noop","calculatePage","floor","Pagination","getJumpPrevPage","max","showLessItems","getJumpNextPage","min","getItemIcon","label","iconNode","savePaginationNode","node","paginationNode","isValid","isFinite","shouldDisplayQuickJumper","showQuickJumper","handleKeyDown","preventDefault","handleKeyUp","currentInputValue","changePageSize","newCurrent","currentPage","prev","hasPrev","next","hasNext","jumpPrev","jumpNext","runIfEnter","event","callback","charCode","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","console","warn","_current","_pageSize","prevProps","prevState","lastCurrentNode","querySelector","document","activeElement","blur","inputValue","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","isValidElement","cloneElement","nextPage","_this$props4","nextIcon","nextButton","_this$props5","hideOnSinglePage","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","_this$state","pagerList","firstPager","lastPager","pageBufferSize","dataOrAriaAttributeProps","reduce","substr","prev_page","renderPrev","onKeyDown","next_page","renderNext","pagerProps","push","prevItemTitle","prev_3","prev_5","nextItemTitle","next_3","next_5","last","left","right","_i","_active","unshift","totalText","prevDisabled","nextDisabled","unselectable","getShowSizeChanger","newState","MiniSelect","customizeSelectPrefixCls","customLocale","restProps","xs","renderPagination","contextLocale","isSmall","responsive","extendedClassName","mini","ellipsis","LeftOutlined","RightOutlined","_ref2","getIconsProps","LocaleReceiver","componentName","defaultLocale"],"sourceRoot":""}
|
public/dist/276.lite.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
"use strict";(self.webpackChunkrealCookieBanner_name_=self.webpackChunkrealCookieBanner_name_||[]).push([[276],{8276:function(e,t,n){n.d(t,{Z:function(){return Xe}});var o=n(3429),r=n(63),i=n(4741),a=n(7228),s=n(7363),u=n.n(s),l=n(2711),c=n(6762),p=n(3340),f=n(3841),d=n(5952),v=n(1894),h=function(e){var t,n,o=e.className,i=e.included,a=e.vertical,s=e.style,c=e.length,p=e.offset,f=e.reverse;c<0&&(f=!f,c=Math.abs(c),p=100-p);var d=a?(t={},(0,r.Z)(t,f?"top":"bottom","".concat(p,"%")),(0,r.Z)(t,f?"bottom":"top","auto"),(0,r.Z)(t,"height","".concat(c,"%")),t):(n={},(0,r.Z)(n,f?"right":"left","".concat(p,"%")),(0,r.Z)(n,f?"left":"right","auto"),(0,r.Z)(n,"width","".concat(c,"%")),n),v=(0,l.Z)((0,l.Z)({},s),d);return i?u().createElement("div",{className:o,style:v}):null},m=n(4115),g=n(7870),y=n(3071),b=n(8067),k=n(5905),C=n(2286),Z=n.n(C),x=function(e){var t=e.prefixCls,n=e.vertical,o=e.reverse,i=e.marks,a=e.dots,s=e.step,c=e.included,p=e.lowerBound,f=e.upperBound,d=e.max,h=e.min,m=e.dotStyle,g=e.activeDotStyle,y=d-h,b=function(e,t,n,o,r,i){(0,v.ZP)(!n||o>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var a=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&o)for(var s=r;s<=i;s+=o)-1===a.indexOf(s)&&a.push(s);return a}(0,i,a,s,h,d).map((function(e){var i,a="".concat(Math.abs(e-h)/y*100,"%"),s=!c&&e===f||c&&e<=f&&e>=p,d=n?(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},o?"top":"bottom",a)):(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},o?"right":"left",a));s&&(d=(0,l.Z)((0,l.Z)({},d),g));var v=Z()((i={},(0,r.Z)(i,"".concat(t,"-dot"),!0),(0,r.Z)(i,"".concat(t,"-dot-active"),s),(0,r.Z)(i,"".concat(t,"-dot-reverse"),o),i));return u().createElement("span",{className:v,style:d,key:e})}));return u().createElement("div",{className:"".concat(t,"-step")},b)},M=function(e){var t=e.className,n=e.vertical,i=e.reverse,a=e.marks,s=e.included,c=e.upperBound,p=e.lowerBound,f=e.max,d=e.min,v=e.onClickLabel,h=Object.keys(a),m=f-d,g=h.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var f,h=a[e],g="object"===(0,o.Z)(h)&&!u().isValidElement(h),y=g?h.label:h;if(!y&&0!==y)return null;var b=!s&&e===c||s&&e<=c&&e>=p,k=Z()((f={},(0,r.Z)(f,"".concat(t,"-text"),!0),(0,r.Z)(f,"".concat(t,"-text-active"),b),f)),C=(0,r.Z)({marginBottom:"-50%"},i?"top":"bottom","".concat((e-d)/m*100,"%")),x=(0,r.Z)({transform:"translateX(".concat(i?"50%":"-50%",")"),msTransform:"translateX(".concat(i?"50%":"-50%",")")},i?"right":"left","".concat((e-d)/m*100,"%")),M=n?C:x,T=g?(0,l.Z)((0,l.Z)({},M),h.style):M;return u().createElement("span",{className:k,style:T,key:e,onMouseDown:function(t){return v(t,e)},onTouchStart:function(t){return v(t,e)}},y)}));return u().createElement("div",{className:t},g)},T=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(){var e;return(0,c.Z)(this,n),(e=t.apply(this,arguments)).state={clickFocused:!1},e.setHandleRef=function(t){e.handle=t},e.handleMouseUp=function(){document.activeElement===e.handle&&e.setClickFocus(!0)},e.handleMouseDown=function(t){t.preventDefault(),e.focus()},e.handleBlur=function(){e.setClickFocus(!1)},e.handleKeyDown=function(){e.setClickFocus(!1)},e}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.onMouseUpListener=(0,k.Z)(document,"mouseup",this.handleMouseUp)}},{key:"componentWillUnmount",value:function(){this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"setClickFocus",value:function(e){this.setState({clickFocused:e})}},{key:"clickFocus",value:function(){this.setClickFocus(!0),this.focus()}},{key:"focus",value:function(){this.handle.focus()}},{key:"blur",value:function(){this.handle.blur()}},{key:"render",value:function(){var e,t,n,o=this.props,a=o.prefixCls,s=o.vertical,c=o.reverse,p=o.offset,f=o.style,d=o.disabled,v=o.min,h=o.max,g=o.value,y=o.tabIndex,b=o.ariaLabel,k=o.ariaLabelledBy,C=o.ariaValueTextFormatter,x=(0,m.Z)(o,["prefixCls","vertical","reverse","offset","style","disabled","min","max","value","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter"]),M=Z()(this.props.className,(0,r.Z)({},"".concat(a,"-handle-click-focused"),this.state.clickFocused)),T=s?(e={},(0,r.Z)(e,c?"top":"bottom","".concat(p,"%")),(0,r.Z)(e,c?"bottom":"top","auto"),(0,r.Z)(e,"transform",c?null:"translateY(+50%)"),e):(t={},(0,r.Z)(t,c?"right":"left","".concat(p,"%")),(0,r.Z)(t,c?"left":"right","auto"),(0,r.Z)(t,"transform","translateX(".concat(c?"+":"-","50%)")),t),w=(0,l.Z)((0,l.Z)({},f),T),P=y||0;return(d||null===y)&&(P=null),C&&(n=C(g)),u().createElement("div",(0,i.Z)({ref:this.setHandleRef,tabIndex:P},x,{className:M,style:w,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,role:"slider","aria-valuemin":v,"aria-valuemax":h,"aria-valuenow":g,"aria-disabled":!!d,"aria-label":b,"aria-labelledby":k,"aria-valuetext":n}))}}]),n}(u().Component),w=n(1533),P=n.n(w),E=n(5065);function D(e,t){try{return Object.keys(t).some((function(n){return e.target===(0,w.findDOMNode)(t[n])}))}catch(e){return!1}}function S(e,t){var n=t.min,o=t.max;return e<n||e>o}function O(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function N(e,t){var n=t.marks,o=t.step,r=t.min,i=t.max,a=Object.keys(n).map(parseFloat);if(null!==o){var s=Math.pow(10,V(o)),u=Math.floor((i*s-r*s)/(o*s)),l=Math.min((e-r)/o,u),c=Math.round(l)*o+r;a.push(c)}var p=a.map((function(t){return Math.abs(e-t)}));return a[p.indexOf(Math.min.apply(Math,(0,g.Z)(p)))]}function V(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}function R(e,t){return e?t.clientY:t.pageX}function H(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function L(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function B(e,t){var n=t.max,o=t.min;return e<=o?o:e>=n?n:e}function A(e,t){var n=t.step,o=isFinite(N(e,t))?N(e,t):0;return null===n?o:parseFloat(o.toFixed(V(n)))}function F(e){e.stopPropagation(),e.preventDefault()}function I(e,t,n){var o="increase",r="decrease",i=o;switch(e.keyCode){case E.Z.UP:i=t&&n?r:o;break;case E.Z.RIGHT:i=!t&&n?r:o;break;case E.Z.DOWN:i=t&&n?o:r;break;case E.Z.LEFT:i=!t&&n?o:r;break;case E.Z.END:return function(e,t){return t.max};case E.Z.HOME:return function(e,t){return t.min};case E.Z.PAGE_UP:return function(e,t){return e+2*t.step};case E.Z.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var o={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},r=o[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),i=Object.keys(n.marks)[r];return n.step?o[e](t,n.step):Object.keys(n.marks).length&&n.marks[i]?n.marks[i]:t}(i,e,t)}}function U(){}function j(e){var t;return t=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).onDown=function(e,t){var n=t,r=o.props,i=r.draggableTrack,a=r.vertical,s=o.state.bounds,u=i&&o.positionGetValue&&o.positionGetValue(n)||[],l=D(e,o.handlesRefs);if(o.dragTrack=i&&s.length>=2&&!l&&!u.map((function(e,t){var n=!!t||e>=s[t];return t===u.length-1?e<=s[t]:n})).some((function(e){return!e})),o.dragTrack)o.dragOffset=n,o.startBounds=(0,g.Z)(s);else{if(l){var c=L(a,e.target);o.dragOffset=n-c,n=c}else o.dragOffset=0;o.onStart(n)}},o.onMouseDown=function(e){if(0===e.button){o.removeDocumentEvents();var t=R(o.props.vertical,e);o.onDown(e,t),o.addDocumentMouseEvents()}},o.onTouchStart=function(e){if(!O(e)){var t=H(o.props.vertical,e);o.onDown(e,t),o.addDocumentTouchEvents(),F(e)}},o.onFocus=function(e){var t=o.props,n=t.onFocus,r=t.vertical;if(D(e,o.handlesRefs)&&!o.dragTrack){var i=L(r,e.target);o.dragOffset=0,o.onStart(i),F(e),n&&n(e)}},o.onBlur=function(e){var t=o.props.onBlur;o.dragTrack||o.onEnd(),t&&t(e)},o.onMouseUp=function(){o.handlesRefs[o.prevMovedHandleIndex]&&o.handlesRefs[o.prevMovedHandleIndex].clickFocus()},o.onMouseMove=function(e){if(o.sliderRef){var t=R(o.props.vertical,e);o.onMove(e,t-o.dragOffset,o.dragTrack,o.startBounds)}else o.onEnd()},o.onTouchMove=function(e){if(!O(e)&&o.sliderRef){var t=H(o.props.vertical,e);o.onMove(e,t-o.dragOffset,o.dragTrack,o.startBounds)}else o.onEnd()},o.onKeyDown=function(e){o.sliderRef&&D(e,o.handlesRefs)&&o.onKeyboard(e)},o.onClickMarkLabel=function(e,t){e.stopPropagation(),o.onChange({value:t}),o.setState({value:t},(function(){return o.onEnd(!0)}))},o.saveSlider=function(e){o.sliderRef=e};var r=e.step,i=e.max,a=e.min,s=!isFinite(i-a)||(i-a)%r==0;return(0,v.ZP)(!r||Math.floor(r)!==r||s,"Slider[max] - Slider[min] (".concat(i-a,") should be a multiple of Slider[step] (").concat(r,")")),o.handlesRefs={},o}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){(0,y.Z)((0,b.Z)(n.prototype),"componentWillUnmount",this)&&(0,y.Z)((0,b.Z)(n.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,o=t.reverse,r=e.getBoundingClientRect();return n?o?r.bottom:r.top:window.pageXOffset+(o?r.right:r.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=(0,k.Z)(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=(0,k.Z)(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=(0,k.Z)(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=(0,k.Z)(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){var e;this.props.disabled||null===(e=this.handlesRefs[0])||void 0===e||e.focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){var n,o;null===(n=e.handlesRefs[t])||void 0===n||null===(o=n.blur)||void 0===o||o.call(n)}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,o=t.min,r=t.max,i=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-i)*(r-o)+o:i*(r-o)+o}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min,o=(e-n)/(t.max-n);return Math.max(0,100*o)}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,t=this.props,o=t.prefixCls,i=t.className,a=t.marks,s=t.dots,c=t.step,p=t.included,f=t.disabled,d=t.vertical,v=t.reverse,h=t.min,m=t.max,g=t.children,k=t.maximumTrackStyle,C=t.style,T=t.railStyle,w=t.dotStyle,P=t.activeDotStyle,E=(0,y.Z)((0,b.Z)(n.prototype),"render",this).call(this),D=E.tracks,S=E.handles,O=Z()(o,(e={},(0,r.Z)(e,"".concat(o,"-with-marks"),Object.keys(a).length),(0,r.Z)(e,"".concat(o,"-disabled"),f),(0,r.Z)(e,"".concat(o,"-vertical"),d),(0,r.Z)(e,i,i),e));return u().createElement("div",{ref:this.saveSlider,className:O,onTouchStart:f?U:this.onTouchStart,onMouseDown:f?U:this.onMouseDown,onMouseUp:f?U:this.onMouseUp,onKeyDown:f?U:this.onKeyDown,onFocus:f?U:this.onFocus,onBlur:f?U:this.onBlur,style:C},u().createElement("div",{className:"".concat(o,"-rail"),style:(0,l.Z)((0,l.Z)({},k),T)}),D,u().createElement(x,{prefixCls:o,vertical:d,reverse:v,marks:a,dots:s,step:c,included:p,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,dotStyle:w,activeDotStyle:P}),S,u().createElement(M,{className:"".concat(o,"-mark"),onClickLabel:f?U:this.onClickMarkLabel,vertical:d,marks:a,included:p,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,reverse:v}),g)}}]),n}(e),t.displayName="ComponentEnhancer(".concat(e.displayName,")"),t.defaultProps=(0,l.Z)((0,l.Z)({},e.defaultProps),{},{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=(0,m.Z)(e,["index"]);return delete n.dragging,null===n.value?null:u().createElement(T,(0,i.Z)({},n,{key:t}))},onBeforeChange:U,onChange:U,onAfterChange:U,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),t}var X=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).positionGetValue=function(e){return[]},o.onEnd=function(e){var t=o.state.dragging;o.removeDocumentEvents(),(t||e)&&o.props.onAfterChange(o.getValue()),o.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,i=void 0!==e.value?e.value:r;return o.state={value:o.trimAlignValue(i),dragging:!1},(0,v.ZP)(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),(0,v.ZP)(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),o}return(0,p.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,o=n.min,r=n.max,i=n.value,a=n.onChange;if("min"in this.props||"max"in this.props){var s=void 0!==i?i:t.value,u=this.trimAlignValue(s,this.props);u!==t.value&&(this.setState({value:u}),o===e.min&&r===e.max||!S(s,this.props)||a(u))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),o=e.value>this.props.max?(0,l.Z)((0,l.Z)({},e),{},{value:this.props.max}):e;n&&this.setState(o);var r=o.value;t.onChange(r)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var o=this.calcValueByPos(e);this.startValue=o,this.startPosition=e,o!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:o}))}},{key:"onMove",value:function(e,t){F(e);var n=this.state.value,o=this.calcValueByPos(t);o!==n&&this.onChange({value:o})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,o=I(e,t.vertical,n);if(o){F(e);var r=this.state.value,i=o(r,this.props),a=this.trimAlignValue(i);if(a===r)return;this.onChange({value:a}),this.props.onAfterChange(a),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){var e=this.props.startPoint||this.props.min;return this.state.value>e?e:this.state.value}},{key:"getUpperBound",value:function(){return this.state.value<this.props.startPoint?this.props.startPoint:this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=(0,l.Z)((0,l.Z)({},this.props),t),o=B(e,n);return A(o,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,o=t.vertical,r=t.included,i=t.disabled,a=t.minimumTrackStyle,s=t.trackStyle,c=t.handleStyle,p=t.tabIndex,f=t.ariaLabelForHandle,d=t.ariaLabelledByForHandle,v=t.ariaValueTextFormatterForHandle,m=t.min,g=t.max,y=t.startPoint,b=t.reverse,k=t.handle,C=this.state,Z=C.value,x=C.dragging,M=this.calcOffset(Z),T=k({className:"".concat(n,"-handle"),prefixCls:n,vertical:o,offset:M,value:Z,dragging:x,disabled:i,min:m,max:g,reverse:b,index:0,tabIndex:p,ariaLabel:f,ariaLabelledBy:d,ariaValueTextFormatter:v,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),w=void 0!==y?this.calcOffset(y):0,P=s[0]||s;return{tracks:u().createElement(h,{className:"".concat(n,"-track"),vertical:o,included:r,offset:w,reverse:b,length:M-w,style:(0,l.Z)((0,l.Z)({},a),P)}),handles:T}}}]),n}(u().Component),W=j(X),Y=function(e){var t=e.value,n=e.handle,o=e.bounds,r=e.props,i=r.allowCross,a=r.pushable,s=Number(a),u=B(t,r),l=u;return i||null==n||void 0===o||(n>0&&u<=o[n-1]+s&&(l=o[n-1]+s),n<o.length-1&&u>=o[n+1]-s&&(l=o[n+1]-s)),A(l,r)},z=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o;(0,c.Z)(this,n),(o=t.call(this,e)).positionGetValue=function(e){var t=o.getValue(),n=o.calcValueByPos(e),r=o.getClosestBound(n),i=o.getBoundNeedMoving(n,r);if(n===t[i])return null;var a=(0,g.Z)(t);return a[i]=n,a},o.onEnd=function(e){var t=o.state.handle;o.removeDocumentEvents(),t||(o.dragTrack=!1),(null!==t||e)&&o.props.onAfterChange(o.getValue()),o.setState({handle:null})};var r=e.count,i=e.min,a=e.max,s=Array.apply(void 0,(0,g.Z)(Array(r+1))).map((function(){return i})),u="defaultValue"in e?e.defaultValue:s,l=(void 0!==e.value?e.value:u).map((function(t,n){return Y({value:t,handle:n,props:e})})),p=l[0]===a?0:l.length-1;return o.state={handle:null,recent:p,bounds:l},o}return(0,p.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"getSliderLength",value:function(){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this,o=this.props,r=o.onChange,i=o.value,a=o.min,s=o.max;if(("min"in this.props||"max"in this.props)&&(a!==e.min||s!==e.max)){var u=i||t.bounds;u.some((function(e){return S(e,n.props)}))&&r(u.map((function(e){return B(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if("value"in t){var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}else this.setState(e);var o=(0,l.Z)((0,l.Z)({},this.state),e).bounds;t.onChange(o)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,o=this.getValue();t.onBeforeChange(o);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e;var i=this.getClosestBound(r);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(r,i),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),r!==o[this.prevMovedHandleIndex]){var a=(0,g.Z)(n.bounds);a[this.prevMovedHandleIndex]=r,this.onChange({bounds:a})}}},{key:"onMove",value:function(e,t,n,o){F(e);var r=this.state,i=this.props,a=i.max||100,s=i.min||0;if(n){var u=i.vertical?-t:t;u=i.reverse?-u:u;var l=a-Math.max.apply(Math,(0,g.Z)(o)),c=s-Math.min.apply(Math,(0,g.Z)(o)),p=Math.min(Math.max(u/(this.getSliderLength()/100),c),l),f=o.map((function(e){return Math.floor(Math.max(Math.min(e+p,a),s))}));r.bounds.map((function(e,t){return e===f[t]})).some((function(e){return!e}))&&this.onChange({bounds:f})}else{var d=this.calcValueByPos(t);d!==r.bounds[r.handle]&&this.moveTo(d)}}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,o=I(e,t.vertical,n);if(o){F(e);var r=this.state,i=this.props,a=r.bounds,s=r.handle,u=a[null===s?r.recent:s],l=o(u,i),c=Y({value:l,handle:s,bounds:r.bounds,props:i});if(c===u)return;this.moveTo(c,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,o=1;o<t.length-1;o+=1)e>=t[o]&&(n=o);return Math.abs(t[n+1]-e)<Math.abs(t[n]-e)&&(n+=1),n}},{key:"getBoundNeedMoving",value:function(e,t){var n=this.state,o=n.bounds,r=n.recent,i=t,a=o[t+1]===o[t];return a&&o[r]===o[t]&&(i=r),a&&e!==o[t+1]&&(i=e<o[t+1]?t:t+1),i}},{key:"getLowerBound",value:function(){return this.state.bounds[0]}},{key:"getUpperBound",value:function(){var e=this.state.bounds;return e[e.length-1]}},{key:"getPoints",value:function(){var e=this.props,t=e.marks,n=e.step,o=e.min,r=e.max,i=this.internalPointsCache;if(!i||i.marks!==t||i.step!==n){var a=(0,l.Z)({},t);if(null!==n)for(var s=o;s<=r;s+=n)a[s]=s;var u=Object.keys(a).map(parseFloat);u.sort((function(e,t){return e-t})),this.internalPointsCache={marks:t,step:n,points:u}}return this.internalPointsCache.points}},{key:"moveTo",value:function(e,t){var n=this,o=this.state,r=this.props,i=(0,g.Z)(o.bounds),a=null===o.handle?o.recent:o.handle;i[a]=e;var s=a;!1!==r.pushable?this.pushSurroundingHandles(i,s):r.allowCross&&(i.sort((function(e,t){return e-t})),s=i.indexOf(e)),this.onChange({recent:s,handle:s,bounds:i}),t&&(this.props.onAfterChange(i),this.setState({},(function(){n.handlesRefs[s].focus()})),this.onEnd())}},{key:"pushSurroundingHandles",value:function(e,t){var n=e[t],o=this.props.pushable,r=Number(o),i=0;if(e[t+1]-n<r&&(i=1),n-e[t-1]<r&&(i=-1),0!==i){var a=t+i,s=i*(e[a]-n);this.pushHandle(e,a,i,r-s)||(e[t]=e[a]-i*r)}}},{key:"pushHandle",value:function(e,t,n,o){for(var r=e[t],i=e[t];n*(i-r)<o;){if(!this.pushHandleOnePoint(e,t,n))return e[t]=r,!1;i=e[t]}return!0}},{key:"pushHandleOnePoint",value:function(e,t,n){var o=this.getPoints(),r=o.indexOf(e[t])+n;if(r>=o.length||r<0)return!1;var i=t+n,a=o[r],s=this.props.pushable,u=Number(s),l=n*(e[i]-a);return!!this.pushHandle(e,i,n,u-l)&&(e[t]=a,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,o=t.bounds;return Y({value:e,handle:n,bounds:o,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,o=t.bounds,i=this.props,a=i.prefixCls,s=i.vertical,l=i.included,c=i.disabled,p=i.min,f=i.max,d=i.reverse,v=i.handle,m=i.trackStyle,g=i.handleStyle,y=i.tabIndex,b=i.ariaLabelGroupForHandles,k=i.ariaLabelledByGroupForHandles,C=i.ariaValueTextFormatterGroupForHandles,x=o.map((function(t){return e.calcOffset(t)})),M="".concat(a,"-handle"),T=o.map((function(t,o){var i,u=y[o]||0;(c||null===y[o])&&(u=null);var l=n===o;return v({className:Z()((i={},(0,r.Z)(i,M,!0),(0,r.Z)(i,"".concat(M,"-").concat(o+1),!0),(0,r.Z)(i,"".concat(M,"-dragging"),l),i)),prefixCls:a,vertical:s,dragging:l,offset:x[o],value:t,index:o,tabIndex:u,min:p,max:f,reverse:d,disabled:c,style:g[o],ref:function(t){return e.saveHandle(o,t)},ariaLabel:b[o],ariaLabelledBy:k[o],ariaValueTextFormatter:C[o]})}));return{tracks:o.slice(0,-1).map((function(e,t){var n,o=t+1,i=Z()((n={},(0,r.Z)(n,"".concat(a,"-track"),!0),(0,r.Z)(n,"".concat(a,"-track-").concat(o),!0),n));return u().createElement(h,{className:i,vertical:s,reverse:d,included:l,offset:x[o-1],length:x[o]-x[o-1],style:m[t],key:o})})),handles:T}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(!("value"in e||"min"in e||"max"in e))return null;var n=e.value||t.bounds,o=n.map((function(n,o){return Y({value:n,handle:o,bounds:t.bounds,props:e})}));if(t.bounds.length===o.length){if(o.every((function(e,n){return e===t.bounds[n]})))return null}else o=n.map((function(t,n){return Y({value:t,handle:n,props:e})}));return(0,l.Z)((0,l.Z)({},t),{},{bounds:o})}}]),n}(u().Component);z.displayName="Range",z.defaultProps={count:1,allowCross:!0,pushable:!1,draggableTrack:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var G=j(z),K=n(5558),_=n(6871),Q=n(7384),J=n(8369),q=n(5643),$=n(505);function ee(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var te=n(4511),ne=n(9064);function oe(e){var t=e.prefixCls,n=e.motion,o=e.animation,r=e.transitionName;return n||(o?{motionName:"".concat(t,"-").concat(o)}:r?{motionName:r}:null)}function re(e){var t=e.prefixCls,n=e.visible,o=e.zIndex,r=e.mask,a=e.maskMotion,u=e.maskAnimation,c=e.maskTransitionName;if(!r)return null;var p={};return(a||c||u)&&(p=(0,l.Z)({motionAppear:!0},oe({motion:a,prefixCls:t,transitionName:c,animation:u}))),s.createElement(ne.Z,(0,i.Z)({},p,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return s.createElement("div",{style:{zIndex:o},className:Z()("".concat(t,"-mask"),n)})}))}var ie=n(4001),ae=n(3493),se=n(7410);function ue(e,t){var n=null,o=null,r=new se.Z((function(e){var r=(0,a.Z)(e,1)[0].target;if(document.documentElement.contains(r)){var i=r.getBoundingClientRect(),s=i.width,u=i.height,l=Math.floor(s),c=Math.floor(u);n===l&&o===c||Promise.resolve().then((function(){t({width:l,height:c})})),n=l,o=c}}));return e&&r.observe(e),function(){r.disconnect()}}function le(e){return"function"!=typeof e?null:e()}function ce(e){return"object"===(0,o.Z)(e)&&e?e:null}var pe=u().forwardRef((function(e,t){var n=e.children,o=e.disabled,r=e.target,i=e.align,s=e.onAlign,l=e.monitorWindowResize,c=e.monitorBufferTime,p=void 0===c?0:c,f=u().useRef({}),d=u().useRef(),v=u().Children.only(n),h=u().useRef({});h.current.disabled=o,h.current.target=r,h.current.onAlign=s;var m=function(e,t){var n=u().useRef(!1),o=u().useRef(null);function r(){window.clearTimeout(o.current)}return[function e(a){if(n.current&&!0!==a)r(),o.current=window.setTimeout((function(){n.current=!1,e()}),t);else{if(!1===function(){var e=h.current,t=e.disabled,n=e.target,o=e.onAlign;if(!t&&n){var r,a=d.current,s=le(n),u=ce(n);f.current.element=s,f.current.point=u;var l=document.activeElement;return s&&(0,ie.Z)(s)?r=(0,ae.E3)(a,s,i):u&&(r=(0,ae.zy)(a,u,i)),function(e,t){e!==document.activeElement&&(0,Q.Z)(t,e)&&"function"==typeof e.focus&&e.focus()}(l,a),o&&r&&o(a,r),!0}return!1}())return;n.current=!0,r(),o.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,r()}]}(0,p),g=(0,a.Z)(m,2),y=g[0],b=g[1],C=u().useRef({cancel:function(){}}),Z=u().useRef({cancel:function(){}});u().useEffect((function(){var e,t,n=le(r),o=ce(r);d.current!==Z.current.element&&(Z.current.cancel(),Z.current.element=d.current,Z.current.cancel=ue(d.current,y)),f.current.element===n&&((e=f.current.point)===(t=o)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))||(y(),C.current.element!==n&&(C.current.cancel(),C.current.element=n,C.current.cancel=ue(n,y)))})),u().useEffect((function(){o?b():y()}),[o]);var x=u().useRef(null);return u().useEffect((function(){l?x.current||(x.current=(0,k.Z)(window,"resize",y)):x.current&&(x.current.remove(),x.current=null)}),[l]),u().useEffect((function(){return function(){C.current.cancel(),Z.current.cancel(),x.current&&x.current.remove(),b()}}),[]),u().useImperativeHandle(t,(function(){return{forceAlign:function(){return y(!0)}}})),u().isValidElement(v)&&(v=u().cloneElement(v,{ref:(0,q.sQ)(v.ref,d)})),v}));pe.displayName="Align";var fe=pe,de=n(5450),ve=n.n(de),he=n(7938),me=["measure","align",null,"motion"],ge=s.forwardRef((function(e,t){var n=e.visible,o=e.prefixCls,r=e.className,u=e.style,c=e.children,p=e.zIndex,f=e.stretch,d=e.destroyPopupOnHide,v=e.forceRender,h=e.align,m=e.point,g=e.getRootDomNode,y=e.getClassNameFromAlign,b=e.onAlign,k=e.onMouseEnter,C=e.onMouseLeave,x=e.onMouseDown,M=e.onTouchStart,T=(0,s.useRef)(),w=(0,s.useRef)(),P=(0,s.useState)(),E=(0,a.Z)(P,2),D=E[0],S=E[1],O=function(e){var t=s.useState({width:0,height:0}),n=(0,a.Z)(t,2),o=n[0],r=n[1];return[s.useMemo((function(){var t={};if(e){var n=o.width,r=o.height;-1!==e.indexOf("height")&&r?t.height=r:-1!==e.indexOf("minHeight")&&r&&(t.minHeight=r),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,o]),function(e){r({width:e.offsetWidth,height:e.offsetHeight})}]}(f),N=(0,a.Z)(O,2),V=N[0],R=N[1],H=function(e,t){var n=(0,s.useState)(null),o=(0,a.Z)(n,2),r=o[0],i=o[1],u=(0,s.useRef)(),l=(0,s.useRef)(!1);function c(e){l.current||i(e)}function p(){_.Z.cancel(u.current)}return(0,s.useEffect)((function(){c("measure")}),[e]),(0,s.useEffect)((function(){"measure"===r&&(f&&R(g())),r&&(u.current=(0,_.Z)((0,he.Z)(ve().mark((function e(){var t,n;return ve().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=me.indexOf(r),(n=me[t+1])&&-1!==t&&c(n);case 3:case"end":return e.stop()}}),e)})))))}),[r]),(0,s.useEffect)((function(){return function(){l.current=!0,p()}}),[]),[r,function(e){p(),u.current=(0,_.Z)((function(){c((function(e){switch(r){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n),L=(0,a.Z)(H,2),B=L[0],A=L[1],F=(0,s.useRef)();function I(){var e;null===(e=T.current)||void 0===e||e.forceAlign()}function U(e,t){if("align"===B){var n=y(t);S(n),D!==n?Promise.resolve().then((function(){I()})):A((function(){var e;null===(e=F.current)||void 0===e||e.call(F)})),null==b||b(e,t)}}var j=(0,l.Z)({},oe(e));function X(){return new Promise((function(e){F.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=j[e];j[e]=function(e,n){return A(),null==t?void 0:t(e,n)}})),s.useEffect((function(){j.motionName||"motion"!==B||A()}),[j.motionName,B]),s.useImperativeHandle(t,(function(){return{forceAlign:I,getElement:function(){return w.current}}}));var W=(0,l.Z)((0,l.Z)((0,l.Z)({},V),{},{zIndex:p},u),{},{opacity:"motion"!==B&&"stable"!==B&&n?0:void 0,pointerEvents:"stable"===B?void 0:"none"}),Y=!0;!(null==h?void 0:h.points)||"align"!==B&&"stable"!==B||(Y=!1);var z=c;return s.Children.count(c)>1&&(z=s.createElement("div",{className:"".concat(o,"-content")},c)),s.createElement(ne.Z,(0,i.Z)({visible:n,ref:w,leavedClassName:"".concat(o,"-hidden")},j,{onAppearPrepare:X,onEnterPrepare:X,removeOnLeave:d,forceRender:v}),(function(e,t){var n=e.className,i=e.style,a=Z()(o,r,D,n);return s.createElement(fe,{target:m||g,key:"popup",ref:T,monitorWindowResize:!0,disabled:Y,align:h,onAlign:U},s.createElement("div",{ref:t,className:a,onMouseEnter:k,onMouseLeave:C,onMouseDownCapture:x,onTouchStartCapture:M,style:(0,l.Z)((0,l.Z)({},i),W)},z))}))}));ge.displayName="PopupInner";var ye=ge,be=s.forwardRef((function(e,t){var n=e.prefixCls,o=e.visible,r=e.zIndex,a=e.children,u=e.mobile,c=(u=void 0===u?{}:u).popupClassName,p=u.popupStyle,f=u.popupMotion,d=void 0===f?{}:f,v=u.popupRender,h=s.useRef();s.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return h.current}}}));var m=(0,l.Z)({zIndex:r},p),g=a;return s.Children.count(a)>1&&(g=s.createElement("div",{className:"".concat(n,"-content")},a)),v&&(g=v(g)),s.createElement(ne.Z,(0,i.Z)({visible:o,ref:h,removeOnLeave:!0},d),(function(e,t){var o=e.className,r=e.style,i=Z()(n,c,o);return s.createElement("div",{ref:t,className:i,style:(0,l.Z)((0,l.Z)({},r),m)},g)}))}));be.displayName="MobilePopupInner";var ke=be,Ce=s.forwardRef((function(e,t){var n=e.visible,o=e.mobile,r=(0,m.Z)(e,["visible","mobile"]),u=(0,s.useState)(n),c=(0,a.Z)(u,2),p=c[0],f=c[1],d=(0,s.useState)(!1),v=(0,a.Z)(d,2),h=v[0],g=v[1],y=(0,l.Z)((0,l.Z)({},r),{},{visible:p});(0,s.useEffect)((function(){f(n),n&&o&&g((0,te.Z)())}),[n,o]);var b=h?s.createElement(ke,(0,i.Z)({},y,{mobile:o,ref:t})):s.createElement(ye,(0,i.Z)({},y,{ref:t}));return s.createElement("div",null,s.createElement(re,y),b)}));Ce.displayName="Popup";var Ze=Ce,xe=s.createContext(null);function Me(){}var Te,we,Pe=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],Ee=(Te=$.Z,we=function(e){(0,f.Z)(n,e);var t=(0,d.Z)(n);function n(e){var o,r;return(0,c.Z)(this,n),(o=t.call(this,e)).popupRef=s.createRef(),o.triggerRef=s.createRef(),o.onMouseEnter=function(e){var t=o.props.mouseEnterDelay;o.fireEvents("onMouseEnter",e),o.delaySetPopupVisible(!0,t,t?null:e)},o.onMouseMove=function(e){o.fireEvents("onMouseMove",e),o.setPoint(e)},o.onMouseLeave=function(e){o.fireEvents("onMouseLeave",e),o.delaySetPopupVisible(!1,o.props.mouseLeaveDelay)},o.onPopupMouseEnter=function(){o.clearDelayTimer()},o.onPopupMouseLeave=function(e){var t;e.relatedTarget&&!e.relatedTarget.setTimeout&&(0,Q.Z)(null===(t=o.popupRef.current)||void 0===t?void 0:t.getElement(),e.relatedTarget)||o.delaySetPopupVisible(!1,o.props.mouseLeaveDelay)},o.onFocus=function(e){o.fireEvents("onFocus",e),o.clearDelayTimer(),o.isFocusToShow()&&(o.focusTime=Date.now(),o.delaySetPopupVisible(!0,o.props.focusDelay))},o.onMouseDown=function(e){o.fireEvents("onMouseDown",e),o.preClickTime=Date.now()},o.onTouchStart=function(e){o.fireEvents("onTouchStart",e),o.preTouchTime=Date.now()},o.onBlur=function(e){o.fireEvents("onBlur",e),o.clearDelayTimer(),o.isBlurToHide()&&o.delaySetPopupVisible(!1,o.props.blurDelay)},o.onContextMenu=function(e){e.preventDefault(),o.fireEvents("onContextMenu",e),o.setPopupVisible(!0,e)},o.onContextMenuClose=function(){o.isContextMenuToShow()&&o.close()},o.onClick=function(e){if(o.fireEvents("onClick",e),o.focusTime){var t;if(o.preClickTime&&o.preTouchTime?t=Math.min(o.preClickTime,o.preTouchTime):o.preClickTime?t=o.preClickTime:o.preTouchTime&&(t=o.preTouchTime),Math.abs(t-o.focusTime)<20)return;o.focusTime=0}o.preClickTime=0,o.preTouchTime=0,o.isClickToShow()&&(o.isClickToHide()||o.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var n=!o.state.popupVisible;(o.isClickToHide()&&!n||n&&o.isClickToShow())&&o.setPopupVisible(!o.state.popupVisible,e)},o.onPopupMouseDown=function(){var e;o.hasPopupMouseDown=!0,clearTimeout(o.mouseDownTimeout),o.mouseDownTimeout=window.setTimeout((function(){o.hasPopupMouseDown=!1}),0),o.context&&(e=o.context).onPopupMouseDown.apply(e,arguments)},o.onDocumentClick=function(e){if(!o.props.mask||o.props.maskClosable){var t=e.target,n=o.getRootDomNode(),r=o.getPopupDomNode();(0,Q.Z)(n,t)&&!o.isContextMenuOnly()||(0,Q.Z)(r,t)||o.hasPopupMouseDown||o.close()}},o.getRootDomNode=function(){var e=o.props.getTriggerDOMNode;if(e)return e(o.triggerRef.current);try{var t=(0,J.Z)(o.triggerRef.current);if(t)return t}catch(e){}return P().findDOMNode((0,K.Z)(o))},o.getPopupClassNameFromAlign=function(e){var t=[],n=o.props,r=n.popupPlacement,i=n.builtinPlacements,a=n.prefixCls,s=n.alignPoint,u=n.getPopupClassNameFromAlign;return r&&i&&t.push(function(e,t,n,o){for(var r=n.points,i=Object.keys(e),a=0;a<i.length;a+=1){var s=i[a];if(ee(e[s].points,r,o))return"".concat(t,"-placement-").concat(s)}return""}(i,a,e,s)),u&&t.push(u(e)),t.join(" ")},o.getComponent=function(){var e=o.props,t=e.prefixCls,n=e.destroyPopupOnHide,r=e.popupClassName,a=e.onPopupAlign,u=e.popupMotion,l=e.popupAnimation,c=e.popupTransitionName,p=e.popupStyle,f=e.mask,d=e.maskAnimation,v=e.maskTransitionName,h=e.maskMotion,m=e.zIndex,g=e.popup,y=e.stretch,b=e.alignPoint,k=e.mobile,C=e.forceRender,Z=o.state,x=Z.popupVisible,M=Z.point,T=o.getPopupAlign(),w={};return o.isMouseEnterToShow()&&(w.onMouseEnter=o.onPopupMouseEnter),o.isMouseLeaveToHide()&&(w.onMouseLeave=o.onPopupMouseLeave),w.onMouseDown=o.onPopupMouseDown,w.onTouchStart=o.onPopupMouseDown,s.createElement(Ze,(0,i.Z)({prefixCls:t,destroyPopupOnHide:n,visible:x,point:b&&M,className:r,align:T,onAlign:a,animation:l,getClassNameFromAlign:o.getPopupClassNameFromAlign},w,{stretch:y,getRootDomNode:o.getRootDomNode,style:p,mask:f,zIndex:m,transitionName:c,maskAnimation:d,maskTransitionName:v,maskMotion:h,ref:o.popupRef,motion:u,mobile:k,forceRender:C}),"function"==typeof g?g():g)},o.attachParent=function(e){_.Z.cancel(o.attachId);var t,n=o.props,r=n.getPopupContainer,i=n.getDocument,a=o.getRootDomNode();r?(a||0===r.length)&&(t=r(a)):t=i(o.getRootDomNode()).body,t?t.appendChild(e):o.attachId=(0,_.Z)((function(){o.attachParent(e)}))},o.getContainer=function(){var e=(0,o.props.getDocument)(o.getRootDomNode()).createElement("div");return e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",o.attachParent(e),e},o.setPoint=function(e){o.props.alignPoint&&e&&o.setState({point:{pageX:e.pageX,pageY:e.pageY}})},o.handlePortalUpdate=function(){o.state.prevPopupVisible!==o.state.popupVisible&&o.props.afterPopupVisibleChange(o.state.popupVisible)},r="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,o.state={prevPopupVisible:r,popupVisible:r},Pe.forEach((function(e){o["fire".concat(e)]=function(t){o.fireEvents(e,t)}})),o}return(0,p.Z)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e,t=this.props;if(this.state.popupVisible)return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(e=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=(0,k.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,k.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,k.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,k.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),_.Z.cancel(this.attachId)}},{key:"getPopupDomNode",value:function(){var e;return(null===(e=this.popupRef.current)||void 0===e?void 0:e.getElement())||null}},{key:"getPopupAlign",value:function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,o=e.builtinPlacements;return t&&o?function(e,t,n){var o=e[t]||{};return(0,l.Z)((0,l.Z)({},o),n)}(o,t,n):n}},{key:"setPopupVisible",value:function(e,t){var n=this.props.alignPoint,o=this.state.popupVisible;this.clearDelayTimer(),o!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:o}),this.props.onPopupVisibleChange(e)),n&&t&&e&&this.setPoint(t)}},{key:"delaySetPopupVisible",value:function(e,t,n){var o=this,r=1e3*t;if(this.clearDelayTimer(),r){var i=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){o.setPopupVisible(e,i),o.clearDelayTimer()}),r)}else this.setPopupVisible(e,n)}},{key:"clearDelayTimer",value:function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)}},{key:"clearOutsideHandler",value:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)}},{key:"createTwoChains",value:function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire".concat(e)]:t[e]||n[e]}},{key:"isClickToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isContextMenuOnly",value:function(){var e=this.props.action;return"contextMenu"===e||1===e.length&&"contextMenu"===e[0]}},{key:"isContextMenuToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")}},{key:"isClickToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isMouseEnterToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")}},{key:"isMouseLeaveToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")}},{key:"isFocusToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")}},{key:"isBlurToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")}},{key:"forcePopupAlign",value:function(){var e;this.state.popupVisible&&(null===(e=this.popupRef.current)||void 0===e||e.forceAlign())}},{key:"fireEvents",value:function(e,t){var n=this.props.children.props[e];n&&n(t);var o=this.props[e];o&&o(t)}},{key:"close",value:function(){this.setPopupVisible(!1)}},{key:"render",value:function(){var e=this.state.popupVisible,t=this.props,n=t.children,o=t.forceRender,r=t.alignPoint,i=t.className,a=t.autoDestroy,u=s.Children.only(n),c={key:"trigger"};this.isContextMenuToShow()?c.onContextMenu=this.onContextMenu:c.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(c.onClick=this.onClick,c.onMouseDown=this.onMouseDown,c.onTouchStart=this.onTouchStart):(c.onClick=this.createTwoChains("onClick"),c.onMouseDown=this.createTwoChains("onMouseDown"),c.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(c.onMouseEnter=this.onMouseEnter,r&&(c.onMouseMove=this.onMouseMove)):c.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?c.onMouseLeave=this.onMouseLeave:c.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(c.onFocus=this.onFocus,c.onBlur=this.onBlur):(c.onFocus=this.createTwoChains("onFocus"),c.onBlur=this.createTwoChains("onBlur"));var p=Z()(u&&u.props&&u.props.className,i);p&&(c.className=p);var f=(0,l.Z)({},c);(0,q.Yr)(u)&&(f.ref=(0,q.sQ)(this.triggerRef,u.ref));var d,v=s.cloneElement(u,f);return(e||this.popupRef.current||o)&&(d=s.createElement(Te,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&a&&(d=null),s.createElement(xe.Provider,{value:{onPopupMouseDown:this.onPopupMouseDown}},v,d)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.popupVisible,o={};return void 0!==n&&t.popupVisible!==n&&(o.popupVisible=n,o.prevPopupVisible=t.popupVisible),o}}]),n}(s.Component),we.contextType=xe,we.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(e){return e?e.ownerDocument:window.document},onPopupVisibleChange:Me,afterPopupVisibleChange:Me,onPopupAlign:Me,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},we),De={adjustX:1,adjustY:1},Se=[0,0],Oe={left:{points:["cr","cl"],overflow:De,offset:[-4,0],targetOffset:Se},right:{points:["cl","cr"],overflow:De,offset:[4,0],targetOffset:Se},top:{points:["bc","tc"],overflow:De,offset:[0,-4],targetOffset:Se},bottom:{points:["tc","bc"],overflow:De,offset:[0,4],targetOffset:Se},topLeft:{points:["bl","tl"],overflow:De,offset:[0,-4],targetOffset:Se},leftTop:{points:["tr","tl"],overflow:De,offset:[-4,0],targetOffset:Se},topRight:{points:["br","tr"],overflow:De,offset:[0,-4],targetOffset:Se},rightTop:{points:["tl","tr"],overflow:De,offset:[4,0],targetOffset:Se},bottomRight:{points:["tr","br"],overflow:De,offset:[0,4],targetOffset:Se},rightBottom:{points:["bl","br"],overflow:De,offset:[4,0],targetOffset:Se},bottomLeft:{points:["tl","bl"],overflow:De,offset:[0,4],targetOffset:Se},leftBottom:{points:["br","bl"],overflow:De,offset:[-4,0],targetOffset:Se}},Ne=function(e){var t=e.overlay,n=e.prefixCls,o=e.id,r=e.overlayInnerStyle;return s.createElement("div",{className:"".concat(n,"-inner"),id:o,role:"tooltip",style:r},"function"==typeof t?t():t)},Ve=function(e,t){var n=e.overlayClassName,r=e.trigger,a=void 0===r?["hover"]:r,u=e.mouseEnterDelay,c=void 0===u?0:u,p=e.mouseLeaveDelay,f=void 0===p?.1:p,d=e.overlayStyle,v=e.prefixCls,h=void 0===v?"rc-tooltip":v,g=e.children,y=e.onVisibleChange,b=e.afterVisibleChange,k=e.transitionName,C=e.animation,Z=e.motion,x=e.placement,M=void 0===x?"right":x,T=e.align,w=void 0===T?{}:T,P=e.destroyTooltipOnHide,E=void 0!==P&&P,D=e.defaultVisible,S=e.getTooltipContainer,O=e.overlayInnerStyle,N=(0,m.Z)(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle"]),V=(0,s.useRef)(null);(0,s.useImperativeHandle)(t,(function(){return V.current}));var R=(0,l.Z)({},N);"visible"in e&&(R.popupVisible=e.visible);var H=!1,L=!1;if("boolean"==typeof E)H=E;else if(E&&"object"===(0,o.Z)(E)){var B=E.keepParent;H=!0===B,L=!1===B}return s.createElement(Ee,(0,i.Z)({popupClassName:n,prefixCls:h,popup:function(){var t=e.arrowContent,n=void 0===t?null:t,o=e.overlay,r=e.id;return[s.createElement("div",{className:"".concat(h,"-arrow"),key:"arrow"},n),s.createElement(Ne,{key:"content",prefixCls:h,id:r,overlay:o,overlayInnerStyle:O})]},action:a,builtinPlacements:Oe,popupPlacement:M,ref:V,popupAlign:w,getPopupContainer:S,onPopupVisibleChange:y,afterPopupVisibleChange:b,popupTransitionName:k,popupAnimation:C,popupMotion:Z,defaultPopupVisible:D,destroyPopupOnHide:H,autoDestroy:L,mouseLeaveDelay:f,popupStyle:d,mouseEnterDelay:c},R),g)},Re=(0,s.forwardRef)(Ve),He=s.forwardRef((function(e,t){var n=e.visible,o=e.overlay,r=s.useRef(null),a=(0,q.sQ)(t,r),u=s.useRef(null);function l(){_.Z.cancel(u.current)}return s.useEffect((function(){return n?u.current=(0,_.Z)((function(){var e;null===(e=r.current)||void 0===e||e.forcePopupAlign()})):l(),l}),[n,o]),s.createElement(Re,(0,i.Z)({ref:a},e))})),Le=W;Le.Range=G,Le.Handle=T,Le.createSliderWithTooltip=function(e){var t;return t=function(t){(0,f.Z)(o,t);var n=(0,d.Z)(o);function o(){var e;return(0,c.Z)(this,o),(e=n.apply(this,arguments)).state={visibles:{}},e.handleTooltipVisibleChange=function(t,n){e.setState((function(e){return{visibles:(0,l.Z)((0,l.Z)({},e.visibles),{},(0,r.Z)({},t,n))}}))},e.handleWithTooltip=function(t){var n,o=t.value,r=t.dragging,a=t.index,s=t.disabled,c=(0,m.Z)(t,["value","dragging","index","disabled"]),p=e.props,f=p.tipFormatter,d=p.tipProps,v=p.handleStyle,h=p.getTooltipContainer,g=d.prefixCls,y=void 0===g?"rc-slider-tooltip":g,b=d.overlay,k=void 0===b?f(o):b,C=d.placement,Z=void 0===C?"top":C,x=d.visible,M=void 0!==x&&x,w=(0,m.Z)(d,["prefixCls","overlay","placement","visible"]);return n=Array.isArray(v)?v[a]||v[0]:v,u().createElement(He,(0,i.Z)({},w,{getTooltipContainer:h,prefixCls:y,overlay:k,placement:Z,visible:!s&&(e.state.visibles[a]||r)||M,key:a}),u().createElement(T,(0,i.Z)({},c,{style:(0,l.Z)({},n),value:o,onMouseEnter:function(){return e.handleTooltipVisibleChange(a,!0)},onMouseLeave:function(){return e.handleTooltipVisibleChange(a,!1)}})))},e}return(0,p.Z)(o,[{key:"render",value:function(){return u().createElement(e,(0,i.Z)({},this.props,{handle:this.handleWithTooltip}))}}]),o}(u().Component),t.defaultProps={tipFormatter:function(e){return e},handleStyle:[{}],tipProps:{},getTooltipContainer:function(e){return e.parentNode}},t};var Be=Le,Ae=n(1857),Fe=s.forwardRef((function(e,t){var n=e.visible,o=(0,s.useRef)(null),r=(0,s.useRef)(null);function a(){_.Z.cancel(r.current),r.current=null}return s.useEffect((function(){return n?r.current=(0,_.Z)((function(){var e;null===(e=o.current)||void 0===e||e.forcePopupAlign(),r.current=null})):a(),a}),[n,e.title]),s.createElement(Ae.Z,(0,i.Z)({ref:(0,q.sQ)(o,t)},e))})),Ie=n(4178),Ue=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n},je=s.forwardRef((function(e,t){var n,u=s.useContext(Ie.E_),l=u.getPrefixCls,c=u.direction,p=u.getPopupContainer,f=s.useState({}),d=(0,a.Z)(f,2),v=d[0],h=d[1],m=function(e,t){h((function(n){return(0,i.Z)((0,i.Z)({},n),(0,r.Z)({},e,t))}))},g=function(e,t){return e||(t?"rtl"===c?"left":"right":"top")},y=function(t){var n=t.tooltipPrefixCls,o=t.prefixCls,r=t.info,a=r.value,u=r.dragging,c=r.index,f=Ue(r,["value","dragging","index"]),d=e.tipFormatter,h=e.tooltipVisible,y=e.tooltipPlacement,b=e.getTooltipPopupContainer,k=e.vertical,C=!!d&&(v[c]||u),Z=h||void 0===h&&C,x=l();return s.createElement(Fe,{prefixCls:n,title:d?d(a):"",visible:Z,placement:g(y,k),transitionName:"".concat(x,"-zoom-down"),key:c,overlayClassName:"".concat(o,"-tooltip"),getPopupContainer:b||p},s.createElement(T,(0,i.Z)({},f,{value:a,onMouseEnter:function(){return m(c,!0)},onMouseLeave:function(){return m(c,!1)}})))},b=e.prefixCls,k=e.tooltipPrefixCls,C=e.range,x=e.className,M=Ue(e,["prefixCls","tooltipPrefixCls","range","className"]),w=l("slider",b),P=l("tooltip",k),E=Z()(x,(0,r.Z)({},"".concat(w,"-rtl"),"rtl"===c));return"rtl"!==c||M.vertical||(M.reverse=!M.reverse),"object"===(0,o.Z)(C)&&(n=C.draggableTrack),C?s.createElement(G,(0,i.Z)({},M,{step:M.step,draggableTrack:n,className:E,ref:t,handle:function(e){return y({tooltipPrefixCls:P,prefixCls:w,info:e})},prefixCls:w})):s.createElement(Be,(0,i.Z)({},M,{step:M.step,className:E,ref:t,handle:function(e){return y({tooltipPrefixCls:P,prefixCls:w,info:e})},prefixCls:w}))}));je.displayName="Slider",je.defaultProps={tipFormatter:function(e){return"number"==typeof e?e.toString():""}};var Xe=je}}]);
|
2 |
+
//# sourceMappingURL=276.lite.js.map?ver=af4e20fa8568e0fd55dd
|
public/dist/276.lite.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"file":"276.lite.js?ver=af4e20fa8568e0fd55dd","mappings":"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","sources":["webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Track.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Steps.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/Marks.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Handle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/utils.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/createSlider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Slider.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/Range.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/Mask.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/util.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/Align.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/hooks/useBuffer.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-align/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/Popup/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/context.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-trigger/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/placements.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/Content.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/Tooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/node_modules/rc-tooltip/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/common/SliderTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/index.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/rc-slider/es/createSliderWithTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/slider/SliderTooltip.js","webpack:///../../../../../tmp/builds/devowlio/devowl-wp/node_modules/antd/es/slider/index.js"],"sourcesContent":["import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n style = props.style;\n var length = props.length,\n offset = props.offset,\n reverse = props.reverse;\n\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"height\", \"\".concat(length, \"%\")), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"width\", \"\".concat(length, \"%\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positonStyle);\n\n return included ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: elStyle\n }) : null;\n};\n\nexport default Track;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = \"\".concat(Math.abs(point - min) / range * 100, \"%\");\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'right' : 'left', offset));\n\n if (isActived) {\n style = _objectSpread(_objectSpread({}, style), activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-active\"), isActived), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-reverse\"), reverse), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: pointClassName,\n style: style,\n key: point\n });\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, elements);\n};\n\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n var marksKeys = Object.keys(marks);\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = _typeof(markPoint) === 'object' && ! /*#__PURE__*/React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-text\"), true), _defineProperty(_classNames, \"\".concat(className, \"-text-active\"), isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', \"\".concat((point - min) / range * 100, \"%\"));\n\n var leftStyle = _defineProperty({\n transform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\"),\n msTransform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\")\n }, reverse ? 'right' : 'left', \"\".concat((point - min) / range * 100, \"%\"));\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _objectSpread(_objectSpread({}, style), markPoint.style) : style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n }, markLabel);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, elements);\n};\n\nexport default Marks;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\n\nvar Handle = /*#__PURE__*/function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n var _super = _createSuper(Handle);\n\n function Handle() {\n var _this;\n\n _classCallCheck(this, Handle);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n clickFocused: false\n };\n\n _this.setHandleRef = function (node) {\n _this.handle = node;\n };\n\n _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n };\n\n _this.handleMouseDown = function (e) {\n // avoid selecting text during drag\n // https://github.com/ant-design/ant-design/issues/25010\n e.preventDefault(); // fix https://github.com/ant-design/ant-design/issues/15324\n\n _this.focus();\n };\n\n _this.handleBlur = function () {\n _this.setClickFocus(false);\n };\n\n _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n };\n\n return _this;\n }\n\n _createClass(Handle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: \"setClickFocus\",\n value: function setClickFocus(focused) {\n this.setState({\n clickFocused: focused\n });\n }\n }, {\n key: \"clickFocus\",\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _ref, _ref2;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n vertical = _this$props.vertical,\n reverse = _this$props.reverse,\n offset = _this$props.offset,\n style = _this$props.style,\n disabled = _this$props.disabled,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n tabIndex = _this$props.tabIndex,\n ariaLabel = _this$props.ariaLabel,\n ariaLabelledBy = _this$props.ariaLabelledBy,\n ariaValueTextFormatter = _this$props.ariaValueTextFormatter,\n restProps = _objectWithoutProperties(_this$props, [\"prefixCls\", \"vertical\", \"reverse\", \"offset\", \"style\", \"disabled\", \"min\", \"max\", \"value\", \"tabIndex\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaValueTextFormatter\"]);\n\n var className = classNames(this.props.className, _defineProperty({}, \"\".concat(prefixCls, \"-handle-click-focused\"), this.state.clickFocused));\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"transform\", reverse ? null : \"translateY(+50%)\"), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"transform\", \"translateX(\".concat(reverse ? '+' : '-', \"50%)\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positionStyle);\n\n var mergedTabIndex = tabIndex || 0;\n\n if (disabled || tabIndex === null) {\n mergedTabIndex = null;\n }\n\n var ariaValueText;\n\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setHandleRef,\n tabIndex: mergedTabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown // aria attribute\n ,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": !!disabled,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport { Handle as default };","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { findDOMNode } from 'react-dom';\nimport keyCode from \"rc-util/es/KeyCode\";\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n var points = Object.keys(marks).map(parseFloat);\n\n if (step !== null) {\n var baseNum = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n\n if (val >= max) {\n return max;\n }\n\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n }\n\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _get from \"@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n var _super = _createSuper(ComponentEnhancer);\n\n function ComponentEnhancer(props) {\n var _this;\n\n _classCallCheck(this, ComponentEnhancer);\n\n _this = _super.call(this, props);\n\n _this.onDown = function (e, position) {\n var p = position;\n var _this$props = _this.props,\n draggableTrack = _this$props.draggableTrack,\n isVertical = _this$props.vertical;\n var bounds = _this.state.bounds;\n var value = draggableTrack && _this.positionGetValue ? _this.positionGetValue(p) || [] : [];\n var inPoint = utils.isEventFromHandle(e, _this.handlesRefs);\n _this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map(function (n, i) {\n var v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(function (c) {\n return !c;\n });\n\n if (_this.dragTrack) {\n _this.dragOffset = p;\n _this.startBounds = _toConsumableArray(bounds);\n } else {\n if (!inPoint) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n\n _this.onStart(p);\n }\n };\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n _this.removeDocumentEvents();\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentTouchEvents();\n\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props2 = _this.props,\n onFocus = _this$props2.onFocus,\n vertical = _this$props2.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs) && !_this.dragTrack) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n\n _this.onStart(handlePosition);\n\n utils.pauseEvent(e);\n\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n if (!_this.dragTrack) {\n _this.onEnd();\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getMousePosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n\n _this.onChange({\n value: value\n }); // eslint-disable-next-line react/no-unused-state\n\n\n _this.setState({\n value: value\n }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, \"Slider[max] - Slider[min] (\".concat(max - min, \") should be a multiple of Slider[step] (\").concat(step, \")\"));\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n var _this$props3 = this.props,\n autoFocus = _this$props3.autoFocus,\n disabled = _this$props3.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (_get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this)) _get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: \"getSliderStart\",\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n reverse = _this$props4.reverse;\n var rect = slider.getBoundingClientRect();\n\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n var slider = this.sliderRef;\n\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: \"addDocumentTouchEvents\",\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: \"addDocumentMouseEvents\",\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {\n /* eslint-disable @typescript-eslint/no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var _this$handlesRefs$;\n\n if (this.props.disabled) {\n return;\n }\n\n (_this$handlesRefs$ = this.handlesRefs[0]) === null || _this$handlesRefs$ === void 0 ? void 0 : _this$handlesRefs$.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n Object.keys(this.handlesRefs).forEach(function (key) {\n var _this2$handlesRefs$ke, _this2$handlesRefs$ke2;\n\n (_this2$handlesRefs$ke = _this2.handlesRefs[key]) === null || _this2$handlesRefs$ke === void 0 ? void 0 : (_this2$handlesRefs$ke2 = _this2$handlesRefs$ke.blur) === null || _this2$handlesRefs$ke2 === void 0 ? void 0 : _this2$handlesRefs$ke2.call(_this2$handlesRefs$ke);\n });\n }\n }, {\n key: \"calcValue\",\n value: function calcValue(offset) {\n var _this$props5 = this.props,\n vertical = _this$props5.vertical,\n min = _this$props5.min,\n max = _this$props5.max;\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: \"calcValueByPos\",\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n var _this$props6 = this.props,\n min = _this$props6.min,\n max = _this$props6.max;\n var ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props7 = this.props,\n prefixCls = _this$props7.prefixCls,\n className = _this$props7.className,\n marks = _this$props7.marks,\n dots = _this$props7.dots,\n step = _this$props7.step,\n included = _this$props7.included,\n disabled = _this$props7.disabled,\n vertical = _this$props7.vertical,\n reverse = _this$props7.reverse,\n min = _this$props7.min,\n max = _this$props7.max,\n children = _this$props7.children,\n maximumTrackStyle = _this$props7.maximumTrackStyle,\n style = _this$props7.style,\n railStyle = _this$props7.railStyle,\n dotStyle = _this$props7.dotStyle,\n activeDotStyle = _this$props7.activeDotStyle;\n\n var _get$call = _get(_getPrototypeOf(ComponentEnhancer.prototype), \"render\", this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), Object.keys(marks).length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, className, className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: _objectSpread(_objectSpread({}, maximumTrackStyle), railStyle)\n }), tracks, /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }), handles, /*#__PURE__*/React.createElement(Marks, {\n className: \"\".concat(prefixCls, \"-mark\"),\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }), children);\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _a.displayName = \"ComponentEnhancer(\".concat(Component.displayName, \")\"), _a.defaultProps = _objectSpread(_objectSpread({}, Component.defaultProps), {}, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(props) {\n var index = props.index,\n restProps = _objectWithoutProperties(props, [\"index\"]);\n\n delete restProps.dragging;\n\n if (restProps.value === null) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n key: index\n }));\n },\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _a;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n /* eslint-enable */\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n return [];\n };\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n dragging: false\n });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Slider, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props = this.props,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n onChange = _this$props.onChange;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n\n if (nextValue === prevState.value) {\n return;\n } // eslint-disable-next-line\n\n\n this.setState({\n value: nextValue\n });\n\n if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _objectSpread(_objectSpread({}, state), {}, {\n value: this.props.max\n }) : state;\n\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n this.setState({\n dragging: true\n });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === prevValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n var minPoint = this.props.startPoint || this.props.min;\n return this.state.value > minPoint ? minPoint : this.state.value;\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n if (this.state.value < this.props.startPoint) {\n return this.props.startPoint;\n }\n\n return this.state.value;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _objectSpread(_objectSpread({}, this.props), nextProps);\n\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n vertical = _this$props3.vertical,\n included = _this$props3.included,\n disabled = _this$props3.disabled,\n minimumTrackStyle = _this$props3.minimumTrackStyle,\n trackStyle = _this$props3.trackStyle,\n handleStyle = _this$props3.handleStyle,\n tabIndex = _this$props3.tabIndex,\n ariaLabelForHandle = _this$props3.ariaLabelForHandle,\n ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,\n min = _this$props3.min,\n max = _this$props3.max,\n startPoint = _this$props3.startPoint,\n reverse = _this$props3.reverse,\n handleGenerator = _this$props3.handle;\n var _this$state = this.state,\n value = _this$state.value,\n dragging = _this$state.dragging;\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: \"\".concat(prefixCls, \"-handle\"),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n var mergedTrackStyle = trackStyle[0] || trackStyle;\n var track = /*#__PURE__*/React.createElement(Track, {\n className: \"\".concat(prefixCls, \"-track\"),\n vertical: vertical,\n included: included,\n offset: trackOffset,\n reverse: reverse,\n length: offset - trackOffset,\n style: _objectSpread(_objectSpread({}, minimumTrackStyle), mergedTrackStyle)\n });\n return {\n tracks: track,\n handles: handle\n };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default createSlider(Slider);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n _inherits(Range, _React$Component);\n\n var _super = _createSuper(Range);\n\n function Range(props) {\n var _this;\n\n _classCallCheck(this, Range);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n var bounds = _this.getValue();\n\n var value = _this.calcValueByPos(position);\n\n var closestBound = _this.getClosestBound(value);\n\n var index = _this.getBoundNeedMoving(value, closestBound);\n\n var prevValue = bounds[index];\n if (value === prevValue) return null;\n\n var nextBounds = _toConsumableArray(bounds);\n\n nextBounds[index] = value;\n return nextBounds;\n };\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (!handle) {\n _this.dragTrack = false;\n }\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Range, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n value = _this$props.value,\n min = _this$props.min,\n max = _this$props.max;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n if (min === prevProps.min && max === prevProps.max) {\n return;\n }\n\n var currentValue = value || prevState.bounds;\n\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _objectSpread(_objectSpread({}, this.state), state);\n\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n var props = this.props,\n state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var maxValue = props.max || 100;\n var minValue = props.min || 0;\n\n if (dragTrack) {\n var pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n var max = maxValue - Math.max.apply(Math, _toConsumableArray(startBounds));\n var min = minValue - Math.min.apply(Math, _toConsumableArray(startBounds));\n var ratio = Math.min(Math.max(pos / (this.getSliderLength() / 100), min), max);\n var nextBounds = startBounds.map(function (v) {\n return Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue));\n });\n\n if (state.bounds.map(function (c, i) {\n return c === nextBounds[i];\n }).some(function (c) {\n return !c;\n })) {\n this.onChange({\n bounds: nextBounds\n });\n }\n\n return;\n }\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n this.moveTo(value);\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: \"getClosestBound\",\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n var closestBound = 0;\n\n for (var i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n\n return closestBound;\n }\n }, {\n key: \"getBoundNeedMoving\",\n value: function getBoundNeedMoving(value, closestBound) {\n var _this$state = this.state,\n bounds = _this$state.bounds,\n recent = _this$state.recent;\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n\n return boundNeedMoving;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n return bounds[bounds.length - 1];\n }\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var _this$props3 = this.props,\n marks = _this$props3.marks,\n step = _this$props3.step,\n min = _this$props3.min,\n max = _this$props3.max;\n var cache = this.internalPointsCache;\n\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _objectSpread({}, marks);\n\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this.internalPointsCache = {\n marks: marks,\n step: step,\n points: points\n };\n }\n\n return this.internalPointsCache.points;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: \"pushSurroundingHandles\",\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var direction = 0;\n\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: \"pushHandle\",\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = originalValue;\n return false;\n }\n\n currentValue = bounds[handle];\n } // the handle was pushed enough to create the needed `amount` gap\n\n\n return true;\n }\n }, {\n key: \"pushHandleOnePoint\",\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n } // push the handle\n // eslint-disable-next-line no-param-reassign\n\n\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(value) {\n var _this$state2 = this.state,\n handle = _this$state2.handle,\n bounds = _this$state2.bounds;\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$state3 = this.state,\n handle = _this$state3.handle,\n bounds = _this$state3.bounds;\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n vertical = _this$props4.vertical,\n included = _this$props4.included,\n disabled = _this$props4.disabled,\n min = _this$props4.min,\n max = _this$props4.max,\n reverse = _this$props4.reverse,\n handleGenerator = _this$props4.handle,\n trackStyle = _this$props4.trackStyle,\n handleStyle = _this$props4.handleStyle,\n tabIndex = _this$props4.tabIndex,\n ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n var handleClassName = \"\".concat(prefixCls, \"-handle\");\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var mergedTabIndex = tabIndex[i] || 0;\n\n if (disabled || tabIndex[i] === null) {\n mergedTabIndex = null;\n }\n\n var dragging = handle === i;\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n dragging: dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabIndex: mergedTabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n },\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n return /*#__PURE__*/React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n return {\n tracks: tracks,\n handles: handles\n };\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (!('value' in props || 'min' in props || 'max' in props)) {\n return null;\n }\n\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n\n if (state.bounds.length === nextBounds.length) {\n if (nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n } else {\n nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n bounds: nextBounds\n });\n }\n }]);\n\n return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n draggableTrack: false,\n tabIndex: [],\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","// export this package's api\nimport Align from './Align';\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n var destroyRef = useRef(false);\n\n function setStatus(nextStatus) {\n if (!destroyRef.current) {\n setInternalStatus(nextStatus);\n }\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex\n }, style), {}, {\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\n\nvar Content = function Content(props) {\n var overlay = props.overlay,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof overlay === 'function' ? overlay() : overlay);\n};\n\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n var _props$arrowContent = props.arrowContent,\n arrowContent = _props$arrowContent === void 0 ? null : _props$arrowContent,\n overlay = props.overlay,\n id = props.id;\n return [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(Content, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlay: overlay,\n overlayInnerStyle: overlayInnerStyle\n })];\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from 'rc-tooltip';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n overlay = props.overlay;\n var innerRef = React.useRef(null);\n var tooltipRef = composeRef(ref, innerRef);\n var rafRef = React.useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _innerRef$current;\n\n (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.forcePopupAlign();\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, overlay]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: tooltipRef\n }, props));\n});\nexport default SliderTooltip;","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\nimport SliderTooltip from './common/SliderTooltip';\nvar InternalSlider = Slider;\nInternalSlider.Range = Range;\nInternalSlider.Handle = Handle;\nInternalSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default InternalSlider;\nexport { Range, Handle, createSliderWithTooltip, SliderTooltip };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport Tooltip from './common/SliderTooltip';\nimport Handle from './Handle';\nexport default function createSliderWithTooltip(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n var _super = _createSuper(ComponentWrapper);\n\n function ComponentWrapper() {\n var _this;\n\n _classCallCheck(this, ComponentWrapper);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visibles: {}\n };\n\n _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _objectSpread(_objectSpread({}, prevState.visibles), {}, _defineProperty({}, index, visible))\n };\n });\n };\n\n _this.handleWithTooltip = function (_ref) {\n var value = _ref.value,\n dragging = _ref.dragging,\n index = _ref.index,\n disabled = _ref.disabled,\n restProps = _objectWithoutProperties(_ref, [\"value\", \"dragging\", \"index\", \"disabled\"]);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle,\n getTooltipContainer = _this$props.getTooltipContainer;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === void 0 ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === void 0 ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === void 0 ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === void 0 ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, [\"prefixCls\", \"overlay\", \"placement\", \"visible\"]);\n\n var handleStyleWithIndex;\n\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps, {\n getTooltipContainer: getTooltipContainer,\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }), /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n style: _objectSpread({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n })));\n };\n\n return _this;\n }\n\n _createClass(ComponentWrapper, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n handle: this.handleWithTooltip\n }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _a.defaultProps = {\n tipFormatter: function tipFormatter(
|