@redacto.io/consent-sdk-react-native 5.0.0-beta.6 → 5.0.0-beta.8
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-UVRSRLYW.mjs → chunk-B2TXWC2C.mjs} +4 -0
- package/dist/index.d.mts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +141 -51
- package/dist/index.mjs +140 -52
- package/dist/privacy-center.d.mts +81 -4
- package/dist/privacy-center.d.ts +81 -4
- package/dist/privacy-center.js +1277 -572
- package/dist/privacy-center.mjs +1247 -544
- package/package.json +1 -1
package/dist/privacy-center.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
+
SANDBOX_TOKEN_HEADER,
|
|
2
3
|
__require,
|
|
3
4
|
languageOptions
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-B2TXWC2C.mjs";
|
|
5
6
|
|
|
6
7
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
7
|
-
import { useEffect as
|
|
8
|
+
import { useEffect as useEffect21 } from "react";
|
|
8
9
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
9
10
|
import { I18nextProvider } from "react-i18next";
|
|
10
|
-
import { View as
|
|
11
|
+
import { View as View52, StyleSheet as StyleSheet55, StatusBar as StatusBar2, Platform as Platform8 } from "react-native";
|
|
11
12
|
|
|
12
13
|
// src/RedactoPrivacyCenter/lib/i18n.ts
|
|
13
14
|
import i18n from "i18next";
|
|
@@ -424,7 +425,14 @@ var translation_default = {
|
|
|
424
425
|
submittingAs: "Submitting as {{email}}",
|
|
425
426
|
tapToChooseFile: "Tap to choose a file",
|
|
426
427
|
view: "View",
|
|
427
|
-
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"
|
|
428
436
|
};
|
|
429
437
|
|
|
430
438
|
// src/RedactoPrivacyCenter/locales/as/translation.json
|
|
@@ -838,7 +846,14 @@ var translation_default2 = {
|
|
|
838
846
|
submittingAs: "{{email}} \u09B9\u09BF\u099A\u09BE\u09AA\u09C7 \u09A6\u09BE\u0996\u09BF\u09B2 \u0995\u09F0\u09BF \u0986\u099B\u09C7",
|
|
839
847
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09BF\u09AC\u09B2\u09C8 \u099F\u09BF\u09AA\u0995",
|
|
840
848
|
view: "\u099A\u09BE\u0993\u0995",
|
|
841
|
-
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"
|
|
842
857
|
};
|
|
843
858
|
|
|
844
859
|
// src/RedactoPrivacyCenter/locales/bn/translation.json
|
|
@@ -1252,7 +1267,14 @@ var translation_default3 = {
|
|
|
1252
1267
|
submittingAs: "{{email}} \u09B9\u09BF\u09B8\u09BE\u09AC\u09C7 \u099C\u09AE\u09BE \u09A6\u09C7\u0993\u09AF\u09BC\u09BE \u09B9\u099A\u09CD\u099B\u09C7",
|
|
1253
1268
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A4\u09C7 \u099F\u09CD\u09AF\u09BE\u09AA \u0995\u09B0\u09C1\u09A8",
|
|
1254
1269
|
view: "\u09A6\u09C7\u0996\u09C1\u09A8",
|
|
1255
|
-
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"
|
|
1256
1278
|
};
|
|
1257
1279
|
|
|
1258
1280
|
// src/RedactoPrivacyCenter/locales/brx/translation.json
|
|
@@ -1666,7 +1688,14 @@ var translation_default4 = {
|
|
|
1666
1688
|
submittingAs: "{{email}} \u092E\u0939\u0930\u0948 \u0917\u0925\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B",
|
|
1667
1689
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916\u0928\u094B \u091F\u0947\u092C \u0916\u093E\u0932\u093E\u092E",
|
|
1668
1690
|
view: "\u0928\u093E\u092F",
|
|
1669
|
-
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"
|
|
1670
1699
|
};
|
|
1671
1700
|
|
|
1672
1701
|
// src/RedactoPrivacyCenter/locales/doi/translation.json
|
|
@@ -2080,7 +2109,14 @@ var translation_default5 = {
|
|
|
2080
2109
|
submittingAs: "{{email}} \u0926\u0947 \u0930\u0942\u092A \u091A \u091C\u092E\u093E\u0902 \u0915\u0930\u0926\u0947",
|
|
2081
2110
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u091F\u0948\u092A \u0915\u0930\u094B",
|
|
2082
2111
|
view: "\u0926\u093F\u0915\u094D\u0916\u094B",
|
|
2083
|
-
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"
|
|
2084
2120
|
};
|
|
2085
2121
|
|
|
2086
2122
|
// src/RedactoPrivacyCenter/locales/gom/translation.json
|
|
@@ -2494,7 +2530,14 @@ var translation_default6 = {
|
|
|
2494
2530
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0942\u0923 \u0938\u093E\u0926\u0930 \u0915\u0930\u0924\u093E",
|
|
2495
2531
|
tapToChooseFile: "\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u092A\u093E\u0915 \u091F\u0945\u092A \u0915\u0930\u093E\u0924",
|
|
2496
2532
|
view: "\u092A\u0933\u092F\u093E\u0924",
|
|
2497
|
-
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"
|
|
2498
2541
|
};
|
|
2499
2542
|
|
|
2500
2543
|
// src/RedactoPrivacyCenter/locales/gu/translation.json
|
|
@@ -2908,7 +2951,14 @@ var translation_default7 = {
|
|
|
2908
2951
|
submittingAs: "{{email}} \u0AA4\u0AB0\u0AC0\u0A95\u0AC7 \u0AB8\u0AAC\u0AAE\u0ABF\u0A9F \u0A95\u0AB0\u0AC0 \u0AB0\u0AB9\u0ACD\u0AAF\u0ABE \u0A9B\u0ACB",
|
|
2909
2952
|
tapToChooseFile: "\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0AB5\u0ABE \u0A9F\u0AC5\u0AAA \u0A95\u0AB0\u0ACB",
|
|
2910
2953
|
view: "\u0A9C\u0AC1\u0A93",
|
|
2911
|
-
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"
|
|
2912
2962
|
};
|
|
2913
2963
|
|
|
2914
2964
|
// src/RedactoPrivacyCenter/locales/hi/translation.json
|
|
@@ -3322,7 +3372,14 @@ var translation_default8 = {
|
|
|
3322
3372
|
submittingAs: "{{email}} \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0938\u092C\u092E\u093F\u091F \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
|
3323
3373
|
tapToChooseFile: "\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091F\u0948\u092A \u0915\u0930\u0947\u0902",
|
|
3324
3374
|
view: "\u0926\u0947\u0916\u0947\u0902",
|
|
3325
|
-
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"
|
|
3326
3383
|
};
|
|
3327
3384
|
|
|
3328
3385
|
// src/RedactoPrivacyCenter/locales/kn/translation.json
|
|
@@ -3736,7 +3793,14 @@ var translation_default9 = {
|
|
|
3736
3793
|
submittingAs: "{{email}} \u0C86\u0C97\u0CBF \u0CB8\u0CB2\u0CCD\u0CB2\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6",
|
|
3737
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",
|
|
3738
3795
|
view: "\u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CBF",
|
|
3739
|
-
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"
|
|
3740
3804
|
};
|
|
3741
3805
|
|
|
3742
3806
|
// src/RedactoPrivacyCenter/locales/ks/translation.json
|
|
@@ -4150,7 +4214,14 @@ var translation_default10 = {
|
|
|
4150
4214
|
submittingAs: "{{email}} \u067E\u0620\u0658\u0679\u06BE \u062C\u0645\u0639 \u06A9\u0631\u0627\u0646",
|
|
4151
4215
|
tapToChooseFile: "\u0641\u0627\u06CC\u0644 \u0698\u0627\u0631\u0646\u06C1 \u062E\u0672\u0637\u0631\u0655 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u0648",
|
|
4152
4216
|
view: "\u0648\u064F\u0686\u06BE\u0650\u0648",
|
|
4153
|
-
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"
|
|
4154
4225
|
};
|
|
4155
4226
|
|
|
4156
4227
|
// src/RedactoPrivacyCenter/locales/mai/translation.json
|
|
@@ -4564,7 +4635,14 @@ var translation_default11 = {
|
|
|
4564
4635
|
submittingAs: "{{email}} \u0930\u0942\u092A\u092E\u0947 \u091C\u092E\u093E \u0915\u093D \u0930\u0939\u0932 \u091B\u0940",
|
|
4565
4636
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u092C\u093E\u0915 \u0932\u0947\u0932 \u091F\u0948\u092A \u0915\u0930\u0942",
|
|
4566
4637
|
view: "\u0926\u0947\u0916\u0942",
|
|
4567
|
-
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"
|
|
4568
4646
|
};
|
|
4569
4647
|
|
|
4570
4648
|
// src/RedactoPrivacyCenter/locales/ml/translation.json
|
|
@@ -4978,7 +5056,14 @@ var translation_default12 = {
|
|
|
4978
5056
|
submittingAs: "{{email}} \u0D06\u0D2F\u0D3F \u0D38\u0D2E\u0D7C\u0D2A\u0D4D\u0D2A\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41",
|
|
4979
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",
|
|
4980
5058
|
view: "\u0D15\u0D3E\u0D23\u0D41\u0D15",
|
|
4981
|
-
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"
|
|
4982
5067
|
};
|
|
4983
5068
|
|
|
4984
5069
|
// src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json
|
|
@@ -5392,7 +5477,14 @@ var translation_default13 = {
|
|
|
5392
5477
|
submittingAs: "{{email}} \uABD1\uABE3\uABCF\uABC5 \uABCA\uABE5\uABD2\uABE0\uABC2\uABE4",
|
|
5393
5478
|
tapToChooseFile: "\uABD0\uABE5\uABCF\uABDC \uABC8\uABDF\uABC5\uABD5 \uABC7\uABE6\uABDE \uABC7\uABE7",
|
|
5394
5479
|
view: "\uABCC\uABE6\uABE1\uABCE",
|
|
5395
|
-
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"
|
|
5396
5488
|
};
|
|
5397
5489
|
|
|
5398
5490
|
// src/RedactoPrivacyCenter/locales/mr/translation.json
|
|
@@ -5806,7 +5898,14 @@ var translation_default14 = {
|
|
|
5806
5898
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0923\u0942\u0928 \u0938\u092C\u092E\u093F\u091F \u0915\u0930\u0924 \u0906\u0939\u0947",
|
|
5807
5899
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u091F\u0945\u092A \u0915\u0930\u093E",
|
|
5808
5900
|
view: "\u092A\u0939\u093E",
|
|
5809
|
-
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"
|
|
5810
5909
|
};
|
|
5811
5910
|
|
|
5812
5911
|
// src/RedactoPrivacyCenter/locales/ne/translation.json
|
|
@@ -6220,7 +6319,14 @@ var translation_default15 = {
|
|
|
6220
6319
|
submittingAs: "{{email}} \u0915\u094B \u0930\u0942\u092A\u092E\u093E \u092A\u0947\u0936 \u0917\u0930\u094D\u0926\u0948",
|
|
6221
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",
|
|
6222
6321
|
view: "\u0939\u0947\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6223
|
-
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"
|
|
6224
6330
|
};
|
|
6225
6331
|
|
|
6226
6332
|
// src/RedactoPrivacyCenter/locales/or/translation.json
|
|
@@ -6634,7 +6740,14 @@ var translation_default16 = {
|
|
|
6634
6740
|
submittingAs: "{{email}} \u0B2D\u0B3E\u0B2C\u0B47 \u0B26\u0B3E\u0B16\u0B32 \u0B15\u0B30\u0B41\u0B1B\u0B28\u0B4D\u0B24\u0B3F",
|
|
6635
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",
|
|
6636
6742
|
view: "\u0B26\u0B47\u0B16\u0B28\u0B4D\u0B24\u0B41",
|
|
6637
|
-
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"
|
|
6638
6751
|
};
|
|
6639
6752
|
|
|
6640
6753
|
// src/RedactoPrivacyCenter/locales/pa/translation.json
|
|
@@ -7048,7 +7161,14 @@ var translation_default17 = {
|
|
|
7048
7161
|
submittingAs: "{{email}} \u0A35\u0A1C\u0A4B\u0A02 \u0A38\u0A2C\u0A2E\u0A3F\u0A1F \u0A15\u0A30 \u0A30\u0A39\u0A47 \u0A39\u0A4B",
|
|
7049
7162
|
tapToChooseFile: "\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A28 \u0A32\u0A08 \u0A1F\u0A48\u0A2A \u0A15\u0A30\u0A4B",
|
|
7050
7163
|
view: "\u0A26\u0A47\u0A16\u0A4B",
|
|
7051
|
-
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"
|
|
7052
7172
|
};
|
|
7053
7173
|
|
|
7054
7174
|
// src/RedactoPrivacyCenter/locales/sa/translation.json
|
|
@@ -7462,7 +7582,14 @@ var translation_default18 = {
|
|
|
7462
7582
|
submittingAs: "{{email}} \u0907\u0924\u093F \u0938\u092E\u0930\u094D\u092A\u092F\u0928\u094D",
|
|
7463
7583
|
tapToChooseFile: "\u0938\u091E\u094D\u091A\u093F\u0915\u093E\u0902 \u091A\u0947\u0924\u0941\u0902 \u0938\u094D\u092A\u0943\u0936\u0924\u0941",
|
|
7464
7584
|
view: "\u092A\u0936\u094D\u092F",
|
|
7465
|
-
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"
|
|
7466
7593
|
};
|
|
7467
7594
|
|
|
7468
7595
|
// src/RedactoPrivacyCenter/locales/sat/translation.json
|
|
@@ -7876,7 +8003,14 @@ var translation_default19 = {
|
|
|
7876
8003
|
submittingAs: "{{email}} \u1C5E\u1C6E\u1C60\u1C5F\u1C5B\u1C6E \u1C61\u1C5A\u1C62\u1C5F \u1C6E\u1C6B\u1C5F",
|
|
7877
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",
|
|
7878
8005
|
view: "\u1C67\u1C6E\u1C5E \u1C62\u1C6E",
|
|
7879
|
-
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"
|
|
7880
8014
|
};
|
|
7881
8015
|
|
|
7882
8016
|
// src/RedactoPrivacyCenter/locales/sd/translation.json
|
|
@@ -8290,7 +8424,14 @@ var translation_default20 = {
|
|
|
8290
8424
|
submittingAs: "{{email}} \u0637\u0648\u0631 \u062C\u0645\u0639 \u06AA\u0631\u064A \u0631\u0647\u064A\u0627 \u0622\u0647\u064A\u0648",
|
|
8291
8425
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u06BB \u0644\u0627\u0621\u0650 \u067D\u064A\u067E \u06AA\u0631\u064A\u0648",
|
|
8292
8426
|
view: "\u068F\u0633\u0648",
|
|
8293
|
-
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"
|
|
8294
8435
|
};
|
|
8295
8436
|
|
|
8296
8437
|
// src/RedactoPrivacyCenter/locales/ta/translation.json
|
|
@@ -8704,7 +8845,14 @@ var translation_default21 = {
|
|
|
8704
8845
|
submittingAs: "{{email}} \u0B86\u0B95 \u0B9A\u0BAE\u0BB0\u0BCD\u0BAA\u0BCD\u0BAA\u0BBF\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
|
|
8705
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",
|
|
8706
8847
|
view: "\u0BAA\u0BBE\u0BB0\u0BCD",
|
|
8707
|
-
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"
|
|
8708
8856
|
};
|
|
8709
8857
|
|
|
8710
8858
|
// src/RedactoPrivacyCenter/locales/te/translation.json
|
|
@@ -9118,7 +9266,14 @@ var translation_default22 = {
|
|
|
9118
9266
|
submittingAs: "{{email}} \u0C17\u0C3E \u0C38\u0C2E\u0C30\u0C4D\u0C2A\u0C3F\u0C38\u0C4D\u0C24\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C41",
|
|
9119
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",
|
|
9120
9268
|
view: "\u0C35\u0C40\u0C15\u0C4D\u0C37\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F",
|
|
9121
|
-
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"
|
|
9122
9277
|
};
|
|
9123
9278
|
|
|
9124
9279
|
// src/RedactoPrivacyCenter/locales/ur/translation.json
|
|
@@ -9532,7 +9687,14 @@ var translation_default23 = {
|
|
|
9532
9687
|
submittingAs: "{{email}} \u06A9\u06D2 \u0637\u0648\u0631 \u067E\u0631 \u062C\u0645\u0639 \u06A9\u0631 \u0631\u06C1\u06D2 \u06C1\u06CC\u06BA",
|
|
9533
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",
|
|
9534
9689
|
view: "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA",
|
|
9535
|
-
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"
|
|
9536
9698
|
};
|
|
9537
9699
|
|
|
9538
9700
|
// src/RedactoPrivacyCenter/lib/locales.ts
|
|
@@ -9750,7 +9912,54 @@ function useSafeInsets() {
|
|
|
9750
9912
|
// src/RedactoPrivacyCenter/context/BaseUrlContext.tsx
|
|
9751
9913
|
import { createContext, useContext, useMemo } from "react";
|
|
9752
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
|
+
|
|
9753
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
|
+
}
|
|
9754
9963
|
async function apiFetch(url, options = {}) {
|
|
9755
9964
|
const { getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9756
9965
|
const requestHeaders = new Headers();
|
|
@@ -9775,11 +9984,18 @@ async function apiFetch(url, options = {}) {
|
|
|
9775
9984
|
}
|
|
9776
9985
|
}
|
|
9777
9986
|
if (getAuthToken) {
|
|
9778
|
-
const
|
|
9779
|
-
if (
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
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
|
+
}
|
|
9783
9999
|
}
|
|
9784
10000
|
}
|
|
9785
10001
|
const fetchOptionsFinal = {
|
|
@@ -9808,7 +10024,7 @@ async function apiFetch(url, options = {}) {
|
|
|
9808
10024
|
} catch {
|
|
9809
10025
|
}
|
|
9810
10026
|
}
|
|
9811
|
-
throw new
|
|
10027
|
+
throw new ApiError(errorMessage, { status: response.status });
|
|
9812
10028
|
}
|
|
9813
10029
|
const contentLength = response.headers.get("Content-Length");
|
|
9814
10030
|
const contentType = response.headers.get("Content-Type") || "";
|
|
@@ -9870,14 +10086,29 @@ function arrayBufferToBase64(buffer) {
|
|
|
9870
10086
|
return result;
|
|
9871
10087
|
}
|
|
9872
10088
|
function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
9873
|
-
const
|
|
10089
|
+
const ledgerConfigured = Boolean(ledgerBaseUrl);
|
|
10090
|
+
const useLedger = () => ledgerConfigured && !isSandboxMode();
|
|
9874
10091
|
const ledgerBase = (ledgerBaseUrl != null ? ledgerBaseUrl : "").replace(/\/$/, "");
|
|
9875
10092
|
function ledgerUrl(baseRequest, path) {
|
|
9876
|
-
if (!useLedger) {
|
|
10093
|
+
if (!useLedger()) {
|
|
9877
10094
|
throw new Error("ledgerUrl called without a configured ledgerBaseUrl");
|
|
9878
10095
|
}
|
|
9879
10096
|
return `${ledgerBase}/public/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}${path}`;
|
|
9880
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
|
+
}
|
|
9881
10112
|
async function privacyCenterApiFetch(url, options) {
|
|
9882
10113
|
const { authToken, getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9883
10114
|
const requestHeaders = new Headers();
|
|
@@ -9901,11 +10132,18 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
9901
10132
|
);
|
|
9902
10133
|
}
|
|
9903
10134
|
}
|
|
9904
|
-
const
|
|
9905
|
-
if (
|
|
9906
|
-
|
|
9907
|
-
|
|
9908
|
-
|
|
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
|
+
}
|
|
9909
10147
|
}
|
|
9910
10148
|
const fetchOptionsFinal = {
|
|
9911
10149
|
...fetchOptions,
|
|
@@ -9986,18 +10224,20 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
9986
10224
|
async createCaseRequest(baseRequest, payload, authToken, options) {
|
|
9987
10225
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/case`;
|
|
9988
10226
|
const { useSessionAuth = false, getAuthToken, ...fetchOptions } = options || {};
|
|
10227
|
+
const contact = sandboxContact();
|
|
10228
|
+
const requestPayload = contact && payload && typeof payload === "object" ? { ...payload, contact } : payload;
|
|
9989
10229
|
if (useSessionAuth) {
|
|
9990
10230
|
return apiFetch(url, {
|
|
9991
10231
|
...fetchOptions,
|
|
9992
10232
|
method: "POST",
|
|
9993
|
-
body: JSON.stringify(
|
|
10233
|
+
body: JSON.stringify(requestPayload),
|
|
9994
10234
|
getAuthToken
|
|
9995
10235
|
});
|
|
9996
10236
|
}
|
|
9997
10237
|
return privacyCenterApiFetch(url, {
|
|
9998
10238
|
...fetchOptions,
|
|
9999
10239
|
method: "POST",
|
|
10000
|
-
body: JSON.stringify(
|
|
10240
|
+
body: JSON.stringify(requestPayload),
|
|
10001
10241
|
authToken: authToken || baseRequest.authToken
|
|
10002
10242
|
});
|
|
10003
10243
|
},
|
|
@@ -10078,9 +10318,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10078
10318
|
if (params.status) queryParams.append("status", params.status);
|
|
10079
10319
|
if (params.product_uuid) queryParams.append("product_uuid", params.product_uuid);
|
|
10080
10320
|
if (params.language) queryParams.append("language", params.language);
|
|
10321
|
+
appendSandboxIdentity(queryParams);
|
|
10081
10322
|
const queryString = queryParams.toString();
|
|
10082
10323
|
const consentsSuffix = `/user-consents${queryString ? `?${queryString}` : ""}`;
|
|
10083
|
-
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}`;
|
|
10084
10325
|
return privacyCenterApiFetch(url, {
|
|
10085
10326
|
...options,
|
|
10086
10327
|
method: "GET",
|
|
@@ -10099,9 +10340,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10099
10340
|
if (params.search) queryParams.append("search", params.search);
|
|
10100
10341
|
if (params.language) queryParams.append("language", params.language);
|
|
10101
10342
|
if (params.nominator_uuid) queryParams.append("nominator_uuid", params.nominator_uuid);
|
|
10343
|
+
appendSandboxIdentity(queryParams);
|
|
10102
10344
|
const queryString = queryParams.toString();
|
|
10103
10345
|
const purposesSuffix = `/user-consents/${productUuid}/purposes${queryString ? `?${queryString}` : ""}`;
|
|
10104
|
-
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}`;
|
|
10105
10347
|
return privacyCenterApiFetch(url, {
|
|
10106
10348
|
...options,
|
|
10107
10349
|
method: "GET",
|
|
@@ -10123,9 +10365,13 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10123
10365
|
* used with its `{ purpose_uuid, contact, ... }` payload.
|
|
10124
10366
|
*/
|
|
10125
10367
|
async manageConsent(baseRequest, purposeId, contact, status, authToken, options, nominatorContact, dataElementUuids, noticeUuid, dataElements, language) {
|
|
10126
|
-
if (!useLedger) {
|
|
10368
|
+
if (!useLedger()) {
|
|
10127
10369
|
const url2 = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/manage-consent?status=${status}`;
|
|
10128
|
-
const
|
|
10370
|
+
const sandboxSingleContact = sandboxContact();
|
|
10371
|
+
const body2 = {
|
|
10372
|
+
purpose_uuid: purposeId,
|
|
10373
|
+
contact: sandboxSingleContact != null ? sandboxSingleContact : contact
|
|
10374
|
+
};
|
|
10129
10375
|
if (nominatorContact) {
|
|
10130
10376
|
body2.nominator_contact = nominatorContact;
|
|
10131
10377
|
}
|
|
@@ -10188,6 +10434,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10188
10434
|
if (offset !== void 0) queryParams.append("offset", offset.toString());
|
|
10189
10435
|
if (limit !== void 0) queryParams.append("limit", limit.toString());
|
|
10190
10436
|
if (language) queryParams.append("language", language);
|
|
10437
|
+
appendSandboxIdentity(queryParams);
|
|
10191
10438
|
const queryString = queryParams.toString();
|
|
10192
10439
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/activities${queryString ? `?${queryString}` : ""}`;
|
|
10193
10440
|
return privacyCenterApiFetch(url, {
|
|
@@ -10195,6 +10442,32 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10195
10442
|
authToken: authToken || baseRequest.authToken
|
|
10196
10443
|
});
|
|
10197
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
|
+
},
|
|
10198
10471
|
/**
|
|
10199
10472
|
* Get receipts (privacy center)
|
|
10200
10473
|
*/
|
|
@@ -10208,9 +10481,10 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10208
10481
|
if (params.created_before) queryParams.append("created_before", params.created_before);
|
|
10209
10482
|
if (params.notice_uuid) queryParams.append("notice_uuid", params.notice_uuid);
|
|
10210
10483
|
if (params.language) queryParams.append("language", params.language);
|
|
10484
|
+
appendSandboxIdentity(queryParams);
|
|
10211
10485
|
const queryString = queryParams.toString();
|
|
10212
10486
|
const receiptsSuffix = `/receipts${queryString ? `?${queryString}` : ""}`;
|
|
10213
|
-
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}`;
|
|
10214
10488
|
return privacyCenterApiFetch(url, {
|
|
10215
10489
|
...options,
|
|
10216
10490
|
method: "GET",
|
|
@@ -10224,11 +10498,16 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10224
10498
|
* the RN UI writes to a temp file to open/share. 404 => not found.
|
|
10225
10499
|
*/
|
|
10226
10500
|
async getReceiptPdf(baseRequest, receiptUuid, authToken) {
|
|
10227
|
-
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`;
|
|
10228
10502
|
const token = authToken || baseRequest.authToken;
|
|
10229
10503
|
const requestHeaders = new Headers();
|
|
10230
10504
|
requestHeaders.set("Accept", "application/pdf");
|
|
10231
|
-
|
|
10505
|
+
const sandboxHeaders = sandboxAuthHeaders();
|
|
10506
|
+
if (sandboxHeaders) {
|
|
10507
|
+
Object.entries(sandboxHeaders).forEach(([key, value]) => {
|
|
10508
|
+
requestHeaders.set(key, value);
|
|
10509
|
+
});
|
|
10510
|
+
} else if (token) {
|
|
10232
10511
|
const trimmedToken = token.trim();
|
|
10233
10512
|
const bearerToken = trimmedToken.startsWith("Bearer ") ? trimmedToken : `Bearer ${trimmedToken}`;
|
|
10234
10513
|
requestHeaders.set("Authorization", bearerToken);
|
|
@@ -10254,6 +10533,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10254
10533
|
if (offset !== void 0) queryParams.append("offset", offset.toString());
|
|
10255
10534
|
if (limit !== void 0) queryParams.append("limit", limit.toString());
|
|
10256
10535
|
if (language) queryParams.append("language", language);
|
|
10536
|
+
appendSandboxIdentity(queryParams);
|
|
10257
10537
|
const queryString = queryParams.toString();
|
|
10258
10538
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/cases?${queryString}`;
|
|
10259
10539
|
return privacyCenterApiFetch(url, {
|
|
@@ -10265,7 +10545,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10265
10545
|
* Get case messages (privacy center)
|
|
10266
10546
|
*/
|
|
10267
10547
|
async getCaseMessages(baseRequest, caseUuid, authToken, options) {
|
|
10268
|
-
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()}`;
|
|
10269
10549
|
return privacyCenterApiFetch(url, {
|
|
10270
10550
|
...options,
|
|
10271
10551
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10275,7 +10555,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10275
10555
|
* Send a message in a case (privacy center)
|
|
10276
10556
|
*/
|
|
10277
10557
|
async sendCaseMessage(baseRequest, caseUuid, body, documentUuids, authToken, options) {
|
|
10278
|
-
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()}`;
|
|
10279
10559
|
return privacyCenterApiFetch(url, {
|
|
10280
10560
|
...options,
|
|
10281
10561
|
method: "POST",
|
|
@@ -10287,7 +10567,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10287
10567
|
* Upload a document for a case (privacy center)
|
|
10288
10568
|
*/
|
|
10289
10569
|
async uploadCaseDocument(baseRequest, caseUuid, formData, authToken, options) {
|
|
10290
|
-
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()}`;
|
|
10291
10571
|
return privacyCenterApiFetch(url, {
|
|
10292
10572
|
...options,
|
|
10293
10573
|
method: "POST",
|
|
@@ -10320,6 +10600,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10320
10600
|
if ((params == null ? void 0 : params.limit) !== void 0) queryParams.append("limit", params.limit.toString());
|
|
10321
10601
|
if (params == null ? void 0 : params.include_summary) queryParams.append("include_summary", "true");
|
|
10322
10602
|
if (params == null ? void 0 : params.language) queryParams.append("language", params.language);
|
|
10603
|
+
appendSandboxIdentity(queryParams);
|
|
10323
10604
|
const queryString = queryParams.toString();
|
|
10324
10605
|
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/notifications/${queryString ? `?${queryString}` : ""}`;
|
|
10325
10606
|
return privacyCenterApiFetch(url, {
|
|
@@ -10331,7 +10612,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10331
10612
|
* Get notification summary (aggregated counts only)
|
|
10332
10613
|
*/
|
|
10333
10614
|
async getNotificationSummary(baseRequest, authToken) {
|
|
10334
|
-
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()}`;
|
|
10335
10616
|
return privacyCenterApiFetch(url, {
|
|
10336
10617
|
method: "GET",
|
|
10337
10618
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10341,7 +10622,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10341
10622
|
* Get unread notification count (lightweight, for the header badge)
|
|
10342
10623
|
*/
|
|
10343
10624
|
async getUnreadCount(baseRequest, authToken) {
|
|
10344
|
-
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()}`;
|
|
10345
10626
|
return privacyCenterApiFetch(url, {
|
|
10346
10627
|
method: "GET",
|
|
10347
10628
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10351,7 +10632,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10351
10632
|
* Mark a single notification as read
|
|
10352
10633
|
*/
|
|
10353
10634
|
async markNotificationRead(baseRequest, notificationUuid, authToken) {
|
|
10354
|
-
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()}`;
|
|
10355
10636
|
return privacyCenterApiFetch(url, {
|
|
10356
10637
|
method: "PATCH",
|
|
10357
10638
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10361,7 +10642,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10361
10642
|
* Mark all notifications as read
|
|
10362
10643
|
*/
|
|
10363
10644
|
async markAllNotificationsRead(baseRequest, authToken) {
|
|
10364
|
-
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()}`;
|
|
10365
10646
|
return privacyCenterApiFetch(url, {
|
|
10366
10647
|
method: "POST",
|
|
10367
10648
|
authToken: authToken || baseRequest.authToken
|
|
@@ -10371,7 +10652,7 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10371
10652
|
* Acknowledge a notification (sets is_read and is_acknowledged to true)
|
|
10372
10653
|
*/
|
|
10373
10654
|
async acknowledgeNotification(baseRequest, notificationUuid, authToken) {
|
|
10374
|
-
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()}`;
|
|
10375
10656
|
return privacyCenterApiFetch(url, {
|
|
10376
10657
|
method: "POST",
|
|
10377
10658
|
authToken: authToken || baseRequest.authToken
|
|
@@ -11483,6 +11764,40 @@ var acknowledgeNotification = async (organizationId, workspaceId, notificationUu
|
|
|
11483
11764
|
var isRefreshing = false;
|
|
11484
11765
|
var refreshPromise = null;
|
|
11485
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
|
+
};
|
|
11486
11801
|
var tokenStore = {};
|
|
11487
11802
|
var getStoredValue = (key) => {
|
|
11488
11803
|
var _a3;
|
|
@@ -11564,11 +11879,16 @@ var compareEmails = (email1, email2) => {
|
|
|
11564
11879
|
return decodeURIComponent(email1.trim()).toLowerCase() === email2.trim().toLowerCase();
|
|
11565
11880
|
};
|
|
11566
11881
|
var ensureValidToken = async (organizationId, workspaceId, _slug, authContext, consentClient) => {
|
|
11882
|
+
const sandbox = getSandboxConfig();
|
|
11883
|
+
if (sandbox) {
|
|
11884
|
+
return sandbox.token;
|
|
11885
|
+
}
|
|
11567
11886
|
const accessToken = (authContext == null ? void 0 : authContext.accessToken) || getStoredValue("access_token");
|
|
11568
11887
|
if (accessToken && typeof accessToken === "string" && accessToken.trim() !== "" && !isJwtExpired(accessToken, TOKEN_EXPIRY_BUFFER_SECONDS)) {
|
|
11569
11888
|
return accessToken;
|
|
11570
11889
|
}
|
|
11571
11890
|
if (isRefreshing && refreshPromise) return refreshPromise;
|
|
11891
|
+
if (isRefreshBlocked(authContext)) return null;
|
|
11572
11892
|
isRefreshing = true;
|
|
11573
11893
|
refreshPromise = performTokenRefresh(
|
|
11574
11894
|
organizationId,
|
|
@@ -11596,6 +11916,7 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11596
11916
|
if (!refreshToken || typeof refreshToken !== "string" || refreshToken.trim() === "") {
|
|
11597
11917
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11598
11918
|
authContext.onError(new Error("No refresh token available"));
|
|
11919
|
+
notifySessionExpired();
|
|
11599
11920
|
signOutPrivacyCenter();
|
|
11600
11921
|
return null;
|
|
11601
11922
|
}
|
|
@@ -11625,11 +11946,13 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11625
11946
|
if (newRefreshToken)
|
|
11626
11947
|
setStoredValue("refresh_token", newRefreshToken);
|
|
11627
11948
|
}
|
|
11949
|
+
resetRefreshCircuit();
|
|
11628
11950
|
return newAccessToken;
|
|
11629
11951
|
}
|
|
11630
11952
|
}
|
|
11631
11953
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11632
11954
|
authContext.onError(new Error("Refresh token expired or revoked"));
|
|
11955
|
+
markRefreshTokenDead(refreshToken);
|
|
11633
11956
|
signOutPrivacyCenter();
|
|
11634
11957
|
return null;
|
|
11635
11958
|
} catch (error) {
|
|
@@ -11637,7 +11960,12 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11637
11960
|
authContext.onError(
|
|
11638
11961
|
error instanceof Error ? error : new Error(String(error))
|
|
11639
11962
|
);
|
|
11640
|
-
|
|
11963
|
+
if (isTerminalRefreshError(error)) {
|
|
11964
|
+
markRefreshTokenDead(refreshToken);
|
|
11965
|
+
signOutPrivacyCenter();
|
|
11966
|
+
} else {
|
|
11967
|
+
noteTransientRefreshFailure();
|
|
11968
|
+
}
|
|
11641
11969
|
return null;
|
|
11642
11970
|
}
|
|
11643
11971
|
};
|
|
@@ -11701,15 +12029,73 @@ function syncJwtDataToStore(token) {
|
|
|
11701
12029
|
if (authData.workspaceId) setStoredValue("pc_workspace_id", authData.workspaceId);
|
|
11702
12030
|
return authData;
|
|
11703
12031
|
}
|
|
11704
|
-
function
|
|
11705
|
-
|
|
12032
|
+
function configureSandbox(props) {
|
|
12033
|
+
var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
12034
|
+
const token = (_a3 = props.token) == null ? void 0 : _a3.trim();
|
|
12035
|
+
if (!token) {
|
|
12036
|
+
setSandboxConfig(null);
|
|
12037
|
+
return null;
|
|
12038
|
+
}
|
|
12039
|
+
const organisationUuid = (_c = (_b = props.organisationUuid) == null ? void 0 : _b.trim()) != null ? _c : "";
|
|
12040
|
+
const workspaceUuid = (_e = (_d = props.workspaceUuid) == null ? void 0 : _d.trim()) != null ? _e : "";
|
|
12041
|
+
const ucic = (_g = (_f = props.sandboxUcic) == null ? void 0 : _f.trim()) != null ? _g : "";
|
|
12042
|
+
const subject = (_i = (_h = props.sandboxSubject) == null ? void 0 : _h.trim()) != null ? _i : "";
|
|
12043
|
+
const slug = (_k = (_j = props.slug) == null ? void 0 : _j.trim()) != null ? _k : "";
|
|
12044
|
+
if (!organisationUuid || !workspaceUuid) {
|
|
12045
|
+
throw new Error("Sandbox mode requires organisationUuid and workspaceUuid props");
|
|
12046
|
+
}
|
|
12047
|
+
if (!ucic && !subject) {
|
|
12048
|
+
throw new Error("Sandbox mode requires a UCIC, email, or mobile");
|
|
12049
|
+
}
|
|
12050
|
+
setSandboxConfig({
|
|
12051
|
+
token,
|
|
12052
|
+
ucic: ucic || void 0,
|
|
12053
|
+
subject,
|
|
12054
|
+
organisationUuid,
|
|
12055
|
+
workspaceUuid,
|
|
12056
|
+
slug
|
|
12057
|
+
});
|
|
12058
|
+
const contact = ucic || subject;
|
|
12059
|
+
setStoredValue("access_token", token);
|
|
12060
|
+
if (organisationUuid) setStoredValue("pc_org_id", organisationUuid);
|
|
12061
|
+
if (workspaceUuid) setStoredValue("pc_workspace_id", workspaceUuid);
|
|
12062
|
+
if (contact) setStoredValue("email", contact);
|
|
12063
|
+
return {
|
|
12064
|
+
email: contact || null,
|
|
12065
|
+
organizationId: organisationUuid || null,
|
|
12066
|
+
workspaceId: workspaceUuid || null,
|
|
12067
|
+
organizationName: null
|
|
12068
|
+
};
|
|
12069
|
+
}
|
|
12070
|
+
function AuthProvider(props) {
|
|
12071
|
+
const {
|
|
12072
|
+
children,
|
|
12073
|
+
accessToken: initialAccessToken,
|
|
12074
|
+
refreshToken: initialRefreshToken,
|
|
12075
|
+
token: sandboxToken,
|
|
12076
|
+
sandboxUcic,
|
|
12077
|
+
sandboxSubject,
|
|
12078
|
+
organisationUuid,
|
|
12079
|
+
workspaceUuid,
|
|
12080
|
+
slug,
|
|
12081
|
+
onError
|
|
12082
|
+
} = props;
|
|
12083
|
+
const [sandboxAuth] = useState(() => configureSandbox(props));
|
|
12084
|
+
const sandboxActive = sandboxAuth !== null;
|
|
12085
|
+
const initialAuth = sandboxAuth != null ? sandboxAuth : extractJwtAuthData(initialAccessToken);
|
|
11706
12086
|
const [accessToken, setAccessToken] = useState(() => {
|
|
12087
|
+
if (sandboxActive) {
|
|
12088
|
+
return sandboxToken != null ? sandboxToken : "";
|
|
12089
|
+
}
|
|
11707
12090
|
if (initialAccessToken && initialAccessToken.trim() !== "") {
|
|
11708
12091
|
syncJwtDataToStore(initialAccessToken);
|
|
11709
12092
|
}
|
|
11710
12093
|
return initialAccessToken;
|
|
11711
12094
|
});
|
|
11712
12095
|
const [refreshToken, setRefreshToken] = useState(() => {
|
|
12096
|
+
if (sandboxActive) {
|
|
12097
|
+
return "";
|
|
12098
|
+
}
|
|
11713
12099
|
if (initialRefreshToken && initialRefreshToken.trim() !== "") {
|
|
11714
12100
|
setStoredValue("refresh_token", initialRefreshToken);
|
|
11715
12101
|
}
|
|
@@ -11720,6 +12106,20 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11720
12106
|
const [workspaceId, setWorkspaceId] = useState(initialAuth.workspaceId);
|
|
11721
12107
|
const [organizationName, setOrganizationName] = useState(initialAuth.organizationName);
|
|
11722
12108
|
useEffect(() => {
|
|
12109
|
+
if (!sandboxActive) {
|
|
12110
|
+
return;
|
|
12111
|
+
}
|
|
12112
|
+
const seeded = configureSandbox(props);
|
|
12113
|
+
if (seeded) {
|
|
12114
|
+
setEmail(seeded.email);
|
|
12115
|
+
setOrganizationId(seeded.organizationId);
|
|
12116
|
+
setWorkspaceId(seeded.workspaceId);
|
|
12117
|
+
setOrganizationName(seeded.organizationName);
|
|
12118
|
+
}
|
|
12119
|
+
return () => setSandboxConfig(null);
|
|
12120
|
+
}, [sandboxActive, sandboxToken, sandboxUcic, sandboxSubject, organisationUuid, workspaceUuid, slug]);
|
|
12121
|
+
useEffect(() => {
|
|
12122
|
+
if (sandboxActive) return;
|
|
11723
12123
|
if (accessToken) {
|
|
11724
12124
|
const authData = syncJwtDataToStore(accessToken);
|
|
11725
12125
|
setEmail(authData.email);
|
|
@@ -11727,11 +12127,13 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11727
12127
|
setWorkspaceId(authData.workspaceId);
|
|
11728
12128
|
setOrganizationName(authData.organizationName);
|
|
11729
12129
|
}
|
|
11730
|
-
}, [accessToken]);
|
|
12130
|
+
}, [accessToken, sandboxActive]);
|
|
11731
12131
|
useEffect(() => {
|
|
12132
|
+
if (sandboxActive) return;
|
|
11732
12133
|
if (refreshToken) setStoredValue("refresh_token", refreshToken);
|
|
11733
|
-
}, [refreshToken]);
|
|
12134
|
+
}, [refreshToken, sandboxActive]);
|
|
11734
12135
|
useEffect(() => {
|
|
12136
|
+
if (sandboxActive) return;
|
|
11735
12137
|
setAccessToken(initialAccessToken);
|
|
11736
12138
|
if (initialAccessToken && initialAccessToken.trim() !== "") {
|
|
11737
12139
|
const authData = syncJwtDataToStore(initialAccessToken);
|
|
@@ -11740,10 +12142,11 @@ function AuthProvider({ children, accessToken: initialAccessToken, refreshToken:
|
|
|
11740
12142
|
setWorkspaceId(authData.workspaceId);
|
|
11741
12143
|
setOrganizationName(authData.organizationName);
|
|
11742
12144
|
}
|
|
11743
|
-
}, [initialAccessToken]);
|
|
12145
|
+
}, [initialAccessToken, sandboxActive]);
|
|
11744
12146
|
useEffect(() => {
|
|
12147
|
+
if (sandboxActive) return;
|
|
11745
12148
|
setRefreshToken(initialRefreshToken);
|
|
11746
|
-
}, [initialRefreshToken]);
|
|
12149
|
+
}, [initialRefreshToken, sandboxActive]);
|
|
11747
12150
|
const updateTokens = useCallback((newAccessToken, newRefreshToken) => {
|
|
11748
12151
|
setAccessToken(newAccessToken);
|
|
11749
12152
|
if (newRefreshToken) setRefreshToken(newRefreshToken);
|
|
@@ -12000,8 +12403,17 @@ function DataAvailabilityProvider({ children }) {
|
|
|
12000
12403
|
mountedRef.current = false;
|
|
12001
12404
|
};
|
|
12002
12405
|
}, []);
|
|
12406
|
+
useEffect3(() => {
|
|
12407
|
+
setSessionExpiredListener(() => {
|
|
12408
|
+
if (!mountedRef.current) return;
|
|
12409
|
+
runIdRef.current += 1;
|
|
12410
|
+
setStatus("session-expired");
|
|
12411
|
+
});
|
|
12412
|
+
return () => setSessionExpiredListener(null);
|
|
12413
|
+
}, []);
|
|
12003
12414
|
const runCheck = useCallback4(async () => {
|
|
12004
12415
|
if (!organizationId || !workspaceId) return;
|
|
12416
|
+
if (isRefreshBlocked(authContext)) return;
|
|
12005
12417
|
const runId = ++runIdRef.current;
|
|
12006
12418
|
setStatus("checking");
|
|
12007
12419
|
const contact = email;
|
|
@@ -14138,7 +14550,7 @@ import { useTranslation as useTranslation10 } from "react-i18next";
|
|
|
14138
14550
|
|
|
14139
14551
|
// src/RedactoPrivacyCenter/lib/consentManagerUtils.ts
|
|
14140
14552
|
function purposeItemToUserConsent(purpose, group) {
|
|
14141
|
-
var _a3, _b, _c, _d;
|
|
14553
|
+
var _a3, _b, _c, _d, _e;
|
|
14142
14554
|
return {
|
|
14143
14555
|
purpose_uuid: purpose.purpose_uuid,
|
|
14144
14556
|
purpose: purpose.name,
|
|
@@ -14152,6 +14564,7 @@ function purposeItemToUserConsent(purpose, group) {
|
|
|
14152
14564
|
product_name: group.product_name,
|
|
14153
14565
|
product_description: group.product_description,
|
|
14154
14566
|
nominator_info: (_d = group.nominator) != null ? _d : void 0,
|
|
14567
|
+
revoke_warning_message: (_e = purpose.revoke_warning_message) != null ? _e : null,
|
|
14155
14568
|
notice_uuid: purpose.notice_uuid
|
|
14156
14569
|
};
|
|
14157
14570
|
}
|
|
@@ -14419,7 +14832,7 @@ var ModifyConsentModal = ({
|
|
|
14419
14832
|
action: "revoke",
|
|
14420
14833
|
buttonLabel: t("revokeConsent"),
|
|
14421
14834
|
buttonColor: colors.error,
|
|
14422
|
-
warningMessage: t("revokeConsentWarning"),
|
|
14835
|
+
warningMessage: selectedRecord.revoke_warning_message || t("revokeConsentWarning"),
|
|
14423
14836
|
description: nominatorLabel ? t("aboutToModifyConsentOnBehalf", { nominator: nominatorLabel }) : t("aboutToModifyConsent")
|
|
14424
14837
|
};
|
|
14425
14838
|
}
|
|
@@ -18136,6 +18549,7 @@ function useUnreadCount() {
|
|
|
18136
18549
|
const loadRef = useRef8();
|
|
18137
18550
|
loadRef.current = async () => {
|
|
18138
18551
|
if (!organizationId || !workspaceId) return;
|
|
18552
|
+
if (isRefreshBlocked(authContext)) return;
|
|
18139
18553
|
const res = await fetchUnreadCount(organizationId, workspaceId, authContext, consentClient);
|
|
18140
18554
|
if (res && typeof res.count === "number") setCount(res.count);
|
|
18141
18555
|
};
|
|
@@ -18461,17 +18875,255 @@ function PrivacyCenterEmptyState() {
|
|
|
18461
18875
|
return /* @__PURE__ */ jsx49(PCEmpty, { iconName: "shield", title: t("noDataTitle"), description: t("noDataDescription") });
|
|
18462
18876
|
}
|
|
18463
18877
|
|
|
18878
|
+
// src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx
|
|
18879
|
+
import { useTranslation as useTranslation20 } from "react-i18next";
|
|
18880
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
18881
|
+
function PrivacyCenterSessionExpired() {
|
|
18882
|
+
const { t } = useTranslation20();
|
|
18883
|
+
return /* @__PURE__ */ jsx50(
|
|
18884
|
+
PCEmpty,
|
|
18885
|
+
{
|
|
18886
|
+
iconName: "shield",
|
|
18887
|
+
title: t("sessionExpiredTitle"),
|
|
18888
|
+
description: t("sessionExpiredDescription")
|
|
18889
|
+
}
|
|
18890
|
+
);
|
|
18891
|
+
}
|
|
18892
|
+
|
|
18893
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
18894
|
+
import { useCallback as useCallback11, useEffect as useEffect16, useState as useState22 } from "react";
|
|
18895
|
+
import { StyleSheet as StyleSheet41, View as View39 } from "react-native";
|
|
18896
|
+
|
|
18897
|
+
// src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx
|
|
18898
|
+
import { createContext as createContext7, useContext as useContext7 } from "react";
|
|
18899
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
18900
|
+
var ProfileSwitchContext = createContext7({
|
|
18901
|
+
switchProfile: null
|
|
18902
|
+
});
|
|
18903
|
+
function ProfileSwitchProvider({
|
|
18904
|
+
switchProfile,
|
|
18905
|
+
children
|
|
18906
|
+
}) {
|
|
18907
|
+
return /* @__PURE__ */ jsx51(ProfileSwitchContext.Provider, { value: { switchProfile }, children });
|
|
18908
|
+
}
|
|
18909
|
+
function useProfileSwitch() {
|
|
18910
|
+
return useContext7(ProfileSwitchContext);
|
|
18911
|
+
}
|
|
18912
|
+
|
|
18913
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18914
|
+
import { ScrollView as ScrollView8, StyleSheet as StyleSheet40, Text as Text30, TouchableOpacity as TouchableOpacity15, View as View38 } from "react-native";
|
|
18915
|
+
import { useTranslation as useTranslation21 } from "react-i18next";
|
|
18916
|
+
|
|
18917
|
+
// src/RedactoPrivacyCenter/lib/identityLabels.ts
|
|
18918
|
+
var identityPrimaryValue = (candidate) => {
|
|
18919
|
+
const orgUserId = candidate.org_user_id || "";
|
|
18920
|
+
const email = candidate.primary_email || "";
|
|
18921
|
+
const mobile = candidate.primary_mobile || "";
|
|
18922
|
+
return { orgUserId, fallback: email || mobile || candidate.uuid };
|
|
18923
|
+
};
|
|
18924
|
+
var identitySecondaryLabels = (candidate, primaryLabel) => {
|
|
18925
|
+
const email = candidate.primary_email || "";
|
|
18926
|
+
const mobile = candidate.primary_mobile || "";
|
|
18927
|
+
return [email, mobile].filter(
|
|
18928
|
+
(value, index, all) => value !== "" && value !== primaryLabel && all.indexOf(value) === index
|
|
18929
|
+
);
|
|
18930
|
+
};
|
|
18931
|
+
var selectableIdentities = (candidates) => candidates.filter((candidate) => Boolean(candidate.uuid));
|
|
18932
|
+
|
|
18933
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18934
|
+
import { jsx as jsx52, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
18935
|
+
var SelectUser = ({
|
|
18936
|
+
candidates,
|
|
18937
|
+
onSelect,
|
|
18938
|
+
busyUuid,
|
|
18939
|
+
error
|
|
18940
|
+
}) => {
|
|
18941
|
+
const { t } = useTranslation21();
|
|
18942
|
+
const { colors } = useTheme();
|
|
18943
|
+
const selectable = selectableIdentities(candidates);
|
|
18944
|
+
const busy = busyUuid !== null;
|
|
18945
|
+
return /* @__PURE__ */ jsxs32(ScrollView8, { contentContainerStyle: styles39.container, children: [
|
|
18946
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.title, styles39.heading, { color: colors.text }], children: t("chooseYourProfile") }),
|
|
18947
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.body, styles39.subtitle, { color: colors.textSecondary }], children: t("loginIdentifierLinkedToMultipleProfiles") }),
|
|
18948
|
+
error ? /* @__PURE__ */ jsx52(Text30, { style: [typography.caption, styles39.error, { color: colors.error }], children: error }) : null,
|
|
18949
|
+
selectable.map((candidate) => {
|
|
18950
|
+
const { orgUserId, fallback } = identityPrimaryValue(candidate);
|
|
18951
|
+
const primaryLabel = orgUserId ? t("userIdLabel", { id: orgUserId }) : fallback;
|
|
18952
|
+
const secondaryLabels = identitySecondaryLabels(candidate, primaryLabel);
|
|
18953
|
+
const isBusy = busyUuid === candidate.uuid;
|
|
18954
|
+
return /* @__PURE__ */ jsxs32(
|
|
18955
|
+
TouchableOpacity15,
|
|
18956
|
+
{
|
|
18957
|
+
accessibilityRole: "button",
|
|
18958
|
+
disabled: busy,
|
|
18959
|
+
onPress: () => onSelect(candidate.uuid),
|
|
18960
|
+
style: [
|
|
18961
|
+
styles39.row,
|
|
18962
|
+
{
|
|
18963
|
+
backgroundColor: colors.surface,
|
|
18964
|
+
borderColor: isBusy ? colors.primary : colors.border
|
|
18965
|
+
}
|
|
18966
|
+
],
|
|
18967
|
+
children: [
|
|
18968
|
+
/* @__PURE__ */ jsxs32(View38, { style: styles39.rowText, children: [
|
|
18969
|
+
/* @__PURE__ */ jsx52(Text30, { style: [typography.label, { color: colors.text }], children: primaryLabel }),
|
|
18970
|
+
secondaryLabels.map((label) => /* @__PURE__ */ jsx52(
|
|
18971
|
+
Text30,
|
|
18972
|
+
{
|
|
18973
|
+
style: [typography.caption, styles39.secondary, { color: colors.textSecondary }],
|
|
18974
|
+
children: label
|
|
18975
|
+
},
|
|
18976
|
+
label
|
|
18977
|
+
))
|
|
18978
|
+
] }),
|
|
18979
|
+
isBusy ? /* @__PURE__ */ jsx52(Text30, { style: [typography.caption, { color: colors.textSecondary }], children: t("signingInEllipsis") }) : /* @__PURE__ */ jsx52(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary })
|
|
18980
|
+
]
|
|
18981
|
+
},
|
|
18982
|
+
candidate.uuid
|
|
18983
|
+
);
|
|
18984
|
+
})
|
|
18985
|
+
] });
|
|
18986
|
+
};
|
|
18987
|
+
var styles39 = StyleSheet40.create({
|
|
18988
|
+
container: { padding: spacing.lg },
|
|
18989
|
+
heading: { textAlign: "center" },
|
|
18990
|
+
subtitle: { textAlign: "center", marginTop: spacing.xs, marginBottom: spacing.lg },
|
|
18991
|
+
error: { textAlign: "center", marginBottom: spacing.md },
|
|
18992
|
+
row: {
|
|
18993
|
+
flexDirection: "row",
|
|
18994
|
+
alignItems: "center",
|
|
18995
|
+
borderWidth: 1,
|
|
18996
|
+
borderRadius: radii.md,
|
|
18997
|
+
padding: spacing.md,
|
|
18998
|
+
marginBottom: spacing.sm
|
|
18999
|
+
},
|
|
19000
|
+
rowText: { flex: 1 },
|
|
19001
|
+
secondary: { marginTop: 2 }
|
|
19002
|
+
});
|
|
19003
|
+
|
|
19004
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
19005
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
19006
|
+
function SelectUserGate({ children }) {
|
|
19007
|
+
var _a3, _b;
|
|
19008
|
+
const { accessToken, organizationId, workspaceId, updateTokens } = useAuth();
|
|
19009
|
+
const { consentClient } = useBaseUrl();
|
|
19010
|
+
const { colors } = useTheme();
|
|
19011
|
+
const insets = useSafeInsets();
|
|
19012
|
+
const [phase, setPhase] = useState22("checking");
|
|
19013
|
+
const [candidates, setCandidates] = useState22([]);
|
|
19014
|
+
const [busyUuid, setBusyUuid] = useState22(null);
|
|
19015
|
+
const [selectError, setSelectError] = useState22(null);
|
|
19016
|
+
const [pinnedOrgUserId, setPinnedOrgUserId] = useState22(null);
|
|
19017
|
+
const tokenOrgUserId = ((_b = (_a3 = decodeJwtToken(accessToken)) == null ? void 0 : _a3.user_data) == null ? void 0 : _b.org_user_id) || "";
|
|
19018
|
+
useEffect16(() => {
|
|
19019
|
+
let cancelled = false;
|
|
19020
|
+
if (isSandboxMode() || !organizationId || !workspaceId || !accessToken) {
|
|
19021
|
+
setPhase("resolved");
|
|
19022
|
+
return;
|
|
19023
|
+
}
|
|
19024
|
+
const isPinned = Boolean(pinnedOrgUserId) && pinnedOrgUserId === tokenOrgUserId;
|
|
19025
|
+
setPhase(isPinned ? "resolved" : "checking");
|
|
19026
|
+
(async () => {
|
|
19027
|
+
var _a4;
|
|
19028
|
+
try {
|
|
19029
|
+
const res = await consentClient.listIdentities({
|
|
19030
|
+
organisationUuid: organizationId,
|
|
19031
|
+
workspaceUuid: workspaceId,
|
|
19032
|
+
authToken: accessToken
|
|
19033
|
+
});
|
|
19034
|
+
if (cancelled) return;
|
|
19035
|
+
const list = (_a4 = res == null ? void 0 : res.identities) != null ? _a4 : [];
|
|
19036
|
+
setCandidates(list);
|
|
19037
|
+
setPhase(list.length > 1 && !isPinned ? "picking" : "resolved");
|
|
19038
|
+
} catch {
|
|
19039
|
+
if (cancelled) return;
|
|
19040
|
+
setCandidates([]);
|
|
19041
|
+
setPhase("resolved");
|
|
19042
|
+
}
|
|
19043
|
+
})();
|
|
19044
|
+
return () => {
|
|
19045
|
+
cancelled = true;
|
|
19046
|
+
};
|
|
19047
|
+
}, [organizationId, workspaceId, tokenOrgUserId]);
|
|
19048
|
+
const handleSelect = useCallback11(
|
|
19049
|
+
async (principalUuid) => {
|
|
19050
|
+
var _a4, _b2;
|
|
19051
|
+
if (!principalUuid || busyUuid || !organizationId || !workspaceId) return;
|
|
19052
|
+
setBusyUuid(principalUuid);
|
|
19053
|
+
setSelectError(null);
|
|
19054
|
+
try {
|
|
19055
|
+
const res = await consentClient.selectPrincipal(
|
|
19056
|
+
{
|
|
19057
|
+
organisationUuid: organizationId,
|
|
19058
|
+
workspaceUuid: workspaceId,
|
|
19059
|
+
authToken: accessToken
|
|
19060
|
+
},
|
|
19061
|
+
principalUuid
|
|
19062
|
+
);
|
|
19063
|
+
if (!(res == null ? void 0 : res.token) || !(res == null ? void 0 : res.refresh_token)) {
|
|
19064
|
+
throw new Error("select-principal returned no tokens");
|
|
19065
|
+
}
|
|
19066
|
+
const pinned = ((_b2 = (_a4 = decodeJwtToken(res.token)) == null ? void 0 : _a4.user_data) == null ? void 0 : _b2.org_user_id) || null;
|
|
19067
|
+
setPinnedOrgUserId(pinned);
|
|
19068
|
+
setPhase("resolved");
|
|
19069
|
+
updateTokens(res.token, res.refresh_token);
|
|
19070
|
+
} catch (error) {
|
|
19071
|
+
setSelectError(
|
|
19072
|
+
error instanceof Error ? error.message : "Failed to switch profile"
|
|
19073
|
+
);
|
|
19074
|
+
} finally {
|
|
19075
|
+
setBusyUuid(null);
|
|
19076
|
+
}
|
|
19077
|
+
},
|
|
19078
|
+
[accessToken, busyUuid, consentClient, organizationId, workspaceId, updateTokens]
|
|
19079
|
+
);
|
|
19080
|
+
const canSwitch = candidates.length > 1;
|
|
19081
|
+
const switchProfile = useCallback11(() => {
|
|
19082
|
+
if (!canSwitch) return;
|
|
19083
|
+
setSelectError(null);
|
|
19084
|
+
setPhase("picking");
|
|
19085
|
+
}, [canSwitch]);
|
|
19086
|
+
if (phase === "checking" || phase === "picking") {
|
|
19087
|
+
return /* @__PURE__ */ jsx53(
|
|
19088
|
+
View39,
|
|
19089
|
+
{
|
|
19090
|
+
style: [
|
|
19091
|
+
styles40.screen,
|
|
19092
|
+
{
|
|
19093
|
+
backgroundColor: colors.canvasSubtle,
|
|
19094
|
+
paddingTop: insets.top,
|
|
19095
|
+
paddingBottom: insets.bottom
|
|
19096
|
+
}
|
|
19097
|
+
],
|
|
19098
|
+
children: phase === "checking" ? /* @__PURE__ */ jsx53(PCLoader, {}) : /* @__PURE__ */ jsx53(
|
|
19099
|
+
SelectUser,
|
|
19100
|
+
{
|
|
19101
|
+
candidates,
|
|
19102
|
+
onSelect: handleSelect,
|
|
19103
|
+
busyUuid,
|
|
19104
|
+
error: selectError
|
|
19105
|
+
}
|
|
19106
|
+
)
|
|
19107
|
+
}
|
|
19108
|
+
);
|
|
19109
|
+
}
|
|
19110
|
+
return /* @__PURE__ */ jsx53(ProfileSwitchProvider, { switchProfile: canSwitch ? switchProfile : null, children });
|
|
19111
|
+
}
|
|
19112
|
+
var styles40 = StyleSheet41.create({
|
|
19113
|
+
screen: { flex: 1 }
|
|
19114
|
+
});
|
|
19115
|
+
|
|
18464
19116
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
18465
|
-
import { useState as
|
|
18466
|
-
import { View as
|
|
18467
|
-
import { useTranslation as
|
|
19117
|
+
import { useState as useState24, useMemo as useMemo20, useEffect as useEffect19 } from "react";
|
|
19118
|
+
import { View as View47, Text as Text38, StyleSheet as StyleSheet49, ActivityIndicator as ActivityIndicator8, Platform as Platform7 } from "react-native";
|
|
19119
|
+
import { useTranslation as useTranslation27 } from "react-i18next";
|
|
18468
19120
|
|
|
18469
19121
|
// src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx
|
|
18470
|
-
import { View as
|
|
18471
|
-
import { useTranslation as
|
|
18472
|
-
import { jsx as
|
|
19122
|
+
import { View as View40, Text as Text31, ScrollView as ScrollView9, StyleSheet as StyleSheet42 } from "react-native";
|
|
19123
|
+
import { useTranslation as useTranslation22 } from "react-i18next";
|
|
19124
|
+
import { jsx as jsx54, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
18473
19125
|
function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
18474
|
-
const { t } =
|
|
19126
|
+
const { t } = useTranslation22();
|
|
18475
19127
|
const { colors } = useTheme();
|
|
18476
19128
|
const { listBottom } = usePrivacyCenterInsets({ hasFooter: true });
|
|
18477
19129
|
const details = selectedCase.request_details;
|
|
@@ -18503,36 +19155,36 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18503
19155
|
}
|
|
18504
19156
|
const description = selectedCase.description_display || selectedCase.description;
|
|
18505
19157
|
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);
|
|
18506
|
-
return /* @__PURE__ */
|
|
18507
|
-
/* @__PURE__ */
|
|
19158
|
+
return /* @__PURE__ */ jsxs33(ScrollView9, { style: [styles41.container, { backgroundColor: colors.canvasSubtle }], contentContainerStyle: [styles41.content, { flexGrow: 1, paddingBottom: listBottom }], showsVerticalScrollIndicator: false, children: [
|
|
19159
|
+
/* @__PURE__ */ jsx54(View40, { style: styles41.timeline, children: steps.map((step, i) => {
|
|
18508
19160
|
const isLast = i === steps.length - 1;
|
|
18509
|
-
return /* @__PURE__ */
|
|
18510
|
-
/* @__PURE__ */
|
|
18511
|
-
/* @__PURE__ */
|
|
18512
|
-
|
|
19161
|
+
return /* @__PURE__ */ jsxs33(View40, { style: styles41.stepRow, children: [
|
|
19162
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.gutter, children: [
|
|
19163
|
+
/* @__PURE__ */ jsx54(
|
|
19164
|
+
View40,
|
|
18513
19165
|
{
|
|
18514
19166
|
style: [
|
|
18515
|
-
|
|
19167
|
+
styles41.dot,
|
|
18516
19168
|
step.state === "upcoming" ? { backgroundColor: colors.canvasSubtle, borderWidth: 2, borderColor: step.danger ? colors.error : colors.border } : { backgroundColor: step.color }
|
|
18517
19169
|
],
|
|
18518
|
-
children: step.state === "done" ? /* @__PURE__ */
|
|
19170
|
+
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
|
|
18519
19171
|
}
|
|
18520
19172
|
),
|
|
18521
|
-
!isLast ? /* @__PURE__ */
|
|
19173
|
+
!isLast ? /* @__PURE__ */ jsx54(View40, { style: [styles41.connector, { backgroundColor: colors.border }] }) : null
|
|
18522
19174
|
] }),
|
|
18523
|
-
/* @__PURE__ */
|
|
18524
|
-
/* @__PURE__ */
|
|
18525
|
-
step.date ? /* @__PURE__ */
|
|
19175
|
+
/* @__PURE__ */ jsxs33(View40, { style: [styles41.stepContent, isLast && styles41.stepContentLast], children: [
|
|
19176
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.stepLabel, { color: step.danger ? colors.error : colors.text }], children: step.label }),
|
|
19177
|
+
step.date ? /* @__PURE__ */ jsx54(Text31, { style: [styles41.stepDate, { color: step.danger ? colors.error : colors.textSecondary }], children: step.date }) : null
|
|
18526
19178
|
] })
|
|
18527
19179
|
] }, `${step.label}-${i}`);
|
|
18528
19180
|
}) }),
|
|
18529
|
-
hasDetails ? /* @__PURE__ */
|
|
18530
|
-
description ? /* @__PURE__ */
|
|
18531
|
-
/* @__PURE__ */
|
|
18532
|
-
/* @__PURE__ */
|
|
19181
|
+
hasDetails ? /* @__PURE__ */ jsxs33(View40, { style: [styles41.card, elevation.card, { backgroundColor: colors.surface }], children: [
|
|
19182
|
+
description ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19183
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("descriptionLabel") || "Description" }),
|
|
19184
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.descriptionText, { color: colors.text }], children: description })
|
|
18533
19185
|
] }) : null,
|
|
18534
|
-
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */
|
|
18535
|
-
/* @__PURE__ */
|
|
19186
|
+
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19187
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
|
|
18536
19188
|
details.purposes.map((rawP, idx) => {
|
|
18537
19189
|
const p = (rawP == null ? void 0 : rawP.purpose) ? rawP.purpose : rawP;
|
|
18538
19190
|
const purposeId = (p == null ? void 0 : p.uuid) || (p == null ? void 0 : p.purpose_uuid) || (rawP == null ? void 0 : rawP.purpose_uuid) || idx;
|
|
@@ -18540,10 +19192,10 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18540
19192
|
const purposeDescription = (p == null ? void 0 : p.description) || (rawP == null ? void 0 : rawP.description);
|
|
18541
19193
|
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)) : [];
|
|
18542
19194
|
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 : [];
|
|
18543
|
-
return /* @__PURE__ */
|
|
18544
|
-
/* @__PURE__ */
|
|
18545
|
-
purposeDescription ? /* @__PURE__ */
|
|
18546
|
-
dataElements.length > 0 ? /* @__PURE__ */
|
|
19195
|
+
return /* @__PURE__ */ jsxs33(View40, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: StyleSheet42.hairlineWidth }], children: [
|
|
19196
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.itemTitle, { color: colors.text }], children: purposeName }),
|
|
19197
|
+
purposeDescription ? /* @__PURE__ */ jsx54(Text31, { style: [styles41.itemDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
|
|
19198
|
+
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: [
|
|
18547
19199
|
dataElementUuids.length,
|
|
18548
19200
|
" ",
|
|
18549
19201
|
t("dataElements") || "data elements"
|
|
@@ -18551,44 +19203,44 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18551
19203
|
] }, purposeId);
|
|
18552
19204
|
})
|
|
18553
19205
|
] }) : null,
|
|
18554
|
-
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */
|
|
18555
|
-
/* @__PURE__ */
|
|
18556
|
-
details.correction_data.map((item, idx) => /* @__PURE__ */
|
|
18557
|
-
/* @__PURE__ */
|
|
18558
|
-
/* @__PURE__ */
|
|
18559
|
-
/* @__PURE__ */
|
|
18560
|
-
/* @__PURE__ */
|
|
18561
|
-
/* @__PURE__ */
|
|
19206
|
+
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19207
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction" }),
|
|
19208
|
+
details.correction_data.map((item, idx) => /* @__PURE__ */ jsxs33(View40, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: StyleSheet42.hairlineWidth }], children: [
|
|
19209
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.itemTitle, { color: colors.text }], children: item.name }),
|
|
19210
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValues, children: [
|
|
19211
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValue, children: [
|
|
19212
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
|
|
19213
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionText, { color: colors.text }], children: item.curr_value || "-" })
|
|
18562
19214
|
] }),
|
|
18563
|
-
/* @__PURE__ */
|
|
18564
|
-
/* @__PURE__ */
|
|
18565
|
-
/* @__PURE__ */
|
|
18566
|
-
/* @__PURE__ */
|
|
19215
|
+
/* @__PURE__ */ jsx54(Icon, { name: "chevron-right", size: 16, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
19216
|
+
/* @__PURE__ */ jsxs33(View40, { style: styles41.correctionValue, children: [
|
|
19217
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
|
|
19218
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.correctionText, { color: colors.primary }], children: item.new_value || "-" })
|
|
18567
19219
|
] })
|
|
18568
19220
|
] })
|
|
18569
19221
|
] }, idx))
|
|
18570
19222
|
] }) : null,
|
|
18571
|
-
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */
|
|
18572
|
-
/* @__PURE__ */
|
|
18573
|
-
/* @__PURE__ */
|
|
19223
|
+
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19224
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance" }),
|
|
19225
|
+
/* @__PURE__ */ jsx54(View40, { style: styles41.chipRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ jsx54(PCBadge, { status: "warning", label: (g.grievance || "").replace(/_/g, " ") }, idx)) })
|
|
18574
19226
|
] }) : null,
|
|
18575
|
-
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */
|
|
18576
|
-
/* @__PURE__ */
|
|
18577
|
-
details.nomination_data.nominee_email ? /* @__PURE__ */
|
|
18578
|
-
/* @__PURE__ */
|
|
18579
|
-
/* @__PURE__ */
|
|
19227
|
+
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ jsxs33(View40, { style: styles41.block, children: [
|
|
19228
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
|
|
19229
|
+
details.nomination_data.nominee_email ? /* @__PURE__ */ jsxs33(View40, { style: styles41.kvRow, children: [
|
|
19230
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
|
|
19231
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_email })
|
|
18580
19232
|
] }) : null,
|
|
18581
|
-
details.nomination_data.nominee_mobile ? /* @__PURE__ */
|
|
18582
|
-
/* @__PURE__ */
|
|
18583
|
-
/* @__PURE__ */
|
|
19233
|
+
details.nomination_data.nominee_mobile ? /* @__PURE__ */ jsxs33(View40, { style: styles41.kvRow, children: [
|
|
19234
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
|
|
19235
|
+
/* @__PURE__ */ jsx54(Text31, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
|
|
18584
19236
|
] }) : null
|
|
18585
19237
|
] }) : null
|
|
18586
19238
|
] }) : null,
|
|
18587
|
-
/* @__PURE__ */
|
|
19239
|
+
/* @__PURE__ */ jsx54(View40, { style: { marginTop: "auto" }, children: /* @__PURE__ */ jsx54(Footer, {}) })
|
|
18588
19240
|
] });
|
|
18589
19241
|
}
|
|
18590
19242
|
var DOT = 22;
|
|
18591
|
-
var
|
|
19243
|
+
var styles41 = StyleSheet42.create({
|
|
18592
19244
|
container: {
|
|
18593
19245
|
flex: 1
|
|
18594
19246
|
},
|
|
@@ -18709,21 +19361,21 @@ var styles39 = StyleSheet40.create({
|
|
|
18709
19361
|
});
|
|
18710
19362
|
|
|
18711
19363
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
18712
|
-
import { useState as
|
|
18713
|
-
import { View as
|
|
18714
|
-
import { useTranslation as
|
|
19364
|
+
import { useState as useState23, useRef as useRef10, useEffect as useEffect18, useCallback as useCallback12, useMemo as useMemo19 } from "react";
|
|
19365
|
+
import { View as View46, Text as Text37, FlatList as FlatList2, StyleSheet as StyleSheet48, ActivityIndicator as ActivityIndicator7 } from "react-native";
|
|
19366
|
+
import { useTranslation as useTranslation26 } from "react-i18next";
|
|
18715
19367
|
|
|
18716
19368
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
18717
|
-
import
|
|
18718
|
-
import { useTranslation as
|
|
19369
|
+
import React23 from "react";
|
|
19370
|
+
import { useTranslation as useTranslation24 } from "react-i18next";
|
|
18719
19371
|
|
|
18720
19372
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18721
|
-
import
|
|
18722
|
-
import { StyleSheet as
|
|
19373
|
+
import React22 from "react";
|
|
19374
|
+
import { StyleSheet as StyleSheet44, Text as Text33, View as View42 } from "react-native";
|
|
18723
19375
|
|
|
18724
19376
|
// src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx
|
|
18725
|
-
import { View as
|
|
18726
|
-
import { jsx as
|
|
19377
|
+
import { View as View41, Text as Text32, TouchableOpacity as TouchableOpacity16, Linking, StyleSheet as StyleSheet43 } from "react-native";
|
|
19378
|
+
import { jsx as jsx55, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
18727
19379
|
function AttachmentCard({ doc }) {
|
|
18728
19380
|
const { colors } = useTheme();
|
|
18729
19381
|
const downloadUrl = getDownloadUrl(doc.file_url);
|
|
@@ -18732,28 +19384,28 @@ function AttachmentCard({ doc }) {
|
|
|
18732
19384
|
Linking.openURL(downloadUrl);
|
|
18733
19385
|
}
|
|
18734
19386
|
};
|
|
18735
|
-
return /* @__PURE__ */
|
|
18736
|
-
|
|
19387
|
+
return /* @__PURE__ */ jsxs34(
|
|
19388
|
+
TouchableOpacity16,
|
|
18737
19389
|
{
|
|
18738
|
-
style: [
|
|
19390
|
+
style: [styles42.container, { backgroundColor: colors.surface, borderColor: colors.border }],
|
|
18739
19391
|
onPress: handlePress,
|
|
18740
19392
|
disabled: !downloadUrl,
|
|
18741
19393
|
activeOpacity: 0.7,
|
|
18742
19394
|
children: [
|
|
18743
|
-
/* @__PURE__ */
|
|
18744
|
-
/* @__PURE__ */
|
|
18745
|
-
/* @__PURE__ */
|
|
18746
|
-
doc.file_size ? /* @__PURE__ */
|
|
19395
|
+
/* @__PURE__ */ jsx55(Icon, { name: "file-text", size: 18, color: colors.textSecondary }),
|
|
19396
|
+
/* @__PURE__ */ jsxs34(View41, { style: styles42.info, children: [
|
|
19397
|
+
/* @__PURE__ */ jsx55(Text32, { style: [styles42.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
|
|
19398
|
+
doc.file_size ? /* @__PURE__ */ jsx55(Text32, { style: [styles42.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
|
|
18747
19399
|
] })
|
|
18748
19400
|
]
|
|
18749
19401
|
}
|
|
18750
19402
|
);
|
|
18751
19403
|
}
|
|
18752
|
-
var
|
|
19404
|
+
var styles42 = StyleSheet43.create({
|
|
18753
19405
|
container: {
|
|
18754
19406
|
flexDirection: "row",
|
|
18755
19407
|
alignItems: "center",
|
|
18756
|
-
borderWidth:
|
|
19408
|
+
borderWidth: StyleSheet43.hairlineWidth,
|
|
18757
19409
|
borderRadius: radii.md,
|
|
18758
19410
|
paddingHorizontal: spacing.sm + 2,
|
|
18759
19411
|
paddingVertical: spacing.sm,
|
|
@@ -18773,11 +19425,11 @@ var styles40 = StyleSheet41.create({
|
|
|
18773
19425
|
});
|
|
18774
19426
|
|
|
18775
19427
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18776
|
-
import { jsx as
|
|
19428
|
+
import { jsx as jsx56, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
18777
19429
|
var AVATAR_SIZE = 28;
|
|
18778
19430
|
var AVATAR_GUTTER = 36;
|
|
18779
19431
|
function TeamAvatar({ tint }) {
|
|
18780
|
-
return /* @__PURE__ */
|
|
19432
|
+
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 }) });
|
|
18781
19433
|
}
|
|
18782
19434
|
function ChatBubbleImpl({
|
|
18783
19435
|
message,
|
|
@@ -18804,28 +19456,28 @@ function ChatBubbleImpl({
|
|
|
18804
19456
|
borderBottomRightRadius: BUBBLE_RADIUS,
|
|
18805
19457
|
borderBottomLeftRadius: tailRadius
|
|
18806
19458
|
};
|
|
18807
|
-
const bubble = /* @__PURE__ */
|
|
18808
|
-
!isPrincipal && isFirstInGroup ? /* @__PURE__ */
|
|
18809
|
-
message.body ? /* @__PURE__ */
|
|
18810
|
-
message.documents && message.documents.length > 0 ? /* @__PURE__ */
|
|
19459
|
+
const bubble = /* @__PURE__ */ jsxs35(View42, { style: [styles43.bubble, bubbleStyle], children: [
|
|
19460
|
+
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ jsx56(Text33, { style: [styles43.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
|
|
19461
|
+
message.body ? /* @__PURE__ */ jsx56(Text33, { style: [styles43.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
|
|
19462
|
+
message.documents && message.documents.length > 0 ? /* @__PURE__ */ jsx56(View42, { style: styles43.attachments, children: message.documents.map((doc) => /* @__PURE__ */ jsx56(AttachmentCard, { doc }, doc.uuid)) }) : null
|
|
18811
19463
|
] });
|
|
18812
|
-
return /* @__PURE__ */
|
|
18813
|
-
|
|
19464
|
+
return /* @__PURE__ */ jsxs35(
|
|
19465
|
+
View42,
|
|
18814
19466
|
{
|
|
18815
19467
|
style: [
|
|
18816
|
-
|
|
18817
|
-
isPrincipal ?
|
|
19468
|
+
styles43.row,
|
|
19469
|
+
isPrincipal ? styles43.rowRight : styles43.rowLeft,
|
|
18818
19470
|
{ marginTop: isFirstInGroup ? spacing.md : 2 }
|
|
18819
19471
|
],
|
|
18820
19472
|
children: [
|
|
18821
|
-
!isPrincipal ? /* @__PURE__ */
|
|
18822
|
-
/* @__PURE__ */
|
|
19473
|
+
!isPrincipal ? /* @__PURE__ */ jsx56(View42, { style: styles43.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ jsx56(TeamAvatar, { tint: colors.primary }) : null }) : null,
|
|
19474
|
+
/* @__PURE__ */ jsxs35(View42, { style: [styles43.column, isPrincipal ? styles43.columnRight : styles43.columnLeft], children: [
|
|
18823
19475
|
bubble,
|
|
18824
|
-
isLastInGroup ? /* @__PURE__ */
|
|
18825
|
-
|
|
19476
|
+
isLastInGroup ? /* @__PURE__ */ jsx56(
|
|
19477
|
+
Text33,
|
|
18826
19478
|
{
|
|
18827
19479
|
style: [
|
|
18828
|
-
|
|
19480
|
+
styles43.timestamp,
|
|
18829
19481
|
{ color: colors.textSecondary, textAlign: isPrincipal ? "right" : "left" }
|
|
18830
19482
|
],
|
|
18831
19483
|
children: formatMessageTime(timestamp)
|
|
@@ -18836,8 +19488,8 @@ function ChatBubbleImpl({
|
|
|
18836
19488
|
}
|
|
18837
19489
|
);
|
|
18838
19490
|
}
|
|
18839
|
-
var ChatBubble =
|
|
18840
|
-
var
|
|
19491
|
+
var ChatBubble = React22.memo(ChatBubbleImpl);
|
|
19492
|
+
var styles43 = StyleSheet44.create({
|
|
18841
19493
|
row: {
|
|
18842
19494
|
flexDirection: "row",
|
|
18843
19495
|
paddingHorizontal: spacing.md,
|
|
@@ -18897,9 +19549,9 @@ var styles41 = StyleSheet42.create({
|
|
|
18897
19549
|
});
|
|
18898
19550
|
|
|
18899
19551
|
// src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx
|
|
18900
|
-
import { View as
|
|
18901
|
-
import { useTranslation as
|
|
18902
|
-
import { jsx as
|
|
19552
|
+
import { View as View43, Text as Text34, TouchableOpacity as TouchableOpacity17, StyleSheet as StyleSheet45 } from "react-native";
|
|
19553
|
+
import { useTranslation as useTranslation23 } from "react-i18next";
|
|
19554
|
+
import { jsx as jsx57, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
18903
19555
|
var STATUS_BADGE_MAP = {
|
|
18904
19556
|
pending: "warning",
|
|
18905
19557
|
under_review: "info",
|
|
@@ -18919,20 +19571,20 @@ function humanize(value) {
|
|
|
18919
19571
|
}
|
|
18920
19572
|
function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized = false }) {
|
|
18921
19573
|
var _a3;
|
|
18922
|
-
const { t } =
|
|
19574
|
+
const { t } = useTranslation23();
|
|
18923
19575
|
const { colors } = useTheme();
|
|
18924
19576
|
const meta = message.document_request_metadata;
|
|
18925
19577
|
if (!meta) return null;
|
|
18926
19578
|
const status = meta.document_request_status;
|
|
18927
19579
|
const canUpload = (status === "pending" || status === "replacement_requested") && !isCaseFinalized;
|
|
18928
19580
|
const requestEventUuid = meta.document_request_uuid;
|
|
18929
|
-
return /* @__PURE__ */
|
|
18930
|
-
/* @__PURE__ */
|
|
18931
|
-
/* @__PURE__ */
|
|
18932
|
-
/* @__PURE__ */
|
|
18933
|
-
/* @__PURE__ */
|
|
19581
|
+
return /* @__PURE__ */ jsxs36(View43, { style: [styles44.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
|
|
19582
|
+
/* @__PURE__ */ jsxs36(View43, { style: styles44.header, children: [
|
|
19583
|
+
/* @__PURE__ */ jsxs36(View43, { style: styles44.titleRow, children: [
|
|
19584
|
+
/* @__PURE__ */ jsx57(Icon, { name: "file-check", size: 16, color: colors.primary, strokeWidth: 2 }),
|
|
19585
|
+
/* @__PURE__ */ jsx57(Text34, { style: [styles44.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
|
|
18934
19586
|
] }),
|
|
18935
|
-
/* @__PURE__ */
|
|
19587
|
+
/* @__PURE__ */ jsx57(
|
|
18936
19588
|
PCBadge,
|
|
18937
19589
|
{
|
|
18938
19590
|
status: STATUS_BADGE_MAP[status] || "info",
|
|
@@ -18940,30 +19592,30 @@ function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized
|
|
|
18940
19592
|
}
|
|
18941
19593
|
)
|
|
18942
19594
|
] }),
|
|
18943
|
-
meta.accepted_document ? /* @__PURE__ */
|
|
19595
|
+
meta.accepted_document ? /* @__PURE__ */ jsx57(Text34, { style: [styles44.accepted, { color: colors.textSecondary }], children: t("acceptedLabel", {
|
|
18944
19596
|
accepted: meta.accepted_document,
|
|
18945
19597
|
defaultValue: `Accepted: ${meta.accepted_document}`
|
|
18946
19598
|
}) }) : null,
|
|
18947
|
-
meta.rejection_reason ? /* @__PURE__ */
|
|
18948
|
-
/* @__PURE__ */
|
|
19599
|
+
meta.rejection_reason ? /* @__PURE__ */ jsxs36(View43, { style: [styles44.rejectionBox, { backgroundColor: colors.errorSoft }], children: [
|
|
19600
|
+
/* @__PURE__ */ jsxs36(Text34, { style: [styles44.rejectionLabel, { color: colors.error }], children: [
|
|
18949
19601
|
t("rejectionReasonLabel") || "Rejection reason",
|
|
18950
19602
|
":"
|
|
18951
19603
|
] }),
|
|
18952
|
-
/* @__PURE__ */
|
|
19604
|
+
/* @__PURE__ */ jsx57(Text34, { style: [styles44.rejectionText, { color: colors.error }], children: meta.rejection_reason })
|
|
18953
19605
|
] }) : null,
|
|
18954
|
-
canUpload && requestEventUuid ? /* @__PURE__ */
|
|
18955
|
-
|
|
19606
|
+
canUpload && requestEventUuid ? /* @__PURE__ */ jsx57(
|
|
19607
|
+
TouchableOpacity17,
|
|
18956
19608
|
{
|
|
18957
|
-
style: [
|
|
19609
|
+
style: [styles44.uploadButton, { backgroundColor: colors.primary }],
|
|
18958
19610
|
onPress: () => onUpload(requestEventUuid),
|
|
18959
19611
|
disabled: isSubmitting,
|
|
18960
19612
|
activeOpacity: 0.7,
|
|
18961
|
-
children: /* @__PURE__ */
|
|
19613
|
+
children: /* @__PURE__ */ jsx57(Text34, { style: [styles44.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
|
|
18962
19614
|
}
|
|
18963
19615
|
) : null
|
|
18964
19616
|
] });
|
|
18965
19617
|
}
|
|
18966
|
-
var
|
|
19618
|
+
var styles44 = StyleSheet45.create({
|
|
18967
19619
|
container: {
|
|
18968
19620
|
borderWidth: 1.5,
|
|
18969
19621
|
borderStyle: "dashed",
|
|
@@ -19016,20 +19668,20 @@ var styles42 = StyleSheet43.create({
|
|
|
19016
19668
|
});
|
|
19017
19669
|
|
|
19018
19670
|
// src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx
|
|
19019
|
-
import { StyleSheet as
|
|
19020
|
-
import { jsx as
|
|
19671
|
+
import { StyleSheet as StyleSheet46, Text as Text35, View as View44 } from "react-native";
|
|
19672
|
+
import { jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
19021
19673
|
function StatusEvent({ icon, color, bgColor, borderColor, text, subText, timestamp }) {
|
|
19022
19674
|
const { colors } = useTheme();
|
|
19023
|
-
return /* @__PURE__ */
|
|
19024
|
-
/* @__PURE__ */
|
|
19025
|
-
/* @__PURE__ */
|
|
19026
|
-
/* @__PURE__ */
|
|
19027
|
-
subText ? /* @__PURE__ */
|
|
19675
|
+
return /* @__PURE__ */ jsxs37(View44, { style: [styles45.container, { backgroundColor: bgColor }], children: [
|
|
19676
|
+
/* @__PURE__ */ jsx58(View44, { style: [styles45.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
|
|
19677
|
+
/* @__PURE__ */ jsxs37(View44, { style: styles45.textContainer, children: [
|
|
19678
|
+
/* @__PURE__ */ jsx58(Text35, { style: [styles45.text, { color }], children: text }),
|
|
19679
|
+
subText ? /* @__PURE__ */ jsx58(Text35, { style: [styles45.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
|
|
19028
19680
|
] }),
|
|
19029
|
-
/* @__PURE__ */
|
|
19681
|
+
/* @__PURE__ */ jsx58(Text35, { style: [styles45.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
|
|
19030
19682
|
] });
|
|
19031
19683
|
}
|
|
19032
|
-
var
|
|
19684
|
+
var styles45 = StyleSheet46.create({
|
|
19033
19685
|
container: {
|
|
19034
19686
|
flexDirection: "row",
|
|
19035
19687
|
alignItems: "center",
|
|
@@ -19068,10 +19720,10 @@ var styles43 = StyleSheet44.create({
|
|
|
19068
19720
|
});
|
|
19069
19721
|
|
|
19070
19722
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
19071
|
-
import { Fragment as Fragment12, jsx as
|
|
19072
|
-
var CheckIcon = ({ color }) => /* @__PURE__ */
|
|
19073
|
-
var XIcon = ({ color }) => /* @__PURE__ */
|
|
19074
|
-
var RefreshIcon = ({ color }) => /* @__PURE__ */
|
|
19723
|
+
import { Fragment as Fragment12, jsx as jsx59, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
19724
|
+
var CheckIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "check", size: 14, color, strokeWidth: 2.6 });
|
|
19725
|
+
var XIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "x", size: 14, color, strokeWidth: 2.6 });
|
|
19726
|
+
var RefreshIcon = ({ color }) => /* @__PURE__ */ jsx59(Icon, { name: "refresh-cw", size: 14, color, strokeWidth: 2.2 });
|
|
19075
19727
|
function MessageItemImpl({
|
|
19076
19728
|
message,
|
|
19077
19729
|
onUploadForRequest,
|
|
@@ -19081,14 +19733,14 @@ function MessageItemImpl({
|
|
|
19081
19733
|
isLastInGroup = true
|
|
19082
19734
|
}) {
|
|
19083
19735
|
var _a3, _b;
|
|
19084
|
-
const { t } =
|
|
19736
|
+
const { t } = useTranslation24();
|
|
19085
19737
|
const isPrincipal = message.sender_role === "data_principal";
|
|
19086
19738
|
const senderLabel = isPrincipal ? t("senderYou") || "You" : t("senderPrivacyTeam") || "Privacy Team";
|
|
19087
19739
|
switch (message.message_type) {
|
|
19088
19740
|
case "message_sent":
|
|
19089
19741
|
case "document_submitted":
|
|
19090
19742
|
case "document_replaced":
|
|
19091
|
-
return /* @__PURE__ */
|
|
19743
|
+
return /* @__PURE__ */ jsx59(
|
|
19092
19744
|
ChatBubble,
|
|
19093
19745
|
{
|
|
19094
19746
|
message,
|
|
@@ -19100,8 +19752,8 @@ function MessageItemImpl({
|
|
|
19100
19752
|
}
|
|
19101
19753
|
);
|
|
19102
19754
|
case "document_requested":
|
|
19103
|
-
return /* @__PURE__ */
|
|
19104
|
-
/* @__PURE__ */
|
|
19755
|
+
return /* @__PURE__ */ jsxs38(Fragment12, { children: [
|
|
19756
|
+
/* @__PURE__ */ jsx59(
|
|
19105
19757
|
ChatBubble,
|
|
19106
19758
|
{
|
|
19107
19759
|
message,
|
|
@@ -19112,7 +19764,7 @@ function MessageItemImpl({
|
|
|
19112
19764
|
isLastInGroup
|
|
19113
19765
|
}
|
|
19114
19766
|
),
|
|
19115
|
-
/* @__PURE__ */
|
|
19767
|
+
/* @__PURE__ */ jsx59(
|
|
19116
19768
|
DocumentRequestCard,
|
|
19117
19769
|
{
|
|
19118
19770
|
message,
|
|
@@ -19123,10 +19775,10 @@ function MessageItemImpl({
|
|
|
19123
19775
|
)
|
|
19124
19776
|
] });
|
|
19125
19777
|
case "document_approved":
|
|
19126
|
-
return /* @__PURE__ */
|
|
19778
|
+
return /* @__PURE__ */ jsx59(
|
|
19127
19779
|
StatusEvent,
|
|
19128
19780
|
{
|
|
19129
|
-
icon: /* @__PURE__ */
|
|
19781
|
+
icon: /* @__PURE__ */ jsx59(CheckIcon, { color: "#059669" }),
|
|
19130
19782
|
color: "#059669",
|
|
19131
19783
|
bgColor: "rgba(16, 185, 129, 0.08)",
|
|
19132
19784
|
borderColor: "rgba(16, 185, 129, 0.2)",
|
|
@@ -19135,10 +19787,10 @@ function MessageItemImpl({
|
|
|
19135
19787
|
}
|
|
19136
19788
|
);
|
|
19137
19789
|
case "document_rejected":
|
|
19138
|
-
return /* @__PURE__ */
|
|
19790
|
+
return /* @__PURE__ */ jsx59(
|
|
19139
19791
|
StatusEvent,
|
|
19140
19792
|
{
|
|
19141
|
-
icon: /* @__PURE__ */
|
|
19793
|
+
icon: /* @__PURE__ */ jsx59(XIcon, { color: "#DC2626" }),
|
|
19142
19794
|
color: "#DC2626",
|
|
19143
19795
|
bgColor: "rgba(220, 38, 38, 0.08)",
|
|
19144
19796
|
borderColor: "rgba(220, 38, 38, 0.2)",
|
|
@@ -19148,10 +19800,10 @@ function MessageItemImpl({
|
|
|
19148
19800
|
}
|
|
19149
19801
|
);
|
|
19150
19802
|
case "document_replacement_requested":
|
|
19151
|
-
return /* @__PURE__ */
|
|
19803
|
+
return /* @__PURE__ */ jsx59(
|
|
19152
19804
|
StatusEvent,
|
|
19153
19805
|
{
|
|
19154
|
-
icon: /* @__PURE__ */
|
|
19806
|
+
icon: /* @__PURE__ */ jsx59(RefreshIcon, { color: "#D97706" }),
|
|
19155
19807
|
color: "#D97706",
|
|
19156
19808
|
bgColor: "rgba(245, 158, 11, 0.08)",
|
|
19157
19809
|
borderColor: "rgba(245, 158, 11, 0.2)",
|
|
@@ -19161,7 +19813,7 @@ function MessageItemImpl({
|
|
|
19161
19813
|
}
|
|
19162
19814
|
);
|
|
19163
19815
|
default:
|
|
19164
|
-
return /* @__PURE__ */
|
|
19816
|
+
return /* @__PURE__ */ jsx59(
|
|
19165
19817
|
ChatBubble,
|
|
19166
19818
|
{
|
|
19167
19819
|
message,
|
|
@@ -19174,22 +19826,22 @@ function MessageItemImpl({
|
|
|
19174
19826
|
);
|
|
19175
19827
|
}
|
|
19176
19828
|
}
|
|
19177
|
-
var MessageItem =
|
|
19829
|
+
var MessageItem = React23.memo(MessageItemImpl);
|
|
19178
19830
|
|
|
19179
19831
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx
|
|
19180
|
-
import { useEffect as
|
|
19832
|
+
import { useEffect as useEffect17, useRef as useRef9 } from "react";
|
|
19181
19833
|
import {
|
|
19182
19834
|
ActivityIndicator as ActivityIndicator6,
|
|
19183
19835
|
Animated as Animated12,
|
|
19184
19836
|
Easing as Easing3,
|
|
19185
|
-
StyleSheet as
|
|
19186
|
-
Text as
|
|
19837
|
+
StyleSheet as StyleSheet47,
|
|
19838
|
+
Text as Text36,
|
|
19187
19839
|
TextInput as TextInput3,
|
|
19188
|
-
TouchableOpacity as
|
|
19189
|
-
View as
|
|
19840
|
+
TouchableOpacity as TouchableOpacity18,
|
|
19841
|
+
View as View45
|
|
19190
19842
|
} from "react-native";
|
|
19191
|
-
import { useTranslation as
|
|
19192
|
-
import { jsx as
|
|
19843
|
+
import { useTranslation as useTranslation25 } from "react-i18next";
|
|
19844
|
+
import { jsx as jsx60, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
19193
19845
|
function MessageComposer({
|
|
19194
19846
|
messageText,
|
|
19195
19847
|
onMessageTextChange,
|
|
@@ -19201,11 +19853,11 @@ function MessageComposer({
|
|
|
19201
19853
|
isUploading,
|
|
19202
19854
|
isCaseFinalized = false
|
|
19203
19855
|
}) {
|
|
19204
|
-
const { t } =
|
|
19856
|
+
const { t } = useTranslation25();
|
|
19205
19857
|
const { colors } = useTheme();
|
|
19206
19858
|
const canSend = (messageText.trim().length > 0 || pendingUpload) && !isSending && !isUploading && !isCaseFinalized;
|
|
19207
19859
|
const activate = useRef9(new Animated12.Value(canSend ? 1 : 0)).current;
|
|
19208
|
-
|
|
19860
|
+
useEffect17(() => {
|
|
19209
19861
|
Animated12.timing(activate, {
|
|
19210
19862
|
toValue: canSend ? 1 : 0,
|
|
19211
19863
|
duration: 180,
|
|
@@ -19225,7 +19877,7 @@ function MessageComposer({
|
|
|
19225
19877
|
Animated12.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
|
|
19226
19878
|
};
|
|
19227
19879
|
const pillIn = useRef9(new Animated12.Value(0)).current;
|
|
19228
|
-
|
|
19880
|
+
useEffect17(() => {
|
|
19229
19881
|
Animated12.timing(pillIn, {
|
|
19230
19882
|
toValue: pendingUpload ? 1 : 0,
|
|
19231
19883
|
duration: 220,
|
|
@@ -19235,12 +19887,12 @@ function MessageComposer({
|
|
|
19235
19887
|
}, [pendingUpload, pillIn]);
|
|
19236
19888
|
const pillOpacity = pillIn;
|
|
19237
19889
|
const pillTranslateY = pillIn.interpolate({ inputRange: [0, 1], outputRange: [8, 0] });
|
|
19238
|
-
return /* @__PURE__ */
|
|
19239
|
-
pendingUpload && /* @__PURE__ */
|
|
19890
|
+
return /* @__PURE__ */ jsxs39(View45, { style: [styles46.container, { borderTopColor: colors.hairline, backgroundColor: colors.canvasSubtle, paddingBottom: spacing.sm }], children: [
|
|
19891
|
+
pendingUpload && /* @__PURE__ */ jsxs39(
|
|
19240
19892
|
Animated12.View,
|
|
19241
19893
|
{
|
|
19242
19894
|
style: [
|
|
19243
|
-
|
|
19895
|
+
styles46.uploadPill,
|
|
19244
19896
|
{
|
|
19245
19897
|
backgroundColor: colors.primarySoft,
|
|
19246
19898
|
opacity: pillOpacity,
|
|
@@ -19248,34 +19900,34 @@ function MessageComposer({
|
|
|
19248
19900
|
}
|
|
19249
19901
|
],
|
|
19250
19902
|
children: [
|
|
19251
|
-
/* @__PURE__ */
|
|
19252
|
-
/* @__PURE__ */
|
|
19903
|
+
/* @__PURE__ */ jsx60(Icon, { name: "file", size: 14, color: colors.primary }),
|
|
19904
|
+
/* @__PURE__ */ jsxs39(Text36, { style: [styles46.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
|
|
19253
19905
|
pendingUpload.file_name,
|
|
19254
19906
|
" (",
|
|
19255
19907
|
formatFileSize(pendingUpload.file_size),
|
|
19256
19908
|
")"
|
|
19257
19909
|
] }),
|
|
19258
|
-
/* @__PURE__ */
|
|
19910
|
+
/* @__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 }) })
|
|
19259
19911
|
]
|
|
19260
19912
|
}
|
|
19261
19913
|
),
|
|
19262
|
-
/* @__PURE__ */
|
|
19263
|
-
/* @__PURE__ */
|
|
19264
|
-
|
|
19914
|
+
/* @__PURE__ */ jsxs39(View45, { style: [styles46.pill, { backgroundColor: colors.surface, borderColor: colors.border }, isCaseFinalized && styles46.pillDisabled], children: [
|
|
19915
|
+
/* @__PURE__ */ jsx60(
|
|
19916
|
+
TouchableOpacity18,
|
|
19265
19917
|
{
|
|
19266
|
-
style:
|
|
19918
|
+
style: styles46.attachButton,
|
|
19267
19919
|
onPress: onAttachClick,
|
|
19268
19920
|
disabled: isUploading || isCaseFinalized,
|
|
19269
19921
|
activeOpacity: 0.6,
|
|
19270
19922
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
19271
19923
|
accessibilityLabel: t("uploadFile") || "Attach file",
|
|
19272
|
-
children: isUploading ? /* @__PURE__ */
|
|
19924
|
+
children: isUploading ? /* @__PURE__ */ jsx60(ActivityIndicator6, { size: "small", color: colors.primary }) : /* @__PURE__ */ jsx60(Icon, { name: "paperclip", size: 20, color: colors.textSecondary })
|
|
19273
19925
|
}
|
|
19274
19926
|
),
|
|
19275
|
-
/* @__PURE__ */
|
|
19927
|
+
/* @__PURE__ */ jsx60(
|
|
19276
19928
|
TextInput3,
|
|
19277
19929
|
{
|
|
19278
|
-
style: [
|
|
19930
|
+
style: [styles46.input, { color: colors.text }],
|
|
19279
19931
|
value: messageText,
|
|
19280
19932
|
onChangeText: onMessageTextChange,
|
|
19281
19933
|
placeholder: t("messageInputPlaceholder", { defaultValue: "Message\u2026" }),
|
|
@@ -19285,8 +19937,8 @@ function MessageComposer({
|
|
|
19285
19937
|
editable: !isSending && !isCaseFinalized
|
|
19286
19938
|
}
|
|
19287
19939
|
),
|
|
19288
|
-
/* @__PURE__ */
|
|
19289
|
-
|
|
19940
|
+
/* @__PURE__ */ jsx60(Animated12.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ jsx60(
|
|
19941
|
+
TouchableOpacity18,
|
|
19290
19942
|
{
|
|
19291
19943
|
onPress: onSend,
|
|
19292
19944
|
onPressIn: handlePressIn,
|
|
@@ -19294,15 +19946,15 @@ function MessageComposer({
|
|
|
19294
19946
|
disabled: !canSend,
|
|
19295
19947
|
activeOpacity: 0.85,
|
|
19296
19948
|
accessibilityLabel: t("send") || "Send",
|
|
19297
|
-
children: /* @__PURE__ */
|
|
19949
|
+
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 }) }) })
|
|
19298
19950
|
}
|
|
19299
19951
|
) })
|
|
19300
19952
|
] })
|
|
19301
19953
|
] });
|
|
19302
19954
|
}
|
|
19303
|
-
var
|
|
19955
|
+
var styles46 = StyleSheet47.create({
|
|
19304
19956
|
container: {
|
|
19305
|
-
borderTopWidth:
|
|
19957
|
+
borderTopWidth: StyleSheet47.hairlineWidth,
|
|
19306
19958
|
paddingHorizontal: spacing.md,
|
|
19307
19959
|
paddingVertical: spacing.sm
|
|
19308
19960
|
},
|
|
@@ -19325,7 +19977,7 @@ var styles44 = StyleSheet45.create({
|
|
|
19325
19977
|
pill: {
|
|
19326
19978
|
flexDirection: "row",
|
|
19327
19979
|
alignItems: "center",
|
|
19328
|
-
borderWidth:
|
|
19980
|
+
borderWidth: StyleSheet47.hairlineWidth,
|
|
19329
19981
|
borderRadius: radii.xxl + 4,
|
|
19330
19982
|
paddingHorizontal: spacing.xs + 2,
|
|
19331
19983
|
paddingVertical: spacing.xs,
|
|
@@ -19364,7 +20016,7 @@ var styles44 = StyleSheet45.create({
|
|
|
19364
20016
|
});
|
|
19365
20017
|
|
|
19366
20018
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
19367
|
-
import { Fragment as Fragment13, jsx as
|
|
20019
|
+
import { Fragment as Fragment13, jsx as jsx61, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
19368
20020
|
var STREAK_GAP_MS = 5 * 60 * 1e3;
|
|
19369
20021
|
function isStreakBoundary(a, b) {
|
|
19370
20022
|
if (!a || !b) return true;
|
|
@@ -19394,7 +20046,7 @@ function sameDay(a, b) {
|
|
|
19394
20046
|
}
|
|
19395
20047
|
var MESSAGE_POLL_INTERVAL = 3e4;
|
|
19396
20048
|
function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
19397
|
-
const { t } =
|
|
20049
|
+
const { t } = useTranslation26();
|
|
19398
20050
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19399
20051
|
const { consentClient } = useBaseUrl();
|
|
19400
20052
|
const { colors } = useTheme();
|
|
@@ -19410,13 +20062,13 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19410
20062
|
caseUuid,
|
|
19411
20063
|
authContext
|
|
19412
20064
|
);
|
|
19413
|
-
const [messageText, setMessageText] =
|
|
19414
|
-
const [pendingUpload, setPendingUpload] =
|
|
19415
|
-
const [isSending, setIsSending] =
|
|
19416
|
-
const [isUploading, setIsUploading] =
|
|
19417
|
-
const [isSubmittingForRequest, setIsSubmittingForRequest] =
|
|
20065
|
+
const [messageText, setMessageText] = useState23("");
|
|
20066
|
+
const [pendingUpload, setPendingUpload] = useState23(null);
|
|
20067
|
+
const [isSending, setIsSending] = useState23(false);
|
|
20068
|
+
const [isUploading, setIsUploading] = useState23(false);
|
|
20069
|
+
const [isSubmittingForRequest, setIsSubmittingForRequest] = useState23(false);
|
|
19418
20070
|
const flatListRef = useRef10(null);
|
|
19419
|
-
|
|
20071
|
+
useEffect18(() => {
|
|
19420
20072
|
if (messages && messages.length > 0) {
|
|
19421
20073
|
setTimeout(() => {
|
|
19422
20074
|
var _a3;
|
|
@@ -19426,14 +20078,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19426
20078
|
}, [messages == null ? void 0 : messages.length]);
|
|
19427
20079
|
const refetchRef = useRef10(refetch);
|
|
19428
20080
|
refetchRef.current = refetch;
|
|
19429
|
-
|
|
20081
|
+
const authContextRef = useRef10(authContext);
|
|
20082
|
+
authContextRef.current = authContext;
|
|
20083
|
+
useEffect18(() => {
|
|
19430
20084
|
if (isCaseFinalized) return;
|
|
19431
20085
|
const id = setInterval(() => {
|
|
20086
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
19432
20087
|
refetchRef.current();
|
|
19433
20088
|
}, MESSAGE_POLL_INTERVAL);
|
|
19434
20089
|
return () => clearInterval(id);
|
|
19435
20090
|
}, [isCaseFinalized]);
|
|
19436
|
-
const handleSend =
|
|
20091
|
+
const handleSend = useCallback12(async () => {
|
|
19437
20092
|
if (isCaseFinalized) return;
|
|
19438
20093
|
if (!messageText.trim() && !pendingUpload) return;
|
|
19439
20094
|
if (!organizationId || !workspaceId) return;
|
|
@@ -19458,7 +20113,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19458
20113
|
setIsSending(false);
|
|
19459
20114
|
}
|
|
19460
20115
|
}, [isCaseFinalized, messageText, pendingUpload, organizationId, workspaceId, caseUuid, authContext, consentClient, refetch]);
|
|
19461
|
-
const handleAttach =
|
|
20116
|
+
const handleAttach = useCallback12(async () => {
|
|
19462
20117
|
if (isCaseFinalized) return;
|
|
19463
20118
|
if (!organizationId || !workspaceId) return;
|
|
19464
20119
|
try {
|
|
@@ -19493,7 +20148,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19493
20148
|
setIsUploading(false);
|
|
19494
20149
|
}
|
|
19495
20150
|
}, [isCaseFinalized, organizationId, workspaceId, caseUuid, authContext, consentClient]);
|
|
19496
|
-
const handleUploadForRequest =
|
|
20151
|
+
const handleUploadForRequest = useCallback12((_requestEventUuid) => {
|
|
19497
20152
|
handleAttach();
|
|
19498
20153
|
}, [handleAttach]);
|
|
19499
20154
|
const messagesList = useMemo19(() => {
|
|
@@ -19505,17 +20160,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19505
20160
|
});
|
|
19506
20161
|
return list;
|
|
19507
20162
|
}, [messages]);
|
|
19508
|
-
const keyExtractor =
|
|
19509
|
-
const renderMessage =
|
|
20163
|
+
const keyExtractor = useCallback12((item) => item.uuid, []);
|
|
20164
|
+
const renderMessage = useCallback12(
|
|
19510
20165
|
({ item, index }) => {
|
|
19511
20166
|
const prev = index > 0 ? messagesList[index - 1] : void 0;
|
|
19512
20167
|
const next = index < messagesList.length - 1 ? messagesList[index + 1] : void 0;
|
|
19513
20168
|
const isFirstInGroup = isStreakBoundary(prev, item);
|
|
19514
20169
|
const isLastInGroup = isStreakBoundary(item, next);
|
|
19515
20170
|
const dateSeparator = getDateSeparator(prev == null ? void 0 : prev.created_at, item.created_at, t);
|
|
19516
|
-
return /* @__PURE__ */
|
|
19517
|
-
dateSeparator ? /* @__PURE__ */
|
|
19518
|
-
/* @__PURE__ */
|
|
20171
|
+
return /* @__PURE__ */ jsxs40(Fragment13, { children: [
|
|
20172
|
+
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,
|
|
20173
|
+
/* @__PURE__ */ jsx61(
|
|
19519
20174
|
MessageItem,
|
|
19520
20175
|
{
|
|
19521
20176
|
message: item,
|
|
@@ -19531,32 +20186,32 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19531
20186
|
[messagesList, handleUploadForRequest, isSubmittingForRequest, isCaseFinalized, colors, t]
|
|
19532
20187
|
);
|
|
19533
20188
|
if (isLoading) {
|
|
19534
|
-
return /* @__PURE__ */
|
|
20189
|
+
return /* @__PURE__ */ jsx61(View46, { style: styles47.centered, children: /* @__PURE__ */ jsx61(ActivityIndicator7, { size: "large", color: colors.primary }) });
|
|
19535
20190
|
}
|
|
19536
20191
|
if (error) {
|
|
19537
|
-
return /* @__PURE__ */
|
|
20192
|
+
return /* @__PURE__ */ jsx61(View46, { style: styles47.centered, children: /* @__PURE__ */ jsx61(Text37, { style: [styles47.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
|
|
19538
20193
|
}
|
|
19539
|
-
return /* @__PURE__ */
|
|
19540
|
-
/* @__PURE__ */
|
|
19541
|
-
/* @__PURE__ */
|
|
19542
|
-
/* @__PURE__ */
|
|
20194
|
+
return /* @__PURE__ */ jsxs40(View46, { style: [styles47.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
20195
|
+
/* @__PURE__ */ jsxs40(View46, { style: styles47.secureRow, children: [
|
|
20196
|
+
/* @__PURE__ */ jsx61(Icon, { name: "lock", size: 12, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
20197
|
+
/* @__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"}` })
|
|
19543
20198
|
] }),
|
|
19544
|
-
/* @__PURE__ */
|
|
20199
|
+
/* @__PURE__ */ jsx61(
|
|
19545
20200
|
FlatList2,
|
|
19546
20201
|
{
|
|
19547
20202
|
ref: flatListRef,
|
|
19548
|
-
style:
|
|
20203
|
+
style: styles47.list,
|
|
19549
20204
|
data: messagesList,
|
|
19550
20205
|
keyExtractor,
|
|
19551
20206
|
renderItem: renderMessage,
|
|
19552
20207
|
contentContainerStyle: [
|
|
19553
|
-
|
|
19554
|
-
messagesList.length ?
|
|
20208
|
+
styles47.messagesList,
|
|
20209
|
+
messagesList.length ? styles47.messagesListFill : styles47.messagesListCenter
|
|
19555
20210
|
],
|
|
19556
|
-
ListEmptyComponent: /* @__PURE__ */
|
|
19557
|
-
/* @__PURE__ */
|
|
19558
|
-
/* @__PURE__ */
|
|
19559
|
-
/* @__PURE__ */
|
|
20211
|
+
ListEmptyComponent: /* @__PURE__ */ jsxs40(View46, { style: styles47.emptyContainer, children: [
|
|
20212
|
+
/* @__PURE__ */ jsx61(View46, { style: [styles47.emptyIconWrap, { backgroundColor: colors.primarySoft }], children: /* @__PURE__ */ jsx61(Icon, { name: "messages-square", size: 28, color: colors.primary, strokeWidth: 2 }) }),
|
|
20213
|
+
/* @__PURE__ */ jsx61(Text37, { style: [styles47.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
|
|
20214
|
+
/* @__PURE__ */ jsx61(Text37, { style: [styles47.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
|
|
19560
20215
|
] }),
|
|
19561
20216
|
onContentSizeChange: () => {
|
|
19562
20217
|
var _a3;
|
|
@@ -19568,7 +20223,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19568
20223
|
removeClippedSubviews: true
|
|
19569
20224
|
}
|
|
19570
20225
|
),
|
|
19571
|
-
/* @__PURE__ */
|
|
20226
|
+
/* @__PURE__ */ jsx61(
|
|
19572
20227
|
MessageComposer,
|
|
19573
20228
|
{
|
|
19574
20229
|
messageText,
|
|
@@ -19584,7 +20239,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19584
20239
|
)
|
|
19585
20240
|
] });
|
|
19586
20241
|
}
|
|
19587
|
-
var
|
|
20242
|
+
var styles47 = StyleSheet48.create({
|
|
19588
20243
|
container: {
|
|
19589
20244
|
flex: 1
|
|
19590
20245
|
},
|
|
@@ -19667,16 +20322,16 @@ var styles45 = StyleSheet46.create({
|
|
|
19667
20322
|
});
|
|
19668
20323
|
|
|
19669
20324
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
19670
|
-
import { jsx as
|
|
20325
|
+
import { jsx as jsx62, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
19671
20326
|
function CaseDetailsPage() {
|
|
19672
20327
|
var _a3, _b;
|
|
19673
|
-
const { t } =
|
|
20328
|
+
const { t } = useTranslation27();
|
|
19674
20329
|
const { navigateTo, selectedCase, setSelectedCase, pendingCaseUuid } = useInternalNavigation();
|
|
19675
20330
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19676
20331
|
const { colors } = useTheme();
|
|
19677
20332
|
const { keyboardOffset } = usePrivacyCenterInsets();
|
|
19678
20333
|
const requestTypeLabels = useRequestTypeLabels();
|
|
19679
|
-
const [activeTab, setActiveTab] =
|
|
20334
|
+
const [activeTab, setActiveTab] = useState24("request-details");
|
|
19680
20335
|
const authContext = useMemo20(() => ({
|
|
19681
20336
|
accessToken,
|
|
19682
20337
|
refreshToken,
|
|
@@ -19690,7 +20345,7 @@ function CaseDetailsPage() {
|
|
|
19690
20345
|
email != null ? email : void 0,
|
|
19691
20346
|
authContext
|
|
19692
20347
|
);
|
|
19693
|
-
|
|
20348
|
+
useEffect19(() => {
|
|
19694
20349
|
if (!cases) return;
|
|
19695
20350
|
if (cases.length === 0) {
|
|
19696
20351
|
navigateTo("form");
|
|
@@ -19704,33 +20359,33 @@ function CaseDetailsPage() {
|
|
|
19704
20359
|
navigateTo("form");
|
|
19705
20360
|
}
|
|
19706
20361
|
}, [cases, targetUuid, setSelectedCase, navigateTo]);
|
|
19707
|
-
|
|
20362
|
+
useEffect19(() => {
|
|
19708
20363
|
if (!selectedCase && !targetUuid && !isLoading) {
|
|
19709
20364
|
navigateTo("form");
|
|
19710
20365
|
}
|
|
19711
20366
|
}, [selectedCase, targetUuid, isLoading, navigateTo]);
|
|
19712
20367
|
if (!selectedCase) {
|
|
19713
|
-
return /* @__PURE__ */
|
|
20368
|
+
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" }) });
|
|
19714
20369
|
}
|
|
19715
20370
|
const requestTypeLabel = requestTypeLabels[(_b = selectedCase.request_type) == null ? void 0 : _b.toUpperCase()] || selectedCase.request_type_display || formatCaseStatus(selectedCase.request_type || "");
|
|
19716
20371
|
const tabs = [
|
|
19717
20372
|
{ id: "request-details", label: t("requestDetails") || "Request Details" },
|
|
19718
20373
|
{ id: "messages", label: t("messages") || "Messages" }
|
|
19719
20374
|
];
|
|
19720
|
-
return /* @__PURE__ */
|
|
20375
|
+
return /* @__PURE__ */ jsxs41(
|
|
19721
20376
|
KeyboardAvoidingViewCompat,
|
|
19722
20377
|
{
|
|
19723
|
-
style: [
|
|
20378
|
+
style: [styles48.container, { backgroundColor: colors.canvasSubtle }],
|
|
19724
20379
|
behavior: "padding",
|
|
19725
20380
|
keyboardVerticalOffset: Platform7.OS === "ios" ? keyboardOffset : 0,
|
|
19726
20381
|
children: [
|
|
19727
|
-
/* @__PURE__ */
|
|
19728
|
-
/* @__PURE__ */
|
|
19729
|
-
/* @__PURE__ */
|
|
19730
|
-
/* @__PURE__ */
|
|
19731
|
-
/* @__PURE__ */
|
|
19732
|
-
/* @__PURE__ */
|
|
19733
|
-
/* @__PURE__ */
|
|
20382
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.headerWrap, children: [
|
|
20383
|
+
/* @__PURE__ */ jsx62(View47, { style: [styles48.heroCard, elevation.card, { backgroundColor: colors.surface }], children: /* @__PURE__ */ jsxs41(View47, { style: styles48.heroInner, children: [
|
|
20384
|
+
/* @__PURE__ */ jsx62(View47, { style: [styles48.accent, { backgroundColor: getCaseStatusColor(selectedCase.status, colors) }] }),
|
|
20385
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.heroBody, children: [
|
|
20386
|
+
/* @__PURE__ */ jsxs41(View47, { style: styles48.heroTopRow, children: [
|
|
20387
|
+
/* @__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 }) }),
|
|
20388
|
+
/* @__PURE__ */ jsx62(
|
|
19734
20389
|
PCBadge,
|
|
19735
20390
|
{
|
|
19736
20391
|
status: getCaseStatusVariant(selectedCase.status),
|
|
@@ -19739,10 +20394,10 @@ function CaseDetailsPage() {
|
|
|
19739
20394
|
}
|
|
19740
20395
|
)
|
|
19741
20396
|
] }),
|
|
19742
|
-
/* @__PURE__ */
|
|
20397
|
+
/* @__PURE__ */ jsx62(Text38, { style: [styles48.caseId, { color: colors.text }], numberOfLines: 1, children: selectedCase.case_id })
|
|
19743
20398
|
] })
|
|
19744
20399
|
] }) }),
|
|
19745
|
-
/* @__PURE__ */
|
|
20400
|
+
/* @__PURE__ */ jsx62(
|
|
19746
20401
|
Segmented,
|
|
19747
20402
|
{
|
|
19748
20403
|
options: tabs.map((tab) => ({ value: tab.id, label: tab.label })),
|
|
@@ -19751,18 +20406,18 @@ function CaseDetailsPage() {
|
|
|
19751
20406
|
}
|
|
19752
20407
|
)
|
|
19753
20408
|
] }),
|
|
19754
|
-
/* @__PURE__ */
|
|
20409
|
+
/* @__PURE__ */ jsx62(View47, { style: styles48.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ jsx62(
|
|
19755
20410
|
RequestDetailsTab,
|
|
19756
20411
|
{
|
|
19757
20412
|
selectedCase,
|
|
19758
20413
|
requestTypeLabel
|
|
19759
20414
|
}
|
|
19760
|
-
) : /* @__PURE__ */
|
|
20415
|
+
) : /* @__PURE__ */ jsx62(MessagesTab, { caseUuid: selectedCase.uuid, isCaseFinalized: isTerminalCaseStatus(selectedCase.status) }) })
|
|
19761
20416
|
]
|
|
19762
20417
|
}
|
|
19763
20418
|
);
|
|
19764
20419
|
}
|
|
19765
|
-
var
|
|
20420
|
+
var styles48 = StyleSheet49.create({
|
|
19766
20421
|
container: {
|
|
19767
20422
|
flex: 1
|
|
19768
20423
|
},
|
|
@@ -19827,36 +20482,36 @@ var styles46 = StyleSheet47.create({
|
|
|
19827
20482
|
});
|
|
19828
20483
|
|
|
19829
20484
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
19830
|
-
import { useCallback as
|
|
19831
|
-
import { FlatList as FlatList3, RefreshControl as RefreshControl5, StyleSheet as
|
|
19832
|
-
import { useTranslation as
|
|
20485
|
+
import { useCallback as useCallback14, useEffect as useEffect20, useMemo as useMemo23, useRef as useRef12, useState as useState25 } from "react";
|
|
20486
|
+
import { FlatList as FlatList3, RefreshControl as RefreshControl5, StyleSheet as StyleSheet54, Text as Text42, TouchableOpacity as TouchableOpacity22, View as View51 } from "react-native";
|
|
20487
|
+
import { useTranslation as useTranslation29 } from "react-i18next";
|
|
19833
20488
|
|
|
19834
20489
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
19835
|
-
import { StyleSheet as
|
|
19836
|
-
import { useTranslation as
|
|
20490
|
+
import { StyleSheet as StyleSheet53, Text as Text41, TouchableOpacity as TouchableOpacity21, View as View50 } from "react-native";
|
|
20491
|
+
import { useTranslation as useTranslation28 } from "react-i18next";
|
|
19837
20492
|
|
|
19838
20493
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx
|
|
19839
|
-
import { StyleSheet as
|
|
19840
|
-
import { jsx as
|
|
20494
|
+
import { StyleSheet as StyleSheet50, Text as Text39, TouchableOpacity as TouchableOpacity19 } from "react-native";
|
|
20495
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
19841
20496
|
var NotificationCTAButton = ({ cta, onPress }) => {
|
|
19842
20497
|
const { colors } = useTheme();
|
|
19843
20498
|
const tone = cta.style === "danger" ? colors.error : colors.primary;
|
|
19844
20499
|
const isPrimary = cta.style === "primary" || cta.style === "danger";
|
|
19845
|
-
return /* @__PURE__ */
|
|
19846
|
-
|
|
20500
|
+
return /* @__PURE__ */ jsx63(
|
|
20501
|
+
TouchableOpacity19,
|
|
19847
20502
|
{
|
|
19848
20503
|
onPress,
|
|
19849
20504
|
activeOpacity: 0.7,
|
|
19850
20505
|
style: [
|
|
19851
|
-
|
|
20506
|
+
styles49.button,
|
|
19852
20507
|
isPrimary ? { backgroundColor: tone } : { backgroundColor: colors.primarySoft }
|
|
19853
20508
|
],
|
|
19854
20509
|
accessibilityRole: "button",
|
|
19855
|
-
children: /* @__PURE__ */
|
|
20510
|
+
children: /* @__PURE__ */ jsx63(Text39, { style: [styles49.label, { color: isPrimary ? colors.primaryText : colors.primary }], numberOfLines: 1, children: cta.label })
|
|
19856
20511
|
}
|
|
19857
20512
|
);
|
|
19858
20513
|
};
|
|
19859
|
-
var
|
|
20514
|
+
var styles49 = StyleSheet50.create({
|
|
19860
20515
|
button: {
|
|
19861
20516
|
paddingHorizontal: spacing.lg,
|
|
19862
20517
|
paddingVertical: spacing.sm,
|
|
@@ -19871,8 +20526,8 @@ var styles47 = StyleSheet48.create({
|
|
|
19871
20526
|
});
|
|
19872
20527
|
|
|
19873
20528
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx
|
|
19874
|
-
import { StyleSheet as
|
|
19875
|
-
import { jsx as
|
|
20529
|
+
import { StyleSheet as StyleSheet51, View as View48 } from "react-native";
|
|
20530
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
19876
20531
|
var CATEGORY_ICON = {
|
|
19877
20532
|
guardian: "user-round",
|
|
19878
20533
|
consent: "clock",
|
|
@@ -19885,18 +20540,18 @@ var NotificationIcon = ({ notificationType, size = 40 }) => {
|
|
|
19885
20540
|
var _a3;
|
|
19886
20541
|
const category = (_a3 = TYPE_TO_ICON_CATEGORY[notificationType]) != null ? _a3 : "system";
|
|
19887
20542
|
const color = ICON_COLORS[category];
|
|
19888
|
-
return /* @__PURE__ */
|
|
19889
|
-
|
|
20543
|
+
return /* @__PURE__ */ jsx64(
|
|
20544
|
+
View48,
|
|
19890
20545
|
{
|
|
19891
20546
|
style: [
|
|
19892
|
-
|
|
20547
|
+
styles50.wrap,
|
|
19893
20548
|
{ width: size, height: size, borderRadius: radii.md, backgroundColor: withAlpha(color, 0.13) }
|
|
19894
20549
|
],
|
|
19895
|
-
children: /* @__PURE__ */
|
|
20550
|
+
children: /* @__PURE__ */ jsx64(Icon, { name: CATEGORY_ICON[category], size: Math.round(size * 0.5), color, strokeWidth: 2 })
|
|
19896
20551
|
}
|
|
19897
20552
|
);
|
|
19898
20553
|
};
|
|
19899
|
-
var
|
|
20554
|
+
var styles50 = StyleSheet51.create({
|
|
19900
20555
|
wrap: {
|
|
19901
20556
|
alignItems: "center",
|
|
19902
20557
|
justifyContent: "center"
|
|
@@ -19905,8 +20560,8 @@ var styles48 = StyleSheet49.create({
|
|
|
19905
20560
|
|
|
19906
20561
|
// src/RedactoPrivacyCenter/components/NotificationHub/SwipeableRow.tsx
|
|
19907
20562
|
import { useMemo as useMemo21, useRef as useRef11 } from "react";
|
|
19908
|
-
import { Animated as Animated13, PanResponder as PanResponder2, StyleSheet as
|
|
19909
|
-
import { Fragment as Fragment14, jsx as
|
|
20563
|
+
import { Animated as Animated13, PanResponder as PanResponder2, StyleSheet as StyleSheet52, Text as Text40, TouchableOpacity as TouchableOpacity20, View as View49 } from "react-native";
|
|
20564
|
+
import { Fragment as Fragment14, jsx as jsx65, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
19910
20565
|
var ACTION_WIDTH = 80;
|
|
19911
20566
|
var CLAIM_THRESHOLD = 8;
|
|
19912
20567
|
var SwipeableRow = ({ actions, background, children }) => {
|
|
@@ -19945,37 +20600,37 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
19945
20600
|
[maxOpen]
|
|
19946
20601
|
);
|
|
19947
20602
|
if (actions.length === 0) {
|
|
19948
|
-
return /* @__PURE__ */
|
|
20603
|
+
return /* @__PURE__ */ jsx65(Fragment14, { children });
|
|
19949
20604
|
}
|
|
19950
20605
|
const runAction = (action) => {
|
|
19951
20606
|
settle(0);
|
|
19952
20607
|
action.onPress();
|
|
19953
20608
|
};
|
|
19954
|
-
return /* @__PURE__ */
|
|
19955
|
-
/* @__PURE__ */
|
|
19956
|
-
|
|
20609
|
+
return /* @__PURE__ */ jsxs42(View49, { style: styles51.root, children: [
|
|
20610
|
+
/* @__PURE__ */ jsx65(View49, { style: styles51.actionsLayer, pointerEvents: "box-none", children: actions.map((action) => /* @__PURE__ */ jsxs42(
|
|
20611
|
+
TouchableOpacity20,
|
|
19957
20612
|
{
|
|
19958
|
-
style: [
|
|
20613
|
+
style: [styles51.action, { width: ACTION_WIDTH, backgroundColor: toneColor2[action.tone] }],
|
|
19959
20614
|
onPress: () => runAction(action),
|
|
19960
20615
|
activeOpacity: 0.85,
|
|
19961
20616
|
accessibilityRole: "button",
|
|
19962
20617
|
accessibilityLabel: action.label,
|
|
19963
20618
|
children: [
|
|
19964
|
-
/* @__PURE__ */
|
|
19965
|
-
/* @__PURE__ */
|
|
20619
|
+
/* @__PURE__ */ jsx65(Icon, { name: action.icon, size: 20, color: colors.primaryText, strokeWidth: 2.2 }),
|
|
20620
|
+
/* @__PURE__ */ jsx65(Text40, { style: [styles51.actionLabel, { color: colors.primaryText }], numberOfLines: 1, children: action.label })
|
|
19966
20621
|
]
|
|
19967
20622
|
},
|
|
19968
20623
|
action.key
|
|
19969
20624
|
)) }),
|
|
19970
|
-
/* @__PURE__ */
|
|
20625
|
+
/* @__PURE__ */ jsx65(Animated13.View, { style: [{ backgroundColor: background, transform: [{ translateX }] }], ...panResponder.panHandlers, children })
|
|
19971
20626
|
] });
|
|
19972
20627
|
};
|
|
19973
|
-
var
|
|
20628
|
+
var styles51 = StyleSheet52.create({
|
|
19974
20629
|
root: {
|
|
19975
20630
|
position: "relative"
|
|
19976
20631
|
},
|
|
19977
20632
|
actionsLayer: {
|
|
19978
|
-
...
|
|
20633
|
+
...StyleSheet52.absoluteFillObject,
|
|
19979
20634
|
flexDirection: "row",
|
|
19980
20635
|
justifyContent: "flex-end"
|
|
19981
20636
|
},
|
|
@@ -20008,10 +20663,10 @@ var formatTimeAgo = (dateString, t) => {
|
|
|
20008
20663
|
};
|
|
20009
20664
|
|
|
20010
20665
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
20011
|
-
import { Fragment as Fragment15, jsx as
|
|
20666
|
+
import { Fragment as Fragment15, jsx as jsx66, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
20012
20667
|
var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) => {
|
|
20013
20668
|
var _a3, _b;
|
|
20014
|
-
const { t } =
|
|
20669
|
+
const { t } = useTranslation28();
|
|
20015
20670
|
const { colors } = useTheme();
|
|
20016
20671
|
const isUnread = !notification.is_read;
|
|
20017
20672
|
const statusLabel = notification.status_label_display || notification.status_label;
|
|
@@ -20038,35 +20693,35 @@ var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) =>
|
|
|
20038
20693
|
onPress: onAcknowledge
|
|
20039
20694
|
});
|
|
20040
20695
|
}
|
|
20041
|
-
return /* @__PURE__ */
|
|
20042
|
-
isUnread ? /* @__PURE__ */
|
|
20043
|
-
/* @__PURE__ */
|
|
20044
|
-
/* @__PURE__ */
|
|
20045
|
-
/* @__PURE__ */
|
|
20046
|
-
/* @__PURE__ */
|
|
20047
|
-
|
|
20696
|
+
return /* @__PURE__ */ jsx66(SwipeableRow, { actions, background: colors.surface, children: /* @__PURE__ */ jsxs43(TouchableOpacity21, { onPress, activeOpacity: 0.6, accessibilityRole: "button", style: styles52.row, children: [
|
|
20697
|
+
isUnread ? /* @__PURE__ */ jsx66(View50, { style: [styles52.accent, { backgroundColor: accent }] }) : null,
|
|
20698
|
+
/* @__PURE__ */ jsx66(NotificationIcon, { notificationType: notification.notification_type, size: 36 }),
|
|
20699
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.content, children: [
|
|
20700
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.titleRow, children: [
|
|
20701
|
+
/* @__PURE__ */ jsx66(
|
|
20702
|
+
Text41,
|
|
20048
20703
|
{
|
|
20049
|
-
style: [
|
|
20704
|
+
style: [styles52.title, { color: colors.text, fontWeight: isUnread ? "700" : "600" }],
|
|
20050
20705
|
numberOfLines: 2,
|
|
20051
20706
|
children: notification.title
|
|
20052
20707
|
}
|
|
20053
20708
|
),
|
|
20054
|
-
isUnread ? /* @__PURE__ */
|
|
20709
|
+
isUnread ? /* @__PURE__ */ jsx66(View50, { style: [styles52.unreadDot, { backgroundColor: colors.primary }] }) : null
|
|
20055
20710
|
] }),
|
|
20056
|
-
/* @__PURE__ */
|
|
20057
|
-
statusLabel ? /* @__PURE__ */
|
|
20058
|
-
/* @__PURE__ */
|
|
20059
|
-
/* @__PURE__ */
|
|
20060
|
-
/* @__PURE__ */
|
|
20711
|
+
/* @__PURE__ */ jsxs43(View50, { style: styles52.metaRow, children: [
|
|
20712
|
+
statusLabel ? /* @__PURE__ */ jsxs43(Fragment15, { children: [
|
|
20713
|
+
/* @__PURE__ */ jsx66(View50, { style: [styles52.statusDot, { backgroundColor: accent }] }),
|
|
20714
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaText, { color: colors.textSecondary }], numberOfLines: 1, children: statusLabel }),
|
|
20715
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaDivider, { color: colors.textSecondary }], children: "\xB7" })
|
|
20061
20716
|
] }) : null,
|
|
20062
|
-
/* @__PURE__ */
|
|
20717
|
+
/* @__PURE__ */ jsx66(Text41, { style: [styles52.metaText, { color: colors.textSecondary }], children: formatTimeAgo(notification.created_at, t) })
|
|
20063
20718
|
] }),
|
|
20064
|
-
showAcknowledge && ackCta ? /* @__PURE__ */
|
|
20719
|
+
showAcknowledge && ackCta ? /* @__PURE__ */ jsx66(View50, { style: styles52.ackWrap, children: /* @__PURE__ */ jsx66(NotificationCTAButton, { cta: ackCta, onPress: onAcknowledge }) }) : null
|
|
20065
20720
|
] }),
|
|
20066
|
-
/* @__PURE__ */
|
|
20721
|
+
/* @__PURE__ */ jsx66(View50, { style: styles52.chevron, children: /* @__PURE__ */ jsx66(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary }) })
|
|
20067
20722
|
] }) });
|
|
20068
20723
|
};
|
|
20069
|
-
var
|
|
20724
|
+
var styles52 = StyleSheet53.create({
|
|
20070
20725
|
row: {
|
|
20071
20726
|
flexDirection: "row",
|
|
20072
20727
|
alignItems: "center",
|
|
@@ -20129,7 +20784,7 @@ var styles50 = StyleSheet51.create({
|
|
|
20129
20784
|
});
|
|
20130
20785
|
|
|
20131
20786
|
// src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts
|
|
20132
|
-
import { useCallback as
|
|
20787
|
+
import { useCallback as useCallback13, useMemo as useMemo22 } from "react";
|
|
20133
20788
|
import { Linking as Linking2 } from "react-native";
|
|
20134
20789
|
var useNotificationActions = () => {
|
|
20135
20790
|
const { navigateTo, setSelectedCase } = useInternalNavigation();
|
|
@@ -20140,14 +20795,14 @@ var useNotificationActions = () => {
|
|
|
20140
20795
|
() => ({ accessToken, refreshToken, onError, updateTokens }),
|
|
20141
20796
|
[accessToken, refreshToken, onError, updateTokens]
|
|
20142
20797
|
);
|
|
20143
|
-
const hasAcknowledgeCTA =
|
|
20798
|
+
const hasAcknowledgeCTA = useCallback13(
|
|
20144
20799
|
(notification) => {
|
|
20145
20800
|
var _a3, _b;
|
|
20146
20801
|
return (_b = (_a3 = notification.ctas) == null ? void 0 : _a3.some((cta) => cta.action_type === "acknowledge")) != null ? _b : false;
|
|
20147
20802
|
},
|
|
20148
20803
|
[]
|
|
20149
20804
|
);
|
|
20150
|
-
const handleMarkRead =
|
|
20805
|
+
const handleMarkRead = useCallback13(
|
|
20151
20806
|
async (notificationUuid) => {
|
|
20152
20807
|
if (!organizationId || !workspaceId) return false;
|
|
20153
20808
|
const result = await markNotificationRead(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20155,12 +20810,12 @@ var useNotificationActions = () => {
|
|
|
20155
20810
|
},
|
|
20156
20811
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20157
20812
|
);
|
|
20158
|
-
const handleMarkAllRead =
|
|
20813
|
+
const handleMarkAllRead = useCallback13(async () => {
|
|
20159
20814
|
if (!organizationId || !workspaceId) return false;
|
|
20160
20815
|
const result = await markAllRead(organizationId, workspaceId, authContext, consentClient);
|
|
20161
20816
|
return result !== null;
|
|
20162
20817
|
}, [organizationId, workspaceId, authContext, consentClient]);
|
|
20163
|
-
const handleAcknowledge =
|
|
20818
|
+
const handleAcknowledge = useCallback13(
|
|
20164
20819
|
async (notificationUuid) => {
|
|
20165
20820
|
if (!organizationId || !workspaceId) return false;
|
|
20166
20821
|
const result = await acknowledgeNotification(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20168,7 +20823,7 @@ var useNotificationActions = () => {
|
|
|
20168
20823
|
},
|
|
20169
20824
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20170
20825
|
);
|
|
20171
|
-
const handleCTAClick =
|
|
20826
|
+
const handleCTAClick = useCallback13(
|
|
20172
20827
|
async (notification, cta) => {
|
|
20173
20828
|
var _a3;
|
|
20174
20829
|
if (cta.action_type === "acknowledge") {
|
|
@@ -20225,7 +20880,7 @@ var useNotificationActions = () => {
|
|
|
20225
20880
|
};
|
|
20226
20881
|
|
|
20227
20882
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
20228
|
-
import { Fragment as Fragment16, jsx as
|
|
20883
|
+
import { Fragment as Fragment16, jsx as jsx67, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
20229
20884
|
var EMPTY_SUMMARY = { total: 0, unread: 0, action_needed: 0, acknowledged: 0 };
|
|
20230
20885
|
var READ_FILTER_TO_PARAM = {
|
|
20231
20886
|
all: void 0,
|
|
@@ -20233,7 +20888,7 @@ var READ_FILTER_TO_PARAM = {
|
|
|
20233
20888
|
read: true
|
|
20234
20889
|
};
|
|
20235
20890
|
var NotificationsScreen = () => {
|
|
20236
|
-
const { t } =
|
|
20891
|
+
const { t } = useTranslation29();
|
|
20237
20892
|
const { colors } = useTheme();
|
|
20238
20893
|
const { langParam } = useCurrentLanguage();
|
|
20239
20894
|
const { listBottom } = usePrivacyCenterInsets();
|
|
@@ -20250,15 +20905,15 @@ var NotificationsScreen = () => {
|
|
|
20250
20905
|
handleAcknowledge,
|
|
20251
20906
|
handleCTAClick
|
|
20252
20907
|
} = useNotificationActions();
|
|
20253
|
-
const [notifications, setNotifications] =
|
|
20254
|
-
const [summary, setSummary] =
|
|
20255
|
-
const [activeTab, setActiveTab] =
|
|
20256
|
-
const [readFilter, setReadFilter] =
|
|
20257
|
-
const [isLoading, setIsLoading] =
|
|
20258
|
-
const [isRefreshing2, setIsRefreshing] =
|
|
20259
|
-
const [filterOpen, setFilterOpen] =
|
|
20908
|
+
const [notifications, setNotifications] = useState25([]);
|
|
20909
|
+
const [summary, setSummary] = useState25(EMPTY_SUMMARY);
|
|
20910
|
+
const [activeTab, setActiveTab] = useState25("all");
|
|
20911
|
+
const [readFilter, setReadFilter] = useState25("all");
|
|
20912
|
+
const [isLoading, setIsLoading] = useState25(true);
|
|
20913
|
+
const [isRefreshing2, setIsRefreshing] = useState25(false);
|
|
20914
|
+
const [filterOpen, setFilterOpen] = useState25(false);
|
|
20260
20915
|
const isFiltered = activeTab !== "all" || readFilter !== "all";
|
|
20261
|
-
const loadNotifications =
|
|
20916
|
+
const loadNotifications = useCallback14(
|
|
20262
20917
|
async (includeSummary = false, silent = false) => {
|
|
20263
20918
|
if (!organizationId || !workspaceId) return;
|
|
20264
20919
|
if (!silent) setIsLoading(true);
|
|
@@ -20288,18 +20943,21 @@ var NotificationsScreen = () => {
|
|
|
20288
20943
|
},
|
|
20289
20944
|
[organizationId, workspaceId, activeTab, readFilter, authContext, consentClient, langParam]
|
|
20290
20945
|
);
|
|
20291
|
-
|
|
20946
|
+
useEffect20(() => {
|
|
20292
20947
|
loadNotifications(true);
|
|
20293
20948
|
}, [loadNotifications]);
|
|
20294
20949
|
const loadRef = useRef12(loadNotifications);
|
|
20295
20950
|
loadRef.current = loadNotifications;
|
|
20296
|
-
|
|
20951
|
+
const authContextRef = useRef12(authContext);
|
|
20952
|
+
authContextRef.current = authContext;
|
|
20953
|
+
useEffect20(() => {
|
|
20297
20954
|
const id = setInterval(() => {
|
|
20955
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
20298
20956
|
loadRef.current(false, true);
|
|
20299
20957
|
}, POLL_INTERVAL);
|
|
20300
20958
|
return () => clearInterval(id);
|
|
20301
20959
|
}, []);
|
|
20302
|
-
const onNotificationClick =
|
|
20960
|
+
const onNotificationClick = useCallback14(
|
|
20303
20961
|
async (notification) => {
|
|
20304
20962
|
const shouldMarkRead = !notification.is_read;
|
|
20305
20963
|
const shouldAutoAcknowledge = !notification.is_acknowledged && !hasAcknowledgeCTA(notification);
|
|
@@ -20320,7 +20978,7 @@ var NotificationsScreen = () => {
|
|
|
20320
20978
|
},
|
|
20321
20979
|
[hasAcknowledgeCTA, handleAcknowledge, handleMarkRead]
|
|
20322
20980
|
);
|
|
20323
|
-
const onRowPress =
|
|
20981
|
+
const onRowPress = useCallback14(
|
|
20324
20982
|
async (notification) => {
|
|
20325
20983
|
var _a3;
|
|
20326
20984
|
const linkCta = (_a3 = notification.ctas) == null ? void 0 : _a3.find((cta) => cta.action_type === "link" && cta.url);
|
|
@@ -20338,7 +20996,7 @@ var NotificationsScreen = () => {
|
|
|
20338
20996
|
},
|
|
20339
20997
|
[handleCTAClick, onNotificationClick]
|
|
20340
20998
|
);
|
|
20341
|
-
const onMarkReadRow =
|
|
20999
|
+
const onMarkReadRow = useCallback14(
|
|
20342
21000
|
async (notification) => {
|
|
20343
21001
|
if (notification.is_read) return;
|
|
20344
21002
|
const ok = await handleMarkRead(notification.uuid);
|
|
@@ -20348,7 +21006,7 @@ var NotificationsScreen = () => {
|
|
|
20348
21006
|
},
|
|
20349
21007
|
[handleMarkRead]
|
|
20350
21008
|
);
|
|
20351
|
-
const onAcknowledgeRow =
|
|
21009
|
+
const onAcknowledgeRow = useCallback14(
|
|
20352
21010
|
async (notification) => {
|
|
20353
21011
|
if (notification.is_acknowledged) return;
|
|
20354
21012
|
const ok = await handleAcknowledge(notification.uuid);
|
|
@@ -20365,7 +21023,14 @@ var NotificationsScreen = () => {
|
|
|
20365
21023
|
},
|
|
20366
21024
|
[handleAcknowledge]
|
|
20367
21025
|
);
|
|
20368
|
-
const
|
|
21026
|
+
const onMarkAllRead = useCallback14(async () => {
|
|
21027
|
+
const ok = await handleMarkAllRead();
|
|
21028
|
+
if (!ok) return;
|
|
21029
|
+
setNotifications((prev) => prev.map((item) => ({ ...item, is_read: true })));
|
|
21030
|
+
setSummary((prev) => ({ ...prev, unread: 0 }));
|
|
21031
|
+
if (readFilter !== "all") loadNotifications(true, true);
|
|
21032
|
+
}, [handleMarkAllRead, readFilter, loadNotifications]);
|
|
21033
|
+
const onRefresh = useCallback14(() => {
|
|
20369
21034
|
setIsRefreshing(true);
|
|
20370
21035
|
loadNotifications(true, true);
|
|
20371
21036
|
}, [loadNotifications]);
|
|
@@ -20373,14 +21038,14 @@ var NotificationsScreen = () => {
|
|
|
20373
21038
|
() => groupByTime(notifications, (item) => item.created_at, classifyTime),
|
|
20374
21039
|
[notifications, classifyTime]
|
|
20375
21040
|
);
|
|
20376
|
-
const header = /* @__PURE__ */
|
|
20377
|
-
/* @__PURE__ */
|
|
20378
|
-
/* @__PURE__ */
|
|
20379
|
-
/* @__PURE__ */
|
|
20380
|
-
|
|
21041
|
+
const header = /* @__PURE__ */ jsxs44(View51, { style: styles53.header, children: [
|
|
21042
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.titleRow, children: [
|
|
21043
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.screenTitle, { color: colors.text }], children: t("notifications", { defaultValue: "Notifications" }) }),
|
|
21044
|
+
/* @__PURE__ */ jsx67(
|
|
21045
|
+
TouchableOpacity22,
|
|
20381
21046
|
{
|
|
20382
21047
|
style: [
|
|
20383
|
-
|
|
21048
|
+
styles53.filterBtn,
|
|
20384
21049
|
{
|
|
20385
21050
|
backgroundColor: isFiltered ? colors.primarySoft : colors.surface,
|
|
20386
21051
|
borderColor: isFiltered ? colors.primary : colors.border
|
|
@@ -20389,30 +21054,30 @@ var NotificationsScreen = () => {
|
|
|
20389
21054
|
onPress: () => setFilterOpen(true),
|
|
20390
21055
|
accessibilityRole: "button",
|
|
20391
21056
|
accessibilityLabel: t("filter") || "Filter",
|
|
20392
|
-
children: /* @__PURE__ */
|
|
21057
|
+
children: /* @__PURE__ */ jsx67(Icon, { name: "sliders-horizontal", size: 18, color: isFiltered ? colors.primary : colors.text })
|
|
20393
21058
|
}
|
|
20394
21059
|
)
|
|
20395
21060
|
] }),
|
|
20396
|
-
summary.unread > 0 ? /* @__PURE__ */
|
|
20397
|
-
/* @__PURE__ */
|
|
20398
|
-
/* @__PURE__ */
|
|
21061
|
+
summary.unread > 0 ? /* @__PURE__ */ jsxs44(TouchableOpacity22, { style: styles53.markAllBtn, onPress: onMarkAllRead, activeOpacity: 0.7, accessibilityRole: "button", children: [
|
|
21062
|
+
/* @__PURE__ */ jsx67(Icon, { name: "check-check", size: 15, color: colors.primary, strokeWidth: 2.2 }),
|
|
21063
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.markAllLabel, { color: colors.primary }], children: t("markAllAsRead") || "Mark all as read" })
|
|
20399
21064
|
] }) : null
|
|
20400
21065
|
] });
|
|
20401
|
-
return /* @__PURE__ */
|
|
20402
|
-
/* @__PURE__ */
|
|
21066
|
+
return /* @__PURE__ */ jsxs44(Fragment16, { children: [
|
|
21067
|
+
/* @__PURE__ */ jsx67(
|
|
20403
21068
|
FlatList3,
|
|
20404
21069
|
{
|
|
20405
21070
|
data: sections,
|
|
20406
21071
|
keyExtractor: (section2) => section2.key,
|
|
20407
|
-
style: [
|
|
20408
|
-
contentContainerStyle: [
|
|
21072
|
+
style: [styles53.list, { backgroundColor: colors.canvasSubtle }],
|
|
21073
|
+
contentContainerStyle: [styles53.listContent, { flexGrow: 1, paddingBottom: listBottom }],
|
|
20409
21074
|
ListHeaderComponent: header,
|
|
20410
21075
|
showsVerticalScrollIndicator: false,
|
|
20411
|
-
refreshControl: /* @__PURE__ */
|
|
20412
|
-
renderItem: ({ item: section2 }) => /* @__PURE__ */
|
|
20413
|
-
/* @__PURE__ */
|
|
20414
|
-
/* @__PURE__ */
|
|
20415
|
-
/* @__PURE__ */
|
|
21076
|
+
refreshControl: /* @__PURE__ */ jsx67(RefreshControl5, { refreshing: isRefreshing2, onRefresh, tintColor: colors.primary, colors: [colors.primary] }),
|
|
21077
|
+
renderItem: ({ item: section2 }) => /* @__PURE__ */ jsxs44(View51, { style: styles53.section, children: [
|
|
21078
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.sectionTitle, { color: colors.textSecondary }], children: section2.title }),
|
|
21079
|
+
/* @__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: [
|
|
21080
|
+
/* @__PURE__ */ jsx67(
|
|
20416
21081
|
NotificationRow,
|
|
20417
21082
|
{
|
|
20418
21083
|
notification: item,
|
|
@@ -20421,19 +21086,19 @@ var NotificationsScreen = () => {
|
|
|
20421
21086
|
onAcknowledge: () => onAcknowledgeRow(item)
|
|
20422
21087
|
}
|
|
20423
21088
|
),
|
|
20424
|
-
index < section2.data.length - 1 ? /* @__PURE__ */
|
|
21089
|
+
index < section2.data.length - 1 ? /* @__PURE__ */ jsx67(View51, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
20425
21090
|
] }, item.uuid)) }) })
|
|
20426
21091
|
] }),
|
|
20427
|
-
ListEmptyComponent: isLoading ? /* @__PURE__ */
|
|
20428
|
-
/* @__PURE__ */
|
|
20429
|
-
/* @__PURE__ */
|
|
20430
|
-
/* @__PURE__ */
|
|
20431
|
-
/* @__PURE__ */
|
|
20432
|
-
/* @__PURE__ */
|
|
21092
|
+
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: [
|
|
21093
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.skeletonRow, children: [
|
|
21094
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: 36, height: 36, radius: radii.md }),
|
|
21095
|
+
/* @__PURE__ */ jsxs44(View51, { style: styles53.skeletonLines, children: [
|
|
21096
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: "70%", height: 13 }),
|
|
21097
|
+
/* @__PURE__ */ jsx67(Skeleton, { width: "40%", height: 10 })
|
|
20433
21098
|
] })
|
|
20434
21099
|
] }),
|
|
20435
|
-
i < 3 ? /* @__PURE__ */
|
|
20436
|
-
] }, i)) }) }) : /* @__PURE__ */
|
|
21100
|
+
i < 3 ? /* @__PURE__ */ jsx67(View51, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
21101
|
+
] }, i)) }) }) : /* @__PURE__ */ jsx67(View51, { style: styles53.emptyWrap, children: /* @__PURE__ */ jsx67(
|
|
20437
21102
|
PCEmpty,
|
|
20438
21103
|
{
|
|
20439
21104
|
iconName: "circle-check",
|
|
@@ -20442,14 +21107,14 @@ var NotificationsScreen = () => {
|
|
|
20442
21107
|
}
|
|
20443
21108
|
) }),
|
|
20444
21109
|
ListFooterComponentStyle: { marginTop: "auto" },
|
|
20445
|
-
ListFooterComponent: /* @__PURE__ */
|
|
21110
|
+
ListFooterComponent: /* @__PURE__ */ jsx67(Footer, {})
|
|
20446
21111
|
}
|
|
20447
21112
|
),
|
|
20448
|
-
/* @__PURE__ */
|
|
20449
|
-
/* @__PURE__ */
|
|
20450
|
-
/* @__PURE__ */
|
|
21113
|
+
/* @__PURE__ */ jsx67(BottomSheet, { visible: filterOpen, onClose: () => setFilterOpen(false), title: t("filter") || "Filter", children: /* @__PURE__ */ jsxs44(View51, { style: styles53.filterSheet, children: [
|
|
21114
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.filterGroupLabel, { color: colors.textSecondary }], children: t("category", { defaultValue: "Category" }) }),
|
|
21115
|
+
/* @__PURE__ */ jsx67(View51, { style: styles53.chipWrap, children: filterTabs.map((tab) => {
|
|
20451
21116
|
const selected = tab.key === activeTab;
|
|
20452
|
-
return /* @__PURE__ */
|
|
21117
|
+
return /* @__PURE__ */ jsx67(
|
|
20453
21118
|
FilterChip,
|
|
20454
21119
|
{
|
|
20455
21120
|
label: tab.label,
|
|
@@ -20459,12 +21124,12 @@ var NotificationsScreen = () => {
|
|
|
20459
21124
|
tab.key
|
|
20460
21125
|
);
|
|
20461
21126
|
}) }),
|
|
20462
|
-
/* @__PURE__ */
|
|
20463
|
-
/* @__PURE__ */
|
|
21127
|
+
/* @__PURE__ */ jsx67(Text42, { style: [styles53.filterGroupLabel, { color: colors.textSecondary, marginTop: spacing.lg }], children: t("readStatus", { defaultValue: "Status" }) }),
|
|
21128
|
+
/* @__PURE__ */ jsx67(View51, { style: styles53.chipWrap, children: [
|
|
20464
21129
|
{ key: "all", label: t("all") || "All" },
|
|
20465
21130
|
{ key: "unread", label: t("unread") || "Unread" },
|
|
20466
21131
|
{ key: "read", label: t("read", { defaultValue: "Read" }) }
|
|
20467
|
-
].map((opt) => /* @__PURE__ */
|
|
21132
|
+
].map((opt) => /* @__PURE__ */ jsx67(
|
|
20468
21133
|
FilterChip,
|
|
20469
21134
|
{
|
|
20470
21135
|
label: opt.label,
|
|
@@ -20473,13 +21138,13 @@ var NotificationsScreen = () => {
|
|
|
20473
21138
|
},
|
|
20474
21139
|
opt.key
|
|
20475
21140
|
)) }),
|
|
20476
|
-
/* @__PURE__ */
|
|
20477
|
-
|
|
21141
|
+
/* @__PURE__ */ jsx67(
|
|
21142
|
+
TouchableOpacity22,
|
|
20478
21143
|
{
|
|
20479
|
-
style: [
|
|
21144
|
+
style: [styles53.applyBtn, { backgroundColor: colors.primary }],
|
|
20480
21145
|
onPress: () => setFilterOpen(false),
|
|
20481
21146
|
accessibilityRole: "button",
|
|
20482
|
-
children: /* @__PURE__ */
|
|
21147
|
+
children: /* @__PURE__ */ jsx67(Text42, { style: [styles53.applyLabel, { color: colors.primaryText }], children: t("done", { defaultValue: "Done" }) })
|
|
20483
21148
|
}
|
|
20484
21149
|
)
|
|
20485
21150
|
] }) })
|
|
@@ -20487,25 +21152,25 @@ var NotificationsScreen = () => {
|
|
|
20487
21152
|
};
|
|
20488
21153
|
var FilterChip = ({ label, selected, onPress }) => {
|
|
20489
21154
|
const { colors } = useTheme();
|
|
20490
|
-
return /* @__PURE__ */
|
|
20491
|
-
|
|
21155
|
+
return /* @__PURE__ */ jsx67(
|
|
21156
|
+
TouchableOpacity22,
|
|
20492
21157
|
{
|
|
20493
21158
|
onPress,
|
|
20494
21159
|
activeOpacity: 0.7,
|
|
20495
21160
|
accessibilityRole: "button",
|
|
20496
21161
|
accessibilityState: { selected },
|
|
20497
21162
|
style: [
|
|
20498
|
-
|
|
21163
|
+
styles53.chip,
|
|
20499
21164
|
{
|
|
20500
21165
|
backgroundColor: selected ? colors.primary : colors.surfaceAlt,
|
|
20501
21166
|
borderColor: selected ? colors.primary : colors.border
|
|
20502
21167
|
}
|
|
20503
21168
|
],
|
|
20504
|
-
children: /* @__PURE__ */
|
|
21169
|
+
children: /* @__PURE__ */ jsx67(Text42, { style: [styles53.chipLabel, { color: selected ? colors.primaryText : colors.text }], children: label })
|
|
20505
21170
|
}
|
|
20506
21171
|
);
|
|
20507
21172
|
};
|
|
20508
|
-
var
|
|
21173
|
+
var styles53 = StyleSheet54.create({
|
|
20509
21174
|
list: {
|
|
20510
21175
|
flex: 1
|
|
20511
21176
|
},
|
|
@@ -20539,7 +21204,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20539
21204
|
filterBtn: {
|
|
20540
21205
|
width: 40,
|
|
20541
21206
|
height: 40,
|
|
20542
|
-
borderWidth:
|
|
21207
|
+
borderWidth: StyleSheet54.hairlineWidth,
|
|
20543
21208
|
borderRadius: radii.md,
|
|
20544
21209
|
justifyContent: "center",
|
|
20545
21210
|
alignItems: "center"
|
|
@@ -20560,7 +21225,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20560
21225
|
overflow: "hidden"
|
|
20561
21226
|
},
|
|
20562
21227
|
separator: {
|
|
20563
|
-
height:
|
|
21228
|
+
height: StyleSheet54.hairlineWidth,
|
|
20564
21229
|
marginLeft: spacing.lg + 36 + spacing.md
|
|
20565
21230
|
},
|
|
20566
21231
|
emptyWrap: {
|
|
@@ -20598,7 +21263,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20598
21263
|
justifyContent: "center",
|
|
20599
21264
|
paddingHorizontal: spacing.lg,
|
|
20600
21265
|
borderRadius: radii.pill,
|
|
20601
|
-
borderWidth:
|
|
21266
|
+
borderWidth: StyleSheet54.hairlineWidth
|
|
20602
21267
|
},
|
|
20603
21268
|
chipLabel: {
|
|
20604
21269
|
...typography.label
|
|
@@ -20617,7 +21282,7 @@ var styles51 = StyleSheet52.create({
|
|
|
20617
21282
|
});
|
|
20618
21283
|
|
|
20619
21284
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
20620
|
-
import { Fragment as Fragment17, jsx as
|
|
21285
|
+
import { Fragment as Fragment17, jsx as jsx68, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
20621
21286
|
var privacyCenterQueryClient = new QueryClient();
|
|
20622
21287
|
function PrivacyCenterContent({ onBack }) {
|
|
20623
21288
|
const { currentPage } = useInternalNavigation();
|
|
@@ -20627,24 +21292,24 @@ function PrivacyCenterContent({ onBack }) {
|
|
|
20627
21292
|
const chromeMode = getPageChromeMode(currentPage);
|
|
20628
21293
|
const canvasIsLight = isLightColor(colors.canvasSubtle);
|
|
20629
21294
|
const barStyle = canvasIsLight ? "dark-content" : "light-content";
|
|
20630
|
-
|
|
21295
|
+
useEffect21(() => {
|
|
20631
21296
|
StatusBar2.setBarStyle(barStyle, true);
|
|
20632
21297
|
if (Platform8.OS === "android") {
|
|
20633
21298
|
setNavBarIconStyle(canvasIsLight ? "dark" : "light");
|
|
20634
21299
|
}
|
|
20635
21300
|
}, [barStyle, canvasIsLight]);
|
|
20636
|
-
return /* @__PURE__ */
|
|
20637
|
-
/* @__PURE__ */
|
|
20638
|
-
/* @__PURE__ */
|
|
20639
|
-
/* @__PURE__ */
|
|
20640
|
-
/* @__PURE__ */
|
|
20641
|
-
currentPage === "home" && /* @__PURE__ */
|
|
20642
|
-
currentPage === "consent-manager" && /* @__PURE__ */
|
|
20643
|
-
currentPage === "form" && /* @__PURE__ */
|
|
20644
|
-
currentPage === "activity" && /* @__PURE__ */
|
|
20645
|
-
currentPage === "receipts" && /* @__PURE__ */
|
|
20646
|
-
currentPage === "case-details" && /* @__PURE__ */
|
|
20647
|
-
currentPage === "notifications" && /* @__PURE__ */
|
|
21301
|
+
return /* @__PURE__ */ jsxs45(View52, { style: [styles54.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
21302
|
+
/* @__PURE__ */ jsx68(StatusBar2, { barStyle, translucent: true }),
|
|
21303
|
+
/* @__PURE__ */ jsx68(View52, { style: styles54.mainColumn, children: brandingLoading ? /* @__PURE__ */ jsx68(PCLoader, {}) : /* @__PURE__ */ jsxs45(Fragment17, { children: [
|
|
21304
|
+
/* @__PURE__ */ jsx68(SlimTopBar, { mode: chromeMode, onBack }),
|
|
21305
|
+
/* @__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: [
|
|
21306
|
+
currentPage === "home" && /* @__PURE__ */ jsx68(HomeHub, {}),
|
|
21307
|
+
currentPage === "consent-manager" && /* @__PURE__ */ jsx68(ConsentManager, {}),
|
|
21308
|
+
currentPage === "form" && /* @__PURE__ */ jsx68(FormPage, {}),
|
|
21309
|
+
currentPage === "activity" && /* @__PURE__ */ jsx68(ActivitiesList, {}),
|
|
21310
|
+
currentPage === "receipts" && /* @__PURE__ */ jsx68(ReceiptsList, {}),
|
|
21311
|
+
currentPage === "case-details" && /* @__PURE__ */ jsx68(CaseDetailsPage, {}),
|
|
21312
|
+
currentPage === "notifications" && /* @__PURE__ */ jsx68(NotificationsScreen, {})
|
|
20648
21313
|
] }) })
|
|
20649
21314
|
] }) })
|
|
20650
21315
|
] });
|
|
@@ -20658,22 +21323,34 @@ function RedactoPrivacyCenter({
|
|
|
20658
21323
|
theme: _theme,
|
|
20659
21324
|
accessToken,
|
|
20660
21325
|
refreshToken,
|
|
21326
|
+
token,
|
|
21327
|
+
email,
|
|
21328
|
+
mobile,
|
|
21329
|
+
ucic,
|
|
21330
|
+
organisationUuid,
|
|
21331
|
+
workspaceUuid,
|
|
20661
21332
|
onError,
|
|
20662
21333
|
initialPage = "home",
|
|
20663
21334
|
initialCaseUuid,
|
|
20664
21335
|
onBack
|
|
20665
21336
|
}) {
|
|
20666
|
-
return /* @__PURE__ */
|
|
21337
|
+
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(
|
|
20667
21338
|
AuthProvider,
|
|
20668
21339
|
{
|
|
20669
|
-
accessToken,
|
|
20670
|
-
refreshToken,
|
|
21340
|
+
accessToken: accessToken != null ? accessToken : "",
|
|
21341
|
+
refreshToken: refreshToken != null ? refreshToken : "",
|
|
21342
|
+
token,
|
|
21343
|
+
sandboxUcic: ucic,
|
|
21344
|
+
sandboxSubject: email || mobile,
|
|
21345
|
+
organisationUuid,
|
|
21346
|
+
workspaceUuid,
|
|
21347
|
+
slug,
|
|
20671
21348
|
onError,
|
|
20672
|
-
children: /* @__PURE__ */
|
|
21349
|
+
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 }) }) }) }) })
|
|
20673
21350
|
}
|
|
20674
21351
|
) }) }) }) }) }) });
|
|
20675
21352
|
}
|
|
20676
|
-
var
|
|
21353
|
+
var styles54 = StyleSheet55.create({
|
|
20677
21354
|
container: {
|
|
20678
21355
|
flex: 1
|
|
20679
21356
|
},
|
|
@@ -20688,78 +21365,78 @@ var styles52 = StyleSheet53.create({
|
|
|
20688
21365
|
|
|
20689
21366
|
// src/RedactoPrivacyCenter/components/SideMenu.tsx
|
|
20690
21367
|
import {
|
|
20691
|
-
StyleSheet as
|
|
20692
|
-
Text as
|
|
20693
|
-
TouchableOpacity as
|
|
20694
|
-
View as
|
|
21368
|
+
StyleSheet as StyleSheet56,
|
|
21369
|
+
Text as Text43,
|
|
21370
|
+
TouchableOpacity as TouchableOpacity23,
|
|
21371
|
+
View as View53
|
|
20695
21372
|
} from "react-native";
|
|
20696
|
-
import { useTranslation as
|
|
21373
|
+
import { useTranslation as useTranslation30 } from "react-i18next";
|
|
20697
21374
|
import Svg2, { Path as Path2 } from "react-native-svg";
|
|
20698
|
-
import { Fragment as Fragment18, jsx as
|
|
21375
|
+
import { Fragment as Fragment18, jsx as jsx69, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
20699
21376
|
var MENU_ITEMS = [
|
|
20700
21377
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consent Manager", icon: "shield-check" },
|
|
20701
21378
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Privacy Requests", icon: "message-circle-warning" },
|
|
20702
21379
|
{ page: "activity", labelKey: "activity", fallback: "Activity", icon: "activity" }
|
|
20703
21380
|
];
|
|
20704
21381
|
function SideMenu({ onBack } = {}) {
|
|
20705
|
-
const { t } =
|
|
21382
|
+
const { t } = useTranslation30();
|
|
20706
21383
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20707
21384
|
const { organizationName, email } = useAuth();
|
|
20708
21385
|
const { colors } = useTheme();
|
|
20709
21386
|
const orgInitial = organizationName ? organizationName.charAt(0).toUpperCase() : "R";
|
|
20710
21387
|
const displayName = organizationName || "Organization";
|
|
20711
|
-
return /* @__PURE__ */
|
|
20712
|
-
/* @__PURE__ */
|
|
20713
|
-
/* @__PURE__ */
|
|
20714
|
-
/* @__PURE__ */
|
|
20715
|
-
/* @__PURE__ */
|
|
20716
|
-
email ? /* @__PURE__ */
|
|
21388
|
+
return /* @__PURE__ */ jsxs46(View53, { style: [styles55.container, { backgroundColor: colors.surface }], children: [
|
|
21389
|
+
/* @__PURE__ */ jsxs46(View53, { style: styles55.orgSection, children: [
|
|
21390
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ jsx69(Text43, { style: [styles55.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
|
|
21391
|
+
/* @__PURE__ */ jsxs46(View53, { style: styles55.orgInfo, children: [
|
|
21392
|
+
/* @__PURE__ */ jsx69(Text43, { style: [styles55.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
|
|
21393
|
+
email ? /* @__PURE__ */ jsx69(Text43, { style: [styles55.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20717
21394
|
] })
|
|
20718
21395
|
] }),
|
|
20719
|
-
/* @__PURE__ */
|
|
20720
|
-
/* @__PURE__ */
|
|
21396
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21397
|
+
/* @__PURE__ */ jsx69(View53, { style: styles55.menuSection, children: MENU_ITEMS.map((item) => {
|
|
20721
21398
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
20722
|
-
return /* @__PURE__ */
|
|
20723
|
-
|
|
21399
|
+
return /* @__PURE__ */ jsxs46(
|
|
21400
|
+
TouchableOpacity23,
|
|
20724
21401
|
{
|
|
20725
21402
|
style: [
|
|
20726
|
-
|
|
20727
|
-
isActive && [
|
|
21403
|
+
styles55.menuItem,
|
|
21404
|
+
isActive && [styles55.menuItemActive, { backgroundColor: `${colors.primary}14` }]
|
|
20728
21405
|
],
|
|
20729
21406
|
onPress: () => navigateTo(item.page),
|
|
20730
21407
|
activeOpacity: 0.7,
|
|
20731
21408
|
accessibilityRole: "button",
|
|
20732
21409
|
accessibilityState: { selected: isActive },
|
|
20733
21410
|
children: [
|
|
20734
|
-
/* @__PURE__ */
|
|
20735
|
-
/* @__PURE__ */
|
|
20736
|
-
|
|
21411
|
+
/* @__PURE__ */ jsx69(View53, { style: styles55.menuIconWrap, children: /* @__PURE__ */ jsx69(Icon, { name: item.icon, size: 18, color: isActive ? colors.primary : colors.textSecondary }) }),
|
|
21412
|
+
/* @__PURE__ */ jsx69(
|
|
21413
|
+
Text43,
|
|
20737
21414
|
{
|
|
20738
21415
|
style: [
|
|
20739
|
-
|
|
21416
|
+
styles55.menuLabel,
|
|
20740
21417
|
{ color: isActive ? colors.primary : colors.text },
|
|
20741
|
-
isActive &&
|
|
21418
|
+
isActive && styles55.menuLabelActive
|
|
20742
21419
|
],
|
|
20743
21420
|
children: t(item.labelKey) || item.fallback
|
|
20744
21421
|
}
|
|
20745
21422
|
),
|
|
20746
|
-
isActive ? /* @__PURE__ */
|
|
21423
|
+
isActive ? /* @__PURE__ */ jsx69(View53, { style: [styles55.activeIndicator, { backgroundColor: colors.primary }] }) : null
|
|
20747
21424
|
]
|
|
20748
21425
|
},
|
|
20749
21426
|
item.page
|
|
20750
21427
|
);
|
|
20751
21428
|
}) }),
|
|
20752
|
-
onBack ? /* @__PURE__ */
|
|
20753
|
-
/* @__PURE__ */
|
|
20754
|
-
/* @__PURE__ */
|
|
20755
|
-
/* @__PURE__ */
|
|
20756
|
-
|
|
21429
|
+
onBack ? /* @__PURE__ */ jsxs46(Fragment18, { children: [
|
|
21430
|
+
/* @__PURE__ */ jsx69(View53, { style: { flex: 1 } }),
|
|
21431
|
+
/* @__PURE__ */ jsx69(View53, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21432
|
+
/* @__PURE__ */ jsxs46(
|
|
21433
|
+
TouchableOpacity23,
|
|
20757
21434
|
{
|
|
20758
|
-
style:
|
|
21435
|
+
style: styles55.backBtn,
|
|
20759
21436
|
onPress: () => navigateBack(onBack),
|
|
20760
21437
|
activeOpacity: 0.7,
|
|
20761
21438
|
children: [
|
|
20762
|
-
/* @__PURE__ */
|
|
21439
|
+
/* @__PURE__ */ jsx69(Svg2, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ jsx69(
|
|
20763
21440
|
Path2,
|
|
20764
21441
|
{
|
|
20765
21442
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20768,7 +21445,7 @@ function SideMenu({ onBack } = {}) {
|
|
|
20768
21445
|
strokeLinecap: "round",
|
|
20769
21446
|
strokeLinejoin: "round"
|
|
20770
21447
|
}
|
|
20771
|
-
) : /* @__PURE__ */
|
|
21448
|
+
) : /* @__PURE__ */ jsx69(
|
|
20772
21449
|
Path2,
|
|
20773
21450
|
{
|
|
20774
21451
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20778,14 +21455,14 @@ function SideMenu({ onBack } = {}) {
|
|
|
20778
21455
|
strokeLinejoin: "round"
|
|
20779
21456
|
}
|
|
20780
21457
|
) }),
|
|
20781
|
-
/* @__PURE__ */
|
|
21458
|
+
/* @__PURE__ */ jsx69(Text43, { style: [styles55.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
|
|
20782
21459
|
]
|
|
20783
21460
|
}
|
|
20784
21461
|
)
|
|
20785
21462
|
] }) : null
|
|
20786
21463
|
] });
|
|
20787
21464
|
}
|
|
20788
|
-
var
|
|
21465
|
+
var styles55 = StyleSheet56.create({
|
|
20789
21466
|
container: {
|
|
20790
21467
|
flex: 1,
|
|
20791
21468
|
paddingTop: 12
|
|
@@ -20871,42 +21548,68 @@ var styles53 = StyleSheet54.create({
|
|
|
20871
21548
|
});
|
|
20872
21549
|
|
|
20873
21550
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
20874
|
-
import { useCallback as
|
|
20875
|
-
import { StyleSheet as
|
|
20876
|
-
import { useTranslation as
|
|
21551
|
+
import { useCallback as useCallback15, useEffect as useEffect22, useState as useState26 } from "react";
|
|
21552
|
+
import { StyleSheet as StyleSheet58, Text as Text45, TouchableOpacity as TouchableOpacity25, View as View55 } from "react-native";
|
|
21553
|
+
import { useTranslation as useTranslation32 } from "react-i18next";
|
|
20877
21554
|
import Svg4, { Path as Path4 } from "react-native-svg";
|
|
20878
21555
|
|
|
20879
21556
|
// src/RedactoPrivacyCenter/components/UserOrgMenu.tsx
|
|
20880
|
-
import { Image as Image4, StyleSheet as
|
|
20881
|
-
import { useTranslation as
|
|
21557
|
+
import { Image as Image4, StyleSheet as StyleSheet57, Text as Text44, TouchableOpacity as TouchableOpacity24, View as View54 } from "react-native";
|
|
21558
|
+
import { useTranslation as useTranslation31 } from "react-i18next";
|
|
20882
21559
|
import Svg3, { Path as Path3 } from "react-native-svg";
|
|
20883
|
-
import { jsx as
|
|
21560
|
+
import { jsx as jsx70, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
20884
21561
|
var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
20885
|
-
const { t } =
|
|
21562
|
+
const { t } = useTranslation31();
|
|
20886
21563
|
const { organizationName, email } = useAuth();
|
|
20887
21564
|
const { colors, branding } = useTheme();
|
|
21565
|
+
const { switchProfile } = useProfileSwitch();
|
|
20888
21566
|
const brandName = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
20889
21567
|
const handleAction = () => {
|
|
20890
21568
|
onClose();
|
|
20891
21569
|
navigateBack(onBack);
|
|
20892
21570
|
};
|
|
20893
|
-
return /* @__PURE__ */
|
|
20894
|
-
/* @__PURE__ */
|
|
20895
|
-
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */
|
|
20896
|
-
/* @__PURE__ */
|
|
20897
|
-
/* @__PURE__ */
|
|
20898
|
-
email ? /* @__PURE__ */
|
|
21571
|
+
return /* @__PURE__ */ jsxs47(BottomSheet, { visible, onClose, title: t("account") || "Account", children: [
|
|
21572
|
+
/* @__PURE__ */ jsxs47(View54, { style: styles56.identity, children: [
|
|
21573
|
+
(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 }),
|
|
21574
|
+
/* @__PURE__ */ jsxs47(View54, { style: styles56.identityText, children: [
|
|
21575
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.orgName, { color: colors.text }], numberOfLines: 2, children: brandName }),
|
|
21576
|
+
email ? /* @__PURE__ */ jsx70(Text44, { style: [styles56.email, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20899
21577
|
] })
|
|
20900
21578
|
] }),
|
|
20901
|
-
|
|
20902
|
-
|
|
21579
|
+
switchProfile ? /* @__PURE__ */ jsxs47(
|
|
21580
|
+
TouchableOpacity24,
|
|
21581
|
+
{
|
|
21582
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(colors.primary, 0.1) }],
|
|
21583
|
+
onPress: () => {
|
|
21584
|
+
onClose();
|
|
21585
|
+
switchProfile();
|
|
21586
|
+
},
|
|
21587
|
+
activeOpacity: 0.7,
|
|
21588
|
+
accessibilityRole: "button",
|
|
21589
|
+
children: [
|
|
21590
|
+
/* @__PURE__ */ jsx70(Svg3, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx70(
|
|
21591
|
+
Path3,
|
|
21592
|
+
{
|
|
21593
|
+
d: "M16 3h5v5 M21 3l-7 7 M8 21H3v-5 M3 21l7-7",
|
|
21594
|
+
stroke: colors.primary,
|
|
21595
|
+
strokeWidth: 2,
|
|
21596
|
+
strokeLinecap: "round",
|
|
21597
|
+
strokeLinejoin: "round"
|
|
21598
|
+
}
|
|
21599
|
+
) }),
|
|
21600
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.actionLabel, { color: colors.primary }], children: t("switchProfile") })
|
|
21601
|
+
]
|
|
21602
|
+
}
|
|
21603
|
+
) : null,
|
|
21604
|
+
onBack ? /* @__PURE__ */ jsxs47(
|
|
21605
|
+
TouchableOpacity24,
|
|
20903
21606
|
{
|
|
20904
|
-
style: [
|
|
21607
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(onBack === "signout" ? colors.error : colors.primary, 0.1) }],
|
|
20905
21608
|
onPress: handleAction,
|
|
20906
21609
|
activeOpacity: 0.7,
|
|
20907
21610
|
accessibilityRole: "button",
|
|
20908
21611
|
children: [
|
|
20909
|
-
/* @__PURE__ */
|
|
21612
|
+
/* @__PURE__ */ jsx70(Svg3, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: onBack === "signout" ? /* @__PURE__ */ jsx70(
|
|
20910
21613
|
Path3,
|
|
20911
21614
|
{
|
|
20912
21615
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20915,7 +21618,7 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
20915
21618
|
strokeLinecap: "round",
|
|
20916
21619
|
strokeLinejoin: "round"
|
|
20917
21620
|
}
|
|
20918
|
-
) : /* @__PURE__ */
|
|
21621
|
+
) : /* @__PURE__ */ jsx70(
|
|
20919
21622
|
Path3,
|
|
20920
21623
|
{
|
|
20921
21624
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20925,13 +21628,13 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
20925
21628
|
strokeLinejoin: "round"
|
|
20926
21629
|
}
|
|
20927
21630
|
) }),
|
|
20928
|
-
/* @__PURE__ */
|
|
21631
|
+
/* @__PURE__ */ jsx70(Text44, { style: [styles56.actionLabel, { color: onBack === "signout" ? colors.error : colors.primary }], children: onBack === "signout" ? t("signOut") || "Sign Out" : t("back") || "Back" })
|
|
20929
21632
|
]
|
|
20930
21633
|
}
|
|
20931
21634
|
) : null
|
|
20932
21635
|
] });
|
|
20933
21636
|
};
|
|
20934
|
-
var
|
|
21637
|
+
var styles56 = StyleSheet57.create({
|
|
20935
21638
|
identity: {
|
|
20936
21639
|
flexDirection: "row",
|
|
20937
21640
|
alignItems: "center",
|
|
@@ -20972,33 +21675,33 @@ var styles54 = StyleSheet55.create({
|
|
|
20972
21675
|
});
|
|
20973
21676
|
|
|
20974
21677
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
20975
|
-
import { Fragment as Fragment19, jsx as
|
|
21678
|
+
import { Fragment as Fragment19, jsx as jsx71, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
20976
21679
|
function Navbar({ mode = "primary", onBack }) {
|
|
20977
|
-
const { t } =
|
|
21680
|
+
const { t } = useTranslation32();
|
|
20978
21681
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20979
21682
|
const { organizationName, email } = useAuth();
|
|
20980
21683
|
const { colors, branding } = useTheme();
|
|
20981
|
-
const [locale, setLocale] =
|
|
20982
|
-
const [menuOpen, setMenuOpen] =
|
|
21684
|
+
const [locale, setLocale] = useState26(i18n_default.language || "en");
|
|
21685
|
+
const [menuOpen, setMenuOpen] = useState26(false);
|
|
20983
21686
|
const unreadCount = useUnreadCount();
|
|
20984
21687
|
const { status: pageStatus } = usePageStatus();
|
|
20985
21688
|
const pageChrome = PAGE_CHROME_BY_PAGE[currentPage] || PAGE_CHROME_BY_PAGE["consent-manager"];
|
|
20986
21689
|
const isDetail = mode === "detail";
|
|
20987
|
-
|
|
21690
|
+
useEffect22(() => {
|
|
20988
21691
|
const handleLanguageChanged = () => setLocale(i18n_default.language);
|
|
20989
21692
|
i18n_default.on("languageChanged", handleLanguageChanged);
|
|
20990
21693
|
return () => {
|
|
20991
21694
|
i18n_default.off("languageChanged", handleLanguageChanged);
|
|
20992
21695
|
};
|
|
20993
21696
|
}, []);
|
|
20994
|
-
const handleLanguageChange =
|
|
21697
|
+
const handleLanguageChange = useCallback15((value) => {
|
|
20995
21698
|
i18n_default.changeLanguage(value);
|
|
20996
21699
|
}, []);
|
|
20997
21700
|
const brandLabel = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
20998
21701
|
const accountLabel = brandLabel || email || t("account") || "Account";
|
|
20999
|
-
const brandLockup = /* @__PURE__ */
|
|
21000
|
-
/* @__PURE__ */
|
|
21001
|
-
/* @__PURE__ */
|
|
21702
|
+
const brandLockup = /* @__PURE__ */ jsxs48(View55, { style: styles57.brandRow, children: [
|
|
21703
|
+
/* @__PURE__ */ jsx71(PCAvatar, { name: organizationName || brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 }),
|
|
21704
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.brandText, { color: colors.text }], numberOfLines: 1, children: brandLabel })
|
|
21002
21705
|
] });
|
|
21003
21706
|
const handleDetailBack = () => {
|
|
21004
21707
|
if (currentPage === "case-details") {
|
|
@@ -21010,26 +21713,26 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21010
21713
|
}
|
|
21011
21714
|
};
|
|
21012
21715
|
if (isDetail) {
|
|
21013
|
-
return /* @__PURE__ */
|
|
21014
|
-
/* @__PURE__ */
|
|
21015
|
-
|
|
21716
|
+
return /* @__PURE__ */ jsxs48(Fragment19, { children: [
|
|
21717
|
+
/* @__PURE__ */ jsx71(
|
|
21718
|
+
View55,
|
|
21016
21719
|
{
|
|
21017
21720
|
style: [
|
|
21018
|
-
|
|
21019
|
-
|
|
21721
|
+
styles57.container,
|
|
21722
|
+
styles57.detailContainer,
|
|
21020
21723
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21021
21724
|
],
|
|
21022
|
-
children: /* @__PURE__ */
|
|
21023
|
-
/* @__PURE__ */
|
|
21024
|
-
|
|
21725
|
+
children: /* @__PURE__ */ jsxs48(View55, { style: styles57.detailRow, children: [
|
|
21726
|
+
/* @__PURE__ */ jsx71(
|
|
21727
|
+
TouchableOpacity25,
|
|
21025
21728
|
{
|
|
21026
|
-
style:
|
|
21729
|
+
style: styles57.backButton,
|
|
21027
21730
|
onPress: handleDetailBack,
|
|
21028
21731
|
activeOpacity: 0.7,
|
|
21029
21732
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21030
21733
|
accessibilityRole: "button",
|
|
21031
21734
|
accessibilityLabel: t("back") || "Back",
|
|
21032
|
-
children: /* @__PURE__ */
|
|
21735
|
+
children: /* @__PURE__ */ jsx71(Svg4, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx71(
|
|
21033
21736
|
Path4,
|
|
21034
21737
|
{
|
|
21035
21738
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21041,36 +21744,36 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21041
21744
|
) })
|
|
21042
21745
|
}
|
|
21043
21746
|
),
|
|
21044
|
-
/* @__PURE__ */
|
|
21045
|
-
/* @__PURE__ */
|
|
21046
|
-
pageStatus ? /* @__PURE__ */
|
|
21747
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.detailTitleWrap, children: [
|
|
21748
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.detailTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21749
|
+
pageStatus ? /* @__PURE__ */ jsx71(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21047
21750
|
] })
|
|
21048
21751
|
] })
|
|
21049
21752
|
}
|
|
21050
21753
|
),
|
|
21051
|
-
/* @__PURE__ */
|
|
21754
|
+
/* @__PURE__ */ jsx71(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21052
21755
|
] });
|
|
21053
21756
|
}
|
|
21054
|
-
return /* @__PURE__ */
|
|
21055
|
-
/* @__PURE__ */
|
|
21056
|
-
|
|
21757
|
+
return /* @__PURE__ */ jsxs48(Fragment19, { children: [
|
|
21758
|
+
/* @__PURE__ */ jsxs48(
|
|
21759
|
+
View55,
|
|
21057
21760
|
{
|
|
21058
21761
|
style: [
|
|
21059
|
-
|
|
21762
|
+
styles57.container,
|
|
21060
21763
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21061
21764
|
],
|
|
21062
21765
|
children: [
|
|
21063
|
-
/* @__PURE__ */
|
|
21064
|
-
onBack ? /* @__PURE__ */
|
|
21065
|
-
|
|
21766
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.appBar, children: [
|
|
21767
|
+
onBack ? /* @__PURE__ */ jsx71(
|
|
21768
|
+
TouchableOpacity25,
|
|
21066
21769
|
{
|
|
21067
|
-
style:
|
|
21770
|
+
style: styles57.backButton,
|
|
21068
21771
|
onPress: () => navigateBack(onBack),
|
|
21069
21772
|
activeOpacity: 0.7,
|
|
21070
21773
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21071
21774
|
accessibilityRole: "button",
|
|
21072
21775
|
accessibilityLabel: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out",
|
|
21073
|
-
children: /* @__PURE__ */
|
|
21776
|
+
children: /* @__PURE__ */ jsx71(Svg4, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx71(
|
|
21074
21777
|
Path4,
|
|
21075
21778
|
{
|
|
21076
21779
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21082,39 +21785,39 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21082
21785
|
) })
|
|
21083
21786
|
}
|
|
21084
21787
|
) : null,
|
|
21085
|
-
/* @__PURE__ */
|
|
21086
|
-
/* @__PURE__ */
|
|
21087
|
-
/* @__PURE__ */
|
|
21088
|
-
/* @__PURE__ */
|
|
21089
|
-
/* @__PURE__ */
|
|
21090
|
-
|
|
21788
|
+
/* @__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 }),
|
|
21789
|
+
/* @__PURE__ */ jsxs48(View55, { style: styles57.actions, children: [
|
|
21790
|
+
/* @__PURE__ */ jsx71(NotificationBell, { count: unreadCount, onPress: () => navigateTo("notifications") }),
|
|
21791
|
+
/* @__PURE__ */ jsx71(PCSelect, { value: locale, options: languageOptions, onChange: handleLanguageChange, placeholder: t("language"), compact: true }),
|
|
21792
|
+
/* @__PURE__ */ jsx71(
|
|
21793
|
+
TouchableOpacity25,
|
|
21091
21794
|
{
|
|
21092
|
-
style:
|
|
21795
|
+
style: styles57.avatarButton,
|
|
21093
21796
|
onPress: () => setMenuOpen(true),
|
|
21094
21797
|
activeOpacity: 0.7,
|
|
21095
21798
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21096
21799
|
accessibilityRole: "button",
|
|
21097
21800
|
accessibilityLabel: accountLabel,
|
|
21098
|
-
children: /* @__PURE__ */
|
|
21801
|
+
children: /* @__PURE__ */ jsx71(PCAvatar, { name: organizationName || accountLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 })
|
|
21099
21802
|
}
|
|
21100
21803
|
)
|
|
21101
21804
|
] })
|
|
21102
21805
|
] }),
|
|
21103
|
-
/* @__PURE__ */
|
|
21104
|
-
/* @__PURE__ */
|
|
21105
|
-
pageStatus ? /* @__PURE__ */
|
|
21806
|
+
/* @__PURE__ */ jsx71(View55, { style: styles57.pageHeader, children: /* @__PURE__ */ jsxs48(View55, { style: styles57.titleRow, children: [
|
|
21807
|
+
/* @__PURE__ */ jsx71(Text45, { style: [styles57.pageTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21808
|
+
pageStatus ? /* @__PURE__ */ jsx71(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21106
21809
|
] }) })
|
|
21107
21810
|
]
|
|
21108
21811
|
}
|
|
21109
21812
|
),
|
|
21110
|
-
/* @__PURE__ */
|
|
21813
|
+
/* @__PURE__ */ jsx71(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21111
21814
|
] });
|
|
21112
21815
|
}
|
|
21113
|
-
var
|
|
21816
|
+
var styles57 = StyleSheet58.create({
|
|
21114
21817
|
container: {
|
|
21115
21818
|
paddingHorizontal: spacing.lg,
|
|
21116
21819
|
paddingBottom: spacing.md,
|
|
21117
|
-
borderBottomWidth:
|
|
21820
|
+
borderBottomWidth: StyleSheet58.hairlineWidth
|
|
21118
21821
|
},
|
|
21119
21822
|
detailContainer: {
|
|
21120
21823
|
paddingBottom: spacing.sm
|
|
@@ -21194,10 +21897,10 @@ var styles55 = StyleSheet56.create({
|
|
|
21194
21897
|
});
|
|
21195
21898
|
|
|
21196
21899
|
// src/RedactoPrivacyCenter/components/BottomTabBar.tsx
|
|
21197
|
-
import { useState as
|
|
21198
|
-
import { Animated as Animated14, StyleSheet as
|
|
21199
|
-
import { useTranslation as
|
|
21200
|
-
import { jsx as
|
|
21900
|
+
import { useState as useState27 } from "react";
|
|
21901
|
+
import { Animated as Animated14, StyleSheet as StyleSheet59, Text as Text46, TouchableOpacity as TouchableOpacity26, View as View56 } from "react-native";
|
|
21902
|
+
import { useTranslation as useTranslation33 } from "react-i18next";
|
|
21903
|
+
import { jsx as jsx72, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
21201
21904
|
var TAB_ITEMS = [
|
|
21202
21905
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consents", icon: "shield-check" },
|
|
21203
21906
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Requests", icon: "message-circle-warning" },
|
|
@@ -21208,10 +21911,10 @@ var PAD_H = spacing.lg;
|
|
|
21208
21911
|
var PILL_WIDTH = 56;
|
|
21209
21912
|
var PILL_HEIGHT = 34;
|
|
21210
21913
|
function BottomTabBar({ showFooter = true }) {
|
|
21211
|
-
const { t } =
|
|
21914
|
+
const { t } = useTranslation33();
|
|
21212
21915
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21213
21916
|
const { colors } = useTheme();
|
|
21214
|
-
const [rowWidth, setRowWidth] =
|
|
21917
|
+
const [rowWidth, setRowWidth] = useState27(0);
|
|
21215
21918
|
const innerWidth = Math.max(0, rowWidth - PAD_H * 2);
|
|
21216
21919
|
const tabWidth = innerWidth > 0 ? innerWidth / TAB_ITEMS.length : 0;
|
|
21217
21920
|
const activeIndex = TAB_ITEMS.findIndex(
|
|
@@ -21219,13 +21922,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21219
21922
|
);
|
|
21220
21923
|
const { translateX } = useAnimatedTabIndicator(Math.max(0, activeIndex), tabWidth);
|
|
21221
21924
|
const onLayout = (e) => setRowWidth(e.nativeEvent.layout.width);
|
|
21222
|
-
return /* @__PURE__ */
|
|
21223
|
-
/* @__PURE__ */
|
|
21224
|
-
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */
|
|
21925
|
+
return /* @__PURE__ */ jsxs49(View56, { style: [styles58.wrapper, { backgroundColor: colors.canvasSubtle, borderTopColor: colors.hairline }], children: [
|
|
21926
|
+
/* @__PURE__ */ jsxs49(View56, { style: styles58.container, onLayout, children: [
|
|
21927
|
+
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ jsx72(
|
|
21225
21928
|
Animated14.View,
|
|
21226
21929
|
{
|
|
21227
21930
|
style: [
|
|
21228
|
-
|
|
21931
|
+
styles58.pill,
|
|
21229
21932
|
{
|
|
21230
21933
|
width: PILL_WIDTH,
|
|
21231
21934
|
left: PAD_H + (tabWidth - PILL_WIDTH) / 2,
|
|
@@ -21238,17 +21941,17 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21238
21941
|
TAB_ITEMS.map((item) => {
|
|
21239
21942
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
21240
21943
|
const label = t(item.labelKey) || item.fallback;
|
|
21241
|
-
return /* @__PURE__ */
|
|
21242
|
-
|
|
21944
|
+
return /* @__PURE__ */ jsxs49(
|
|
21945
|
+
TouchableOpacity26,
|
|
21243
21946
|
{
|
|
21244
|
-
style:
|
|
21947
|
+
style: styles58.tab,
|
|
21245
21948
|
onPress: () => navigateTo(item.page),
|
|
21246
21949
|
activeOpacity: 0.7,
|
|
21247
21950
|
accessibilityRole: "tab",
|
|
21248
21951
|
accessibilityState: { selected: isActive },
|
|
21249
21952
|
accessibilityLabel: label,
|
|
21250
21953
|
children: [
|
|
21251
|
-
/* @__PURE__ */
|
|
21954
|
+
/* @__PURE__ */ jsx72(View56, { style: styles58.iconWrap, children: /* @__PURE__ */ jsx72(
|
|
21252
21955
|
Icon,
|
|
21253
21956
|
{
|
|
21254
21957
|
name: item.icon,
|
|
@@ -21257,10 +21960,10 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21257
21960
|
strokeWidth: isActive ? 2.1 : 1.85
|
|
21258
21961
|
}
|
|
21259
21962
|
) }),
|
|
21260
|
-
/* @__PURE__ */
|
|
21261
|
-
|
|
21963
|
+
/* @__PURE__ */ jsx72(
|
|
21964
|
+
Text46,
|
|
21262
21965
|
{
|
|
21263
|
-
style: [
|
|
21966
|
+
style: [styles58.tabLabel, { color: isActive ? colors.primary : colors.textSecondary }],
|
|
21264
21967
|
numberOfLines: 1,
|
|
21265
21968
|
children: label
|
|
21266
21969
|
}
|
|
@@ -21271,13 +21974,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21271
21974
|
);
|
|
21272
21975
|
})
|
|
21273
21976
|
] }),
|
|
21274
|
-
showFooter ? /* @__PURE__ */
|
|
21275
|
-
/* @__PURE__ */
|
|
21977
|
+
showFooter ? /* @__PURE__ */ jsx72(Footer, { inline: true }) : null,
|
|
21978
|
+
/* @__PURE__ */ jsx72(View56, { style: { height: BOTTOM_INSET } })
|
|
21276
21979
|
] });
|
|
21277
21980
|
}
|
|
21278
|
-
var
|
|
21981
|
+
var styles58 = StyleSheet59.create({
|
|
21279
21982
|
wrapper: {
|
|
21280
|
-
borderTopWidth:
|
|
21983
|
+
borderTopWidth: StyleSheet59.hairlineWidth
|
|
21281
21984
|
},
|
|
21282
21985
|
container: {
|
|
21283
21986
|
flexDirection: "row",
|