@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.js
CHANGED
|
@@ -30,21 +30,6 @@ var import_react2 = require("react");
|
|
|
30
30
|
|
|
31
31
|
// src/RedactoNoticeConsent/api/index.ts
|
|
32
32
|
var import_jwt_decode = require("jwt-decode");
|
|
33
|
-
|
|
34
|
-
// src/utils/isLegacyApi.ts
|
|
35
|
-
function isLegacyApi(baseUrl) {
|
|
36
|
-
try {
|
|
37
|
-
return new URL(baseUrl).hostname.endsWith(".redacto.io");
|
|
38
|
-
} catch {
|
|
39
|
-
try {
|
|
40
|
-
return new URL(`https://${baseUrl}`).hostname.endsWith(".redacto.io");
|
|
41
|
-
} catch {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// src/RedactoNoticeConsent/api/index.ts
|
|
48
33
|
var BASE_URL = "https://api.redacto.io/consent";
|
|
49
34
|
var apiCache = /* @__PURE__ */ new Map();
|
|
50
35
|
var CACHE_TTL = 5 * 60 * 1e3;
|
|
@@ -79,6 +64,7 @@ var fetchConsentContent = async ({
|
|
|
79
64
|
language = "en",
|
|
80
65
|
specific_uuid,
|
|
81
66
|
validate_against = "all",
|
|
67
|
+
include_fully_consented_data = false,
|
|
82
68
|
signal
|
|
83
69
|
// AbortSignal for request cancellation
|
|
84
70
|
}) => {
|
|
@@ -95,7 +81,7 @@ var fetchConsentContent = async ({
|
|
|
95
81
|
throw new Error("Invalid token: missing organization or workspace UUID");
|
|
96
82
|
}
|
|
97
83
|
const apiBaseUrl = baseUrl || BASE_URL;
|
|
98
|
-
const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}`;
|
|
84
|
+
const cacheKey = `${accessToken}-${noticeId}-${validate_against}-${language}-${specific_uuid || ""}-${include_fully_consented_data}`;
|
|
99
85
|
if (validate_against === "all" && !specific_uuid) {
|
|
100
86
|
const cachedData = getCachedData(cacheKey);
|
|
101
87
|
if (cachedData) {
|
|
@@ -109,6 +95,9 @@ var fetchConsentContent = async ({
|
|
|
109
95
|
url.searchParams.append("specific_uuid", specific_uuid);
|
|
110
96
|
}
|
|
111
97
|
url.searchParams.append("validate_against", validate_against);
|
|
98
|
+
if (include_fully_consented_data) {
|
|
99
|
+
url.searchParams.append("include_fully_consented_data", "true");
|
|
100
|
+
}
|
|
112
101
|
const response = await fetch(url.toString(), {
|
|
113
102
|
method: "GET",
|
|
114
103
|
headers: {
|
|
@@ -168,61 +157,28 @@ var submitConsentEvent = async ({
|
|
|
168
157
|
throw new Error("Invalid token: missing organization or workspace UUID");
|
|
169
158
|
}
|
|
170
159
|
const apiBaseUrl = baseUrl || BASE_URL;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
return {
|
|
185
|
-
uuid: purpose.uuid,
|
|
186
|
-
name: purpose.name,
|
|
187
|
-
description: purpose.description || "",
|
|
188
|
-
industries: purpose.industries || "",
|
|
189
|
-
selected: Boolean(purpose.selected),
|
|
190
|
-
data_elements: (purpose.data_elements || []).map((element) => ({
|
|
191
|
-
uuid: element.uuid,
|
|
192
|
-
name: element.name,
|
|
193
|
-
enabled: Boolean(element.enabled),
|
|
194
|
-
required: Boolean(element.required),
|
|
195
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
196
|
-
}))
|
|
197
|
-
};
|
|
198
|
-
})
|
|
199
|
-
},
|
|
200
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
201
|
-
};
|
|
202
|
-
} else {
|
|
203
|
-
const validatedPurposes = purposes.map((purpose) => {
|
|
204
|
-
if (!purpose.uuid) {
|
|
205
|
-
throw new Error(`Invalid purpose data: missing uuid`);
|
|
206
|
-
}
|
|
207
|
-
const dataElements = (purpose.data_elements || []).filter((element) => element.enabled).map((element) => ({
|
|
208
|
-
uuid: element.uuid,
|
|
209
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
210
|
-
}));
|
|
211
|
-
return {
|
|
212
|
-
purpose_uuid: purpose.uuid,
|
|
213
|
-
selected: Boolean(purpose.selected),
|
|
214
|
-
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
215
|
-
};
|
|
216
|
-
});
|
|
217
|
-
payload = {
|
|
218
|
-
notice_uuid: noticeUuid,
|
|
219
|
-
purposes: validatedPurposes,
|
|
220
|
-
select_all_mandatory: false,
|
|
221
|
-
source: "WEB",
|
|
222
|
-
declined: Boolean(declined),
|
|
223
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
160
|
+
const validatedPurposes = purposes.map((purpose) => {
|
|
161
|
+
if (!purpose.uuid) {
|
|
162
|
+
throw new Error(`Invalid purpose data: missing uuid`);
|
|
163
|
+
}
|
|
164
|
+
const dataElements = (purpose.data_elements || []).filter((element) => element.enabled).map((element) => ({
|
|
165
|
+
uuid: element.uuid,
|
|
166
|
+
selected: element.required ? true : Boolean(element.selected)
|
|
167
|
+
}));
|
|
168
|
+
return {
|
|
169
|
+
purpose_uuid: purpose.uuid,
|
|
170
|
+
selected: Boolean(purpose.selected),
|
|
171
|
+
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
224
172
|
};
|
|
225
|
-
}
|
|
173
|
+
});
|
|
174
|
+
const payload = {
|
|
175
|
+
notice_uuid: noticeUuid,
|
|
176
|
+
purposes: validatedPurposes,
|
|
177
|
+
select_all_mandatory: false,
|
|
178
|
+
source: "WEB",
|
|
179
|
+
declined: Boolean(declined),
|
|
180
|
+
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
181
|
+
};
|
|
226
182
|
const response = await fetch(
|
|
227
183
|
`${apiBaseUrl}/public/organisations/${ORGANISATION_UUID}/workspaces/${WORKSPACE_UUID}/submit-consent`,
|
|
228
184
|
{
|
|
@@ -393,6 +349,18 @@ var fetchTTSAudioUrls = async ({
|
|
|
393
349
|
// src/RedactoNoticeConsent/assets/redacto-logo.png
|
|
394
350
|
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";
|
|
395
351
|
|
|
352
|
+
// src/RedactoNoticeConsent/constants.ts
|
|
353
|
+
var DPO_AUDIO_ELEMENT_MAP = [
|
|
354
|
+
{ audioKey: "grievance_text_audio_url", elementId: "dpo-grievance-text" },
|
|
355
|
+
{ audioKey: "grievance_anchor_text_audio_url", elementId: "dpo-grievance-link" },
|
|
356
|
+
{ audioKey: "grievance_email_connector_text_audio_url", elementId: "dpo-grievance-email-connector" },
|
|
357
|
+
{ audioKey: "grievance_email_audio_url", elementId: "dpo-grievance-email" },
|
|
358
|
+
{ audioKey: "dp_board_text_audio_url", elementId: "dpo-dp-board-text" },
|
|
359
|
+
{ audioKey: "dp_board_anchor_text_audio_url", elementId: "dpo-dp-board-link" },
|
|
360
|
+
{ audioKey: "dpo_text_audio_url", elementId: "dpo-dpo-text" },
|
|
361
|
+
{ audioKey: "dpo_anchor_text_audio_url", elementId: "dpo-dpo-link" }
|
|
362
|
+
];
|
|
363
|
+
|
|
396
364
|
// src/RedactoNoticeConsent/injectStyles.ts
|
|
397
365
|
var stylesInjected = false;
|
|
398
366
|
var injectCheckboxStyles = () => {
|
|
@@ -582,8 +550,7 @@ var styles = {
|
|
|
582
550
|
justifyContent: "space-between",
|
|
583
551
|
alignItems: "center",
|
|
584
552
|
paddingBottom: "15px",
|
|
585
|
-
borderBottom: "
|
|
586
|
-
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.03)",
|
|
553
|
+
borderBottom: "none",
|
|
587
554
|
backgroundColor: "#ffffff",
|
|
588
555
|
margin: 0,
|
|
589
556
|
boxSizing: "border-box",
|
|
@@ -637,7 +604,7 @@ var styles = {
|
|
|
637
604
|
backgroundColor: "#ffffff"
|
|
638
605
|
},
|
|
639
606
|
middleSection: {
|
|
640
|
-
margin: "
|
|
607
|
+
margin: "0px",
|
|
641
608
|
display: "flex",
|
|
642
609
|
flexDirection: "column",
|
|
643
610
|
gap: "12px",
|
|
@@ -652,7 +619,6 @@ var styles = {
|
|
|
652
619
|
fontSize: "16px",
|
|
653
620
|
fontWeight: 400,
|
|
654
621
|
lineHeight: "150%",
|
|
655
|
-
letterSpacing: "0.2px",
|
|
656
622
|
color: "#344054",
|
|
657
623
|
margin: 0,
|
|
658
624
|
padding: 0,
|
|
@@ -792,8 +758,7 @@ var styles = {
|
|
|
792
758
|
justifyContent: "space-between",
|
|
793
759
|
gap: "29px",
|
|
794
760
|
paddingTop: "15px",
|
|
795
|
-
borderTop: "
|
|
796
|
-
boxShadow: "0 -1px 2px rgba(0, 0, 0, 0.03)",
|
|
761
|
+
borderTop: "none",
|
|
797
762
|
backgroundColor: "#ffffff",
|
|
798
763
|
margin: 0,
|
|
799
764
|
boxSizing: "border-box"
|
|
@@ -1141,9 +1106,8 @@ var PurposeItem = ({
|
|
|
1141
1106
|
),
|
|
1142
1107
|
isAlreadyConsented && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: (() => {
|
|
1143
1108
|
const combinedId = `${purpose.uuid}-${dataElement.uuid}`;
|
|
1144
|
-
const isCurrentlySelected = selectedDataElements[combinedId] || false;
|
|
1145
1109
|
const wasOriginallySelected = initialDataElementSelections[combinedId] || false;
|
|
1146
|
-
if (
|
|
1110
|
+
if (wasOriginallySelected) {
|
|
1147
1111
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1148
1112
|
"div",
|
|
1149
1113
|
{
|
|
@@ -1156,7 +1120,7 @@ var PurposeItem = ({
|
|
|
1156
1120
|
borderRadius: "50%",
|
|
1157
1121
|
backgroundColor: "#10B981"
|
|
1158
1122
|
},
|
|
1159
|
-
"aria-label": `
|
|
1123
|
+
"aria-label": `Consented to ${getTranslatedText(
|
|
1160
1124
|
`data_elements.name`,
|
|
1161
1125
|
dataElement.name,
|
|
1162
1126
|
dataElement.uuid
|
|
@@ -1186,17 +1150,23 @@ var PurposeItem = ({
|
|
|
1186
1150
|
);
|
|
1187
1151
|
} else {
|
|
1188
1152
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1189
|
-
"
|
|
1153
|
+
"div",
|
|
1190
1154
|
{
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1155
|
+
style: {
|
|
1156
|
+
display: "flex",
|
|
1157
|
+
alignItems: "center",
|
|
1158
|
+
justifyContent: "center",
|
|
1159
|
+
width: "16px",
|
|
1160
|
+
height: "16px",
|
|
1161
|
+
borderRadius: "50%",
|
|
1162
|
+
border: "2px solid #d0d5dd",
|
|
1163
|
+
backgroundColor: "transparent"
|
|
1164
|
+
},
|
|
1165
|
+
"aria-label": `Not consented to ${getTranslatedText(
|
|
1196
1166
|
`data_elements.name`,
|
|
1197
1167
|
dataElement.name,
|
|
1198
1168
|
dataElement.uuid
|
|
1199
|
-
)}
|
|
1169
|
+
)}`
|
|
1200
1170
|
}
|
|
1201
1171
|
);
|
|
1202
1172
|
}
|
|
@@ -1606,7 +1576,9 @@ var RedactoNoticeConsent = ({
|
|
|
1606
1576
|
onError,
|
|
1607
1577
|
settings,
|
|
1608
1578
|
applicationId,
|
|
1609
|
-
validateAgainst = "all"
|
|
1579
|
+
validateAgainst = "all",
|
|
1580
|
+
includeFullyConsentedData = false,
|
|
1581
|
+
reviewModeButtonText = "Continue"
|
|
1610
1582
|
}) => {
|
|
1611
1583
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
1612
1584
|
const propValidationError = (0, import_react2.useMemo)(() => {
|
|
@@ -1648,6 +1620,7 @@ var RedactoNoticeConsent = ({
|
|
|
1648
1620
|
const [initialDataElementSelections, setInitialDataElementSelections] = (0, import_react2.useState)({});
|
|
1649
1621
|
const [collapsedPurposes, setCollapsedPurposes] = (0, import_react2.useState)({});
|
|
1650
1622
|
const [hasAlreadyConsented, setHasAlreadyConsented] = (0, import_react2.useState)(false);
|
|
1623
|
+
const [isFullyConsentedReviewMode, setIsFullyConsentedReviewMode] = (0, import_react2.useState)(false);
|
|
1651
1624
|
const [isLanguageDropdownOpen, setIsLanguageDropdownOpen] = (0, import_react2.useState)(false);
|
|
1652
1625
|
const [selectedLanguage, setSelectedLanguage] = (0, import_react2.useState)(language);
|
|
1653
1626
|
const [errorMessage, setErrorMessage] = (0, import_react2.useState)(null);
|
|
@@ -1809,10 +1782,15 @@ var RedactoNoticeConsent = ({
|
|
|
1809
1782
|
onAccept == null ? void 0 : onAccept();
|
|
1810
1783
|
}
|
|
1811
1784
|
}, [hasAlreadyConsented, onAccept]);
|
|
1785
|
+
const isDefaultLanguage = (lang) => {
|
|
1786
|
+
if (!content) return true;
|
|
1787
|
+
if (lang === "English" || lang === "en" || lang === "EN") return true;
|
|
1788
|
+
return false;
|
|
1789
|
+
};
|
|
1812
1790
|
const getTranslatedText = (key, defaultText, itemId) => {
|
|
1813
1791
|
var _a2, _b2;
|
|
1814
1792
|
if (!content) return defaultText;
|
|
1815
|
-
if (selectedLanguage
|
|
1793
|
+
if (isDefaultLanguage(selectedLanguage)) {
|
|
1816
1794
|
if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
|
|
1817
1795
|
return content.privacy_policy_anchor_text;
|
|
1818
1796
|
}
|
|
@@ -1839,18 +1817,38 @@ var RedactoNoticeConsent = ({
|
|
|
1839
1817
|
}
|
|
1840
1818
|
if (itemId) {
|
|
1841
1819
|
if (key === "purposes.name" || key === "purposes.description") {
|
|
1842
|
-
|
|
1820
|
+
const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
|
|
1821
|
+
if (purposeData) {
|
|
1822
|
+
if (typeof purposeData === "string") {
|
|
1823
|
+
return key === "purposes.name" ? purposeData : defaultText;
|
|
1824
|
+
}
|
|
1825
|
+
return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
|
|
1826
|
+
}
|
|
1827
|
+
return defaultText;
|
|
1843
1828
|
}
|
|
1844
1829
|
if (key.startsWith("data_elements.")) {
|
|
1845
1830
|
return ((_b2 = translationMap.data_elements) == null ? void 0 : _b2[itemId]) || defaultText;
|
|
1846
1831
|
}
|
|
1847
1832
|
}
|
|
1848
1833
|
const value = translationMap[key];
|
|
1849
|
-
if (typeof value === "string") {
|
|
1834
|
+
if (typeof value === "string" && value) {
|
|
1850
1835
|
return value;
|
|
1851
1836
|
}
|
|
1852
1837
|
return defaultText;
|
|
1853
1838
|
};
|
|
1839
|
+
const getTranslatedDpoText = (key, defaultText) => {
|
|
1840
|
+
if (!(content == null ? void 0 : content.dpo_info)) return defaultText;
|
|
1841
|
+
if (isDefaultLanguage(selectedLanguage)) {
|
|
1842
|
+
return content.dpo_info[key] || defaultText;
|
|
1843
|
+
}
|
|
1844
|
+
if (!content.supported_languages_and_translations) return defaultText;
|
|
1845
|
+
const translationMap = content.supported_languages_and_translations[selectedLanguage];
|
|
1846
|
+
if (translationMap == null ? void 0 : translationMap.dpo_info) {
|
|
1847
|
+
const translated = translationMap.dpo_info[key];
|
|
1848
|
+
if (translated) return translated;
|
|
1849
|
+
}
|
|
1850
|
+
return content.dpo_info[key] || defaultText;
|
|
1851
|
+
};
|
|
1854
1852
|
const fetchNotice = async () => {
|
|
1855
1853
|
var _a2;
|
|
1856
1854
|
if (isRequestInProgressRef.current) {
|
|
@@ -1874,6 +1872,7 @@ var RedactoNoticeConsent = ({
|
|
|
1874
1872
|
language,
|
|
1875
1873
|
specific_uuid: applicationId,
|
|
1876
1874
|
validate_against: validateAgainst,
|
|
1875
|
+
include_fully_consented_data: includeFullyConsentedData,
|
|
1877
1876
|
signal: (_a2 = abortControllerRef.current) == null ? void 0 : _a2.signal
|
|
1878
1877
|
});
|
|
1879
1878
|
const activeConfig = consentContentData.detail.active_config;
|
|
@@ -1911,7 +1910,7 @@ var RedactoNoticeConsent = ({
|
|
|
1911
1910
|
setCategorizedPurposes(newCategorizedPurposes);
|
|
1912
1911
|
const initialPurposeState = activeConfig.purposes.reduce(
|
|
1913
1912
|
(acc, purpose) => {
|
|
1914
|
-
if (
|
|
1913
|
+
if (purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) {
|
|
1915
1914
|
acc[purpose.uuid] = purposeSelections[purpose.uuid].selected;
|
|
1916
1915
|
} else {
|
|
1917
1916
|
acc[purpose.uuid] = false;
|
|
@@ -1926,7 +1925,7 @@ var RedactoNoticeConsent = ({
|
|
|
1926
1925
|
purpose.data_elements.forEach((element) => {
|
|
1927
1926
|
var _a3, _b2;
|
|
1928
1927
|
const combinedId = `${purpose.uuid}-${element.uuid}`;
|
|
1929
|
-
if (
|
|
1928
|
+
if ((_b2 = (_a3 = purposeSelections == null ? void 0 : purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
|
|
1930
1929
|
acc[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
|
|
1931
1930
|
} else {
|
|
1932
1931
|
acc[combinedId] = false;
|
|
@@ -1938,6 +1937,7 @@ var RedactoNoticeConsent = ({
|
|
|
1938
1937
|
);
|
|
1939
1938
|
setSelectedDataElements(initialDataElementState);
|
|
1940
1939
|
if (isReconsentRequired && newCategorizedPurposes) {
|
|
1940
|
+
setIsFullyConsentedReviewMode(false);
|
|
1941
1941
|
const initialSelections = {};
|
|
1942
1942
|
newCategorizedPurposes.alreadyConsented.forEach((purpose) => {
|
|
1943
1943
|
purpose.data_elements.forEach((element) => {
|
|
@@ -1951,7 +1951,36 @@ var RedactoNoticeConsent = ({
|
|
|
1951
1951
|
});
|
|
1952
1952
|
});
|
|
1953
1953
|
setInitialDataElementSelections(initialSelections);
|
|
1954
|
+
} else if (includeFullyConsentedData && purposeSelections) {
|
|
1955
|
+
const allPurposesSelected = activeConfig.purposes.length > 0 && activeConfig.purposes.every(
|
|
1956
|
+
(p) => {
|
|
1957
|
+
var _a3;
|
|
1958
|
+
return ((_a3 = purposeSelections[p.uuid]) == null ? void 0 : _a3.selected) === true;
|
|
1959
|
+
}
|
|
1960
|
+
);
|
|
1961
|
+
setIsFullyConsentedReviewMode(allPurposesSelected);
|
|
1962
|
+
if (allPurposesSelected) {
|
|
1963
|
+
const initialSelections = {};
|
|
1964
|
+
activeConfig.purposes.forEach(
|
|
1965
|
+
(purpose) => {
|
|
1966
|
+
purpose.data_elements.forEach((element) => {
|
|
1967
|
+
var _a3, _b2;
|
|
1968
|
+
const combinedId = `${purpose.uuid}-${element.uuid}`;
|
|
1969
|
+
if ((_b2 = (_a3 = purposeSelections[purpose.uuid]) == null ? void 0 : _a3.data_elements) == null ? void 0 : _b2[element.uuid]) {
|
|
1970
|
+
initialSelections[combinedId] = purposeSelections[purpose.uuid].data_elements[element.uuid].selected;
|
|
1971
|
+
} else {
|
|
1972
|
+
initialSelections[combinedId] = false;
|
|
1973
|
+
}
|
|
1974
|
+
});
|
|
1975
|
+
}
|
|
1976
|
+
);
|
|
1977
|
+
setInitialDataElementSelections(initialSelections);
|
|
1978
|
+
} else {
|
|
1979
|
+
setIsFullyConsentedReviewMode(false);
|
|
1980
|
+
setInitialDataElementSelections({});
|
|
1981
|
+
}
|
|
1954
1982
|
} else {
|
|
1983
|
+
setIsFullyConsentedReviewMode(false);
|
|
1955
1984
|
setInitialDataElementSelections({});
|
|
1956
1985
|
}
|
|
1957
1986
|
if (consentContentData.detail.is_minor) {
|
|
@@ -1983,7 +2012,8 @@ var RedactoNoticeConsent = ({
|
|
|
1983
2012
|
refreshToken,
|
|
1984
2013
|
language,
|
|
1985
2014
|
applicationId,
|
|
1986
|
-
validateAgainst
|
|
2015
|
+
validateAgainst,
|
|
2016
|
+
includeFullyConsentedData
|
|
1987
2017
|
// Removed onError and isRefreshingToken from dependencies to prevent duplicate API calls
|
|
1988
2018
|
// onError is only called on errors, not needed for initial data fetching
|
|
1989
2019
|
]);
|
|
@@ -2263,6 +2293,20 @@ var RedactoNoticeConsent = ({
|
|
|
2263
2293
|
});
|
|
2264
2294
|
}
|
|
2265
2295
|
});
|
|
2296
|
+
if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
|
|
2297
|
+
sequence.push(ttsAudioUrls.additional_text_audio_url);
|
|
2298
|
+
}
|
|
2299
|
+
if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
|
|
2300
|
+
sequence.push(ttsAudioUrls.privacy_center_anchor_text_audio_url);
|
|
2301
|
+
}
|
|
2302
|
+
if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
|
|
2303
|
+
const dpoAudio = ttsAudioUrls.dpo_info_audio;
|
|
2304
|
+
DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey }) => {
|
|
2305
|
+
if (dpoAudio[audioKey]) {
|
|
2306
|
+
sequence.push(dpoAudio[audioKey]);
|
|
2307
|
+
}
|
|
2308
|
+
});
|
|
2309
|
+
}
|
|
2266
2310
|
if (ttsAudioUrls.confirm_button_text_audio_url) {
|
|
2267
2311
|
sequence.push(ttsAudioUrls.confirm_button_text_audio_url);
|
|
2268
2312
|
}
|
|
@@ -2310,6 +2354,20 @@ var RedactoNoticeConsent = ({
|
|
|
2310
2354
|
});
|
|
2311
2355
|
}
|
|
2312
2356
|
});
|
|
2357
|
+
if (content.additional_text && ttsAudioUrls.additional_text_audio_url) {
|
|
2358
|
+
elementIds.push("additional-text");
|
|
2359
|
+
}
|
|
2360
|
+
if (content.privacy_center_url && ttsAudioUrls.privacy_center_anchor_text_audio_url) {
|
|
2361
|
+
elementIds.push("privacy-center-link");
|
|
2362
|
+
}
|
|
2363
|
+
if (content.dpo_info && ttsAudioUrls.dpo_info_audio) {
|
|
2364
|
+
const dpoAudio = ttsAudioUrls.dpo_info_audio;
|
|
2365
|
+
DPO_AUDIO_ELEMENT_MAP.forEach(({ audioKey, elementId }) => {
|
|
2366
|
+
if (dpoAudio[audioKey]) {
|
|
2367
|
+
elementIds.push(elementId);
|
|
2368
|
+
}
|
|
2369
|
+
});
|
|
2370
|
+
}
|
|
2313
2371
|
if (ttsAudioUrls.confirm_button_text_audio_url) {
|
|
2314
2372
|
elementIds.push("confirm-button-text");
|
|
2315
2373
|
}
|
|
@@ -3126,16 +3184,135 @@ var RedactoNoticeConsent = ({
|
|
|
3126
3184
|
onPurposeCollapse: togglePurposeCollapse,
|
|
3127
3185
|
onDataElementToggle: handleDataElementCheckboxChange,
|
|
3128
3186
|
getTranslatedText,
|
|
3129
|
-
isAlreadyConsented:
|
|
3130
|
-
selectedLanguage
|
|
3187
|
+
isAlreadyConsented: isFullyConsentedReviewMode,
|
|
3188
|
+
selectedLanguage,
|
|
3189
|
+
initialDataElementSelections
|
|
3131
3190
|
},
|
|
3132
3191
|
`${purpose.uuid}-${selectedLanguage}`
|
|
3133
3192
|
)) })
|
|
3193
|
+
),
|
|
3194
|
+
((content == null ? void 0 : content.privacy_center_url) || (content == null ? void 0 : content.dpo_info)) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3195
|
+
"div",
|
|
3196
|
+
{
|
|
3197
|
+
style: {
|
|
3198
|
+
...styles.privacyText,
|
|
3199
|
+
...responsiveStyles.privacyText,
|
|
3200
|
+
...componentTextStyle,
|
|
3201
|
+
fontSize: isMobile ? "13px" : "14px",
|
|
3202
|
+
lineHeight: "1.4",
|
|
3203
|
+
borderTop: "1px solid rgba(152, 162, 179, 0.3)",
|
|
3204
|
+
paddingTop: "12px",
|
|
3205
|
+
marginTop: "12px"
|
|
3206
|
+
},
|
|
3207
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { style: { margin: 0, opacity: 0.6 }, children: [
|
|
3208
|
+
content.privacy_center_url && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
3209
|
+
content.additional_text && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "additional-text", children: getTranslatedText(
|
|
3210
|
+
"additional_text",
|
|
3211
|
+
content.additional_text
|
|
3212
|
+
) }),
|
|
3213
|
+
" ",
|
|
3214
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3215
|
+
"a",
|
|
3216
|
+
{
|
|
3217
|
+
id: "privacy-center-link",
|
|
3218
|
+
style: { ...styles.link, ...linkStyle },
|
|
3219
|
+
href: content.privacy_center_url,
|
|
3220
|
+
target: "_blank",
|
|
3221
|
+
rel: "noopener noreferrer",
|
|
3222
|
+
children: getTranslatedText(
|
|
3223
|
+
"privacy_center_anchor_text",
|
|
3224
|
+
content.privacy_center_anchor_text || "Privacy Center"
|
|
3225
|
+
)
|
|
3226
|
+
}
|
|
3227
|
+
),
|
|
3228
|
+
"."
|
|
3229
|
+
] }),
|
|
3230
|
+
content.dpo_info && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
3231
|
+
content.privacy_center_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
|
|
3232
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-grievance-text", children: getTranslatedDpoText(
|
|
3233
|
+
"grievance_text",
|
|
3234
|
+
content.dpo_info.grievance_text || ""
|
|
3235
|
+
) }),
|
|
3236
|
+
" ",
|
|
3237
|
+
content.dpo_info.grievance_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3238
|
+
"a",
|
|
3239
|
+
{
|
|
3240
|
+
id: "dpo-grievance-link",
|
|
3241
|
+
style: { ...styles.link, ...linkStyle },
|
|
3242
|
+
href: content.dpo_info.grievance_url,
|
|
3243
|
+
target: "_blank",
|
|
3244
|
+
rel: "noopener noreferrer",
|
|
3245
|
+
children: getTranslatedDpoText(
|
|
3246
|
+
"grievance_anchor_text",
|
|
3247
|
+
content.dpo_info.grievance_anchor_text || "click here"
|
|
3248
|
+
)
|
|
3249
|
+
}
|
|
3250
|
+
),
|
|
3251
|
+
content.dpo_info.grievance_email && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
3252
|
+
" ",
|
|
3253
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-grievance-email-connector", children: getTranslatedDpoText(
|
|
3254
|
+
"grievance_email_connector_text",
|
|
3255
|
+
content.dpo_info.grievance_email_connector_text || "or email to"
|
|
3256
|
+
) }),
|
|
3257
|
+
" ",
|
|
3258
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3259
|
+
"a",
|
|
3260
|
+
{
|
|
3261
|
+
id: "dpo-grievance-email",
|
|
3262
|
+
style: { ...styles.link, ...linkStyle },
|
|
3263
|
+
href: `mailto:${content.dpo_info.grievance_email}`,
|
|
3264
|
+
children: content.dpo_info.grievance_email
|
|
3265
|
+
}
|
|
3266
|
+
)
|
|
3267
|
+
] }),
|
|
3268
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
|
|
3269
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-dp-board-text", children: getTranslatedDpoText(
|
|
3270
|
+
"dp_board_text",
|
|
3271
|
+
content.dpo_info.dp_board_text || ""
|
|
3272
|
+
) }),
|
|
3273
|
+
" ",
|
|
3274
|
+
content.dpo_info.dp_board_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3275
|
+
"a",
|
|
3276
|
+
{
|
|
3277
|
+
id: "dpo-dp-board-link",
|
|
3278
|
+
style: { ...styles.link, ...linkStyle },
|
|
3279
|
+
href: content.dpo_info.dp_board_url,
|
|
3280
|
+
target: "_blank",
|
|
3281
|
+
rel: "noopener noreferrer",
|
|
3282
|
+
children: getTranslatedDpoText(
|
|
3283
|
+
"dp_board_anchor_text",
|
|
3284
|
+
content.dpo_info.dp_board_anchor_text || "here"
|
|
3285
|
+
)
|
|
3286
|
+
}
|
|
3287
|
+
),
|
|
3288
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
|
|
3289
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { id: "dpo-dpo-text", children: getTranslatedDpoText(
|
|
3290
|
+
"dpo_text",
|
|
3291
|
+
content.dpo_info.dpo_text || ""
|
|
3292
|
+
) }),
|
|
3293
|
+
" ",
|
|
3294
|
+
content.dpo_info.dpo_url && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3295
|
+
"a",
|
|
3296
|
+
{
|
|
3297
|
+
id: "dpo-dpo-link",
|
|
3298
|
+
style: { ...styles.link, ...linkStyle },
|
|
3299
|
+
href: content.dpo_info.dpo_url,
|
|
3300
|
+
target: "_blank",
|
|
3301
|
+
rel: "noopener noreferrer",
|
|
3302
|
+
children: getTranslatedDpoText(
|
|
3303
|
+
"dpo_anchor_text",
|
|
3304
|
+
content.dpo_info.dpo_anchor_text || "Click here"
|
|
3305
|
+
)
|
|
3306
|
+
}
|
|
3307
|
+
)
|
|
3308
|
+
] })
|
|
3309
|
+
] })
|
|
3310
|
+
}
|
|
3134
3311
|
)
|
|
3135
3312
|
]
|
|
3136
3313
|
}
|
|
3137
3314
|
),
|
|
3138
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
3315
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3139
3316
|
"div",
|
|
3140
3317
|
{
|
|
3141
3318
|
style: {
|
|
@@ -3143,7 +3320,22 @@ var RedactoNoticeConsent = ({
|
|
|
3143
3320
|
...responsiveStyles.bottomSection,
|
|
3144
3321
|
...sectionStyle
|
|
3145
3322
|
},
|
|
3146
|
-
children:
|
|
3323
|
+
children: isFullyConsentedReviewMode ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3324
|
+
"button",
|
|
3325
|
+
{
|
|
3326
|
+
ref: lastFocusableRef,
|
|
3327
|
+
id: "review-mode-continue-button",
|
|
3328
|
+
style: {
|
|
3329
|
+
...styles.button,
|
|
3330
|
+
...responsiveStyles.button,
|
|
3331
|
+
...styles.acceptButton,
|
|
3332
|
+
...acceptButtonStyle
|
|
3333
|
+
},
|
|
3334
|
+
onClick: () => onAccept == null ? void 0 : onAccept(),
|
|
3335
|
+
"aria-label": reviewModeButtonText,
|
|
3336
|
+
children: reviewModeButtonText
|
|
3337
|
+
}
|
|
3338
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
3147
3339
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
3148
3340
|
"button",
|
|
3149
3341
|
{
|
|
@@ -3191,7 +3383,7 @@ var RedactoNoticeConsent = ({
|
|
|
3191
3383
|
)
|
|
3192
3384
|
}
|
|
3193
3385
|
)
|
|
3194
|
-
]
|
|
3386
|
+
] })
|
|
3195
3387
|
}
|
|
3196
3388
|
)
|
|
3197
3389
|
] })
|
|
@@ -3261,60 +3453,27 @@ var submitConsentEvent2 = async ({
|
|
|
3261
3453
|
var _a, _b;
|
|
3262
3454
|
try {
|
|
3263
3455
|
const apiBaseUrl = baseUrl || BASE_URL2;
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
name: element.name,
|
|
3286
|
-
enabled: Boolean(element.enabled),
|
|
3287
|
-
required: Boolean(element.required),
|
|
3288
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
3289
|
-
}))
|
|
3290
|
-
};
|
|
3291
|
-
})
|
|
3292
|
-
},
|
|
3293
|
-
meta_data: meta_data ? { specific_uuid: meta_data.specific_uuid } : void 0
|
|
3294
|
-
};
|
|
3295
|
-
} else {
|
|
3296
|
-
payload = {
|
|
3297
|
-
notice_uuid: noticeUuid,
|
|
3298
|
-
purposes: purposes.map((purpose) => {
|
|
3299
|
-
if (!purpose.uuid) {
|
|
3300
|
-
throw new Error(`Invalid purpose data: missing uuid`);
|
|
3301
|
-
}
|
|
3302
|
-
const dataElements = purpose.data_elements.filter((element) => element.enabled).map((element) => ({
|
|
3303
|
-
uuid: element.uuid,
|
|
3304
|
-
selected: element.required ? true : Boolean(element.selected)
|
|
3305
|
-
}));
|
|
3306
|
-
return {
|
|
3307
|
-
purpose_uuid: purpose.uuid,
|
|
3308
|
-
selected: Boolean(purpose.selected),
|
|
3309
|
-
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
3310
|
-
};
|
|
3311
|
-
}),
|
|
3312
|
-
select_all_mandatory: false,
|
|
3313
|
-
source: "WEB",
|
|
3314
|
-
declined,
|
|
3315
|
-
meta_data
|
|
3316
|
-
};
|
|
3317
|
-
}
|
|
3456
|
+
const payload = {
|
|
3457
|
+
notice_uuid: noticeUuid,
|
|
3458
|
+
purposes: purposes.map((purpose) => {
|
|
3459
|
+
if (!purpose.uuid) {
|
|
3460
|
+
throw new Error(`Invalid purpose data: missing uuid`);
|
|
3461
|
+
}
|
|
3462
|
+
const dataElements = purpose.data_elements.filter((element) => element.enabled).map((element) => ({
|
|
3463
|
+
uuid: element.uuid,
|
|
3464
|
+
selected: element.required ? true : Boolean(element.selected)
|
|
3465
|
+
}));
|
|
3466
|
+
return {
|
|
3467
|
+
purpose_uuid: purpose.uuid,
|
|
3468
|
+
selected: Boolean(purpose.selected),
|
|
3469
|
+
data_elements: dataElements.length > 0 ? dataElements : void 0
|
|
3470
|
+
};
|
|
3471
|
+
}),
|
|
3472
|
+
select_all_mandatory: false,
|
|
3473
|
+
source: "WEB",
|
|
3474
|
+
declined,
|
|
3475
|
+
meta_data
|
|
3476
|
+
};
|
|
3318
3477
|
const response = await fetch(
|
|
3319
3478
|
`${apiBaseUrl}/public/organisations/${org_uuid}/workspaces/${workspace_uuid}/submit-consent`,
|
|
3320
3479
|
{
|
|
@@ -3829,7 +3988,7 @@ var RedactoConsentInlineComponent = ({
|
|
|
3829
3988
|
const getTranslatedText = (key, defaultText, itemId) => {
|
|
3830
3989
|
var _a2, _b;
|
|
3831
3990
|
if (!content) return defaultText;
|
|
3832
|
-
if (selectedLanguage ===
|
|
3991
|
+
if (selectedLanguage === "English" || selectedLanguage === "en" || selectedLanguage === "EN") {
|
|
3833
3992
|
if (key === "privacy_policy_anchor_text" && content.privacy_policy_anchor_text) {
|
|
3834
3993
|
return content.privacy_policy_anchor_text;
|
|
3835
3994
|
}
|
|
@@ -3844,14 +4003,21 @@ var RedactoConsentInlineComponent = ({
|
|
|
3844
4003
|
}
|
|
3845
4004
|
if (itemId) {
|
|
3846
4005
|
if (key === "purposes.name" || key === "purposes.description") {
|
|
3847
|
-
|
|
4006
|
+
const purposeData = (_a2 = translationMap.purposes) == null ? void 0 : _a2[itemId];
|
|
4007
|
+
if (purposeData) {
|
|
4008
|
+
if (typeof purposeData === "string") {
|
|
4009
|
+
return key === "purposes.name" ? purposeData : defaultText;
|
|
4010
|
+
}
|
|
4011
|
+
return key === "purposes.name" ? purposeData.name || defaultText : purposeData.description || defaultText;
|
|
4012
|
+
}
|
|
4013
|
+
return defaultText;
|
|
3848
4014
|
}
|
|
3849
4015
|
if (key.startsWith("data_elements.")) {
|
|
3850
4016
|
return ((_b = translationMap.data_elements) == null ? void 0 : _b[itemId]) || defaultText;
|
|
3851
4017
|
}
|
|
3852
4018
|
}
|
|
3853
4019
|
const value = translationMap[key];
|
|
3854
|
-
if (typeof value === "string") {
|
|
4020
|
+
if (typeof value === "string" && value) {
|
|
3855
4021
|
return value;
|
|
3856
4022
|
}
|
|
3857
4023
|
return defaultText;
|