@redacto.io/consent-sdk-react 5.3.0 → 6.0.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/.turbo/turbo-build.log +24 -0
- package/CHANGELOG.md +6 -0
- package/dist/privacy-center.d.mts +98 -38
- package/dist/privacy-center.d.ts +98 -38
- package/dist/privacy-center.js +3679 -1491
- package/dist/privacy-center.mjs +3614 -1423
- package/package.json +1 -1
- package/src/RedactoPrivacyCenter/api/actions.ts +52 -8
- package/src/RedactoPrivacyCenter/api/client.ts +58 -15
- package/src/RedactoPrivacyCenter/components/ConsentManager.tsx +722 -273
- package/src/RedactoPrivacyCenter/components/ConsentManagerCells.tsx +187 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerColumns.tsx +65 -165
- package/src/RedactoPrivacyCenter/components/ConsentManagerExpandedRow.tsx +179 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerGroupedColumns.tsx +318 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerProductCards.tsx +333 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerPurposeCards.tsx +102 -0
- package/src/RedactoPrivacyCenter/components/ConsentManagerTableSkeleton.tsx +6 -2
- package/src/RedactoPrivacyCenter/components/ModifyConsentModal.tsx +8 -5
- package/src/RedactoPrivacyCenter/components/NotificationHub/NotificationBell.tsx +1 -1
- package/src/RedactoPrivacyCenter/components/PrivacyCenterLayout.tsx +102 -53
- package/src/RedactoPrivacyCenter/components/types.ts +2 -5
- package/src/RedactoPrivacyCenter/context/PageChromeContext.tsx +21 -1
- package/src/RedactoPrivacyCenter/lib/api.ts +70 -28
- package/src/RedactoPrivacyCenter/lib/consent-manager/utils.tsx +4 -2
- package/src/RedactoPrivacyCenter/lib/types.ts +57 -36
- package/src/RedactoPrivacyCenter/locales/as/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/bho/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/bn/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/brx/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/doi/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/en/translation.json +16 -1
- package/src/RedactoPrivacyCenter/locales/gom/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/gu/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/hi/translation.json +15 -1
- package/src/RedactoPrivacyCenter/locales/kn/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/ks/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/mai/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/ml/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/mr/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/ne/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/or/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/pa/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/sa/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/sat/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/sd/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/ta/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/te/translation.json +12 -1
- package/src/RedactoPrivacyCenter/locales/ur/translation.json +12 -1
- package/src/RedactoPrivacyCenter/styles/injectStyles.ts +527 -5
- package/src/RedactoPrivacyCenter/styles/variables.css +5 -0
- package/src/RedactoPrivacyCenter/table/AdvancedTable.tsx +36 -16
- package/src/RedactoPrivacyCenter/table/AdvancedTablePagination.tsx +4 -12
- package/src/RedactoPrivacyCenter/ui/PCInput.tsx +1 -1
- package/src/RedactoPrivacyCenter/ui/PCSelect.tsx +51 -5
- package/src/RedactoPrivacyCenter/ui/ThemeToggle.tsx +2 -4
- package/src/privacy-center.ts +7 -3
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
fetchCaseHistoryServer,
|
|
5
5
|
fetchProductsServer,
|
|
6
6
|
fetchUserConsentsServer,
|
|
7
|
+
fetchGroupPurposesServer,
|
|
7
8
|
getFormDataServer,
|
|
8
9
|
manageConsentServer,
|
|
9
10
|
getCaseMessagesServer,
|
|
@@ -34,6 +35,7 @@ import type {
|
|
|
34
35
|
UploadDocumentResponse,
|
|
35
36
|
UserConsentDetail,
|
|
36
37
|
UserDataRequest,
|
|
38
|
+
GroupPurposesOut,
|
|
37
39
|
} from './types';
|
|
38
40
|
import { ensureValidToken } from './utils';
|
|
39
41
|
|
|
@@ -260,37 +262,35 @@ export const fetchProducts = async (
|
|
|
260
262
|
}
|
|
261
263
|
};
|
|
262
264
|
|
|
265
|
+
export type FetchUserConsentsParams = {
|
|
266
|
+
organizationId: string;
|
|
267
|
+
workspaceId: string;
|
|
268
|
+
offset?: number;
|
|
269
|
+
limit?: number;
|
|
270
|
+
nominatedOffset?: number;
|
|
271
|
+
nominatedLimit?: number;
|
|
272
|
+
search?: string;
|
|
273
|
+
status?: string;
|
|
274
|
+
product_uuid?: string;
|
|
275
|
+
language?: string;
|
|
276
|
+
authContext?: AuthContext;
|
|
277
|
+
consentClient?: BaseUrlContextValue['consentClient'];
|
|
278
|
+
};
|
|
279
|
+
|
|
263
280
|
export const fetchUserConsents = async (
|
|
264
|
-
|
|
265
|
-
workspaceId: string,
|
|
266
|
-
contact: string,
|
|
267
|
-
offset?: number,
|
|
268
|
-
limit?: number,
|
|
269
|
-
search?: string,
|
|
270
|
-
status?: string,
|
|
271
|
-
product_uuid?: string,
|
|
272
|
-
authContext?: AuthContext,
|
|
273
|
-
consentClient?: BaseUrlContextValue['consentClient'],
|
|
274
|
-
language?: string
|
|
281
|
+
params: FetchUserConsentsParams
|
|
275
282
|
): Promise<UserConsentDetail | null> => {
|
|
283
|
+
const { organizationId, workspaceId, authContext, consentClient, ...rest } = params;
|
|
276
284
|
try {
|
|
277
|
-
// Ensure we have a valid token before making the API call
|
|
278
285
|
const accessToken = await ensureValidToken(organizationId, workspaceId, undefined, authContext, consentClient);
|
|
279
286
|
if (!accessToken) {
|
|
280
|
-
// ensureValidToken already handled sign out and redirect
|
|
281
287
|
return null;
|
|
282
288
|
}
|
|
283
289
|
|
|
284
290
|
const result = await fetchUserConsentsServer({
|
|
285
291
|
organizationId,
|
|
286
292
|
workspaceId,
|
|
287
|
-
|
|
288
|
-
offset,
|
|
289
|
-
limit,
|
|
290
|
-
search,
|
|
291
|
-
status,
|
|
292
|
-
product_uuid,
|
|
293
|
-
language,
|
|
293
|
+
...rest,
|
|
294
294
|
authToken: accessToken,
|
|
295
295
|
consentClient,
|
|
296
296
|
});
|
|
@@ -298,18 +298,11 @@ export const fetchUserConsents = async (
|
|
|
298
298
|
} catch (error: any) {
|
|
299
299
|
const shouldRetry = await handleClientAuthError(error, organizationId, workspaceId, authContext, consentClient);
|
|
300
300
|
if (shouldRetry) {
|
|
301
|
-
// Read from sessionStorage first (synchronously updated) then fall back to context
|
|
302
301
|
const newAccessToken = sessionStorage.getItem('access_token') || authContext?.accessToken || '';
|
|
303
302
|
return await fetchUserConsentsServer({
|
|
304
303
|
organizationId,
|
|
305
304
|
workspaceId,
|
|
306
|
-
|
|
307
|
-
offset,
|
|
308
|
-
limit,
|
|
309
|
-
search,
|
|
310
|
-
status,
|
|
311
|
-
product_uuid,
|
|
312
|
-
language,
|
|
305
|
+
...rest,
|
|
313
306
|
authToken: newAccessToken || undefined,
|
|
314
307
|
consentClient,
|
|
315
308
|
});
|
|
@@ -319,6 +312,55 @@ export const fetchUserConsents = async (
|
|
|
319
312
|
}
|
|
320
313
|
};
|
|
321
314
|
|
|
315
|
+
export type FetchGroupPurposesParams = {
|
|
316
|
+
organizationId: string;
|
|
317
|
+
workspaceId: string;
|
|
318
|
+
productUuid: string;
|
|
319
|
+
offset?: number;
|
|
320
|
+
limit?: number;
|
|
321
|
+
status?: string;
|
|
322
|
+
search?: string;
|
|
323
|
+
language?: string;
|
|
324
|
+
nominatorUuid?: string;
|
|
325
|
+
authContext?: AuthContext;
|
|
326
|
+
consentClient?: BaseUrlContextValue['consentClient'];
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
export const fetchGroupPurposes = async (
|
|
330
|
+
params: FetchGroupPurposesParams
|
|
331
|
+
): Promise<GroupPurposesOut | null> => {
|
|
332
|
+
const { organizationId, workspaceId, authContext, consentClient, ...rest } = params;
|
|
333
|
+
try {
|
|
334
|
+
const accessToken = await ensureValidToken(organizationId, workspaceId, undefined, authContext, consentClient);
|
|
335
|
+
if (!accessToken) {
|
|
336
|
+
return null;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
const result = await fetchGroupPurposesServer({
|
|
340
|
+
organizationId,
|
|
341
|
+
workspaceId,
|
|
342
|
+
...rest,
|
|
343
|
+
authToken: accessToken,
|
|
344
|
+
consentClient,
|
|
345
|
+
});
|
|
346
|
+
return result;
|
|
347
|
+
} catch (error: any) {
|
|
348
|
+
const shouldRetry = await handleClientAuthError(error, organizationId, workspaceId, authContext, consentClient);
|
|
349
|
+
if (shouldRetry) {
|
|
350
|
+
const newAccessToken = sessionStorage.getItem('access_token') || authContext?.accessToken || '';
|
|
351
|
+
return await fetchGroupPurposesServer({
|
|
352
|
+
organizationId,
|
|
353
|
+
workspaceId,
|
|
354
|
+
...rest,
|
|
355
|
+
authToken: newAccessToken || undefined,
|
|
356
|
+
consentClient,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
console.error('Error fetching group purposes:', error);
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
322
364
|
export const manageConsent = async ({
|
|
323
365
|
organizationId,
|
|
324
366
|
workspaceId,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
3
|
import { ConsentStatusEnum } from '../types';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PurposeItem } from '../types';
|
|
5
|
+
|
|
6
|
+
type CsvRow = Partial<PurposeItem> & Record<string, unknown>;
|
|
5
7
|
import { formatDateTime as formatDateTimeShared } from '../../utils/date';
|
|
6
8
|
|
|
7
9
|
// Re-export shared date formatting
|
|
@@ -20,7 +22,7 @@ export const useStatusOptions = () => {
|
|
|
20
22
|
);
|
|
21
23
|
};
|
|
22
24
|
|
|
23
|
-
export const exportTableToCSV = (rows:
|
|
25
|
+
export const exportTableToCSV = (rows: CsvRow[]) => {
|
|
24
26
|
if (!rows || rows.length === 0) {
|
|
25
27
|
console.warn('No data to export');
|
|
26
28
|
return;
|
|
@@ -180,21 +180,6 @@ export type ConsentDataElement = {
|
|
|
180
180
|
selected: boolean;
|
|
181
181
|
};
|
|
182
182
|
|
|
183
|
-
export type UserConsent = {
|
|
184
|
-
purpose_uuid?: string;
|
|
185
|
-
purpose: string;
|
|
186
|
-
purpose_description: string;
|
|
187
|
-
status: ConsentStatusEnum;
|
|
188
|
-
given_date: string;
|
|
189
|
-
valid_till: string;
|
|
190
|
-
method: string;
|
|
191
|
-
data_elements: ConsentDataElement[];
|
|
192
|
-
product_uuid?: string;
|
|
193
|
-
product_name?: string;
|
|
194
|
-
product_description?: string | null;
|
|
195
|
-
nominator_info?: NominatorInfo;
|
|
196
|
-
};
|
|
197
|
-
|
|
198
183
|
export type NominatorInfo = {
|
|
199
184
|
org_user_id: string;
|
|
200
185
|
name: string | null;
|
|
@@ -202,44 +187,79 @@ export type NominatorInfo = {
|
|
|
202
187
|
email: string | null;
|
|
203
188
|
};
|
|
204
189
|
|
|
190
|
+
export type PurposeItem = {
|
|
191
|
+
purpose_uuid: string;
|
|
192
|
+
name: string;
|
|
193
|
+
description: string | null;
|
|
194
|
+
status: ConsentStatusEnum | string;
|
|
195
|
+
given_date: string | null;
|
|
196
|
+
valid_till: string | null;
|
|
197
|
+
method: string;
|
|
198
|
+
data_elements: ConsentDataElement[];
|
|
199
|
+
link_reason: string | null;
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export type ConsentGroup = {
|
|
203
|
+
product_uuid: string;
|
|
204
|
+
product_name: string;
|
|
205
|
+
product_description: string | null;
|
|
206
|
+
nominator: NominatorInfo | null;
|
|
207
|
+
total_purposes: number;
|
|
208
|
+
active_purposes: number;
|
|
209
|
+
purposes: PurposeItem[];
|
|
210
|
+
has_more_purposes: boolean;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
export type PaginationMeta = {
|
|
214
|
+
total_count: number;
|
|
215
|
+
offset: number;
|
|
216
|
+
limit: number;
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export type Pagination = PaginationMeta;
|
|
220
|
+
|
|
205
221
|
export type ConsentHistoryStatusSummary = {
|
|
206
222
|
total_purposes: number;
|
|
207
223
|
direct_purposes: number;
|
|
208
224
|
nominated_purposes: number;
|
|
209
|
-
nominee_purposes?: number;
|
|
210
225
|
active_purposes: number;
|
|
211
226
|
inactive_purposes: number;
|
|
212
227
|
};
|
|
213
228
|
|
|
214
|
-
export type
|
|
229
|
+
export type DisplayProductGroup = ConsentGroup & {
|
|
230
|
+
withdrawn_purposes: number;
|
|
231
|
+
expired_purposes: number;
|
|
232
|
+
declined_purposes: number;
|
|
233
|
+
latest_given_date: string | null;
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
export type DisplayPurposeRow = PurposeItem & {
|
|
215
237
|
product_uuid: string;
|
|
216
238
|
product_name: string;
|
|
217
239
|
product_description: string | null;
|
|
218
|
-
|
|
219
|
-
total_purposes: number;
|
|
220
|
-
active_purposes: number;
|
|
240
|
+
nominator: NominatorInfo | null;
|
|
221
241
|
};
|
|
222
242
|
|
|
223
|
-
export type
|
|
224
|
-
|
|
225
|
-
|
|
243
|
+
export type ConsentModalRecord = PurposeItem & {
|
|
244
|
+
product_uuid: string;
|
|
245
|
+
product_name: string;
|
|
246
|
+
product_description: string | null;
|
|
247
|
+
nominator: NominatorInfo | null;
|
|
226
248
|
};
|
|
227
249
|
|
|
228
|
-
export type
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
250
|
+
export type UserConsentDetail = {
|
|
251
|
+
direct: ConsentGroup[];
|
|
252
|
+
direct_pagination: PaginationMeta;
|
|
253
|
+
nominated: ConsentGroup[];
|
|
254
|
+
nominated_pagination: PaginationMeta;
|
|
255
|
+
user_status: 'ACTIVE' | 'TRANSFERRED' | null;
|
|
256
|
+
nominators: NominatorInfo[];
|
|
257
|
+
status_summary: ConsentHistoryStatusSummary;
|
|
232
258
|
};
|
|
233
259
|
|
|
234
|
-
export type
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
pagination: Pagination;
|
|
238
|
-
direct_product_groups?: ProductConsentHistoryGroup[];
|
|
239
|
-
user_status?: 'ACTIVE' | 'TRANSFERRED' | null;
|
|
240
|
-
nominated_purposes?: NominatedPurposesGroup[];
|
|
241
|
-
nominators?: NominatorInfo[];
|
|
242
|
-
status_summary?: ConsentHistoryStatusSummary | null;
|
|
260
|
+
export type GroupPurposesOut = {
|
|
261
|
+
purposes: PurposeItem[];
|
|
262
|
+
pagination: PaginationMeta;
|
|
243
263
|
};
|
|
244
264
|
|
|
245
265
|
export type UserConsentResponse = {
|
|
@@ -251,6 +271,7 @@ export type UserConsentResponse = {
|
|
|
251
271
|
export enum ConsentStatusEnum {
|
|
252
272
|
ACTIVE = 'ACTIVE',
|
|
253
273
|
WITHDRAWN = 'WITHDRAW',
|
|
274
|
+
REVOKED = 'REVOKED',
|
|
254
275
|
EXPIRED = 'EXPIRED',
|
|
255
276
|
DECLINED = 'DECLINED',
|
|
256
277
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "সংলগ্ন আঁতৰাওক",
|
|
277
277
|
"document": "নথি",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ডাউনলোড কৰক",
|
|
279
|
-
"sortByColumn": "স্তম্ভ অনুসৰি সজাওক"
|
|
279
|
+
"sortByColumn": "স্তম্ভ অনুসৰি সজাওক",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "संलग्नक हटाईं",
|
|
277
277
|
"document": "दस्तावेज",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलोड करीं",
|
|
279
|
-
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करीं"
|
|
279
|
+
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करीं",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "সংযুক্তি সরান",
|
|
277
277
|
"document": "নথি",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ডাউনলোড করুন",
|
|
279
|
-
"sortByColumn": "কলাম অনুসারে সাজান"
|
|
279
|
+
"sortByColumn": "কলাম অনুসারে সাজান",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "लाफाबनाय बोखार",
|
|
277
277
|
"document": "फोरमान",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलड हो",
|
|
279
|
-
"sortByColumn": "कलम बायदिजों दाय हो"
|
|
279
|
+
"sortByColumn": "कलम बायदिजों दाय हो",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "संलग्नक हटाओ",
|
|
277
277
|
"document": "दस्तावेज़",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलोड करो",
|
|
279
|
-
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करो"
|
|
279
|
+
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करो",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"manageConsentSubtitle": "Explore and manage all your consents in one place",
|
|
86
86
|
"export": "Export",
|
|
87
87
|
"search": "Search",
|
|
88
|
+
"searchConsentsProductsPurposes": "Search consents, products, purposes...",
|
|
88
89
|
"status": "Status",
|
|
89
90
|
"product": "Product",
|
|
90
91
|
"exportConsentData": "Export consent data",
|
|
@@ -111,6 +112,7 @@
|
|
|
111
112
|
"modifyButton": "Modify",
|
|
112
113
|
"statusActive": "Active",
|
|
113
114
|
"statusWithdrawn": "Withdrawn",
|
|
115
|
+
"statusRevoked": "Revoked",
|
|
114
116
|
"statusExpired": "Expired",
|
|
115
117
|
"statusDeclined": "Declined",
|
|
116
118
|
"modifyConsent": "Modify Consent",
|
|
@@ -190,6 +192,8 @@
|
|
|
190
192
|
"managing": "Managing",
|
|
191
193
|
"consentVisibility": "Consent visibility",
|
|
192
194
|
"managingConsentsFor": "Managing consents for:",
|
|
195
|
+
"nominatedBy": "Nominated by",
|
|
196
|
+
"loadMorePurposes": "Load more purposes",
|
|
193
197
|
"statusTransferred": "Transferred",
|
|
194
198
|
"nomination": "Nomination",
|
|
195
199
|
"enterNomineeDetails": "Enter the nominee details",
|
|
@@ -277,5 +281,16 @@
|
|
|
277
281
|
"total": "Total",
|
|
278
282
|
"unread": "Unread",
|
|
279
283
|
"viewAllNotifications": "View all notifications",
|
|
280
|
-
"weeksAgo": "{{count}}w ago"
|
|
284
|
+
"weeksAgo": "{{count}}w ago",
|
|
285
|
+
"manage": "Manage",
|
|
286
|
+
"consents": "Consents",
|
|
287
|
+
"consentCount_one": "{{count}} consent",
|
|
288
|
+
"consentCount_other": "{{count}} consents",
|
|
289
|
+
"purposes": "Purposes",
|
|
290
|
+
"latestActivity": "Latest activity",
|
|
291
|
+
"activeWithCount": "{{count}} active",
|
|
292
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
293
|
+
"expiredWithCount": "{{count}} expired",
|
|
294
|
+
"declinedWithCount": "{{count}} declined",
|
|
295
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
281
296
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "जोडणी काडात",
|
|
277
277
|
"document": "दस्तावेज",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डावनलोड करात",
|
|
279
|
-
"sortByColumn": "स्तंभाप्रमाण क्रमबद्ध करात"
|
|
279
|
+
"sortByColumn": "स्तंभाप्रमाण क्रमबद्ध करात",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "જોડાણ દૂર કરો",
|
|
277
277
|
"document": "દસ્તાવેજ",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ડાઉનલોડ કરો",
|
|
279
|
-
"sortByColumn": "કૉલમ દ્વારા સૉર્ટ કરો"
|
|
279
|
+
"sortByColumn": "કૉલમ દ્વારા સૉર્ટ કરો",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -84,8 +84,11 @@
|
|
|
84
84
|
"manageConsentSubtitle": "एक ही स्थान पर अपनी सभी सहमतियों को देखें और प्रबंधित करें",
|
|
85
85
|
"export": "निर्यात",
|
|
86
86
|
"search": "खोजें",
|
|
87
|
+
"searchConsentsProductsPurposes": "सहमतियां, उत्पाद, उद्देश्य खोजें...",
|
|
87
88
|
"status": "स्थिति",
|
|
88
89
|
"product": "उत्पाद",
|
|
90
|
+
"allStatus": "सभी स्थितियां",
|
|
91
|
+
"allProducts": "सभी उत्पाद",
|
|
89
92
|
"exportConsentData": "सहमति डेटा निर्यात करें",
|
|
90
93
|
"exportConsentDataSubtitle": "यह वर्तमान में दिखाई देने वाली पंक्तियों को CSV फाइल के रूप में डाउनलोड करेगा।",
|
|
91
94
|
"exportingIncludesFilters": "निर्यात में इस तालिका दृश्य में लागू फ़िल्टर और खोज शामिल हैं।",
|
|
@@ -276,5 +279,16 @@
|
|
|
276
279
|
"removeAttachment": "संलग्नक हटाएं",
|
|
277
280
|
"document": "दस्तावेज़",
|
|
278
281
|
"downloadAttachment": "{{fileName}} डाउनलोड करें",
|
|
279
|
-
"sortByColumn": "कॉलम के अनुसार क्रमबद्ध करें"
|
|
282
|
+
"sortByColumn": "कॉलम के अनुसार क्रमबद्ध करें",
|
|
283
|
+
"manage": "प्रबंधित करें",
|
|
284
|
+
"consents": "सहमतियां",
|
|
285
|
+
"consentCount_one": "{{count}} सहमति",
|
|
286
|
+
"consentCount_other": "{{count}} सहमतियां",
|
|
287
|
+
"purposes": "उद्देश्य",
|
|
288
|
+
"latestActivity": "हाल की गतिविधि",
|
|
289
|
+
"activeWithCount": "{{count}} सक्रिय",
|
|
290
|
+
"withdrawnWithCount": "{{count}} वापस लिया गया",
|
|
291
|
+
"expiredWithCount": "{{count}} समाप्त",
|
|
292
|
+
"declinedWithCount": "{{count}} अस्वीकृत",
|
|
293
|
+
"productsAndConsentsSummary": "{{products}} उत्पाद, {{consents}} सहमतियां"
|
|
280
294
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "ಲಗತ್ತನ್ನು ತೆಗೆದುಹಾಕಿ",
|
|
277
277
|
"document": "ಡಾಕ್ಯುಮೆಂಟ್",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
|
|
279
|
-
"sortByColumn": "ಕಾಲಮ್ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ"
|
|
279
|
+
"sortByColumn": "ಕಾಲಮ್ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "منسلکٕ ہٹاوِو",
|
|
277
277
|
"document": "دستاویز",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ڈاونلوڈ کرِو",
|
|
279
|
-
"sortByColumn": "کالم مطابق ترتیب"
|
|
279
|
+
"sortByColumn": "کالم مطابق ترتیب",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "संलग्नक हटाउ",
|
|
277
277
|
"document": "दस्तावेज",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलोड करू",
|
|
279
|
-
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करू"
|
|
279
|
+
"sortByColumn": "कॉलम अनुसार क्रमबद्ध करू",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "അറ്റാച്ച്മെന്റ് നീക്കം ചെയ്യുക",
|
|
277
277
|
"document": "രേഖ",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ഡൗൺലോഡ് ചെയ്യുക",
|
|
279
|
-
"sortByColumn": "കോളം അനുസരിച്ച് അടുക്കുക"
|
|
279
|
+
"sortByColumn": "കോളം അനുസരിച്ച് അടുക്കുക",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "ꯑꯦꯇꯦꯆꯃꯦꯟꯇ ꯂꯧꯊꯣꯛꯄ",
|
|
277
277
|
"document": "ꯗꯣꯀꯨꯃꯦꯟꯇ",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ꯗꯥꯎꯅꯂꯣꯗ ꯇꯧꯕ",
|
|
279
|
-
"sortByColumn": "ꯀꯣꯂꯝ ꯅ ꯁꯣꯔꯠ ꯇꯧꯕ"
|
|
279
|
+
"sortByColumn": "ꯀꯣꯂꯝ ꯅ ꯁꯣꯔꯠ ꯇꯧꯕ",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "संलग्नक काढा",
|
|
277
277
|
"document": "दस्तऐवज",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलोड करा",
|
|
279
|
-
"sortByColumn": "स्तंभानुसार क्रमवारी लावा"
|
|
279
|
+
"sortByColumn": "स्तंभानुसार क्रमवारी लावा",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "संलग्न हटाउनुहोस्",
|
|
277
277
|
"document": "कागजात",
|
|
278
278
|
"downloadAttachment": "{{fileName}} डाउनलोड गर्नुहोस्",
|
|
279
|
-
"sortByColumn": "स्तम्भ अनुसार क्रमबद्ध गर्नुहोस्"
|
|
279
|
+
"sortByColumn": "स्तम्भ अनुसार क्रमबद्ध गर्नुहोस्",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|
|
@@ -276,5 +276,16 @@
|
|
|
276
276
|
"removeAttachment": "ସଂଲଗ୍ନ ହଟାନ୍ତୁ",
|
|
277
277
|
"document": "ଦଲିଲ",
|
|
278
278
|
"downloadAttachment": "{{fileName}} ଡାଉନଲୋଡ୍ କରନ୍ତୁ",
|
|
279
|
-
"sortByColumn": "ସ୍ତମ୍ଭ ଅନୁସାରେ ସଜାନ୍ତୁ"
|
|
279
|
+
"sortByColumn": "ସ୍ତମ୍ଭ ଅନୁସାରେ ସଜାନ୍ତୁ",
|
|
280
|
+
"manage": "Manage",
|
|
281
|
+
"consents": "Consents",
|
|
282
|
+
"consentCount_one": "{{count}} consent",
|
|
283
|
+
"consentCount_other": "{{count}} consents",
|
|
284
|
+
"purposes": "Purposes",
|
|
285
|
+
"latestActivity": "Latest activity",
|
|
286
|
+
"activeWithCount": "{{count}} active",
|
|
287
|
+
"withdrawnWithCount": "{{count}} withdrawn",
|
|
288
|
+
"expiredWithCount": "{{count}} expired",
|
|
289
|
+
"declinedWithCount": "{{count}} declined",
|
|
290
|
+
"productsAndConsentsSummary": "{{products}} products, {{consents}} consents"
|
|
280
291
|
}
|