@redacto.io/consent-sdk-react-native 5.0.0-beta.1 → 5.0.0-beta.11
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/README.md +75 -0
- package/dist/chunk-B2TXWC2C.mjs +60 -0
- package/dist/index.d.mts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +239 -190
- package/dist/index.mjs +196 -191
- package/dist/privacy-center.d.mts +147 -63
- package/dist/privacy-center.d.ts +147 -63
- package/dist/privacy-center.js +1614 -713
- package/dist/privacy-center.mjs +1551 -687
- package/package.json +10 -9
- package/LICENSE +0 -176
- package/dist/chunk-Y6FXYEAI.mjs +0 -10
package/dist/privacy-center.mjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
SANDBOX_TOKEN_HEADER,
|
|
3
|
+
__require,
|
|
4
|
+
languageOptions
|
|
5
|
+
} from "./chunk-B2TXWC2C.mjs";
|
|
4
6
|
|
|
5
7
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
6
|
-
import { useEffect as
|
|
8
|
+
import { useEffect as useEffect21 } from "react";
|
|
7
9
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
8
10
|
import { I18nextProvider } from "react-i18next";
|
|
9
|
-
import { View as
|
|
11
|
+
import { View as View52, StyleSheet as StyleSheet55, StatusBar as StatusBar2, Platform as Platform8 } from "react-native";
|
|
10
12
|
|
|
11
13
|
// src/RedactoPrivacyCenter/lib/i18n.ts
|
|
12
14
|
import i18n from "i18next";
|
|
@@ -423,7 +425,14 @@ var translation_default = {
|
|
|
423
425
|
submittingAs: "Submitting as {{email}}",
|
|
424
426
|
tapToChooseFile: "Tap to choose a file",
|
|
425
427
|
view: "View",
|
|
426
|
-
whatDoYouNeed: "What do you need?"
|
|
428
|
+
whatDoYouNeed: "What do you need?",
|
|
429
|
+
sessionExpiredTitle: "Your session has expired",
|
|
430
|
+
sessionExpiredDescription: "Please sign in again to continue.",
|
|
431
|
+
chooseYourProfile: "Choose your profile",
|
|
432
|
+
loginIdentifierLinkedToMultipleProfiles: "The login identifier is linked to more than one profile. Choose the one you want to view.",
|
|
433
|
+
userIdLabel: "User ID: {{id}}",
|
|
434
|
+
signingInEllipsis: "Signing in\u2026",
|
|
435
|
+
switchProfile: "Switch profile"
|
|
427
436
|
};
|
|
428
437
|
|
|
429
438
|
// src/RedactoPrivacyCenter/locales/as/translation.json
|
|
@@ -837,7 +846,14 @@ var translation_default2 = {
|
|
|
837
846
|
submittingAs: "{{email}} \u09B9\u09BF\u099A\u09BE\u09AA\u09C7 \u09A6\u09BE\u0996\u09BF\u09B2 \u0995\u09F0\u09BF \u0986\u099B\u09C7",
|
|
838
847
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09BF\u09AC\u09B2\u09C8 \u099F\u09BF\u09AA\u0995",
|
|
839
848
|
view: "\u099A\u09BE\u0993\u0995",
|
|
840
|
-
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?"
|
|
849
|
+
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?",
|
|
850
|
+
sessionExpiredTitle: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u099B\u09C7\u099A\u09A8 \u09B6\u09C7\u09B7 \u09B9\u09C8\u099B\u09C7",
|
|
851
|
+
sessionExpiredDescription: "\u0985\u09AC\u09CD\u09AF\u09BE\u09B9\u09A4 \u09F0\u09BE\u0996\u09BF\u09AC\u09B2\u09C8 \u0985\u09A8\u09C1\u0997\u09CD\u09F0\u09B9 \u0995\u09F0\u09BF \u09AA\u09C1\u09A8\u09F0 \u099B\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09F0\u0995\u0964",
|
|
852
|
+
chooseYourProfile: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09A8\u09BF \u0995\u09F0\u0995",
|
|
853
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u098F\u0995\u09BE\u09A7\u09BF\u0995 \u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2\u09F0 \u09B8\u09C8\u09A4\u09C7 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4\u0964 \u0986\u09AA\u09C1\u09A8\u09BF \u099A\u09BE\u09AC \u09AC\u09BF\u099A\u09F0\u09BE\u099F\u09CB \u09AC\u09BE\u099B\u09A8\u09BF \u0995\u09F0\u0995\u0964",
|
|
854
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09F1\u09B9\u09BE\u09F0\u0995\u09BE\u09F0\u09C0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
855
|
+
signingInEllipsis: "\u099B\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u09C8 \u0986\u099B\u09C7\u2026",
|
|
856
|
+
switchProfile: "\u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09B8\u09B2\u09A8\u09BF \u0995\u09F0\u0995"
|
|
841
857
|
};
|
|
842
858
|
|
|
843
859
|
// src/RedactoPrivacyCenter/locales/bn/translation.json
|
|
@@ -1251,7 +1267,14 @@ var translation_default3 = {
|
|
|
1251
1267
|
submittingAs: "{{email}} \u09B9\u09BF\u09B8\u09BE\u09AC\u09C7 \u099C\u09AE\u09BE \u09A6\u09C7\u0993\u09AF\u09BC\u09BE \u09B9\u099A\u09CD\u099B\u09C7",
|
|
1252
1268
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A4\u09C7 \u099F\u09CD\u09AF\u09BE\u09AA \u0995\u09B0\u09C1\u09A8",
|
|
1253
1269
|
view: "\u09A6\u09C7\u0996\u09C1\u09A8",
|
|
1254
|
-
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?"
|
|
1270
|
+
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?",
|
|
1271
|
+
sessionExpiredTitle: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09B8\u09C7\u09B6\u09A8 \u09AE\u09C7\u09AF\u09BC\u09BE\u09A6 \u09B6\u09C7\u09B7 \u09B9\u09AF\u09BC\u09C7 \u0997\u09C7\u099B\u09C7",
|
|
1272
|
+
sessionExpiredDescription: "\u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09C7\u09A4\u09C7 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u0986\u09AC\u09BE\u09B0 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
1273
|
+
chooseYourProfile: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A8",
|
|
1274
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u098F\u0995\u09BE\u09A7\u09BF\u0995 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09C1\u0995\u09CD\u09A4\u0964 \u0986\u09AA\u09A8\u09BF \u09AF\u09C7\u099F\u09BF \u09A6\u09C7\u0996\u09A4\u09C7 \u099A\u09BE\u09A8 \u09B8\u09C7\u099F\u09BF \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A8\u0964",
|
|
1275
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
1276
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u099A\u09CD\u099B\u09C7\u2026",
|
|
1277
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8 \u0995\u09B0\u09C1\u09A8"
|
|
1255
1278
|
};
|
|
1256
1279
|
|
|
1257
1280
|
// src/RedactoPrivacyCenter/locales/brx/translation.json
|
|
@@ -1665,7 +1688,14 @@ var translation_default4 = {
|
|
|
1665
1688
|
submittingAs: "{{email}} \u092E\u0939\u0930\u0948 \u0917\u0925\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B",
|
|
1666
1689
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916\u0928\u094B \u091F\u0947\u092C \u0916\u093E\u0932\u093E\u092E",
|
|
1667
1690
|
view: "\u0928\u093E\u092F",
|
|
1668
|
-
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?"
|
|
1691
|
+
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?",
|
|
1692
|
+
sessionExpiredTitle: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u0938\u0947\u0938\u0928 \u091C\u094B\u092C\u092C\u093E\u092F",
|
|
1693
|
+
sessionExpiredDescription: "\u0938\u093E\u0932\u093E\u092F\u0928\u094B \u0925\u093E\u0916\u093E\u092F \u0905\u0928\u0928\u093E\u0928\u0948 \u092B\u093F\u0928 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0916\u093E\u0932\u093E\u092E\u0964",
|
|
1694
|
+
chooseYourProfile: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u092A\u094D\u0930\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916",
|
|
1695
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u092E\u094B\u0928\u0938\u0947\u0928\u093F\u0916\u094D\u0930\u0941\u0907 \u092C\u093E\u0902\u0938\u093F\u0928 \u092A\u094D\u0930\u092B\u093E\u0907\u0932\u091C\u094B\u0902 \u0928\u093E\u0902\u091C\u093E\u092C \u0926\u0902\u0964 \u0928\u094B\u0902\u0925\u093E\u0919\u093E \u0928\u093E\u092F\u0928\u094B \u0932\u0941\u092C\u0948\u092F\u094B\u092C\u094D\u0932\u093E \u092C\u0947\u0916\u094C \u0938\u093E\u092F\u0916\u0964",
|
|
1696
|
+
userIdLabel: "\u092F\u0942\u091C\u0930 \u0906\u0908\u0921\u0940: {{id}}",
|
|
1697
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B \u0926\u0902\u2026",
|
|
1698
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0938\u094B\u0932\u093E\u092F"
|
|
1669
1699
|
};
|
|
1670
1700
|
|
|
1671
1701
|
// src/RedactoPrivacyCenter/locales/doi/translation.json
|
|
@@ -2079,7 +2109,14 @@ var translation_default5 = {
|
|
|
2079
2109
|
submittingAs: "{{email}} \u0926\u0947 \u0930\u0942\u092A \u091A \u091C\u092E\u093E\u0902 \u0915\u0930\u0926\u0947",
|
|
2080
2110
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u091F\u0948\u092A \u0915\u0930\u094B",
|
|
2081
2111
|
view: "\u0926\u093F\u0915\u094D\u0916\u094B",
|
|
2082
|
-
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?"
|
|
2112
|
+
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?",
|
|
2113
|
+
sessionExpiredTitle: "\u0924\u0941\u0902\u0926\u093E \u0938\u0924\u094D\u0930 \u0916\u0924\u092E \u0939\u094B\u0908 \u0917\u0947\u0906 \u0910",
|
|
2114
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u0915\u094D\u0916\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u0915\u0943\u092A\u093E \u0915\u0930\u093F\u092F\u0948 \u092B\u093F\u0930\u0940 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u094B\u0964",
|
|
2115
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u094B",
|
|
2116
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u0907\u0915 \u0915\u094B\u0932\u093E \u092E\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0947\u0902 \u0915\u0928\u094D\u0928\u0948 \u091C\u0941\u0921\u093C\u094D\u092F\u093E \u0926\u093E \u0910\u0964 \u091C\u0947\u0939\u094D\u0921\u093C\u0940 \u0924\u0941\u0938\u0947\u0902 \u0926\u093F\u0915\u094D\u0916\u0928\u0940 \u0910 \u0913\u0939\u094D \u091A\u0941\u0928\u094B\u0964",
|
|
2117
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
2118
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B\u0906 \u0915\u0930\u0926\u093E \u0910\u2026",
|
|
2119
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094B"
|
|
2083
2120
|
};
|
|
2084
2121
|
|
|
2085
2122
|
// src/RedactoPrivacyCenter/locales/gom/translation.json
|
|
@@ -2493,7 +2530,14 @@ var translation_default6 = {
|
|
|
2493
2530
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0942\u0923 \u0938\u093E\u0926\u0930 \u0915\u0930\u0924\u093E",
|
|
2494
2531
|
tapToChooseFile: "\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u092A\u093E\u0915 \u091F\u0945\u092A \u0915\u0930\u093E\u0924",
|
|
2495
2532
|
view: "\u092A\u0933\u092F\u093E\u0924",
|
|
2496
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?"
|
|
2533
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?",
|
|
2534
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947\u0902 \u0938\u0924\u094D\u0930 \u0938\u094B\u0902\u092A\u0932\u093E\u0902",
|
|
2535
|
+
sessionExpiredDescription: "\u092B\u0941\u0921\u0947\u0902 \u0935\u091A\u092A\u093E\u0915 \u0909\u092A\u0915\u093E\u0930 \u0915\u0930\u0942\u0928 \u092A\u0930\u0924\u0942\u0928 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u093E\u0924.",
|
|
2536
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0947\u0902 \u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u093E\u0924",
|
|
2537
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u092A\u0930\u0938 \u091A\u0921 \u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932\u093E\u0902\u0915 \u091C\u094B\u0921\u0932\u093E. \u0924\u0941\u092E\u0915\u093E\u0902 \u091C\u0947\u0902 \u092A\u0933\u094B\u0935\u092A\u093E\u0915 \u091C\u093E\u092F \u0924\u0947\u0902 \u0928\u093F\u0935\u0921\u093E\u0924.",
|
|
2538
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u092A\u0940 \u0906\u092F\u0921\u0940: {{id}}",
|
|
2539
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u0935\u0928 \u0906\u0938\u093E\u2026",
|
|
2540
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u092C\u0926\u0932\u093E"
|
|
2497
2541
|
};
|
|
2498
2542
|
|
|
2499
2543
|
// src/RedactoPrivacyCenter/locales/gu/translation.json
|
|
@@ -2907,7 +2951,14 @@ var translation_default7 = {
|
|
|
2907
2951
|
submittingAs: "{{email}} \u0AA4\u0AB0\u0AC0\u0A95\u0AC7 \u0AB8\u0AAC\u0AAE\u0ABF\u0A9F \u0A95\u0AB0\u0AC0 \u0AB0\u0AB9\u0ACD\u0AAF\u0ABE \u0A9B\u0ACB",
|
|
2908
2952
|
tapToChooseFile: "\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0AB5\u0ABE \u0A9F\u0AC5\u0AAA \u0A95\u0AB0\u0ACB",
|
|
2909
2953
|
view: "\u0A9C\u0AC1\u0A93",
|
|
2910
|
-
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?"
|
|
2954
|
+
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?",
|
|
2955
|
+
sessionExpiredTitle: "\u0AA4\u0AAE\u0ABE\u0AB0\u0AC1\u0A82 \u0AB8\u0AA4\u0ACD\u0AB0 \u0AB8\u0AAE\u0ABE\u0AAA\u0ACD\u0AA4 \u0AA5\u0A88 \u0A97\u0AAF\u0AC1\u0A82 \u0A9B\u0AC7",
|
|
2956
|
+
sessionExpiredDescription: "\u0A9A\u0ABE\u0AB2\u0AC1 \u0AB0\u0ABE\u0A96\u0AB5\u0ABE \u0AAE\u0ABE\u0A9F\u0AC7 \u0A95\u0AC3\u0AAA\u0ABE \u0A95\u0AB0\u0AC0\u0AA8\u0AC7 \u0AAB\u0AB0\u0AC0\u0AA5\u0AC0 \u0AB8\u0ABE\u0A87\u0AA8 \u0A87\u0AA8 \u0A95\u0AB0\u0ACB.",
|
|
2957
|
+
chooseYourProfile: "\u0AA4\u0AAE\u0ABE\u0AB0\u0AC0 \u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0ACB",
|
|
2958
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0AB2\u0ACB\u0A97\u0ABF\u0AA8 \u0A86\u0A88\u0AA1\u0AC0 \u0A8F\u0A95 \u0A95\u0AB0\u0AA4\u0ABE\u0A82 \u0AB5\u0AA7\u0AC1 \u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AB8\u0ABE\u0AA5\u0AC7 \u0A9C\u0ACB\u0AA1\u0ABE\u0AAF\u0AC7\u0AB2 \u0A9B\u0AC7. \u0AA4\u0AAE\u0AC7 \u0A9C\u0AC7 \u0A9C\u0ACB\u0AB5\u0ABE \u0AAE\u0ABE\u0A82\u0A97\u0ACB \u0A9B\u0ACB \u0AA4\u0AC7 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0ACB.",
|
|
2959
|
+
userIdLabel: "\u0AB5\u0AAA\u0AB0\u0ABE\u0AB6\u0A95\u0AB0\u0ACD\u0AA4\u0ABE \u0A86\u0A88\u0AA1\u0AC0: {{id}}",
|
|
2960
|
+
signingInEllipsis: "\u0AB8\u0ABE\u0A87\u0AA8 \u0A87\u0AA8 \u0AA5\u0A88 \u0AB0\u0AB9\u0ACD\u0AAF\u0AC1\u0A82 \u0A9B\u0AC7\u2026",
|
|
2961
|
+
switchProfile: "\u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAC\u0AA6\u0AB2\u0ACB"
|
|
2911
2962
|
};
|
|
2912
2963
|
|
|
2913
2964
|
// src/RedactoPrivacyCenter/locales/hi/translation.json
|
|
@@ -3321,7 +3372,14 @@ var translation_default8 = {
|
|
|
3321
3372
|
submittingAs: "{{email}} \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0938\u092C\u092E\u093F\u091F \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
|
3322
3373
|
tapToChooseFile: "\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091F\u0948\u092A \u0915\u0930\u0947\u0902",
|
|
3323
3374
|
view: "\u0926\u0947\u0916\u0947\u0902",
|
|
3324
|
-
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?"
|
|
3375
|
+
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?",
|
|
3376
|
+
sessionExpiredTitle: "\u0906\u092A\u0915\u093E \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B \u0917\u092F\u093E \u0939\u0948",
|
|
3377
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0915\u0943\u092A\u092F\u093E \u092B\u093F\u0930 \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902\u0964",
|
|
3378
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0947\u0902",
|
|
3379
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u090F\u0915 \u0938\u0947 \u0905\u0927\u093F\u0915 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u0947 \u091C\u0941\u0921\u093C\u093E \u0939\u0948\u0964 \u091C\u093F\u0938\u0947 \u0906\u092A \u0926\u0947\u0916\u0928\u093E \u091A\u093E\u0939\u0924\u0947 \u0939\u0948\u0902 \u0909\u0938\u0947 \u091A\u0941\u0928\u0947\u0902\u0964",
|
|
3380
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
3381
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B \u0930\u0939\u093E \u0939\u0948\u2026",
|
|
3382
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u092C\u0926\u0932\u0947\u0902"
|
|
3325
3383
|
};
|
|
3326
3384
|
|
|
3327
3385
|
// src/RedactoPrivacyCenter/locales/kn/translation.json
|
|
@@ -3735,7 +3793,14 @@ var translation_default9 = {
|
|
|
3735
3793
|
submittingAs: "{{email}} \u0C86\u0C97\u0CBF \u0CB8\u0CB2\u0CCD\u0CB2\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6",
|
|
3736
3794
|
tapToChooseFile: "\u0CAB\u0CC8\u0CB2\u0CCD \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CB2\u0CC1 \u0C9F\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD \u0CAE\u0CBE\u0CA1\u0CBF",
|
|
3737
3795
|
view: "\u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CBF",
|
|
3738
|
-
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?"
|
|
3796
|
+
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?",
|
|
3797
|
+
sessionExpiredTitle: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CB8\u0CC6\u0CB7\u0CA8\u0CCD \u0C85\u0CB5\u0CA7\u0CBF \u0CAE\u0CC1\u0C97\u0CBF\u0CA6\u0CBF\u0CA6\u0CC6",
|
|
3798
|
+
sessionExpiredDescription: "\u0CAE\u0CC1\u0C82\u0CA6\u0CC1\u0CB5\u0CB0\u0CBF\u0CB8\u0CB2\u0CC1 \u0CA6\u0CAF\u0CB5\u0CBF\u0C9F\u0CCD\u0C9F\u0CC1 \u0CAE\u0CA4\u0CCD\u0CA4\u0CC6 \u0CB8\u0CC8\u0CA8\u0CCD \u0C87\u0CA8\u0CCD \u0CAE\u0CBE\u0CA1\u0CBF.",
|
|
3799
|
+
chooseYourProfile: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CBF",
|
|
3800
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0CB2\u0CBE\u0C97\u0CBF\u0CA8\u0CCD \u0C90\u0CA1\u0CBF \u0C92\u0C82\u0CA6\u0C95\u0CCD\u0C95\u0CBF\u0C82\u0CA4 \u0CB9\u0CC6\u0C9A\u0CCD\u0C9A\u0CC1 \u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD\u200C\u0C97\u0CB3\u0CBF\u0C97\u0CC6 \u0CB2\u0CBF\u0C82\u0C95\u0CCD \u0C86\u0C97\u0CBF\u0CA6\u0CC6. \u0CA8\u0CC0\u0CB5\u0CC1 \u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CC1 \u0CAC\u0CAF\u0CB8\u0CC1\u0CB5\u0CC1\u0CA6\u0CA8\u0CCD\u0CA8\u0CC1 \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CBF.",
|
|
3801
|
+
userIdLabel: "\u0CAC\u0CB3\u0C95\u0CC6\u0CA6\u0CBE\u0CB0 \u0C90\u0CA1\u0CBF: {{id}}",
|
|
3802
|
+
signingInEllipsis: "\u0CB8\u0CC8\u0CA8\u0CCD \u0C87\u0CA8\u0CCD \u0C86\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6\u2026",
|
|
3803
|
+
switchProfile: "\u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0CAC\u0CA6\u0CB2\u0CBE\u0CAF\u0CBF\u0CB8\u0CBF"
|
|
3739
3804
|
};
|
|
3740
3805
|
|
|
3741
3806
|
// src/RedactoPrivacyCenter/locales/ks/translation.json
|
|
@@ -4149,7 +4214,14 @@ var translation_default10 = {
|
|
|
4149
4214
|
submittingAs: "{{email}} \u067E\u0620\u0658\u0679\u06BE \u062C\u0645\u0639 \u06A9\u0631\u0627\u0646",
|
|
4150
4215
|
tapToChooseFile: "\u0641\u0627\u06CC\u0644 \u0698\u0627\u0631\u0646\u06C1 \u062E\u0672\u0637\u0631\u0655 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u0648",
|
|
4151
4216
|
view: "\u0648\u064F\u0686\u06BE\u0650\u0648",
|
|
4152
|
-
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F"
|
|
4217
|
+
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F",
|
|
4218
|
+
sessionExpiredTitle: "\u062A\u064F\u06C1\u0646\u065B\u062F \u0633\u06CC\u0634\u064E\u0646 \u062E\u062A\u0645 \u06AF\u06C4\u0645\u064F\u062A",
|
|
4219
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u0646\u06C1\u0655 \u062E\u0672\u0637\u0631\u0655 \u0645\u06C1\u0631\u0628\u0627\u0646\u06CC \u06A9\u0631\u0650\u062A\u06BE \u062F\u0648\u0628\u0627\u0631\u0655 \u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06A9\u0631\u06CC\u0648\u06D4",
|
|
4220
|
+
chooseYourProfile: "\u067E\u0646\u0646\u06C1\u0655 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0698\u0627\u0631\u0655\u0648",
|
|
4221
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0650\u0646 \u0622\u0626\u06CC \u0688\u06CC \u0686\u06BE\u064F \u0627\u06A9\u06C1 \u06A9\u06BE\u06C4\u062A\u06C1 \u0632\u06CC\u0627\u062F\u0655 \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0646 \u0633\u065F\u062A\u0620 \u062C\u0648\u0691\u0646\u06C1 \u0622\u0645\u064F\u062A\u06D4 \u06CC\u064F\u0633 \u062A\u0648\u06C1\u06C1\u0650 \u0648\u064F\u0686\u06BE\u064F\u0646 \u0686\u06BE\u0650\u0648 \u06CC\u0698\u06BE\u0627\u0646 \u0633\u064F \u0698\u0627\u0631\u0655\u0648\u06D4",
|
|
4222
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
4223
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06AF\u0698\u06BE\u0627\u0646 \u0686\u06BE\u064F\u2026",
|
|
4224
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0628\u062F\u0644\u0627\u0648"
|
|
4153
4225
|
};
|
|
4154
4226
|
|
|
4155
4227
|
// src/RedactoPrivacyCenter/locales/mai/translation.json
|
|
@@ -4563,7 +4635,14 @@ var translation_default11 = {
|
|
|
4563
4635
|
submittingAs: "{{email}} \u0930\u0942\u092A\u092E\u0947 \u091C\u092E\u093E \u0915\u093D \u0930\u0939\u0932 \u091B\u0940",
|
|
4564
4636
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u092C\u093E\u0915 \u0932\u0947\u0932 \u091F\u0948\u092A \u0915\u0930\u0942",
|
|
4565
4637
|
view: "\u0926\u0947\u0916\u0942",
|
|
4566
|
-
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?"
|
|
4638
|
+
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?",
|
|
4639
|
+
sessionExpiredTitle: "\u0905\u0939\u093E\u0901\u0915 \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u093D \u0917\u0947\u0932 \u0905\u091B\u093F",
|
|
4640
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u093E\u0916\u092C\u093E\u0915 \u0932\u0947\u0932 \u0915\u0943\u092A\u092F\u093E \u092B\u0947\u0930 \u0938\u0901 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942\u0964",
|
|
4641
|
+
chooseYourProfile: "\u0905\u092A\u0928 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0942",
|
|
4642
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0907\u0921\u0940 \u090F\u0915\u093E\u0927\u093F\u0915 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0938\u0901 \u091C\u0941\u0921\u093C\u0932 \u0905\u091B\u093F\u0964 \u091C\u0947 \u0905\u0939\u093E\u0901 \u0926\u0947\u0916\u092F \u091A\u093E\u0939\u0948\u0924 \u091B\u0940 \u0913\u0915\u0930\u093E \u091A\u0941\u0928\u0942\u0964",
|
|
4643
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0907\u0921\u0940: {{id}}",
|
|
4644
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u092D' \u0930\u0939\u0932 \u0905\u091B\u093F\u2026",
|
|
4645
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u0942"
|
|
4567
4646
|
};
|
|
4568
4647
|
|
|
4569
4648
|
// src/RedactoPrivacyCenter/locales/ml/translation.json
|
|
@@ -4977,7 +5056,14 @@ var translation_default12 = {
|
|
|
4977
5056
|
submittingAs: "{{email}} \u0D06\u0D2F\u0D3F \u0D38\u0D2E\u0D7C\u0D2A\u0D4D\u0D2A\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41",
|
|
4978
5057
|
tapToChooseFile: "\u0D2B\u0D2F\u0D7D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D3E\u0D7B \u0D1F\u0D3E\u0D2A\u0D4D\u0D2A\u0D4D \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D15",
|
|
4979
5058
|
view: "\u0D15\u0D3E\u0D23\u0D41\u0D15",
|
|
4980
|
-
whatDoYouNeed: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E\u0D15\u0D4D\u0D15\u0D4D \u0D0E\u0D28\u0D4D\u0D24\u0D3E\u0D23\u0D4D \u0D35\u0D47\u0D23\u0D4D\u0D1F\u0D24\u0D4D?"
|
|
5059
|
+
whatDoYouNeed: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E\u0D15\u0D4D\u0D15\u0D4D \u0D0E\u0D28\u0D4D\u0D24\u0D3E\u0D23\u0D4D \u0D35\u0D47\u0D23\u0D4D\u0D1F\u0D24\u0D4D?",
|
|
5060
|
+
sessionExpiredTitle: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D38\u0D46\u0D37\u0D7B \u0D15\u0D3E\u0D32\u0D39\u0D30\u0D23\u0D2A\u0D4D\u0D2A\u0D46\u0D1F\u0D4D\u0D1F\u0D41",
|
|
5061
|
+
sessionExpiredDescription: "\u0D24\u0D41\u0D1F\u0D30\u0D3E\u0D7B \u0D26\u0D2F\u0D35\u0D3E\u0D2F\u0D3F \u0D35\u0D40\u0D23\u0D4D\u0D1F\u0D41\u0D02 \u0D38\u0D48\u0D7B \u0D07\u0D7B \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D15.",
|
|
5062
|
+
chooseYourProfile: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D41\u0D15",
|
|
5063
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0D32\u0D4B\u0D17\u0D3F\u0D7B \u0D10\u0D21\u0D3F \u0D12\u0D28\u0D4D\u0D28\u0D3F\u0D32\u0D27\u0D3F\u0D15\u0D02 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D32\u0D41\u0D15\u0D33\u0D41\u0D2E\u0D3E\u0D2F\u0D3F \u0D2C\u0D28\u0D4D\u0D27\u0D3F\u0D2A\u0D4D\u0D2A\u0D3F\u0D1A\u0D4D\u0D1A\u0D3F\u0D30\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41. \u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E \u0D15\u0D3E\u0D23\u0D3E\u0D7B \u0D06\u0D17\u0D4D\u0D30\u0D39\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D24\u0D4D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D41\u0D15.",
|
|
5064
|
+
userIdLabel: "\u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D43 \u0D10\u0D21\u0D3F: {{id}}",
|
|
5065
|
+
signingInEllipsis: "\u0D38\u0D48\u0D7B \u0D07\u0D7B \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D28\u0D4D\u0D28\u0D41\u2026",
|
|
5066
|
+
switchProfile: "\u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D2E\u0D3E\u0D31\u0D4D\u0D31\u0D41\u0D15"
|
|
4981
5067
|
};
|
|
4982
5068
|
|
|
4983
5069
|
// src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json
|
|
@@ -5391,7 +5477,14 @@ var translation_default13 = {
|
|
|
5391
5477
|
submittingAs: "{{email}} \uABD1\uABE3\uABCF\uABC5 \uABCA\uABE5\uABD2\uABE0\uABC2\uABE4",
|
|
5392
5478
|
tapToChooseFile: "\uABD0\uABE5\uABCF\uABDC \uABC8\uABDF\uABC5\uABD5 \uABC7\uABE6\uABDE \uABC7\uABE7",
|
|
5393
5479
|
view: "\uABCC\uABE6\uABE1\uABCE",
|
|
5394
|
-
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?"
|
|
5480
|
+
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?",
|
|
5481
|
+
sessionExpiredTitle: "\uABD1\uABD7\uABE3\uABDD\uABD2\uABE4 \uABC1\uABE6\uABC1\uABDF \uABC2\uABE3\uABCF\uABD4\uABE6",
|
|
5482
|
+
sessionExpiredDescription: "\uABC3\uABC8\uABE5 \uABC6\uABE0\uABCA\uABD4\uABDB\uABC5\uABD5 \uABC6\uABE5\uABC5\uABD5\uABE4\uABD7\uABE8\uABC5 \uABD1\uABC3\uABE8\uABDB \uABCD\uABDF\uABC5 \uABC1\uABE5\uABCF\uABDF \uABCF\uABDF \uABC7\uABE7\uABD5\uABE4\uABCC\uABE8\uABEB",
|
|
5483
|
+
chooseYourProfile: "\u09A8\u09B9\u09BE\u0995\u09CD\u0995\u09C0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u0996\u09A8\u09AC\u09BF\u09AF\u09BC\u09C1",
|
|
5484
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u0985\u09B8\u09BF \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u0985\u09AE\u09A6\u0997\u09C0 \u09B9\u09C7\u09A8\u09CD\u09A8\u09BE \u09B2\u09CB\u0987\u09A8\u09A8\u09AC\u09BE \u09B2\u09C8\u0964 \u09A8\u09B9\u09BE\u0995\u09CD\u09A8\u09BE \u09AF\u09BC\u09C7\u0982\u09A8\u09BF\u0982\u09AC\u09BE \u0985\u09A6\u09C1 \u0996\u09A8\u09AC\u09BF\u09AF\u09BC\u09C1\u0964",
|
|
5485
|
+
userIdLabel: "\uABC3\uABE4\uABD1\uABE3\uABCF\uABD5 \uABD1\uABE5\uABCF\uABD7\uABE4: {{id}}",
|
|
5486
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09A4\u09CC\u09B0\u09BF\u2026",
|
|
5487
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09B9\u09CB\u0982\u09A6\u09CB\u0995-\u0989"
|
|
5395
5488
|
};
|
|
5396
5489
|
|
|
5397
5490
|
// src/RedactoPrivacyCenter/locales/mr/translation.json
|
|
@@ -5805,7 +5898,14 @@ var translation_default14 = {
|
|
|
5805
5898
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0923\u0942\u0928 \u0938\u092C\u092E\u093F\u091F \u0915\u0930\u0924 \u0906\u0939\u0947",
|
|
5806
5899
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u091F\u0945\u092A \u0915\u0930\u093E",
|
|
5807
5900
|
view: "\u092A\u0939\u093E",
|
|
5808
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?"
|
|
5901
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?",
|
|
5902
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947 \u0938\u0924\u094D\u0930 \u0938\u0902\u092A\u0932\u0947 \u0906\u0939\u0947",
|
|
5903
|
+
sessionExpiredDescription: "\u0938\u0941\u0930\u0942 \u0920\u0947\u0935\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u0915\u0943\u092A\u092F\u093E \u092A\u0941\u0928\u094D\u0939\u093E \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u093E.",
|
|
5904
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u093E",
|
|
5905
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u092A\u0947\u0915\u094D\u0937\u093E \u091C\u093E\u0938\u094D\u0924 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0936\u0940 \u091C\u094B\u0921\u0932\u0947\u0932\u093E \u0906\u0939\u0947. \u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u091C\u0940 \u092A\u093E\u0939\u093E\u092F\u091A\u0940 \u0906\u0939\u0947 \u0924\u0940 \u0928\u093F\u0935\u0921\u093E.",
|
|
5906
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u0915\u0930\u094D\u0924\u093E \u0906\u092F\u0921\u0940: {{id}}",
|
|
5907
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0924 \u0906\u0939\u0947\u2026",
|
|
5908
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u093E"
|
|
5809
5909
|
};
|
|
5810
5910
|
|
|
5811
5911
|
// src/RedactoPrivacyCenter/locales/ne/translation.json
|
|
@@ -6219,7 +6319,14 @@ var translation_default15 = {
|
|
|
6219
6319
|
submittingAs: "{{email}} \u0915\u094B \u0930\u0942\u092A\u092E\u093E \u092A\u0947\u0936 \u0917\u0930\u094D\u0926\u0948",
|
|
6220
6320
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928 \u091F\u094D\u092F\u093E\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6221
6321
|
view: "\u0939\u0947\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6222
|
-
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?"
|
|
6322
|
+
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?",
|
|
6323
|
+
sessionExpiredTitle: "\u0924\u092A\u093E\u0908\u0902\u0915\u094B \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u090F\u0915\u094B \u091B",
|
|
6324
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u093E\u0916\u094D\u0928 \u0915\u0943\u092A\u092F\u093E \u092B\u0947\u0930\u093F \u0938\u093E\u0907\u0928 \u0907\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D\u0964",
|
|
6325
|
+
chooseYourProfile: "\u0906\u092B\u094D\u0928\u094B \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6326
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0917\u0907\u0928 \u0906\u0908\u0921\u0940 \u090F\u0915\u092D\u0928\u094D\u0926\u093E \u092C\u0922\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0938\u0901\u0917 \u091C\u094B\u0921\u093F\u090F\u0915\u094B \u091B\u0964 \u0924\u092A\u093E\u0908\u0902\u0932\u0947 \u0939\u0947\u0930\u094D\u0928 \u091A\u093E\u0939\u0928\u0941\u092D\u090F\u0915\u094B \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D\u0964",
|
|
6327
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
6328
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u0941\u0901\u0926\u0948\u091B\u2026",
|
|
6329
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094D\u0928\u0941\u0939\u094B\u0938\u094D"
|
|
6223
6330
|
};
|
|
6224
6331
|
|
|
6225
6332
|
// src/RedactoPrivacyCenter/locales/or/translation.json
|
|
@@ -6633,7 +6740,14 @@ var translation_default16 = {
|
|
|
6633
6740
|
submittingAs: "{{email}} \u0B2D\u0B3E\u0B2C\u0B47 \u0B26\u0B3E\u0B16\u0B32 \u0B15\u0B30\u0B41\u0B1B\u0B28\u0B4D\u0B24\u0B3F",
|
|
6634
6741
|
tapToChooseFile: "\u0B2B\u0B3E\u0B07\u0B32 \u0B2C\u0B3E\u0B1B\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B1F\u0B4D\u0B5F\u0B3E\u0B2A \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41",
|
|
6635
6742
|
view: "\u0B26\u0B47\u0B16\u0B28\u0B4D\u0B24\u0B41",
|
|
6636
|
-
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?"
|
|
6743
|
+
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?",
|
|
6744
|
+
sessionExpiredTitle: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B38\u0B47\u0B38\u0B28\u0B4D \u0B38\u0B2E\u0B3E\u0B2A\u0B4D\u0B24 \u0B39\u0B4B\u0B07\u0B2F\u0B3E\u0B07\u0B1B\u0B3F",
|
|
6745
|
+
sessionExpiredDescription: "\u0B1C\u0B3E\u0B30\u0B3F \u0B30\u0B16\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B26\u0B5F\u0B3E\u0B15\u0B30\u0B3F \u0B2A\u0B41\u0B28\u0B30\u0B4D\u0B2C\u0B3E\u0B30 \u0B38\u0B3E\u0B07\u0B28\u0B4D \u0B07\u0B28\u0B4D \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41\u0964",
|
|
6746
|
+
chooseYourProfile: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B3E\u0B1B\u0B28\u0B4D\u0B24\u0B41",
|
|
6747
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0B32\u0B17\u0B07\u0B28\u0B4D \u0B06\u0B07\u0B21\u0B3F \u0B0F\u0B15\u0B3E\u0B27\u0B3F\u0B15 \u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B38\u0B39\u0B3F\u0B24 \u0B2F\u0B4B\u0B21\u0B3C\u0B3E\u0B2F\u0B3E\u0B07\u0B1B\u0B3F\u0964 \u0B06\u0B2A\u0B23 \u0B26\u0B47\u0B16\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B1A\u0B3E\u0B39\u0B41\u0B01\u0B25\u0B3F\u0B2C\u0B3E\u0B1F\u0B3F \u0B2C\u0B3E\u0B1B\u0B28\u0B4D\u0B24\u0B41\u0964",
|
|
6748
|
+
userIdLabel: "\u0B2C\u0B4D\u0B5F\u0B2C\u0B39\u0B3E\u0B30\u0B15\u0B3E\u0B30\u0B40 \u0B06\u0B07\u0B21\u0B3F: {{id}}",
|
|
6749
|
+
signingInEllipsis: "\u0B38\u0B3E\u0B07\u0B28\u0B4D \u0B07\u0B28\u0B4D \u0B39\u0B47\u0B09\u0B1B\u0B3F\u2026",
|
|
6750
|
+
switchProfile: "\u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B26\u0B33\u0B3E\u0B28\u0B4D\u0B24\u0B41"
|
|
6637
6751
|
};
|
|
6638
6752
|
|
|
6639
6753
|
// src/RedactoPrivacyCenter/locales/pa/translation.json
|
|
@@ -7047,7 +7161,14 @@ var translation_default17 = {
|
|
|
7047
7161
|
submittingAs: "{{email}} \u0A35\u0A1C\u0A4B\u0A02 \u0A38\u0A2C\u0A2E\u0A3F\u0A1F \u0A15\u0A30 \u0A30\u0A39\u0A47 \u0A39\u0A4B",
|
|
7048
7162
|
tapToChooseFile: "\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A28 \u0A32\u0A08 \u0A1F\u0A48\u0A2A \u0A15\u0A30\u0A4B",
|
|
7049
7163
|
view: "\u0A26\u0A47\u0A16\u0A4B",
|
|
7050
|
-
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?"
|
|
7164
|
+
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?",
|
|
7165
|
+
sessionExpiredTitle: "\u0A24\u0A41\u0A39\u0A3E\u0A21\u0A3E \u0A38\u0A48\u0A38\u0A3C\u0A28 \u0A38\u0A2E\u0A3E\u0A2A\u0A24 \u0A39\u0A4B \u0A17\u0A3F\u0A06 \u0A39\u0A48",
|
|
7166
|
+
sessionExpiredDescription: "\u0A1C\u0A3E\u0A30\u0A40 \u0A30\u0A71\u0A16\u0A23 \u0A32\u0A08 \u0A15\u0A3F\u0A30\u0A2A\u0A3E \u0A15\u0A30\u0A15\u0A47 \u0A26\u0A41\u0A2C\u0A3E\u0A30\u0A3E \u0A38\u0A3E\u0A08\u0A28 \u0A07\u0A28 \u0A15\u0A30\u0A4B\u0964",
|
|
7167
|
+
chooseYourProfile: "\u0A06\u0A2A\u0A23\u0A40 \u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A4B",
|
|
7168
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0A32\u0A4C\u0A17\u0A07\u0A28 \u0A06\u0A08\u0A21\u0A40 \u0A07\u0A71\u0A15 \u0A24\u0A4B\u0A02 \u0A35\u0A71\u0A27 \u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32\u0A3E\u0A02 \u0A28\u0A3E\u0A32 \u0A1C\u0A41\u0A5C\u0A3F\u0A06 \u0A39\u0A4B\u0A07\u0A06 \u0A39\u0A48\u0964 \u0A1C\u0A4B \u0A24\u0A41\u0A38\u0A40\u0A02 \u0A35\u0A47\u0A16\u0A23\u0A3E \u0A1A\u0A3E\u0A39\u0A41\u0A70\u0A26\u0A47 \u0A39\u0A4B \u0A09\u0A39 \u0A1A\u0A41\u0A23\u0A4B\u0964",
|
|
7169
|
+
userIdLabel: "\u0A09\u0A2A\u0A2F\u0A4B\u0A17\u0A15\u0A30\u0A24\u0A3E \u0A06\u0A08\u0A21\u0A40: {{id}}",
|
|
7170
|
+
signingInEllipsis: "\u0A38\u0A3E\u0A08\u0A28 \u0A07\u0A28 \u0A39\u0A4B \u0A30\u0A3F\u0A39\u0A3E \u0A39\u0A48\u2026",
|
|
7171
|
+
switchProfile: "\u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A2C\u0A26\u0A32\u0A4B"
|
|
7051
7172
|
};
|
|
7052
7173
|
|
|
7053
7174
|
// src/RedactoPrivacyCenter/locales/sa/translation.json
|
|
@@ -7461,7 +7582,14 @@ var translation_default18 = {
|
|
|
7461
7582
|
submittingAs: "{{email}} \u0907\u0924\u093F \u0938\u092E\u0930\u094D\u092A\u092F\u0928\u094D",
|
|
7462
7583
|
tapToChooseFile: "\u0938\u091E\u094D\u091A\u093F\u0915\u093E\u0902 \u091A\u0947\u0924\u0941\u0902 \u0938\u094D\u092A\u0943\u0936\u0924\u0941",
|
|
7463
7584
|
view: "\u092A\u0936\u094D\u092F",
|
|
7464
|
-
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?"
|
|
7585
|
+
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?",
|
|
7586
|
+
sessionExpiredTitle: "\u092D\u0935\u0924\u0903 \u0938\u0924\u094D\u0930\u0902 \u0938\u092E\u093E\u092A\u094D\u0924\u092E\u094D",
|
|
7587
|
+
sessionExpiredDescription: "\u0905\u0928\u0941\u0935\u0930\u094D\u0924\u0928\u093E\u0930\u094D\u0925\u0902 \u0915\u0943\u092A\u092F\u093E \u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u0935\u0947\u0936\u0902 \u0915\u0930\u094B\u0924\u0941\u0964",
|
|
7588
|
+
chooseYourProfile: "\u0938\u094D\u0935\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u091A\u093F\u0928\u094B\u0924\u0941",
|
|
7589
|
+
loginIdentifierLinkedToMultipleProfiles: "\u092A\u094D\u0930\u0935\u0947\u0936-\u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u0927\u093F\u0915\u0948\u0903 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0948\u0903 \u0938\u0939 \u0938\u092E\u094D\u092C\u0926\u094D\u0927\u0903 \u0905\u0938\u094D\u0924\u093F\u0964 \u092F\u0924\u094D \u0926\u094D\u0930\u0937\u094D\u091F\u0941\u092E\u094D \u0907\u091A\u094D\u091B\u0924\u093F \u0924\u0924\u094D \u091A\u093F\u0928\u094B\u0924\u0941\u0964",
|
|
7590
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0915\u094D\u0924\u0943-\u0906\u092F\u0921\u0940: {{id}}",
|
|
7591
|
+
signingInEllipsis: "\u092A\u094D\u0930\u0935\u0947\u0936\u0903 \u0915\u094D\u0930\u093F\u092F\u0924\u0947\u2026",
|
|
7592
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u092A\u0930\u093F\u0935\u0930\u094D\u0924\u092F\u0924\u0941"
|
|
7465
7593
|
};
|
|
7466
7594
|
|
|
7467
7595
|
// src/RedactoPrivacyCenter/locales/sat/translation.json
|
|
@@ -7875,7 +8003,14 @@ var translation_default19 = {
|
|
|
7875
8003
|
submittingAs: "{{email}} \u1C5E\u1C6E\u1C60\u1C5F\u1C5B\u1C6E \u1C61\u1C5A\u1C62\u1C5F \u1C6E\u1C6B\u1C5F",
|
|
7876
8004
|
tapToChooseFile: "\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C74\u1C6E\u1C6F \u1C62\u1C6E",
|
|
7877
8005
|
view: "\u1C67\u1C6E\u1C5E \u1C62\u1C6E",
|
|
7878
|
-
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?"
|
|
8006
|
+
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?",
|
|
8007
|
+
sessionExpiredTitle: "\u1C5F\u1C62\u1C5F\u1C5C \u1C65\u1C6E\u1C65\u1C5A\u1C71 \u1C62\u1C69\u1C6A\u1C5F\u1C79\u1C6B\u1C6E\u1C71\u1C5F",
|
|
8008
|
+
sessionExpiredDescription: "\u1C5E\u1C5F\u1C66\u1C5F \u1C6A\u1C5F\u1C5E\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C6B\u1C5F\u1C6D\u1C5F \u1C60\u1C5F\u1C5B\u1C6E \u1C6B\u1C73\u1C66\u1C72\u1C5F \u1C65\u1C5F\u1C6D\u1C71 \u1C64\u1C71 \u1C62\u1C6E\u1C7E",
|
|
8009
|
+
chooseYourProfile: "\u1C5F\u1C62\u1C5F\u1C5C \u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C62\u1C6E",
|
|
8010
|
+
loginIdentifierLinkedToMultipleProfiles: "\u1C5E\u1C5A\u1C5C\u1C64\u1C71 \u1C5F\u1C6D\u1C70\u1C64 \u1C6B\u1C5A \u1C62\u1C64\u1C6B \u1C60\u1C77\u1C5A\u1C71 \u1C70\u1C77\u1C6E\u1C68 \u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C65\u1C5F\u1C76 \u1C61\u1C69\u1C70\u1C5F\u1C79\u1C63 \u1C5F\u1C60\u1C5F\u1C71\u1C5F\u1C7E \u1C5F\u1C62 \u1C67\u1C6E\u1C5E \u1C65\u1C5F\u1C71\u1C5F\u1C62 \u1C5A\u1C71\u1C5F \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C62\u1C6E\u1C7E",
|
|
8011
|
+
userIdLabel: "\u1C75\u1C6E\u1C75\u1C77\u1C5F\u1C68\u1C64\u1C6D\u1C5F\u1C79 \u1C5F\u1C6D\u1C70\u1C64: {{id}}",
|
|
8012
|
+
signingInEllipsis: "\u1C65\u1C5F\u1C6D\u1C64\u1C71 \u1C64\u1C71 \u1C6E\u1C6B\u1C5F\u1C6D\u2026",
|
|
8013
|
+
switchProfile: "\u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5A\u1C6B\u1C5A\u1C5E \u1C62\u1C6E"
|
|
7879
8014
|
};
|
|
7880
8015
|
|
|
7881
8016
|
// src/RedactoPrivacyCenter/locales/sd/translation.json
|
|
@@ -8289,7 +8424,14 @@ var translation_default20 = {
|
|
|
8289
8424
|
submittingAs: "{{email}} \u0637\u0648\u0631 \u062C\u0645\u0639 \u06AA\u0631\u064A \u0631\u0647\u064A\u0627 \u0622\u0647\u064A\u0648",
|
|
8290
8425
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u06BB \u0644\u0627\u0621\u0650 \u067D\u064A\u067E \u06AA\u0631\u064A\u0648",
|
|
8291
8426
|
view: "\u068F\u0633\u0648",
|
|
8292
|
-
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F"
|
|
8427
|
+
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F",
|
|
8428
|
+
sessionExpiredTitle: "\u062A\u0648\u0647\u0627\u0646 \u062C\u0648 \u0633\u064A\u0634\u0646 \u062E\u062A\u0645 \u067F\u064A \u0648\u064A\u0648 \u0622\u0647\u064A",
|
|
8429
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u064A \u0631\u06A9\u06BB \u0644\u0627\u0621\u0650 \u0645\u0647\u0631\u0628\u0627\u0646\u064A \u06AA\u0631\u064A \u067B\u064A\u0647\u0631 \u0633\u0627\u0626\u0646 \u0627\u0646 \u06AA\u0631\u064A\u0648.",
|
|
8430
|
+
chooseYourProfile: "\u067E\u0646\u0647\u0646\u062C\u0648 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u064A\u0648",
|
|
8431
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0646 \u0622\u0626\u064A\u068A\u064A \u0647\u06AA \u06A9\u0627\u0646 \u0648\u068C\u064A\u06AA \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0646 \u0633\u0627\u0646 \u06B3\u0646\u068D\u064A\u0644 \u0622\u0647\u064A. \u062C\u064A\u06AA\u0648 \u062A\u0648\u0647\u0627\u0646 \u068F\u0633\u06BB \u0686\u0627\u0647\u064A\u0648 \u067F\u0627 \u0627\u0647\u0648 \u0686\u0648\u0646\u068A\u064A\u0648.",
|
|
8432
|
+
userIdLabel: "\u064A\u0648\u0632\u0631 \u0622\u0626\u064A\u068A\u064A: {{id}}",
|
|
8433
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u067F\u064A \u0631\u0647\u064A\u0648 \u0622\u0647\u064A\u2026",
|
|
8434
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u064A\u0644 \u06AA\u0631\u064A\u0648"
|
|
8293
8435
|
};
|
|
8294
8436
|
|
|
8295
8437
|
// src/RedactoPrivacyCenter/locales/ta/translation.json
|
|
@@ -8703,7 +8845,14 @@ var translation_default21 = {
|
|
|
8703
8845
|
submittingAs: "{{email}} \u0B86\u0B95 \u0B9A\u0BAE\u0BB0\u0BCD\u0BAA\u0BCD\u0BAA\u0BBF\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
|
|
8704
8846
|
tapToChooseFile: "\u0B95\u0BCB\u0BAA\u0BCD\u0BAA\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95 \u0BA4\u0B9F\u0BCD\u0B9F\u0BB5\u0BC1\u0BAE\u0BCD",
|
|
8705
8847
|
view: "\u0BAA\u0BBE\u0BB0\u0BCD",
|
|
8706
|
-
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?"
|
|
8848
|
+
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?",
|
|
8849
|
+
sessionExpiredTitle: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B85\u0BAE\u0BB0\u0BCD\u0BB5\u0BC1 \u0B95\u0BBE\u0BB2\u0BBE\u0BB5\u0BA4\u0BBF\u0BAF\u0BBE\u0B95\u0BBF\u0BB5\u0BBF\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
8850
|
+
sessionExpiredDescription: "\u0BA4\u0BCA\u0B9F\u0BB0\u0BCD\u0BB5\u0BA4\u0BB1\u0BCD\u0B95\u0BC1 \u0BA4\u0BAF\u0BB5\u0BC1\u0B9A\u0BC6\u0BAF\u0BCD\u0BA4\u0BC1 \u0BAE\u0BC0\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD \u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0BAF\u0BB5\u0BC1\u0BAE\u0BCD.",
|
|
8851
|
+
chooseYourProfile: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BA4\u0BCD\u0BA4\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BB5\u0BC1\u0BAE\u0BCD",
|
|
8852
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0BB5\u0BC1 \u0B90\u0B9F\u0BBF \u0B92\u0BA9\u0BCD\u0BB1\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0BAE\u0BC7\u0BB1\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD \u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BC1. \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAE\u0BCD\u0BAA\u0BC1\u0BB5\u0BA4\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BB5\u0BC1\u0BAE\u0BCD.",
|
|
8853
|
+
userIdLabel: "\u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0B90\u0B9F\u0BBF: {{id}}",
|
|
8854
|
+
signingInEllipsis: "\u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0B95\u0BBF\u0BB1\u0BA4\u0BC1\u2026",
|
|
8855
|
+
switchProfile: "\u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BA4\u0BCD\u0BA4\u0BC8 \u0BAE\u0BBE\u0BB1\u0BCD\u0BB1\u0BC1"
|
|
8707
8856
|
};
|
|
8708
8857
|
|
|
8709
8858
|
// src/RedactoPrivacyCenter/locales/te/translation.json
|
|
@@ -9117,7 +9266,14 @@ var translation_default22 = {
|
|
|
9117
9266
|
submittingAs: "{{email}} \u0C17\u0C3E \u0C38\u0C2E\u0C30\u0C4D\u0C2A\u0C3F\u0C38\u0C4D\u0C24\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C41",
|
|
9118
9267
|
tapToChooseFile: "\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C28\u0C4A\u0C15\u0C4D\u0C15\u0C02\u0C21\u0C3F",
|
|
9119
9268
|
view: "\u0C35\u0C40\u0C15\u0C4D\u0C37\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F",
|
|
9120
|
-
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?"
|
|
9269
|
+
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?",
|
|
9270
|
+
sessionExpiredTitle: "\u0C2E\u0C40 \u0C38\u0C46\u0C37\u0C28\u0C4D \u0C17\u0C21\u0C41\u0C35\u0C41 \u0C2E\u0C41\u0C17\u0C3F\u0C38\u0C3F\u0C02\u0C26\u0C3F",
|
|
9271
|
+
sessionExpiredDescription: "\u0C15\u0C4A\u0C28\u0C38\u0C3E\u0C17\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C26\u0C2F\u0C1A\u0C47\u0C38\u0C3F \u0C2E\u0C33\u0C4D\u0C32\u0C40 \u0C38\u0C48\u0C28\u0C4D \u0C07\u0C28\u0C4D \u0C1A\u0C47\u0C2F\u0C02\u0C21\u0C3F.",
|
|
9272
|
+
chooseYourProfile: "\u0C2E\u0C40 \u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F",
|
|
9273
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0C32\u0C3E\u0C17\u0C3F\u0C28\u0C4D \u0C10\u0C21\u0C3F \u0C12\u0C15\u0C1F\u0C3F \u0C15\u0C02\u0C1F\u0C47 \u0C0E\u0C15\u0C4D\u0C15\u0C41\u0C35 \u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C32\u0C24\u0C4B \u0C05\u0C28\u0C41\u0C38\u0C02\u0C27\u0C3E\u0C28\u0C3F\u0C02\u0C1A\u0C2C\u0C21\u0C3F\u0C02\u0C26\u0C3F. \u0C2E\u0C40\u0C30\u0C41 \u0C1A\u0C42\u0C21\u0C3E\u0C32\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C26\u0C3E\u0C28\u0C4D\u0C28\u0C3F \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F.",
|
|
9274
|
+
userIdLabel: "\u0C35\u0C3F\u0C28\u0C3F\u0C2F\u0C4B\u0C17\u0C26\u0C3E\u0C30\u0C41 \u0C10\u0C21\u0C3F: {{id}}",
|
|
9275
|
+
signingInEllipsis: "\u0C38\u0C48\u0C28\u0C4D \u0C07\u0C28\u0C4D \u0C05\u0C35\u0C41\u0C24\u0C4B\u0C02\u0C26\u0C3F\u2026",
|
|
9276
|
+
switchProfile: "\u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C02\u0C21\u0C3F"
|
|
9121
9277
|
};
|
|
9122
9278
|
|
|
9123
9279
|
// src/RedactoPrivacyCenter/locales/ur/translation.json
|
|
@@ -9531,7 +9687,14 @@ var translation_default23 = {
|
|
|
9531
9687
|
submittingAs: "{{email}} \u06A9\u06D2 \u0637\u0648\u0631 \u067E\u0631 \u062C\u0645\u0639 \u06A9\u0631 \u0631\u06C1\u06D2 \u06C1\u06CC\u06BA",
|
|
9532
9688
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u06BA",
|
|
9533
9689
|
view: "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA",
|
|
9534
|
-
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F"
|
|
9690
|
+
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F",
|
|
9691
|
+
sessionExpiredTitle: "\u0622\u067E \u06A9\u0627 \u0633\u06CC\u0634\u0646 \u062E\u062A\u0645 \u06C1\u0648 \u06AF\u06CC\u0627 \u06C1\u06D2",
|
|
9692
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0628\u0631\u0627\u06C1 \u06A9\u0631\u0645 \u062F\u0648\u0628\u0627\u0631\u06C1 \u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
9693
|
+
chooseYourProfile: "\u0627\u067E\u0646\u06CC \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u06CC\u06BA",
|
|
9694
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0646 \u0622\u0626\u06CC \u0688\u06CC \u0627\u06CC\u06A9 \u0633\u06D2 \u0632\u06CC\u0627\u062F\u06C1 \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0632 \u0633\u06D2 \u0645\u0646\u0633\u0644\u06A9 \u06C1\u06D2\u06D4 \u062C\u0633\u06D2 \u0622\u067E \u062F\u06CC\u06A9\u06BE\u0646\u0627 \u0686\u0627\u06C1\u062A\u06D2 \u06C1\u06CC\u06BA \u0627\u0633\u06D2 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
9695
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
9696
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u06C1\u0648 \u0631\u06C1\u0627 \u06C1\u06D2\u2026",
|
|
9697
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u06CC\u0644 \u06A9\u0631\u06CC\u06BA"
|
|
9535
9698
|
};
|
|
9536
9699
|
|
|
9537
9700
|
// src/RedactoPrivacyCenter/lib/locales.ts
|
|
@@ -9749,7 +9912,54 @@ function useSafeInsets() {
|
|
|
9749
9912
|
// src/RedactoPrivacyCenter/context/BaseUrlContext.tsx
|
|
9750
9913
|
import { createContext, useContext, useMemo } from "react";
|
|
9751
9914
|
|
|
9915
|
+
// src/RedactoPrivacyCenter/lib/sandbox.ts
|
|
9916
|
+
var sandboxConfig = null;
|
|
9917
|
+
var setSandboxConfig = (config) => {
|
|
9918
|
+
sandboxConfig = config;
|
|
9919
|
+
};
|
|
9920
|
+
var getSandboxConfig = () => sandboxConfig;
|
|
9921
|
+
var isSandboxMode = () => sandboxConfig !== null;
|
|
9922
|
+
var sandboxAuthHeaders = () => {
|
|
9923
|
+
if (!sandboxConfig) {
|
|
9924
|
+
return null;
|
|
9925
|
+
}
|
|
9926
|
+
return {
|
|
9927
|
+
[SANDBOX_TOKEN_HEADER]: sandboxConfig.token
|
|
9928
|
+
};
|
|
9929
|
+
};
|
|
9930
|
+
var sandboxBodyIdentity = () => {
|
|
9931
|
+
if (!sandboxConfig) {
|
|
9932
|
+
return null;
|
|
9933
|
+
}
|
|
9934
|
+
if (sandboxConfig.ucic) {
|
|
9935
|
+
return { org_user_id: sandboxConfig.ucic };
|
|
9936
|
+
}
|
|
9937
|
+
return sandboxConfig.subject.includes("@") ? { primary_email: sandboxConfig.subject } : { primary_mobile: sandboxConfig.subject };
|
|
9938
|
+
};
|
|
9939
|
+
var sandboxQueryIdentity = () => sandboxBodyIdentity();
|
|
9940
|
+
var sandboxContact = () => sandboxConfig ? sandboxConfig.ucic || sandboxConfig.subject : null;
|
|
9941
|
+
|
|
9752
9942
|
// src/RedactoPrivacyCenter/api/fetcher.ts
|
|
9943
|
+
var ApiError = class _ApiError extends Error {
|
|
9944
|
+
constructor(message, options = {}) {
|
|
9945
|
+
super(message);
|
|
9946
|
+
this.name = "ApiError";
|
|
9947
|
+
this.status = options.status;
|
|
9948
|
+
this.detail = options.detail;
|
|
9949
|
+
Object.setPrototypeOf(this, _ApiError.prototype);
|
|
9950
|
+
}
|
|
9951
|
+
};
|
|
9952
|
+
var TERMINAL_REFRESH_STATUSES = /* @__PURE__ */ new Set([400, 401, 403, 422]);
|
|
9953
|
+
function isTerminalRefreshError(error) {
|
|
9954
|
+
const e = error;
|
|
9955
|
+
if (!e) return false;
|
|
9956
|
+
if (typeof e.status === "number") {
|
|
9957
|
+
return TERMINAL_REFRESH_STATUSES.has(e.status);
|
|
9958
|
+
}
|
|
9959
|
+
const message = (typeof e.message === "string" ? e.message : "").toLowerCase();
|
|
9960
|
+
if (!message) return false;
|
|
9961
|
+
return message.includes("expired") || message.includes("revoked") || message.includes("not found") || message.includes("already used") || message.includes("invalid refresh token") || message.includes("unauthorized") || message.includes("[401]") || message.includes("[403]");
|
|
9962
|
+
}
|
|
9753
9963
|
async function apiFetch(url, options = {}) {
|
|
9754
9964
|
const { getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9755
9965
|
const requestHeaders = new Headers();
|
|
@@ -9774,11 +9984,18 @@ async function apiFetch(url, options = {}) {
|
|
|
9774
9984
|
}
|
|
9775
9985
|
}
|
|
9776
9986
|
if (getAuthToken) {
|
|
9777
|
-
const
|
|
9778
|
-
if (
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
9987
|
+
const sandboxHeaders = sandboxAuthHeaders();
|
|
9988
|
+
if (sandboxHeaders) {
|
|
9989
|
+
Object.entries(sandboxHeaders).forEach(([key, value]) => {
|
|
9990
|
+
requestHeaders.set(key, value);
|
|
9991
|
+
});
|
|
9992
|
+
} else {
|
|
9993
|
+
const token = await getAuthToken();
|
|
9994
|
+
if (token) {
|
|
9995
|
+
const trimmedToken = token.trim();
|
|
9996
|
+
requestHeaders.set("X-Auth-Token", trimmedToken);
|
|
9997
|
+
requestHeaders.set("x-auth-token", trimmedToken);
|
|
9998
|
+
}
|
|
9782
9999
|
}
|
|
9783
10000
|
}
|
|
9784
10001
|
const fetchOptionsFinal = {
|
|
@@ -9807,7 +10024,7 @@ async function apiFetch(url, options = {}) {
|
|
|
9807
10024
|
} catch {
|
|
9808
10025
|
}
|
|
9809
10026
|
}
|
|
9810
|
-
throw new
|
|
10027
|
+
throw new ApiError(errorMessage, { status: response.status });
|
|
9811
10028
|
}
|
|
9812
10029
|
const contentLength = response.headers.get("Content-Length");
|
|
9813
10030
|
const contentType = response.headers.get("Content-Type") || "";
|
|
@@ -9869,14 +10086,29 @@ function arrayBufferToBase64(buffer) {
|
|
|
9869
10086
|
return result;
|
|
9870
10087
|
}
|
|
9871
10088
|
function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
9872
|
-
const
|
|
10089
|
+
const ledgerConfigured = Boolean(ledgerBaseUrl);
|
|
10090
|
+
const useLedger = () => ledgerConfigured && !isSandboxMode();
|
|
9873
10091
|
const ledgerBase = (ledgerBaseUrl != null ? ledgerBaseUrl : "").replace(/\/$/, "");
|
|
9874
10092
|
function ledgerUrl(baseRequest, path) {
|
|
9875
|
-
if (!useLedger) {
|
|
10093
|
+
if (!useLedger()) {
|
|
9876
10094
|
throw new Error("ledgerUrl called without a configured ledgerBaseUrl");
|
|
9877
10095
|
}
|
|
9878
10096
|
return `${ledgerBase}/public/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}${path}`;
|
|
9879
10097
|
}
|
|
10098
|
+
function appendSandboxIdentity(queryParams) {
|
|
10099
|
+
const identity = sandboxQueryIdentity();
|
|
10100
|
+
if (identity) {
|
|
10101
|
+
Object.entries(identity).forEach(([key, value]) => {
|
|
10102
|
+
queryParams.append(key, value);
|
|
10103
|
+
});
|
|
10104
|
+
}
|
|
10105
|
+
}
|
|
10106
|
+
function sandboxIdentitySuffix() {
|
|
10107
|
+
const queryParams = new URLSearchParams();
|
|
10108
|
+
appendSandboxIdentity(queryParams);
|
|
10109
|
+
const queryString = queryParams.toString();
|
|
10110
|
+
return queryString ? `?${queryString}` : "";
|
|
10111
|
+
}
|
|
9880
10112
|
async function privacyCenterApiFetch(url, options) {
|
|
9881
10113
|
const { authToken, getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9882
10114
|
const requestHeaders = new Headers();
|
|
@@ -9900,11 +10132,18 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
9900
10132
|
);
|
|
9901
10133
|
}
|
|
9902
10134
|
}
|
|
9903
|
-
const
|
|
9904
|
-
if (
|
|
9905
|
-
|
|
9906
|
-
|
|
9907
|
-
|
|
10135
|
+
const sandboxHeaders = sandboxAuthHeaders();
|
|
10136
|
+
if (sandboxHeaders) {
|
|
10137
|
+
Object.entries(sandboxHeaders).forEach(([key, value]) => {
|
|
10138
|
+
requestHeaders.set(key, value);
|
|
10139
|
+
});
|
|
10140
|
+
} else {
|
|
10141
|
+
const token = authToken || (getAuthToken ? await getAuthToken() : null);
|
|
10142
|
+
if (token) {
|
|
10143
|
+
const trimmedToken = token.trim();
|
|
10144
|
+
const bearerToken = trimmedToken.startsWith("Bearer ") ? trimmedToken : `Bearer ${trimmedToken}`;
|
|
10145
|
+
requestHeaders.set("Authorization", bearerToken);
|
|
10146
|
+
}
|
|
9908
10147
|
}
|
|
9909
10148
|
const fetchOptionsFinal = {
|
|
9910
10149
|
...fetchOptions,
|
|
@@ -9985,18 +10224,20 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
9985
10224
|
async createCaseRequest(baseRequest, payload, authToken, options) {
|
|
9986
10225
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/case`;
|
|
9987
10226
|
const { useSessionAuth = false, getAuthToken, ...fetchOptions } = options || {};
|
|
10227
|
+
const contact = sandboxContact();
|
|
10228
|
+
const requestPayload = contact && payload && typeof payload === "object" ? { ...payload, contact } : payload;
|
|
9988
10229
|
if (useSessionAuth) {
|
|
9989
10230
|
return apiFetch(url, {
|
|
9990
10231
|
...fetchOptions,
|
|
9991
10232
|
method: "POST",
|
|
9992
|
-
body: JSON.stringify(
|
|
10233
|
+
body: JSON.stringify(requestPayload),
|
|
9993
10234
|
getAuthToken
|
|
9994
10235
|
});
|
|
9995
10236
|
}
|
|
9996
10237
|
return privacyCenterApiFetch(url, {
|
|
9997
10238
|
...fetchOptions,
|
|
9998
10239
|
method: "POST",
|
|
9999
|
-
body: JSON.stringify(
|
|
10240
|
+
body: JSON.stringify(requestPayload),
|
|
10000
10241
|
authToken: authToken || baseRequest.authToken
|
|
10001
10242
|
});
|
|
10002
10243
|
},
|
|
@@ -10077,9 +10318,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10077
10318
|
if (params.status) queryParams.append("status", params.status);
|
|
10078
10319
|
if (params.product_uuid) queryParams.append("product_uuid", params.product_uuid);
|
|
10079
10320
|
if (params.language) queryParams.append("language", params.language);
|
|
10321
|
+
appendSandboxIdentity(queryParams);
|
|
10080
10322
|
const queryString = queryParams.toString();
|
|
10081
10323
|
const consentsSuffix = `/user-consents${queryString ? `?${queryString}` : ""}`;
|
|
10082
|
-
const url = useLedger ? ledgerUrl(baseRequest, consentsSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${consentsSuffix}`;
|
|
10324
|
+
const url = useLedger() ? ledgerUrl(baseRequest, consentsSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${consentsSuffix}`;
|
|
10083
10325
|
return privacyCenterApiFetch(url, {
|
|
10084
10326
|
...options,
|
|
10085
10327
|
method: "GET",
|
|
@@ -10098,9 +10340,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10098
10340
|
if (params.search) queryParams.append("search", params.search);
|
|
10099
10341
|
if (params.language) queryParams.append("language", params.language);
|
|
10100
10342
|
if (params.nominator_uuid) queryParams.append("nominator_uuid", params.nominator_uuid);
|
|
10343
|
+
appendSandboxIdentity(queryParams);
|
|
10101
10344
|
const queryString = queryParams.toString();
|
|
10102
10345
|
const purposesSuffix = `/user-consents/${productUuid}/purposes${queryString ? `?${queryString}` : ""}`;
|
|
10103
|
-
const url = useLedger ? ledgerUrl(baseRequest, purposesSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${purposesSuffix}`;
|
|
10346
|
+
const url = useLedger() ? ledgerUrl(baseRequest, purposesSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${purposesSuffix}`;
|
|
10104
10347
|
return privacyCenterApiFetch(url, {
|
|
10105
10348
|
...options,
|
|
10106
10349
|
method: "GET",
|
|
@@ -10121,16 +10364,23 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10121
10364
|
* Without a ledger, the legacy Python `/manage-consent?status=` endpoint is
|
|
10122
10365
|
* used with its `{ purpose_uuid, contact, ... }` payload.
|
|
10123
10366
|
*/
|
|
10124
|
-
async manageConsent(baseRequest, purposeId, contact, status, authToken, options, nominatorContact, dataElementUuids, noticeUuid, dataElements) {
|
|
10125
|
-
if (!useLedger) {
|
|
10367
|
+
async manageConsent(baseRequest, purposeId, contact, status, authToken, options, nominatorContact, dataElementUuids, noticeUuid, dataElements, language) {
|
|
10368
|
+
if (!useLedger()) {
|
|
10126
10369
|
const url2 = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/manage-consent?status=${status}`;
|
|
10127
|
-
const
|
|
10370
|
+
const sandboxSingleContact = sandboxContact();
|
|
10371
|
+
const body2 = {
|
|
10372
|
+
purpose_uuid: purposeId,
|
|
10373
|
+
contact: sandboxSingleContact != null ? sandboxSingleContact : contact
|
|
10374
|
+
};
|
|
10128
10375
|
if (nominatorContact) {
|
|
10129
10376
|
body2.nominator_contact = nominatorContact;
|
|
10130
10377
|
}
|
|
10131
10378
|
if (Array.isArray(dataElementUuids) && dataElementUuids.length > 0) {
|
|
10132
10379
|
body2.data_element_uuids = dataElementUuids;
|
|
10133
10380
|
}
|
|
10381
|
+
if (language) {
|
|
10382
|
+
body2.language = language;
|
|
10383
|
+
}
|
|
10134
10384
|
return privacyCenterApiFetch(url2, {
|
|
10135
10385
|
...options,
|
|
10136
10386
|
method: "POST",
|
|
@@ -10165,7 +10415,8 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10165
10415
|
selected: purposeSelected,
|
|
10166
10416
|
data_elements: elements
|
|
10167
10417
|
}
|
|
10168
|
-
]
|
|
10418
|
+
],
|
|
10419
|
+
...language ? { language } : {}
|
|
10169
10420
|
};
|
|
10170
10421
|
const url = ledgerUrl(baseRequest, "/submit-consent");
|
|
10171
10422
|
return privacyCenterApiFetch(url, {
|
|
@@ -10183,6 +10434,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10183
10434
|
if (offset !== void 0) queryParams.append("offset", offset.toString());
|
|
10184
10435
|
if (limit !== void 0) queryParams.append("limit", limit.toString());
|
|
10185
10436
|
if (language) queryParams.append("language", language);
|
|
10437
|
+
appendSandboxIdentity(queryParams);
|
|
10186
10438
|
const queryString = queryParams.toString();
|
|
10187
10439
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/activities${queryString ? `?${queryString}` : ""}`;
|
|
10188
10440
|
return privacyCenterApiFetch(url, {
|
|
@@ -10190,6 +10442,32 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10190
10442
|
authToken: authToken || baseRequest.authToken
|
|
10191
10443
|
});
|
|
10192
10444
|
},
|
|
10445
|
+
/**
|
|
10446
|
+
* List all data principals that share this session's contact
|
|
10447
|
+
* (shared-contact profile picker). Identity is derived server-side from the
|
|
10448
|
+
* JWT — the caller sends nothing but its bearer token.
|
|
10449
|
+
*/
|
|
10450
|
+
async listIdentities(baseRequest, authToken, options) {
|
|
10451
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities`;
|
|
10452
|
+
return privacyCenterApiFetch(url, {
|
|
10453
|
+
...options,
|
|
10454
|
+
authToken: authToken || baseRequest.authToken
|
|
10455
|
+
});
|
|
10456
|
+
},
|
|
10457
|
+
/**
|
|
10458
|
+
* Re-scope the session to a chosen principal uuid (must be one of the
|
|
10459
|
+
* principals sharing this session's contact). Returns fresh access/refresh
|
|
10460
|
+
* tokens scoped to that principal.
|
|
10461
|
+
*/
|
|
10462
|
+
async selectPrincipal(baseRequest, principalUuid, authToken, options) {
|
|
10463
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities/select`;
|
|
10464
|
+
return privacyCenterApiFetch(url, {
|
|
10465
|
+
...options,
|
|
10466
|
+
method: "POST",
|
|
10467
|
+
body: JSON.stringify({ uuid: principalUuid }),
|
|
10468
|
+
authToken: authToken || baseRequest.authToken
|
|
10469
|
+
});
|
|
10470
|
+
},
|
|
10193
10471
|
/**
|
|
10194
10472
|
* Get receipts (privacy center)
|
|
10195
10473
|
*/
|
|
@@ -10203,9 +10481,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10203
10481
|
if (params.created_before) queryParams.append("created_before", params.created_before);
|
|
10204
10482
|
if (params.notice_uuid) queryParams.append("notice_uuid", params.notice_uuid);
|
|
10205
10483
|
if (params.language) queryParams.append("language", params.language);
|
|
10484
|
+
appendSandboxIdentity(queryParams);
|
|
10206
10485
|
const queryString = queryParams.toString();
|
|
10207
10486
|
const receiptsSuffix = `/receipts${queryString ? `?${queryString}` : ""}`;
|
|
10208
|
-
const url = useLedger ? ledgerUrl(baseRequest, receiptsSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${receiptsSuffix}`;
|
|
10487
|
+
const url = useLedger() ? ledgerUrl(baseRequest, receiptsSuffix) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center${receiptsSuffix}`;
|
|
10209
10488
|
return privacyCenterApiFetch(url, {
|
|
10210
10489
|
...options,
|
|
10211
10490
|
method: "GET",
|
|
@@ -10219,11 +10498,16 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10219
10498
|
* the RN UI writes to a temp file to open/share. 404 => not found.
|
|
10220
10499
|
*/
|
|
10221
10500
|
async getReceiptPdf(baseRequest, receiptUuid, authToken) {
|
|
10222
|
-
const url = useLedger ? ledgerUrl(baseRequest, `/receipts/${receiptUuid}/download`) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/receipts/${receiptUuid}/pdf`;
|
|
10501
|
+
const url = useLedger() ? ledgerUrl(baseRequest, `/receipts/${receiptUuid}/download`) : `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/receipts/${receiptUuid}/pdf`;
|
|
10223
10502
|
const token = authToken || baseRequest.authToken;
|
|
10224
10503
|
const requestHeaders = new Headers();
|
|
10225
10504
|
requestHeaders.set("Accept", "application/pdf");
|
|
10226
|
-
|
|
10505
|
+
const sandboxHeaders = sandboxAuthHeaders();
|
|
10506
|
+
if (sandboxHeaders) {
|
|
10507
|
+
Object.entries(sandboxHeaders).forEach(([key, value]) => {
|
|
10508
|
+
requestHeaders.set(key, value);
|
|
10509
|
+
});
|
|
10510
|
+
} else if (token) {
|
|
10227
10511
|
const trimmedToken = token.trim();
|
|
10228
10512
|
const bearerToken = trimmedToken.startsWith("Bearer ") ? trimmedToken : `Bearer ${trimmedToken}`;
|
|
10229
10513
|
requestHeaders.set("Authorization", bearerToken);
|
|
@@ -10249,6 +10533,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10249
10533
|
if (offset !== void 0) queryParams.append("offset", offset.toString());
|
|
10250
10534
|
if (limit !== void 0) queryParams.append("limit", limit.toString());
|
|
10251
10535
|
if (language) queryParams.append("language", language);
|
|
10536
|
+
appendSandboxIdentity(queryParams);
|
|
10252
10537
|
const queryString = queryParams.toString();
|
|
10253
10538
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases?${queryString}`;
|
|
10254
10539
|
return privacyCenterApiFetch(url, {
|
|
@@ -10260,7 +10545,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10260
10545
|
* Get case messages (privacy center)
|
|
10261
10546
|
*/
|
|
10262
10547
|
async getCaseMessages(baseRequest, caseUuid, authToken, options) {
|
|
10263
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/messages`;
|
|
10548
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/messages${sandboxIdentitySuffix()}`;
|
|
10264
10549
|
return privacyCenterApiFetch(url, {
|
|
10265
10550
|
...options,
|
|
10266
10551
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10270,7 +10555,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10270
10555
|
* Send a message in a case (privacy center)
|
|
10271
10556
|
*/
|
|
10272
10557
|
async sendCaseMessage(baseRequest, caseUuid, body, documentUuids, authToken, options) {
|
|
10273
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/messages`;
|
|
10558
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/messages${sandboxIdentitySuffix()}`;
|
|
10274
10559
|
return privacyCenterApiFetch(url, {
|
|
10275
10560
|
...options,
|
|
10276
10561
|
method: "POST",
|
|
@@ -10282,7 +10567,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10282
10567
|
* Upload a document for a case (privacy center)
|
|
10283
10568
|
*/
|
|
10284
10569
|
async uploadCaseDocument(baseRequest, caseUuid, formData, authToken, options) {
|
|
10285
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/upload-document`;
|
|
10570
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases/${caseUuid}/upload-document${sandboxIdentitySuffix()}`;
|
|
10286
10571
|
return privacyCenterApiFetch(url, {
|
|
10287
10572
|
...options,
|
|
10288
10573
|
method: "POST",
|
|
@@ -10315,6 +10600,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10315
10600
|
if ((params == null ? void 0 : params.limit) !== void 0) queryParams.append("limit", params.limit.toString());
|
|
10316
10601
|
if (params == null ? void 0 : params.include_summary) queryParams.append("include_summary", "true");
|
|
10317
10602
|
if (params == null ? void 0 : params.language) queryParams.append("language", params.language);
|
|
10603
|
+
appendSandboxIdentity(queryParams);
|
|
10318
10604
|
const queryString = queryParams.toString();
|
|
10319
10605
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${queryString ? `?${queryString}` : ""}`;
|
|
10320
10606
|
return privacyCenterApiFetch(url, {
|
|
@@ -10326,7 +10612,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10326
10612
|
* Get notification summary (aggregated counts only)
|
|
10327
10613
|
*/
|
|
10328
10614
|
async getNotificationSummary(baseRequest, authToken) {
|
|
10329
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/summary`;
|
|
10615
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/summary${sandboxIdentitySuffix()}`;
|
|
10330
10616
|
return privacyCenterApiFetch(url, {
|
|
10331
10617
|
method: "GET",
|
|
10332
10618
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10336,7 +10622,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10336
10622
|
* Get unread notification count (lightweight, for the header badge)
|
|
10337
10623
|
*/
|
|
10338
10624
|
async getUnreadCount(baseRequest, authToken) {
|
|
10339
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/unread-count`;
|
|
10625
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/unread-count${sandboxIdentitySuffix()}`;
|
|
10340
10626
|
return privacyCenterApiFetch(url, {
|
|
10341
10627
|
method: "GET",
|
|
10342
10628
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10346,7 +10632,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10346
10632
|
* Mark a single notification as read
|
|
10347
10633
|
*/
|
|
10348
10634
|
async markNotificationRead(baseRequest, notificationUuid, authToken) {
|
|
10349
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${notificationUuid}/read`;
|
|
10635
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${notificationUuid}/read${sandboxIdentitySuffix()}`;
|
|
10350
10636
|
return privacyCenterApiFetch(url, {
|
|
10351
10637
|
method: "PATCH",
|
|
10352
10638
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10356,7 +10642,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10356
10642
|
* Mark all notifications as read
|
|
10357
10643
|
*/
|
|
10358
10644
|
async markAllNotificationsRead(baseRequest, authToken) {
|
|
10359
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/mark-all-read`;
|
|
10645
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/mark-all-read${sandboxIdentitySuffix()}`;
|
|
10360
10646
|
return privacyCenterApiFetch(url, {
|
|
10361
10647
|
method: "POST",
|
|
10362
10648
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10366,7 +10652,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10366
10652
|
* Acknowledge a notification (sets is_read and is_acknowledged to true)
|
|
10367
10653
|
*/
|
|
10368
10654
|
async acknowledgeNotification(baseRequest, notificationUuid, authToken) {
|
|
10369
|
-
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${notificationUuid}/acknowledge`;
|
|
10655
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${notificationUuid}/acknowledge${sandboxIdentitySuffix()}`;
|
|
10370
10656
|
return privacyCenterApiFetch(url, {
|
|
10371
10657
|
method: "POST",
|
|
10372
10658
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10605,7 +10891,8 @@ async function manageConsentServer(params) {
|
|
|
10605
10891
|
params.nominatorContact,
|
|
10606
10892
|
params.dataElementUuids,
|
|
10607
10893
|
params.noticeUuid,
|
|
10608
|
-
params.dataElements
|
|
10894
|
+
params.dataElements,
|
|
10895
|
+
params.language
|
|
10609
10896
|
);
|
|
10610
10897
|
if (result && typeof result === "object" && "success" in result) {
|
|
10611
10898
|
return Boolean(result.success);
|
|
@@ -11096,7 +11383,8 @@ var manageConsent = async ({
|
|
|
11096
11383
|
nominatorContact,
|
|
11097
11384
|
dataElementUuids,
|
|
11098
11385
|
noticeUuid,
|
|
11099
|
-
dataElements
|
|
11386
|
+
dataElements,
|
|
11387
|
+
language
|
|
11100
11388
|
}) => {
|
|
11101
11389
|
try {
|
|
11102
11390
|
const accessToken = await ensureValidToken(organizationId, workspaceId, void 0, authContext, consentClient);
|
|
@@ -11114,7 +11402,8 @@ var manageConsent = async ({
|
|
|
11114
11402
|
nominatorContact,
|
|
11115
11403
|
dataElementUuids,
|
|
11116
11404
|
noticeUuid,
|
|
11117
|
-
dataElements
|
|
11405
|
+
dataElements,
|
|
11406
|
+
language
|
|
11118
11407
|
});
|
|
11119
11408
|
return result;
|
|
11120
11409
|
} catch (error) {
|
|
@@ -11135,7 +11424,8 @@ var manageConsent = async ({
|
|
|
11135
11424
|
nominatorContact,
|
|
11136
11425
|
dataElementUuids,
|
|
11137
11426
|
noticeUuid,
|
|
11138
|
-
dataElements
|
|
11427
|
+
dataElements,
|
|
11428
|
+
language
|
|
11139
11429
|
});
|
|
11140
11430
|
}
|
|
11141
11431
|
console.error(`Error ${action} consent:`, error);
|
|
@@ -11474,6 +11764,40 @@ var acknowledgeNotification = async (organizationId, workspaceId, notificationUu
|
|
|
11474
11764
|
var isRefreshing = false;
|
|
11475
11765
|
var refreshPromise = null;
|
|
11476
11766
|
var TOKEN_EXPIRY_BUFFER_SECONDS = 30;
|
|
11767
|
+
var deadRefreshToken = null;
|
|
11768
|
+
var transientRefreshFailureUntil = 0;
|
|
11769
|
+
var transientRefreshBackoffMs = 0;
|
|
11770
|
+
var MIN_REFRESH_BACKOFF_MS = 3e4;
|
|
11771
|
+
var MAX_REFRESH_BACKOFF_MS = 3e5;
|
|
11772
|
+
var sessionExpiredListener = null;
|
|
11773
|
+
var setSessionExpiredListener = (fn) => {
|
|
11774
|
+
sessionExpiredListener = fn;
|
|
11775
|
+
};
|
|
11776
|
+
var notifySessionExpired = () => {
|
|
11777
|
+
sessionExpiredListener == null ? void 0 : sessionExpiredListener();
|
|
11778
|
+
};
|
|
11779
|
+
var activeRefreshToken = (authContext) => (authContext == null ? void 0 : authContext.refreshToken) || getStoredValue("refresh_token") || null;
|
|
11780
|
+
var isRefreshBlocked = (authContext) => {
|
|
11781
|
+
const active = activeRefreshToken(authContext);
|
|
11782
|
+
if (active !== null && active === deadRefreshToken) return true;
|
|
11783
|
+
return Date.now() < transientRefreshFailureUntil;
|
|
11784
|
+
};
|
|
11785
|
+
var noteTransientRefreshFailure = () => {
|
|
11786
|
+
transientRefreshBackoffMs = Math.min(
|
|
11787
|
+
Math.max(transientRefreshBackoffMs * 2, MIN_REFRESH_BACKOFF_MS),
|
|
11788
|
+
MAX_REFRESH_BACKOFF_MS
|
|
11789
|
+
);
|
|
11790
|
+
transientRefreshFailureUntil = Date.now() + transientRefreshBackoffMs;
|
|
11791
|
+
};
|
|
11792
|
+
var markRefreshTokenDead = (token) => {
|
|
11793
|
+
if (token) deadRefreshToken = token;
|
|
11794
|
+
notifySessionExpired();
|
|
11795
|
+
};
|
|
11796
|
+
var resetRefreshCircuit = () => {
|
|
11797
|
+
deadRefreshToken = null;
|
|
11798
|
+
transientRefreshFailureUntil = 0;
|
|
11799
|
+
transientRefreshBackoffMs = 0;
|
|
11800
|
+
};
|
|
11477
11801
|
var tokenStore = {};
|
|
11478
11802
|
var getStoredValue = (key) => {
|
|
11479
11803
|
var _a3;
|
|
@@ -11529,6 +11853,18 @@ var decodeJwtToken = (token) => {
|
|
|
11529
11853
|
return null;
|
|
11530
11854
|
}
|
|
11531
11855
|
};
|
|
11856
|
+
var resolveContactFromJwt = (decoded) => {
|
|
11857
|
+
if (!decoded) {
|
|
11858
|
+
return null;
|
|
11859
|
+
}
|
|
11860
|
+
const userData = decoded.user_data || {};
|
|
11861
|
+
const candidate = decoded.contact || decoded.primary_email || userData.primary_email || userData.primary_mobile || userData.org_user_id;
|
|
11862
|
+
if (typeof candidate !== "string") {
|
|
11863
|
+
return null;
|
|
11864
|
+
}
|
|
11865
|
+
const contact = candidate.trim();
|
|
11866
|
+
return contact === "" ? null : contact;
|
|
11867
|
+
};
|
|
11532
11868
|
var isJwtExpired = (token, bufferSeconds = 30) => {
|
|
11533
11869
|
if (!token || typeof token !== "string") return true;
|
|
11534
11870
|
try {
|
|
@@ -11555,11 +11891,16 @@ var compareEmails = (email1, email2) => {
|
|
|
11555
11891
|
return decodeURIComponent(email1.trim()).toLowerCase() === email2.trim().toLowerCase();
|
|
11556
11892
|
};
|
|
11557
11893
|
var ensureValidToken = async (organizationId, workspaceId, _slug, authContext, consentClient) => {
|
|
11894
|
+
const sandbox = getSandboxConfig();
|
|
11895
|
+
if (sandbox) {
|
|
11896
|
+
return sandbox.token;
|
|
11897
|
+
}
|
|
11558
11898
|
const accessToken = (authContext == null ? void 0 : authContext.accessToken) || getStoredValue("access_token");
|
|
11559
11899
|
if (accessToken && typeof accessToken === "string" && accessToken.trim() !== "" && !isJwtExpired(accessToken, TOKEN_EXPIRY_BUFFER_SECONDS)) {
|
|
11560
11900
|
return accessToken;
|
|
11561
11901
|
}
|
|
11562
11902
|
if (isRefreshing && refreshPromise) return refreshPromise;
|
|
11903
|
+
if (isRefreshBlocked(authContext)) return null;
|
|
11563
11904
|
isRefreshing = true;
|
|
11564
11905
|
refreshPromise = performTokenRefresh(
|
|
11565
11906
|
organizationId,
|
|
@@ -11587,6 +11928,7 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11587
11928
|
if (!refreshToken || typeof refreshToken !== "string" || refreshToken.trim() === "") {
|
|
11588
11929
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11589
11930
|
authContext.onError(new Error("No refresh token available"));
|
|
11931
|
+
notifySessionExpired();
|
|
11590
11932
|
signOutPrivacyCenter();
|
|
11591
11933
|
return null;
|
|
11592
11934
|
}
|
|
@@ -11616,11 +11958,13 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11616
11958
|
if (newRefreshToken)
|
|
11617
11959
|
setStoredValue("refresh_token", newRefreshToken);
|
|
11618
11960
|
}
|
|
11961
|
+
resetRefreshCircuit();
|
|
11619
11962
|
return newAccessToken;
|
|
11620
11963
|
}
|
|
11621
11964
|
}
|
|
11622
11965
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11623
11966
|
authContext.onError(new Error("Refresh token expired or revoked"));
|
|
11967
|
+
markRefreshTokenDead(refreshToken);
|
|
11624
11968
|
signOutPrivacyCenter();
|
|
11625
11969
|
return null;
|
|
11626
11970
|
} catch (error) {
|
|
@@ -11628,7 +11972,12 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11628
11972
|
authContext.onError(
|
|
11629
11973
|
error instanceof Error ? error : new Error(String(error))
|
|
11630
11974
|
);
|
|
11631
|
-
|
|
11975
|
+
if (isTerminalRefreshError(error)) {
|
|
11976
|
+
markRefreshTokenDead(refreshToken);
|
|
11977
|
+
signOutPrivacyCenter();
|
|
11978
|
+
} else {
|
|
11979
|
+
noteTransientRefreshFailure();
|
|
11980
|
+
}
|
|
11632
11981
|
return null;
|
|
11633
11982
|
}
|
|
11634
11983
|
};
|
|
@@ -11656,6 +12005,23 @@ var formatDateTime = (timestamp) => {
|
|
|
11656
12005
|
hours = hours % 12 || 12;
|
|
11657
12006
|
return `${month} ${day}, ${year} at ${hours}:${minutes} ${ampm}`;
|
|
11658
12007
|
};
|
|
12008
|
+
var extractCaseRef = (response) => {
|
|
12009
|
+
if (!response || typeof response !== "object") {
|
|
12010
|
+
return null;
|
|
12011
|
+
}
|
|
12012
|
+
const wrapper = response;
|
|
12013
|
+
const candidates = [wrapper.detail, response];
|
|
12014
|
+
for (const candidate of candidates) {
|
|
12015
|
+
if (!candidate || typeof candidate !== "object") {
|
|
12016
|
+
continue;
|
|
12017
|
+
}
|
|
12018
|
+
const { case_id: caseId, uuid } = candidate;
|
|
12019
|
+
if (caseId || uuid) {
|
|
12020
|
+
return { case_id: caseId != null ? caseId : "", uuid: uuid != null ? uuid : "" };
|
|
12021
|
+
}
|
|
12022
|
+
}
|
|
12023
|
+
return null;
|
|
12024
|
+
};
|
|
11659
12025
|
var generateUuid = () => {
|
|
11660
12026
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
11661
12027
|
const r = Math.random() * 16 | 0;
|
|
@@ -11675,10 +12041,10 @@ function extractJwtAuthData(token) {
|
|
|
11675
12041
|
if (!decoded) {
|
|
11676
12042
|
return { email: null, organizationId: null, workspaceId: null, organizationName: null };
|
|
11677
12043
|
}
|
|
11678
|
-
const
|
|
11679
|
-
const userEmail = decoded.contact || decoded.primary_email || decoded.email || decoded.user_uuid || decoded.sub || (userData && typeof userData === "object" ? userData.primary_email || userData.email || userData.contact : null) || null;
|
|
12044
|
+
const contact = resolveContactFromJwt(decoded);
|
|
11680
12045
|
return {
|
|
11681
|
-
|
|
12046
|
+
// `resolveContactFromJwt` already returns a trimmed, non-empty string or null.
|
|
12047
|
+
email: contact,
|
|
11682
12048
|
organizationId: decoded.organisation_uuid || null,
|
|
11683
12049
|
workspaceId: decoded.workspace_uuid || null,
|
|
11684
12050
|
organizationName: decoded.organisation_name || null
|
|
@@ -11687,20 +12053,82 @@ function extractJwtAuthData(token) {
|
|
|
11687
12053
|
function syncJwtDataToStore(token) {
|
|
11688
12054
|
const authData = extractJwtAuthData(token);
|
|
11689
12055
|
setStoredValue("access_token", token);
|
|
11690
|
-
if (authData.email)
|
|
12056
|
+
if (authData.email) {
|
|
12057
|
+
setStoredValue("email", authData.email);
|
|
12058
|
+
} else {
|
|
12059
|
+
removeStoredValue("email");
|
|
12060
|
+
}
|
|
11691
12061
|
if (authData.organizationId) setStoredValue("pc_org_id", authData.organizationId);
|
|
11692
12062
|
if (authData.workspaceId) setStoredValue("pc_workspace_id", authData.workspaceId);
|
|
11693
12063
|
return authData;
|
|
11694
12064
|
}
|
|
11695
|
-
function
|
|
11696
|
-
|
|
12065
|
+
function configureSandbox(props) {
|
|
12066
|
+
var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
12067
|
+
const token = (_a3 = props.token) == null ? void 0 : _a3.trim();
|
|
12068
|
+
if (!token) {
|
|
12069
|
+
setSandboxConfig(null);
|
|
12070
|
+
return null;
|
|
12071
|
+
}
|
|
12072
|
+
const organisationUuid = (_c = (_b = props.organisationUuid) == null ? void 0 : _b.trim()) != null ? _c : "";
|
|
12073
|
+
const workspaceUuid = (_e = (_d = props.workspaceUuid) == null ? void 0 : _d.trim()) != null ? _e : "";
|
|
12074
|
+
const ucic = (_g = (_f = props.sandboxUcic) == null ? void 0 : _f.trim()) != null ? _g : "";
|
|
12075
|
+
const subject = (_i = (_h = props.sandboxSubject) == null ? void 0 : _h.trim()) != null ? _i : "";
|
|
12076
|
+
const slug = (_k = (_j = props.slug) == null ? void 0 : _j.trim()) != null ? _k : "";
|
|
12077
|
+
if (!organisationUuid || !workspaceUuid) {
|
|
12078
|
+
throw new Error("Sandbox mode requires organisationUuid and workspaceUuid props");
|
|
12079
|
+
}
|
|
12080
|
+
if (!ucic && !subject) {
|
|
12081
|
+
throw new Error("Sandbox mode requires a UCIC, email, or mobile");
|
|
12082
|
+
}
|
|
12083
|
+
setSandboxConfig({
|
|
12084
|
+
token,
|
|
12085
|
+
ucic: ucic || void 0,
|
|
12086
|
+
subject,
|
|
12087
|
+
organisationUuid,
|
|
12088
|
+
workspaceUuid,
|
|
12089
|
+
slug
|
|
12090
|
+
});
|
|
12091
|
+
const contact = ucic || subject;
|
|
12092
|
+
setStoredValue("access_token", token);
|
|
12093
|
+
if (organisationUuid) setStoredValue("pc_org_id", organisationUuid);
|
|
12094
|
+
if (workspaceUuid) setStoredValue("pc_workspace_id", workspaceUuid);
|
|
12095
|
+
if (contact) setStoredValue("email", contact);
|
|
12096
|
+
return {
|
|
12097
|
+
email: contact || null,
|
|
12098
|
+
organizationId: organisationUuid || null,
|
|
12099
|
+
workspaceId: workspaceUuid || null,
|
|
12100
|
+
organizationName: null
|
|
12101
|
+
};
|
|
12102
|
+
}
|
|
12103
|
+
function AuthProvider(props) {
|
|
12104
|
+
const {
|
|
12105
|
+
children,
|
|
12106
|
+
accessToken: initialAccessToken,
|
|
12107
|
+
refreshToken: initialRefreshToken,
|
|
12108
|
+
token: sandboxToken,
|
|
12109
|
+
sandboxUcic,
|
|
12110
|
+
sandboxSubject,
|
|
12111
|
+
organisationUuid,
|
|
12112
|
+
workspaceUuid,
|
|
12113
|
+
slug,
|
|
12114
|
+
onError
|
|
12115
|
+
} = props;
|
|
12116
|
+
const [sandboxAuth] = useState(() => configureSandbox(props));
|
|
12117
|
+
const sandboxActive = sandboxAuth !== null;
|
|
12118
|
+
const initialAuth = sandboxAuth != null ? sandboxAuth : extractJwtAuthData(initialAccessToken);
|
|
11697
12119
|
const [accessToken, setAccessToken] = useState(() => {
|
|
12120
|
+
if (sandboxActive) {
|
|
12121
|
+
return sandboxToken != null ? sandboxToken : "";
|
|
12122
|
+
}
|
|
11698
12123
|
if (initialAccessToken && initialAccessToken.trim() !== "") {
|
|
11699
12124
|
syncJwtDataToStore(initialAccessToken);
|
|
11700
12125
|
}
|
|
11701
12126
|
return initialAccessToken;
|
|
11702
12127
|
});
|
|
11703
12128
|
const [refreshToken, setRefreshToken] = useState(() => {
|
|
12129
|
+
if (sandboxActive) {
|
|
12130
|
+
return "";
|
|
12131
|
+
}
|
|
11704
12132
|
if (initialRefreshToken && initialRefreshToken.trim() !== "") {
|
|
11705
12133
|
setStoredValue("refresh_token", initialRefreshToken);
|
|
11706
12134
|
}
|
|
@@ -11711,6 +12139,20 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11711
12139
|
const [workspaceId, setWorkspaceId] = useState(initialAuth.workspaceId);
|
|
11712
12140
|
const [organizationName, setOrganizationName] = useState(initialAuth.organizationName);
|
|
11713
12141
|
useEffect(() => {
|
|
12142
|
+
if (!sandboxActive) {
|
|
12143
|
+
return;
|
|
12144
|
+
}
|
|
12145
|
+
const seeded = configureSandbox(props);
|
|
12146
|
+
if (seeded) {
|
|
12147
|
+
setEmail(seeded.email);
|
|
12148
|
+
setOrganizationId(seeded.organizationId);
|
|
12149
|
+
setWorkspaceId(seeded.workspaceId);
|
|
12150
|
+
setOrganizationName(seeded.organizationName);
|
|
12151
|
+
}
|
|
12152
|
+
return () => setSandboxConfig(null);
|
|
12153
|
+
}, [sandboxActive, sandboxToken, sandboxUcic, sandboxSubject, organisationUuid, workspaceUuid, slug]);
|
|
12154
|
+
useEffect(() => {
|
|
12155
|
+
if (sandboxActive) return;
|
|
11714
12156
|
if (accessToken) {
|
|
11715
12157
|
const authData = syncJwtDataToStore(accessToken);
|
|
11716
12158
|
setEmail(authData.email);
|
|
@@ -11718,11 +12160,13 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11718
12160
|
setWorkspaceId(authData.workspaceId);
|
|
11719
12161
|
setOrganizationName(authData.organizationName);
|
|
11720
12162
|
}
|
|
11721
|
-
}, [accessToken]);
|
|
12163
|
+
}, [accessToken, sandboxActive]);
|
|
11722
12164
|
useEffect(() => {
|
|
12165
|
+
if (sandboxActive) return;
|
|
11723
12166
|
if (refreshToken) setStoredValue("refresh_token", refreshToken);
|
|
11724
|
-
}, [refreshToken]);
|
|
12167
|
+
}, [refreshToken, sandboxActive]);
|
|
11725
12168
|
useEffect(() => {
|
|
12169
|
+
if (sandboxActive) return;
|
|
11726
12170
|
setAccessToken(initialAccessToken);
|
|
11727
12171
|
if (initialAccessToken && initialAccessToken.trim() !== "") {
|
|
11728
12172
|
const authData = syncJwtDataToStore(initialAccessToken);
|
|
@@ -11731,10 +12175,11 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11731
12175
|
setWorkspaceId(authData.workspaceId);
|
|
11732
12176
|
setOrganizationName(authData.organizationName);
|
|
11733
12177
|
}
|
|
11734
|
-
}, [initialAccessToken]);
|
|
12178
|
+
}, [initialAccessToken, sandboxActive]);
|
|
11735
12179
|
useEffect(() => {
|
|
12180
|
+
if (sandboxActive) return;
|
|
11736
12181
|
setRefreshToken(initialRefreshToken);
|
|
11737
|
-
}, [initialRefreshToken]);
|
|
12182
|
+
}, [initialRefreshToken, sandboxActive]);
|
|
11738
12183
|
const updateTokens = useCallback((newAccessToken, newRefreshToken) => {
|
|
11739
12184
|
setAccessToken(newAccessToken);
|
|
11740
12185
|
if (newRefreshToken) setRefreshToken(newRefreshToken);
|
|
@@ -11991,8 +12436,17 @@ function DataAvailabilityProvider({ children }) {
|
|
|
11991
12436
|
mountedRef.current = false;
|
|
11992
12437
|
};
|
|
11993
12438
|
}, []);
|
|
12439
|
+
useEffect3(() => {
|
|
12440
|
+
setSessionExpiredListener(() => {
|
|
12441
|
+
if (!mountedRef.current) return;
|
|
12442
|
+
runIdRef.current += 1;
|
|
12443
|
+
setStatus("session-expired");
|
|
12444
|
+
});
|
|
12445
|
+
return () => setSessionExpiredListener(null);
|
|
12446
|
+
}, []);
|
|
11994
12447
|
const runCheck = useCallback4(async () => {
|
|
11995
12448
|
if (!organizationId || !workspaceId) return;
|
|
12449
|
+
if (isRefreshBlocked(authContext)) return;
|
|
11996
12450
|
const runId = ++runIdRef.current;
|
|
11997
12451
|
setStatus("checking");
|
|
11998
12452
|
const contact = email;
|
|
@@ -14129,7 +14583,7 @@ import { useTranslation as useTranslation10 } from "react-i18next";
|
|
|
14129
14583
|
|
|
14130
14584
|
// src/RedactoPrivacyCenter/lib/consentManagerUtils.ts
|
|
14131
14585
|
function purposeItemToUserConsent(purpose, group) {
|
|
14132
|
-
var _a3, _b, _c, _d;
|
|
14586
|
+
var _a3, _b, _c, _d, _e;
|
|
14133
14587
|
return {
|
|
14134
14588
|
purpose_uuid: purpose.purpose_uuid,
|
|
14135
14589
|
purpose: purpose.name,
|
|
@@ -14142,7 +14596,9 @@ function purposeItemToUserConsent(purpose, group) {
|
|
|
14142
14596
|
product_uuid: group.product_uuid,
|
|
14143
14597
|
product_name: group.product_name,
|
|
14144
14598
|
product_description: group.product_description,
|
|
14145
|
-
nominator_info: (_d = group.nominator) != null ? _d : void 0
|
|
14599
|
+
nominator_info: (_d = group.nominator) != null ? _d : void 0,
|
|
14600
|
+
revoke_warning_message: (_e = purpose.revoke_warning_message) != null ? _e : null,
|
|
14601
|
+
notice_uuid: purpose.notice_uuid
|
|
14146
14602
|
};
|
|
14147
14603
|
}
|
|
14148
14604
|
function getDisplayProductGroups(detail, tab) {
|
|
@@ -14221,31 +14677,6 @@ var ConsentStatusEnum = /* @__PURE__ */ ((ConsentStatusEnum2) => {
|
|
|
14221
14677
|
})(ConsentStatusEnum || {});
|
|
14222
14678
|
|
|
14223
14679
|
// src/RedactoPrivacyCenter/lib/constants.ts
|
|
14224
|
-
var languageOptions = [
|
|
14225
|
-
{ value: "en", label: "English" },
|
|
14226
|
-
{ value: "hi", label: "\u0939\u093F\u0928\u094D\u0926\u0940 (Hindi)" },
|
|
14227
|
-
{ value: "te", label: "\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41 (Telugu)" },
|
|
14228
|
-
{ value: "mr", label: "\u092E\u0930\u093E\u0920\u0940 (Marathi)" },
|
|
14229
|
-
{ value: "ta", label: "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD (Tamil)" },
|
|
14230
|
-
{ value: "ur", label: "\u0627\u0631\u062F\u0648 (Urdu)" },
|
|
14231
|
-
{ value: "gu", label: "\u0A97\u0AC1\u0A9C\u0AB0\u0ABE\u0AA4\u0AC0 (Gujarati)" },
|
|
14232
|
-
{ value: "kn", label: "\u0C95\u0CA8\u0CCD\u0CA8\u0CA1 (Kannada)" },
|
|
14233
|
-
{ value: "ml", label: "\u0D2E\u0D32\u0D2F\u0D3E\u0D33\u0D02 (Malayalam)" },
|
|
14234
|
-
{ value: "pa", label: "\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40 (Punjabi)" },
|
|
14235
|
-
{ value: "or", label: "\u0B13\u0B21\u0B3C\u0B3F\u0B06 (Odia)" },
|
|
14236
|
-
{ value: "as", label: "\u0985\u09B8\u09AE\u09C0\u09AF\u09BC\u09BE (Assamese)" },
|
|
14237
|
-
{ value: "bn", label: "\u09AC\u09BE\u0982\u09B2\u09BE (Bengali)" },
|
|
14238
|
-
{ value: "mai", label: "\u092E\u0948\u0925\u093F\u0932\u0940 (Maithili)" },
|
|
14239
|
-
{ value: "ne", label: "\u0928\u0947\u092A\u093E\u0932\u0940 (Nepali)" },
|
|
14240
|
-
{ value: "sd", label: "\u0633\u0646\u068C\u064A (Sindhi)" },
|
|
14241
|
-
{ value: "doi", label: "\u0921\u094B\u0917\u0930\u0940 (Dogri)" },
|
|
14242
|
-
{ value: "mni-Mtei", label: "\uABC3\uABE9\uABC7\uABE9\uABC2\uABE3\uABDF (Manipuri)" },
|
|
14243
|
-
{ value: "gom", label: "\u0915\u094B\u0902\u0915\u0923\u0940 (Goan Konkani)" },
|
|
14244
|
-
{ value: "sa", label: "\u0938\u0902\u0938\u094D\u0915\u0943\u0924\u092E\u094D (Sanskrit)" },
|
|
14245
|
-
{ value: "brx", label: "\u092C\u0921\u093C\u094B (Bodo)" },
|
|
14246
|
-
{ value: "ks", label: "\u0643\u0672\u0634\u064F\u0631 (Kashmiri)" },
|
|
14247
|
-
{ value: "sat", label: "\u1C65\u1C5F\u1C71\u1C5B\u1C5F\u1C72\u1C64 (Santali)" }
|
|
14248
|
-
];
|
|
14249
14680
|
var PAGE_CHROME_BY_PAGE = {
|
|
14250
14681
|
home: {
|
|
14251
14682
|
titleKey: "privacyCenter",
|
|
@@ -14323,8 +14754,14 @@ var useTimePeriodOptions = () => {
|
|
|
14323
14754
|
);
|
|
14324
14755
|
};
|
|
14325
14756
|
var MAX_DISPLAYED_PURPOSE_NAMES_IN_ERASURE_MODAL = 3;
|
|
14757
|
+
var PRODUCT_SCOPED_REQUEST_TYPES = [
|
|
14758
|
+
"ACCESS" /* ACCESS */,
|
|
14759
|
+
"erasure" /* ERASURE */,
|
|
14760
|
+
"CORRECTION" /* CORRECTION */
|
|
14761
|
+
];
|
|
14326
14762
|
var SEARCH_DEBOUNCE_DELAY = 500;
|
|
14327
14763
|
var FORM_PICKER_GROUP_LIMIT = 100;
|
|
14764
|
+
var LEGACY_PRODUCT_GROUP_UUID = "__legacy_flat_purposes__";
|
|
14328
14765
|
var POLL_INTERVAL = 3e4;
|
|
14329
14766
|
var NOTIFICATION_PAGE_SIZE = 10;
|
|
14330
14767
|
var TAB_TO_CATEGORY = {
|
|
@@ -14433,7 +14870,7 @@ var ModifyConsentModal = ({
|
|
|
14433
14870
|
action: "revoke",
|
|
14434
14871
|
buttonLabel: t("revokeConsent"),
|
|
14435
14872
|
buttonColor: colors.error,
|
|
14436
|
-
warningMessage: t("revokeConsentWarning"),
|
|
14873
|
+
warningMessage: selectedRecord.revoke_warning_message || t("revokeConsentWarning"),
|
|
14437
14874
|
description: nominatorLabel ? t("aboutToModifyConsentOnBehalf", { nominator: nominatorLabel }) : t("aboutToModifyConsent")
|
|
14438
14875
|
};
|
|
14439
14876
|
}
|
|
@@ -15104,7 +15541,8 @@ function ConsentManager() {
|
|
|
15104
15541
|
dataElements: (_b = selectedRecord == null ? void 0 : selectedRecord.data_elements) == null ? void 0 : _b.map((de) => ({
|
|
15105
15542
|
uuid: de.uuid,
|
|
15106
15543
|
selected: de.selected
|
|
15107
|
-
}))
|
|
15544
|
+
})),
|
|
15545
|
+
language: langParam
|
|
15108
15546
|
});
|
|
15109
15547
|
setIsModalOpen(false);
|
|
15110
15548
|
setSelectedRecord(null);
|
|
@@ -15116,7 +15554,7 @@ function ConsentManager() {
|
|
|
15116
15554
|
setIsManageLoading(false);
|
|
15117
15555
|
}
|
|
15118
15556
|
},
|
|
15119
|
-
[organizationId, workspaceId, email, authContext, consentClient, selectedRecord, fetchData, t]
|
|
15557
|
+
[organizationId, workspaceId, email, authContext, consentClient, selectedRecord, langParam, fetchData, t]
|
|
15120
15558
|
);
|
|
15121
15559
|
const handleExport = useCallback6(async () => {
|
|
15122
15560
|
if (!consentData.length) return;
|
|
@@ -15479,6 +15917,7 @@ function ActivitiesList() {
|
|
|
15479
15917
|
() => ({ accessToken, refreshToken, onError, updateTokens }),
|
|
15480
15918
|
[accessToken, refreshToken, onError, updateTokens]
|
|
15481
15919
|
);
|
|
15920
|
+
const { langParam } = useCurrentLanguage();
|
|
15482
15921
|
const [activities, setActivities] = useState14([]);
|
|
15483
15922
|
const [totalCount, setTotalCount] = useState14(0);
|
|
15484
15923
|
const [isLoading, setIsLoading] = useState14(true);
|
|
@@ -15490,7 +15929,7 @@ function ActivitiesList() {
|
|
|
15490
15929
|
var _a3, _b, _c;
|
|
15491
15930
|
if (!organizationId || !workspaceId) return;
|
|
15492
15931
|
try {
|
|
15493
|
-
const response = await fetchActivities(organizationId, workspaceId, nextOffset, PAGE_SIZE, authContext, consentClient);
|
|
15932
|
+
const response = await fetchActivities(organizationId, workspaceId, nextOffset, PAGE_SIZE, authContext, consentClient, langParam);
|
|
15494
15933
|
if (!response) return;
|
|
15495
15934
|
const rows = (_a3 = response.data) != null ? _a3 : [];
|
|
15496
15935
|
setActivities((prev) => append ? [...prev, ...rows] : rows);
|
|
@@ -15501,7 +15940,7 @@ function ActivitiesList() {
|
|
|
15501
15940
|
if (!append) setActivities([]);
|
|
15502
15941
|
}
|
|
15503
15942
|
},
|
|
15504
|
-
[organizationId, workspaceId, authContext, consentClient]
|
|
15943
|
+
[organizationId, workspaceId, authContext, consentClient, langParam]
|
|
15505
15944
|
);
|
|
15506
15945
|
useEffect12(() => {
|
|
15507
15946
|
setIsLoading(true);
|
|
@@ -15640,10 +16079,10 @@ import { useTranslation as useTranslation13 } from "react-i18next";
|
|
|
15640
16079
|
// src/RedactoPrivacyCenter/lib/dateGroup.ts
|
|
15641
16080
|
import { useCallback as useCallback8 } from "react";
|
|
15642
16081
|
import { useTranslation as useTranslation12 } from "react-i18next";
|
|
15643
|
-
function monthKey(ts) {
|
|
16082
|
+
function monthKey(ts, locale) {
|
|
15644
16083
|
if (!ts) return "";
|
|
15645
16084
|
try {
|
|
15646
|
-
return new Date(ts).toLocaleDateString(void 0, { month: "long", year: "numeric" });
|
|
16085
|
+
return new Date(ts).toLocaleDateString(locale || void 0, { month: "long", year: "numeric" });
|
|
15647
16086
|
} catch {
|
|
15648
16087
|
return "";
|
|
15649
16088
|
}
|
|
@@ -15719,7 +16158,7 @@ function groupByTime(items, getTs, classify) {
|
|
|
15719
16158
|
);
|
|
15720
16159
|
}
|
|
15721
16160
|
function useRelativeDate() {
|
|
15722
|
-
const { t } = useTranslation12();
|
|
16161
|
+
const { t, i18n: i18n2 } = useTranslation12();
|
|
15723
16162
|
return useCallback8(
|
|
15724
16163
|
(ts) => {
|
|
15725
16164
|
if (!ts) return "";
|
|
@@ -15732,7 +16171,7 @@ function useRelativeDate() {
|
|
|
15732
16171
|
if (dayDiff <= 0) return t("today", { defaultValue: "Today" });
|
|
15733
16172
|
if (dayDiff === 1) return t("yesterday", { defaultValue: "Yesterday" });
|
|
15734
16173
|
if (dayDiff < 7) return t("daysAgo", { count: dayDiff, defaultValue: "{{count}} days ago" });
|
|
15735
|
-
return d.toLocaleDateString(void 0, {
|
|
16174
|
+
return d.toLocaleDateString(i18n2.language || void 0, {
|
|
15736
16175
|
month: "short",
|
|
15737
16176
|
day: "numeric",
|
|
15738
16177
|
...d.getFullYear() !== now.getFullYear() ? { year: "numeric" } : {}
|
|
@@ -15741,10 +16180,28 @@ function useRelativeDate() {
|
|
|
15741
16180
|
return ts;
|
|
15742
16181
|
}
|
|
15743
16182
|
},
|
|
15744
|
-
[t]
|
|
16183
|
+
[t, i18n2.language]
|
|
15745
16184
|
);
|
|
15746
16185
|
}
|
|
15747
16186
|
|
|
16187
|
+
// src/RedactoPrivacyCenter/lib/receiptEvent.ts
|
|
16188
|
+
function eventLabelKey(eventType) {
|
|
16189
|
+
const v = String(eventType || "").toUpperCase();
|
|
16190
|
+
if (v.includes("GRANT")) {
|
|
16191
|
+
return "consentGranted";
|
|
16192
|
+
}
|
|
16193
|
+
if (v.includes("WITHDRAW") || v.includes("REVOK")) {
|
|
16194
|
+
return "consentRevoked";
|
|
16195
|
+
}
|
|
16196
|
+
if (v.includes("DECLIN")) {
|
|
16197
|
+
return "consentDeclined";
|
|
16198
|
+
}
|
|
16199
|
+
if (v.includes("EXPIR")) {
|
|
16200
|
+
return "consentExpired";
|
|
16201
|
+
}
|
|
16202
|
+
return void 0;
|
|
16203
|
+
}
|
|
16204
|
+
|
|
15748
16205
|
// src/RedactoPrivacyCenter/components/ReceiptsList.tsx
|
|
15749
16206
|
import { Fragment as Fragment7, jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
15750
16207
|
var PAGE_SIZE2 = 10;
|
|
@@ -15780,11 +16237,10 @@ function receiptBadgeStatus(eventType) {
|
|
|
15780
16237
|
if (v.includes("EXPIR")) return "warning";
|
|
15781
16238
|
return "secondary";
|
|
15782
16239
|
}
|
|
15783
|
-
var ReceiptRow = React15.memo(({ item, colors, downloading, onDownload, downloadLabel, dateLabel }) => {
|
|
16240
|
+
var ReceiptRow = React15.memo(({ item, colors, downloading, onDownload, downloadLabel, dateLabel, eventLabel }) => {
|
|
15784
16241
|
const product = item.product_name_display || item.product_name || "";
|
|
15785
|
-
const
|
|
15786
|
-
const
|
|
15787
|
-
const badgeLabel = event || "-";
|
|
16242
|
+
const primary = product || eventLabel || "-";
|
|
16243
|
+
const badgeLabel = eventLabel || "-";
|
|
15788
16244
|
return /* @__PURE__ */ jsxs25(View30, { style: styles31.row, children: [
|
|
15789
16245
|
/* @__PURE__ */ jsx41(NameAvatar, { name: primary, seed: item.uuid || primary, size: "sm" }),
|
|
15790
16246
|
/* @__PURE__ */ jsxs25(View30, { style: styles31.body, children: [
|
|
@@ -15811,7 +16267,7 @@ var ReceiptRow = React15.memo(({ item, colors, downloading, onDownload, download
|
|
|
15811
16267
|
});
|
|
15812
16268
|
ReceiptRow.displayName = "ReceiptRow";
|
|
15813
16269
|
function ReceiptsList() {
|
|
15814
|
-
const { t } = useTranslation13();
|
|
16270
|
+
const { t, i18n: i18n2 } = useTranslation13();
|
|
15815
16271
|
const { accessToken, refreshToken, organizationId, workspaceId, updateTokens, onError } = useAuth();
|
|
15816
16272
|
const { consentClient } = useBaseUrl();
|
|
15817
16273
|
const { colors } = useTheme();
|
|
@@ -15896,14 +16352,18 @@ function ReceiptsList() {
|
|
|
15896
16352
|
const sections = useMemo13(() => {
|
|
15897
16353
|
const map = /* @__PURE__ */ new Map();
|
|
15898
16354
|
for (const r of receipts) {
|
|
15899
|
-
const key = monthKey(r.created_at);
|
|
16355
|
+
const key = monthKey(r.created_at, i18n2.language);
|
|
15900
16356
|
const arr = map.get(key);
|
|
15901
16357
|
if (arr) arr.push(r);
|
|
15902
16358
|
else map.set(key, [r]);
|
|
15903
16359
|
}
|
|
15904
16360
|
return Array.from(map, ([title, data]) => ({ title, data }));
|
|
15905
|
-
}, [receipts]);
|
|
16361
|
+
}, [receipts, i18n2.language]);
|
|
15906
16362
|
const downloadLabel = t("download") || "Download";
|
|
16363
|
+
const eventLabelFor = (r) => {
|
|
16364
|
+
const key = eventLabelKey(r.event_type);
|
|
16365
|
+
return key ? t(key) : r.event_type_display || r.event_type || "-";
|
|
16366
|
+
};
|
|
15907
16367
|
const handleScroll = useCallback9(
|
|
15908
16368
|
(e) => {
|
|
15909
16369
|
const { layoutMeasurement, contentOffset, contentSize } = e.nativeEvent;
|
|
@@ -15985,7 +16445,8 @@ function ReceiptsList() {
|
|
|
15985
16445
|
downloading: downloadingUuid === item.uuid,
|
|
15986
16446
|
onDownload: handleDownload,
|
|
15987
16447
|
downloadLabel,
|
|
15988
|
-
dateLabel: relativeLabel(item.created_at)
|
|
16448
|
+
dateLabel: relativeLabel(item.created_at),
|
|
16449
|
+
eventLabel: eventLabelFor(item)
|
|
15989
16450
|
}
|
|
15990
16451
|
)
|
|
15991
16452
|
] }, `${item.uuid || item.created_at}-${index}`)) }, section2.title)),
|
|
@@ -16141,6 +16602,25 @@ var uploadFileWithS2S = async ({
|
|
|
16141
16602
|
}
|
|
16142
16603
|
};
|
|
16143
16604
|
|
|
16605
|
+
// src/RedactoPrivacyCenter/lib/requestType.ts
|
|
16606
|
+
var isRequestType = (requestType, expected) => typeof requestType === "string" && requestType.toLowerCase() === expected.toLowerCase();
|
|
16607
|
+
var isProductScopedRequestType = (requestType) => PRODUCT_SCOPED_REQUEST_TYPES.some((type) => isRequestType(requestType, type));
|
|
16608
|
+
|
|
16609
|
+
// src/RedactoPrivacyCenter/lib/erasureConsent.ts
|
|
16610
|
+
var isErasureRequestType = (requestType) => isRequestType(requestType, "erasure" /* ERASURE */);
|
|
16611
|
+
var resolveErasurePurposeNames = (purposeNames, fallback) => {
|
|
16612
|
+
if (purposeNames.length === 0 || purposeNames.length > MAX_DISPLAYED_PURPOSE_NAMES_IN_ERASURE_MODAL) {
|
|
16613
|
+
return fallback;
|
|
16614
|
+
}
|
|
16615
|
+
return purposeNames.join(", ");
|
|
16616
|
+
};
|
|
16617
|
+
var erasureConsentPayload = (requestType, revokeConsentOnFulfilment) => {
|
|
16618
|
+
if (!isErasureRequestType(requestType)) {
|
|
16619
|
+
return {};
|
|
16620
|
+
}
|
|
16621
|
+
return { revoke_consent_on_fulfilment: revokeConsentOnFulfilment };
|
|
16622
|
+
};
|
|
16623
|
+
|
|
16144
16624
|
// src/RedactoPrivacyCenter/lib/filePicker.ts
|
|
16145
16625
|
import { Alert as Alert4 } from "react-native";
|
|
16146
16626
|
async function pickFile() {
|
|
@@ -16315,19 +16795,32 @@ var consentGroupToFormProductGroup = (group) => {
|
|
|
16315
16795
|
};
|
|
16316
16796
|
};
|
|
16317
16797
|
var purposeItemToFormPurpose = (purpose) => {
|
|
16318
|
-
var _a3, _b;
|
|
16798
|
+
var _a3, _b, _c, _d, _e, _f;
|
|
16319
16799
|
return {
|
|
16320
|
-
|
|
16321
|
-
|
|
16800
|
+
// The ledger keys purposes as `purpose_uuid`; the legacy Python
|
|
16801
|
+
// user-consents payload keys some of them as `uuid`. Accept either so the
|
|
16802
|
+
// picker and the submitted `purpose_uuid` resolve on both backends.
|
|
16803
|
+
uuid: (_b = (_a3 = purpose.purpose_uuid) != null ? _a3 : purpose.uuid) != null ? _b : "",
|
|
16804
|
+
purpose_uuid: (_d = (_c = purpose.purpose_uuid) != null ? _c : purpose.uuid) != null ? _d : "",
|
|
16322
16805
|
name: purpose.name,
|
|
16323
|
-
description: (
|
|
16806
|
+
description: (_e = purpose.description) != null ? _e : "",
|
|
16324
16807
|
industries: "",
|
|
16325
16808
|
selected: false,
|
|
16326
16809
|
given_consent: false,
|
|
16327
16810
|
status: purpose.status,
|
|
16328
16811
|
validity: null,
|
|
16329
16812
|
enabled: true,
|
|
16330
|
-
data_elements: ((
|
|
16813
|
+
data_elements: ((_f = purpose.data_elements) != null ? _f : []).map(consentDataElementToFormDataElement)
|
|
16814
|
+
};
|
|
16815
|
+
};
|
|
16816
|
+
var legacyFlatGroup = (form, label) => {
|
|
16817
|
+
var _a3;
|
|
16818
|
+
return {
|
|
16819
|
+
product_uuid: LEGACY_PRODUCT_GROUP_UUID,
|
|
16820
|
+
product_name: label,
|
|
16821
|
+
product_description: null,
|
|
16822
|
+
nominator: null,
|
|
16823
|
+
purposes: ((_a3 = form.purposes) != null ? _a3 : []).map((wrapper) => wrapper == null ? void 0 : wrapper.purpose).filter((purpose) => Boolean(purpose))
|
|
16331
16824
|
};
|
|
16332
16825
|
};
|
|
16333
16826
|
var consentDataElementToFormDataElement = (element) => ({
|
|
@@ -16364,16 +16857,10 @@ var buildGroupDataElements = (group) => {
|
|
|
16364
16857
|
// src/RedactoPrivacyCenter/components/Form.tsx
|
|
16365
16858
|
import { Fragment as Fragment9, jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
16366
16859
|
var TOTAL_STEPS = 3;
|
|
16367
|
-
var PRODUCT_SCOPED_REQUEST_TYPES = /* @__PURE__ */ new Set([
|
|
16368
|
-
"ACCESS" /* ACCESS */,
|
|
16369
|
-
"erasure" /* ERASURE */,
|
|
16370
|
-
"CORRECTION" /* CORRECTION */
|
|
16371
|
-
]);
|
|
16372
|
-
var isProductScopedRequestType = (rt) => PRODUCT_SCOPED_REQUEST_TYPES.has(rt);
|
|
16373
16860
|
function Form({ onCreateRequest }) {
|
|
16374
16861
|
const { t } = useTranslation15();
|
|
16375
16862
|
const { accessToken, refreshToken, email, organizationId, workspaceId, updateTokens, onError } = useAuth();
|
|
16376
|
-
const { consentClient, baseUrl
|
|
16863
|
+
const { consentClient, baseUrl } = useBaseUrl();
|
|
16377
16864
|
const { colors } = useTheme();
|
|
16378
16865
|
const requestTypeLabels = useRequestTypeLabels();
|
|
16379
16866
|
const timePeriodOptions = useTimePeriodOptions();
|
|
@@ -16410,10 +16897,10 @@ function Form({ onCreateRequest }) {
|
|
|
16410
16897
|
});
|
|
16411
16898
|
const [uploadedDocs, setUploadedDocs] = useState16([]);
|
|
16412
16899
|
const [isUploading, setIsUploading] = useState16(false);
|
|
16413
|
-
const
|
|
16900
|
+
const withUserConsentPickerGroups = useCallback10(
|
|
16414
16901
|
async (form, language) => {
|
|
16415
16902
|
var _a3, _b;
|
|
16416
|
-
if (!
|
|
16903
|
+
if (!organizationId || !workspaceId) {
|
|
16417
16904
|
return form;
|
|
16418
16905
|
}
|
|
16419
16906
|
const consents = await fetchUserConsents({
|
|
@@ -16428,16 +16915,18 @@ function Form({ onCreateRequest }) {
|
|
|
16428
16915
|
authContext,
|
|
16429
16916
|
consentClient
|
|
16430
16917
|
});
|
|
16431
|
-
|
|
16918
|
+
const direct = (_a3 = consents == null ? void 0 : consents.direct) != null ? _a3 : [];
|
|
16919
|
+
const nominated = (_b = consents == null ? void 0 : consents.nominated) != null ? _b : [];
|
|
16920
|
+
if (direct.length === 0 && nominated.length === 0) {
|
|
16432
16921
|
return form;
|
|
16433
16922
|
}
|
|
16434
16923
|
return {
|
|
16435
16924
|
...form,
|
|
16436
|
-
direct_groups:
|
|
16437
|
-
nominated_groups:
|
|
16925
|
+
direct_groups: direct.map(consentGroupToFormProductGroup),
|
|
16926
|
+
nominated_groups: nominated.map(consentGroupToFormProductGroup)
|
|
16438
16927
|
};
|
|
16439
16928
|
},
|
|
16440
|
-
[
|
|
16929
|
+
[organizationId, workspaceId, authContext, consentClient]
|
|
16441
16930
|
);
|
|
16442
16931
|
useEffect14(() => {
|
|
16443
16932
|
if (!organizationId || !workspaceId || !contact) return;
|
|
@@ -16445,7 +16934,7 @@ function Form({ onCreateRequest }) {
|
|
|
16445
16934
|
setIsLoading(true);
|
|
16446
16935
|
getFormData(organizationId, workspaceId, contact, false, false, authContext, consentClient, langParam).then(async (data) => {
|
|
16447
16936
|
if (!data) return;
|
|
16448
|
-
const withGroups = await
|
|
16937
|
+
const withGroups = await withUserConsentPickerGroups(data, langParam);
|
|
16449
16938
|
if (!isCancelled) setFormDataResponse(withGroups);
|
|
16450
16939
|
}).catch((error) => {
|
|
16451
16940
|
console.warn("Error fetching form data:", error);
|
|
@@ -16462,16 +16951,24 @@ function Form({ onCreateRequest }) {
|
|
|
16462
16951
|
authContext,
|
|
16463
16952
|
consentClient,
|
|
16464
16953
|
langParam,
|
|
16465
|
-
|
|
16954
|
+
withUserConsentPickerGroups
|
|
16466
16955
|
]);
|
|
16467
16956
|
const allGroups = useMemo14(() => {
|
|
16468
16957
|
var _a3, _b;
|
|
16469
16958
|
if (!formDataResponse) return [];
|
|
16470
|
-
|
|
16959
|
+
const groups = [
|
|
16471
16960
|
...(_a3 = formDataResponse.direct_groups) != null ? _a3 : [],
|
|
16472
16961
|
...(_b = formDataResponse.nominated_groups) != null ? _b : []
|
|
16473
16962
|
];
|
|
16474
|
-
|
|
16963
|
+
if (groups.length > 0) {
|
|
16964
|
+
return groups;
|
|
16965
|
+
}
|
|
16966
|
+
const flatGroup = legacyFlatGroup(formDataResponse, t("yourData"));
|
|
16967
|
+
if (buildGroupPurposes(flatGroup).length === 0) {
|
|
16968
|
+
return [];
|
|
16969
|
+
}
|
|
16970
|
+
return [flatGroup];
|
|
16971
|
+
}, [formDataResponse, t]);
|
|
16475
16972
|
const skipProductStep = allGroups.length === 1;
|
|
16476
16973
|
const selectedGroup = useMemo14(() => {
|
|
16477
16974
|
var _a3, _b;
|
|
@@ -16503,7 +17000,7 @@ function Form({ onCreateRequest }) {
|
|
|
16503
17000
|
setSelectedProductKey(null);
|
|
16504
17001
|
}
|
|
16505
17002
|
setNominationData({ nominee_email: "", nominee_mobile: "" });
|
|
16506
|
-
if (requestType
|
|
17003
|
+
if (isRequestType(requestType, "grievance" /* GRIEVANCE */) && grievanceOptions.length > 0) {
|
|
16507
17004
|
const resetGrievances = grievanceOptions.reduce(
|
|
16508
17005
|
(acc, option) => {
|
|
16509
17006
|
acc[option.value] = false;
|
|
@@ -16532,12 +17029,10 @@ function Form({ onCreateRequest }) {
|
|
|
16532
17029
|
() => groupPurposes.filter((p) => selectedPurposes.has(p.uuid)).map((p) => p.name).filter(Boolean),
|
|
16533
17030
|
[groupPurposes, selectedPurposes]
|
|
16534
17031
|
);
|
|
16535
|
-
const selectedErasurePurposeNames = useMemo14(
|
|
16536
|
-
|
|
16537
|
-
|
|
16538
|
-
|
|
16539
|
-
return selectedErasurePurposeList.join(", ");
|
|
16540
|
-
}, [selectedErasurePurposeList, t]);
|
|
17032
|
+
const selectedErasurePurposeNames = useMemo14(
|
|
17033
|
+
() => resolveErasurePurposeNames(selectedErasurePurposeList, t("revokeConsentModalYourPurposes")),
|
|
17034
|
+
[selectedErasurePurposeList, t]
|
|
17035
|
+
);
|
|
16541
17036
|
const togglePurpose = useCallback10(
|
|
16542
17037
|
(purpose) => {
|
|
16543
17038
|
const uuid = purpose.uuid;
|
|
@@ -16644,7 +17139,7 @@ function Form({ onCreateRequest }) {
|
|
|
16644
17139
|
if (isProductScopedRequestType(requestType)) {
|
|
16645
17140
|
if (allGroups.length === 0) return false;
|
|
16646
17141
|
if (!selectedGroup) return false;
|
|
16647
|
-
if (requestType
|
|
17142
|
+
if (isRequestType(requestType, "CORRECTION" /* CORRECTION */)) {
|
|
16648
17143
|
if (selectedCorrectionFields.size === 0) return false;
|
|
16649
17144
|
return Array.from(selectedCorrectionFields).every((fieldUuid) => {
|
|
16650
17145
|
var _a3, _b;
|
|
@@ -16652,15 +17147,15 @@ function Form({ onCreateRequest }) {
|
|
|
16652
17147
|
return Boolean(((_a3 = v == null ? void 0 : v.current) == null ? void 0 : _a3.trim()) && ((_b = v == null ? void 0 : v.updated) == null ? void 0 : _b.trim()));
|
|
16653
17148
|
});
|
|
16654
17149
|
}
|
|
16655
|
-
if (requestType
|
|
17150
|
+
if (isRequestType(requestType, "ACCESS" /* ACCESS */) || isErasureRequestType(requestType)) {
|
|
16656
17151
|
return selectedPurposes.size > 0;
|
|
16657
17152
|
}
|
|
16658
17153
|
return false;
|
|
16659
17154
|
}
|
|
16660
|
-
if (requestType
|
|
17155
|
+
if (isRequestType(requestType, "grievance" /* GRIEVANCE */)) {
|
|
16661
17156
|
return Object.values(selectedGrievances).some(Boolean);
|
|
16662
17157
|
}
|
|
16663
|
-
if (requestType
|
|
17158
|
+
if (isRequestType(requestType, "nomination" /* NOMINATION */)) {
|
|
16664
17159
|
return Boolean(nominationData.nominee_email);
|
|
16665
17160
|
}
|
|
16666
17161
|
return false;
|
|
@@ -16674,9 +17169,17 @@ function Form({ onCreateRequest }) {
|
|
|
16674
17169
|
selectedGrievances,
|
|
16675
17170
|
nominationData
|
|
16676
17171
|
]);
|
|
16677
|
-
const isFormValid = useMemo14(
|
|
17172
|
+
const isFormValid = useMemo14(
|
|
17173
|
+
() => Boolean(contact.trim()) && detailsValid && confirmChecked,
|
|
17174
|
+
[contact, detailsValid, confirmChecked]
|
|
17175
|
+
);
|
|
16678
17176
|
const handleUpload = useCallback10(async () => {
|
|
16679
17177
|
if (!organizationId || !workspaceId) return;
|
|
17178
|
+
const caseUuid = formDataResponse == null ? void 0 : formDataResponse.uuid;
|
|
17179
|
+
if (!caseUuid) {
|
|
17180
|
+
Alert5.alert(t("uploadFile"), t("unableToUpload") || "Unable to upload file. Please try again.");
|
|
17181
|
+
return;
|
|
17182
|
+
}
|
|
16680
17183
|
try {
|
|
16681
17184
|
const file = await pickFile();
|
|
16682
17185
|
if (!file) return;
|
|
@@ -16693,11 +17196,11 @@ function Form({ onCreateRequest }) {
|
|
|
16693
17196
|
"payload",
|
|
16694
17197
|
JSON.stringify({
|
|
16695
17198
|
organization_uuid: organizationId || "",
|
|
16696
|
-
space: `privacy/${
|
|
17199
|
+
space: `privacy/${caseUuid}`,
|
|
16697
17200
|
uuid: docUuid,
|
|
16698
17201
|
is_public: true,
|
|
16699
17202
|
allow_ai_processing: true,
|
|
16700
|
-
metadata: { group_by: "privacy", product: "privacy_center" }
|
|
17203
|
+
metadata: { group_by: "privacy", case_uuid: caseUuid, product: "privacy_center" }
|
|
16701
17204
|
})
|
|
16702
17205
|
);
|
|
16703
17206
|
const result = await uploadFileWithS2S({
|
|
@@ -16717,18 +17220,28 @@ function Form({ onCreateRequest }) {
|
|
|
16717
17220
|
} finally {
|
|
16718
17221
|
setIsUploading(false);
|
|
16719
17222
|
}
|
|
16720
|
-
}, [organizationId, workspaceId, authContext, consentClient, baseUrl, t]);
|
|
17223
|
+
}, [organizationId, workspaceId, authContext, consentClient, baseUrl, t, formDataResponse]);
|
|
16721
17224
|
const removeUploadedDoc = useCallback10((uuid) => {
|
|
16722
17225
|
setUploadedDocs((prev) => prev.filter((d) => d.uuid !== uuid));
|
|
16723
17226
|
}, []);
|
|
17227
|
+
const alertSubmitFailed = useCallback10(
|
|
17228
|
+
(message) => {
|
|
17229
|
+
Alert5.alert(t("submit"), message || t("unableToSubmit") || "Unable to submit request. Please try again.");
|
|
17230
|
+
},
|
|
17231
|
+
[t]
|
|
17232
|
+
);
|
|
16724
17233
|
const handleSubmit = useCallback10(async (revoke = false) => {
|
|
16725
|
-
var _a3
|
|
16726
|
-
if (!organizationId || !workspaceId || !contact || !requestType || !formDataResponse)
|
|
17234
|
+
var _a3;
|
|
17235
|
+
if (!organizationId || !workspaceId || !contact || !requestType || !formDataResponse) {
|
|
17236
|
+
alertSubmitFailed();
|
|
17237
|
+
return;
|
|
17238
|
+
}
|
|
16727
17239
|
setRevokeConsentOnFulfilment(revoke);
|
|
16728
17240
|
setIsSubmitting(true);
|
|
16729
17241
|
try {
|
|
16730
17242
|
const isProductScoped = isProductScopedRequestType(requestType);
|
|
16731
|
-
const
|
|
17243
|
+
const isLegacyFlatSelection = (selectedGroup == null ? void 0 : selectedGroup.product_uuid) === LEGACY_PRODUCT_GROUP_UUID;
|
|
17244
|
+
const anchorGroup = isProductScoped && !isLegacyFlatSelection ? selectedGroup : null;
|
|
16732
17245
|
const updatePurposes = Array.from(selectedPurposes).map((uuid) => ({
|
|
16733
17246
|
purpose_uuid: uuid,
|
|
16734
17247
|
data_element_uuids: Array.from(selectedDataElements.get(uuid) || [])
|
|
@@ -16749,27 +17262,27 @@ function Form({ onCreateRequest }) {
|
|
|
16749
17262
|
purposes: updatePurposes,
|
|
16750
17263
|
correction_data: correctionData,
|
|
16751
17264
|
grievance_types: grievanceTypes,
|
|
16752
|
-
...requestType
|
|
17265
|
+
...isRequestType(requestType, "nomination" /* NOMINATION */) ? { nomination_data: nominationData } : {}
|
|
16753
17266
|
},
|
|
16754
|
-
time_period: requestType
|
|
17267
|
+
time_period: isRequestType(requestType, "ACCESS" /* ACCESS */) ? parseInt(timePeriod || "30", 10) : 0,
|
|
16755
17268
|
requestor_note: additionalNote || "",
|
|
16756
|
-
...requestType
|
|
17269
|
+
...erasureConsentPayload(requestType, revoke),
|
|
16757
17270
|
...anchorGroup ? { product_uuid: anchorGroup.product_uuid } : {},
|
|
16758
17271
|
...(anchorGroup == null ? void 0 : anchorGroup.nominator) ? { data_principal_uuid: anchorGroup.nominator.uuid } : {}
|
|
16759
17272
|
};
|
|
16760
17273
|
const response = await createCaseRequest(organizationId, workspaceId, request, false, false, authContext, consentClient);
|
|
16761
|
-
const
|
|
16762
|
-
const newCaseId = (
|
|
17274
|
+
const caseRef = extractCaseRef(response);
|
|
17275
|
+
const newCaseId = (caseRef == null ? void 0 : caseRef.case_id) || (caseRef == null ? void 0 : caseRef.uuid) || null;
|
|
16763
17276
|
if (newCaseId) {
|
|
16764
17277
|
setCaseId(newCaseId);
|
|
16765
|
-
setSubmittedProductName((
|
|
17278
|
+
setSubmittedProductName((_a3 = anchorGroup == null ? void 0 : anchorGroup.product_name) != null ? _a3 : "");
|
|
16766
17279
|
setIsSubmitted(true);
|
|
16767
17280
|
} else {
|
|
16768
|
-
|
|
17281
|
+
alertSubmitFailed();
|
|
16769
17282
|
}
|
|
16770
17283
|
} catch (error) {
|
|
16771
17284
|
console.warn("Error submitting request:", error);
|
|
16772
|
-
|
|
17285
|
+
alertSubmitFailed(error == null ? void 0 : error.message);
|
|
16773
17286
|
} finally {
|
|
16774
17287
|
setIsSubmitting(false);
|
|
16775
17288
|
}
|
|
@@ -16792,11 +17305,13 @@ function Form({ onCreateRequest }) {
|
|
|
16792
17305
|
consentClient,
|
|
16793
17306
|
groupDataElements,
|
|
16794
17307
|
uploadedDocs,
|
|
16795
|
-
|
|
17308
|
+
alertSubmitFailed
|
|
16796
17309
|
]);
|
|
16797
17310
|
const handleSubmitClick = useCallback10(() => {
|
|
16798
|
-
if (!isFormValid)
|
|
16799
|
-
|
|
17311
|
+
if (!isFormValid) {
|
|
17312
|
+
return;
|
|
17313
|
+
}
|
|
17314
|
+
if (isErasureRequestType(requestType)) {
|
|
16800
17315
|
setIsErasureConsentModalOpen(true);
|
|
16801
17316
|
return;
|
|
16802
17317
|
}
|
|
@@ -16885,7 +17400,7 @@ function Form({ onCreateRequest }) {
|
|
|
16885
17400
|
if (groupPurposes.length === 0) {
|
|
16886
17401
|
return /* @__PURE__ */ jsx43(Text25, { style: [styles33.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No purposes available" });
|
|
16887
17402
|
}
|
|
16888
|
-
const isErasure = requestType
|
|
17403
|
+
const isErasure = isErasureRequestType(requestType);
|
|
16889
17404
|
const allPurposesSelected = groupPurposes.every(
|
|
16890
17405
|
(p) => (p.data_elements || []).every((de) => {
|
|
16891
17406
|
var _a3;
|
|
@@ -17005,18 +17520,18 @@ function Form({ onCreateRequest }) {
|
|
|
17005
17520
|
] }),
|
|
17006
17521
|
selectedGroup ? /* @__PURE__ */ jsxs27(View32, { style: styles33.section, children: [
|
|
17007
17522
|
/* @__PURE__ */ jsx43(Text25, { style: [styles33.sectionLabel, { color: colors.textSecondary }], children: t("requestDetails") }),
|
|
17008
|
-
/* @__PURE__ */ jsx43(View32, { style: [styles33.sectionCard, elevation.card, { backgroundColor: colors.surface }], children: requestType
|
|
17523
|
+
/* @__PURE__ */ jsx43(View32, { style: [styles33.sectionCard, elevation.card, { backgroundColor: colors.surface }], children: isRequestType(requestType, "CORRECTION" /* CORRECTION */) ? renderCorrectionFields() : renderPurposeFields() })
|
|
17009
17524
|
] }) : /* @__PURE__ */ jsxs27(View32, { style: [styles33.hintCard, { backgroundColor: colors.surfaceAlt }], children: [
|
|
17010
17525
|
/* @__PURE__ */ jsx43(Icon, { name: "circle-alert", size: 18, color: colors.textSecondary }),
|
|
17011
17526
|
/* @__PURE__ */ jsx43(Text25, { style: [styles33.hintText, { color: colors.textSecondary }], children: t("selectProductFirst", { defaultValue: "Select a product to continue" }) })
|
|
17012
17527
|
] }),
|
|
17013
|
-
requestType
|
|
17528
|
+
isRequestType(requestType, "ACCESS" /* ACCESS */) && selectedGroup ? /* @__PURE__ */ jsxs27(View32, { style: styles33.section, children: [
|
|
17014
17529
|
/* @__PURE__ */ jsx43(Text25, { style: [styles33.sectionLabel, { color: colors.textSecondary }], children: t("timePeriod") }),
|
|
17015
17530
|
/* @__PURE__ */ jsx43(PCSelect, { value: timePeriod, options: timePeriodOptions, onChange: setTimePeriod, placeholder: t("timePeriod") })
|
|
17016
17531
|
] }) : null
|
|
17017
17532
|
] });
|
|
17018
17533
|
}
|
|
17019
|
-
if (requestType
|
|
17534
|
+
if (isRequestType(requestType, "grievance" /* GRIEVANCE */)) {
|
|
17020
17535
|
if (grievanceOptions.length === 0) {
|
|
17021
17536
|
return /* @__PURE__ */ jsx43(View32, { style: styles33.stepBody, children: /* @__PURE__ */ jsx43(Text25, { style: [styles33.placeholder, { color: colors.textSecondary }], children: t("noPurposesAvailable") || "No grievance types available" }) });
|
|
17022
17537
|
}
|
|
@@ -17032,7 +17547,7 @@ function Form({ onCreateRequest }) {
|
|
|
17032
17547
|
] })
|
|
17033
17548
|
] }) });
|
|
17034
17549
|
}
|
|
17035
|
-
if (requestType
|
|
17550
|
+
if (isRequestType(requestType, "nomination" /* NOMINATION */)) {
|
|
17036
17551
|
return /* @__PURE__ */ jsx43(View32, { style: styles33.stepBody, children: /* @__PURE__ */ jsxs27(View32, { style: styles33.section, children: [
|
|
17037
17552
|
/* @__PURE__ */ jsx43(Text25, { style: [styles33.sectionLabel, { color: colors.textSecondary }], children: t("enterNomineeDetails") }),
|
|
17038
17553
|
/* @__PURE__ */ jsxs27(View32, { style: [styles33.sectionCard, elevation.card, { backgroundColor: colors.surface }], children: [
|
|
@@ -18014,6 +18529,22 @@ import { useMemo as useMemo18, useState as useState21 } from "react";
|
|
|
18014
18529
|
import { StyleSheet as StyleSheet39, Text as Text29, TouchableOpacity as TouchableOpacity14, View as View37 } from "react-native";
|
|
18015
18530
|
import { useTranslation as useTranslation18 } from "react-i18next";
|
|
18016
18531
|
|
|
18532
|
+
// src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx
|
|
18533
|
+
import { createContext as createContext7, useContext as useContext7 } from "react";
|
|
18534
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
18535
|
+
var ProfileSwitchContext = createContext7({
|
|
18536
|
+
switchProfile: null
|
|
18537
|
+
});
|
|
18538
|
+
function ProfileSwitchProvider({
|
|
18539
|
+
switchProfile,
|
|
18540
|
+
children
|
|
18541
|
+
}) {
|
|
18542
|
+
return /* @__PURE__ */ jsx46(ProfileSwitchContext.Provider, { value: { switchProfile }, children });
|
|
18543
|
+
}
|
|
18544
|
+
function useProfileSwitch() {
|
|
18545
|
+
return useContext7(ProfileSwitchContext);
|
|
18546
|
+
}
|
|
18547
|
+
|
|
18017
18548
|
// src/RedactoPrivacyCenter/lib/navigation.ts
|
|
18018
18549
|
function navigateBack(onBack) {
|
|
18019
18550
|
var _a3, _b;
|
|
@@ -18037,7 +18568,7 @@ function navigateBack(onBack) {
|
|
|
18037
18568
|
|
|
18038
18569
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationBell.tsx
|
|
18039
18570
|
import { StyleSheet as StyleSheet37, Text as Text27, TouchableOpacity as TouchableOpacity12, View as View35 } from "react-native";
|
|
18040
|
-
import { jsx as
|
|
18571
|
+
import { jsx as jsx47, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
18041
18572
|
var NotificationBell = ({ count, onPress }) => {
|
|
18042
18573
|
const { colors } = useTheme();
|
|
18043
18574
|
const showBadge = count > 0;
|
|
@@ -18052,8 +18583,8 @@ var NotificationBell = ({ count, onPress }) => {
|
|
|
18052
18583
|
accessibilityRole: "button",
|
|
18053
18584
|
accessibilityLabel: showBadge ? `Notifications, ${count} unread` : "Notifications",
|
|
18054
18585
|
children: [
|
|
18055
|
-
/* @__PURE__ */
|
|
18056
|
-
showBadge ? /* @__PURE__ */
|
|
18586
|
+
/* @__PURE__ */ jsx47(Icon, { name: "bell", size: 22, color: colors.text }),
|
|
18587
|
+
showBadge ? /* @__PURE__ */ jsx47(View35, { style: [styles36.badge, { backgroundColor: colors.error, borderColor: colors.canvasSubtle }], children: /* @__PURE__ */ jsx47(Text27, { style: styles36.badgeText, numberOfLines: 1, children: badgeLabel }) }) : null
|
|
18057
18588
|
]
|
|
18058
18589
|
}
|
|
18059
18590
|
);
|
|
@@ -18097,6 +18628,7 @@ function useUnreadCount() {
|
|
|
18097
18628
|
const loadRef = useRef8();
|
|
18098
18629
|
loadRef.current = async () => {
|
|
18099
18630
|
if (!organizationId || !workspaceId) return;
|
|
18631
|
+
if (isRefreshBlocked(authContext)) return;
|
|
18100
18632
|
const res = await fetchUnreadCount(organizationId, workspaceId, authContext, consentClient);
|
|
18101
18633
|
if (res && typeof res.count === "number") setCount(res.count);
|
|
18102
18634
|
};
|
|
@@ -18118,7 +18650,7 @@ function useUnreadCount() {
|
|
|
18118
18650
|
import { useMemo as useMemo17, useState as useState20 } from "react";
|
|
18119
18651
|
import { StyleSheet as StyleSheet38, Text as Text28, TouchableOpacity as TouchableOpacity13, View as View36 } from "react-native";
|
|
18120
18652
|
import { useTranslation as useTranslation17 } from "react-i18next";
|
|
18121
|
-
import { jsx as
|
|
18653
|
+
import { jsx as jsx48, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
18122
18654
|
var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
18123
18655
|
const { t } = useTranslation17();
|
|
18124
18656
|
const { colors, branding } = useTheme();
|
|
@@ -18140,15 +18672,15 @@ var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
|
18140
18672
|
i18n_default.changeLanguage(value);
|
|
18141
18673
|
};
|
|
18142
18674
|
const brandName = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
18143
|
-
return /* @__PURE__ */
|
|
18675
|
+
return /* @__PURE__ */ jsx48(BottomSheet, { visible, onClose, title: t("menu") || "Menu", children: /* @__PURE__ */ jsxs30(View36, { style: styles37.body, children: [
|
|
18144
18676
|
/* @__PURE__ */ jsxs30(View36, { style: [styles37.identity, { backgroundColor: colors.surfaceAlt }], children: [
|
|
18145
|
-
/* @__PURE__ */
|
|
18677
|
+
/* @__PURE__ */ jsx48(PCAvatar, { name: brandName, imageUrl: branding == null ? void 0 : branding.icon_url, size: 40 }),
|
|
18146
18678
|
/* @__PURE__ */ jsxs30(View36, { style: styles37.identityText, children: [
|
|
18147
|
-
/* @__PURE__ */
|
|
18148
|
-
email ? /* @__PURE__ */
|
|
18679
|
+
/* @__PURE__ */ jsx48(Text28, { style: [styles37.brandName, { color: colors.text }], numberOfLines: 1, children: brandName }),
|
|
18680
|
+
email ? /* @__PURE__ */ jsx48(Text28, { style: [styles37.email, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
18149
18681
|
] })
|
|
18150
18682
|
] }),
|
|
18151
|
-
/* @__PURE__ */
|
|
18683
|
+
/* @__PURE__ */ jsx48(View36, { style: [styles37.menuGroup, { borderColor: colors.border, backgroundColor: colors.surface }], children: items.map((item, index) => {
|
|
18152
18684
|
const isActive = currentPage === item.page;
|
|
18153
18685
|
return /* @__PURE__ */ jsxs30(View36, { children: [
|
|
18154
18686
|
/* @__PURE__ */ jsxs30(
|
|
@@ -18164,8 +18696,8 @@ var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
|
18164
18696
|
accessibilityState: { selected: isActive },
|
|
18165
18697
|
accessibilityLabel: item.label,
|
|
18166
18698
|
children: [
|
|
18167
|
-
/* @__PURE__ */
|
|
18168
|
-
/* @__PURE__ */
|
|
18699
|
+
/* @__PURE__ */ jsx48(IconTile, { name: item.icon, tone: item.tone, size: "sm" }),
|
|
18700
|
+
/* @__PURE__ */ jsx48(
|
|
18169
18701
|
Text28,
|
|
18170
18702
|
{
|
|
18171
18703
|
style: [styles37.menuLabel, { color: isActive ? colors.primary : colors.text }],
|
|
@@ -18173,14 +18705,14 @@ var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
|
18173
18705
|
children: item.label
|
|
18174
18706
|
}
|
|
18175
18707
|
),
|
|
18176
|
-
/* @__PURE__ */
|
|
18708
|
+
/* @__PURE__ */ jsx48(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary })
|
|
18177
18709
|
]
|
|
18178
18710
|
}
|
|
18179
18711
|
),
|
|
18180
|
-
index < items.length - 1 ? /* @__PURE__ */
|
|
18712
|
+
index < items.length - 1 ? /* @__PURE__ */ jsx48(View36, { style: [styles37.separator, { backgroundColor: colors.hairline }] }) : null
|
|
18181
18713
|
] }, item.page);
|
|
18182
18714
|
}) }),
|
|
18183
|
-
/* @__PURE__ */
|
|
18715
|
+
/* @__PURE__ */ jsx48(
|
|
18184
18716
|
PCSelect,
|
|
18185
18717
|
{
|
|
18186
18718
|
label: t("language"),
|
|
@@ -18201,7 +18733,7 @@ var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
|
18201
18733
|
activeOpacity: 0.7,
|
|
18202
18734
|
accessibilityRole: "button",
|
|
18203
18735
|
children: [
|
|
18204
|
-
/* @__PURE__ */
|
|
18736
|
+
/* @__PURE__ */ jsx48(
|
|
18205
18737
|
Icon,
|
|
18206
18738
|
{
|
|
18207
18739
|
name: onBack === "signout" ? "log-out" : "arrow-left",
|
|
@@ -18209,11 +18741,11 @@ var NavDrawer = ({ visible, onClose, onBack }) => {
|
|
|
18209
18741
|
color: onBack === "signout" ? colors.error : colors.text
|
|
18210
18742
|
}
|
|
18211
18743
|
),
|
|
18212
|
-
/* @__PURE__ */
|
|
18744
|
+
/* @__PURE__ */ jsx48(Text28, { style: [styles37.actionLabel, { color: onBack === "signout" ? colors.error : colors.text }], children: onBack === "signout" ? t("signOut") || "Sign Out" : t("back") || "Back" })
|
|
18213
18745
|
]
|
|
18214
18746
|
}
|
|
18215
18747
|
) : null,
|
|
18216
|
-
/* @__PURE__ */
|
|
18748
|
+
/* @__PURE__ */ jsx48(Footer, { inline: true })
|
|
18217
18749
|
] }) });
|
|
18218
18750
|
};
|
|
18219
18751
|
var styles37 = StyleSheet38.create({
|
|
@@ -18275,7 +18807,7 @@ var styles37 = StyleSheet38.create({
|
|
|
18275
18807
|
});
|
|
18276
18808
|
|
|
18277
18809
|
// src/RedactoPrivacyCenter/components/SlimTopBar.tsx
|
|
18278
|
-
import { Fragment as Fragment11, jsx as
|
|
18810
|
+
import { Fragment as Fragment11, jsx as jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
18279
18811
|
var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
18280
18812
|
const { t } = useTranslation18();
|
|
18281
18813
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
@@ -18284,6 +18816,7 @@ var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
|
18284
18816
|
const unreadCount = useUnreadCount();
|
|
18285
18817
|
const insets = useSafeInsets();
|
|
18286
18818
|
const [menuOpen, setMenuOpen] = useState21(false);
|
|
18819
|
+
const { switchProfile } = useProfileSwitch();
|
|
18287
18820
|
const pageChrome = PAGE_CHROME_BY_PAGE[currentPage];
|
|
18288
18821
|
const isDetail = mode === "detail";
|
|
18289
18822
|
const brandLabel = useMemo18(
|
|
@@ -18302,7 +18835,7 @@ var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
|
18302
18835
|
navigateBack(onBack);
|
|
18303
18836
|
};
|
|
18304
18837
|
return /* @__PURE__ */ jsxs31(Fragment11, { children: [
|
|
18305
|
-
/* @__PURE__ */
|
|
18838
|
+
/* @__PURE__ */ jsx49(
|
|
18306
18839
|
View37,
|
|
18307
18840
|
{
|
|
18308
18841
|
style: [
|
|
@@ -18310,7 +18843,7 @@ var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
|
18310
18843
|
{ backgroundColor: colors.canvasSubtle, borderBottomColor: colors.hairline, paddingTop: insets.top + spacing.xs }
|
|
18311
18844
|
],
|
|
18312
18845
|
children: isDetail ? /* @__PURE__ */ jsxs31(View37, { style: styles38.detailRow, children: [
|
|
18313
|
-
/* @__PURE__ */
|
|
18846
|
+
/* @__PURE__ */ jsx49(
|
|
18314
18847
|
TouchableOpacity14,
|
|
18315
18848
|
{
|
|
18316
18849
|
style: styles38.iconButton,
|
|
@@ -18319,27 +18852,39 @@ var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
|
18319
18852
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
18320
18853
|
accessibilityRole: "button",
|
|
18321
18854
|
accessibilityLabel: t("back") || "Back",
|
|
18322
|
-
children: /* @__PURE__ */
|
|
18855
|
+
children: /* @__PURE__ */ jsx49(Icon, { name: "arrow-left", size: 22, color: colors.text })
|
|
18323
18856
|
}
|
|
18324
18857
|
),
|
|
18325
|
-
/* @__PURE__ */
|
|
18326
|
-
/* @__PURE__ */
|
|
18858
|
+
/* @__PURE__ */ jsx49(Text29, { style: [styles38.detailTitle, { color: colors.text }], numberOfLines: 1, children: t((pageChrome == null ? void 0 : pageChrome.titleKey) || "privacyCenter") }),
|
|
18859
|
+
/* @__PURE__ */ jsx49(View37, { style: styles38.placeholder })
|
|
18327
18860
|
] }) : /* @__PURE__ */ jsxs31(View37, { style: styles38.row, children: [
|
|
18328
|
-
/* @__PURE__ */
|
|
18861
|
+
/* @__PURE__ */ jsx49(View37, { style: styles38.brandWrap, children: (branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ jsx49(
|
|
18329
18862
|
BrandImage,
|
|
18330
18863
|
{
|
|
18331
18864
|
uri: branding.logo_url,
|
|
18332
18865
|
height: 24,
|
|
18333
18866
|
maxWidth: 124,
|
|
18334
|
-
fallback: /* @__PURE__ */
|
|
18867
|
+
fallback: /* @__PURE__ */ jsx49(PCAvatar, { name: brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 24 })
|
|
18335
18868
|
}
|
|
18336
18869
|
) : /* @__PURE__ */ jsxs31(View37, { style: styles38.brandLockup, children: [
|
|
18337
|
-
/* @__PURE__ */
|
|
18338
|
-
/* @__PURE__ */
|
|
18870
|
+
/* @__PURE__ */ jsx49(PCAvatar, { name: brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 24 }),
|
|
18871
|
+
/* @__PURE__ */ jsx49(Text29, { style: [styles38.brandText, { color: colors.text }], numberOfLines: 1, children: brandLabel })
|
|
18339
18872
|
] }) }),
|
|
18340
18873
|
/* @__PURE__ */ jsxs31(View37, { style: styles38.actions, children: [
|
|
18341
|
-
/* @__PURE__ */
|
|
18342
|
-
|
|
18874
|
+
switchProfile ? /* @__PURE__ */ jsx49(
|
|
18875
|
+
TouchableOpacity14,
|
|
18876
|
+
{
|
|
18877
|
+
style: styles38.iconButton,
|
|
18878
|
+
onPress: switchProfile,
|
|
18879
|
+
activeOpacity: 0.7,
|
|
18880
|
+
hitSlop: DEFAULT_HIT_SLOP,
|
|
18881
|
+
accessibilityRole: "button",
|
|
18882
|
+
accessibilityLabel: t("switchProfile"),
|
|
18883
|
+
children: /* @__PURE__ */ jsx49(Icon, { name: "users", size: 22, color: colors.text })
|
|
18884
|
+
}
|
|
18885
|
+
) : null,
|
|
18886
|
+
/* @__PURE__ */ jsx49(NotificationBell, { count: unreadCount, onPress: () => navigateTo("notifications") }),
|
|
18887
|
+
/* @__PURE__ */ jsx49(
|
|
18343
18888
|
TouchableOpacity14,
|
|
18344
18889
|
{
|
|
18345
18890
|
style: styles38.iconButton,
|
|
@@ -18348,14 +18893,14 @@ var SlimTopBar = ({ mode = "primary", onBack }) => {
|
|
|
18348
18893
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
18349
18894
|
accessibilityRole: "button",
|
|
18350
18895
|
accessibilityLabel: t("menu") || "Menu",
|
|
18351
|
-
children: /* @__PURE__ */
|
|
18896
|
+
children: /* @__PURE__ */ jsx49(Icon, { name: "menu", size: 22, color: colors.text })
|
|
18352
18897
|
}
|
|
18353
18898
|
)
|
|
18354
18899
|
] })
|
|
18355
18900
|
] })
|
|
18356
18901
|
}
|
|
18357
18902
|
),
|
|
18358
|
-
/* @__PURE__ */
|
|
18903
|
+
/* @__PURE__ */ jsx49(NavDrawer, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
18359
18904
|
] });
|
|
18360
18905
|
};
|
|
18361
18906
|
var styles38 = StyleSheet39.create({
|
|
@@ -18416,23 +18961,245 @@ var styles38 = StyleSheet39.create({
|
|
|
18416
18961
|
|
|
18417
18962
|
// src/RedactoPrivacyCenter/components/PrivacyCenterEmptyState.tsx
|
|
18418
18963
|
import { useTranslation as useTranslation19 } from "react-i18next";
|
|
18419
|
-
import { jsx as
|
|
18964
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
18420
18965
|
function PrivacyCenterEmptyState() {
|
|
18421
18966
|
const { t } = useTranslation19();
|
|
18422
|
-
return /* @__PURE__ */
|
|
18967
|
+
return /* @__PURE__ */ jsx50(PCEmpty, { iconName: "shield", title: t("noDataTitle"), description: t("noDataDescription") });
|
|
18968
|
+
}
|
|
18969
|
+
|
|
18970
|
+
// src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx
|
|
18971
|
+
import { useTranslation as useTranslation20 } from "react-i18next";
|
|
18972
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
18973
|
+
function PrivacyCenterSessionExpired() {
|
|
18974
|
+
const { t } = useTranslation20();
|
|
18975
|
+
return /* @__PURE__ */ jsx51(
|
|
18976
|
+
PCEmpty,
|
|
18977
|
+
{
|
|
18978
|
+
iconName: "shield",
|
|
18979
|
+
title: t("sessionExpiredTitle"),
|
|
18980
|
+
description: t("sessionExpiredDescription")
|
|
18981
|
+
}
|
|
18982
|
+
);
|
|
18983
|
+
}
|
|
18984
|
+
|
|
18985
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
18986
|
+
import { useCallback as useCallback11, useEffect as useEffect16, useState as useState22 } from "react";
|
|
18987
|
+
import { StyleSheet as StyleSheet41, View as View39 } from "react-native";
|
|
18988
|
+
|
|
18989
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18990
|
+
import { ScrollView as ScrollView8, StyleSheet as StyleSheet40, Text as Text30, TouchableOpacity as TouchableOpacity15, View as View38 } from "react-native";
|
|
18991
|
+
import { useTranslation as useTranslation21 } from "react-i18next";
|
|
18992
|
+
|
|
18993
|
+
// src/RedactoPrivacyCenter/lib/identityLabels.ts
|
|
18994
|
+
var identityPrimaryValue = (candidate) => {
|
|
18995
|
+
const orgUserId = candidate.org_user_id || "";
|
|
18996
|
+
const email = candidate.primary_email || "";
|
|
18997
|
+
const mobile = candidate.primary_mobile || "";
|
|
18998
|
+
return { orgUserId, fallback: email || mobile || candidate.uuid };
|
|
18999
|
+
};
|
|
19000
|
+
var identitySecondaryLabels = (candidate, primaryLabel) => {
|
|
19001
|
+
const email = candidate.primary_email || "";
|
|
19002
|
+
const mobile = candidate.primary_mobile || "";
|
|
19003
|
+
return [email, mobile].filter(
|
|
19004
|
+
(value, index, all) => value !== "" && value !== primaryLabel && all.indexOf(value) === index
|
|
19005
|
+
);
|
|
19006
|
+
};
|
|
19007
|
+
var selectableIdentities = (candidates) => candidates.filter((candidate) => Boolean(candidate.uuid));
|
|
19008
|
+
|
|
19009
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
19010
|
+
import { jsx as jsx52, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
19011
|
+
var SelectUser = ({
|
|
19012
|
+
candidates,
|
|
19013
|
+
onSelect,
|
|
19014
|
+
busyUuid,
|
|
19015
|
+
error
|
|
19016
|
+
}) => {
|
|
19017
|
+
const { t } = useTranslation21();
|
|
19018
|
+
const { colors } = useTheme();
|
|
19019
|
+
const selectable = selectableIdentities(candidates);
|
|
19020
|
+
const busy = busyUuid !== null;
|
|
19021
|
+
return /* @__PURE__ */ jsxs32(ScrollView8, { contentContainerStyle: styles39.container, children: [
|
|
19022
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.title, styles39.heading, { color: colors.text }], children: t("chooseYourProfile") }),
|
|
19023
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.body, styles39.subtitle, { color: colors.textSecondary }], children: t("loginIdentifierLinkedToMultipleProfiles") }),
|
|
19024
|
+
error ? /* @__PURE__ */ jsx52(Text30, { style: [typography.caption, styles39.error, { color: colors.error }], children: error }) : null,
|
|
19025
|
+
selectable.map((candidate) => {
|
|
19026
|
+
const { orgUserId, fallback } = identityPrimaryValue(candidate);
|
|
19027
|
+
const primaryLabel = orgUserId ? t("userIdLabel", { id: orgUserId }) : fallback;
|
|
19028
|
+
const secondaryLabels = identitySecondaryLabels(candidate, primaryLabel);
|
|
19029
|
+
const isBusy = busyUuid === candidate.uuid;
|
|
19030
|
+
return /* @__PURE__ */ jsxs32(
|
|
19031
|
+
TouchableOpacity15,
|
|
19032
|
+
{
|
|
19033
|
+
accessibilityRole: "button",
|
|
19034
|
+
disabled: busy,
|
|
19035
|
+
onPress: () => onSelect(candidate.uuid),
|
|
19036
|
+
style: [
|
|
19037
|
+
styles39.row,
|
|
19038
|
+
{
|
|
19039
|
+
backgroundColor: colors.surface,
|
|
19040
|
+
borderColor: isBusy ? colors.primary : colors.border
|
|
19041
|
+
}
|
|
19042
|
+
],
|
|
19043
|
+
children: [
|
|
19044
|
+
/* @__PURE__ */ jsxs32(View38, { style: styles39.rowText, children: [
|
|
19045
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.label, { color: colors.text }], children: primaryLabel }),
|
|
19046
|
+
secondaryLabels.map((label) => /* @__PURE__ */ jsx52(
|
|
19047
|
+
Text30,
|
|
19048
|
+
{
|
|
19049
|
+
style: [typography.caption, styles39.secondary, { color: colors.textSecondary }],
|
|
19050
|
+
children: label
|
|
19051
|
+
},
|
|
19052
|
+
label
|
|
19053
|
+
))
|
|
19054
|
+
] }),
|
|
19055
|
+
isBusy ? /* @__PURE__ */ jsx52(Text30, { style: [typography.caption, { color: colors.textSecondary }], children: t("signingInEllipsis") }) : /* @__PURE__ */ jsx52(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary })
|
|
19056
|
+
]
|
|
19057
|
+
},
|
|
19058
|
+
candidate.uuid
|
|
19059
|
+
);
|
|
19060
|
+
})
|
|
19061
|
+
] });
|
|
19062
|
+
};
|
|
19063
|
+
var styles39 = StyleSheet40.create({
|
|
19064
|
+
container: { padding: spacing.lg },
|
|
19065
|
+
heading: { textAlign: "center" },
|
|
19066
|
+
subtitle: { textAlign: "center", marginTop: spacing.xs, marginBottom: spacing.lg },
|
|
19067
|
+
error: { textAlign: "center", marginBottom: spacing.md },
|
|
19068
|
+
row: {
|
|
19069
|
+
flexDirection: "row",
|
|
19070
|
+
alignItems: "center",
|
|
19071
|
+
borderWidth: 1,
|
|
19072
|
+
borderRadius: radii.md,
|
|
19073
|
+
padding: spacing.md,
|
|
19074
|
+
marginBottom: spacing.sm
|
|
19075
|
+
},
|
|
19076
|
+
rowText: { flex: 1 },
|
|
19077
|
+
secondary: { marginTop: 2 }
|
|
19078
|
+
});
|
|
19079
|
+
|
|
19080
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
19081
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
19082
|
+
function SelectUserGate({ children }) {
|
|
19083
|
+
var _a3, _b;
|
|
19084
|
+
const { accessToken, organizationId, workspaceId, updateTokens } = useAuth();
|
|
19085
|
+
const { consentClient } = useBaseUrl();
|
|
19086
|
+
const { colors } = useTheme();
|
|
19087
|
+
const insets = useSafeInsets();
|
|
19088
|
+
const [phase, setPhase] = useState22("checking");
|
|
19089
|
+
const [candidates, setCandidates] = useState22([]);
|
|
19090
|
+
const [busyUuid, setBusyUuid] = useState22(null);
|
|
19091
|
+
const [selectError, setSelectError] = useState22(null);
|
|
19092
|
+
const [pinnedOrgUserId, setPinnedOrgUserId] = useState22(null);
|
|
19093
|
+
const tokenOrgUserId = ((_b = (_a3 = decodeJwtToken(accessToken)) == null ? void 0 : _a3.user_data) == null ? void 0 : _b.org_user_id) || "";
|
|
19094
|
+
useEffect16(() => {
|
|
19095
|
+
let cancelled = false;
|
|
19096
|
+
if (isSandboxMode() || !organizationId || !workspaceId || !accessToken) {
|
|
19097
|
+
setPhase("resolved");
|
|
19098
|
+
return;
|
|
19099
|
+
}
|
|
19100
|
+
const isPinned = Boolean(pinnedOrgUserId) && pinnedOrgUserId === tokenOrgUserId;
|
|
19101
|
+
setPhase(isPinned ? "resolved" : "checking");
|
|
19102
|
+
(async () => {
|
|
19103
|
+
var _a4;
|
|
19104
|
+
try {
|
|
19105
|
+
const res = await consentClient.listIdentities({
|
|
19106
|
+
organisationUuid: organizationId,
|
|
19107
|
+
workspaceUuid: workspaceId,
|
|
19108
|
+
authToken: accessToken
|
|
19109
|
+
});
|
|
19110
|
+
if (cancelled) return;
|
|
19111
|
+
const list = (_a4 = res == null ? void 0 : res.identities) != null ? _a4 : [];
|
|
19112
|
+
setCandidates(list);
|
|
19113
|
+
setPhase(list.length > 1 && !isPinned ? "picking" : "resolved");
|
|
19114
|
+
} catch {
|
|
19115
|
+
if (cancelled) return;
|
|
19116
|
+
setCandidates([]);
|
|
19117
|
+
setPhase("resolved");
|
|
19118
|
+
}
|
|
19119
|
+
})();
|
|
19120
|
+
return () => {
|
|
19121
|
+
cancelled = true;
|
|
19122
|
+
};
|
|
19123
|
+
}, [organizationId, workspaceId, tokenOrgUserId]);
|
|
19124
|
+
const handleSelect = useCallback11(
|
|
19125
|
+
async (principalUuid) => {
|
|
19126
|
+
var _a4, _b2;
|
|
19127
|
+
if (!principalUuid || busyUuid || !organizationId || !workspaceId) return;
|
|
19128
|
+
setBusyUuid(principalUuid);
|
|
19129
|
+
setSelectError(null);
|
|
19130
|
+
try {
|
|
19131
|
+
const res = await consentClient.selectPrincipal(
|
|
19132
|
+
{
|
|
19133
|
+
organisationUuid: organizationId,
|
|
19134
|
+
workspaceUuid: workspaceId,
|
|
19135
|
+
authToken: accessToken
|
|
19136
|
+
},
|
|
19137
|
+
principalUuid
|
|
19138
|
+
);
|
|
19139
|
+
if (!(res == null ? void 0 : res.token) || !(res == null ? void 0 : res.refresh_token)) {
|
|
19140
|
+
throw new Error("select-principal returned no tokens");
|
|
19141
|
+
}
|
|
19142
|
+
const pinned = ((_b2 = (_a4 = decodeJwtToken(res.token)) == null ? void 0 : _a4.user_data) == null ? void 0 : _b2.org_user_id) || null;
|
|
19143
|
+
setPinnedOrgUserId(pinned);
|
|
19144
|
+
setPhase("resolved");
|
|
19145
|
+
updateTokens(res.token, res.refresh_token);
|
|
19146
|
+
} catch (error) {
|
|
19147
|
+
setSelectError(
|
|
19148
|
+
error instanceof Error ? error.message : "Failed to switch profile"
|
|
19149
|
+
);
|
|
19150
|
+
} finally {
|
|
19151
|
+
setBusyUuid(null);
|
|
19152
|
+
}
|
|
19153
|
+
},
|
|
19154
|
+
[accessToken, busyUuid, consentClient, organizationId, workspaceId, updateTokens]
|
|
19155
|
+
);
|
|
19156
|
+
const canSwitch = candidates.length > 1;
|
|
19157
|
+
const switchProfile = useCallback11(() => {
|
|
19158
|
+
if (!canSwitch) return;
|
|
19159
|
+
setSelectError(null);
|
|
19160
|
+
setPhase("picking");
|
|
19161
|
+
}, [canSwitch]);
|
|
19162
|
+
if (phase === "checking" || phase === "picking") {
|
|
19163
|
+
return /* @__PURE__ */ jsx53(
|
|
19164
|
+
View39,
|
|
19165
|
+
{
|
|
19166
|
+
style: [
|
|
19167
|
+
styles40.screen,
|
|
19168
|
+
{
|
|
19169
|
+
backgroundColor: colors.canvasSubtle,
|
|
19170
|
+
paddingTop: insets.top,
|
|
19171
|
+
paddingBottom: insets.bottom
|
|
19172
|
+
}
|
|
19173
|
+
],
|
|
19174
|
+
children: phase === "checking" ? /* @__PURE__ */ jsx53(PCLoader, {}) : /* @__PURE__ */ jsx53(
|
|
19175
|
+
SelectUser,
|
|
19176
|
+
{
|
|
19177
|
+
candidates,
|
|
19178
|
+
onSelect: handleSelect,
|
|
19179
|
+
busyUuid,
|
|
19180
|
+
error: selectError
|
|
19181
|
+
}
|
|
19182
|
+
)
|
|
19183
|
+
}
|
|
19184
|
+
);
|
|
19185
|
+
}
|
|
19186
|
+
return /* @__PURE__ */ jsx53(ProfileSwitchProvider, { switchProfile: canSwitch ? switchProfile : null, children });
|
|
18423
19187
|
}
|
|
19188
|
+
var styles40 = StyleSheet41.create({
|
|
19189
|
+
screen: { flex: 1 }
|
|
19190
|
+
});
|
|
18424
19191
|
|
|
18425
19192
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
18426
|
-
import { useState as
|
|
18427
|
-
import { View as
|
|
18428
|
-
import { useTranslation as
|
|
19193
|
+
import { useState as useState24, useMemo as useMemo20, useEffect as useEffect19 } from "react";
|
|
19194
|
+
import { View as View47, Text as Text38, StyleSheet as StyleSheet49, ActivityIndicator as ActivityIndicator8, Platform as Platform7 } from "react-native";
|
|
19195
|
+
import { useTranslation as useTranslation27 } from "react-i18next";
|
|
18429
19196
|
|
|
18430
19197
|
// src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx
|
|
18431
|
-
import { View as
|
|
18432
|
-
import { useTranslation as
|
|
18433
|
-
import { jsx as
|
|
19198
|
+
import { View as View40, Text as Text31, ScrollView as ScrollView9, StyleSheet as StyleSheet42 } from "react-native";
|
|
19199
|
+
import { useTranslation as useTranslation22 } from "react-i18next";
|
|
19200
|
+
import { jsx as jsx54, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
18434
19201
|
function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
18435
|
-
const { t } =
|
|
19202
|
+
const { t } = useTranslation22();
|
|
18436
19203
|
const { colors } = useTheme();
|
|
18437
19204
|
const { listBottom } = usePrivacyCenterInsets({ hasFooter: true });
|
|
18438
19205
|
const details = selectedCase.request_details;
|
|
@@ -18464,36 +19231,36 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18464
19231
|
}
|
|
18465
19232
|
const description = selectedCase.description_display || selectedCase.description;
|
|
18466
19233
|
const hasDetails = description || details && (details.purposes && details.purposes.length > 0 || details.correction_data && details.correction_data.length > 0 || details.grievance_types && details.grievance_types.length > 0 || details.nomination_data);
|
|
18467
|
-
return /* @__PURE__ */
|
|
18468
|
-
/* @__PURE__ */
|
|
19234
|
+
return /* @__PURE__ */ jsxs33(ScrollView9, { style: [styles41.container, { backgroundColor: colors.canvasSubtle }], contentContainerStyle: [styles41.content, { flexGrow: 1, paddingBottom: listBottom }], showsVerticalScrollIndicator: false, children: [
|
|
19235
|
+
/* @__PURE__ */ jsx54(View40, { style: styles41.timeline, children: steps.map((step, i) => {
|
|
18469
19236
|
const isLast = i === steps.length - 1;
|
|
18470
|
-
return /* @__PURE__ */
|
|
18471
|
-
/* @__PURE__ */
|
|
18472
|
-
/* @__PURE__ */
|
|
18473
|
-
|
|
19237
|
+
return /* @__PURE__ */ jsxs33(View40, { style: styles41.stepRow, children: [
|
|
19238
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.gutter, children: [
|
|
19239
|
+
/* @__PURE__ */ jsx54(
|
|
19240
|
+
View40,
|
|
18474
19241
|
{
|
|
18475
19242
|
style: [
|
|
18476
|
-
|
|
19243
|
+
styles41.dot,
|
|
18477
19244
|
step.state === "upcoming" ? { backgroundColor: colors.canvasSubtle, borderWidth: 2, borderColor: step.danger ? colors.error : colors.border } : { backgroundColor: step.color }
|
|
18478
19245
|
],
|
|
18479
|
-
children: step.state === "done" ? /* @__PURE__ */
|
|
19246
|
+
children: step.state === "done" ? /* @__PURE__ */ jsx54(Icon, { name: "check", size: 11, color: colors.primaryText, strokeWidth: 3 }) : step.state === "current" ? /* @__PURE__ */ jsx54(View40, { style: [styles41.dotInner, { backgroundColor: colors.primaryText }] }) : null
|
|
18480
19247
|
}
|
|
18481
19248
|
),
|
|
18482
|
-
!isLast ? /* @__PURE__ */
|
|
19249
|
+
!isLast ? /* @__PURE__ */ jsx54(View40, { style: [styles41.connector, { backgroundColor: colors.border }] }) : null
|
|
18483
19250
|
] }),
|
|
18484
|
-
/* @__PURE__ */
|
|
18485
|
-
/* @__PURE__ */
|
|
18486
|
-
step.date ? /* @__PURE__ */
|
|
19251
|
+
/* @__PURE__ */ jsxs33(View40, { style: [styles41.stepContent, isLast && styles41.stepContentLast], children: [
|
|
19252
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.stepLabel, { color: step.danger ? colors.error : colors.text }], children: step.label }),
|
|
19253
|
+
step.date ? /* @__PURE__ */ jsx54(Text31, { style: [styles41.stepDate, { color: step.danger ? colors.error : colors.textSecondary }], children: step.date }) : null
|
|
18487
19254
|
] })
|
|
18488
19255
|
] }, `${step.label}-${i}`);
|
|
18489
19256
|
}) }),
|
|
18490
|
-
hasDetails ? /* @__PURE__ */
|
|
18491
|
-
description ? /* @__PURE__ */
|
|
18492
|
-
/* @__PURE__ */
|
|
18493
|
-
/* @__PURE__ */
|
|
19257
|
+
hasDetails ? /* @__PURE__ */ jsxs33(View40, { style: [styles41.card, elevation.card, { backgroundColor: colors.surface }], children: [
|
|
19258
|
+
description ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19259
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("descriptionLabel") || "Description" }),
|
|
19260
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.descriptionText, { color: colors.text }], children: description })
|
|
18494
19261
|
] }) : null,
|
|
18495
|
-
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */
|
|
18496
|
-
/* @__PURE__ */
|
|
19262
|
+
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19263
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
|
|
18497
19264
|
details.purposes.map((rawP, idx) => {
|
|
18498
19265
|
const p = (rawP == null ? void 0 : rawP.purpose) ? rawP.purpose : rawP;
|
|
18499
19266
|
const purposeId = (p == null ? void 0 : p.uuid) || (p == null ? void 0 : p.purpose_uuid) || (rawP == null ? void 0 : rawP.purpose_uuid) || idx;
|
|
@@ -18501,10 +19268,10 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18501
19268
|
const purposeDescription = (p == null ? void 0 : p.description) || (rawP == null ? void 0 : rawP.description);
|
|
18502
19269
|
const dataElements = Array.isArray(p == null ? void 0 : p.data_elements) ? p.data_elements.filter((de) => (de == null ? void 0 : de.selected) || (de == null ? void 0 : de.given_consent)) : [];
|
|
18503
19270
|
const dataElementUuids = Array.isArray(rawP == null ? void 0 : rawP.data_element_uuids) ? rawP.data_element_uuids : Array.isArray(p == null ? void 0 : p.data_element_uuids) ? p.data_element_uuids : [];
|
|
18504
|
-
return /* @__PURE__ */
|
|
18505
|
-
/* @__PURE__ */
|
|
18506
|
-
purposeDescription ? /* @__PURE__ */
|
|
18507
|
-
dataElements.length > 0 ? /* @__PURE__ */
|
|
19271
|
+
return /* @__PURE__ */ jsxs33(View40, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: StyleSheet42.hairlineWidth }], children: [
|
|
19272
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.itemTitle, { color: colors.text }], children: purposeName }),
|
|
19273
|
+
purposeDescription ? /* @__PURE__ */ jsx54(Text31, { style: [styles41.itemDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
|
|
19274
|
+
dataElements.length > 0 ? /* @__PURE__ */ jsx54(View40, { style: styles41.chipRow, children: dataElements.map((de) => /* @__PURE__ */ jsx54(PCBadge, { status: "info", label: de.name }, de.uuid)) }) : dataElementUuids.length > 0 ? /* @__PURE__ */ jsxs33(Text31, { style: [styles41.itemDesc, { color: colors.textSecondary }], children: [
|
|
18508
19275
|
dataElementUuids.length,
|
|
18509
19276
|
" ",
|
|
18510
19277
|
t("dataElements") || "data elements"
|
|
@@ -18512,44 +19279,44 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18512
19279
|
] }, purposeId);
|
|
18513
19280
|
})
|
|
18514
19281
|
] }) : null,
|
|
18515
|
-
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */
|
|
18516
|
-
/* @__PURE__ */
|
|
18517
|
-
details.correction_data.map((item, idx) => /* @__PURE__ */
|
|
18518
|
-
/* @__PURE__ */
|
|
18519
|
-
/* @__PURE__ */
|
|
18520
|
-
/* @__PURE__ */
|
|
18521
|
-
/* @__PURE__ */
|
|
18522
|
-
/* @__PURE__ */
|
|
19282
|
+
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19283
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction" }),
|
|
19284
|
+
details.correction_data.map((item, idx) => /* @__PURE__ */ jsxs33(View40, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: StyleSheet42.hairlineWidth }], children: [
|
|
19285
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.itemTitle, { color: colors.text }], children: item.name }),
|
|
19286
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValues, children: [
|
|
19287
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValue, children: [
|
|
19288
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
|
|
19289
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionText, { color: colors.text }], children: item.curr_value || "-" })
|
|
18523
19290
|
] }),
|
|
18524
|
-
/* @__PURE__ */
|
|
18525
|
-
/* @__PURE__ */
|
|
18526
|
-
/* @__PURE__ */
|
|
18527
|
-
/* @__PURE__ */
|
|
19291
|
+
/* @__PURE__ */ jsx54(Icon, { name: "chevron-right", size: 16, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
19292
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValue, children: [
|
|
19293
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
|
|
19294
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionText, { color: colors.primary }], children: item.new_value || "-" })
|
|
18528
19295
|
] })
|
|
18529
19296
|
] })
|
|
18530
19297
|
] }, idx))
|
|
18531
19298
|
] }) : null,
|
|
18532
|
-
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */
|
|
18533
|
-
/* @__PURE__ */
|
|
18534
|
-
/* @__PURE__ */
|
|
19299
|
+
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19300
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance" }),
|
|
19301
|
+
/* @__PURE__ */ jsx54(View40, { style: styles41.chipRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ jsx54(PCBadge, { status: "warning", label: (g.grievance || "").replace(/_/g, " ") }, idx)) })
|
|
18535
19302
|
] }) : null,
|
|
18536
|
-
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */
|
|
18537
|
-
/* @__PURE__ */
|
|
18538
|
-
details.nomination_data.nominee_email ? /* @__PURE__ */
|
|
18539
|
-
/* @__PURE__ */
|
|
18540
|
-
/* @__PURE__ */
|
|
19303
|
+
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19304
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
|
|
19305
|
+
details.nomination_data.nominee_email ? /* @__PURE__ */ jsxs33(View40, { style: styles41.kvRow, children: [
|
|
19306
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
|
|
19307
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_email })
|
|
18541
19308
|
] }) : null,
|
|
18542
|
-
details.nomination_data.nominee_mobile ? /* @__PURE__ */
|
|
18543
|
-
/* @__PURE__ */
|
|
18544
|
-
/* @__PURE__ */
|
|
19309
|
+
details.nomination_data.nominee_mobile ? /* @__PURE__ */ jsxs33(View40, { style: styles41.kvRow, children: [
|
|
19310
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
|
|
19311
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
|
|
18545
19312
|
] }) : null
|
|
18546
19313
|
] }) : null
|
|
18547
19314
|
] }) : null,
|
|
18548
|
-
/* @__PURE__ */
|
|
19315
|
+
/* @__PURE__ */ jsx54(View40, { style: { marginTop: "auto" }, children: /* @__PURE__ */ jsx54(Footer, {}) })
|
|
18549
19316
|
] });
|
|
18550
19317
|
}
|
|
18551
19318
|
var DOT = 22;
|
|
18552
|
-
var
|
|
19319
|
+
var styles41 = StyleSheet42.create({
|
|
18553
19320
|
container: {
|
|
18554
19321
|
flex: 1
|
|
18555
19322
|
},
|
|
@@ -18670,21 +19437,21 @@ var styles39 = StyleSheet40.create({
|
|
|
18670
19437
|
});
|
|
18671
19438
|
|
|
18672
19439
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
18673
|
-
import { useState as
|
|
18674
|
-
import { View as
|
|
18675
|
-
import { useTranslation as
|
|
19440
|
+
import { useState as useState23, useRef as useRef10, useEffect as useEffect18, useCallback as useCallback12, useMemo as useMemo19 } from "react";
|
|
19441
|
+
import { View as View46, Text as Text37, FlatList as FlatList2, StyleSheet as StyleSheet48, ActivityIndicator as ActivityIndicator7 } from "react-native";
|
|
19442
|
+
import { useTranslation as useTranslation26 } from "react-i18next";
|
|
18676
19443
|
|
|
18677
19444
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
18678
|
-
import
|
|
18679
|
-
import { useTranslation as
|
|
19445
|
+
import React23 from "react";
|
|
19446
|
+
import { useTranslation as useTranslation24 } from "react-i18next";
|
|
18680
19447
|
|
|
18681
19448
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18682
|
-
import
|
|
18683
|
-
import { StyleSheet as
|
|
19449
|
+
import React22 from "react";
|
|
19450
|
+
import { StyleSheet as StyleSheet44, Text as Text33, View as View42 } from "react-native";
|
|
18684
19451
|
|
|
18685
19452
|
// src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx
|
|
18686
|
-
import { View as
|
|
18687
|
-
import { jsx as
|
|
19453
|
+
import { View as View41, Text as Text32, TouchableOpacity as TouchableOpacity16, Linking, StyleSheet as StyleSheet43 } from "react-native";
|
|
19454
|
+
import { jsx as jsx55, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
18688
19455
|
function AttachmentCard({ doc }) {
|
|
18689
19456
|
const { colors } = useTheme();
|
|
18690
19457
|
const downloadUrl = getDownloadUrl(doc.file_url);
|
|
@@ -18693,28 +19460,28 @@ function AttachmentCard({ doc }) {
|
|
|
18693
19460
|
Linking.openURL(downloadUrl);
|
|
18694
19461
|
}
|
|
18695
19462
|
};
|
|
18696
|
-
return /* @__PURE__ */
|
|
18697
|
-
|
|
19463
|
+
return /* @__PURE__ */ jsxs34(
|
|
19464
|
+
TouchableOpacity16,
|
|
18698
19465
|
{
|
|
18699
|
-
style: [
|
|
19466
|
+
style: [styles42.container, { backgroundColor: colors.surface, borderColor: colors.border }],
|
|
18700
19467
|
onPress: handlePress,
|
|
18701
19468
|
disabled: !downloadUrl,
|
|
18702
19469
|
activeOpacity: 0.7,
|
|
18703
19470
|
children: [
|
|
18704
|
-
/* @__PURE__ */
|
|
18705
|
-
/* @__PURE__ */
|
|
18706
|
-
/* @__PURE__ */
|
|
18707
|
-
doc.file_size ? /* @__PURE__ */
|
|
19471
|
+
/* @__PURE__ */ jsx55(Icon, { name: "file-text", size: 18, color: colors.textSecondary }),
|
|
19472
|
+
/* @__PURE__ */ jsxs34(View41, { style: styles42.info, children: [
|
|
19473
|
+
/* @__PURE__ */ jsx55(Text32, { style: [styles42.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
|
|
19474
|
+
doc.file_size ? /* @__PURE__ */ jsx55(Text32, { style: [styles42.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
|
|
18708
19475
|
] })
|
|
18709
19476
|
]
|
|
18710
19477
|
}
|
|
18711
19478
|
);
|
|
18712
19479
|
}
|
|
18713
|
-
var
|
|
19480
|
+
var styles42 = StyleSheet43.create({
|
|
18714
19481
|
container: {
|
|
18715
19482
|
flexDirection: "row",
|
|
18716
19483
|
alignItems: "center",
|
|
18717
|
-
borderWidth:
|
|
19484
|
+
borderWidth: StyleSheet43.hairlineWidth,
|
|
18718
19485
|
borderRadius: radii.md,
|
|
18719
19486
|
paddingHorizontal: spacing.sm + 2,
|
|
18720
19487
|
paddingVertical: spacing.sm,
|
|
@@ -18734,11 +19501,11 @@ var styles40 = StyleSheet41.create({
|
|
|
18734
19501
|
});
|
|
18735
19502
|
|
|
18736
19503
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18737
|
-
import { jsx as
|
|
19504
|
+
import { jsx as jsx56, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
18738
19505
|
var AVATAR_SIZE = 28;
|
|
18739
19506
|
var AVATAR_GUTTER = 36;
|
|
18740
19507
|
function TeamAvatar({ tint }) {
|
|
18741
|
-
return /* @__PURE__ */
|
|
19508
|
+
return /* @__PURE__ */ jsx56(View42, { style: [styles43.avatar, { backgroundColor: withAlpha(tint, 0.13) }], children: /* @__PURE__ */ jsx56(Icon, { name: "shield-check", size: 15, color: tint, strokeWidth: 2 }) });
|
|
18742
19509
|
}
|
|
18743
19510
|
function ChatBubbleImpl({
|
|
18744
19511
|
message,
|
|
@@ -18765,28 +19532,28 @@ function ChatBubbleImpl({
|
|
|
18765
19532
|
borderBottomRightRadius: BUBBLE_RADIUS,
|
|
18766
19533
|
borderBottomLeftRadius: tailRadius
|
|
18767
19534
|
};
|
|
18768
|
-
const bubble = /* @__PURE__ */
|
|
18769
|
-
!isPrincipal && isFirstInGroup ? /* @__PURE__ */
|
|
18770
|
-
message.body ? /* @__PURE__ */
|
|
18771
|
-
message.documents && message.documents.length > 0 ? /* @__PURE__ */
|
|
19535
|
+
const bubble = /* @__PURE__ */ jsxs35(View42, { style: [styles43.bubble, bubbleStyle], children: [
|
|
19536
|
+
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ jsx56(Text33, { style: [styles43.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
|
|
19537
|
+
message.body ? /* @__PURE__ */ jsx56(Text33, { style: [styles43.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
|
|
19538
|
+
message.documents && message.documents.length > 0 ? /* @__PURE__ */ jsx56(View42, { style: styles43.attachments, children: message.documents.map((doc) => /* @__PURE__ */ jsx56(AttachmentCard, { doc }, doc.uuid)) }) : null
|
|
18772
19539
|
] });
|
|
18773
|
-
return /* @__PURE__ */
|
|
18774
|
-
|
|
19540
|
+
return /* @__PURE__ */ jsxs35(
|
|
19541
|
+
View42,
|
|
18775
19542
|
{
|
|
18776
19543
|
style: [
|
|
18777
|
-
|
|
18778
|
-
isPrincipal ?
|
|
19544
|
+
styles43.row,
|
|
19545
|
+
isPrincipal ? styles43.rowRight : styles43.rowLeft,
|
|
18779
19546
|
{ marginTop: isFirstInGroup ? spacing.md : 2 }
|
|
18780
19547
|
],
|
|
18781
19548
|
children: [
|
|
18782
|
-
!isPrincipal ? /* @__PURE__ */
|
|
18783
|
-
/* @__PURE__ */
|
|
19549
|
+
!isPrincipal ? /* @__PURE__ */ jsx56(View42, { style: styles43.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ jsx56(TeamAvatar, { tint: colors.primary }) : null }) : null,
|
|
19550
|
+
/* @__PURE__ */ jsxs35(View42, { style: [styles43.column, isPrincipal ? styles43.columnRight : styles43.columnLeft], children: [
|
|
18784
19551
|
bubble,
|
|
18785
|
-
isLastInGroup ? /* @__PURE__ */
|
|
18786
|
-
|
|
19552
|
+
isLastInGroup ? /* @__PURE__ */ jsx56(
|
|
19553
|
+
Text33,
|
|
18787
19554
|
{
|
|
18788
19555
|
style: [
|
|
18789
|
-
|
|
19556
|
+
styles43.timestamp,
|
|
18790
19557
|
{ color: colors.textSecondary, textAlign: isPrincipal ? "right" : "left" }
|
|
18791
19558
|
],
|
|
18792
19559
|
children: formatMessageTime(timestamp)
|
|
@@ -18797,8 +19564,8 @@ function ChatBubbleImpl({
|
|
|
18797
19564
|
}
|
|
18798
19565
|
);
|
|
18799
19566
|
}
|
|
18800
|
-
var ChatBubble =
|
|
18801
|
-
var
|
|
19567
|
+
var ChatBubble = React22.memo(ChatBubbleImpl);
|
|
19568
|
+
var styles43 = StyleSheet44.create({
|
|
18802
19569
|
row: {
|
|
18803
19570
|
flexDirection: "row",
|
|
18804
19571
|
paddingHorizontal: spacing.md,
|
|
@@ -18858,9 +19625,9 @@ var styles41 = StyleSheet42.create({
|
|
|
18858
19625
|
});
|
|
18859
19626
|
|
|
18860
19627
|
// src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx
|
|
18861
|
-
import { View as
|
|
18862
|
-
import { useTranslation as
|
|
18863
|
-
import { jsx as
|
|
19628
|
+
import { View as View43, Text as Text34, TouchableOpacity as TouchableOpacity17, StyleSheet as StyleSheet45 } from "react-native";
|
|
19629
|
+
import { useTranslation as useTranslation23 } from "react-i18next";
|
|
19630
|
+
import { jsx as jsx57, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
18864
19631
|
var STATUS_BADGE_MAP = {
|
|
18865
19632
|
pending: "warning",
|
|
18866
19633
|
under_review: "info",
|
|
@@ -18880,20 +19647,20 @@ function humanize(value) {
|
|
|
18880
19647
|
}
|
|
18881
19648
|
function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized = false }) {
|
|
18882
19649
|
var _a3;
|
|
18883
|
-
const { t } =
|
|
19650
|
+
const { t } = useTranslation23();
|
|
18884
19651
|
const { colors } = useTheme();
|
|
18885
19652
|
const meta = message.document_request_metadata;
|
|
18886
19653
|
if (!meta) return null;
|
|
18887
19654
|
const status = meta.document_request_status;
|
|
18888
19655
|
const canUpload = (status === "pending" || status === "replacement_requested") && !isCaseFinalized;
|
|
18889
19656
|
const requestEventUuid = meta.document_request_uuid;
|
|
18890
|
-
return /* @__PURE__ */
|
|
18891
|
-
/* @__PURE__ */
|
|
18892
|
-
/* @__PURE__ */
|
|
18893
|
-
/* @__PURE__ */
|
|
18894
|
-
/* @__PURE__ */
|
|
19657
|
+
return /* @__PURE__ */ jsxs36(View43, { style: [styles44.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
|
|
19658
|
+
/* @__PURE__ */ jsxs36(View43, { style: styles44.header, children: [
|
|
19659
|
+
/* @__PURE__ */ jsxs36(View43, { style: styles44.titleRow, children: [
|
|
19660
|
+
/* @__PURE__ */ jsx57(Icon, { name: "file-check", size: 16, color: colors.primary, strokeWidth: 2 }),
|
|
19661
|
+
/* @__PURE__ */ jsx57(Text34, { style: [styles44.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
|
|
18895
19662
|
] }),
|
|
18896
|
-
/* @__PURE__ */
|
|
19663
|
+
/* @__PURE__ */ jsx57(
|
|
18897
19664
|
PCBadge,
|
|
18898
19665
|
{
|
|
18899
19666
|
status: STATUS_BADGE_MAP[status] || "info",
|
|
@@ -18901,30 +19668,30 @@ function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized
|
|
|
18901
19668
|
}
|
|
18902
19669
|
)
|
|
18903
19670
|
] }),
|
|
18904
|
-
meta.accepted_document ? /* @__PURE__ */
|
|
19671
|
+
meta.accepted_document ? /* @__PURE__ */ jsx57(Text34, { style: [styles44.accepted, { color: colors.textSecondary }], children: t("acceptedLabel", {
|
|
18905
19672
|
accepted: meta.accepted_document,
|
|
18906
19673
|
defaultValue: `Accepted: ${meta.accepted_document}`
|
|
18907
19674
|
}) }) : null,
|
|
18908
|
-
meta.rejection_reason ? /* @__PURE__ */
|
|
18909
|
-
/* @__PURE__ */
|
|
19675
|
+
meta.rejection_reason ? /* @__PURE__ */ jsxs36(View43, { style: [styles44.rejectionBox, { backgroundColor: colors.errorSoft }], children: [
|
|
19676
|
+
/* @__PURE__ */ jsxs36(Text34, { style: [styles44.rejectionLabel, { color: colors.error }], children: [
|
|
18910
19677
|
t("rejectionReasonLabel") || "Rejection reason",
|
|
18911
19678
|
":"
|
|
18912
19679
|
] }),
|
|
18913
|
-
/* @__PURE__ */
|
|
19680
|
+
/* @__PURE__ */ jsx57(Text34, { style: [styles44.rejectionText, { color: colors.error }], children: meta.rejection_reason })
|
|
18914
19681
|
] }) : null,
|
|
18915
|
-
canUpload && requestEventUuid ? /* @__PURE__ */
|
|
18916
|
-
|
|
19682
|
+
canUpload && requestEventUuid ? /* @__PURE__ */ jsx57(
|
|
19683
|
+
TouchableOpacity17,
|
|
18917
19684
|
{
|
|
18918
|
-
style: [
|
|
19685
|
+
style: [styles44.uploadButton, { backgroundColor: colors.primary }],
|
|
18919
19686
|
onPress: () => onUpload(requestEventUuid),
|
|
18920
19687
|
disabled: isSubmitting,
|
|
18921
19688
|
activeOpacity: 0.7,
|
|
18922
|
-
children: /* @__PURE__ */
|
|
19689
|
+
children: /* @__PURE__ */ jsx57(Text34, { style: [styles44.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
|
|
18923
19690
|
}
|
|
18924
19691
|
) : null
|
|
18925
19692
|
] });
|
|
18926
19693
|
}
|
|
18927
|
-
var
|
|
19694
|
+
var styles44 = StyleSheet45.create({
|
|
18928
19695
|
container: {
|
|
18929
19696
|
borderWidth: 1.5,
|
|
18930
19697
|
borderStyle: "dashed",
|
|
@@ -18977,20 +19744,20 @@ var styles42 = StyleSheet43.create({
|
|
|
18977
19744
|
});
|
|
18978
19745
|
|
|
18979
19746
|
// src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx
|
|
18980
|
-
import { StyleSheet as
|
|
18981
|
-
import { jsx as
|
|
19747
|
+
import { StyleSheet as StyleSheet46, Text as Text35, View as View44 } from "react-native";
|
|
19748
|
+
import { jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
18982
19749
|
function StatusEvent({ icon, color, bgColor, borderColor, text, subText, timestamp }) {
|
|
18983
19750
|
const { colors } = useTheme();
|
|
18984
|
-
return /* @__PURE__ */
|
|
18985
|
-
/* @__PURE__ */
|
|
18986
|
-
/* @__PURE__ */
|
|
18987
|
-
/* @__PURE__ */
|
|
18988
|
-
subText ? /* @__PURE__ */
|
|
19751
|
+
return /* @__PURE__ */ jsxs37(View44, { style: [styles45.container, { backgroundColor: bgColor }], children: [
|
|
19752
|
+
/* @__PURE__ */ jsx58(View44, { style: [styles45.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
|
|
19753
|
+
/* @__PURE__ */ jsxs37(View44, { style: styles45.textContainer, children: [
|
|
19754
|
+
/* @__PURE__ */ jsx58(Text35, { style: [styles45.text, { color }], children: text }),
|
|
19755
|
+
subText ? /* @__PURE__ */ jsx58(Text35, { style: [styles45.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
|
|
18989
19756
|
] }),
|
|
18990
|
-
/* @__PURE__ */
|
|
19757
|
+
/* @__PURE__ */ jsx58(Text35, { style: [styles45.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
|
|
18991
19758
|
] });
|
|
18992
19759
|
}
|
|
18993
|
-
var
|
|
19760
|
+
var styles45 = StyleSheet46.create({
|
|
18994
19761
|
container: {
|
|
18995
19762
|
flexDirection: "row",
|
|
18996
19763
|
alignItems: "center",
|
|
@@ -19029,10 +19796,10 @@ var styles43 = StyleSheet44.create({
|
|
|
19029
19796
|
});
|
|
19030
19797
|
|
|
19031
19798
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
19032
|
-
import { Fragment as Fragment12, jsx as
|
|
19033
|
-
var CheckIcon = ({ color }) => /* @__PURE__ */
|
|
19034
|
-
var XIcon = ({ color }) => /* @__PURE__ */
|
|
19035
|
-
var RefreshIcon = ({ color }) => /* @__PURE__ */
|
|
19799
|
+
import { Fragment as Fragment12, jsx as jsx59, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
19800
|
+
var CheckIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "check", size: 14, color, strokeWidth: 2.6 });
|
|
19801
|
+
var XIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "x", size: 14, color, strokeWidth: 2.6 });
|
|
19802
|
+
var RefreshIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "refresh-cw", size: 14, color, strokeWidth: 2.2 });
|
|
19036
19803
|
function MessageItemImpl({
|
|
19037
19804
|
message,
|
|
19038
19805
|
onUploadForRequest,
|
|
@@ -19042,14 +19809,14 @@ function MessageItemImpl({
|
|
|
19042
19809
|
isLastInGroup = true
|
|
19043
19810
|
}) {
|
|
19044
19811
|
var _a3, _b;
|
|
19045
|
-
const { t } =
|
|
19812
|
+
const { t } = useTranslation24();
|
|
19046
19813
|
const isPrincipal = message.sender_role === "data_principal";
|
|
19047
19814
|
const senderLabel = isPrincipal ? t("senderYou") || "You" : t("senderPrivacyTeam") || "Privacy Team";
|
|
19048
19815
|
switch (message.message_type) {
|
|
19049
19816
|
case "message_sent":
|
|
19050
19817
|
case "document_submitted":
|
|
19051
19818
|
case "document_replaced":
|
|
19052
|
-
return /* @__PURE__ */
|
|
19819
|
+
return /* @__PURE__ */ jsx59(
|
|
19053
19820
|
ChatBubble,
|
|
19054
19821
|
{
|
|
19055
19822
|
message,
|
|
@@ -19061,8 +19828,8 @@ function MessageItemImpl({
|
|
|
19061
19828
|
}
|
|
19062
19829
|
);
|
|
19063
19830
|
case "document_requested":
|
|
19064
|
-
return /* @__PURE__ */
|
|
19065
|
-
/* @__PURE__ */
|
|
19831
|
+
return /* @__PURE__ */ jsxs38(Fragment12, { children: [
|
|
19832
|
+
/* @__PURE__ */ jsx59(
|
|
19066
19833
|
ChatBubble,
|
|
19067
19834
|
{
|
|
19068
19835
|
message,
|
|
@@ -19073,7 +19840,7 @@ function MessageItemImpl({
|
|
|
19073
19840
|
isLastInGroup
|
|
19074
19841
|
}
|
|
19075
19842
|
),
|
|
19076
|
-
/* @__PURE__ */
|
|
19843
|
+
/* @__PURE__ */ jsx59(
|
|
19077
19844
|
DocumentRequestCard,
|
|
19078
19845
|
{
|
|
19079
19846
|
message,
|
|
@@ -19084,10 +19851,10 @@ function MessageItemImpl({
|
|
|
19084
19851
|
)
|
|
19085
19852
|
] });
|
|
19086
19853
|
case "document_approved":
|
|
19087
|
-
return /* @__PURE__ */
|
|
19854
|
+
return /* @__PURE__ */ jsx59(
|
|
19088
19855
|
StatusEvent,
|
|
19089
19856
|
{
|
|
19090
|
-
icon: /* @__PURE__ */
|
|
19857
|
+
icon: /* @__PURE__ */ jsx59(CheckIcon, { color: "#059669" }),
|
|
19091
19858
|
color: "#059669",
|
|
19092
19859
|
bgColor: "rgba(16, 185, 129, 0.08)",
|
|
19093
19860
|
borderColor: "rgba(16, 185, 129, 0.2)",
|
|
@@ -19096,10 +19863,10 @@ function MessageItemImpl({
|
|
|
19096
19863
|
}
|
|
19097
19864
|
);
|
|
19098
19865
|
case "document_rejected":
|
|
19099
|
-
return /* @__PURE__ */
|
|
19866
|
+
return /* @__PURE__ */ jsx59(
|
|
19100
19867
|
StatusEvent,
|
|
19101
19868
|
{
|
|
19102
|
-
icon: /* @__PURE__ */
|
|
19869
|
+
icon: /* @__PURE__ */ jsx59(XIcon, { color: "#DC2626" }),
|
|
19103
19870
|
color: "#DC2626",
|
|
19104
19871
|
bgColor: "rgba(220, 38, 38, 0.08)",
|
|
19105
19872
|
borderColor: "rgba(220, 38, 38, 0.2)",
|
|
@@ -19109,10 +19876,10 @@ function MessageItemImpl({
|
|
|
19109
19876
|
}
|
|
19110
19877
|
);
|
|
19111
19878
|
case "document_replacement_requested":
|
|
19112
|
-
return /* @__PURE__ */
|
|
19879
|
+
return /* @__PURE__ */ jsx59(
|
|
19113
19880
|
StatusEvent,
|
|
19114
19881
|
{
|
|
19115
|
-
icon: /* @__PURE__ */
|
|
19882
|
+
icon: /* @__PURE__ */ jsx59(RefreshIcon, { color: "#D97706" }),
|
|
19116
19883
|
color: "#D97706",
|
|
19117
19884
|
bgColor: "rgba(245, 158, 11, 0.08)",
|
|
19118
19885
|
borderColor: "rgba(245, 158, 11, 0.2)",
|
|
@@ -19122,7 +19889,7 @@ function MessageItemImpl({
|
|
|
19122
19889
|
}
|
|
19123
19890
|
);
|
|
19124
19891
|
default:
|
|
19125
|
-
return /* @__PURE__ */
|
|
19892
|
+
return /* @__PURE__ */ jsx59(
|
|
19126
19893
|
ChatBubble,
|
|
19127
19894
|
{
|
|
19128
19895
|
message,
|
|
@@ -19135,22 +19902,22 @@ function MessageItemImpl({
|
|
|
19135
19902
|
);
|
|
19136
19903
|
}
|
|
19137
19904
|
}
|
|
19138
|
-
var MessageItem =
|
|
19905
|
+
var MessageItem = React23.memo(MessageItemImpl);
|
|
19139
19906
|
|
|
19140
19907
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx
|
|
19141
|
-
import { useEffect as
|
|
19908
|
+
import { useEffect as useEffect17, useRef as useRef9 } from "react";
|
|
19142
19909
|
import {
|
|
19143
19910
|
ActivityIndicator as ActivityIndicator6,
|
|
19144
19911
|
Animated as Animated12,
|
|
19145
19912
|
Easing as Easing3,
|
|
19146
|
-
StyleSheet as
|
|
19147
|
-
Text as
|
|
19913
|
+
StyleSheet as StyleSheet47,
|
|
19914
|
+
Text as Text36,
|
|
19148
19915
|
TextInput as TextInput3,
|
|
19149
|
-
TouchableOpacity as
|
|
19150
|
-
View as
|
|
19916
|
+
TouchableOpacity as TouchableOpacity18,
|
|
19917
|
+
View as View45
|
|
19151
19918
|
} from "react-native";
|
|
19152
|
-
import { useTranslation as
|
|
19153
|
-
import { jsx as
|
|
19919
|
+
import { useTranslation as useTranslation25 } from "react-i18next";
|
|
19920
|
+
import { jsx as jsx60, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
19154
19921
|
function MessageComposer({
|
|
19155
19922
|
messageText,
|
|
19156
19923
|
onMessageTextChange,
|
|
@@ -19162,11 +19929,11 @@ function MessageComposer({
|
|
|
19162
19929
|
isUploading,
|
|
19163
19930
|
isCaseFinalized = false
|
|
19164
19931
|
}) {
|
|
19165
|
-
const { t } =
|
|
19932
|
+
const { t } = useTranslation25();
|
|
19166
19933
|
const { colors } = useTheme();
|
|
19167
19934
|
const canSend = (messageText.trim().length > 0 || pendingUpload) && !isSending && !isUploading && !isCaseFinalized;
|
|
19168
19935
|
const activate = useRef9(new Animated12.Value(canSend ? 1 : 0)).current;
|
|
19169
|
-
|
|
19936
|
+
useEffect17(() => {
|
|
19170
19937
|
Animated12.timing(activate, {
|
|
19171
19938
|
toValue: canSend ? 1 : 0,
|
|
19172
19939
|
duration: 180,
|
|
@@ -19186,7 +19953,7 @@ function MessageComposer({
|
|
|
19186
19953
|
Animated12.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
|
|
19187
19954
|
};
|
|
19188
19955
|
const pillIn = useRef9(new Animated12.Value(0)).current;
|
|
19189
|
-
|
|
19956
|
+
useEffect17(() => {
|
|
19190
19957
|
Animated12.timing(pillIn, {
|
|
19191
19958
|
toValue: pendingUpload ? 1 : 0,
|
|
19192
19959
|
duration: 220,
|
|
@@ -19196,12 +19963,12 @@ function MessageComposer({
|
|
|
19196
19963
|
}, [pendingUpload, pillIn]);
|
|
19197
19964
|
const pillOpacity = pillIn;
|
|
19198
19965
|
const pillTranslateY = pillIn.interpolate({ inputRange: [0, 1], outputRange: [8, 0] });
|
|
19199
|
-
return /* @__PURE__ */
|
|
19200
|
-
pendingUpload && /* @__PURE__ */
|
|
19966
|
+
return /* @__PURE__ */ jsxs39(View45, { style: [styles46.container, { borderTopColor: colors.hairline, backgroundColor: colors.canvasSubtle, paddingBottom: spacing.sm }], children: [
|
|
19967
|
+
pendingUpload && /* @__PURE__ */ jsxs39(
|
|
19201
19968
|
Animated12.View,
|
|
19202
19969
|
{
|
|
19203
19970
|
style: [
|
|
19204
|
-
|
|
19971
|
+
styles46.uploadPill,
|
|
19205
19972
|
{
|
|
19206
19973
|
backgroundColor: colors.primarySoft,
|
|
19207
19974
|
opacity: pillOpacity,
|
|
@@ -19209,34 +19976,34 @@ function MessageComposer({
|
|
|
19209
19976
|
}
|
|
19210
19977
|
],
|
|
19211
19978
|
children: [
|
|
19212
|
-
/* @__PURE__ */
|
|
19213
|
-
/* @__PURE__ */
|
|
19979
|
+
/* @__PURE__ */ jsx60(Icon, { name: "file", size: 14, color: colors.primary }),
|
|
19980
|
+
/* @__PURE__ */ jsxs39(Text36, { style: [styles46.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
|
|
19214
19981
|
pendingUpload.file_name,
|
|
19215
19982
|
" (",
|
|
19216
19983
|
formatFileSize(pendingUpload.file_size),
|
|
19217
19984
|
")"
|
|
19218
19985
|
] }),
|
|
19219
|
-
/* @__PURE__ */
|
|
19986
|
+
/* @__PURE__ */ jsx60(TouchableOpacity18, { onPress: onRemovePendingUpload, hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, children: /* @__PURE__ */ jsx60(Icon, { name: "x", size: 14, color: colors.textSecondary, strokeWidth: 2.4 }) })
|
|
19220
19987
|
]
|
|
19221
19988
|
}
|
|
19222
19989
|
),
|
|
19223
|
-
/* @__PURE__ */
|
|
19224
|
-
/* @__PURE__ */
|
|
19225
|
-
|
|
19990
|
+
/* @__PURE__ */ jsxs39(View45, { style: [styles46.pill, { backgroundColor: colors.surface, borderColor: colors.border }, isCaseFinalized && styles46.pillDisabled], children: [
|
|
19991
|
+
/* @__PURE__ */ jsx60(
|
|
19992
|
+
TouchableOpacity18,
|
|
19226
19993
|
{
|
|
19227
|
-
style:
|
|
19994
|
+
style: styles46.attachButton,
|
|
19228
19995
|
onPress: onAttachClick,
|
|
19229
19996
|
disabled: isUploading || isCaseFinalized,
|
|
19230
19997
|
activeOpacity: 0.6,
|
|
19231
19998
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
19232
19999
|
accessibilityLabel: t("uploadFile") || "Attach file",
|
|
19233
|
-
children: isUploading ? /* @__PURE__ */
|
|
20000
|
+
children: isUploading ? /* @__PURE__ */ jsx60(ActivityIndicator6, { size: "small", color: colors.primary }) : /* @__PURE__ */ jsx60(Icon, { name: "paperclip", size: 20, color: colors.textSecondary })
|
|
19234
20001
|
}
|
|
19235
20002
|
),
|
|
19236
|
-
/* @__PURE__ */
|
|
20003
|
+
/* @__PURE__ */ jsx60(
|
|
19237
20004
|
TextInput3,
|
|
19238
20005
|
{
|
|
19239
|
-
style: [
|
|
20006
|
+
style: [styles46.input, { color: colors.text }],
|
|
19240
20007
|
value: messageText,
|
|
19241
20008
|
onChangeText: onMessageTextChange,
|
|
19242
20009
|
placeholder: t("messageInputPlaceholder", { defaultValue: "Message\u2026" }),
|
|
@@ -19246,8 +20013,8 @@ function MessageComposer({
|
|
|
19246
20013
|
editable: !isSending && !isCaseFinalized
|
|
19247
20014
|
}
|
|
19248
20015
|
),
|
|
19249
|
-
/* @__PURE__ */
|
|
19250
|
-
|
|
20016
|
+
/* @__PURE__ */ jsx60(Animated12.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ jsx60(
|
|
20017
|
+
TouchableOpacity18,
|
|
19251
20018
|
{
|
|
19252
20019
|
onPress: onSend,
|
|
19253
20020
|
onPressIn: handlePressIn,
|
|
@@ -19255,15 +20022,15 @@ function MessageComposer({
|
|
|
19255
20022
|
disabled: !canSend,
|
|
19256
20023
|
activeOpacity: 0.85,
|
|
19257
20024
|
accessibilityLabel: t("send") || "Send",
|
|
19258
|
-
children: /* @__PURE__ */
|
|
20025
|
+
children: /* @__PURE__ */ jsx60(Animated12.View, { style: [styles46.sendButton, { backgroundColor: sendBgColor }], children: isSending ? /* @__PURE__ */ jsx60(ActivityIndicator6, { size: "small", color: colors.primaryText }) : /* @__PURE__ */ jsx60(View45, { style: styles46.sendIcon, children: /* @__PURE__ */ jsx60(Icon, { name: "send", size: 18, color: canSend ? colors.primaryText : colors.textSecondary }) }) })
|
|
19259
20026
|
}
|
|
19260
20027
|
) })
|
|
19261
20028
|
] })
|
|
19262
20029
|
] });
|
|
19263
20030
|
}
|
|
19264
|
-
var
|
|
20031
|
+
var styles46 = StyleSheet47.create({
|
|
19265
20032
|
container: {
|
|
19266
|
-
borderTopWidth:
|
|
20033
|
+
borderTopWidth: StyleSheet47.hairlineWidth,
|
|
19267
20034
|
paddingHorizontal: spacing.md,
|
|
19268
20035
|
paddingVertical: spacing.sm
|
|
19269
20036
|
},
|
|
@@ -19286,7 +20053,7 @@ var styles44 = StyleSheet45.create({
|
|
|
19286
20053
|
pill: {
|
|
19287
20054
|
flexDirection: "row",
|
|
19288
20055
|
alignItems: "center",
|
|
19289
|
-
borderWidth:
|
|
20056
|
+
borderWidth: StyleSheet47.hairlineWidth,
|
|
19290
20057
|
borderRadius: radii.xxl + 4,
|
|
19291
20058
|
paddingHorizontal: spacing.xs + 2,
|
|
19292
20059
|
paddingVertical: spacing.xs,
|
|
@@ -19325,7 +20092,7 @@ var styles44 = StyleSheet45.create({
|
|
|
19325
20092
|
});
|
|
19326
20093
|
|
|
19327
20094
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
19328
|
-
import { Fragment as Fragment13, jsx as
|
|
20095
|
+
import { Fragment as Fragment13, jsx as jsx61, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
19329
20096
|
var STREAK_GAP_MS = 5 * 60 * 1e3;
|
|
19330
20097
|
function isStreakBoundary(a, b) {
|
|
19331
20098
|
if (!a || !b) return true;
|
|
@@ -19355,7 +20122,7 @@ function sameDay(a, b) {
|
|
|
19355
20122
|
}
|
|
19356
20123
|
var MESSAGE_POLL_INTERVAL = 3e4;
|
|
19357
20124
|
function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
19358
|
-
const { t } =
|
|
20125
|
+
const { t } = useTranslation26();
|
|
19359
20126
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19360
20127
|
const { consentClient } = useBaseUrl();
|
|
19361
20128
|
const { colors } = useTheme();
|
|
@@ -19371,13 +20138,13 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19371
20138
|
caseUuid,
|
|
19372
20139
|
authContext
|
|
19373
20140
|
);
|
|
19374
|
-
const [messageText, setMessageText] =
|
|
19375
|
-
const [pendingUpload, setPendingUpload] =
|
|
19376
|
-
const [isSending, setIsSending] =
|
|
19377
|
-
const [isUploading, setIsUploading] =
|
|
19378
|
-
const [isSubmittingForRequest, setIsSubmittingForRequest] =
|
|
20141
|
+
const [messageText, setMessageText] = useState23("");
|
|
20142
|
+
const [pendingUpload, setPendingUpload] = useState23(null);
|
|
20143
|
+
const [isSending, setIsSending] = useState23(false);
|
|
20144
|
+
const [isUploading, setIsUploading] = useState23(false);
|
|
20145
|
+
const [isSubmittingForRequest, setIsSubmittingForRequest] = useState23(false);
|
|
19379
20146
|
const flatListRef = useRef10(null);
|
|
19380
|
-
|
|
20147
|
+
useEffect18(() => {
|
|
19381
20148
|
if (messages && messages.length > 0) {
|
|
19382
20149
|
setTimeout(() => {
|
|
19383
20150
|
var _a3;
|
|
@@ -19387,14 +20154,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19387
20154
|
}, [messages == null ? void 0 : messages.length]);
|
|
19388
20155
|
const refetchRef = useRef10(refetch);
|
|
19389
20156
|
refetchRef.current = refetch;
|
|
19390
|
-
|
|
20157
|
+
const authContextRef = useRef10(authContext);
|
|
20158
|
+
authContextRef.current = authContext;
|
|
20159
|
+
useEffect18(() => {
|
|
19391
20160
|
if (isCaseFinalized) return;
|
|
19392
20161
|
const id = setInterval(() => {
|
|
20162
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
19393
20163
|
refetchRef.current();
|
|
19394
20164
|
}, MESSAGE_POLL_INTERVAL);
|
|
19395
20165
|
return () => clearInterval(id);
|
|
19396
20166
|
}, [isCaseFinalized]);
|
|
19397
|
-
const handleSend =
|
|
20167
|
+
const handleSend = useCallback12(async () => {
|
|
19398
20168
|
if (isCaseFinalized) return;
|
|
19399
20169
|
if (!messageText.trim() && !pendingUpload) return;
|
|
19400
20170
|
if (!organizationId || !workspaceId) return;
|
|
@@ -19419,7 +20189,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19419
20189
|
setIsSending(false);
|
|
19420
20190
|
}
|
|
19421
20191
|
}, [isCaseFinalized, messageText, pendingUpload, organizationId, workspaceId, caseUuid, authContext, consentClient, refetch]);
|
|
19422
|
-
const handleAttach =
|
|
20192
|
+
const handleAttach = useCallback12(async () => {
|
|
19423
20193
|
if (isCaseFinalized) return;
|
|
19424
20194
|
if (!organizationId || !workspaceId) return;
|
|
19425
20195
|
try {
|
|
@@ -19454,7 +20224,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19454
20224
|
setIsUploading(false);
|
|
19455
20225
|
}
|
|
19456
20226
|
}, [isCaseFinalized, organizationId, workspaceId, caseUuid, authContext, consentClient]);
|
|
19457
|
-
const handleUploadForRequest =
|
|
20227
|
+
const handleUploadForRequest = useCallback12((_requestEventUuid) => {
|
|
19458
20228
|
handleAttach();
|
|
19459
20229
|
}, [handleAttach]);
|
|
19460
20230
|
const messagesList = useMemo19(() => {
|
|
@@ -19466,17 +20236,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19466
20236
|
});
|
|
19467
20237
|
return list;
|
|
19468
20238
|
}, [messages]);
|
|
19469
|
-
const keyExtractor =
|
|
19470
|
-
const renderMessage =
|
|
20239
|
+
const keyExtractor = useCallback12((item) => item.uuid, []);
|
|
20240
|
+
const renderMessage = useCallback12(
|
|
19471
20241
|
({ item, index }) => {
|
|
19472
20242
|
const prev = index > 0 ? messagesList[index - 1] : void 0;
|
|
19473
20243
|
const next = index < messagesList.length - 1 ? messagesList[index + 1] : void 0;
|
|
19474
20244
|
const isFirstInGroup = isStreakBoundary(prev, item);
|
|
19475
20245
|
const isLastInGroup = isStreakBoundary(item, next);
|
|
19476
20246
|
const dateSeparator = getDateSeparator(prev == null ? void 0 : prev.created_at, item.created_at, t);
|
|
19477
|
-
return /* @__PURE__ */
|
|
19478
|
-
dateSeparator ? /* @__PURE__ */
|
|
19479
|
-
/* @__PURE__ */
|
|
20247
|
+
return /* @__PURE__ */ jsxs40(Fragment13, { children: [
|
|
20248
|
+
dateSeparator ? /* @__PURE__ */ jsx61(View46, { style: styles47.daySeparator, children: /* @__PURE__ */ jsx61(View46, { style: [styles47.dayPill, { backgroundColor: colors.surfaceAlt }], children: /* @__PURE__ */ jsx61(Text37, { style: [styles47.dayPillText, { color: colors.textSecondary }], children: dateSeparator }) }) }) : null,
|
|
20249
|
+
/* @__PURE__ */ jsx61(
|
|
19480
20250
|
MessageItem,
|
|
19481
20251
|
{
|
|
19482
20252
|
message: item,
|
|
@@ -19492,32 +20262,32 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19492
20262
|
[messagesList, handleUploadForRequest, isSubmittingForRequest, isCaseFinalized, colors, t]
|
|
19493
20263
|
);
|
|
19494
20264
|
if (isLoading) {
|
|
19495
|
-
return /* @__PURE__ */
|
|
20265
|
+
return /* @__PURE__ */ jsx61(View46, { style: styles47.centered, children: /* @__PURE__ */ jsx61(ActivityIndicator7, { size: "large", color: colors.primary }) });
|
|
19496
20266
|
}
|
|
19497
20267
|
if (error) {
|
|
19498
|
-
return /* @__PURE__ */
|
|
20268
|
+
return /* @__PURE__ */ jsx61(View46, { style: styles47.centered, children: /* @__PURE__ */ jsx61(Text37, { style: [styles47.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
|
|
19499
20269
|
}
|
|
19500
|
-
return /* @__PURE__ */
|
|
19501
|
-
/* @__PURE__ */
|
|
19502
|
-
/* @__PURE__ */
|
|
19503
|
-
/* @__PURE__ */
|
|
20270
|
+
return /* @__PURE__ */ jsxs40(View46, { style: [styles47.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
20271
|
+
/* @__PURE__ */ jsxs40(View46, { style: styles47.secureRow, children: [
|
|
20272
|
+
/* @__PURE__ */ jsx61(Icon, { name: "lock", size: 12, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
20273
|
+
/* @__PURE__ */ jsx61(Text37, { style: [styles47.secureText, { color: colors.textSecondary }], children: isCaseFinalized ? t("caseFinalizedMessagesTooltip") || "This case is finalized \u2014 messages can no longer be sent." : `${t("private", { defaultValue: "Private" })} \xB7 ${t("senderPrivacyTeam") || "Privacy Team"}` })
|
|
19504
20274
|
] }),
|
|
19505
|
-
/* @__PURE__ */
|
|
20275
|
+
/* @__PURE__ */ jsx61(
|
|
19506
20276
|
FlatList2,
|
|
19507
20277
|
{
|
|
19508
20278
|
ref: flatListRef,
|
|
19509
|
-
style:
|
|
20279
|
+
style: styles47.list,
|
|
19510
20280
|
data: messagesList,
|
|
19511
20281
|
keyExtractor,
|
|
19512
20282
|
renderItem: renderMessage,
|
|
19513
20283
|
contentContainerStyle: [
|
|
19514
|
-
|
|
19515
|
-
messagesList.length ?
|
|
20284
|
+
styles47.messagesList,
|
|
20285
|
+
messagesList.length ? styles47.messagesListFill : styles47.messagesListCenter
|
|
19516
20286
|
],
|
|
19517
|
-
ListEmptyComponent: /* @__PURE__ */
|
|
19518
|
-
/* @__PURE__ */
|
|
19519
|
-
/* @__PURE__ */
|
|
19520
|
-
/* @__PURE__ */
|
|
20287
|
+
ListEmptyComponent: /* @__PURE__ */ jsxs40(View46, { style: styles47.emptyContainer, children: [
|
|
20288
|
+
/* @__PURE__ */ jsx61(View46, { style: [styles47.emptyIconWrap, { backgroundColor: colors.primarySoft }], children: /* @__PURE__ */ jsx61(Icon, { name: "messages-square", size: 28, color: colors.primary, strokeWidth: 2 }) }),
|
|
20289
|
+
/* @__PURE__ */ jsx61(Text37, { style: [styles47.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
|
|
20290
|
+
/* @__PURE__ */ jsx61(Text37, { style: [styles47.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
|
|
19521
20291
|
] }),
|
|
19522
20292
|
onContentSizeChange: () => {
|
|
19523
20293
|
var _a3;
|
|
@@ -19529,7 +20299,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19529
20299
|
removeClippedSubviews: true
|
|
19530
20300
|
}
|
|
19531
20301
|
),
|
|
19532
|
-
/* @__PURE__ */
|
|
20302
|
+
/* @__PURE__ */ jsx61(
|
|
19533
20303
|
MessageComposer,
|
|
19534
20304
|
{
|
|
19535
20305
|
messageText,
|
|
@@ -19545,7 +20315,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19545
20315
|
)
|
|
19546
20316
|
] });
|
|
19547
20317
|
}
|
|
19548
|
-
var
|
|
20318
|
+
var styles47 = StyleSheet48.create({
|
|
19549
20319
|
container: {
|
|
19550
20320
|
flex: 1
|
|
19551
20321
|
},
|
|
@@ -19628,16 +20398,16 @@ var styles45 = StyleSheet46.create({
|
|
|
19628
20398
|
});
|
|
19629
20399
|
|
|
19630
20400
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
19631
|
-
import { jsx as
|
|
20401
|
+
import { jsx as jsx62, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
19632
20402
|
function CaseDetailsPage() {
|
|
19633
20403
|
var _a3, _b;
|
|
19634
|
-
const { t } =
|
|
20404
|
+
const { t } = useTranslation27();
|
|
19635
20405
|
const { navigateTo, selectedCase, setSelectedCase, pendingCaseUuid } = useInternalNavigation();
|
|
19636
20406
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19637
20407
|
const { colors } = useTheme();
|
|
19638
20408
|
const { keyboardOffset } = usePrivacyCenterInsets();
|
|
19639
20409
|
const requestTypeLabels = useRequestTypeLabels();
|
|
19640
|
-
const [activeTab, setActiveTab] =
|
|
20410
|
+
const [activeTab, setActiveTab] = useState24("request-details");
|
|
19641
20411
|
const authContext = useMemo20(() => ({
|
|
19642
20412
|
accessToken,
|
|
19643
20413
|
refreshToken,
|
|
@@ -19651,7 +20421,7 @@ function CaseDetailsPage() {
|
|
|
19651
20421
|
email != null ? email : void 0,
|
|
19652
20422
|
authContext
|
|
19653
20423
|
);
|
|
19654
|
-
|
|
20424
|
+
useEffect19(() => {
|
|
19655
20425
|
if (!cases) return;
|
|
19656
20426
|
if (cases.length === 0) {
|
|
19657
20427
|
navigateTo("form");
|
|
@@ -19665,33 +20435,33 @@ function CaseDetailsPage() {
|
|
|
19665
20435
|
navigateTo("form");
|
|
19666
20436
|
}
|
|
19667
20437
|
}, [cases, targetUuid, setSelectedCase, navigateTo]);
|
|
19668
|
-
|
|
20438
|
+
useEffect19(() => {
|
|
19669
20439
|
if (!selectedCase && !targetUuid && !isLoading) {
|
|
19670
20440
|
navigateTo("form");
|
|
19671
20441
|
}
|
|
19672
20442
|
}, [selectedCase, targetUuid, isLoading, navigateTo]);
|
|
19673
20443
|
if (!selectedCase) {
|
|
19674
|
-
return /* @__PURE__ */
|
|
20444
|
+
return /* @__PURE__ */ jsx62(View47, { style: styles48.centered, children: isLoading ? /* @__PURE__ */ jsx62(ActivityIndicator8, { size: "large", color: colors.primary }) : /* @__PURE__ */ jsx62(Text38, { style: [styles48.emptyText, { color: colors.textSecondary }], children: t("noCasesYet") || "No case selected" }) });
|
|
19675
20445
|
}
|
|
19676
20446
|
const requestTypeLabel = requestTypeLabels[(_b = selectedCase.request_type) == null ? void 0 : _b.toUpperCase()] || selectedCase.request_type_display || formatCaseStatus(selectedCase.request_type || "");
|
|
19677
20447
|
const tabs = [
|
|
19678
20448
|
{ id: "request-details", label: t("requestDetails") || "Request Details" },
|
|
19679
20449
|
{ id: "messages", label: t("messages") || "Messages" }
|
|
19680
20450
|
];
|
|
19681
|
-
return /* @__PURE__ */
|
|
20451
|
+
return /* @__PURE__ */ jsxs41(
|
|
19682
20452
|
KeyboardAvoidingViewCompat,
|
|
19683
20453
|
{
|
|
19684
|
-
style: [
|
|
20454
|
+
style: [styles48.container, { backgroundColor: colors.canvasSubtle }],
|
|
19685
20455
|
behavior: "padding",
|
|
19686
20456
|
keyboardVerticalOffset: Platform7.OS === "ios" ? keyboardOffset : 0,
|
|
19687
20457
|
children: [
|
|
19688
|
-
/* @__PURE__ */
|
|
19689
|
-
/* @__PURE__ */
|
|
19690
|
-
/* @__PURE__ */
|
|
19691
|
-
/* @__PURE__ */
|
|
19692
|
-
/* @__PURE__ */
|
|
19693
|
-
/* @__PURE__ */
|
|
19694
|
-
/* @__PURE__ */
|
|
20458
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.headerWrap, children: [
|
|
20459
|
+
/* @__PURE__ */ jsx62(View47, { style: [styles48.heroCard, elevation.card, { backgroundColor: colors.surface }], children: /* @__PURE__ */ jsxs41(View47, { style: styles48.heroInner, children: [
|
|
20460
|
+
/* @__PURE__ */ jsx62(View47, { style: [styles48.accent, { backgroundColor: getCaseStatusColor(selectedCase.status, colors) }] }),
|
|
20461
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.heroBody, children: [
|
|
20462
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.heroTopRow, children: [
|
|
20463
|
+
/* @__PURE__ */ jsx62(View47, { style: [styles48.typeChip, { backgroundColor: withAlpha(getRequestTypeColor(selectedCase.request_type, colors), 0.12) }], children: /* @__PURE__ */ jsx62(Text38, { style: [styles48.typeChipText, { color: getRequestTypeColor(selectedCase.request_type, colors) }], numberOfLines: 1, children: requestTypeLabel }) }),
|
|
20464
|
+
/* @__PURE__ */ jsx62(
|
|
19695
20465
|
PCBadge,
|
|
19696
20466
|
{
|
|
19697
20467
|
status: getCaseStatusVariant(selectedCase.status),
|
|
@@ -19700,10 +20470,10 @@ function CaseDetailsPage() {
|
|
|
19700
20470
|
}
|
|
19701
20471
|
)
|
|
19702
20472
|
] }),
|
|
19703
|
-
/* @__PURE__ */
|
|
20473
|
+
/* @__PURE__ */ jsx62(Text38, { style: [styles48.caseId, { color: colors.text }], numberOfLines: 1, children: selectedCase.case_id })
|
|
19704
20474
|
] })
|
|
19705
20475
|
] }) }),
|
|
19706
|
-
/* @__PURE__ */
|
|
20476
|
+
/* @__PURE__ */ jsx62(
|
|
19707
20477
|
Segmented,
|
|
19708
20478
|
{
|
|
19709
20479
|
options: tabs.map((tab) => ({ value: tab.id, label: tab.label })),
|
|
@@ -19712,18 +20482,18 @@ function CaseDetailsPage() {
|
|
|
19712
20482
|
}
|
|
19713
20483
|
)
|
|
19714
20484
|
] }),
|
|
19715
|
-
/* @__PURE__ */
|
|
20485
|
+
/* @__PURE__ */ jsx62(View47, { style: styles48.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ jsx62(
|
|
19716
20486
|
RequestDetailsTab,
|
|
19717
20487
|
{
|
|
19718
20488
|
selectedCase,
|
|
19719
20489
|
requestTypeLabel
|
|
19720
20490
|
}
|
|
19721
|
-
) : /* @__PURE__ */
|
|
20491
|
+
) : /* @__PURE__ */ jsx62(MessagesTab, { caseUuid: selectedCase.uuid, isCaseFinalized: isTerminalCaseStatus(selectedCase.status) }) })
|
|
19722
20492
|
]
|
|
19723
20493
|
}
|
|
19724
20494
|
);
|
|
19725
20495
|
}
|
|
19726
|
-
var
|
|
20496
|
+
var styles48 = StyleSheet49.create({
|
|
19727
20497
|
container: {
|
|
19728
20498
|
flex: 1
|
|
19729
20499
|
},
|
|
@@ -19788,36 +20558,36 @@ var styles46 = StyleSheet47.create({
|
|
|
19788
20558
|
});
|
|
19789
20559
|
|
|
19790
20560
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
19791
|
-
import { useCallback as
|
|
19792
|
-
import { FlatList as FlatList3, RefreshControl as RefreshControl5, StyleSheet as
|
|
19793
|
-
import { useTranslation as
|
|
20561
|
+
import { useCallback as useCallback14, useEffect as useEffect20, useMemo as useMemo23, useRef as useRef12, useState as useState25 } from "react";
|
|
20562
|
+
import { FlatList as FlatList3, RefreshControl as RefreshControl5, StyleSheet as StyleSheet54, Text as Text42, TouchableOpacity as TouchableOpacity22, View as View51 } from "react-native";
|
|
20563
|
+
import { useTranslation as useTranslation29 } from "react-i18next";
|
|
19794
20564
|
|
|
19795
20565
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
19796
|
-
import { StyleSheet as
|
|
19797
|
-
import { useTranslation as
|
|
20566
|
+
import { StyleSheet as StyleSheet53, Text as Text41, TouchableOpacity as TouchableOpacity21, View as View50 } from "react-native";
|
|
20567
|
+
import { useTranslation as useTranslation28 } from "react-i18next";
|
|
19798
20568
|
|
|
19799
20569
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx
|
|
19800
|
-
import { StyleSheet as
|
|
19801
|
-
import { jsx as
|
|
20570
|
+
import { StyleSheet as StyleSheet50, Text as Text39, TouchableOpacity as TouchableOpacity19 } from "react-native";
|
|
20571
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
19802
20572
|
var NotificationCTAButton = ({ cta, onPress }) => {
|
|
19803
20573
|
const { colors } = useTheme();
|
|
19804
20574
|
const tone = cta.style === "danger" ? colors.error : colors.primary;
|
|
19805
20575
|
const isPrimary = cta.style === "primary" || cta.style === "danger";
|
|
19806
|
-
return /* @__PURE__ */
|
|
19807
|
-
|
|
20576
|
+
return /* @__PURE__ */ jsx63(
|
|
20577
|
+
TouchableOpacity19,
|
|
19808
20578
|
{
|
|
19809
20579
|
onPress,
|
|
19810
20580
|
activeOpacity: 0.7,
|
|
19811
20581
|
style: [
|
|
19812
|
-
|
|
20582
|
+
styles49.button,
|
|
19813
20583
|
isPrimary ? { backgroundColor: tone } : { backgroundColor: colors.primarySoft }
|
|
19814
20584
|
],
|
|
19815
20585
|
accessibilityRole: "button",
|
|
19816
|
-
children: /* @__PURE__ */
|
|
20586
|
+
children: /* @__PURE__ */ jsx63(Text39, { style: [styles49.label, { color: isPrimary ? colors.primaryText : colors.primary }], numberOfLines: 1, children: cta.label })
|
|
19817
20587
|
}
|
|
19818
20588
|
);
|
|
19819
20589
|
};
|
|
19820
|
-
var
|
|
20590
|
+
var styles49 = StyleSheet50.create({
|
|
19821
20591
|
button: {
|
|
19822
20592
|
paddingHorizontal: spacing.lg,
|
|
19823
20593
|
paddingVertical: spacing.sm,
|
|
@@ -19832,8 +20602,8 @@ var styles47 = StyleSheet48.create({
|
|
|
19832
20602
|
});
|
|
19833
20603
|
|
|
19834
20604
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx
|
|
19835
|
-
import { StyleSheet as
|
|
19836
|
-
import { jsx as
|
|
20605
|
+
import { StyleSheet as StyleSheet51, View as View48 } from "react-native";
|
|
20606
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
19837
20607
|
var CATEGORY_ICON = {
|
|
19838
20608
|
guardian: "user-round",
|
|
19839
20609
|
consent: "clock",
|
|
@@ -19846,18 +20616,18 @@ var NotificationIcon = ({ notificationType, size = 40 }) => {
|
|
|
19846
20616
|
var _a3;
|
|
19847
20617
|
const category = (_a3 = TYPE_TO_ICON_CATEGORY[notificationType]) != null ? _a3 : "system";
|
|
19848
20618
|
const color = ICON_COLORS[category];
|
|
19849
|
-
return /* @__PURE__ */
|
|
19850
|
-
|
|
20619
|
+
return /* @__PURE__ */ jsx64(
|
|
20620
|
+
View48,
|
|
19851
20621
|
{
|
|
19852
20622
|
style: [
|
|
19853
|
-
|
|
20623
|
+
styles50.wrap,
|
|
19854
20624
|
{ width: size, height: size, borderRadius: radii.md, backgroundColor: withAlpha(color, 0.13) }
|
|
19855
20625
|
],
|
|
19856
|
-
children: /* @__PURE__ */
|
|
20626
|
+
children: /* @__PURE__ */ jsx64(Icon, { name: CATEGORY_ICON[category], size: Math.round(size * 0.5), color, strokeWidth: 2 })
|
|
19857
20627
|
}
|
|
19858
20628
|
);
|
|
19859
20629
|
};
|
|
19860
|
-
var
|
|
20630
|
+
var styles50 = StyleSheet51.create({
|
|
19861
20631
|
wrap: {
|
|
19862
20632
|
alignItems: "center",
|
|
19863
20633
|
justifyContent: "center"
|
|
@@ -19866,8 +20636,8 @@ var styles48 = StyleSheet49.create({
|
|
|
19866
20636
|
|
|
19867
20637
|
// src/RedactoPrivacyCenter/components/NotificationHub/SwipeableRow.tsx
|
|
19868
20638
|
import { useMemo as useMemo21, useRef as useRef11 } from "react";
|
|
19869
|
-
import { Animated as Animated13, PanResponder as PanResponder2, StyleSheet as
|
|
19870
|
-
import { Fragment as Fragment14, jsx as
|
|
20639
|
+
import { Animated as Animated13, PanResponder as PanResponder2, StyleSheet as StyleSheet52, Text as Text40, TouchableOpacity as TouchableOpacity20, View as View49 } from "react-native";
|
|
20640
|
+
import { Fragment as Fragment14, jsx as jsx65, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
19871
20641
|
var ACTION_WIDTH = 80;
|
|
19872
20642
|
var CLAIM_THRESHOLD = 8;
|
|
19873
20643
|
var SwipeableRow = ({ actions, background, children }) => {
|
|
@@ -19906,37 +20676,37 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
19906
20676
|
[maxOpen]
|
|
19907
20677
|
);
|
|
19908
20678
|
if (actions.length === 0) {
|
|
19909
|
-
return /* @__PURE__ */
|
|
20679
|
+
return /* @__PURE__ */ jsx65(Fragment14, { children });
|
|
19910
20680
|
}
|
|
19911
20681
|
const runAction = (action) => {
|
|
19912
20682
|
settle(0);
|
|
19913
20683
|
action.onPress();
|
|
19914
20684
|
};
|
|
19915
|
-
return /* @__PURE__ */
|
|
19916
|
-
/* @__PURE__ */
|
|
19917
|
-
|
|
20685
|
+
return /* @__PURE__ */ jsxs42(View49, { style: styles51.root, children: [
|
|
20686
|
+
/* @__PURE__ */ jsx65(View49, { style: styles51.actionsLayer, pointerEvents: "box-none", children: actions.map((action) => /* @__PURE__ */ jsxs42(
|
|
20687
|
+
TouchableOpacity20,
|
|
19918
20688
|
{
|
|
19919
|
-
style: [
|
|
20689
|
+
style: [styles51.action, { width: ACTION_WIDTH, backgroundColor: toneColor2[action.tone] }],
|
|
19920
20690
|
onPress: () => runAction(action),
|
|
19921
20691
|
activeOpacity: 0.85,
|
|
19922
20692
|
accessibilityRole: "button",
|
|
19923
20693
|
accessibilityLabel: action.label,
|
|
19924
20694
|
children: [
|
|
19925
|
-
/* @__PURE__ */
|
|
19926
|
-
/* @__PURE__ */
|
|
20695
|
+
/* @__PURE__ */ jsx65(Icon, { name: action.icon, size: 20, color: colors.primaryText, strokeWidth: 2.2 }),
|
|
20696
|
+
/* @__PURE__ */ jsx65(Text40, { style: [styles51.actionLabel, { color: colors.primaryText }], numberOfLines: 1, children: action.label })
|
|
19927
20697
|
]
|
|
19928
20698
|
},
|
|
19929
20699
|
action.key
|
|
19930
20700
|
)) }),
|
|
19931
|
-
/* @__PURE__ */
|
|
20701
|
+
/* @__PURE__ */ jsx65(Animated13.View, { style: [{ backgroundColor: background, transform: [{ translateX }] }], ...panResponder.panHandlers, children })
|
|
19932
20702
|
] });
|
|
19933
20703
|
};
|
|
19934
|
-
var
|
|
20704
|
+
var styles51 = StyleSheet52.create({
|
|
19935
20705
|
root: {
|
|
19936
20706
|
position: "relative"
|
|
19937
20707
|
},
|
|
19938
20708
|
actionsLayer: {
|
|
19939
|
-
...
|
|
20709
|
+
...StyleSheet52.absoluteFillObject,
|
|
19940
20710
|
flexDirection: "row",
|
|
19941
20711
|
justifyContent: "flex-end"
|
|
19942
20712
|
},
|
|
@@ -19969,10 +20739,10 @@ var formatTimeAgo = (dateString, t) => {
|
|
|
19969
20739
|
};
|
|
19970
20740
|
|
|
19971
20741
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
19972
|
-
import { Fragment as Fragment15, jsx as
|
|
20742
|
+
import { Fragment as Fragment15, jsx as jsx66, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
19973
20743
|
var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) => {
|
|
19974
20744
|
var _a3, _b;
|
|
19975
|
-
const { t } =
|
|
20745
|
+
const { t } = useTranslation28();
|
|
19976
20746
|
const { colors } = useTheme();
|
|
19977
20747
|
const isUnread = !notification.is_read;
|
|
19978
20748
|
const statusLabel = notification.status_label_display || notification.status_label;
|
|
@@ -19999,35 +20769,35 @@ var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) =>
|
|
|
19999
20769
|
onPress: onAcknowledge
|
|
20000
20770
|
});
|
|
20001
20771
|
}
|
|
20002
|
-
return /* @__PURE__ */
|
|
20003
|
-
isUnread ? /* @__PURE__ */
|
|
20004
|
-
/* @__PURE__ */
|
|
20005
|
-
/* @__PURE__ */
|
|
20006
|
-
/* @__PURE__ */
|
|
20007
|
-
/* @__PURE__ */
|
|
20008
|
-
|
|
20772
|
+
return /* @__PURE__ */ jsx66(SwipeableRow, { actions, background: colors.surface, children: /* @__PURE__ */ jsxs43(TouchableOpacity21, { onPress, activeOpacity: 0.6, accessibilityRole: "button", style: styles52.row, children: [
|
|
20773
|
+
isUnread ? /* @__PURE__ */ jsx66(View50, { style: [styles52.accent, { backgroundColor: accent }] }) : null,
|
|
20774
|
+
/* @__PURE__ */ jsx66(NotificationIcon, { notificationType: notification.notification_type, size: 36 }),
|
|
20775
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.content, children: [
|
|
20776
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.titleRow, children: [
|
|
20777
|
+
/* @__PURE__ */ jsx66(
|
|
20778
|
+
Text41,
|
|
20009
20779
|
{
|
|
20010
|
-
style: [
|
|
20780
|
+
style: [styles52.title, { color: colors.text, fontWeight: isUnread ? "700" : "600" }],
|
|
20011
20781
|
numberOfLines: 2,
|
|
20012
20782
|
children: notification.title
|
|
20013
20783
|
}
|
|
20014
20784
|
),
|
|
20015
|
-
isUnread ? /* @__PURE__ */
|
|
20785
|
+
isUnread ? /* @__PURE__ */ jsx66(View50, { style: [styles52.unreadDot, { backgroundColor: colors.primary }] }) : null
|
|
20016
20786
|
] }),
|
|
20017
|
-
/* @__PURE__ */
|
|
20018
|
-
statusLabel ? /* @__PURE__ */
|
|
20019
|
-
/* @__PURE__ */
|
|
20020
|
-
/* @__PURE__ */
|
|
20021
|
-
/* @__PURE__ */
|
|
20787
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.metaRow, children: [
|
|
20788
|
+
statusLabel ? /* @__PURE__ */ jsxs43(Fragment15, { children: [
|
|
20789
|
+
/* @__PURE__ */ jsx66(View50, { style: [styles52.statusDot, { backgroundColor: accent }] }),
|
|
20790
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaText, { color: colors.textSecondary }], numberOfLines: 1, children: statusLabel }),
|
|
20791
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaDivider, { color: colors.textSecondary }], children: "\xB7" })
|
|
20022
20792
|
] }) : null,
|
|
20023
|
-
/* @__PURE__ */
|
|
20793
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaText, { color: colors.textSecondary }], children: formatTimeAgo(notification.created_at, t) })
|
|
20024
20794
|
] }),
|
|
20025
|
-
showAcknowledge && ackCta ? /* @__PURE__ */
|
|
20795
|
+
showAcknowledge && ackCta ? /* @__PURE__ */ jsx66(View50, { style: styles52.ackWrap, children: /* @__PURE__ */ jsx66(NotificationCTAButton, { cta: ackCta, onPress: onAcknowledge }) }) : null
|
|
20026
20796
|
] }),
|
|
20027
|
-
/* @__PURE__ */
|
|
20797
|
+
/* @__PURE__ */ jsx66(View50, { style: styles52.chevron, children: /* @__PURE__ */ jsx66(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary }) })
|
|
20028
20798
|
] }) });
|
|
20029
20799
|
};
|
|
20030
|
-
var
|
|
20800
|
+
var styles52 = StyleSheet53.create({
|
|
20031
20801
|
row: {
|
|
20032
20802
|
flexDirection: "row",
|
|
20033
20803
|
alignItems: "center",
|
|
@@ -20090,7 +20860,7 @@ var styles50 = StyleSheet51.create({
|
|
|
20090
20860
|
});
|
|
20091
20861
|
|
|
20092
20862
|
// src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts
|
|
20093
|
-
import { useCallback as
|
|
20863
|
+
import { useCallback as useCallback13, useMemo as useMemo22 } from "react";
|
|
20094
20864
|
import { Linking as Linking2 } from "react-native";
|
|
20095
20865
|
var useNotificationActions = () => {
|
|
20096
20866
|
const { navigateTo, setSelectedCase } = useInternalNavigation();
|
|
@@ -20101,14 +20871,14 @@ var useNotificationActions = () => {
|
|
|
20101
20871
|
() => ({ accessToken, refreshToken, onError, updateTokens }),
|
|
20102
20872
|
[accessToken, refreshToken, onError, updateTokens]
|
|
20103
20873
|
);
|
|
20104
|
-
const hasAcknowledgeCTA =
|
|
20874
|
+
const hasAcknowledgeCTA = useCallback13(
|
|
20105
20875
|
(notification) => {
|
|
20106
20876
|
var _a3, _b;
|
|
20107
20877
|
return (_b = (_a3 = notification.ctas) == null ? void 0 : _a3.some((cta) => cta.action_type === "acknowledge")) != null ? _b : false;
|
|
20108
20878
|
},
|
|
20109
20879
|
[]
|
|
20110
20880
|
);
|
|
20111
|
-
const handleMarkRead =
|
|
20881
|
+
const handleMarkRead = useCallback13(
|
|
20112
20882
|
async (notificationUuid) => {
|
|
20113
20883
|
if (!organizationId || !workspaceId) return false;
|
|
20114
20884
|
const result = await markNotificationRead(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20116,12 +20886,12 @@ var useNotificationActions = () => {
|
|
|
20116
20886
|
},
|
|
20117
20887
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20118
20888
|
);
|
|
20119
|
-
const handleMarkAllRead =
|
|
20889
|
+
const handleMarkAllRead = useCallback13(async () => {
|
|
20120
20890
|
if (!organizationId || !workspaceId) return false;
|
|
20121
20891
|
const result = await markAllRead(organizationId, workspaceId, authContext, consentClient);
|
|
20122
20892
|
return result !== null;
|
|
20123
20893
|
}, [organizationId, workspaceId, authContext, consentClient]);
|
|
20124
|
-
const handleAcknowledge =
|
|
20894
|
+
const handleAcknowledge = useCallback13(
|
|
20125
20895
|
async (notificationUuid) => {
|
|
20126
20896
|
if (!organizationId || !workspaceId) return false;
|
|
20127
20897
|
const result = await acknowledgeNotification(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20129,7 +20899,7 @@ var useNotificationActions = () => {
|
|
|
20129
20899
|
},
|
|
20130
20900
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20131
20901
|
);
|
|
20132
|
-
const handleCTAClick =
|
|
20902
|
+
const handleCTAClick = useCallback13(
|
|
20133
20903
|
async (notification, cta) => {
|
|
20134
20904
|
var _a3;
|
|
20135
20905
|
if (cta.action_type === "acknowledge") {
|
|
@@ -20186,7 +20956,7 @@ var useNotificationActions = () => {
|
|
|
20186
20956
|
};
|
|
20187
20957
|
|
|
20188
20958
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
20189
|
-
import { Fragment as Fragment16, jsx as
|
|
20959
|
+
import { Fragment as Fragment16, jsx as jsx67, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
20190
20960
|
var EMPTY_SUMMARY = { total: 0, unread: 0, action_needed: 0, acknowledged: 0 };
|
|
20191
20961
|
var READ_FILTER_TO_PARAM = {
|
|
20192
20962
|
all: void 0,
|
|
@@ -20194,7 +20964,7 @@ var READ_FILTER_TO_PARAM = {
|
|
|
20194
20964
|
read: true
|
|
20195
20965
|
};
|
|
20196
20966
|
var NotificationsScreen = () => {
|
|
20197
|
-
const { t } =
|
|
20967
|
+
const { t } = useTranslation29();
|
|
20198
20968
|
const { colors } = useTheme();
|
|
20199
20969
|
const { langParam } = useCurrentLanguage();
|
|
20200
20970
|
const { listBottom } = usePrivacyCenterInsets();
|
|
@@ -20211,15 +20981,15 @@ var NotificationsScreen = () => {
|
|
|
20211
20981
|
handleAcknowledge,
|
|
20212
20982
|
handleCTAClick
|
|
20213
20983
|
} = useNotificationActions();
|
|
20214
|
-
const [notifications, setNotifications] =
|
|
20215
|
-
const [summary, setSummary] =
|
|
20216
|
-
const [activeTab, setActiveTab] =
|
|
20217
|
-
const [readFilter, setReadFilter] =
|
|
20218
|
-
const [isLoading, setIsLoading] =
|
|
20219
|
-
const [isRefreshing2, setIsRefreshing] =
|
|
20220
|
-
const [filterOpen, setFilterOpen] =
|
|
20984
|
+
const [notifications, setNotifications] = useState25([]);
|
|
20985
|
+
const [summary, setSummary] = useState25(EMPTY_SUMMARY);
|
|
20986
|
+
const [activeTab, setActiveTab] = useState25("all");
|
|
20987
|
+
const [readFilter, setReadFilter] = useState25("all");
|
|
20988
|
+
const [isLoading, setIsLoading] = useState25(true);
|
|
20989
|
+
const [isRefreshing2, setIsRefreshing] = useState25(false);
|
|
20990
|
+
const [filterOpen, setFilterOpen] = useState25(false);
|
|
20221
20991
|
const isFiltered = activeTab !== "all" || readFilter !== "all";
|
|
20222
|
-
const loadNotifications =
|
|
20992
|
+
const loadNotifications = useCallback14(
|
|
20223
20993
|
async (includeSummary = false, silent = false) => {
|
|
20224
20994
|
if (!organizationId || !workspaceId) return;
|
|
20225
20995
|
if (!silent) setIsLoading(true);
|
|
@@ -20249,18 +21019,21 @@ var NotificationsScreen = () => {
|
|
|
20249
21019
|
},
|
|
20250
21020
|
[organizationId, workspaceId, activeTab, readFilter, authContext, consentClient, langParam]
|
|
20251
21021
|
);
|
|
20252
|
-
|
|
21022
|
+
useEffect20(() => {
|
|
20253
21023
|
loadNotifications(true);
|
|
20254
21024
|
}, [loadNotifications]);
|
|
20255
21025
|
const loadRef = useRef12(loadNotifications);
|
|
20256
21026
|
loadRef.current = loadNotifications;
|
|
20257
|
-
|
|
21027
|
+
const authContextRef = useRef12(authContext);
|
|
21028
|
+
authContextRef.current = authContext;
|
|
21029
|
+
useEffect20(() => {
|
|
20258
21030
|
const id = setInterval(() => {
|
|
21031
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
20259
21032
|
loadRef.current(false, true);
|
|
20260
21033
|
}, POLL_INTERVAL);
|
|
20261
21034
|
return () => clearInterval(id);
|
|
20262
21035
|
}, []);
|
|
20263
|
-
const onNotificationClick =
|
|
21036
|
+
const onNotificationClick = useCallback14(
|
|
20264
21037
|
async (notification) => {
|
|
20265
21038
|
const shouldMarkRead = !notification.is_read;
|
|
20266
21039
|
const shouldAutoAcknowledge = !notification.is_acknowledged && !hasAcknowledgeCTA(notification);
|
|
@@ -20281,7 +21054,7 @@ var NotificationsScreen = () => {
|
|
|
20281
21054
|
},
|
|
20282
21055
|
[hasAcknowledgeCTA, handleAcknowledge, handleMarkRead]
|
|
20283
21056
|
);
|
|
20284
|
-
const onRowPress =
|
|
21057
|
+
const onRowPress = useCallback14(
|
|
20285
21058
|
async (notification) => {
|
|
20286
21059
|
var _a3;
|
|
20287
21060
|
const linkCta = (_a3 = notification.ctas) == null ? void 0 : _a3.find((cta) => cta.action_type === "link" && cta.url);
|
|
@@ -20299,7 +21072,7 @@ var NotificationsScreen = () => {
|
|
|
20299
21072
|
},
|
|
20300
21073
|
[handleCTAClick, onNotificationClick]
|
|
20301
21074
|
);
|
|
20302
|
-
const onMarkReadRow =
|
|
21075
|
+
const onMarkReadRow = useCallback14(
|
|
20303
21076
|
async (notification) => {
|
|
20304
21077
|
if (notification.is_read) return;
|
|
20305
21078
|
const ok = await handleMarkRead(notification.uuid);
|
|
@@ -20309,7 +21082,7 @@ var NotificationsScreen = () => {
|
|
|
20309
21082
|
},
|
|
20310
21083
|
[handleMarkRead]
|
|
20311
21084
|
);
|
|
20312
|
-
const onAcknowledgeRow =
|
|
21085
|
+
const onAcknowledgeRow = useCallback14(
|
|
20313
21086
|
async (notification) => {
|
|
20314
21087
|
if (notification.is_acknowledged) return;
|
|
20315
21088
|
const ok = await handleAcknowledge(notification.uuid);
|
|
@@ -20326,7 +21099,14 @@ var NotificationsScreen = () => {
|
|
|
20326
21099
|
},
|
|
20327
21100
|
[handleAcknowledge]
|
|
20328
21101
|
);
|
|
20329
|
-
const
|
|
21102
|
+
const onMarkAllRead = useCallback14(async () => {
|
|
21103
|
+
const ok = await handleMarkAllRead();
|
|
21104
|
+
if (!ok) return;
|
|
21105
|
+
setNotifications((prev) => prev.map((item) => ({ ...item, is_read: true })));
|
|
21106
|
+
setSummary((prev) => ({ ...prev, unread: 0 }));
|
|
21107
|
+
if (readFilter !== "all") loadNotifications(true, true);
|
|
21108
|
+
}, [handleMarkAllRead, readFilter, loadNotifications]);
|
|
21109
|
+
const onRefresh = useCallback14(() => {
|
|
20330
21110
|
setIsRefreshing(true);
|
|
20331
21111
|
loadNotifications(true, true);
|
|
20332
21112
|
}, [loadNotifications]);
|
|
@@ -20334,14 +21114,14 @@ var NotificationsScreen = () => {
|
|
|
20334
21114
|
() => groupByTime(notifications, (item) => item.created_at, classifyTime),
|
|
20335
21115
|
[notifications, classifyTime]
|
|
20336
21116
|
);
|
|
20337
|
-
const header = /* @__PURE__ */
|
|
20338
|
-
/* @__PURE__ */
|
|
20339
|
-
/* @__PURE__ */
|
|
20340
|
-
/* @__PURE__ */
|
|
20341
|
-
|
|
21117
|
+
const header = /* @__PURE__ */ jsxs44(View51, { style: styles53.header, children: [
|
|
21118
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.titleRow, children: [
|
|
21119
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.screenTitle, { color: colors.text }], children: t("notifications", { defaultValue: "Notifications" }) }),
|
|
21120
|
+
/* @__PURE__ */ jsx67(
|
|
21121
|
+
TouchableOpacity22,
|
|
20342
21122
|
{
|
|
20343
21123
|
style: [
|
|
20344
|
-
|
|
21124
|
+
styles53.filterBtn,
|
|
20345
21125
|
{
|
|
20346
21126
|
backgroundColor: isFiltered ? colors.primarySoft : colors.surface,
|
|
20347
21127
|
borderColor: isFiltered ? colors.primary : colors.border
|
|
@@ -20350,30 +21130,30 @@ var NotificationsScreen = () => {
|
|
|
20350
21130
|
onPress: () => setFilterOpen(true),
|
|
20351
21131
|
accessibilityRole: "button",
|
|
20352
21132
|
accessibilityLabel: t("filter") || "Filter",
|
|
20353
|
-
children: /* @__PURE__ */
|
|
21133
|
+
children: /* @__PURE__ */ jsx67(Icon, { name: "sliders-horizontal", size: 18, color: isFiltered ? colors.primary : colors.text })
|
|
20354
21134
|
}
|
|
20355
21135
|
)
|
|
20356
21136
|
] }),
|
|
20357
|
-
summary.unread > 0 ? /* @__PURE__ */
|
|
20358
|
-
/* @__PURE__ */
|
|
20359
|
-
/* @__PURE__ */
|
|
21137
|
+
summary.unread > 0 ? /* @__PURE__ */ jsxs44(TouchableOpacity22, { style: styles53.markAllBtn, onPress: onMarkAllRead, activeOpacity: 0.7, accessibilityRole: "button", children: [
|
|
21138
|
+
/* @__PURE__ */ jsx67(Icon, { name: "check-check", size: 15, color: colors.primary, strokeWidth: 2.2 }),
|
|
21139
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.markAllLabel, { color: colors.primary }], children: t("markAllAsRead") || "Mark all as read" })
|
|
20360
21140
|
] }) : null
|
|
20361
21141
|
] });
|
|
20362
|
-
return /* @__PURE__ */
|
|
20363
|
-
/* @__PURE__ */
|
|
21142
|
+
return /* @__PURE__ */ jsxs44(Fragment16, { children: [
|
|
21143
|
+
/* @__PURE__ */ jsx67(
|
|
20364
21144
|
FlatList3,
|
|
20365
21145
|
{
|
|
20366
21146
|
data: sections,
|
|
20367
21147
|
keyExtractor: (section2) => section2.key,
|
|
20368
|
-
style: [
|
|
20369
|
-
contentContainerStyle: [
|
|
21148
|
+
style: [styles53.list, { backgroundColor: colors.canvasSubtle }],
|
|
21149
|
+
contentContainerStyle: [styles53.listContent, { flexGrow: 1, paddingBottom: listBottom }],
|
|
20370
21150
|
ListHeaderComponent: header,
|
|
20371
21151
|
showsVerticalScrollIndicator: false,
|
|
20372
|
-
refreshControl: /* @__PURE__ */
|
|
20373
|
-
renderItem: ({ item: section2 }) => /* @__PURE__ */
|
|
20374
|
-
/* @__PURE__ */
|
|
20375
|
-
/* @__PURE__ */
|
|
20376
|
-
/* @__PURE__ */
|
|
21152
|
+
refreshControl: /* @__PURE__ */ jsx67(RefreshControl5, { refreshing: isRefreshing2, onRefresh, tintColor: colors.primary, colors: [colors.primary] }),
|
|
21153
|
+
renderItem: ({ item: section2 }) => /* @__PURE__ */ jsxs44(View51, { style: styles53.section, children: [
|
|
21154
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.sectionTitle, { color: colors.textSecondary }], children: section2.title }),
|
|
21155
|
+
/* @__PURE__ */ jsx67(View51, { style: [styles53.cardShadow, elevation.card], children: /* @__PURE__ */ jsx67(View51, { style: [styles53.cardClip, { backgroundColor: colors.surface }], children: section2.data.map((item, index) => /* @__PURE__ */ jsxs44(View51, { children: [
|
|
21156
|
+
/* @__PURE__ */ jsx67(
|
|
20377
21157
|
NotificationRow,
|
|
20378
21158
|
{
|
|
20379
21159
|
notification: item,
|
|
@@ -20382,19 +21162,19 @@ var NotificationsScreen = () => {
|
|
|
20382
21162
|
onAcknowledge: () => onAcknowledgeRow(item)
|
|
20383
21163
|
}
|
|
20384
21164
|
),
|
|
20385
|
-
index < section2.data.length - 1 ? /* @__PURE__ */
|
|
21165
|
+
index < section2.data.length - 1 ? /* @__PURE__ */ jsx67(View51, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
20386
21166
|
] }, item.uuid)) }) })
|
|
20387
21167
|
] }),
|
|
20388
|
-
ListEmptyComponent: isLoading ? /* @__PURE__ */
|
|
20389
|
-
/* @__PURE__ */
|
|
20390
|
-
/* @__PURE__ */
|
|
20391
|
-
/* @__PURE__ */
|
|
20392
|
-
/* @__PURE__ */
|
|
20393
|
-
/* @__PURE__ */
|
|
21168
|
+
ListEmptyComponent: isLoading ? /* @__PURE__ */ jsx67(View51, { style: styles53.skeletonWrap, children: /* @__PURE__ */ jsx67(View51, { style: [styles53.cardClip, elevation.card, { backgroundColor: colors.surface }], children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsxs44(View51, { children: [
|
|
21169
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.skeletonRow, children: [
|
|
21170
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: 36, height: 36, radius: radii.md }),
|
|
21171
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.skeletonLines, children: [
|
|
21172
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: "70%", height: 13 }),
|
|
21173
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: "40%", height: 10 })
|
|
20394
21174
|
] })
|
|
20395
21175
|
] }),
|
|
20396
|
-
i < 3 ? /* @__PURE__ */
|
|
20397
|
-
] }, i)) }) }) : /* @__PURE__ */
|
|
21176
|
+
i < 3 ? /* @__PURE__ */ jsx67(View51, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
21177
|
+
] }, i)) }) }) : /* @__PURE__ */ jsx67(View51, { style: styles53.emptyWrap, children: /* @__PURE__ */ jsx67(
|
|
20398
21178
|
PCEmpty,
|
|
20399
21179
|
{
|
|
20400
21180
|
iconName: "circle-check",
|
|
@@ -20403,14 +21183,14 @@ var NotificationsScreen = () => {
|
|
|
20403
21183
|
}
|
|
20404
21184
|
) }),
|
|
20405
21185
|
ListFooterComponentStyle: { marginTop: "auto" },
|
|
20406
|
-
ListFooterComponent: /* @__PURE__ */
|
|
21186
|
+
ListFooterComponent: /* @__PURE__ */ jsx67(Footer, {})
|
|
20407
21187
|
}
|
|
20408
21188
|
),
|
|
20409
|
-
/* @__PURE__ */
|
|
20410
|
-
/* @__PURE__ */
|
|
20411
|
-
/* @__PURE__ */
|
|
21189
|
+
/* @__PURE__ */ jsx67(BottomSheet, { visible: filterOpen, onClose: () => setFilterOpen(false), title: t("filter") || "Filter", children: /* @__PURE__ */ jsxs44(View51, { style: styles53.filterSheet, children: [
|
|
21190
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.filterGroupLabel, { color: colors.textSecondary }], children: t("category", { defaultValue: "Category" }) }),
|
|
21191
|
+
/* @__PURE__ */ jsx67(View51, { style: styles53.chipWrap, children: filterTabs.map((tab) => {
|
|
20412
21192
|
const selected = tab.key === activeTab;
|
|
20413
|
-
return /* @__PURE__ */
|
|
21193
|
+
return /* @__PURE__ */ jsx67(
|
|
20414
21194
|
FilterChip,
|
|
20415
21195
|
{
|
|
20416
21196
|
label: tab.label,
|
|
@@ -20420,12 +21200,12 @@ var NotificationsScreen = () => {
|
|
|
20420
21200
|
tab.key
|
|
20421
21201
|
);
|
|
20422
21202
|
}) }),
|
|
20423
|
-
/* @__PURE__ */
|
|
20424
|
-
/* @__PURE__ */
|
|
21203
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.filterGroupLabel, { color: colors.textSecondary, marginTop: spacing.lg }], children: t("readStatus", { defaultValue: "Status" }) }),
|
|
21204
|
+
/* @__PURE__ */ jsx67(View51, { style: styles53.chipWrap, children: [
|
|
20425
21205
|
{ key: "all", label: t("all") || "All" },
|
|
20426
21206
|
{ key: "unread", label: t("unread") || "Unread" },
|
|
20427
21207
|
{ key: "read", label: t("read", { defaultValue: "Read" }) }
|
|
20428
|
-
].map((opt) => /* @__PURE__ */
|
|
21208
|
+
].map((opt) => /* @__PURE__ */ jsx67(
|
|
20429
21209
|
FilterChip,
|
|
20430
21210
|
{
|
|
20431
21211
|
label: opt.label,
|
|
@@ -20434,13 +21214,13 @@ var NotificationsScreen = () => {
|
|
|
20434
21214
|
},
|
|
20435
21215
|
opt.key
|
|
20436
21216
|
)) }),
|
|
20437
|
-
/* @__PURE__ */
|
|
20438
|
-
|
|
21217
|
+
/* @__PURE__ */ jsx67(
|
|
21218
|
+
TouchableOpacity22,
|
|
20439
21219
|
{
|
|
20440
|
-
style: [
|
|
21220
|
+
style: [styles53.applyBtn, { backgroundColor: colors.primary }],
|
|
20441
21221
|
onPress: () => setFilterOpen(false),
|
|
20442
21222
|
accessibilityRole: "button",
|
|
20443
|
-
children: /* @__PURE__ */
|
|
21223
|
+
children: /* @__PURE__ */ jsx67(Text42, { style: [styles53.applyLabel, { color: colors.primaryText }], children: t("done", { defaultValue: "Done" }) })
|
|
20444
21224
|
}
|
|
20445
21225
|
)
|
|
20446
21226
|
] }) })
|
|
@@ -20448,25 +21228,25 @@ var NotificationsScreen = () => {
|
|
|
20448
21228
|
};
|
|
20449
21229
|
var FilterChip = ({ label, selected, onPress }) => {
|
|
20450
21230
|
const { colors } = useTheme();
|
|
20451
|
-
return /* @__PURE__ */
|
|
20452
|
-
|
|
21231
|
+
return /* @__PURE__ */ jsx67(
|
|
21232
|
+
TouchableOpacity22,
|
|
20453
21233
|
{
|
|
20454
21234
|
onPress,
|
|
20455
21235
|
activeOpacity: 0.7,
|
|
20456
21236
|
accessibilityRole: "button",
|
|
20457
21237
|
accessibilityState: { selected },
|
|
20458
21238
|
style: [
|
|
20459
|
-
|
|
21239
|
+
styles53.chip,
|
|
20460
21240
|
{
|
|
20461
21241
|
backgroundColor: selected ? colors.primary : colors.surfaceAlt,
|
|
20462
21242
|
borderColor: selected ? colors.primary : colors.border
|
|
20463
21243
|
}
|
|
20464
21244
|
],
|
|
20465
|
-
children: /* @__PURE__ */
|
|
21245
|
+
children: /* @__PURE__ */ jsx67(Text42, { style: [styles53.chipLabel, { color: selected ? colors.primaryText : colors.text }], children: label })
|
|
20466
21246
|
}
|
|
20467
21247
|
);
|
|
20468
21248
|
};
|
|
20469
|
-
var
|
|
21249
|
+
var styles53 = StyleSheet54.create({
|
|
20470
21250
|
list: {
|
|
20471
21251
|
flex: 1
|
|
20472
21252
|
},
|
|
@@ -20500,7 +21280,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20500
21280
|
filterBtn: {
|
|
20501
21281
|
width: 40,
|
|
20502
21282
|
height: 40,
|
|
20503
|
-
borderWidth:
|
|
21283
|
+
borderWidth: StyleSheet54.hairlineWidth,
|
|
20504
21284
|
borderRadius: radii.md,
|
|
20505
21285
|
justifyContent: "center",
|
|
20506
21286
|
alignItems: "center"
|
|
@@ -20521,7 +21301,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20521
21301
|
overflow: "hidden"
|
|
20522
21302
|
},
|
|
20523
21303
|
separator: {
|
|
20524
|
-
height:
|
|
21304
|
+
height: StyleSheet54.hairlineWidth,
|
|
20525
21305
|
marginLeft: spacing.lg + 36 + spacing.md
|
|
20526
21306
|
},
|
|
20527
21307
|
emptyWrap: {
|
|
@@ -20559,7 +21339,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20559
21339
|
justifyContent: "center",
|
|
20560
21340
|
paddingHorizontal: spacing.lg,
|
|
20561
21341
|
borderRadius: radii.pill,
|
|
20562
|
-
borderWidth:
|
|
21342
|
+
borderWidth: StyleSheet54.hairlineWidth
|
|
20563
21343
|
},
|
|
20564
21344
|
chipLabel: {
|
|
20565
21345
|
...typography.label
|
|
@@ -20578,7 +21358,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20578
21358
|
});
|
|
20579
21359
|
|
|
20580
21360
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
20581
|
-
import { Fragment as Fragment17, jsx as
|
|
21361
|
+
import { Fragment as Fragment17, jsx as jsx68, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
20582
21362
|
var privacyCenterQueryClient = new QueryClient();
|
|
20583
21363
|
function PrivacyCenterContent({ onBack }) {
|
|
20584
21364
|
const { currentPage } = useInternalNavigation();
|
|
@@ -20588,24 +21368,24 @@ function PrivacyCenterContent({ onBack }) {
|
|
|
20588
21368
|
const chromeMode = getPageChromeMode(currentPage);
|
|
20589
21369
|
const canvasIsLight = isLightColor(colors.canvasSubtle);
|
|
20590
21370
|
const barStyle = canvasIsLight ? "dark-content" : "light-content";
|
|
20591
|
-
|
|
21371
|
+
useEffect21(() => {
|
|
20592
21372
|
StatusBar2.setBarStyle(barStyle, true);
|
|
20593
21373
|
if (Platform8.OS === "android") {
|
|
20594
21374
|
setNavBarIconStyle(canvasIsLight ? "dark" : "light");
|
|
20595
21375
|
}
|
|
20596
21376
|
}, [barStyle, canvasIsLight]);
|
|
20597
|
-
return /* @__PURE__ */
|
|
20598
|
-
/* @__PURE__ */
|
|
20599
|
-
/* @__PURE__ */
|
|
20600
|
-
/* @__PURE__ */
|
|
20601
|
-
/* @__PURE__ */
|
|
20602
|
-
currentPage === "home" && /* @__PURE__ */
|
|
20603
|
-
currentPage === "consent-manager" && /* @__PURE__ */
|
|
20604
|
-
currentPage === "form" && /* @__PURE__ */
|
|
20605
|
-
currentPage === "activity" && /* @__PURE__ */
|
|
20606
|
-
currentPage === "receipts" && /* @__PURE__ */
|
|
20607
|
-
currentPage === "case-details" && /* @__PURE__ */
|
|
20608
|
-
currentPage === "notifications" && /* @__PURE__ */
|
|
21377
|
+
return /* @__PURE__ */ jsxs45(View52, { style: [styles54.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
21378
|
+
/* @__PURE__ */ jsx68(StatusBar2, { barStyle, translucent: true }),
|
|
21379
|
+
/* @__PURE__ */ jsx68(View52, { style: styles54.mainColumn, children: brandingLoading ? /* @__PURE__ */ jsx68(PCLoader, {}) : /* @__PURE__ */ jsxs45(Fragment17, { children: [
|
|
21380
|
+
/* @__PURE__ */ jsx68(SlimTopBar, { mode: chromeMode, onBack }),
|
|
21381
|
+
/* @__PURE__ */ jsx68(View52, { style: [styles54.content, { paddingBottom: insets.bottom }], children: status === "checking" ? /* @__PURE__ */ jsx68(PCLoader, {}) : status === "session-expired" ? /* @__PURE__ */ jsx68(PrivacyCenterSessionExpired, {}) : status === "empty" ? /* @__PURE__ */ jsx68(PrivacyCenterEmptyState, {}) : /* @__PURE__ */ jsxs45(Fragment17, { children: [
|
|
21382
|
+
currentPage === "home" && /* @__PURE__ */ jsx68(HomeHub, {}),
|
|
21383
|
+
currentPage === "consent-manager" && /* @__PURE__ */ jsx68(ConsentManager, {}),
|
|
21384
|
+
currentPage === "form" && /* @__PURE__ */ jsx68(FormPage, {}),
|
|
21385
|
+
currentPage === "activity" && /* @__PURE__ */ jsx68(ActivitiesList, {}),
|
|
21386
|
+
currentPage === "receipts" && /* @__PURE__ */ jsx68(ReceiptsList, {}),
|
|
21387
|
+
currentPage === "case-details" && /* @__PURE__ */ jsx68(CaseDetailsPage, {}),
|
|
21388
|
+
currentPage === "notifications" && /* @__PURE__ */ jsx68(NotificationsScreen, {})
|
|
20609
21389
|
] }) })
|
|
20610
21390
|
] }) })
|
|
20611
21391
|
] });
|
|
@@ -20619,22 +21399,34 @@ function RedactoPrivacyCenter({
|
|
|
20619
21399
|
theme: _theme,
|
|
20620
21400
|
accessToken,
|
|
20621
21401
|
refreshToken,
|
|
21402
|
+
token,
|
|
21403
|
+
email,
|
|
21404
|
+
mobile,
|
|
21405
|
+
ucic,
|
|
21406
|
+
organisationUuid,
|
|
21407
|
+
workspaceUuid,
|
|
20622
21408
|
onError,
|
|
20623
21409
|
initialPage = "home",
|
|
20624
21410
|
initialCaseUuid,
|
|
20625
21411
|
onBack
|
|
20626
21412
|
}) {
|
|
20627
|
-
return /* @__PURE__ */
|
|
21413
|
+
return /* @__PURE__ */ jsx68(SafeAreaBoundary, { children: /* @__PURE__ */ jsx68(KeyboardProviderCompat, { children: /* @__PURE__ */ jsx68(QueryClientProvider, { client: privacyCenterQueryClient, children: /* @__PURE__ */ jsx68(I18nextProvider, { i18n: i18n_default, children: /* @__PURE__ */ jsx68(ThemeProvider, { slug, baseUrl, children: /* @__PURE__ */ jsx68(BaseUrlProvider, { baseUrl, ledgerBaseUrl, children: /* @__PURE__ */ jsx68(
|
|
20628
21414
|
AuthProvider,
|
|
20629
21415
|
{
|
|
20630
|
-
accessToken,
|
|
20631
|
-
refreshToken,
|
|
21416
|
+
accessToken: accessToken != null ? accessToken : "",
|
|
21417
|
+
refreshToken: refreshToken != null ? refreshToken : "",
|
|
21418
|
+
token,
|
|
21419
|
+
sandboxUcic: ucic,
|
|
21420
|
+
sandboxSubject: email || mobile,
|
|
21421
|
+
organisationUuid,
|
|
21422
|
+
workspaceUuid,
|
|
21423
|
+
slug,
|
|
20632
21424
|
onError,
|
|
20633
|
-
children: /* @__PURE__ */
|
|
21425
|
+
children: /* @__PURE__ */ jsx68(NavigationProvider, { initialPage, initialPendingCaseUuid: initialCaseUuid != null ? initialCaseUuid : null, children: /* @__PURE__ */ jsx68(SelectUserGate, { children: /* @__PURE__ */ jsx68(DataAvailabilityProvider, { children: /* @__PURE__ */ jsx68(PageStatusProvider, { children: /* @__PURE__ */ jsx68(PrivacyCenterContent, { onBack }) }) }) }) })
|
|
20634
21426
|
}
|
|
20635
21427
|
) }) }) }) }) }) });
|
|
20636
21428
|
}
|
|
20637
|
-
var
|
|
21429
|
+
var styles54 = StyleSheet55.create({
|
|
20638
21430
|
container: {
|
|
20639
21431
|
flex: 1
|
|
20640
21432
|
},
|
|
@@ -20649,78 +21441,78 @@ var styles52 = StyleSheet53.create({
|
|
|
20649
21441
|
|
|
20650
21442
|
// src/RedactoPrivacyCenter/components/SideMenu.tsx
|
|
20651
21443
|
import {
|
|
20652
|
-
StyleSheet as
|
|
20653
|
-
Text as
|
|
20654
|
-
TouchableOpacity as
|
|
20655
|
-
View as
|
|
21444
|
+
StyleSheet as StyleSheet56,
|
|
21445
|
+
Text as Text43,
|
|
21446
|
+
TouchableOpacity as TouchableOpacity23,
|
|
21447
|
+
View as View53
|
|
20656
21448
|
} from "react-native";
|
|
20657
|
-
import { useTranslation as
|
|
21449
|
+
import { useTranslation as useTranslation30 } from "react-i18next";
|
|
20658
21450
|
import Svg2, { Path as Path2 } from "react-native-svg";
|
|
20659
|
-
import { Fragment as Fragment18, jsx as
|
|
21451
|
+
import { Fragment as Fragment18, jsx as jsx69, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
20660
21452
|
var MENU_ITEMS = [
|
|
20661
21453
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consent Manager", icon: "shield-check" },
|
|
20662
21454
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Privacy Requests", icon: "message-circle-warning" },
|
|
20663
21455
|
{ page: "activity", labelKey: "activity", fallback: "Activity", icon: "activity" }
|
|
20664
21456
|
];
|
|
20665
21457
|
function SideMenu({ onBack } = {}) {
|
|
20666
|
-
const { t } =
|
|
21458
|
+
const { t } = useTranslation30();
|
|
20667
21459
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20668
21460
|
const { organizationName, email } = useAuth();
|
|
20669
21461
|
const { colors } = useTheme();
|
|
20670
21462
|
const orgInitial = organizationName ? organizationName.charAt(0).toUpperCase() : "R";
|
|
20671
21463
|
const displayName = organizationName || "Organization";
|
|
20672
|
-
return /* @__PURE__ */
|
|
20673
|
-
/* @__PURE__ */
|
|
20674
|
-
/* @__PURE__ */
|
|
20675
|
-
/* @__PURE__ */
|
|
20676
|
-
/* @__PURE__ */
|
|
20677
|
-
email ? /* @__PURE__ */
|
|
21464
|
+
return /* @__PURE__ */ jsxs46(View53, { style: [styles55.container, { backgroundColor: colors.surface }], children: [
|
|
21465
|
+
/* @__PURE__ */ jsxs46(View53, { style: styles55.orgSection, children: [
|
|
21466
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ jsx69(Text43, { style: [styles55.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
|
|
21467
|
+
/* @__PURE__ */ jsxs46(View53, { style: styles55.orgInfo, children: [
|
|
21468
|
+
/* @__PURE__ */ jsx69(Text43, { style: [styles55.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
|
|
21469
|
+
email ? /* @__PURE__ */ jsx69(Text43, { style: [styles55.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20678
21470
|
] })
|
|
20679
21471
|
] }),
|
|
20680
|
-
/* @__PURE__ */
|
|
20681
|
-
/* @__PURE__ */
|
|
21472
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21473
|
+
/* @__PURE__ */ jsx69(View53, { style: styles55.menuSection, children: MENU_ITEMS.map((item) => {
|
|
20682
21474
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
20683
|
-
return /* @__PURE__ */
|
|
20684
|
-
|
|
21475
|
+
return /* @__PURE__ */ jsxs46(
|
|
21476
|
+
TouchableOpacity23,
|
|
20685
21477
|
{
|
|
20686
21478
|
style: [
|
|
20687
|
-
|
|
20688
|
-
isActive && [
|
|
21479
|
+
styles55.menuItem,
|
|
21480
|
+
isActive && [styles55.menuItemActive, { backgroundColor: `${colors.primary}14` }]
|
|
20689
21481
|
],
|
|
20690
21482
|
onPress: () => navigateTo(item.page),
|
|
20691
21483
|
activeOpacity: 0.7,
|
|
20692
21484
|
accessibilityRole: "button",
|
|
20693
21485
|
accessibilityState: { selected: isActive },
|
|
20694
21486
|
children: [
|
|
20695
|
-
/* @__PURE__ */
|
|
20696
|
-
/* @__PURE__ */
|
|
20697
|
-
|
|
21487
|
+
/* @__PURE__ */ jsx69(View53, { style: styles55.menuIconWrap, children: /* @__PURE__ */ jsx69(Icon, { name: item.icon, size: 18, color: isActive ? colors.primary : colors.textSecondary }) }),
|
|
21488
|
+
/* @__PURE__ */ jsx69(
|
|
21489
|
+
Text43,
|
|
20698
21490
|
{
|
|
20699
21491
|
style: [
|
|
20700
|
-
|
|
21492
|
+
styles55.menuLabel,
|
|
20701
21493
|
{ color: isActive ? colors.primary : colors.text },
|
|
20702
|
-
isActive &&
|
|
21494
|
+
isActive && styles55.menuLabelActive
|
|
20703
21495
|
],
|
|
20704
21496
|
children: t(item.labelKey) || item.fallback
|
|
20705
21497
|
}
|
|
20706
21498
|
),
|
|
20707
|
-
isActive ? /* @__PURE__ */
|
|
21499
|
+
isActive ? /* @__PURE__ */ jsx69(View53, { style: [styles55.activeIndicator, { backgroundColor: colors.primary }] }) : null
|
|
20708
21500
|
]
|
|
20709
21501
|
},
|
|
20710
21502
|
item.page
|
|
20711
21503
|
);
|
|
20712
21504
|
}) }),
|
|
20713
|
-
onBack ? /* @__PURE__ */
|
|
20714
|
-
/* @__PURE__ */
|
|
20715
|
-
/* @__PURE__ */
|
|
20716
|
-
/* @__PURE__ */
|
|
20717
|
-
|
|
21505
|
+
onBack ? /* @__PURE__ */ jsxs46(Fragment18, { children: [
|
|
21506
|
+
/* @__PURE__ */ jsx69(View53, { style: { flex: 1 } }),
|
|
21507
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21508
|
+
/* @__PURE__ */ jsxs46(
|
|
21509
|
+
TouchableOpacity23,
|
|
20718
21510
|
{
|
|
20719
|
-
style:
|
|
21511
|
+
style: styles55.backBtn,
|
|
20720
21512
|
onPress: () => navigateBack(onBack),
|
|
20721
21513
|
activeOpacity: 0.7,
|
|
20722
21514
|
children: [
|
|
20723
|
-
/* @__PURE__ */
|
|
21515
|
+
/* @__PURE__ */ jsx69(Svg2, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ jsx69(
|
|
20724
21516
|
Path2,
|
|
20725
21517
|
{
|
|
20726
21518
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20729,7 +21521,7 @@ function SideMenu({ onBack } = {}) {
|
|
|
20729
21521
|
strokeLinecap: "round",
|
|
20730
21522
|
strokeLinejoin: "round"
|
|
20731
21523
|
}
|
|
20732
|
-
) : /* @__PURE__ */
|
|
21524
|
+
) : /* @__PURE__ */ jsx69(
|
|
20733
21525
|
Path2,
|
|
20734
21526
|
{
|
|
20735
21527
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20739,14 +21531,14 @@ function SideMenu({ onBack } = {}) {
|
|
|
20739
21531
|
strokeLinejoin: "round"
|
|
20740
21532
|
}
|
|
20741
21533
|
) }),
|
|
20742
|
-
/* @__PURE__ */
|
|
21534
|
+
/* @__PURE__ */ jsx69(Text43, { style: [styles55.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
|
|
20743
21535
|
]
|
|
20744
21536
|
}
|
|
20745
21537
|
)
|
|
20746
21538
|
] }) : null
|
|
20747
21539
|
] });
|
|
20748
21540
|
}
|
|
20749
|
-
var
|
|
21541
|
+
var styles55 = StyleSheet56.create({
|
|
20750
21542
|
container: {
|
|
20751
21543
|
flex: 1,
|
|
20752
21544
|
paddingTop: 12
|
|
@@ -20832,42 +21624,68 @@ var styles53 = StyleSheet54.create({
|
|
|
20832
21624
|
});
|
|
20833
21625
|
|
|
20834
21626
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
20835
|
-
import { useCallback as
|
|
20836
|
-
import { StyleSheet as
|
|
20837
|
-
import { useTranslation as
|
|
21627
|
+
import { useCallback as useCallback15, useEffect as useEffect22, useState as useState26 } from "react";
|
|
21628
|
+
import { StyleSheet as StyleSheet58, Text as Text45, TouchableOpacity as TouchableOpacity25, View as View55 } from "react-native";
|
|
21629
|
+
import { useTranslation as useTranslation32 } from "react-i18next";
|
|
20838
21630
|
import Svg4, { Path as Path4 } from "react-native-svg";
|
|
20839
21631
|
|
|
20840
21632
|
// src/RedactoPrivacyCenter/components/UserOrgMenu.tsx
|
|
20841
|
-
import { Image as Image4, StyleSheet as
|
|
20842
|
-
import { useTranslation as
|
|
21633
|
+
import { Image as Image4, StyleSheet as StyleSheet57, Text as Text44, TouchableOpacity as TouchableOpacity24, View as View54 } from "react-native";
|
|
21634
|
+
import { useTranslation as useTranslation31 } from "react-i18next";
|
|
20843
21635
|
import Svg3, { Path as Path3 } from "react-native-svg";
|
|
20844
|
-
import { jsx as
|
|
21636
|
+
import { jsx as jsx70, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
20845
21637
|
var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
20846
|
-
const { t } =
|
|
21638
|
+
const { t } = useTranslation31();
|
|
20847
21639
|
const { organizationName, email } = useAuth();
|
|
20848
21640
|
const { colors, branding } = useTheme();
|
|
21641
|
+
const { switchProfile } = useProfileSwitch();
|
|
20849
21642
|
const brandName = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
20850
21643
|
const handleAction = () => {
|
|
20851
21644
|
onClose();
|
|
20852
21645
|
navigateBack(onBack);
|
|
20853
21646
|
};
|
|
20854
|
-
return /* @__PURE__ */
|
|
20855
|
-
/* @__PURE__ */
|
|
20856
|
-
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */
|
|
20857
|
-
/* @__PURE__ */
|
|
20858
|
-
/* @__PURE__ */
|
|
20859
|
-
email ? /* @__PURE__ */
|
|
21647
|
+
return /* @__PURE__ */ jsxs47(BottomSheet, { visible, onClose, title: t("account") || "Account", children: [
|
|
21648
|
+
/* @__PURE__ */ jsxs47(View54, { style: styles56.identity, children: [
|
|
21649
|
+
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ jsx70(Image4, { source: { uri: branding.logo_url }, style: styles56.logo, resizeMode: "contain" }) : /* @__PURE__ */ jsx70(PCAvatar, { name: organizationName || brandName, imageUrl: branding == null ? void 0 : branding.icon_url, size: 52 }),
|
|
21650
|
+
/* @__PURE__ */ jsxs47(View54, { style: styles56.identityText, children: [
|
|
21651
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.orgName, { color: colors.text }], numberOfLines: 2, children: brandName }),
|
|
21652
|
+
email ? /* @__PURE__ */ jsx70(Text44, { style: [styles56.email, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20860
21653
|
] })
|
|
20861
21654
|
] }),
|
|
20862
|
-
|
|
20863
|
-
|
|
21655
|
+
switchProfile ? /* @__PURE__ */ jsxs47(
|
|
21656
|
+
TouchableOpacity24,
|
|
21657
|
+
{
|
|
21658
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(colors.primary, 0.1) }],
|
|
21659
|
+
onPress: () => {
|
|
21660
|
+
onClose();
|
|
21661
|
+
switchProfile();
|
|
21662
|
+
},
|
|
21663
|
+
activeOpacity: 0.7,
|
|
21664
|
+
accessibilityRole: "button",
|
|
21665
|
+
children: [
|
|
21666
|
+
/* @__PURE__ */ jsx70(Svg3, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx70(
|
|
21667
|
+
Path3,
|
|
21668
|
+
{
|
|
21669
|
+
d: "M16 3h5v5 M21 3l-7 7 M8 21H3v-5 M3 21l7-7",
|
|
21670
|
+
stroke: colors.primary,
|
|
21671
|
+
strokeWidth: 2,
|
|
21672
|
+
strokeLinecap: "round",
|
|
21673
|
+
strokeLinejoin: "round"
|
|
21674
|
+
}
|
|
21675
|
+
) }),
|
|
21676
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.actionLabel, { color: colors.primary }], children: t("switchProfile") })
|
|
21677
|
+
]
|
|
21678
|
+
}
|
|
21679
|
+
) : null,
|
|
21680
|
+
onBack ? /* @__PURE__ */ jsxs47(
|
|
21681
|
+
TouchableOpacity24,
|
|
20864
21682
|
{
|
|
20865
|
-
style: [
|
|
21683
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(onBack === "signout" ? colors.error : colors.primary, 0.1) }],
|
|
20866
21684
|
onPress: handleAction,
|
|
20867
21685
|
activeOpacity: 0.7,
|
|
20868
21686
|
accessibilityRole: "button",
|
|
20869
21687
|
children: [
|
|
20870
|
-
/* @__PURE__ */
|
|
21688
|
+
/* @__PURE__ */ jsx70(Svg3, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: onBack === "signout" ? /* @__PURE__ */ jsx70(
|
|
20871
21689
|
Path3,
|
|
20872
21690
|
{
|
|
20873
21691
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20876,7 +21694,7 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
20876
21694
|
strokeLinecap: "round",
|
|
20877
21695
|
strokeLinejoin: "round"
|
|
20878
21696
|
}
|
|
20879
|
-
) : /* @__PURE__ */
|
|
21697
|
+
) : /* @__PURE__ */ jsx70(
|
|
20880
21698
|
Path3,
|
|
20881
21699
|
{
|
|
20882
21700
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20886,13 +21704,13 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
20886
21704
|
strokeLinejoin: "round"
|
|
20887
21705
|
}
|
|
20888
21706
|
) }),
|
|
20889
|
-
/* @__PURE__ */
|
|
21707
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.actionLabel, { color: onBack === "signout" ? colors.error : colors.primary }], children: onBack === "signout" ? t("signOut") || "Sign Out" : t("back") || "Back" })
|
|
20890
21708
|
]
|
|
20891
21709
|
}
|
|
20892
21710
|
) : null
|
|
20893
21711
|
] });
|
|
20894
21712
|
};
|
|
20895
|
-
var
|
|
21713
|
+
var styles56 = StyleSheet57.create({
|
|
20896
21714
|
identity: {
|
|
20897
21715
|
flexDirection: "row",
|
|
20898
21716
|
alignItems: "center",
|
|
@@ -20933,33 +21751,34 @@ var styles54 = StyleSheet55.create({
|
|
|
20933
21751
|
});
|
|
20934
21752
|
|
|
20935
21753
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
20936
|
-
import { Fragment as Fragment19, jsx as
|
|
21754
|
+
import { Fragment as Fragment19, jsx as jsx71, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
20937
21755
|
function Navbar({ mode = "primary", onBack }) {
|
|
20938
|
-
const { t } =
|
|
21756
|
+
const { t } = useTranslation32();
|
|
20939
21757
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20940
21758
|
const { organizationName, email } = useAuth();
|
|
20941
21759
|
const { colors, branding } = useTheme();
|
|
20942
|
-
const [locale, setLocale] =
|
|
20943
|
-
const [menuOpen, setMenuOpen] =
|
|
21760
|
+
const [locale, setLocale] = useState26(i18n_default.language || "en");
|
|
21761
|
+
const [menuOpen, setMenuOpen] = useState26(false);
|
|
20944
21762
|
const unreadCount = useUnreadCount();
|
|
20945
21763
|
const { status: pageStatus } = usePageStatus();
|
|
21764
|
+
const { switchProfile } = useProfileSwitch();
|
|
20946
21765
|
const pageChrome = PAGE_CHROME_BY_PAGE[currentPage] || PAGE_CHROME_BY_PAGE["consent-manager"];
|
|
20947
21766
|
const isDetail = mode === "detail";
|
|
20948
|
-
|
|
21767
|
+
useEffect22(() => {
|
|
20949
21768
|
const handleLanguageChanged = () => setLocale(i18n_default.language);
|
|
20950
21769
|
i18n_default.on("languageChanged", handleLanguageChanged);
|
|
20951
21770
|
return () => {
|
|
20952
21771
|
i18n_default.off("languageChanged", handleLanguageChanged);
|
|
20953
21772
|
};
|
|
20954
21773
|
}, []);
|
|
20955
|
-
const handleLanguageChange =
|
|
21774
|
+
const handleLanguageChange = useCallback15((value) => {
|
|
20956
21775
|
i18n_default.changeLanguage(value);
|
|
20957
21776
|
}, []);
|
|
20958
21777
|
const brandLabel = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
20959
21778
|
const accountLabel = brandLabel || email || t("account") || "Account";
|
|
20960
|
-
const brandLockup = /* @__PURE__ */
|
|
20961
|
-
/* @__PURE__ */
|
|
20962
|
-
/* @__PURE__ */
|
|
21779
|
+
const brandLockup = /* @__PURE__ */ jsxs48(View55, { style: styles57.brandRow, children: [
|
|
21780
|
+
/* @__PURE__ */ jsx71(PCAvatar, { name: organizationName || brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 }),
|
|
21781
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.brandText, { color: colors.text }], numberOfLines: 1, children: brandLabel })
|
|
20963
21782
|
] });
|
|
20964
21783
|
const handleDetailBack = () => {
|
|
20965
21784
|
if (currentPage === "case-details") {
|
|
@@ -20971,26 +21790,26 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
20971
21790
|
}
|
|
20972
21791
|
};
|
|
20973
21792
|
if (isDetail) {
|
|
20974
|
-
return /* @__PURE__ */
|
|
20975
|
-
/* @__PURE__ */
|
|
20976
|
-
|
|
21793
|
+
return /* @__PURE__ */ jsxs48(Fragment19, { children: [
|
|
21794
|
+
/* @__PURE__ */ jsx71(
|
|
21795
|
+
View55,
|
|
20977
21796
|
{
|
|
20978
21797
|
style: [
|
|
20979
|
-
|
|
20980
|
-
|
|
21798
|
+
styles57.container,
|
|
21799
|
+
styles57.detailContainer,
|
|
20981
21800
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
20982
21801
|
],
|
|
20983
|
-
children: /* @__PURE__ */
|
|
20984
|
-
/* @__PURE__ */
|
|
20985
|
-
|
|
21802
|
+
children: /* @__PURE__ */ jsxs48(View55, { style: styles57.detailRow, children: [
|
|
21803
|
+
/* @__PURE__ */ jsx71(
|
|
21804
|
+
TouchableOpacity25,
|
|
20986
21805
|
{
|
|
20987
|
-
style:
|
|
21806
|
+
style: styles57.backButton,
|
|
20988
21807
|
onPress: handleDetailBack,
|
|
20989
21808
|
activeOpacity: 0.7,
|
|
20990
21809
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
20991
21810
|
accessibilityRole: "button",
|
|
20992
21811
|
accessibilityLabel: t("back") || "Back",
|
|
20993
|
-
children: /* @__PURE__ */
|
|
21812
|
+
children: /* @__PURE__ */ jsx71(Svg4, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx71(
|
|
20994
21813
|
Path4,
|
|
20995
21814
|
{
|
|
20996
21815
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21002,36 +21821,36 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21002
21821
|
) })
|
|
21003
21822
|
}
|
|
21004
21823
|
),
|
|
21005
|
-
/* @__PURE__ */
|
|
21006
|
-
/* @__PURE__ */
|
|
21007
|
-
pageStatus ? /* @__PURE__ */
|
|
21824
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.detailTitleWrap, children: [
|
|
21825
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.detailTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21826
|
+
pageStatus ? /* @__PURE__ */ jsx71(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21008
21827
|
] })
|
|
21009
21828
|
] })
|
|
21010
21829
|
}
|
|
21011
21830
|
),
|
|
21012
|
-
/* @__PURE__ */
|
|
21831
|
+
/* @__PURE__ */ jsx71(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21013
21832
|
] });
|
|
21014
21833
|
}
|
|
21015
|
-
return /* @__PURE__ */
|
|
21016
|
-
/* @__PURE__ */
|
|
21017
|
-
|
|
21834
|
+
return /* @__PURE__ */ jsxs48(Fragment19, { children: [
|
|
21835
|
+
/* @__PURE__ */ jsxs48(
|
|
21836
|
+
View55,
|
|
21018
21837
|
{
|
|
21019
21838
|
style: [
|
|
21020
|
-
|
|
21839
|
+
styles57.container,
|
|
21021
21840
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21022
21841
|
],
|
|
21023
21842
|
children: [
|
|
21024
|
-
/* @__PURE__ */
|
|
21025
|
-
onBack ? /* @__PURE__ */
|
|
21026
|
-
|
|
21843
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.appBar, children: [
|
|
21844
|
+
onBack ? /* @__PURE__ */ jsx71(
|
|
21845
|
+
TouchableOpacity25,
|
|
21027
21846
|
{
|
|
21028
|
-
style:
|
|
21847
|
+
style: styles57.backButton,
|
|
21029
21848
|
onPress: () => navigateBack(onBack),
|
|
21030
21849
|
activeOpacity: 0.7,
|
|
21031
21850
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21032
21851
|
accessibilityRole: "button",
|
|
21033
21852
|
accessibilityLabel: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out",
|
|
21034
|
-
children: /* @__PURE__ */
|
|
21853
|
+
children: /* @__PURE__ */ jsx71(Svg4, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx71(
|
|
21035
21854
|
Path4,
|
|
21036
21855
|
{
|
|
21037
21856
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21043,39 +21862,69 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21043
21862
|
) })
|
|
21044
21863
|
}
|
|
21045
21864
|
) : null,
|
|
21046
|
-
/* @__PURE__ */
|
|
21047
|
-
/* @__PURE__ */
|
|
21048
|
-
/* @__PURE__ */
|
|
21049
|
-
|
|
21050
|
-
/* @__PURE__ */ jsx67(
|
|
21051
|
-
TouchableOpacity24,
|
|
21865
|
+
/* @__PURE__ */ jsx71(View55, { style: styles57.brandWrap, children: (branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ jsx71(BrandImage, { uri: branding.logo_url, height: 34, maxWidth: 170, fallback: brandLockup }) : brandLockup }),
|
|
21866
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.actions, children: [
|
|
21867
|
+
switchProfile ? /* @__PURE__ */ jsx71(
|
|
21868
|
+
TouchableOpacity25,
|
|
21052
21869
|
{
|
|
21053
|
-
style:
|
|
21870
|
+
style: styles57.iconButton,
|
|
21871
|
+
onPress: switchProfile,
|
|
21872
|
+
activeOpacity: 0.7,
|
|
21873
|
+
hitSlop: DEFAULT_HIT_SLOP,
|
|
21874
|
+
accessibilityRole: "button",
|
|
21875
|
+
accessibilityLabel: t("switchProfile"),
|
|
21876
|
+
children: /* @__PURE__ */ jsx71(
|
|
21877
|
+
View55,
|
|
21878
|
+
{
|
|
21879
|
+
style: [
|
|
21880
|
+
styles57.iconCircle,
|
|
21881
|
+
{ backgroundColor: colors.surface, borderColor: colors.border }
|
|
21882
|
+
],
|
|
21883
|
+
children: /* @__PURE__ */ jsx71(Svg4, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx71(
|
|
21884
|
+
Path4,
|
|
21885
|
+
{
|
|
21886
|
+
d: "M16 3h5v5 M21 3l-7 7 M8 21H3v-5 M3 21l7-7",
|
|
21887
|
+
stroke: colors.text,
|
|
21888
|
+
strokeWidth: 2,
|
|
21889
|
+
strokeLinecap: "round",
|
|
21890
|
+
strokeLinejoin: "round"
|
|
21891
|
+
}
|
|
21892
|
+
) })
|
|
21893
|
+
}
|
|
21894
|
+
)
|
|
21895
|
+
}
|
|
21896
|
+
) : null,
|
|
21897
|
+
/* @__PURE__ */ jsx71(NotificationBell, { count: unreadCount, onPress: () => navigateTo("notifications") }),
|
|
21898
|
+
/* @__PURE__ */ jsx71(PCSelect, { value: locale, options: languageOptions, onChange: handleLanguageChange, placeholder: t("language"), compact: true }),
|
|
21899
|
+
/* @__PURE__ */ jsx71(
|
|
21900
|
+
TouchableOpacity25,
|
|
21901
|
+
{
|
|
21902
|
+
style: styles57.avatarButton,
|
|
21054
21903
|
onPress: () => setMenuOpen(true),
|
|
21055
21904
|
activeOpacity: 0.7,
|
|
21056
21905
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21057
21906
|
accessibilityRole: "button",
|
|
21058
21907
|
accessibilityLabel: accountLabel,
|
|
21059
|
-
children: /* @__PURE__ */
|
|
21908
|
+
children: /* @__PURE__ */ jsx71(PCAvatar, { name: organizationName || accountLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 })
|
|
21060
21909
|
}
|
|
21061
21910
|
)
|
|
21062
21911
|
] })
|
|
21063
21912
|
] }),
|
|
21064
|
-
/* @__PURE__ */
|
|
21065
|
-
/* @__PURE__ */
|
|
21066
|
-
pageStatus ? /* @__PURE__ */
|
|
21913
|
+
/* @__PURE__ */ jsx71(View55, { style: styles57.pageHeader, children: /* @__PURE__ */ jsxs48(View55, { style: styles57.titleRow, children: [
|
|
21914
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.pageTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21915
|
+
pageStatus ? /* @__PURE__ */ jsx71(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21067
21916
|
] }) })
|
|
21068
21917
|
]
|
|
21069
21918
|
}
|
|
21070
21919
|
),
|
|
21071
|
-
/* @__PURE__ */
|
|
21920
|
+
/* @__PURE__ */ jsx71(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21072
21921
|
] });
|
|
21073
21922
|
}
|
|
21074
|
-
var
|
|
21923
|
+
var styles57 = StyleSheet58.create({
|
|
21075
21924
|
container: {
|
|
21076
21925
|
paddingHorizontal: spacing.lg,
|
|
21077
21926
|
paddingBottom: spacing.md,
|
|
21078
|
-
borderBottomWidth:
|
|
21927
|
+
borderBottomWidth: StyleSheet58.hairlineWidth
|
|
21079
21928
|
},
|
|
21080
21929
|
detailContainer: {
|
|
21081
21930
|
paddingBottom: spacing.sm
|
|
@@ -21121,6 +21970,21 @@ var styles55 = StyleSheet56.create({
|
|
|
21121
21970
|
alignItems: "center",
|
|
21122
21971
|
justifyContent: "center"
|
|
21123
21972
|
},
|
|
21973
|
+
iconButton: {
|
|
21974
|
+
width: MIN_TAP_TARGET,
|
|
21975
|
+
height: MIN_TAP_TARGET,
|
|
21976
|
+
alignItems: "center",
|
|
21977
|
+
justifyContent: "center"
|
|
21978
|
+
},
|
|
21979
|
+
// Matches the Flutter navbar's 34pt bordered circle.
|
|
21980
|
+
iconCircle: {
|
|
21981
|
+
width: 34,
|
|
21982
|
+
height: 34,
|
|
21983
|
+
borderRadius: 17,
|
|
21984
|
+
borderWidth: 1,
|
|
21985
|
+
alignItems: "center",
|
|
21986
|
+
justifyContent: "center"
|
|
21987
|
+
},
|
|
21124
21988
|
pageHeader: {
|
|
21125
21989
|
marginTop: spacing.sm
|
|
21126
21990
|
},
|
|
@@ -21155,10 +22019,10 @@ var styles55 = StyleSheet56.create({
|
|
|
21155
22019
|
});
|
|
21156
22020
|
|
|
21157
22021
|
// src/RedactoPrivacyCenter/components/BottomTabBar.tsx
|
|
21158
|
-
import { useState as
|
|
21159
|
-
import { Animated as Animated14, StyleSheet as
|
|
21160
|
-
import { useTranslation as
|
|
21161
|
-
import { jsx as
|
|
22022
|
+
import { useState as useState27 } from "react";
|
|
22023
|
+
import { Animated as Animated14, StyleSheet as StyleSheet59, Text as Text46, TouchableOpacity as TouchableOpacity26, View as View56 } from "react-native";
|
|
22024
|
+
import { useTranslation as useTranslation33 } from "react-i18next";
|
|
22025
|
+
import { jsx as jsx72, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
21162
22026
|
var TAB_ITEMS = [
|
|
21163
22027
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consents", icon: "shield-check" },
|
|
21164
22028
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Requests", icon: "message-circle-warning" },
|
|
@@ -21169,10 +22033,10 @@ var PAD_H = spacing.lg;
|
|
|
21169
22033
|
var PILL_WIDTH = 56;
|
|
21170
22034
|
var PILL_HEIGHT = 34;
|
|
21171
22035
|
function BottomTabBar({ showFooter = true }) {
|
|
21172
|
-
const { t } =
|
|
22036
|
+
const { t } = useTranslation33();
|
|
21173
22037
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21174
22038
|
const { colors } = useTheme();
|
|
21175
|
-
const [rowWidth, setRowWidth] =
|
|
22039
|
+
const [rowWidth, setRowWidth] = useState27(0);
|
|
21176
22040
|
const innerWidth = Math.max(0, rowWidth - PAD_H * 2);
|
|
21177
22041
|
const tabWidth = innerWidth > 0 ? innerWidth / TAB_ITEMS.length : 0;
|
|
21178
22042
|
const activeIndex = TAB_ITEMS.findIndex(
|
|
@@ -21180,13 +22044,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21180
22044
|
);
|
|
21181
22045
|
const { translateX } = useAnimatedTabIndicator(Math.max(0, activeIndex), tabWidth);
|
|
21182
22046
|
const onLayout = (e) => setRowWidth(e.nativeEvent.layout.width);
|
|
21183
|
-
return /* @__PURE__ */
|
|
21184
|
-
/* @__PURE__ */
|
|
21185
|
-
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */
|
|
22047
|
+
return /* @__PURE__ */ jsxs49(View56, { style: [styles58.wrapper, { backgroundColor: colors.canvasSubtle, borderTopColor: colors.hairline }], children: [
|
|
22048
|
+
/* @__PURE__ */ jsxs49(View56, { style: styles58.container, onLayout, children: [
|
|
22049
|
+
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ jsx72(
|
|
21186
22050
|
Animated14.View,
|
|
21187
22051
|
{
|
|
21188
22052
|
style: [
|
|
21189
|
-
|
|
22053
|
+
styles58.pill,
|
|
21190
22054
|
{
|
|
21191
22055
|
width: PILL_WIDTH,
|
|
21192
22056
|
left: PAD_H + (tabWidth - PILL_WIDTH) / 2,
|
|
@@ -21199,17 +22063,17 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21199
22063
|
TAB_ITEMS.map((item) => {
|
|
21200
22064
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
21201
22065
|
const label = t(item.labelKey) || item.fallback;
|
|
21202
|
-
return /* @__PURE__ */
|
|
21203
|
-
|
|
22066
|
+
return /* @__PURE__ */ jsxs49(
|
|
22067
|
+
TouchableOpacity26,
|
|
21204
22068
|
{
|
|
21205
|
-
style:
|
|
22069
|
+
style: styles58.tab,
|
|
21206
22070
|
onPress: () => navigateTo(item.page),
|
|
21207
22071
|
activeOpacity: 0.7,
|
|
21208
22072
|
accessibilityRole: "tab",
|
|
21209
22073
|
accessibilityState: { selected: isActive },
|
|
21210
22074
|
accessibilityLabel: label,
|
|
21211
22075
|
children: [
|
|
21212
|
-
/* @__PURE__ */
|
|
22076
|
+
/* @__PURE__ */ jsx72(View56, { style: styles58.iconWrap, children: /* @__PURE__ */ jsx72(
|
|
21213
22077
|
Icon,
|
|
21214
22078
|
{
|
|
21215
22079
|
name: item.icon,
|
|
@@ -21218,10 +22082,10 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21218
22082
|
strokeWidth: isActive ? 2.1 : 1.85
|
|
21219
22083
|
}
|
|
21220
22084
|
) }),
|
|
21221
|
-
/* @__PURE__ */
|
|
21222
|
-
|
|
22085
|
+
/* @__PURE__ */ jsx72(
|
|
22086
|
+
Text46,
|
|
21223
22087
|
{
|
|
21224
|
-
style: [
|
|
22088
|
+
style: [styles58.tabLabel, { color: isActive ? colors.primary : colors.textSecondary }],
|
|
21225
22089
|
numberOfLines: 1,
|
|
21226
22090
|
children: label
|
|
21227
22091
|
}
|
|
@@ -21232,13 +22096,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21232
22096
|
);
|
|
21233
22097
|
})
|
|
21234
22098
|
] }),
|
|
21235
|
-
showFooter ? /* @__PURE__ */
|
|
21236
|
-
/* @__PURE__ */
|
|
22099
|
+
showFooter ? /* @__PURE__ */ jsx72(Footer, { inline: true }) : null,
|
|
22100
|
+
/* @__PURE__ */ jsx72(View56, { style: { height: BOTTOM_INSET } })
|
|
21237
22101
|
] });
|
|
21238
22102
|
}
|
|
21239
|
-
var
|
|
22103
|
+
var styles58 = StyleSheet59.create({
|
|
21240
22104
|
wrapper: {
|
|
21241
|
-
borderTopWidth:
|
|
22105
|
+
borderTopWidth: StyleSheet59.hairlineWidth
|
|
21242
22106
|
},
|
|
21243
22107
|
container: {
|
|
21244
22108
|
flexDirection: "row",
|