@adobe/helix-rum-enhancer 2.37.0 → 2.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [2.37.1](https://github.com/adobe/helix-rum-enhancer/compare/v2.37.0...v2.37.1) (2025-07-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **a11y:** audience is flagged as using accessibility too often ([4449970](https://github.com/adobe/helix-rum-enhancer/commit/444997021c49b45d9162a4a09035e6b75c0360fc))
7
+ * **a11y:** audience is flagged as using accessibility too often ([03e9f1b](https://github.com/adobe/helix-rum-enhancer/commit/03e9f1b185574649741ca4e3a50ecce13165819d))
8
+
1
9
  # [2.37.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.36.5...v2.37.0) (2025-07-08)
2
10
 
3
11
 
package/modules/index.js CHANGED
@@ -32,6 +32,23 @@ const hasCookieKey = (key) => document.cookie.split(';').some((c) => c.trim().st
32
32
  // Set the base path for the plugins
33
33
  const pluginBasePath = new URL(document.currentScript.src).href.replace(/index(\.map)?\.js/, 'plugins');
34
34
 
35
+ const CONSENT_PROVIDERS = [
36
+ {
37
+ name: 'onetrust',
38
+ detect: () => hasCookieKey('OptanonAlertBoxClosed') || document.querySelector('#onetrust-banner-sdk, #onetrust-pc-sdk'),
39
+ },
40
+ {
41
+ name: 'trustarc',
42
+ detect: () => ['notice_gdpr_prefs', 'notice_preferences'].some(hasCookieKey) || document.querySelector('#truste-consent-track, #consent_blackbar'),
43
+ },
44
+ {
45
+ name: 'usercentrics',
46
+ detect: () => window.localStorage.getItem('uc_gcm') || document.querySelector('#usercentrics-root'),
47
+ },
48
+ ];
49
+
50
+ const getConsentProvider = () => CONSENT_PROVIDERS.find(({ detect }) => detect());
51
+
35
52
  const PLUGINS = {
36
53
  cwv: `${pluginBasePath}/cwv.js`,
37
54
  a11y: `${pluginBasePath}/a11y.js`,
@@ -45,9 +62,8 @@ const PLUGINS = {
45
62
  },
46
63
  // Martech
47
64
  martech: { url: `${pluginBasePath}/martech.js`, when: ({ urlParameters }) => urlParameters.size > 0 },
48
- onetrust: {
49
- url: `${pluginBasePath}/onetrust.js`,
50
- when: () => (hasCookieKey('OptanonAlertBoxClosed') || document.querySelector('#onetrust-consent-sdk')),
65
+ consent: {
66
+ when: () => getConsentProvider(),
51
67
  isBlockDependent: true,
52
68
  mutationObserverParams: {
53
69
  target: document.body,
@@ -103,6 +119,10 @@ function loadPlugin(key, params) {
103
119
  return null;
104
120
  }
105
121
 
122
+ if (key === 'consent') {
123
+ plugin.url = `${pluginBasePath}/${getConsentProvider().name}.js`;
124
+ }
125
+
106
126
  if (!pluginCache.has(key)) {
107
127
  pluginCache.set(key, import(`${plugin.url || plugin}`));
108
128
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-rum-enhancer",
3
- "version": "2.37.0",
3
+ "version": "2.37.1",
4
4
  "description": "Helix RUM Enhancer",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -33,7 +33,7 @@
33
33
  "reporter-options": "configFile=.mocha-multi.json"
34
34
  },
35
35
  "devDependencies": {
36
- "@adobe/eslint-config-helix": "3.0.7",
36
+ "@adobe/eslint-config-helix": "3.0.8",
37
37
  "@adobe/helix-rum-js": "2.12.1",
38
38
  "@adobe/rollup-plugin-checksum": "1.2.0",
39
39
  "@eslint/config-helpers": "0.3.0",
@@ -60,9 +60,9 @@
60
60
  "lint-staged": "16.1.2",
61
61
  "mocha": "11.7.1",
62
62
  "mocha-multi-reporters": "1.5.1",
63
- "rollup": "4.44.2",
63
+ "rollup": "4.45.0",
64
64
  "rollup-plugin-eslint-bundle": "9.0.0",
65
- "semantic-release": "24.2.6",
65
+ "semantic-release": "24.2.7",
66
66
  "semantic-release-slack-bot": "^4.0.2",
67
67
  "web-vitals": "5.0.3"
68
68
  },
package/plugins/a11y.js CHANGED
@@ -15,7 +15,6 @@ const MEDIA_QUERY_PREFERENCES = [
15
15
  '(prefers-contrast: high)',
16
16
  '(prefers-contrast: more)',
17
17
  '(forced-colors: active)',
18
- '(prefers-color-scheme: dark)',
19
18
  '(prefers-reduced-transparency: reduce)',
20
19
  ];
21
20
 
@@ -173,7 +172,7 @@ export default function addAccessibilityAudienceTracking({ sampleRUM, sourceSele
173
172
  score += 2;
174
173
  }
175
174
 
176
- if (navigator.maxTouchPoints === 0 && !window.matchMedia('(pointer: coarse)').matches) {
175
+ if (navigator.maxTouchPoints === 0 && window.matchMedia('(pointer: coarse)').matches) {
177
176
  score += 2;
178
177
  }
179
178
 
@@ -9,36 +9,30 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- let hasSentData = false;
13
- export default function addCookieConsentTracking({ sampleRUM }) {
14
- const sampleRUMOnce = (...args) => {
15
- if (!hasSentData) {
16
- sampleRUM(...args);
17
- hasSentData = true;
18
- }
19
- };
12
+ function trackConsent() {
20
13
  const cmpCookie = document.cookie.split(';')
21
14
  .map((c) => c.trim())
22
15
  .find((cookie) => cookie.startsWith('OptanonAlertBoxClosed='));
23
16
 
24
17
  if (cmpCookie) {
25
- sampleRUMOnce('consent', { source: 'onetrust', target: 'hidden' });
26
- return;
18
+ return 'hidden';
27
19
  }
28
20
 
29
- const bannersdk = document.querySelector('#onetrust-banner-sdk');
21
+ const banner = document.querySelector('#onetrust-banner-sdk') || document.querySelector('#onetrust-pc-sdk');
30
22
 
31
- if (bannersdk && bannersdk.offsetHeight > 0) {
32
- sampleRUMOnce('consent', { source: 'onetrust', target: 'show' });
33
- return;
23
+ if (banner && banner.offsetHeight > 0) {
24
+ return 'show';
34
25
  }
35
26
 
36
- const pcsdk = document.querySelector('#onetrust-pc-sdk');
27
+ return 'suppressed';
28
+ }
37
29
 
38
- if (pcsdk && pcsdk.offsetHeight > 0) {
39
- sampleRUMOnce('consent', { source: 'onetrust', target: 'show' });
30
+ let hasSentData = false;
31
+ export default function addCookieConsentTracking({ sampleRUM }) {
32
+ if (hasSentData) {
40
33
  return;
41
34
  }
42
35
 
43
- sampleRUMOnce('consent', { source: 'onetrust', target: 'suppressed' });
36
+ sampleRUM('consent', { source: 'onetrust', target: trackConsent() });
37
+ hasSentData = true;
44
38
  }
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright 2025 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ const cookies = document.cookie.split(';')
14
+ .map((c) => c.trim())
15
+ .filter((cookie) => (cookie.startsWith('notice_gdpr_prefs=') || cookie.startsWith('notice_preferences=')));
16
+
17
+ if (cookies.length === 2) {
18
+ return 'hidden';
19
+ }
20
+
21
+ const banner = document.querySelector('#truste-consent-track') || document.querySelector('#truste-consent-content');
22
+
23
+ if (banner && banner.offsetHeight > 0) {
24
+ return 'show';
25
+ }
26
+
27
+ return 'suppressed';
28
+ }
29
+
30
+ let hasSentData = false;
31
+ export default function addCookieConsentTracking({ sampleRUM }) {
32
+ if (hasSentData) {
33
+ return;
34
+ }
35
+
36
+ sampleRUM('consent', { source: 'trustarc', target: trackConsent() });
37
+ hasSentData = true;
38
+ }
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright 2025 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ if (localStorage.getItem('uc_gcm')) {
14
+ return 'hidden';
15
+ }
16
+
17
+ const { shadowRoot } = document.querySelector('#usercentrics-root');
18
+ const banner = shadowRoot.querySelector('#uc-center-container') || shadowRoot.querySelector('#uc-fading-wrapper');
19
+
20
+ if (banner && banner.offsetHeight > 0) {
21
+ return 'show';
22
+ }
23
+
24
+ return 'suppressed';
25
+ }
26
+
27
+ let hasSentData = false;
28
+ export default function addCookieConsentTracking({ sampleRUM }) {
29
+ if (hasSentData) {
30
+ return;
31
+ }
32
+
33
+ sampleRUM('consent', { source: 'usercentrics', target: trackConsent() });
34
+ hasSentData = true;
35
+ }
package/src/index.js CHANGED
@@ -128,6 +128,19 @@
128
128
  const [blocksMO, mediaMO] = [blocksMCB, mediaMCB].map(createMO);
129
129
  const hasCookieKey = key => document.cookie.split(';').some(c => c.trim().startsWith(`${key}=`));
130
130
  const pluginBasePath = new URL(document.currentScript.src).href.replace(/index(\.map)?\.js/, 'plugins');
131
+ const CONSENT_PROVIDERS = [{
132
+ name: 'onetrust',
133
+ detect: () => hasCookieKey('OptanonAlertBoxClosed') || document.querySelector('#onetrust-banner-sdk, #onetrust-pc-sdk')
134
+ }, {
135
+ name: 'trustarc',
136
+ detect: () => ['notice_gdpr_prefs', 'notice_preferences'].some(hasCookieKey) || document.querySelector('#truste-consent-track, #consent_blackbar')
137
+ }, {
138
+ name: 'usercentrics',
139
+ detect: () => window.localStorage.getItem('uc_gcm') || document.querySelector('#usercentrics-root')
140
+ }];
141
+ const getConsentProvider = () => CONSENT_PROVIDERS.find(({
142
+ detect
143
+ }) => detect());
131
144
  const PLUGINS = {
132
145
  cwv: `${pluginBasePath}/cwv.js`,
133
146
  a11y: `${pluginBasePath}/a11y.js`,
@@ -152,9 +165,8 @@
152
165
  urlParameters
153
166
  }) => urlParameters.size > 0
154
167
  },
155
- onetrust: {
156
- url: `${pluginBasePath}/onetrust.js`,
157
- when: () => hasCookieKey('OptanonAlertBoxClosed') || document.querySelector('#onetrust-consent-sdk'),
168
+ consent: {
169
+ when: () => getConsentProvider(),
158
170
  isBlockDependent: true,
159
171
  mutationObserverParams: {
160
172
  target: document.body,
@@ -206,6 +218,9 @@
206
218
  }
207
219
  return null;
208
220
  }
221
+ if (key === 'consent') {
222
+ plugin.url = `${pluginBasePath}/${getConsentProvider().name}.js`;
223
+ }
209
224
  if (!pluginCache.has(key)) {
210
225
  pluginCache.set(key, import(`${plugin.url || plugin}`));
211
226
  }
package/src/index.md5 CHANGED
@@ -1 +1 @@
1
- 9ba349a918f32b3e7ab28953b112e1e3
1
+ 17c00804cede176f8349b25d79899efa
package/src/index.sri CHANGED
@@ -1 +1 @@
1
- sha384-aqtOVXFtjtaolB7x98Nxy+5pQMlMsfcgRSYyTEkx+BucLpCtD+Zor5pu0VVOXSkP
1
+ sha384-E0tOoXUN4IvzjkIb4WwyWGlRnGAbrcrV5O3QbmmASq+cYh7qAE752ezPyoc/ID5O
@@ -9,7 +9,7 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-color-scheme: dark)', '(prefers-reduced-transparency: reduce)'];
12
+ const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-reduced-transparency: reduce)'];
13
13
  const KEYBOARD_RELEVANT_KEYS = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Escape'];
14
14
  const HIGH_ZOOM_LEVEL = 200;
15
15
  const MEDIUM_ZOOM_LEVEL = 125;
@@ -134,7 +134,7 @@ function addAccessibilityAudienceTracking({
134
134
  } else if (zoom >= MEDIUM_ZOOM_LEVEL) {
135
135
  score += 2;
136
136
  }
137
- if (navigator.maxTouchPoints === 0 && !window.matchMedia('(pointer: coarse)').matches) {
137
+ if (navigator.maxTouchPoints === 0 && window.matchMedia('(pointer: coarse)').matches) {
138
138
  score += 2;
139
139
  }
140
140
  document.addEventListener('keydown', event => {
@@ -9,7 +9,7 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-color-scheme: dark)', '(prefers-reduced-transparency: reduce)'];
12
+ const MEDIA_QUERY_PREFERENCES = ['(prefers-reduced-motion: reduce)', '(prefers-contrast: high)', '(prefers-contrast: more)', '(forced-colors: active)', '(prefers-reduced-transparency: reduce)'];
13
13
  const KEYBOARD_RELEVANT_KEYS = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Escape'];
14
14
  const HIGH_ZOOM_LEVEL = 200;
15
15
  const MEDIUM_ZOOM_LEVEL = 125;
@@ -134,7 +134,7 @@ function addAccessibilityAudienceTracking({
134
134
  } else if (zoom >= MEDIUM_ZOOM_LEVEL) {
135
135
  score += 2;
136
136
  }
137
- if (navigator.maxTouchPoints === 0 && !window.matchMedia('(pointer: coarse)').matches) {
137
+ if (navigator.maxTouchPoints === 0 && window.matchMedia('(pointer: coarse)').matches) {
138
138
  score += 2;
139
139
  }
140
140
  document.addEventListener('keydown', event => {
@@ -179,4 +179,4 @@ function addAccessibilityAudienceTracking({
179
179
  }
180
180
 
181
181
  export { addAccessibilityAudienceTracking as default };
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvYTExeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuY29uc3QgTUVESUFfUVVFUllfUFJFRkVSRU5DRVMgPSBbXG4gICcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScsXG4gICcocHJlZmVycy1jb250cmFzdDogaGlnaCknLFxuICAnKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpJyxcbiAgJyhmb3JjZWQtY29sb3JzOiBhY3RpdmUpJyxcbiAgJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknLFxuICAnKHByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3k6IHJlZHVjZSknLFxuXTtcblxuY29uc3QgS0VZQk9BUkRfUkVMRVZBTlRfS0VZUyA9IFtcbiAgJ1RhYicsICdBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdFbnRlcicsICcgJywgJ0VzY2FwZScsXG5dO1xuXG5jb25zdCBISUdIX1pPT01fTEVWRUwgPSAyMDA7XG5jb25zdCBNRURJVU1fWk9PTV9MRVZFTCA9IDEyNTtcblxuY29uc3QgQkVIQVZJT1JBTF9NSU5fRVZFTlRTID0gMTA7XG5cbmNvbnN0IEZPQ1VTVFJBUF9NQVhfSElTVE9SWSA9IDI1O1xuY29uc3QgRk9DVVNfVFJBUF9NSU5fSElTVE9SWSA9IDQ7XG5jb25zdCBGT0NVU19UUkFQX1BJTkdfUE9OR19EVVJBVElPTiA9IDMwMDA7XG5jb25zdCBGT0NVU19UUkFQX01JTl9SRVBFQVRTID0gMztcblxuLyoqXG4gKiBEZXRlY3RzIGFwcHJveGltYXRlIHpvb20gbGV2ZWwgdXNpbmcgdGhlIFZpc3VhbCBWaWV3cG9ydCBBUEkuXG4gKiBUaGlzIGlzIGEgcHVyZSB1dGlsaXR5IGZ1bmN0aW9uLlxuICogQHJldHVybnMge051bWJlcn0gRXN0aW1hdGVkIHpvb20gcGVyY2VudGFnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0Wm9vbSgpIHtcbiAgaWYgKHdpbmRvdy52aXN1YWxWaWV3cG9ydCAmJiB3aW5kb3cudmlzdWFsVmlld3BvcnQud2lkdGggPiAwKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKHdpbmRvdy5pbm5lcldpZHRoIC8gd2luZG93LnZpc3VhbFZpZXdwb3J0LndpZHRoKSAqIDEwMCk7XG4gIH1cbiAgLyogYzggaWdub3JlIG5leHQgMSAqL1xuICByZXR1cm4gMTAwO1xufVxuXG4vKipcbiAqIE1pbmltYWwgYWNjZXNzaWJpbGl0eSBhdWRpZW5jZSBkZXRlY3Rpb24gcGx1Z2luIGZvciBoZWxpeC1ydW0tZW5oYW5jZXIuXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFBsdWdpbiBwYXJhbWV0ZXJzIGZyb20gZW5oYW5jZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMuc2FtcGxlUlVNIFJVTSB0cmFja2luZyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtcy5zb3VyY2VTZWxlY3RvciBGdW5jdGlvbiB0byBnZW5lcmF0ZSBhIHNlbGVjdG9yIGZvciBhbiBlbGVtZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRBY2Nlc3NpYmlsaXR5QXVkaWVuY2VUcmFja2luZyh7IHNhbXBsZVJVTSwgc291cmNlU2VsZWN0b3IgfSkge1xuICBjb25zdCBmb2N1c0hpc3RvcnkgPSBbXTtcbiAgbGV0IHNjb3JlID0gMDtcbiAgbGV0IHJlcG9ydGVkID0gZmFsc2U7XG4gIGxldCBmb2N1c1RyYXBEZXRlY3RlZCA9IGZhbHNlO1xuICBsZXQga2V5Ym9hcmRDb3VudCA9IDA7XG4gIGxldCB0b3RhbENvdW50ID0gMDtcbiAgbGV0IGxhc3RGb2N1c1RpbWUgPSAwO1xuICBsZXQgaGFkTWVhbmluZ2Z1bEZvY3VzID0gZmFsc2U7XG5cbiAgY29uc3QgcmVwb3J0QXVkaWVuY2UgPSAoKSA9PiB7XG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIGlmIChyZXBvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXBvcnRlZCA9IHRydWU7XG4gICAgY29uc3QgYXVkaWVuY2UgPSBzY29yZSA+PSAxID8gJ29uJyA6ICdvZmYnO1xuICAgIHNhbXBsZVJVTSgnYTExeScsIHsgc291cmNlOiBhdWRpZW5jZSwgdGFyZ2V0OiAnb246b2ZmJyB9KTtcbiAgfTtcblxuICBjb25zdCByZXBvcnRGb2N1c1RyYXAgPSAodHJhcFR5cGUsIGVsZW1lbnRzKSA9PiB7XG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIGlmIChmb2N1c1RyYXBEZXRlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb2N1c1RyYXBEZXRlY3RlZCA9IHRydWU7XG4gICAgY29uc3QgZWxlbWVudERlc2NyaXB0aW9ucyA9IGVsZW1lbnRzLnNsaWNlKDAsIDMpLm1hcChzb3VyY2VTZWxlY3Rvcik7XG4gICAgc2FtcGxlUlVNKCdlcnJvcicsIHtcbiAgICAgIHNvdXJjZTogYGZvY3VzLXRyYXA6JHt0cmFwVHlwZX1gLFxuICAgICAgdGFyZ2V0OiBlbGVtZW50RGVzY3JpcHRpb25zLmpvaW4oJywgJyksXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZGV0ZWN0UmVwZWF0aW5nU2VxdWVuY2UgPSAoZWxlbWVudHMsIHNlcUxlbmd0aCkgPT4ge1xuICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gc2VxTGVuZ3RoICogRk9DVVNfVFJBUF9NSU5fUkVQRUFUUztcbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA8IHRvdGFsTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlY2VudCA9IGVsZW1lbnRzLnNsaWNlKC10b3RhbExlbmd0aCk7XG4gICAgY29uc3QgYmFzZVNlcXVlbmNlID0gcmVjZW50LnNsaWNlKDAsIHNlcUxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBGT0NVU19UUkFQX01JTl9SRVBFQVRTOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IG5leHRTZXF1ZW5jZSA9IHJlY2VudC5zbGljZShpICogc2VxTGVuZ3RoLCAoaSArIDEpICogc2VxTGVuZ3RoKTtcbiAgICAgIGlmIChuZXh0U2VxdWVuY2UubGVuZ3RoICE9PSBzZXFMZW5ndGhcbiAgICAgICAgfHwgIW5leHRTZXF1ZW5jZS5ldmVyeSgoZWwsIGopID0+IGVsID09PSBiYXNlU2VxdWVuY2Vbal0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVwb3J0Rm9jdXNUcmFwKCdzZXF1ZW5jZScsIGJhc2VTZXF1ZW5jZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgZGV0ZWN0Rm9jdXNUcmFwID0gKCkgPT4ge1xuICAgIGlmIChmb2N1c0hpc3RvcnkubGVuZ3RoIDwgRk9DVVNfVFJBUF9NSU5fSElTVE9SWSB8fCBmb2N1c1RyYXBEZXRlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50cyA9IGZvY3VzSGlzdG9yeS5tYXAoKGgpID0+IGguZWxlbWVudCk7XG4gICAgY29uc3QgdGltZXN0YW1wcyA9IGZvY3VzSGlzdG9yeS5tYXAoKGgpID0+IGgudGltZXN0YW1wKTtcblxuICAgIGlmIChlbGVtZW50cy5zbGljZSgtMykuZXZlcnkoKGVsKSA9PiBlbCA9PT0gZWxlbWVudHNbZWxlbWVudHMubGVuZ3RoIC0gMV0pKSB7XG4gICAgICByZXBvcnRGb2N1c1RyYXAoJ3NpbmdsZScsIFtlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXV0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY2VudDQgPSBlbGVtZW50cy5zbGljZSgtNCk7XG4gICAgY29uc3QgdW5pcXVlID0gWy4uLm5ldyBTZXQocmVjZW50NCldO1xuICAgIGNvbnN0IHRpbWVEaWZmID0gdGltZXN0YW1wc1t0aW1lc3RhbXBzLmxlbmd0aCAtIDFdIC0gdGltZXN0YW1wc1t0aW1lc3RhbXBzLmxlbmd0aCAtIDRdO1xuICAgIGlmICh1bmlxdWUubGVuZ3RoID09PSAyICYmIHRpbWVEaWZmIDwgRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04pIHtcbiAgICAgIHJlcG9ydEZvY3VzVHJhcCgncGluZy1wb25nJywgdW5pcXVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtaW5TZXFMZW5ndGggPSAyICogRk9DVVNfVFJBUF9NSU5fSElTVE9SWSArIDE7XG4gICAgaWYgKGZvY3VzSGlzdG9yeS5sZW5ndGggPj0gbWluU2VxTGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBzZXFMZW5ndGggPSAyOyBzZXFMZW5ndGggPD0gNDsgc2VxTGVuZ3RoICs9IDEpIHtcbiAgICAgICAgaWYgKGRldGVjdFJlcGVhdGluZ1NlcXVlbmNlKGVsZW1lbnRzLCBzZXFMZW5ndGgpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHRyYWNrRm9jdXNGb3JUcmFwID0gKGV2ZW50KSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGFjdGl2ZUVsZW1lbnQgfSA9IGRvY3VtZW50O1xuICAgICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgICAgaWYgKCFhY3RpdmVFbGVtZW50IHx8IGFjdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZm9jdXNIaXN0b3J5LnB1c2goe1xuICAgICAgICBlbGVtZW50OiBhY3RpdmVFbGVtZW50LFxuICAgICAgICB0aW1lc3RhbXA6IHBlcmZvcm1hbmNlLm5vdygpLFxuICAgICAgICBzaGlmdEtleTogZXZlbnQuc2hpZnRLZXksXG4gICAgICB9KTtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICAgIGlmIChmb2N1c0hpc3RvcnkubGVuZ3RoID4gRk9DVVNUUkFQX01BWF9ISVNUT1JZKSB7XG4gICAgICAgIGZvY3VzSGlzdG9yeS5zaGlmdCgpO1xuICAgICAgfVxuICAgICAgZGV0ZWN0Rm9jdXNUcmFwKCk7XG4gICAgfSwgMCk7XG4gIH07XG5cbiAgY29uc3QgY2hlY2tCZWhhdmlvcmFsU2NvcmUgPSAoKSA9PiB7XG4gICAgaWYgKHRvdGFsQ291bnQgPj0gQkVIQVZJT1JBTF9NSU5fRVZFTlRTICYmICFyZXBvcnRlZCkge1xuICAgICAgaWYgKGtleWJvYXJkQ291bnQgLyB0b3RhbENvdW50ID4gMC43KSB7XG4gICAgICAgIHNjb3JlICs9IDI7XG4gICAgICB9XG4gICAgICByZXBvcnRBdWRpZW5jZSgpO1xuICAgIH1cbiAgfTtcblxuICAvLyAtLS0gU3RhdGljIFNjb3JpbmcgLS0tXG4gIHNjb3JlICs9IE1FRElBX1FVRVJZX1BSRUZFUkVOQ0VTLmZpbHRlcigocSkgPT4gd2luZG93Lm1hdGNoTWVkaWEocSkubWF0Y2hlcykubGVuZ3RoO1xuXG4gIGNvbnN0IHpvb20gPSBnZXRab29tKCk7XG4gIGlmICh6b29tID49IEhJR0hfWk9PTV9MRVZFTCkge1xuICAgIHNjb3JlICs9IDM7XG4gIH0gZWxzZSBpZiAoem9vbSA+PSBNRURJVU1fWk9PTV9MRVZFTCkge1xuICAgIHNjb3JlICs9IDI7XG4gIH1cblxuICBpZiAobmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID09PSAwICYmICF3aW5kb3cubWF0Y2hNZWRpYSgnKHBvaW50ZXI6IGNvYXJzZSknKS5tYXRjaGVzKSB7XG4gICAgc2NvcmUgKz0gMjtcbiAgfVxuXG4gIC8vIC0tLSBFdmVudCBMaXN0ZW5lcnMgJiBPYnNlcnZlcnMgLS0tXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoS0VZQk9BUkRfUkVMRVZBTlRfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBrZXlib2FyZENvdW50ICs9IDE7XG4gICAgICB0b3RhbENvdW50ICs9IDE7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICB0cmFja0ZvY3VzRm9yVHJhcChldmVudCk7XG4gICAgICB9XG4gICAgICBjaGVja0JlaGF2aW9yYWxTY29yZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgdG90YWxDb3VudCArPSAxO1xuICAgIGNoZWNrQmVoYXZpb3JhbFNjb3JlKCk7XG4gIH0pO1xuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBsYXN0Rm9jdXNUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZm9jdXNMb3NzT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgaWYgKGhhZE1lYW5pbmdmdWxGb2N1c1xuICAgICAgICAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5XG4gICAgICAgICYmIChwZXJmb3JtYW5jZS5ub3coKSAtIGxhc3RGb2N1c1RpbWUgPiAxMDApKSB7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCA5ICovXG4gICAgICBjb25zdCBtdXRhdGlvbiA9IG11dGF0aW9ucy5maW5kKChtKSA9PiAoXG4gICAgICAgIG0udHlwZSA9PT0gJ2NoaWxkTGlzdCcgJiYgKG0uYWRkZWROb2Rlcy5sZW5ndGggPiAwIHx8IG0ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApXG4gICAgICApKTtcbiAgICAgIHNhbXBsZVJVTSgnZXJyb3InLCB7XG4gICAgICAgIHNvdXJjZTogJ2ZvY3VzLWxvc3MnLFxuICAgICAgICB0YXJnZXQ6IHNvdXJjZVNlbGVjdG9yKG11dGF0aW9uPy50YXJnZXQpLFxuICAgICAgfSk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSBmYWxzZTsgLy8gUHJldmVudCBzcGFtXG4gICAgfVxuICB9KTtcblxuICBmb2N1c0xvc3NPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAvLyAtLS0gRmluYWwgUmVwb3J0aW5nIC0tLVxuICBpZiAoc2NvcmUgPj0gMSkge1xuICAgIHJlcG9ydEF1ZGllbmNlKCk7XG4gIH0gZWxzZSB7XG4gICAgc2V0VGltZW91dChcbiAgICAgICgpID0+IHJlcG9ydEF1ZGllbmNlKCksXG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAxICovXG4gICAgICB3aW5kb3cuaGx4LkExMVlfUkVQT1JUX0RFTEFZIHx8IDEwXzAwMCxcbiAgICApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTUVESUFfUVVFUllfUFJFRkVSRU5DRVMiLCJLRVlCT0FSRF9SRUxFVkFOVF9LRVlTIiwiSElHSF9aT09NX0xFVkVMIiwiTUVESVVNX1pPT01fTEVWRUwiLCJCRUhBVklPUkFMX01JTl9FVkVOVFMiLCJGT0NVU1RSQVBfTUFYX0hJU1RPUlkiLCJGT0NVU19UUkFQX01JTl9ISVNUT1JZIiwiRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04iLCJGT0NVU19UUkFQX01JTl9SRVBFQVRTIiwiZ2V0Wm9vbSIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0Iiwid2lkdGgiLCJNYXRoIiwicm91bmQiLCJpbm5lcldpZHRoIiwiYWRkQWNjZXNzaWJpbGl0eUF1ZGllbmNlVHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2VTZWxlY3RvciIsImZvY3VzSGlzdG9yeSIsInNjb3JlIiwicmVwb3J0ZWQiLCJmb2N1c1RyYXBEZXRlY3RlZCIsImtleWJvYXJkQ291bnQiLCJ0b3RhbENvdW50IiwibGFzdEZvY3VzVGltZSIsImhhZE1lYW5pbmdmdWxGb2N1cyIsInJlcG9ydEF1ZGllbmNlIiwiYXVkaWVuY2UiLCJzb3VyY2UiLCJ0YXJnZXQiLCJyZXBvcnRGb2N1c1RyYXAiLCJ0cmFwVHlwZSIsImVsZW1lbnRzIiwiZWxlbWVudERlc2NyaXB0aW9ucyIsInNsaWNlIiwibWFwIiwiam9pbiIsImRldGVjdFJlcGVhdGluZ1NlcXVlbmNlIiwic2VxTGVuZ3RoIiwidG90YWxMZW5ndGgiLCJsZW5ndGgiLCJyZWNlbnQiLCJiYXNlU2VxdWVuY2UiLCJpIiwibmV4dFNlcXVlbmNlIiwiZXZlcnkiLCJlbCIsImoiLCJkZXRlY3RGb2N1c1RyYXAiLCJoIiwiZWxlbWVudCIsInRpbWVzdGFtcHMiLCJ0aW1lc3RhbXAiLCJyZWNlbnQ0IiwidW5pcXVlIiwiU2V0IiwidGltZURpZmYiLCJtaW5TZXFMZW5ndGgiLCJ0cmFja0ZvY3VzRm9yVHJhcCIsImV2ZW50Iiwic2V0VGltZW91dCIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJwdXNoIiwicGVyZm9ybWFuY2UiLCJub3ciLCJzaGlmdEtleSIsInNoaWZ0IiwiY2hlY2tCZWhhdmlvcmFsU2NvcmUiLCJmaWx0ZXIiLCJxIiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJ6b29tIiwibmF2aWdhdG9yIiwibWF4VG91Y2hQb2ludHMiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5jbHVkZXMiLCJrZXkiLCJmb2N1c0xvc3NPYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJtdXRhdGlvbiIsImZpbmQiLCJtIiwidHlwZSIsImFkZGVkTm9kZXMiLCJyZW1vdmVkTm9kZXMiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhseCIsIkExMVlfUkVQT1JUX0RFTEFZIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVlBLE1BQU1BLHVCQUF1QixHQUFHLENBQzlCLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qiw4QkFBOEIsRUFDOUIsd0NBQXdDLENBQ3pDO0FBRUQsTUFBTUMsc0JBQXNCLEdBQUcsQ0FDN0IsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FDakY7QUFFRCxNQUFNQyxlQUFlLEdBQUcsR0FBRztBQUMzQixNQUFNQyxpQkFBaUIsR0FBRyxHQUFHO0FBRTdCLE1BQU1DLHFCQUFxQixHQUFHLEVBQUU7QUFFaEMsTUFBTUMscUJBQXFCLEdBQUcsRUFBRTtBQUNoQyxNQUFNQyxzQkFBc0IsR0FBRyxDQUFDO0FBQ2hDLE1BQU1DLDZCQUE2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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYTExeS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvYTExeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuY29uc3QgTUVESUFfUVVFUllfUFJFRkVSRU5DRVMgPSBbXG4gICcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScsXG4gICcocHJlZmVycy1jb250cmFzdDogaGlnaCknLFxuICAnKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpJyxcbiAgJyhmb3JjZWQtY29sb3JzOiBhY3RpdmUpJyxcbiAgJyhwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5OiByZWR1Y2UpJyxcbl07XG5cbmNvbnN0IEtFWUJPQVJEX1JFTEVWQU5UX0tFWVMgPSBbXG4gICdUYWInLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnRW50ZXInLCAnICcsICdFc2NhcGUnLFxuXTtcblxuY29uc3QgSElHSF9aT09NX0xFVkVMID0gMjAwO1xuY29uc3QgTUVESVVNX1pPT01fTEVWRUwgPSAxMjU7XG5cbmNvbnN0IEJFSEFWSU9SQUxfTUlOX0VWRU5UUyA9IDEwO1xuXG5jb25zdCBGT0NVU1RSQVBfTUFYX0hJU1RPUlkgPSAyNTtcbmNvbnN0IEZPQ1VTX1RSQVBfTUlOX0hJU1RPUlkgPSA0O1xuY29uc3QgRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04gPSAzMDAwO1xuY29uc3QgRk9DVVNfVFJBUF9NSU5fUkVQRUFUUyA9IDM7XG5cbi8qKlxuICogRGV0ZWN0cyBhcHByb3hpbWF0ZSB6b29tIGxldmVsIHVzaW5nIHRoZSBWaXN1YWwgVmlld3BvcnQgQVBJLlxuICogVGhpcyBpcyBhIHB1cmUgdXRpbGl0eSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IEVzdGltYXRlZCB6b29tIHBlcmNlbnRhZ2UuXG4gKi9cbmZ1bmN0aW9uIGdldFpvb20oKSB7XG4gIGlmICh3aW5kb3cudmlzdWFsVmlld3BvcnQgJiYgd2luZG93LnZpc3VhbFZpZXdwb3J0LndpZHRoID4gMCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKCh3aW5kb3cuaW5uZXJXaWR0aCAvIHdpbmRvdy52aXN1YWxWaWV3cG9ydC53aWR0aCkgKiAxMDApO1xuICB9XG4gIC8qIGM4IGlnbm9yZSBuZXh0IDEgKi9cbiAgcmV0dXJuIDEwMDtcbn1cblxuLyoqXG4gKiBNaW5pbWFsIGFjY2Vzc2liaWxpdHkgYXVkaWVuY2UgZGV0ZWN0aW9uIHBsdWdpbiBmb3IgaGVsaXgtcnVtLWVuaGFuY2VyLlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBQbHVnaW4gcGFyYW1ldGVycyBmcm9tIGVuaGFuY2VyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcGFyYW1zLnNhbXBsZVJVTSBSVU0gdHJhY2tpbmcgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMuc291cmNlU2VsZWN0b3IgRnVuY3Rpb24gdG8gZ2VuZXJhdGUgYSBzZWxlY3RvciBmb3IgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQWNjZXNzaWJpbGl0eUF1ZGllbmNlVHJhY2tpbmcoeyBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yIH0pIHtcbiAgY29uc3QgZm9jdXNIaXN0b3J5ID0gW107XG4gIGxldCBzY29yZSA9IDA7XG4gIGxldCByZXBvcnRlZCA9IGZhbHNlO1xuICBsZXQgZm9jdXNUcmFwRGV0ZWN0ZWQgPSBmYWxzZTtcbiAgbGV0IGtleWJvYXJkQ291bnQgPSAwO1xuICBsZXQgdG90YWxDb3VudCA9IDA7XG4gIGxldCBsYXN0Rm9jdXNUaW1lID0gMDtcbiAgbGV0IGhhZE1lYW5pbmdmdWxGb2N1cyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlcG9ydEF1ZGllbmNlID0gKCkgPT4ge1xuICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICBpZiAocmVwb3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVwb3J0ZWQgPSB0cnVlO1xuICAgIGNvbnN0IGF1ZGllbmNlID0gc2NvcmUgPj0gMSA/ICdvbicgOiAnb2ZmJztcbiAgICBzYW1wbGVSVU0oJ2ExMXknLCB7IHNvdXJjZTogYXVkaWVuY2UsIHRhcmdldDogJ29uOm9mZicgfSk7XG4gIH07XG5cbiAgY29uc3QgcmVwb3J0Rm9jdXNUcmFwID0gKHRyYXBUeXBlLCBlbGVtZW50cykgPT4ge1xuICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICBpZiAoZm9jdXNUcmFwRGV0ZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9jdXNUcmFwRGV0ZWN0ZWQgPSB0cnVlO1xuICAgIGNvbnN0IGVsZW1lbnREZXNjcmlwdGlvbnMgPSBlbGVtZW50cy5zbGljZSgwLCAzKS5tYXAoc291cmNlU2VsZWN0b3IpO1xuICAgIHNhbXBsZVJVTSgnZXJyb3InLCB7XG4gICAgICBzb3VyY2U6IGBmb2N1cy10cmFwOiR7dHJhcFR5cGV9YCxcbiAgICAgIHRhcmdldDogZWxlbWVudERlc2NyaXB0aW9ucy5qb2luKCcsICcpLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGRldGVjdFJlcGVhdGluZ1NlcXVlbmNlID0gKGVsZW1lbnRzLCBzZXFMZW5ndGgpID0+IHtcbiAgICBjb25zdCB0b3RhbExlbmd0aCA9IHNlcUxlbmd0aCAqIEZPQ1VTX1RSQVBfTUlOX1JFUEVBVFM7XG4gICAgLyogYzggaWdub3JlIG5leHQgMyAqL1xuICAgIGlmIChlbGVtZW50cy5sZW5ndGggPCB0b3RhbExlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCByZWNlbnQgPSBlbGVtZW50cy5zbGljZSgtdG90YWxMZW5ndGgpO1xuICAgIGNvbnN0IGJhc2VTZXF1ZW5jZSA9IHJlY2VudC5zbGljZSgwLCBzZXFMZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgRk9DVVNfVFJBUF9NSU5fUkVQRUFUUzsgaSArPSAxKSB7XG4gICAgICBjb25zdCBuZXh0U2VxdWVuY2UgPSByZWNlbnQuc2xpY2UoaSAqIHNlcUxlbmd0aCwgKGkgKyAxKSAqIHNlcUxlbmd0aCk7XG4gICAgICBpZiAobmV4dFNlcXVlbmNlLmxlbmd0aCAhPT0gc2VxTGVuZ3RoXG4gICAgICAgIHx8ICFuZXh0U2VxdWVuY2UuZXZlcnkoKGVsLCBqKSA9PiBlbCA9PT0gYmFzZVNlcXVlbmNlW2pdKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJlcG9ydEZvY3VzVHJhcCgnc2VxdWVuY2UnLCBiYXNlU2VxdWVuY2UpO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGRldGVjdEZvY3VzVHJhcCA9ICgpID0+IHtcbiAgICBpZiAoZm9jdXNIaXN0b3J5Lmxlbmd0aCA8IEZPQ1VTX1RSQVBfTUlOX0hJU1RPUlkgfHwgZm9jdXNUcmFwRGV0ZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudHMgPSBmb2N1c0hpc3RvcnkubWFwKChoKSA9PiBoLmVsZW1lbnQpO1xuICAgIGNvbnN0IHRpbWVzdGFtcHMgPSBmb2N1c0hpc3RvcnkubWFwKChoKSA9PiBoLnRpbWVzdGFtcCk7XG5cbiAgICBpZiAoZWxlbWVudHMuc2xpY2UoLTMpLmV2ZXJ5KChlbCkgPT4gZWwgPT09IGVsZW1lbnRzW2VsZW1lbnRzLmxlbmd0aCAtIDFdKSkge1xuICAgICAgcmVwb3J0Rm9jdXNUcmFwKCdzaW5nbGUnLCBbZWxlbWVudHNbZWxlbWVudHMubGVuZ3RoIC0gMV1dKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWNlbnQ0ID0gZWxlbWVudHMuc2xpY2UoLTQpO1xuICAgIGNvbnN0IHVuaXF1ZSA9IFsuLi5uZXcgU2V0KHJlY2VudDQpXTtcbiAgICBjb25zdCB0aW1lRGlmZiA9IHRpbWVzdGFtcHNbdGltZXN0YW1wcy5sZW5ndGggLSAxXSAtIHRpbWVzdGFtcHNbdGltZXN0YW1wcy5sZW5ndGggLSA0XTtcbiAgICBpZiAodW5pcXVlLmxlbmd0aCA9PT0gMiAmJiB0aW1lRGlmZiA8IEZPQ1VTX1RSQVBfUElOR19QT05HX0RVUkFUSU9OKSB7XG4gICAgICByZXBvcnRGb2N1c1RyYXAoJ3BpbmctcG9uZycsIHVuaXF1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWluU2VxTGVuZ3RoID0gMiAqIEZPQ1VTX1RSQVBfTUlOX0hJU1RPUlkgKyAxO1xuICAgIGlmIChmb2N1c0hpc3RvcnkubGVuZ3RoID49IG1pblNlcUxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgc2VxTGVuZ3RoID0gMjsgc2VxTGVuZ3RoIDw9IDQ7IHNlcUxlbmd0aCArPSAxKSB7XG4gICAgICAgIGlmIChkZXRlY3RSZXBlYXRpbmdTZXF1ZW5jZShlbGVtZW50cywgc2VxTGVuZ3RoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB0cmFja0ZvY3VzRm9yVHJhcCA9IChldmVudCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudDtcbiAgICAgIC8qIGM4IGlnbm9yZSBuZXh0IDMgKi9cbiAgICAgIGlmICghYWN0aXZlRWxlbWVudCB8fCBhY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvY3VzSGlzdG9yeS5wdXNoKHtcbiAgICAgICAgZWxlbWVudDogYWN0aXZlRWxlbWVudCxcbiAgICAgICAgdGltZXN0YW1wOiBwZXJmb3JtYW5jZS5ub3coKSxcbiAgICAgICAgc2hpZnRLZXk6IGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgfSk7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAzICovXG4gICAgICBpZiAoZm9jdXNIaXN0b3J5Lmxlbmd0aCA+IEZPQ1VTVFJBUF9NQVhfSElTVE9SWSkge1xuICAgICAgICBmb2N1c0hpc3Rvcnkuc2hpZnQoKTtcbiAgICAgIH1cbiAgICAgIGRldGVjdEZvY3VzVHJhcCgpO1xuICAgIH0sIDApO1xuICB9O1xuXG4gIGNvbnN0IGNoZWNrQmVoYXZpb3JhbFNjb3JlID0gKCkgPT4ge1xuICAgIGlmICh0b3RhbENvdW50ID49IEJFSEFWSU9SQUxfTUlOX0VWRU5UUyAmJiAhcmVwb3J0ZWQpIHtcbiAgICAgIGlmIChrZXlib2FyZENvdW50IC8gdG90YWxDb3VudCA+IDAuNykge1xuICAgICAgICBzY29yZSArPSAyO1xuICAgICAgfVxuICAgICAgcmVwb3J0QXVkaWVuY2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gLS0tIFN0YXRpYyBTY29yaW5nIC0tLVxuICBzY29yZSArPSBNRURJQV9RVUVSWV9QUkVGRVJFTkNFUy5maWx0ZXIoKHEpID0+IHdpbmRvdy5tYXRjaE1lZGlhKHEpLm1hdGNoZXMpLmxlbmd0aDtcblxuICBjb25zdCB6b29tID0gZ2V0Wm9vbSgpO1xuICBpZiAoem9vbSA+PSBISUdIX1pPT01fTEVWRUwpIHtcbiAgICBzY29yZSArPSAzO1xuICB9IGVsc2UgaWYgKHpvb20gPj0gTUVESVVNX1pPT01fTEVWRUwpIHtcbiAgICBzY29yZSArPSAyO1xuICB9XG5cbiAgaWYgKG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA9PT0gMCAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKHBvaW50ZXI6IGNvYXJzZSknKS5tYXRjaGVzKSB7XG4gICAgc2NvcmUgKz0gMjtcbiAgfVxuXG4gIC8vIC0tLSBFdmVudCBMaXN0ZW5lcnMgJiBPYnNlcnZlcnMgLS0tXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoS0VZQk9BUkRfUkVMRVZBTlRfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBrZXlib2FyZENvdW50ICs9IDE7XG4gICAgICB0b3RhbENvdW50ICs9IDE7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICB0cmFja0ZvY3VzRm9yVHJhcChldmVudCk7XG4gICAgICB9XG4gICAgICBjaGVja0JlaGF2aW9yYWxTY29yZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgdG90YWxDb3VudCArPSAxO1xuICAgIGNoZWNrQmVoYXZpb3JhbFNjb3JlKCk7XG4gIH0pO1xuXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoZXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICBsYXN0Rm9jdXNUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZm9jdXNMb3NzT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgaWYgKGhhZE1lYW5pbmdmdWxGb2N1c1xuICAgICAgICAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5XG4gICAgICAgICYmIChwZXJmb3JtYW5jZS5ub3coKSAtIGxhc3RGb2N1c1RpbWUgPiAxMDApKSB7XG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCA5ICovXG4gICAgICBjb25zdCBtdXRhdGlvbiA9IG11dGF0aW9ucy5maW5kKChtKSA9PiAoXG4gICAgICAgIG0udHlwZSA9PT0gJ2NoaWxkTGlzdCcgJiYgKG0uYWRkZWROb2Rlcy5sZW5ndGggPiAwIHx8IG0ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApXG4gICAgICApKTtcbiAgICAgIHNhbXBsZVJVTSgnZXJyb3InLCB7XG4gICAgICAgIHNvdXJjZTogJ2ZvY3VzLWxvc3MnLFxuICAgICAgICB0YXJnZXQ6IHNvdXJjZVNlbGVjdG9yKG11dGF0aW9uPy50YXJnZXQpLFxuICAgICAgfSk7XG4gICAgICBoYWRNZWFuaW5nZnVsRm9jdXMgPSBmYWxzZTsgLy8gUHJldmVudCBzcGFtXG4gICAgfVxuICB9KTtcblxuICBmb2N1c0xvc3NPYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAvLyAtLS0gRmluYWwgUmVwb3J0aW5nIC0tLVxuICBpZiAoc2NvcmUgPj0gMSkge1xuICAgIHJlcG9ydEF1ZGllbmNlKCk7XG4gIH0gZWxzZSB7XG4gICAgc2V0VGltZW91dChcbiAgICAgICgpID0+IHJlcG9ydEF1ZGllbmNlKCksXG4gICAgICAvKiBjOCBpZ25vcmUgbmV4dCAxICovXG4gICAgICB3aW5kb3cuaGx4LkExMVlfUkVQT1JUX0RFTEFZIHx8IDEwXzAwMCxcbiAgICApO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTUVESUFfUVVFUllfUFJFRkVSRU5DRVMiLCJLRVlCT0FSRF9SRUxFVkFOVF9LRVlTIiwiSElHSF9aT09NX0xFVkVMIiwiTUVESVVNX1pPT01fTEVWRUwiLCJCRUhBVklPUkFMX01JTl9FVkVOVFMiLCJGT0NVU1RSQVBfTUFYX0hJU1RPUlkiLCJGT0NVU19UUkFQX01JTl9ISVNUT1JZIiwiRk9DVVNfVFJBUF9QSU5HX1BPTkdfRFVSQVRJT04iLCJGT0NVU19UUkFQX01JTl9SRVBFQVRTIiwiZ2V0Wm9vbSIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0Iiwid2lkdGgiLCJNYXRoIiwicm91bmQiLCJpbm5lcldpZHRoIiwiYWRkQWNjZXNzaWJpbGl0eUF1ZGllbmNlVHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2VTZWxlY3RvciIsImZvY3VzSGlzdG9yeSIsInNjb3JlIiwicmVwb3J0ZWQiLCJmb2N1c1RyYXBEZXRlY3RlZCIsImtleWJvYXJkQ291bnQiLCJ0b3RhbENvdW50IiwibGFzdEZvY3VzVGltZSIsImhhZE1lYW5pbmdmdWxGb2N1cyIsInJlcG9ydEF1ZGllbmNlIiwiYXVkaWVuY2UiLCJzb3VyY2UiLCJ0YXJnZXQiLCJyZXBvcnRGb2N1c1RyYXAiLCJ0cmFwVHlwZSIsImVsZW1lbnRzIiwiZWxlbWVudERlc2NyaXB0aW9ucyIsInNsaWNlIiwibWFwIiwiam9pbiIsImRldGVjdFJlcGVhdGluZ1NlcXVlbmNlIiwic2VxTGVuZ3RoIiwidG90YWxMZW5ndGgiLCJsZW5ndGgiLCJyZWNlbnQiLCJiYXNlU2VxdWVuY2UiLCJpIiwibmV4dFNlcXVlbmNlIiwiZXZlcnkiLCJlbCIsImoiLCJkZXRlY3RGb2N1c1RyYXAiLCJoIiwiZWxlbWVudCIsInRpbWVzdGFtcHMiLCJ0aW1lc3RhbXAiLCJyZWNlbnQ0IiwidW5pcXVlIiwiU2V0IiwidGltZURpZmYiLCJtaW5TZXFMZW5ndGgiLCJ0cmFja0ZvY3VzRm9yVHJhcCIsImV2ZW50Iiwic2V0VGltZW91dCIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJwdXNoIiwicGVyZm9ybWFuY2UiLCJub3ciLCJzaGlmdEtleSIsInNoaWZ0IiwiY2hlY2tCZWhhdmlvcmFsU2NvcmUiLCJmaWx0ZXIiLCJxIiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJ6b29tIiwibmF2aWdhdG9yIiwibWF4VG91Y2hQb2ludHMiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5jbHVkZXMiLCJrZXkiLCJmb2N1c0xvc3NPYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJtdXRhdGlvbiIsImZpbmQiLCJtIiwidHlwZSIsImFkZGVkTm9kZXMiLCJyZW1vdmVkTm9kZXMiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhseCIsIkExMVlfUkVQT1JUX0RFTEFZIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVlBLE1BQU1BLHVCQUF1QixHQUFHLENBQzlCLGtDQUFrQyxFQUNsQywwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qix3Q0FBd0MsQ0FDekM7QUFFRCxNQUFNQyxzQkFBc0IsR0FBRyxDQUM3QixLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUNqRjtBQUVELE1BQU1DLGVBQWUsR0FBRyxHQUFHO0FBQzNCLE1BQU1DLGlCQUFpQixHQUFHLEdBQUc7QUFFN0IsTUFBTUMscUJBQXFCLEdBQUcsRUFBRTtBQUVoQyxNQUFNQyxxQkFBcUIsR0FBRyxFQUFFO0FBQ2hDLE1BQU1DLHNCQUFzQixHQUFHLENBQUM7QUFDaEMsTUFBTUMsNkJBQTZCLEdBQUcsSUFBSTtBQUMxQyxNQUFNQyxzQkFBc0IsR0FBRyxDQUFDO0FBT2hDLFNB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
@@ -1 +1 @@
1
- 476a5c7c6184ac68bb4b668dd7fd6d7a
1
+ 7377a0534dc9e004550bba8a99e54c80
@@ -1 +1 @@
1
- 5a20c1d914d19b130034e4df532b8b4d
1
+ 866b5825b7bdb273170fbab6fa8099bb
@@ -9,44 +9,29 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- let hasSentData = false;
13
- function addCookieConsentTracking({
14
- sampleRUM
15
- }) {
16
- const sampleRUMOnce = (...args) => {
17
- if (!hasSentData) {
18
- sampleRUM(...args);
19
- hasSentData = true;
20
- }
21
- };
12
+ function trackConsent() {
22
13
  const cmpCookie = document.cookie.split(';').map(c => c.trim()).find(cookie => cookie.startsWith('OptanonAlertBoxClosed='));
23
14
  if (cmpCookie) {
24
- sampleRUMOnce('consent', {
25
- source: 'onetrust',
26
- target: 'hidden'
27
- });
28
- return;
15
+ return 'hidden';
29
16
  }
30
- const bannersdk = document.querySelector('#onetrust-banner-sdk');
31
- if (bannersdk && bannersdk.offsetHeight > 0) {
32
- sampleRUMOnce('consent', {
33
- source: 'onetrust',
34
- target: 'show'
35
- });
36
- return;
17
+ const banner = document.querySelector('#onetrust-banner-sdk') || document.querySelector('#onetrust-pc-sdk');
18
+ if (banner && banner.offsetHeight > 0) {
19
+ return 'show';
37
20
  }
38
- const pcsdk = document.querySelector('#onetrust-pc-sdk');
39
- if (pcsdk && pcsdk.offsetHeight > 0) {
40
- sampleRUMOnce('consent', {
41
- source: 'onetrust',
42
- target: 'show'
43
- });
21
+ return 'suppressed';
22
+ }
23
+ let hasSentData = false;
24
+ function addCookieConsentTracking({
25
+ sampleRUM
26
+ }) {
27
+ if (hasSentData) {
44
28
  return;
45
29
  }
46
- sampleRUMOnce('consent', {
30
+ sampleRUM('consent', {
47
31
  source: 'onetrust',
48
- target: 'suppressed'
32
+ target: trackConsent()
49
33
  });
34
+ hasSentData = true;
50
35
  }
51
36
 
52
37
  export { addCookieConsentTracking as default };
@@ -9,45 +9,30 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- let hasSentData = false;
13
- function addCookieConsentTracking({
14
- sampleRUM
15
- }) {
16
- const sampleRUMOnce = (...args) => {
17
- if (!hasSentData) {
18
- sampleRUM(...args);
19
- hasSentData = true;
20
- }
21
- };
12
+ function trackConsent() {
22
13
  const cmpCookie = document.cookie.split(';').map(c => c.trim()).find(cookie => cookie.startsWith('OptanonAlertBoxClosed='));
23
14
  if (cmpCookie) {
24
- sampleRUMOnce('consent', {
25
- source: 'onetrust',
26
- target: 'hidden'
27
- });
28
- return;
15
+ return 'hidden';
29
16
  }
30
- const bannersdk = document.querySelector('#onetrust-banner-sdk');
31
- if (bannersdk && bannersdk.offsetHeight > 0) {
32
- sampleRUMOnce('consent', {
33
- source: 'onetrust',
34
- target: 'show'
35
- });
36
- return;
17
+ const banner = document.querySelector('#onetrust-banner-sdk') || document.querySelector('#onetrust-pc-sdk');
18
+ if (banner && banner.offsetHeight > 0) {
19
+ return 'show';
37
20
  }
38
- const pcsdk = document.querySelector('#onetrust-pc-sdk');
39
- if (pcsdk && pcsdk.offsetHeight > 0) {
40
- sampleRUMOnce('consent', {
41
- source: 'onetrust',
42
- target: 'show'
43
- });
21
+ return 'suppressed';
22
+ }
23
+ let hasSentData = false;
24
+ function addCookieConsentTracking({
25
+ sampleRUM
26
+ }) {
27
+ if (hasSentData) {
44
28
  return;
45
29
  }
46
- sampleRUMOnce('consent', {
30
+ sampleRUM('consent', {
47
31
  source: 'onetrust',
48
- target: 'suppressed'
32
+ target: trackConsent()
49
33
  });
34
+ hasSentData = true;
50
35
  }
51
36
 
52
37
  export { addCookieConsentTracking as default };
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ldHJ1c3QubWFwLmpzIiwic291cmNlcyI6WyIuLi8uLi9wbHVnaW5zL29uZXRydXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlNcbiAqIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZVxuICogZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xubGV0IGhhc1NlbnREYXRhID0gZmFsc2U7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRDb29raWVDb25zZW50VHJhY2tpbmcoeyBzYW1wbGVSVU0gfSkge1xuICBjb25zdCBzYW1wbGVSVU1PbmNlID0gKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAoIWhhc1NlbnREYXRhKSB7XG4gICAgICBzYW1wbGVSVU0oLi4uYXJncyk7XG4gICAgICBoYXNTZW50RGF0YSA9IHRydWU7XG4gICAgfVxuICB9O1xuICBjb25zdCBjbXBDb29raWUgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxuICAgIC5tYXAoKGMpID0+IGMudHJpbSgpKVxuICAgIC5maW5kKChjb29raWUpID0+IGNvb2tpZS5zdGFydHNXaXRoKCdPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9JykpO1xuXG4gIGlmIChjbXBDb29raWUpIHtcbiAgICBzYW1wbGVSVU1PbmNlKCdjb25zZW50JywgeyBzb3VyY2U6ICdvbmV0cnVzdCcsIHRhcmdldDogJ2hpZGRlbicgfSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYmFubmVyc2RrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI29uZXRydXN0LWJhbm5lci1zZGsnKTtcblxuICBpZiAoYmFubmVyc2RrICYmIGJhbm5lcnNkay5vZmZzZXRIZWlnaHQgPiAwKSB7XG4gICAgc2FtcGxlUlVNT25jZSgnY29uc2VudCcsIHsgc291cmNlOiAnb25ldHJ1c3QnLCB0YXJnZXQ6ICdzaG93JyB9KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwY3NkayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNvbmV0cnVzdC1wYy1zZGsnKTtcblxuICBpZiAocGNzZGsgJiYgcGNzZGsub2Zmc2V0SGVpZ2h0ID4gMCkge1xuICAgIHNhbXBsZVJVTU9uY2UoJ2NvbnNlbnQnLCB7IHNvdXJjZTogJ29uZXRydXN0JywgdGFyZ2V0OiAnc2hvdycgfSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2FtcGxlUlVNT25jZSgnY29uc2VudCcsIHsgc291cmNlOiAnb25ldHJ1c3QnLCB0YXJnZXQ6ICdzdXBwcmVzc2VkJyB9KTtcbn1cbiJdLCJuYW1lcyI6WyJoYXNTZW50RGF0YSIsImFkZENvb2tpZUNvbnNlbnRUcmFja2luZyIsInNhbXBsZVJVTSIsInNhbXBsZVJVTU9uY2UiLCJhcmdzIiwiY21wQ29va2llIiwiZG9jdW1lbnQiLCJjb29raWUiLCJzcGxpdCIsIm1hcCIsImMiLCJ0cmltIiwiZmluZCIsInN0YXJ0c1dpdGgiLCJzb3VyY2UiLCJ0YXJnZXQiLCJiYW5uZXJzZGsiLCJxdWVyeVNlbGVjdG9yIiwib2Zmc2V0SGVpZ2h0IiwicGNzZGsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0EsSUFBSUEsV0FBVyxHQUFHLEtBQUs7QUFDUixTQUFTQyx3QkFBd0JBLENBQUM7QUFBRUMsRUFBQUE7QUFBVSxDQUFDLEVBQUU7QUFDOUQsRUFBQSxNQUFNQyxhQUFhLEdBQUdBLENBQUMsR0FBR0MsSUFBSSxLQUFLO0lBQ2pDLElBQUksQ0FBQ0osV0FBVyxFQUFFO01BQ2hCRSxTQUFTLENBQUMsR0FBR0UsSUFBSSxDQUFDO0FBQ2xCSixNQUFBQSxXQUFXLEdBQUcsSUFBSTtBQUNwQixJQUFBO0VBQ0YsQ0FBQztBQUNELEVBQUEsTUFBTUssU0FBUyxHQUFHQyxRQUFRLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUN6Q0MsR0FBRyxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ0MsSUFBSSxFQUFFLENBQUMsQ0FDcEJDLElBQUksQ0FBRUwsTUFBTSxJQUFLQSxNQUFNLENBQUNNLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRWhFLEVBQUEsSUFBSVIsU0FBUyxFQUFFO0lBQ2JGLGFBQWEsQ0FBQyxTQUFTLEVBQUU7QUFBRVcsTUFBQUEsTUFBTSxFQUFFLFVBQVU7QUFBRUMsTUFBQUEsTUFBTSxFQUFFO0FBQVMsS0FBQyxDQUFDO0FBQ2xFLElBQUE7QUFDRixFQUFBO0FBRUEsRUFBQSxNQUFNQyxTQUFTLEdBQUdWLFFBQVEsQ0FBQ1csYUFBYSxDQUFDLHNCQUFzQixDQUFDO0FBRWhFLEVBQUEsSUFBSUQsU0FBUyxJQUFJQSxTQUFTLENBQUNFLFlBQVksR0FBRyxDQUFDLEVBQUU7SUFDM0NmLGFBQWEsQ0FBQyxTQUFTLEVBQUU7QUFBRVcsTUFBQUEsTUFBTSxFQUFFLFVBQVU7QUFBRUMsTUFBQUEsTUFBTSxFQUFFO0FBQU8sS0FBQyxDQUFDO0FBQ2hFLElBQUE7QUFDRixFQUFBO0FBRUEsRUFBQSxNQUFNSSxLQUFLLEdBQUdiLFFBQVEsQ0FBQ1csYUFBYSxDQUFDLGtCQUFrQixDQUFDO0FBRXhELEVBQUEsSUFBSUUsS0FBSyxJQUFJQSxLQUFLLENBQUNELFlBQVksR0FBRyxDQUFDLEVBQUU7SUFDbkNmLGFBQWEsQ0FBQyxTQUFTLEVBQUU7QUFBRVcsTUFBQUEsTUFBTSxFQUFFLFVBQVU7QUFBRUMsTUFBQUEsTUFBTSxFQUFFO0FBQU8sS0FBQyxDQUFDO0FBQ2hFLElBQUE7QUFDRixFQUFBO0VBRUFaLGFBQWEsQ0FBQyxTQUFTLEVBQUU7QUFBRVcsSUFBQUEsTUFBTSxFQUFFLFVBQVU7QUFBRUMsSUFBQUEsTUFBTSxFQUFFO0FBQWEsR0FBQyxDQUFDO0FBQ3hFOzs7OyJ9
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25ldHJ1c3QubWFwLmpzIiwic291cmNlcyI6WyIuLi8uLi9wbHVnaW5zL29uZXRydXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlNcbiAqIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZVxuICogZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuZnVuY3Rpb24gdHJhY2tDb25zZW50KCkge1xuICBjb25zdCBjbXBDb29raWUgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxuICAgIC5tYXAoKGMpID0+IGMudHJpbSgpKVxuICAgIC5maW5kKChjb29raWUpID0+IGNvb2tpZS5zdGFydHNXaXRoKCdPcHRhbm9uQWxlcnRCb3hDbG9zZWQ9JykpO1xuXG4gIGlmIChjbXBDb29raWUpIHtcbiAgICByZXR1cm4gJ2hpZGRlbic7XG4gIH1cblxuICBjb25zdCBiYW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb25ldHJ1c3QtYmFubmVyLXNkaycpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNvbmV0cnVzdC1wYy1zZGsnKTtcblxuICBpZiAoYmFubmVyICYmIGJhbm5lci5vZmZzZXRIZWlnaHQgPiAwKSB7XG4gICAgcmV0dXJuICdzaG93JztcbiAgfVxuXG4gIHJldHVybiAnc3VwcHJlc3NlZCc7XG59XG5cbmxldCBoYXNTZW50RGF0YSA9IGZhbHNlO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ29va2llQ29uc2VudFRyYWNraW5nKHsgc2FtcGxlUlVNIH0pIHtcbiAgaWYgKGhhc1NlbnREYXRhKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2FtcGxlUlVNKCdjb25zZW50JywgeyBzb3VyY2U6ICdvbmV0cnVzdCcsIHRhcmdldDogdHJhY2tDb25zZW50KCkgfSk7XG4gIGhhc1NlbnREYXRhID0gdHJ1ZTtcbn1cbiJdLCJuYW1lcyI6WyJ0cmFja0NvbnNlbnQiLCJjbXBDb29raWUiLCJkb2N1bWVudCIsImNvb2tpZSIsInNwbGl0IiwibWFwIiwiYyIsInRyaW0iLCJmaW5kIiwic3RhcnRzV2l0aCIsImJhbm5lciIsInF1ZXJ5U2VsZWN0b3IiLCJvZmZzZXRIZWlnaHQiLCJoYXNTZW50RGF0YSIsImFkZENvb2tpZUNvbnNlbnRUcmFja2luZyIsInNhbXBsZVJVTSIsInNvdXJjZSIsInRhcmdldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFXQSxTQUFTQSxZQUFZQSxHQUFHO0FBQ3RCLEVBQUEsTUFBTUMsU0FBUyxHQUFHQyxRQUFRLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUN6Q0MsR0FBRyxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ0MsSUFBSSxFQUFFLENBQUMsQ0FDcEJDLElBQUksQ0FBRUwsTUFBTSxJQUFLQSxNQUFNLENBQUNNLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRWhFLEVBQUEsSUFBSVIsU0FBUyxFQUFFO0FBQ2IsSUFBQSxPQUFPLFFBQVE7QUFDakIsRUFBQTtBQUVBLEVBQUEsTUFBTVMsTUFBTSxHQUFHUixRQUFRLENBQUNTLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJVCxRQUFRLENBQUNTLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztBQUUzRyxFQUFBLElBQUlELE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxZQUFZLEdBQUcsQ0FBQyxFQUFFO0FBQ3JDLElBQUEsT0FBTyxNQUFNO0FBQ2YsRUFBQTtBQUVBLEVBQUEsT0FBTyxZQUFZO0FBQ3JCO0FBRUEsSUFBSUMsV0FBVyxHQUFHLEtBQUs7QUFDUixTQUFTQyx3QkFBd0JBLENBQUM7QUFBRUMsRUFBQUE7QUFBVSxDQUFDLEVBQUU7QUFDOUQsRUFBQSxJQUFJRixXQUFXLEVBQUU7QUFDZixJQUFBO0FBQ0YsRUFBQTtFQUVBRSxTQUFTLENBQUMsU0FBUyxFQUFFO0FBQUVDLElBQUFBLE1BQU0sRUFBRSxVQUFVO0lBQUVDLE1BQU0sRUFBRWpCLFlBQVk7QUFBRyxHQUFDLENBQUM7QUFDcEVhLEVBQUFBLFdBQVcsR0FBRyxJQUFJO0FBQ3BCOzs7OyJ9
@@ -1 +1 @@
1
- 3c3c556e0a29b94c68e382ea3dc3b3b5
1
+ 4b5cf6c41be188be11c519f419592e7e
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ const cookies = document.cookie.split(';').map(c => c.trim()).filter(cookie => cookie.startsWith('notice_gdpr_prefs=') || cookie.startsWith('notice_preferences='));
14
+ if (cookies.length === 2) {
15
+ return 'hidden';
16
+ }
17
+ const banner = document.querySelector('#truste-consent-track') || document.querySelector('#truste-consent-content');
18
+ if (banner && banner.offsetHeight > 0) {
19
+ return 'show';
20
+ }
21
+ return 'suppressed';
22
+ }
23
+ let hasSentData = false;
24
+ function addCookieConsentTracking({
25
+ sampleRUM
26
+ }) {
27
+ if (hasSentData) {
28
+ return;
29
+ }
30
+ sampleRUM('consent', {
31
+ source: 'trustarc',
32
+ target: trackConsent()
33
+ });
34
+ hasSentData = true;
35
+ }
36
+
37
+ export { addCookieConsentTracking as default };
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ const cookies = document.cookie.split(';').map(c => c.trim()).filter(cookie => cookie.startsWith('notice_gdpr_prefs=') || cookie.startsWith('notice_preferences='));
14
+ if (cookies.length === 2) {
15
+ return 'hidden';
16
+ }
17
+ const banner = document.querySelector('#truste-consent-track') || document.querySelector('#truste-consent-content');
18
+ if (banner && banner.offsetHeight > 0) {
19
+ return 'show';
20
+ }
21
+ return 'suppressed';
22
+ }
23
+ let hasSentData = false;
24
+ function addCookieConsentTracking({
25
+ sampleRUM
26
+ }) {
27
+ if (hasSentData) {
28
+ return;
29
+ }
30
+ sampleRUM('consent', {
31
+ source: 'trustarc',
32
+ target: trackConsent()
33
+ });
34
+ hasSentData = true;
35
+ }
36
+
37
+ export { addCookieConsentTracking as default };
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RhcmMubWFwLmpzIiwic291cmNlcyI6WyIuLi8uLi9wbHVnaW5zL3RydXN0YXJjLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlNcbiAqIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZVxuICogZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuZnVuY3Rpb24gdHJhY2tDb25zZW50KCkge1xuICBjb25zdCBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JylcbiAgICAubWFwKChjKSA9PiBjLnRyaW0oKSlcbiAgICAuZmlsdGVyKChjb29raWUpID0+IChjb29raWUuc3RhcnRzV2l0aCgnbm90aWNlX2dkcHJfcHJlZnM9JykgfHwgY29va2llLnN0YXJ0c1dpdGgoJ25vdGljZV9wcmVmZXJlbmNlcz0nKSkpO1xuXG4gIGlmIChjb29raWVzLmxlbmd0aCA9PT0gMikge1xuICAgIHJldHVybiAnaGlkZGVuJztcbiAgfVxuXG4gIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cnVzdGUtY29uc2VudC10cmFjaycpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0cnVzdGUtY29uc2VudC1jb250ZW50Jyk7XG5cbiAgaWYgKGJhbm5lciAmJiBiYW5uZXIub2Zmc2V0SGVpZ2h0ID4gMCkge1xuICAgIHJldHVybiAnc2hvdyc7XG4gIH1cblxuICByZXR1cm4gJ3N1cHByZXNzZWQnO1xufVxuXG5sZXQgaGFzU2VudERhdGEgPSBmYWxzZTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZENvb2tpZUNvbnNlbnRUcmFja2luZyh7IHNhbXBsZVJVTSB9KSB7XG4gIGlmIChoYXNTZW50RGF0YSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHNhbXBsZVJVTSgnY29uc2VudCcsIHsgc291cmNlOiAndHJ1c3RhcmMnLCB0YXJnZXQ6IHRyYWNrQ29uc2VudCgpIH0pO1xuICBoYXNTZW50RGF0YSA9IHRydWU7XG59XG4iXSwibmFtZXMiOlsidHJhY2tDb25zZW50IiwiY29va2llcyIsImRvY3VtZW50IiwiY29va2llIiwic3BsaXQiLCJtYXAiLCJjIiwidHJpbSIsImZpbHRlciIsInN0YXJ0c1dpdGgiLCJsZW5ndGgiLCJiYW5uZXIiLCJxdWVyeVNlbGVjdG9yIiwib2Zmc2V0SGVpZ2h0IiwiaGFzU2VudERhdGEiLCJhZGRDb29raWVDb25zZW50VHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2UiLCJ0YXJnZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBV0EsU0FBU0EsWUFBWUEsR0FBRztBQUN0QixFQUFBLE1BQU1DLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDdkNDLEdBQUcsQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUNDLElBQUksRUFBRSxDQUFDLENBQ3BCQyxNQUFNLENBQUVMLE1BQU0sSUFBTUEsTUFBTSxDQUFDTSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSU4sTUFBTSxDQUFDTSxVQUFVLENBQUMscUJBQXFCLENBQUUsQ0FBQztBQUU1RyxFQUFBLElBQUlSLE9BQU8sQ0FBQ1MsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUN4QixJQUFBLE9BQU8sUUFBUTtBQUNqQixFQUFBO0FBRUEsRUFBQSxNQUFNQyxNQUFNLEdBQUdULFFBQVEsQ0FBQ1UsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUlWLFFBQVEsQ0FBQ1UsYUFBYSxDQUFDLHlCQUF5QixDQUFDO0FBRW5ILEVBQUEsSUFBSUQsTUFBTSxJQUFJQSxNQUFNLENBQUNFLFlBQVksR0FBRyxDQUFDLEVBQUU7QUFDckMsSUFBQSxPQUFPLE1BQU07QUFDZixFQUFBO0FBRUEsRUFBQSxPQUFPLFlBQVk7QUFDckI7QUFFQSxJQUFJQyxXQUFXLEdBQUcsS0FBSztBQUNSLFNBQVNDLHdCQUF3QkEsQ0FBQztBQUFFQyxFQUFBQTtBQUFVLENBQUMsRUFBRTtBQUM5RCxFQUFBLElBQUlGLFdBQVcsRUFBRTtBQUNmLElBQUE7QUFDRixFQUFBO0VBRUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUU7QUFBRUMsSUFBQUEsTUFBTSxFQUFFLFVBQVU7SUFBRUMsTUFBTSxFQUFFbEIsWUFBWTtBQUFHLEdBQUMsQ0FBQztBQUNwRWMsRUFBQUEsV0FBVyxHQUFHLElBQUk7QUFDcEI7Ozs7In0=
@@ -0,0 +1 @@
1
+ 907a29e9b683d52ab45c0fc02038916e
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ if (localStorage.getItem('uc_gcm')) {
14
+ return 'hidden';
15
+ }
16
+ const {
17
+ shadowRoot
18
+ } = document.querySelector('#usercentrics-root');
19
+ const banner = shadowRoot.querySelector('#uc-center-container') || shadowRoot.querySelector('#uc-fading-wrapper');
20
+ if (banner && banner.offsetHeight > 0) {
21
+ return 'show';
22
+ }
23
+ return 'suppressed';
24
+ }
25
+ let hasSentData = false;
26
+ function addCookieConsentTracking({
27
+ sampleRUM
28
+ }) {
29
+ if (hasSentData) {
30
+ return;
31
+ }
32
+ sampleRUM('consent', {
33
+ source: 'usercentrics',
34
+ target: trackConsent()
35
+ });
36
+ hasSentData = true;
37
+ }
38
+
39
+ export { addCookieConsentTracking as default };
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright 2024 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ function trackConsent() {
13
+ if (localStorage.getItem('uc_gcm')) {
14
+ return 'hidden';
15
+ }
16
+ const {
17
+ shadowRoot
18
+ } = document.querySelector('#usercentrics-root');
19
+ const banner = shadowRoot.querySelector('#uc-center-container') || shadowRoot.querySelector('#uc-fading-wrapper');
20
+ if (banner && banner.offsetHeight > 0) {
21
+ return 'show';
22
+ }
23
+ return 'suppressed';
24
+ }
25
+ let hasSentData = false;
26
+ function addCookieConsentTracking({
27
+ sampleRUM
28
+ }) {
29
+ if (hasSentData) {
30
+ return;
31
+ }
32
+ sampleRUM('consent', {
33
+ source: 'usercentrics',
34
+ target: trackConsent()
35
+ });
36
+ hasSentData = true;
37
+ }
38
+
39
+ export { addCookieConsentTracking as default };
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmNlbnRyaWNzLm1hcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vcGx1Z2lucy91c2VyY2VudHJpY3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDI1IEFkb2JlLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXJcbiAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OU1xuICogT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5mdW5jdGlvbiB0cmFja0NvbnNlbnQoKSB7XG4gIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndWNfZ2NtJykpIHtcbiAgICByZXR1cm4gJ2hpZGRlbic7XG4gIH1cblxuICBjb25zdCB7IHNoYWRvd1Jvb3QgfSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN1c2VyY2VudHJpY3Mtcm9vdCcpO1xuICBjb25zdCBiYW5uZXIgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN1Yy1jZW50ZXItY29udGFpbmVyJykgfHwgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjdWMtZmFkaW5nLXdyYXBwZXInKTtcblxuICBpZiAoYmFubmVyICYmIGJhbm5lci5vZmZzZXRIZWlnaHQgPiAwKSB7XG4gICAgcmV0dXJuICdzaG93JztcbiAgfVxuXG4gIHJldHVybiAnc3VwcHJlc3NlZCc7XG59XG5cbmxldCBoYXNTZW50RGF0YSA9IGZhbHNlO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkQ29va2llQ29uc2VudFRyYWNraW5nKHsgc2FtcGxlUlVNIH0pIHtcbiAgaWYgKGhhc1NlbnREYXRhKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2FtcGxlUlVNKCdjb25zZW50JywgeyBzb3VyY2U6ICd1c2VyY2VudHJpY3MnLCB0YXJnZXQ6IHRyYWNrQ29uc2VudCgpIH0pO1xuICBoYXNTZW50RGF0YSA9IHRydWU7XG59XG4iXSwibmFtZXMiOlsidHJhY2tDb25zZW50IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInNoYWRvd1Jvb3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJiYW5uZXIiLCJvZmZzZXRIZWlnaHQiLCJoYXNTZW50RGF0YSIsImFkZENvb2tpZUNvbnNlbnRUcmFja2luZyIsInNhbXBsZVJVTSIsInNvdXJjZSIsInRhcmdldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFXQSxTQUFTQSxZQUFZQSxHQUFHO0FBQ3RCLEVBQUEsSUFBSUMsWUFBWSxDQUFDQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbEMsSUFBQSxPQUFPLFFBQVE7QUFDakIsRUFBQTtFQUVBLE1BQU07QUFBRUMsSUFBQUE7QUFBVyxHQUFDLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0FBQ25FLEVBQUEsTUFBTUMsTUFBTSxHQUFHSCxVQUFVLENBQUNFLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJRixVQUFVLENBQUNFLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztBQUVqSCxFQUFBLElBQUlDLE1BQU0sSUFBSUEsTUFBTSxDQUFDQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO0FBQ3JDLElBQUEsT0FBTyxNQUFNO0FBQ2YsRUFBQTtBQUVBLEVBQUEsT0FBTyxZQUFZO0FBQ3JCO0FBRUEsSUFBSUMsV0FBVyxHQUFHLEtBQUs7QUFDUixTQUFTQyx3QkFBd0JBLENBQUM7QUFBRUMsRUFBQUE7QUFBVSxDQUFDLEVBQUU7QUFDOUQsRUFBQSxJQUFJRixXQUFXLEVBQUU7QUFDZixJQUFBO0FBQ0YsRUFBQTtFQUVBRSxTQUFTLENBQUMsU0FBUyxFQUFFO0FBQUVDLElBQUFBLE1BQU0sRUFBRSxjQUFjO0lBQUVDLE1BQU0sRUFBRVosWUFBWTtBQUFHLEdBQUMsQ0FBQztBQUN4RVEsRUFBQUEsV0FBVyxHQUFHLElBQUk7QUFDcEI7Ozs7In0=
@@ -0,0 +1 @@
1
+ d241929d3af96465ac32a4158c0e0fe8
@@ -1 +1 @@
1
- 90fa0790108137f0cb4c44345d2e577f
1
+ 20d1f82b8a8c89e965f951484f200f35
@@ -1 +1 @@
1
- 3476ee246a6b4c1599651d8a7580e2c7
1
+ 69d98a5cc1e1f11f6bedc2dbe91d8f8f