@redacto.io/consent-sdk-react 3.3.0 → 3.5.0
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 +12 -0
- package/README.md +11 -0
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +321 -155
- package/dist/index.mjs +321 -155
- package/package.json +1 -1
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.test.tsx +123 -1
- package/src/RedactoNoticeConsent/RedactoNoticeConsent.tsx +924 -652
- package/src/RedactoNoticeConsent/api/index.ts +31 -65
- package/src/RedactoNoticeConsent/api/types.ts +47 -33
- package/src/RedactoNoticeConsent/constants.ts +20 -0
- package/src/RedactoNoticeConsent/styles.ts +3 -6
- package/src/RedactoNoticeConsent/types.ts +11 -5
- package/src/RedactoNoticeConsentInline/RedactoNoticeConsentInline.tsx +12 -3
- package/src/RedactoNoticeConsentInline/api/index.ts +26 -64
- package/src/RedactoNoticeConsentInline/api/types.ts +8 -31
- package/src/RedactoNoticeConsentInline/types.ts +9 -4
- package/src/types/react-jsx.d.ts +26 -0
- package/tests/mocks.ts +53 -7
- package/tsconfig.json +1 -5
- package/src/utils/isLegacyApi.ts +0 -12
package/dist/index.mjs
CHANGED
|
@@ -3,21 +3,6 @@ import { useCallback, useEffect as useEffect2, useMemo, useRef, useState as useS
|
|
|
3
3
|
|
|
4
4
|
// src/RedactoNoticeConsent/api/index.ts
|
|
5
5
|
import { jwtDecode } from "jwt-decode";
|
|
6
|
-
|
|
7
|
-
// src/utils/isLegacyApi.ts
|
|
8
|
-
function isLegacyApi(baseUrl) {
|
|
9
|
-
try {
|
|
10
|
-
return new URL(baseUrl).hostname.endsWith(".redacto.io");
|
|
11
|
-
} catch {
|
|
12
|
-
try {
|
|
13
|
-
return new URL(`https://${baseUrl}`).hostname.endsWith(".redacto.io");
|
|
14
|
-
} catch {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// src/RedactoNoticeConsent/api/index.ts
|
|
21
6
|
var BASE_URL = "https://api.redacto.io/consent";
|
|
22
7
|
var apiCache = /* @__PURE__ */ new Map();
|
|
23
8
|
var CACHE_TTL = 5 * 60 * 1e3;
|
|
@@ -52,6 +37,7 @@ var fetchConsentContent = async ({
|
|
|
52
37
|
language = "en",
|
|
53
38
|
specific_uuid,
|
|
54
39
|
validate_against = "all",
|
|
40
|
+
include_fully_consented_data = false,
|
|
55
41
|
signal
|
|
56
42
|
// AbortSignal for request cancellation
|
|
57
43
|
}) => {
|
|
@@ -68,7 +54,7 @@ var fetchConsentContent = async ({
|
|
|
68
54
|
throw new Error("Invalid token: missing organization or workspace UUID");
|
|
69
55
|
}
|
|
70
56
|
const apiBaseUrl = baseUrl || BASE_URL;
|
|
71
|
-
const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}`;
|
|
57
|
+
const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}-${include_fully_consented_data}`;
|
|
72
58
|
if (validate_against === "all" && !specific_uuid) {
|
|
73
59
|
const cachedData = getCachedData(cacheKey);
|
|
74
60
|
if (cachedData) {
|
|
@@ -82,6 +68,9 @@ var fetchConsentContent = async ({
|
|
|
82
68
|
url.searchParams.append("specific_uuid", specific_uuid);
|
|
83
69
|
}
|
|
84
70
|
url.searchParams.append("validate_against", validate_against);
|
|
71
|
+
if (include_fully_consented_data) {
|
|
72
|
+
url.searchParams.append("include_fully_consented_data", "true");
|
|
73
|
+
}
|
|
85
74
|
const response = await fetch(url.toString(), {
|
|
86
75
|
method: "GET",
|
|
87
76
|
headers: {
|
|
@@ -141,61 +130,28 @@ var submitConsentEvent = async ({
|
|
|
141
130
|
throw new Error("Invalid token: missing organization or workspace UUID");
|
|
142
131
|
}
|
|
143
132
|
const apiBaseUrl = baseUrl || BASE_URL;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
uuid: purpose.uuid,
|
|
159
|
-
name: purpose.name,
|
|
160
|
-
description: purpose.description || "",
|
|
161
|
-
industries: purpose.industries || "",
|
|
162
|
-
selected: Boolean(purpose.selected),
|
|
163
|
-
data_elements: (purpose.data_elements || []).map((element) => ({
|
|
164
|
-
uuid: element.uuid,
|
|
165
|
-
name: element.name,
|
|
166
|
-
enabled: Boolean(element.enabled),
|
|
167
|
-
required: Boolean(element.required),
|
|
168
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
169
|
-
}))
|
|
170
|
-
};
|
|
171
|
-
})
|
|
172
|
-
},
|
|
173
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
174
|
-
};
|
|
175
|
-
} else {
|
|
176
|
-
const validatedPurposes = purposes.map((purpose) => {
|
|
177
|
-
if (!purpose.uuid) {
|
|
178
|
-
throw new Error(`Invalid purpose data: missing uuid`);
|
|
179
|
-
}
|
|
180
|
-
const dataElements = (purpose.data_elements || []).filter((element) => element.enabled).map((element) => ({
|
|
181
|
-
uuid: element.uuid,
|
|
182
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
183
|
-
}));
|
|
184
|
-
return {
|
|
185
|
-
purpose_uuid: purpose.uuid,
|
|
186
|
-
selected: Boolean(purpose.selected),
|
|
187
|
-
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
188
|
-
};
|
|
189
|
-
});
|
|
190
|
-
payload = {
|
|
191
|
-
notice_uuid: noticeUuid,
|
|
192
|
-
purposes: validatedPurposes,
|
|
193
|
-
select_all_mandatory: false,
|
|
194
|
-
source: "WEB",
|
|
195
|
-
declined: Boolean(declined),
|
|
196
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
133
|
+
const validatedPurposes = purposes.map((purpose) => {
|
|
134
|
+
if (!purpose.uuid) {
|
|
135
|
+
throw new Error(`Invalid purpose data: missing uuid`);
|
|
136
|
+
}
|
|
137
|
+
const dataElements = (purpose.data_elements || []).filter((element) => element.enabled).map((element) => ({
|
|
138
|
+
uuid: element.uuid,
|
|
139
|
+
selected: element.required ? true : Boolean(element.selected)
|
|
140
|
+
}));
|
|
141
|
+
return {
|
|
142
|
+
purpose_uuid: purpose.uuid,
|
|
143
|
+
selected: Boolean(purpose.selected),
|
|
144
|
+
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
197
145
|
};
|
|
198
|
-
}
|
|
146
|
+
});
|
|
147
|
+
const payload = {
|
|
148
|
+
notice_uuid: noticeUuid,
|
|
149
|
+
purposes: validatedPurposes,
|
|
150
|
+
select_all_mandatory: false,
|
|
151
|
+
source: "WEB",
|
|
152
|
+
declined: Boolean(declined),
|
|
153
|
+
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
154
|
+
};
|
|
199
155
|
const response = await fetch(
|
|
200
156
|
`${apiBaseUrl}/public/organisations/${ORGANISATION_UUID}/workspaces/${WORKSPACE_UUID}/submit-consent`,
|
|
201
157
|
{
|
|
@@ -366,6 +322,18 @@ var fetchTTSAudioUrls = async ({
|
|
|
366
322
|
// src/RedactoNoticeConsent/assets/redacto-logo.png
|
|
367
323
|
var redacto_logo_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATkAAAE5CAYAAADr4VfxAAAgAElEQVR4nO3deXhU5dkG8Ps552S2sId931RWwQVwq6LihmttiVUhaNUEcGnpXluLtnaz7WeVqhCokAS0RVuK4lK1igpaFRQREJBFQCAsAQJk9nOe748hNEDWycy858x5ftfldZllzjwkM3fe97wbMTOEaMjTd6BlLBLtoenclcEdLYvbaaA8Js5jII9AbQD2E9CKgRYA/ABa1rhELgDPCZc9DCB+9P9NAIdAVAXmEIMPEaiKmQ8SqIJAFZZmVcCifZpGuzXGjlAb3857H0ck/f964WQkIScA4Ml8tNC9Vf1AWj8i9INF/ZisvgC6AdQDxweWnewBsAvAdhA2AdgE5k0W65vaR7xbxi1AVHF9QjEJOZcpLkIORasGW5Y+BOAhYBpK4MEM9FJdWxrEAWwEYzWBVrPGazRoq3b29W6cNg2W6uJEZkjIZbHn8qFX+I4MJDZGAHw2CGcDGAbAq7o2xQ4DWAHCcgDLibTlhXO9m1QXJdJDQi6LPHQxjI69gsM0ky4A4XwAlwJop7ouh9gN4CMwllo6v7GnT+ATae1lBwk5h5s5PjqINfMKAl0O8NeQuMEvmm8/GG8S+N/QtNcKS3zbVBckkiMh5zDFRQggGLwchGsZdDmA7qprcol1AF5l0Iu7t/vemfbWsVFhYXMScg7w1K2VbXXdMwbAtQzcAPuOdLrFfgD/AdPiHI9v4bf/isOqCxJ1k5CzqUfz4c/1ha5hoADAFQByVNckahUC8B8CStuG/Ytkyor9SMjZyEMXw+jYPThW0+hWMK5FYkKtcI59YCyAhnlFJf73VRcjEiTkbODJCZH+mmaOJ6bbAfRUXY9IiXVgzPXkmE/f/nSLvaqLcTMJOUWKi5DD4dCNYBQBGA2AFJck0iMCwj8J9GRhiW+p6mLcSEIuw2YUHOlIrN8Owt0AeqiuR2TUJwSeURUOlE1dgJDqYtxCQi5DnppYdbrG9H2AboKsOHC73Uw8Q4uZfyl8puU+1cVkOwm5NJtxW+h8svATAFdDuqTieFUM/NUy8McpT/u3qy4mW0nIpcmsicGrLKafAvia6lqE7UWZqJTj9NvJ872bVReTbSTkUqx4YvgCi/lhAi5SXYtwnBgBf9NA0+4s9W1RXUy2kJBLkVkTQudZGn4JxqWqaxGOFwVorqmb06bMyS1XXYzTScg101MTIqdpZP0KwDjVtYisU8XEfwyFAr+X0djkScgl6YmJh/N0Nn5BwBQAhup6RFb7Ckw/K5rnKwND3rBNJCHXRNPvg9dzIPRdEN8PUCvV9QgXIfyXGN8tLPV/oLoUJ5GQa4JZEyNjmM3HGTRQdS3CtRjA86aB78u0k8aRkGuEWRMjp1rMjwI8VnUtQhxVxcR/jLUO/FZOLKufhFw9Hs2H3+8L/YKA70O2OhL2tE4DTbqr1Pe26kLsSkKuDjMmhEcT8QwAp6muRYgGMAHzEI9/T5aJnUxC7gRzvn2kQySu/5mAW1TXIkQT7SGiqYUlvmdUF2InEnI1zJgYvIaYigF0UV2LEMmjl2Mx6657ng3sVF2JHUjIAZh7+8E2EdP3e4ALVdciRIocZNB9k0p9ZaoLUc31IXe09TYLQGfVtQiRBn+3zOjkyfNbH1BdiCquDbnp98GbczD0CAH3QrZAEtltOzQaXzTX947qQlRwZcgV3x4dwHHzWRCGq65FiAwxQfgj+fwPFM5ETHUxmeS6kJtZEL4D4McBBFTXIoQC78Zi/C03DUq4JuTm3g5fxAw/DvBdqmsRQiUG9uqk3XJXifcN1bVkgitCrnhiuKfF/DwBI1TXIoRNmEz88KTSwEPZvrNJ1odc8YTg1Uw0D0Ab1bUIYTuM5wPkv21CKapUl5IuWR1yMyeEvgPCnwDoqmsRwq4IWBUz6bq75/u2qq4lHbIy5KbfB6/nYHAGQLeprkUIh9hnMd04ucz3rupCUi3rQu7o2tN/EXCe6lqEcJgwEd2RbWtfNdUFpNJTt0b6RuP6Ugk4IZLiY+Z5MyYGH1RdSCplTUtu1vjgCEujxQA6qq5FiCwwvbyf/7vTpsFSXUhzZUXIHV1/+jcAuaprESJrEBZEW/sLnL7zsONDbkZB6FsElEJ27hUiHZaYYf+1UxbgiOpCkuXoe3LFBcFCAuZDAk6IdBmt+0KvTB8Px55M59iWXHFB8G4GTYfsICJE2hGwIkbxK+4uaVmhupamcmRLrnhC+H4G/QUScEJkBANnGZbxxhMTD+eprqWpHNeSKy4IfZ+BP6quQwhXYqw0vLFL75jdar/qUhrLUSE3c2Loe2D8SXUdQrjcx5YZHeOU3YYd012VgBPCNs7UNM+LT+ajhepCGsMRLbniieGJzDwHcg9OCDt5M9rGP9bu8+hs35IrnhC8gZlnQwJOCLu5xHMg9Oxz+fbe5cfWITejIHwJE/0NgKG6FiFELQhfr/CHp6suoz62DbmZBcGzCbwIgFd1LUKIuhHz5BkF4Z+prqMutrwnN2NiqBsx/gugu+pahBCNwsw0YVKZb77qQk5ku5CbPh6tvFroXQZOV12LEKJJwiBcUlTif191ITXZqrtaXIQcjxZ8XgJOCEfygfHCkxMi/VUXUpOtQo5D4ScAukx1HUKIpLXXiRfaaQ6dbUJu5sTgFDkTVYhswEN0X6gMZI9pX7YIuVkTQueB6VHVdQghUuaGmeNDP1JdBGCDgYfiCcEulkbLidFVaSFCiFSzNOJr7ioJvKKyCKUtuefy4WGihRJwQmQlzWIqmz0+pHQqmNKQ2+8PPQJglMoahBBplWdqeOahi9WtWlIWcjMLgteCcZ+q5xdCZMzXOvcITlP15EruyRXfFunHzCvA3DrjTy6EUMECa1cWlXlfz/QTZ7wlV1yEHMuynpWAE8JVNJBVomL79Mx3V0PBaQSMyPjzCiFU62KwMTvTT5rR7uqM20Lnk4W3AXvvPyWcRTeAviN1dBusw98KCB5gbP/MwtZPTJhx1dWJEzGoYFKpryxTz5exkHsyHy0MX+gTBmy1rk04W14PDZfd60HrzidPrg8fZqx/18TnS+KoLLfXRhSuRlQZj2PY3fN9WzPxdBkb1jV8wccYJAEnUqZle8K193vgza199ZCvJWHYWAPDrjKwY62FtW/G8eXHJiwzw4WK4zG31nWeDcLlYKT9r09GWnIzx4cvhcavQ7YwFyl0+Xc86HNW0+58BCsZ699OtO4O75PWnVJM3y4q881J99OkPeSmj0crjxb6DEDPtD6RcJVAa8L4x3ygJIfOmIHtq0x8/paJrStNsJXa+kQjEFXGotage54N7Ezn06S9u+ql8CMsASdSrOcZetIBBwBEQM9hOnoO0xE8yNiw1MTaN6V1l1HMrXNy6M8A8tP5NGltyc2YEB5NxG9Cuqkixa74rge9z0ztID0zsHOthbVvxbFlubTuMsVivn5yWeCFdF0/bSH3XD48B3zBlQwamJYnEK5leICJT/hhpPGIo6oDjC+WmVj9RhxV+6V1l2bbAvAPmlCKqnRcPG3d1Qpf+IckAZd2ngCh5+kaWnYgxKPA7i8s7Nmc3U2QrgP1tAYcAOS2JQy/xsDpVxrYssLE52/FseNzC+kfC3SlnlUc/DEQ+EU6Lp6WltwTt4Z7GTqvAZCb8ouLBAJOv9LAiBtzTnrD795o4a3iaNbODfvabTkYdEnmN7WoLGesfTOODUtNhI9k589WoahG2tC7SrwbUn3htCzrMgw8AQm4tNFzgDFTPDj35pMDDgA69dfw9WletO6UhbdCCeg1XM2CmdadCefekoPxj/lwySQPOp9qi421s4XHtPjP6bhwyltyT00IXqcRLUrpRcUxvhaEK6Z60PmUht9ge7dYWPhQJKtuoLfvreEbv7TPeeMHdlhY+6aJDctMRIPSums+vq6oNPBiKq+Y0pB7Lh+e/b7QZwBOTdlFxTGtOxGu+r631iVMdXm3JIa1/8meBZxn3WDg7BtzVJdxkngUWPNGHB8viiEaUl2No22KtvEPvvdxRFJ1wZS2t/d7Q1MhAZcWnfpruOEXTQs4ABj5TQO+ltnTbe11hj33djA8wLCxBq7/uTerft4K9PNWhlK6mW7KQm72LVWdQHx/qq4n/qfvCB3X/CS5N483lzAq334tn2QE2hI69Lb3fbB2PTRcdEd2/LxVYcYDxROCXVJ1vZS9YkyDfg1Qq1RdTyScfpWBMfd4YHiSv8ZpF+ro1N/e4dAYvYbrjphW3vtMHXk9nf/zVqglk/Zgqi6Wkt/EUxMipwE0MRXXEgmkARcU5ODcm3NAzXxjEwHnF+Q0axmUHfQa7px/QLfBzqnVnviOJwuiKZlnm5LfhEbWb5DBbZuyneEFLr/Pg8FjUvcj7dBbw8DRzv0VGR6g22B73o+rjV/uyzWXrpP5YCou1OyQmzU+OALA11NQi0Bid43r7vemfF0mAIwc59xBiG6D9WZ12TMtdFimkzQbY1xxQajZR5Y2O+QsnX4LR9wpsb+23Qg3TPOiQ5/0dHWcPAjR6wxndf++Wp1FkxPVIWb+ZXMv0qxXzqwJofPAuLS5RQig60ANNzzgRcv26f17cdqFOjr2c1Zg4Oi2SE6xdaWJ/dsl5FKC6PIZt4XOb84lmvVqt4gfbM7jRUK/UTrG/sALTyD9DWIi4GsTnTUI0aGPhty2zugsxKPAe/NiqsvIKsT00+Y8PumXeqKvTJc158kFMPQKA2OmeKBnsBfZ3mGDEL1tOgG4Nh8viuHQHrkfl1LMV88sCJ6d7MOTDjkmeiDZxwpA04Gv3Z6D827NUXJH00mDEE65H3dgh4VPX86eJXT2knxrLqlXz8wJVcPAPDbZJ3W7HB9w5VQPBl2srjXlzSWMGmf/1lxuW0JeD/uHHDPwztMxOQksfW6YOT46KJkHJvXqYdBUyIhqUgJtCdf/3Isep6vvgp12kWH7lRC9znTGKofP34qj/AsZbEgjDZr1neQe2EQzCo50JKKbknkyt2vXI7HPm12W/BAlVlXYeRCitwO6qqFKxofPSTc1/Xji7FuqOjX1UU1+BRG0uwH4mvo4t+s+RMP1P/eiRTt7NUvsPAhheBNbndvdsnkxRKpksCEDvFaOXtjUBzUp5KbfBy9ARU19ErcbcKGOq77vhcevupLa2XUQovsQPaOjzsnY/pmJTR/IjbhMYeZ75t7etEZWk0Iu52A4H0CTm4uuRcDZX8/BRXd6oNm4QeLNJYy04SCEXfeOqxaPAktLZE5chnWMWuEbm/KAJoUcMUsrrgnOH5+Ds75uv/CozYCLDFuthEgc/myfemqz4l8yJ04FZr6rKd/f6FfRkwXRgSCc1/SS3Kn3mTqGXOaMgAOODkJMbP62TqnSoa+GQGubFFOLiu0WVr0igw2KjG7KNkyNDjkd5mQ4YjDfHoaNdU7AVevQW8NAhXP3arJzV5UZeHeuzIlTSSfz24393kaF3KP58AMYn3RFLqPpsFXXrynsMghh5w0y174Zx26ZE6cW47bEQGjDGvVKCvhD1wFo26yiXMTwkq0HGupjh5UQLfLINnMJTxQ8KHPibKJ9TmWoUauuGvdKYtzarHJcJhpiR5/BeZriQQg7d1WXzYs5+nebTbRG5lKDr+S/3nmoHYArml2RmzDw5cfO7c4cWwmhqNdq167qtpUmNn8oN+LsgoGr595+sE1D39fgq8mMGDcBcNDG0/bw8aIYYmHVVSSvQx81gxA5PqDrIPu15OIRYGmpzImzGV807vlmQ9/UYMgx0S2pqcddKncz3ngyCsvBt29UDEJ0H6JDt8cA73GWL4zh8D7pptoNEzXYZa035I4uhpW5cUnattLEq3+OIh5VXUlyVKyESMcBPs1Vsd3CZ/928F+r7Hbhk7dXda7vG+oNOUunGxv6HlG/7atMvPyHCKIh1ZUkZ0AGt2MiAnoMtdfLjRl4d47MibMxzYjTNfV+Q31fZJKjBlNh13oLi38XQfiI87o7mTyYumN/DX6brXJY80Ycuzc6dxDJDZi0enOqzpduYtSCLkp9Se60d4uFl34fRdiB53F26K1h4EXp77ba7SyH4EHGR/+Qbqr98aXTx6NVXV+tM+TCcd/VkFHVlNq31cKihyOoOuC8oBuZn/5BCLud5bC0VObEOYTXo4euquuLdb6qiLjOB4nkHdzFWPRwxHG7V6R7EKJle0LbbvYJue2rTGxZLjfiHIP5yrq+VOur6qGHoAGQ4wbT5PBexou/jaCy3FlBl85BiF42GlWNR4F3ZZ84h6ErQbVvIFLrK7bjluAZADqmtSaXO1LBWPTriKNOWk/nIISd7sd99HwMh/c66w+QQOdZt1UNq+0Ltb5cydLqbPqJ1AlVMl74TRR7Njsn6NIxCOHxA11Os0dXtWK7hdWvy2CDE1mmXusttjpeWSxd1QyJVDFeeiTqqK17Uj0I0X2oDs0GqxxkTpzT8eW1ffakkJt7O3wEjEp/QaJaNMhY/EgEO9Y4I+i8uYSR30xdKtll15HVr8mcOIc7p7ZDbk4KuXA8fA7kyMGMi0eAV/4UwZcfO6MZMWB0arZjIg3oebr6rmrwIGP5QummOpwvFA+POPGTJ726iHBhZuoRJzLjwOt/iWLzR/YPumNnQjQznzr112yxE/G7JTInLhvUll+1vERZVjkoZMWBN56IYsNS+wddh94aBjRzEMIOXdVtK018ucL+P2/RMGKr/pArLkIOgHMyVpGoFVvAkllRrFti/+7TqGYOQqjedSQWBt6ZK3PisgbRec/l47gX1fEtuWBwKIBAJmsStWMG3p4Tw6pX7R10zRmEaNWR0KaL2q7qR/+IoWq/dFOzSIsDnqpBNT9xXMhZGk66aScUYuD9Z2JYYfMb4skOQqhuxe3dInPispGl68fl2HGvTGIJOTtavjCGDxbYt0uV7CCEyvtxbAHvzImBZcZI1jkxx44POZCEnE2tXBzH0pIYYNOeVVMHITwBQudT1U0d+ey1OPZ9KQmXjQhce8g9mg8/A4NOfoiwizX/iSdaHzYNuqYMQvQ8XVN2Nu2RCsbyf9q3ZSyah4GhNQ+ePhZyvkBwEAAbLK4R9fl8SRxvzojaculRUwYhVHZVl5U5+yQ10SCPUVl1WvUHx0JOZ22ImnpEU21838Rrj0dh2vCeeWMGIUgDuis6y2HzR6ZjVpWI5OnQj+XZsVcagyXkHGTrJ0eDzma9LiLgggn1H0zd+RQNvhaZnzoSDQHvzbPZDyyF2nYjDLhQx/BrDPQ/V7fFShJVmK1jefa/vgXTENve1Ra12rbSxCt/iuDKqV4Y3oa/P1M69NUwYLSBz9+qvampqqv60fMxR249XxfDA3QdqKPncA09h+lo2f74UDNjwGf/juOjf7hxZxWqJeSkJedIO9ZaWPxIBGO/74EnYJ+/3CPHGdjykVnrCWUqQm7PZgtr/mPD/n0TtWxP6DksEWxdB+ow6jmFRc8Bhl9joHVnwuvTo7YdsEqTodX/Q8yM4iIEOBQ6AtS+fbCwv/a9NVz9Q4+tuihr34rj3TnHdw9bdyJ86w+Z3eTGMoGFD0awb6vzpoyQBrTvqaHXGTp6nqGhQy8tqXfp23+NYt3brmrOWcGwv8XUBQgZAGCGq/pr0Ozz7hBNtu9LCy/8OoKrf+xFblt7/CoHjjaw/h0Tezb9L1xUnOXw2b/jjgo4X0tC14GJYOs1XIM3t/m/zyGXG24LOS3gifYBPGsNANBY66+6ItF8B3YmDsi55idetGinPuiqByEWPhQ51lXqNTyzIXd4H2P5QpsPNlBiMnXPYRp6DtfRoY9W78BNMvJ6JA7uDlW6p89qUbz/sZAjQj+X9dezVmU5Y9GvEkHXupP6oOvQN7ES4vMlcXhzM7/KYVlZDPFIRp+yUQwv0G1QoqXWc7iekdZ3+14atq9yT2tO06g/UD3wYFE/kKRctjhSwXjh4Qiu/rEH7bqr33V31E0Gtqww0X1IZlc5bPrAxNZP7POmbtWR0G2wjl5naOgxJPPnWnToTdi+KrPPqZSFfsDRkGNCb6XFiJQLVjIW/y6Kq3/kQV5PtUHnzSWM+KYBjz9zLctoKLGDi0p6DtD5VA3dB+vofZaufFupvF7q/+BlEoP6AMemkFg9ZGA1+4QOMV78bRRjf+hBx75qX+ADRxswo5l7vg8XqJkT1yLv6BSPYRq6Da5/ikemdejtrpAjDd2B6pAjrZvbJtG4RaQqMRhx5VQvug1S9yInQsYmLO/ZbGFtHRORUy1VUzwyoWV7gjeXEKlyyXuduRsAUOkEzg0idER1PSK9DA9w+Xc86DFU/ZkK6WSZwD+nRVCxLX1TRnwtCF0HpXaKR6Ys/l0EO9Y6ZzpNc5Hfn2sc4Uh3mSGX/eJR4NVHoxgzxYM+Z2dv0K16JZ6WgGvbTUOvMxL317oMULdNVHO17625KuTiwUhXQ9e4q/RU3cE6euTh6Ds9OPUCh75L63F4H2PFotQMNhgeoNMpGnqfoaPP2TpybTDvMBXau2zwIYe4m2FZ3CHVEw+FfbEFLJkdhWV5MODC7Aq6ZaXNmxNXc4pH9yE69CzcXbG9ywYfTOb2hgbOY7veKRVpwVZiLWMslIOhV2THO3njf01sXdm0OXGaDnTsp6HXcB29ztDRtlv2vw9adybk+OCaTUM14jyDScuTLZZciIH35id2yD3zemcHXTTIeP/ZxnVT/a0IPU5PBFv3oTo8/jQXZzNEiSVe5V+4474cQ8szAM5TXYhQ56N/xBCLMEbl56guJWkf/D2OYB1z4ogS96GcMMUjU9r3dlPIcZ5BQJ6049xt5eI4YuHEYnqnBcCeTRY+X3L8nDhvLqHbYA3dB2vodaaOQGuH/aPSzE2DDwTOM0BoLb1VseaNONgELrit/q3L7cQycez0slYd6ei8NWdP8ciE9r0d8gtOBabWBjNaqK5D2MPat+KIxxij7/Q0+aBoFfZusTB4jI6ewzy22UPPCdp206AbsOVBSClH3MIAkKu6DjvQDMAboGN74UdD7MrT1TcsNWHGorhkksf2raFO/TV06u+ANLYZTQfa9dCwd0v2v8AZlGsAlOvm0dVewxOnG3U6pfaNCs04EI8kfj7RIMAMmDFGPAbASux2AQCxCMOKJ7pQsfDR7w8lpmtYZuLrABCtSvy0zejRazAQCSa+Fo8kJuxa1snXMOOcsX3RNn1gIh6N4rJ7PNCdOx4h6tG+lztCjoBcA2DXdlfPvTkHp19V//QJ3QB0I5F+3mNtXrVdo2iQj4ZtYrkWUFtQMmJHAzgaBtjko4F99HOhE65RM2yjQDzKWPVKHGdca6j+54o0cNF9uRYGAJfNFEoYcKHeYMDZVe2ncrnmRStSwEUjrLkaABvteJUZmg6c/Q3phwn3atfDNSPQhobjzl51h/a9NBmNE65meIA2XV3RmnNnyEnACQG07+WK94GhAXBHo7WG6pFOIdzMJfflclzZkju0R0JOCJdsu2RocOGw3OF97I7Z3kLUI69n6g+xtiFNA2CfgykzhC1pzQnh8QOtbHAAeZrFNACubNNU7sr+2d5CNMQF9+Xirg25g+XSkhMi+0OO3Rtylbsl5ITI/sEHcnHISXdVCLTtmvX35OIaAJccaXE86a4KAeT4VFeQdmENwBHVVagQqmREgxJ0wt2OVGT7e4CPaARUqS5DlUppzQmX+/Lj7L5tw6AqzXJpSw6QLqtwt2AlY9Wr2X1LnoAqjUAubsll918xIeoSPsx45U9RRKqy/g/9EYPAh7L+n1kH6a4Kt6k6wNjykYmPX4gj5IJ3PgFHDAYqVBeiinRXRV1ObOFEavR3mBPbxx9T46wP4Pit5xMfA7Ea35/4+ISvh2t8PQ7EapznYZmMWI05EImvH//9Nc//MOOJ7euPfXx0i3szxse2y3cLBioMJt5HnPVzZWpVWW4lTpVx5z8/qx3aw1gyK3rszR8J1h1aiY/lD1524gqDQK5tycXCiZuvgTaSctmmVUfCuTfn4KU/uOK+k6gDgSo0N4ccIPflslmHvhqu+bEHvpbyR8y1iPZpFpuuDrmDMsKa1dr31nDdz7wIyJb3rsSWuV/TLOxUXYhKB3dJS64+bAF7t1hY9Woc699x5taDbbsSrvupFy3aSdC50C5D95k74tFs34mgbodkN5LjWCZQsd3C7g0Wdm2wsGONhUgVQzOA/N86d6Fj686E6x/wYvHvIrIDjYuQae0gZsbMglAVgIDqglRo04Vw0++d++ZtrupQ27HaQvkXFnatt2pd03v6VQbOvdn5Z9UGKxkv/T6K/V/JbQoXiBSV+f2JQ2wIO8A4RXFBShzay7BMuOWgXcSjwL6tFsrXW/hqjYnyDRbMWP2P8eYSzrg2O847CrQmXPMTD156JIqKbRJ0WW4nGJx45TJ2AO4MOSueONimdZbudR8LA3s2WSjfYGHXBhPl660mH+Jz1g0GfC2y5+fjb0W47n4PXv5jFLs3StBlsa+Ao8cRMvNWcsGxPXWpLLfQulN2NOWqQ626lbZnkwWrGeMFrToSBl2aHa24mjwBwjU/9uLVP0ewY40EXVaiGiGnadomZvfejK0sZ2CY6iqSEzrE2LM50VLbsdrCvq0WUvmrHHVTDvTsyzgAgOEFrpzqxWuPRbH9M2eOHIu6scUbgeqWnMUb3by0yUlrWIOVjPL1iUGC8vUW9m49ujQtDTr119D37Oxo4dbF8ABXTvXgjSej2LJcgi6baJq2CahuyTFvtFzeXbWr4EFG+QYLX61JtNYO7MhcrefcnOOKdb2aAVx2jwdLZkexYakEXbawqEZLLs6xjRo8aitSqNJGE4IP7mLsWm9i1zoLO9dZqNqvpra+I3R0PiVz8yfXLYljwGh1/WLSgNF3ekBa1LGTnsXxjKj1v5CbPL/1gRkFob0EdFBblhpHDjDikcQ9mkw7tIexY42J8i8s7PzcssWe+5oBjMzP4Jw4Bj58Pg5vS0Kfs9R1j0kDRt/hgccfw2f/zu4dc13g8H7fposAABZ1SURBVJ3P5O4GjoYcABCwBsBoVRUpxUDlbgt5PdPbcmELqNiWmHC7c13inlr4iPpQO9HgS42MTqk5sIsROsR4f34MPYbqMFR2Kgg479bEYMvKlyToHIuwpvp//xdyhNXMLg05AOVfpD7kLDOx7nPX+sR/5RtqX01gJ95cwlk3ZLbbuGt9ont4eB/jkxdiGPFN9SsrRt2UA8NLWP7PBmZKC1ti0Orq/z/2arbAq8kNd5nrsO5tE4MvMZp1o72xS6Ts7MzrDXhzM/s62LXuf4MpK1+O45TzDbTpov61mJgEDSwti6VtBFukh8Z8cksORKvd/Ivc96WFVf+O4/QrG9+KiUeB3RutYwMFezZZjt5eulVHwuAxmb/5XzPkrDjw3vwYxv7AHgNhg8cYIAKWlsZSOv9QpBeRdnJLLhb3f+bRQq7eDPy/z8YQjwDDrzFqXcsaCwPlG8xE93OdhT1bLFhZdNtm5LjMT/w9tIdRdeD49Ni+ysSWFabSQYiaBl1qwPASlsyOgu0720jUwJZ5rCVHNVc6zCwIrQdwqoqi7KRlB0K/UTradNHAJuPATsauDRYqtjZviZSddeqv4YYHvBn/E7f+HRNLZp/c/G3ZnpD/O5/aQYgTbP7QxH+eimbtayCLlBeV+rtUf3D8323GhyAJucN7GSsXZ1ETrRHO+Zaaib8719WeGIf3MT55MYYR31A/CFGt70gdhteD16dHHX1bItsR4cOaH2snfPGjzJYj7KDvCB2dT1Wzcequ9XX3/1a+FLfdzs09h+kY+wMvcty7BaHtMdNxOXbcK5sl5FxH0xP34lSo2s84vLfuELPiwLIy+zWZugzQMPYHXngCrr19bW9sLq/54XEhFwz5VwKQiUEuMniMgdad1bxZd65r+C7+V6stfLnCfjfBOp+q4dqfyElgduTJ4RU1Pz4u5KYuQAjAcSkospcnQDjzenXrRXc1IuQAYNm82HEnxNtF+94arrtfTgKzEwI23v50i701P3fyjRjCOxmrSCh11vVqd/ytXunQkCMVjE8W27OD0bYb4dqfeJErJ4HZAoPfPvFzJ4ccs4ScC7TsQBh8mbpWXLCSm7SPnx0HIaq16UK4/uferN1C30mItHdP/NxJIRe1AksB2O8miEipUflqd/zdta5pm33adRCiWsv2hOt+7kXbbu493tMOzDg1HHL3zsMhAJ9kpCKhRMe+GvqNVLuaoL6pI3Wx6yBEtUBrwrU/9aR9NxtRpx2T53s3n/jJOn4b/Hq6qxHqnHuL+h1/kwk5wL6DENWqTwLr1F+CLtMIeLO2z9f6m9Cg/Tu95QhVVE78rRapYhxI8nBnOw9CVPMECFf/yItugyToMsliqjW3av0t7NzuWwaiyvSWJDJN5cTfmnata96JYnYehKiW4wOu/J4X3YdI0GWIBYrX2gOt9Tcw7S3EwfxWemsSmaZy4m9NyXZVq9l9EKKa4QGu+p7XNrupZDMGVkwqbbGntq/V+WeGiV9NX0ki0zwBwpnX2eMA1cZOAq6P3QchqmkGMOYeD049X4IunQhc5y22OkMuHsWLAGT3rCxx5nWGLZYgRUPAvm2peVnZfRCimqYDo+/yYMCFEnRpQ/RyXV+qM+TueTawE8AHaSlIZFTL9oQhCif+1lS+wUzZxpNOGISoRhpw0R0eDL3CHr+HbMKEneV9/XVmVb13RYmwMPUliUwbOS4HuvrxBgDNvx93opUvxVHZhJUTShFw3i05GDZWgi61aNG0aXX3OusNubilScg5XMe+GvqfY59uUirux9VkxYGlpfYfhDiGEhuUjsrkubZZjiyqN6fqDbkpZd6NIPostSWJTDrnZvUTf6vFo8DeL1N/m/er1Ra+/Nj+gxA1Db/GULYbc5Y52C7iPWlRfk0NT+JhPJuyckRG9TlLR5fT7DNPa/cX6Tv4Z1mZMwYhaho21sDXJuaAJOiSxsyLxi1AvU35Bt8BRJgPOXXScTQ9cUCyndR1nkMqOGkQoqZBlxi4uMhT6+lwomEEfX5D39NgyBWW+LYBWJqSikTGDLrEHhN/a0r1oMOJPnXSIEQNp5yn45JJEnRJ2NUu4q11vWpNjerLMHGDaSnsI8cH20z8rWbGgb2b0xtyptMGIWroN0rHFd/x2GYU3AkI+Nu4BQ1vC9eokMvJiT8HINzsqkRGnHl9Dvyt7dWK27PJysgxfk4chKjWc7icBNYUDH6mMd/XqJC7Y3ar/Qz8s3kliUzIbWefib81pXrqSH2cOAhRrevAoyeB+VVXYne0uqg00KjzaBo/9MY0K+l6RMaMys+x1anz1Rp7nkMqOHUQolrnUzWM/aHXlr9HuyBwo/Oo0SE3qcy3hMCfJ1eSyIQOfTSccq797l5bJrB7Y2aXQX/6chyVu503CFGtU38NFxRIytUhrHti8xr7zU2aRMVMTze9HpEp59po4m9Ne7dYiGX4jq4ZA96b59zWHACc+jUdrTra8Beq3j/umN1qf2O/uUkhR2Z8LoBQUysS6df7TB1dBthn4m9N6Z46Updtn5qOHYQAACKg+xD7tcxVY6bZTfn+Jr0rCp9puQ+gRjcTRWbYceJvTapCDgDemx/LyKhuuuTKwdUnoNWT5vnqXcZ1oib/6de0+GOQFRC2MvBiA2262PPNwBZQvkFdyB3ey/jkRed2W0OH5a12HMb/gZuWP00OubvmtlgD8BtNfZxID48fOPvr9psyUq1im4VoUO0b9dOX4zi0x5lhsWON7FtbjYG9XsPX5LX0Sd3EIcZjyTxOpN4Z1+bYYsffuuzM4Py4upgxYGmJ81pzX35s4sAO9T8/uyDwU7fNafqihKRCrnBe4GWAVifzWJE6LfIIQy63bysOAMoV3o+raftnzhqEqCxnvPO084I5jcKmzk8l88DkhuMYTITfJvVYkTIjx9lz4u8xDOxSeD/uRMvKnDEIsXezhUW/jiB0yJld7HRgojlT5uSWJ/PYpOcctA35/g5gQ7KPF82T11NDfxtO/K1p/w4LYRvdOD9SwVj5kr1bR19+bOKF30QQqrTPz80G4gbjD8k+OOmQS6z+p0eSfbxonnNvtv9mi5lcr9pYK1+073ZMq1+L47XHo45obWYWP3NnqW9Lso9u1uxR8vtKCdjanGuIput9po5ug+058bcmlfPj6mLGE91WW2FgxcI4ls2LpewksyximTB+15wLNOudUjgTMWZ6qDnXEE1DGjBynL0HG6rZ6X5cTXYahDBjwBtPRrF8oc2C1yYIWDCl1NOsNfPNbg60i/hKZeF+5gy62EDbbvZvxVWWM4IH7NktBOwxCBE+wlj8+wg2fWCPwLUhE7re7EZUs98tR+/NTWvudUTDcnzAWTc4oxWXzvMcUkH1IETlbsa/fhlRuhrE/ujpwjmedc29SkqaBIVl/ucBfJiKa4m6nXGN/Xb8rYtd5sfVZ+ViNSshdq23sPDBiG0HQGwibBr8q1RcKDX9HgbDovtTci1RqxwfMHiMvaeM1GSHlQ4NUbESYvNHJl7+QwSRKgm4+hDw1JSn/dtTca2U3dwpmuf7D4BFqbqeOF7XATo8AWe04g7vYxypcMabOJODECsXx/H6X2SKSCMciFH816m6WErvYJOmfR+AQ3fXt7cWec4IOMCe8+Pqk+7tmCwTeOfpGD5YEJP9exqDMO3ukpYVqbpcSkOucK53EwN/SeU1RUJE8U4eTZHJ8xxS4fDe9A1CxMLAq49G8fmSeFqun4XWkc8/I5UXTPlcBJ8eeRjAnlRf1+12rbfADsk5p7XkgPQMQlQdYCx6OILtq5wV+ioR8w8KZyKlf3FSHnK3zWlzkEE/SPV13a5qP2Pj+/Z/s1QdYEceIJPqMyEqtltY+FAEFducF/jKEL1UWBZ4KdWXTcus0kllvnkA3kzHtd1sWVkMB3bYO0DsuJSrsbauNLH1k+b/IflqtYUXHo6gar+9f1c2E7LidF86LpyeqfMM1kibDBmESKlIFeNfv4pg3dsmLJs26pwcckDzByHWvWPilT9FEJXjnpqEiH45eb53czqunbb1QXeVeDcA/H/pur5bRYOMt/8axfypYbw3P5Y4z9RGDYZdNl/p0JBDe5IchGDgo3/E8PbsqG3/ANkXr20b8qUtK4jTeDf70Xz4A77QSgCnpu1JBFq0I/QZoaPvSB2dT1G3rjV8mFFyT9hWoZsM3QDG/caH1p0bN23HigNLZkfxxXuSbkmwLKbRk8t876brCdIacgAwc2LoXDDeBeCc6foO1qYLof85Bvqdo2f8BK8ty0289nh2zHTtOUzHVd/zNHhYd6SK8drjUez83NnddFWI8JfCEv+9aX2OdIccAMwoCD1GQFpuKoq65fXU0P8cHf3O0dGyffoD7735MXz27+yZDzZyXA7OuLbuDREO72O88scIDux0eNNVEQK2Gjn+od/+Kw6n9XkyEXLFRQggFPqUgf5pfzJxMgI69UsEXt+ROgJt0hN4z/88+6ZMDBhtYOQ3jOM2RrBMYON/Tbw3LyZrUJPHpGlXFs71vpbuJ8pIyAHArILwRRb4TaRxsEM0jDSgy2mJwOszQoevRWoCLxpkzJ0cdsyE5abQjMQfiRZ5hFgE2LPRQlDOYGgmmlVU6ivMyDNlKuQAYObE0O/A+HHGnlDUizSgU38Np56vo985Bjz+5K+1YamJt4qz436cSLvNOTn+4enuplbLaMgVFyHHCoWWETAiY08qGkXPSdxs73+Ojp7D9SYddWiZwD+nZV9XVaRFHIQLi0r872fqCTMacgDwZEF0oA5zBYBmtBtEOuX4Eofl9Bulo8dQHVp9mxEzsLQshjVvZM+Ag0gfJn5oUkngwUw+Z8ZDDgBmTgxOAdMTGX9i0WTeXEKfszX0P8dA14EaqMYd1YO7GO8/G8O2lTI/TDTKB+Xb/RdMewsZ/YuoJOQAYGZBaB6AW5U8uUiKN5fQsa+GHF8i4PbvsNdqC2FrBy1TOytdS7fqo+xUFDPsn6T7QmcDOE1VDaJpIlWM7Z9Jq00k5Q4VAQconM4xZQGOWGTlA5ClzEJkM8JjRaX+f6p6eqVz1iaX5K5i8HdU1iCESB8GPmoX8v9IZQ3KJ+ZOKg3MIqaZqusQQqRchQG6adwCKJ1AqTzkAAAB371gvKO6DCFEysSY6Zt3lvq2qC7EFiFXOBMx3bTyAXyluhYhRPMReOqkMt8S1XUANgk5ALjzmdzdmsU3AgiqrkUIkTwCP11YGrDNPFjbhBwA3DUv8BET3wRA5ikI4UzvRtoEpqguoiZbhRwATCoJLCbCT1XXIYRosk0Uj9947+P2OttF2YqHhsycEHoCBFv9RRBC1KkCpnZu0XzvF6oLOZHtWnLVyr/yf4cIL6iuQwjRoJDGuM6OAQfYOOSmvYV4Vcj/LZlaIoStmQDG31Xmf091IXWxbcgBwNQFCEXZfy2AT1TXIoQ4CTNRocolW41h65ADgHvn4ZCpW2MBbFJdixCiBsaPJpX4nlZdRkNsH3IAMGVObjkRXQLgS9W1CCEAJv5NUZn/j6rraAzbjq7WpnhiuCczvw2gt+pahHCxPxeV+qeqLqKxHNGSq1ZY4ttmsnYZE3aqrkUIl5rupIADHNaSq/bUhMhpGln/AdBNdS1CuAUxzSyc55sMdtZ+0I5qyVWbXOZdHzfpfMhghBAZwURP7ervm+K0gAMc2pKrVjwh2IVJex3gwaprESJbEfBIYanfseclO7IlV62wLLDL1M0xIPpMdS1CZCd6wMkBBzi8JVdt7u0H20Ti3kUgXKi6FiGyhEXA1MJS/+OqC2kuR7fkqt02p83BaFv/5SAsUF2LEFkgysCt2RBwQJa05Ko9lw99vzf0uOxeIkTSjpCmfaNwrvc11YWkSlaFXLWZE0I/AOH3yJKWqhAZsgNsXV1Ulvup6kJSKStDDgBmTqi6EkR/B6iV6lqEcIBPiei6whLfNtWFpFrWtnSKynJfJYsvgKx3FaJeBPyD/P7zsjHggCxuyVWbfUtVJ1PXFsjIqxAnYYB/XVQW+IUTJ/k2Vta25Krd+Uzu7vKv/JcevUcnhEg4AkJ+UWnggWwOOMAFLbmaZhSEvkXAbAC5qmsRQqENmmbeeNfcFmtUF5IJrgo5ACgeXzWUNW0BgAGqaxEi4xgLo+y/7d55OKS6lExxXcgBwKP58Pt9od8RcJ/qWoTIkAgYPy6a538827unJ3JlyFWbMSH0DSLMBtBGdS1CpNEGJv7WpJKAK89KcXXIAcCTEyL9dbJKAZyruhYhUo9LzXDg7ikLcER1Jaq4PuQA4KGHoHXeGLr36AisV3U9QqTAQRDdW1Tim6e6ENUk5GqYUXBkCLFeBsJw1bUIkTTm11ijb08q8e9QXYodSMidYPp98HoOBn8O0I8B5KiuR4gmOEzgHxSWBWa5bXChPhJydZhRcGQIQZ8NYJTqWoRoCDO9ommYlK1Ls5pDQq4ez+VDr/CF7iPgV5AJxMKe9oDx3aIy/7OqC7ErCblGePLboR56DP8HwjdV1yLEUQziuXGYP7y7pGWF6mLsTEKuCYonhi9mxnQ5OEco9ilruHvSXP8y1YU4gYRcEz2XD0+FL/RdIrofzK1V1yNc5SAzHsiL+J8atwCm6mKcQkIuScW3HG5vGcYDBEwC4FFdj8hqURCe8ujmr29/usVe1cU4jYRcMxVPDPcE88MMjAdAqusRWYUBPE+a9tPCuV45SD1JEnIpUjwheCYTPQjgGkjYieYieolhPeDW9aapJCGXYk9NrDpdY+3nAL4JCTvRRAx+A0Q/m1Ti/1B1LdlCQi5NigtCoxj4KYBr4YIdmEWzMIDFAP+yqDSwXHUx2UZCLs2Kb4v0syzrPgIKAfhU1yNsJUrA30kzf++WXXpVkJDLkNnjQ91Nwn0g3AGgnep6hFIHCSiOxvixe54N7FRdTLaTkMuw6ffB6zkQvgnE3wMwTHU9IqPWgTHDjPj/6ub93TJNQk6hGRPCozXiIga+DtnHLltFASyERk8WzfW9o7oYN5KQs4G5tx9sEzU9+QyaBOAM1fWIVOC1YCplMudMKm2xR3U1biYhZzMzC4Jng2g8GPkAuqiuRzRJOQMLQDxX5rfZh4ScTT30ELQum8PnWczjANxMQAfVNYlaHSBgMYOfK98eeGXaW4irLkgcT0LOAZ7Lh+dAIDLaYr4B4OuJ0VV1TS73FRO9CDYXaf7cNwtnIqa6IFE3CTmnIdCMgtAIgK/XmK7gxD08mWycXhYBn1jML7OORZNLAh/L9uLOISHncDMKjnTUyBjDbF0B0GWQ+3ipsp3Ar1ug17V4/I3CZ1ruU12QSI6EXJb5y83Brp4cOp9BYwDrAoAGQtbQNsZmApYBvJQ0a9ldJS3WSmstO0jIZbniCcEuJjBCI4wAtBEAnw0gT3Vdiu0CsIKYlluatcKrWx/IPm3ZS0LOhWYXhPvE2BqqkTYYxEOJMZiBAci+zT+rAHwO8GoiWkvg1SZolZxH6i4ScgIA8NDFMDp2jfTUc9Cf2exPTP0Z6A9GDxC6AuiousZamEzYTYyvAGxlYJPGvAmatimu88Ypc/xfSZdTSMiJRpl+H7xGRaSbbnBXZu7IxB3AWnsNnMfgPCJqYzEHCNQGID/AfgBta1zCCyBQ42MGcLDGx2EAIQAHGQgDHCSmg6zRQTDvI0YFQBUWrArSqDwe5a86mYHdctaBaMj/A27i58g/nyt4AAAAAElFTkSuQmCC";
|
|
368
324
|
|
|
325
|
+
// src/RedactoNoticeConsent/constants.ts
|
|
326
|
+
var DPO_AUDIO_ELEMENT_MAP = [
|
|
327
|
+
{ audioKey: "grievance_text_audio_url", elementId: "dpo-grievance-text" },
|
|
328
|
+
{ audioKey: "grievance_anchor_text_audio_url", elementId: "dpo-grievance-link" },
|
|
329
|
+
{ audioKey: "grievance_email_connector_text_audio_url", elementId: "dpo-grievance-email-connector" },
|
|
330
|
+
{ audioKey: "grievance_email_audio_url", elementId: "dpo-grievance-email" },
|
|
331
|
+
{ audioKey: "dp_board_text_audio_url", elementId: "dpo-dp-board-text" },
|
|
332
|
+
{ audioKey: "dp_board_anchor_text_audio_url", elementId: "dpo-dp-board-link" },
|
|
333
|
+
{ audioKey: "dpo_text_audio_url", elementId: "dpo-dpo-text" },
|
|
334
|
+
{ audioKey: "dpo_anchor_text_audio_url", elementId: "dpo-dpo-link" }
|
|
335
|
+
];
|
|
336
|
+
|
|
369
337
|
// src/RedactoNoticeConsent/injectStyles.ts
|
|
370
338
|
var stylesInjected = false;
|
|
371
339
|
var injectCheckboxStyles = () => {
|
|
@@ -555,8 +523,7 @@ var styles = {
|
|
|
555
523
|
justifyContent: "space-between",
|
|
556
524
|
alignItems: "center",
|
|
557
525
|
paddingBottom: "15px",
|
|
558
|
-
borderBottom: "
|
|
559
|
-
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.03)",
|
|
526
|
+
borderBottom: "none",
|
|
560
527
|
backgroundColor: "#ffffff",
|
|
561
528
|
margin: 0,
|
|
562
529
|
boxSizing: "border-box",
|
|
@@ -610,7 +577,7 @@ var styles = {
|
|
|
610
577
|
backgroundColor: "#ffffff"
|
|
611
578
|
},
|
|
612
579
|
middleSection: {
|
|
613
|
-
margin: "
|
|
580
|
+
margin: "0px",
|
|
614
581
|
display: "flex",
|
|
615
582
|
flexDirection: "column",
|
|
616
583
|
gap: "12px",
|
|
@@ -625,7 +592,6 @@ var styles = {
|
|
|
625
592
|
fontSize: "16px",
|
|
626
593
|
fontWeight: 400,
|
|
627
594
|
lineHeight: "150%",
|
|
628
|
-
letterSpacing: "0.2px",
|
|
629
595
|
color: "#344054",
|
|
630
596
|
margin: 0,
|
|
631
597
|
padding: 0,
|
|
@@ -765,8 +731,7 @@ var styles = {
|
|
|
765
731
|
justifyContent: "space-between",
|
|
766
732
|
gap: "29px",
|
|
767
733
|
paddingTop: "15px",
|
|
768
|
-
borderTop: "
|
|
769
|
-
boxShadow: "0 -1px 2px rgba(0, 0, 0, 0.03)",
|
|
734
|
+
borderTop: "none",
|
|
770
735
|
backgroundColor: "#ffffff",
|
|
771
736
|
margin: 0,
|
|
772
737
|
boxSizing: "border-box"
|
|
@@ -1114,9 +1079,8 @@ var PurposeItem = ({
|
|
|
1114
1079
|
),
|
|
1115
1080
|
isAlreadyConsented && /* @__PURE__ */ jsx(Fragment, { children: (() => {
|
|
1116
1081
|
const combinedId = `${purpose.uuid}-${dataElement.uuid}`;
|
|
1117
|
-
const isCurrentlySelected = selectedDataElements[combinedId] || false;
|
|
1118
1082
|
const wasOriginallySelected = initialDataElementSelections[combinedId] || false;
|
|
1119
|
-
if (
|
|
1083
|
+
if (wasOriginallySelected) {
|
|
1120
1084
|
return /* @__PURE__ */ jsx(
|
|
1121
1085
|
"div",
|
|
1122
1086
|
{
|
|
@@ -1129,7 +1093,7 @@ var PurposeItem = ({
|
|
|
1129
1093
|
borderRadius: "50%",
|
|
1130
1094
|
backgroundColor: "#10B981"
|
|
1131
1095
|
},
|
|
1132
|
-
"aria-label": `
|
|
1096
|
+
"aria-label": `Consented to ${getTranslatedText(
|
|
1133
1097
|
`data_elements.name`,
|
|
1134
1098
|
dataElement.name,
|
|
1135
1099
|
dataElement.uuid
|
|
@@ -1159,17 +1123,23 @@ var PurposeItem = ({
|
|
|
1159
1123
|
);
|
|
1160
1124
|
} else {
|
|
1161
1125
|
return /* @__PURE__ */ jsx(
|
|
1162
|
-
"
|
|
1126
|
+
"div",
|
|
1163
1127
|
{
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1128
|
+
style: {
|
|
1129
|
+
display: "flex",
|
|
1130
|
+
alignItems: "center",
|
|
1131
|
+
justifyContent: "center",
|
|
1132
|
+
width: "16px",
|
|
1133
|
+
height: "16px",
|
|
1134
|
+
borderRadius: "50%",
|
|
1135
|
+
border: "2px solid #d0d5dd",
|
|
1136
|
+
backgroundColor: "transparent"
|
|
1137
|
+
},
|
|
1138
|
+
"aria-label": `Not consented to ${getTranslatedText(
|
|
1169
1139
|
`data_elements.name`,
|
|
1170
1140
|
dataElement.name,
|
|
1171
1141
|
dataElement.uuid
|
|
1172
|
-
)}
|
|
1142
|
+
)}`
|
|
1173
1143
|
}
|
|
1174
1144
|
);
|
|
1175
1145
|
}
|
|
@@ -1579,7 +1549,9 @@ var RedactoNoticeConsent = ({
|
|
|
1579
1549
|
onError,
|
|
1580
1550
|
settings,
|
|
1581
1551
|
applicationId,
|
|
1582
|
-
validateAgainst = "all"
|
|
1552
|
+
validateAgainst = "all",
|
|
1553
|
+
includeFullyConsentedData = false,
|
|
1554
|
+
reviewModeButtonText = "Continue"
|
|
1583
1555
|
}) => {
|
|
1584
1556
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
1585
1557
|
const propValidationError = useMemo(() => {
|
|
@@ -1621,6 +1593,7 @@ var RedactoNoticeConsent = ({
|
|
|
1621
1593
|
const [initialDataElementSelections, setInitialDataElementSelections] = useState2({});
|
|
1622
1594
|
const [collapsedPurposes, setCollapsedPurposes] = useState2({});
|
|
1623
1595
|
const [hasAlreadyConsented, setHasAlreadyConsented] = useState2(false);
|
|
1596
|
+
const [isFullyConsentedReviewMode, setIsFullyConsentedReviewMode] = useState2(false);
|
|
1624
1597
|
const [isLanguageDropdownOpen, setIsLanguageDropdownOpen] = useState2(false);
|
|
1625
1598
|
const [selectedLanguage, setSelectedLanguage] = useState2(language);
|
|
1626
1599
|
const [errorMessage, setErrorMessage] = useState2(null);
|
|
@@ -1782,10 +1755,15 @@ var RedactoNoticeConsent = ({
|
|
|
1782
1755
|
onAccept == null ? void 0 : onAccept();
|
|
1783
1756
|
}
|
|
1784
1757
|
}, [hasAlreadyConsented, onAccept]);
|
|
1758
|
+
const isDefaultLanguage = (lang) => {
|
|
1759
|
+
if (!content) return true;
|
|
1760
|
+
if (lang === "English" || lang === "en" || lang === "EN") return true;
|
|
1761
|
+
return false;
|
|
1762
|
+
};
|
|
1785
1763
|
const getTranslatedText = (key, defaultText, itemId) => {
|
|
1786
1764
|
var _a2, _b2;
|
|
1787
1765
|
if (!content) return defaultText;
|
|
1788
|
-
if (selectedLanguage
|
|
1766
|
+
if (isDefaultLanguage(selectedLanguage)) {
|
|
1789
1767
|
if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
|
|
1790
1768
|
return content.privacy_policy_anchor_text;
|
|
1791
1769
|
}
|
|
@@ -1812,18 +1790,38 @@ var RedactoNoticeConsent = ({
|
|
|
1812
1790
|
}
|
|
1813
1791
|
if (itemId) {
|
|
1814
1792
|
if (key === "purposes.name" || key === "purposes.description") {
|
|
1815
|
-
|
|
1793
|
+
const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
|
|
1794
|
+
if (purposeData) {
|
|
1795
|
+
if (typeof purposeData === "string") {
|
|
1796
|
+
return key === "purposes.name" ? purposeData : defaultText;
|
|
1797
|
+
}
|
|
1798
|
+
return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
|
|
1799
|
+
}
|
|
1800
|
+
return defaultText;
|
|
1816
1801
|
}
|
|
1817
1802
|
if (key.startsWith("data_elements.")) {
|
|
1818
1803
|
return ((_b2 = translationMap.data_elements) == null ? void 0 : _b2[itemId]) || defaultText;
|
|
1819
1804
|
}
|
|
1820
1805
|
}
|
|
1821
1806
|
const value = translationMap[key];
|
|
1822
|
-
if (typeof value === "string") {
|
|
1807
|
+
if (typeof value === "string" && value) {
|
|
1823
1808
|
return value;
|
|
1824
1809
|
}
|
|
1825
1810
|
return defaultText;
|
|
1826
1811
|
};
|
|
1812
|
+
const getTranslatedDpoText = (key, defaultText) => {
|
|
1813
|
+
if (!(content == null ? void 0 : content.dpo_info)) return defaultText;
|
|
1814
|
+
if (isDefaultLanguage(selectedLanguage)) {
|
|
1815
|
+
return content.dpo_info[key] || defaultText;
|
|
1816
|
+
}
|
|
1817
|
+
if (!content.supported_languages_and_translations) return defaultText;
|
|
1818
|
+
const translationMap = content.supported_languages_and_translations[selectedLanguage];
|
|
1819
|
+
if (translationMap == null ? void 0 : translationMap.dpo_info) {
|
|
1820
|
+
const translated = translationMap.dpo_info[key];
|
|
1821
|
+
if (translated) return translated;
|
|
1822
|
+
}
|
|
1823
|
+
return content.dpo_info[key] || defaultText;
|
|
1824
|
+
};
|
|
1827
1825
|
const fetchNotice = async () => {
|
|
1828
1826
|
var _a2;
|
|
1829
1827
|
if (isRequestInProgressRef.current) {
|
|
@@ -1847,6 +1845,7 @@ var RedactoNoticeConsent = ({
|
|
|
1847
1845
|
language,
|
|
1848
1846
|
specific_uuid: applicationId,
|
|
1849
1847
|
validate_against: validateAgainst,
|
|
1848
|
+
include_fully_consented_data: includeFullyConsentedData,
|
|
1850
1849
|
signal: (_a2 = abortControllerRef.current) == null ? void 0 : _a2.signal
|
|
1851
1850
|
});
|
|
1852
1851
|
const activeConfig = consentContentData.detail.active_config;
|
|
@@ -1884,7 +1883,7 @@ var RedactoNoticeConsent = ({
|
|
|
1884
1883
|
setCategorizedPurposes(newCategorizedPurposes);
|
|
1885
1884
|
const initialPurposeState = activeConfig.purposes.reduce(
|
|
1886
1885
|
(acc, purpose) => {
|
|
1887
|
-
if (
|
|
1886
|
+
if (purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) {
|
|
1888
1887
|
acc[purpose.uuid] = purposeSelections[purpose.uuid].selected;
|
|
1889
1888
|
} else {
|
|
1890
1889
|
acc[purpose.uuid] = false;
|
|
@@ -1899,7 +1898,7 @@ var RedactoNoticeConsent = ({
|
|
|
1899
1898
|
purpose.data_elements.forEach((element) => {
|
|
1900
1899
|
var _a3, _b2;
|
|
1901
1900
|
const combinedId = `${purpose.uuid}-${element.uuid}`;
|
|
1902
|
-
if (
|
|
1901
|
+
if ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
|
|
1903
1902
|
acc[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
|
|
1904
1903
|
} else {
|
|
1905
1904
|
acc[combinedId] = false;
|
|
@@ -1911,6 +1910,7 @@ var RedactoNoticeConsent = ({
|
|
|
1911
1910
|
);
|
|
1912
1911
|
setSelectedDataElements(initialDataElementState);
|
|
1913
1912
|
if (isReconsentRequired && newCategorizedPurposes) {
|
|
1913
|
+
setIsFullyConsentedReviewMode(false);
|
|
1914
1914
|
const initialSelections = {};
|
|
1915
1915
|
newCategorizedPurposes.alreadyConsented.forEach((purpose) => {
|
|
1916
1916
|
purpose.data_elements.forEach((element) => {
|
|
@@ -1924,7 +1924,36 @@ var RedactoNoticeConsent = ({
|
|
|
1924
1924
|
});
|
|
1925
1925
|
});
|
|
1926
1926
|
setInitialDataElementSelections(initialSelections);
|
|
1927
|
+
} else if (includeFullyConsentedData && purposeSelections) {
|
|
1928
|
+
const allPurposesSelected = activeConfig.purposes.length > 0 && activeConfig.purposes.every(
|
|
1929
|
+
(p) => {
|
|
1930
|
+
var _a3;
|
|
1931
|
+
return ((_a3 = purposeSelections[p.uuid]) == null ? void 0 : _a3.selected) === true;
|
|
1932
|
+
}
|
|
1933
|
+
);
|
|
1934
|
+
setIsFullyConsentedReviewMode(allPurposesSelected);
|
|
1935
|
+
if (allPurposesSelected) {
|
|
1936
|
+
const initialSelections = {};
|
|
1937
|
+
activeConfig.purposes.forEach(
|
|
1938
|
+
(purpose) => {
|
|
1939
|
+
purpose.data_elements.forEach((element) => {
|
|
1940
|
+
var _a3, _b2;
|
|
1941
|
+
const combinedId = `${purpose.uuid}-${element.uuid}`;
|
|
1942
|
+
if ((_b2 = (_a3 = purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
|
|
1943
|
+
initialSelections[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
|
|
1944
|
+
} else {
|
|
1945
|
+
initialSelections[combinedId] = false;
|
|
1946
|
+
}
|
|
1947
|
+
});
|
|
1948
|
+
}
|
|
1949
|
+
);
|
|
1950
|
+
setInitialDataElementSelections(initialSelections);
|
|
1951
|
+
} else {
|
|
1952
|
+
setIsFullyConsentedReviewMode(false);
|
|
1953
|
+
setInitialDataElementSelections({});
|
|
1954
|
+
}
|
|
1927
1955
|
} else {
|
|
1956
|
+
setIsFullyConsentedReviewMode(false);
|
|
1928
1957
|
setInitialDataElementSelections({});
|
|
1929
1958
|
}
|
|
1930
1959
|
if (consentContentData.detail.is_minor) {
|
|
@@ -1956,7 +1985,8 @@ var RedactoNoticeConsent = ({
|
|
|
1956
1985
|
refreshToken,
|
|
1957
1986
|
language,
|
|
1958
1987
|
applicationId,
|
|
1959
|
-
validateAgainst
|
|
1988
|
+
validateAgainst,
|
|
1989
|
+
includeFullyConsentedData
|
|
1960
1990
|
// Removed onError and isRefreshingToken from dependencies to prevent duplicate API calls
|
|
1961
1991
|
// onError is only called on errors, not needed for initial data fetching
|
|
1962
1992
|
]);
|
|
@@ -2236,6 +2266,20 @@ var RedactoNoticeConsent = ({
|
|
|
2236
2266
|
});
|
|
2237
2267
|
}
|
|
2238
2268
|
});
|
|
2269
|
+
if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
|
|
2270
|
+
sequence.push(ttsAudioUrls.additional_text_audio_url);
|
|
2271
|
+
}
|
|
2272
|
+
if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
|
|
2273
|
+
sequence.push(ttsAudioUrls.privacy_center_anchor_text_audio_url);
|
|
2274
|
+
}
|
|
2275
|
+
if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
|
|
2276
|
+
const dpoAudio = ttsAudioUrls.dpo_info_audio;
|
|
2277
|
+
DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey }) => {
|
|
2278
|
+
if (dpoAudio[audioKey]) {
|
|
2279
|
+
sequence.push(dpoAudio[audioKey]);
|
|
2280
|
+
}
|
|
2281
|
+
});
|
|
2282
|
+
}
|
|
2239
2283
|
if (ttsAudioUrls.confirm_button_text_audio_url) {
|
|
2240
2284
|
sequence.push(ttsAudioUrls.confirm_button_text_audio_url);
|
|
2241
2285
|
}
|
|
@@ -2283,6 +2327,20 @@ var RedactoNoticeConsent = ({
|
|
|
2283
2327
|
});
|
|
2284
2328
|
}
|
|
2285
2329
|
});
|
|
2330
|
+
if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
|
|
2331
|
+
elementIds.push("additional-text");
|
|
2332
|
+
}
|
|
2333
|
+
if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
|
|
2334
|
+
elementIds.push("privacy-center-link");
|
|
2335
|
+
}
|
|
2336
|
+
if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
|
|
2337
|
+
const dpoAudio = ttsAudioUrls.dpo_info_audio;
|
|
2338
|
+
DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey, elementId }) => {
|
|
2339
|
+
if (dpoAudio[audioKey]) {
|
|
2340
|
+
elementIds.push(elementId);
|
|
2341
|
+
}
|
|
2342
|
+
});
|
|
2343
|
+
}
|
|
2286
2344
|
if (ttsAudioUrls.confirm_button_text_audio_url) {
|
|
2287
2345
|
elementIds.push("confirm-button-text");
|
|
2288
2346
|
}
|
|
@@ -3099,16 +3157,135 @@ var RedactoNoticeConsent = ({
|
|
|
3099
3157
|
onPurposeCollapse: togglePurposeCollapse,
|
|
3100
3158
|
onDataElementToggle: handleDataElementCheckboxChange,
|
|
3101
3159
|
getTranslatedText,
|
|
3102
|
-
isAlreadyConsented:
|
|
3103
|
-
selectedLanguage
|
|
3160
|
+
isAlreadyConsented: isFullyConsentedReviewMode,
|
|
3161
|
+
selectedLanguage,
|
|
3162
|
+
initialDataElementSelections
|
|
3104
3163
|
},
|
|
3105
3164
|
`${purpose.uuid}-${selectedLanguage}`
|
|
3106
3165
|
)) })
|
|
3166
|
+
),
|
|
3167
|
+
((content == null ? void 0 : content.privacy_center_url) || (content == null ? void 0 : content.dpo_info)) && /* @__PURE__ */ jsx(
|
|
3168
|
+
"div",
|
|
3169
|
+
{
|
|
3170
|
+
style: {
|
|
3171
|
+
...styles.privacyText,
|
|
3172
|
+
...responsiveStyles.privacyText,
|
|
3173
|
+
...componentTextStyle,
|
|
3174
|
+
fontSize: isMobile ? "13px" : "14px",
|
|
3175
|
+
lineHeight: "1.4",
|
|
3176
|
+
borderTop: "1px solid rgba(152, 162, 179, 0.3)",
|
|
3177
|
+
paddingTop: "12px",
|
|
3178
|
+
marginTop: "12px"
|
|
3179
|
+
},
|
|
3180
|
+
children: /* @__PURE__ */ jsxs("p", { style: { margin: 0, opacity: 0.6 }, children: [
|
|
3181
|
+
content.privacy_center_url && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3182
|
+
content.additional_text && /* @__PURE__ */ jsx("span", { id: "additional-text", children: getTranslatedText(
|
|
3183
|
+
"additional_text",
|
|
3184
|
+
content.additional_text
|
|
3185
|
+
) }),
|
|
3186
|
+
" ",
|
|
3187
|
+
/* @__PURE__ */ jsx(
|
|
3188
|
+
"a",
|
|
3189
|
+
{
|
|
3190
|
+
id: "privacy-center-link",
|
|
3191
|
+
style: { ...styles.link, ...linkStyle },
|
|
3192
|
+
href: content.privacy_center_url,
|
|
3193
|
+
target: "_blank",
|
|
3194
|
+
rel: "noopener noreferrer",
|
|
3195
|
+
children: getTranslatedText(
|
|
3196
|
+
"privacy_center_anchor_text",
|
|
3197
|
+
content.privacy_center_anchor_text || "Privacy Center"
|
|
3198
|
+
)
|
|
3199
|
+
}
|
|
3200
|
+
),
|
|
3201
|
+
"."
|
|
3202
|
+
] }),
|
|
3203
|
+
content.dpo_info && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3204
|
+
content.privacy_center_url && /* @__PURE__ */ jsx("br", {}),
|
|
3205
|
+
/* @__PURE__ */ jsx("span", { id: "dpo-grievance-text", children: getTranslatedDpoText(
|
|
3206
|
+
"grievance_text",
|
|
3207
|
+
content.dpo_info.grievance_text || ""
|
|
3208
|
+
) }),
|
|
3209
|
+
" ",
|
|
3210
|
+
content.dpo_info.grievance_url && /* @__PURE__ */ jsx(
|
|
3211
|
+
"a",
|
|
3212
|
+
{
|
|
3213
|
+
id: "dpo-grievance-link",
|
|
3214
|
+
style: { ...styles.link, ...linkStyle },
|
|
3215
|
+
href: content.dpo_info.grievance_url,
|
|
3216
|
+
target: "_blank",
|
|
3217
|
+
rel: "noopener noreferrer",
|
|
3218
|
+
children: getTranslatedDpoText(
|
|
3219
|
+
"grievance_anchor_text",
|
|
3220
|
+
content.dpo_info.grievance_anchor_text || "click here"
|
|
3221
|
+
)
|
|
3222
|
+
}
|
|
3223
|
+
),
|
|
3224
|
+
content.dpo_info.grievance_email && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3225
|
+
" ",
|
|
3226
|
+
/* @__PURE__ */ jsx("span", { id: "dpo-grievance-email-connector", children: getTranslatedDpoText(
|
|
3227
|
+
"grievance_email_connector_text",
|
|
3228
|
+
content.dpo_info.grievance_email_connector_text || "or email to"
|
|
3229
|
+
) }),
|
|
3230
|
+
" ",
|
|
3231
|
+
/* @__PURE__ */ jsx(
|
|
3232
|
+
"a",
|
|
3233
|
+
{
|
|
3234
|
+
id: "dpo-grievance-email",
|
|
3235
|
+
style: { ...styles.link, ...linkStyle },
|
|
3236
|
+
href: `mailto:${content.dpo_info.grievance_email}`,
|
|
3237
|
+
children: content.dpo_info.grievance_email
|
|
3238
|
+
}
|
|
3239
|
+
)
|
|
3240
|
+
] }),
|
|
3241
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
3242
|
+
/* @__PURE__ */ jsx("span", { id: "dpo-dp-board-text", children: getTranslatedDpoText(
|
|
3243
|
+
"dp_board_text",
|
|
3244
|
+
content.dpo_info.dp_board_text || ""
|
|
3245
|
+
) }),
|
|
3246
|
+
" ",
|
|
3247
|
+
content.dpo_info.dp_board_url && /* @__PURE__ */ jsx(
|
|
3248
|
+
"a",
|
|
3249
|
+
{
|
|
3250
|
+
id: "dpo-dp-board-link",
|
|
3251
|
+
style: { ...styles.link, ...linkStyle },
|
|
3252
|
+
href: content.dpo_info.dp_board_url,
|
|
3253
|
+
target: "_blank",
|
|
3254
|
+
rel: "noopener noreferrer",
|
|
3255
|
+
children: getTranslatedDpoText(
|
|
3256
|
+
"dp_board_anchor_text",
|
|
3257
|
+
content.dpo_info.dp_board_anchor_text || "here"
|
|
3258
|
+
)
|
|
3259
|
+
}
|
|
3260
|
+
),
|
|
3261
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
3262
|
+
/* @__PURE__ */ jsx("span", { id: "dpo-dpo-text", children: getTranslatedDpoText(
|
|
3263
|
+
"dpo_text",
|
|
3264
|
+
content.dpo_info.dpo_text || ""
|
|
3265
|
+
) }),
|
|
3266
|
+
" ",
|
|
3267
|
+
content.dpo_info.dpo_url && /* @__PURE__ */ jsx(
|
|
3268
|
+
"a",
|
|
3269
|
+
{
|
|
3270
|
+
id: "dpo-dpo-link",
|
|
3271
|
+
style: { ...styles.link, ...linkStyle },
|
|
3272
|
+
href: content.dpo_info.dpo_url,
|
|
3273
|
+
target: "_blank",
|
|
3274
|
+
rel: "noopener noreferrer",
|
|
3275
|
+
children: getTranslatedDpoText(
|
|
3276
|
+
"dpo_anchor_text",
|
|
3277
|
+
content.dpo_info.dpo_anchor_text || "Click here"
|
|
3278
|
+
)
|
|
3279
|
+
}
|
|
3280
|
+
)
|
|
3281
|
+
] })
|
|
3282
|
+
] })
|
|
3283
|
+
}
|
|
3107
3284
|
)
|
|
3108
3285
|
]
|
|
3109
3286
|
}
|
|
3110
3287
|
),
|
|
3111
|
-
/* @__PURE__ */
|
|
3288
|
+
/* @__PURE__ */ jsx(
|
|
3112
3289
|
"div",
|
|
3113
3290
|
{
|
|
3114
3291
|
style: {
|
|
@@ -3116,7 +3293,22 @@ var RedactoNoticeConsent = ({
|
|
|
3116
3293
|
...responsiveStyles.bottomSection,
|
|
3117
3294
|
...sectionStyle
|
|
3118
3295
|
},
|
|
3119
|
-
children:
|
|
3296
|
+
children: isFullyConsentedReviewMode ? /* @__PURE__ */ jsx(
|
|
3297
|
+
"button",
|
|
3298
|
+
{
|
|
3299
|
+
ref: lastFocusableRef,
|
|
3300
|
+
id: "review-mode-continue-button",
|
|
3301
|
+
style: {
|
|
3302
|
+
...styles.button,
|
|
3303
|
+
...responsiveStyles.button,
|
|
3304
|
+
...styles.acceptButton,
|
|
3305
|
+
...acceptButtonStyle
|
|
3306
|
+
},
|
|
3307
|
+
onClick: () => onAccept == null ? void 0 : onAccept(),
|
|
3308
|
+
"aria-label": reviewModeButtonText,
|
|
3309
|
+
children: reviewModeButtonText
|
|
3310
|
+
}
|
|
3311
|
+
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3120
3312
|
/* @__PURE__ */ jsx(
|
|
3121
3313
|
"button",
|
|
3122
3314
|
{
|
|
@@ -3164,7 +3356,7 @@ var RedactoNoticeConsent = ({
|
|
|
3164
3356
|
)
|
|
3165
3357
|
}
|
|
3166
3358
|
)
|
|
3167
|
-
]
|
|
3359
|
+
] })
|
|
3168
3360
|
}
|
|
3169
3361
|
)
|
|
3170
3362
|
] })
|
|
@@ -3234,60 +3426,27 @@ var submitConsentEvent2 = async ({
|
|
|
3234
3426
|
var _a, _b;
|
|
3235
3427
|
try {
|
|
3236
3428
|
const apiBaseUrl = baseUrl || BASE_URL2;
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
name: element.name,
|
|
3259
|
-
enabled: Boolean(element.enabled),
|
|
3260
|
-
required: Boolean(element.required),
|
|
3261
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
3262
|
-
}))
|
|
3263
|
-
};
|
|
3264
|
-
})
|
|
3265
|
-
},
|
|
3266
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
3267
|
-
};
|
|
3268
|
-
} else {
|
|
3269
|
-
payload = {
|
|
3270
|
-
notice_uuid: noticeUuid,
|
|
3271
|
-
purposes: purposes.map((purpose) => {
|
|
3272
|
-
if (!purpose.uuid) {
|
|
3273
|
-
throw new Error(`Invalid purpose data: missing uuid`);
|
|
3274
|
-
}
|
|
3275
|
-
const dataElements = purpose.data_elements.filter((element) => element.enabled).map((element) => ({
|
|
3276
|
-
uuid: element.uuid,
|
|
3277
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
3278
|
-
}));
|
|
3279
|
-
return {
|
|
3280
|
-
purpose_uuid: purpose.uuid,
|
|
3281
|
-
selected: Boolean(purpose.selected),
|
|
3282
|
-
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
3283
|
-
};
|
|
3284
|
-
}),
|
|
3285
|
-
select_all_mandatory: false,
|
|
3286
|
-
source: "WEB",
|
|
3287
|
-
declined,
|
|
3288
|
-
meta_data
|
|
3289
|
-
};
|
|
3290
|
-
}
|
|
3429
|
+
const payload = {
|
|
3430
|
+
notice_uuid: noticeUuid,
|
|
3431
|
+
purposes: purposes.map((purpose) => {
|
|
3432
|
+
if (!purpose.uuid) {
|
|
3433
|
+
throw new Error(`Invalid purpose data: missing uuid`);
|
|
3434
|
+
}
|
|
3435
|
+
const dataElements = purpose.data_elements.filter((element) => element.enabled).map((element) => ({
|
|
3436
|
+
uuid: element.uuid,
|
|
3437
|
+
selected: element.required ? true : Boolean(element.selected)
|
|
3438
|
+
}));
|
|
3439
|
+
return {
|
|
3440
|
+
purpose_uuid: purpose.uuid,
|
|
3441
|
+
selected: Boolean(purpose.selected),
|
|
3442
|
+
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
3443
|
+
};
|
|
3444
|
+
}),
|
|
3445
|
+
select_all_mandatory: false,
|
|
3446
|
+
source: "WEB",
|
|
3447
|
+
declined,
|
|
3448
|
+
meta_data
|
|
3449
|
+
};
|
|
3291
3450
|
const response = await fetch(
|
|
3292
3451
|
`${apiBaseUrl}/public/organisations/${org_uuid}/workspaces/${workspace_uuid}/submit-consent`,
|
|
3293
3452
|
{
|
|
@@ -3802,7 +3961,7 @@ var RedactoConsentInlineComponent = ({
|
|
|
3802
3961
|
const getTranslatedText = (key, defaultText, itemId) => {
|
|
3803
3962
|
var _a2, _b;
|
|
3804
3963
|
if (!content) return defaultText;
|
|
3805
|
-
if (selectedLanguage ===
|
|
3964
|
+
if (selectedLanguage === "English" || selectedLanguage === "en" || selectedLanguage === "EN") {
|
|
3806
3965
|
if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
|
|
3807
3966
|
return content.privacy_policy_anchor_text;
|
|
3808
3967
|
}
|
|
@@ -3817,14 +3976,21 @@ var RedactoConsentInlineComponent = ({
|
|
|
3817
3976
|
}
|
|
3818
3977
|
if (itemId) {
|
|
3819
3978
|
if (key === "purposes.name" || key === "purposes.description") {
|
|
3820
|
-
|
|
3979
|
+
const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
|
|
3980
|
+
if (purposeData) {
|
|
3981
|
+
if (typeof purposeData === "string") {
|
|
3982
|
+
return key === "purposes.name" ? purposeData : defaultText;
|
|
3983
|
+
}
|
|
3984
|
+
return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
|
|
3985
|
+
}
|
|
3986
|
+
return defaultText;
|
|
3821
3987
|
}
|
|
3822
3988
|
if (key.startsWith("data_elements.")) {
|
|
3823
3989
|
return ((_b = translationMap.data_elements) == null ? void 0 : _b[itemId]) || defaultText;
|
|
3824
3990
|
}
|
|
3825
3991
|
}
|
|
3826
3992
|
const value = translationMap[key];
|
|
3827
|
-
if (typeof value === "string") {
|
|
3993
|
+
if (typeof value === "string" && value) {
|
|
3828
3994
|
return value;
|
|
3829
3995
|
}
|
|
3830
3996
|
return defaultText;
|