@redacto.io/consent-sdk-react-native 5.0.0-beta.7 → 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/dist/index.js +6 -3
- package/dist/index.mjs +6 -3
- package/dist/privacy-center.d.mts +35 -0
- package/dist/privacy-center.d.ts +35 -0
- package/dist/privacy-center.js +1070 -533
- package/dist/privacy-center.mjs +1041 -504
- package/package.json +1 -1
package/dist/privacy-center.js
CHANGED
|
@@ -121,10 +121,10 @@ __export(privacy_center_exports, {
|
|
|
121
121
|
module.exports = __toCommonJS(privacy_center_exports);
|
|
122
122
|
|
|
123
123
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
124
|
-
var
|
|
124
|
+
var import_react45 = require("react");
|
|
125
125
|
var import_react_query2 = require("@tanstack/react-query");
|
|
126
|
-
var
|
|
127
|
-
var
|
|
126
|
+
var import_react_i18next31 = require("react-i18next");
|
|
127
|
+
var import_react_native66 = require("react-native");
|
|
128
128
|
|
|
129
129
|
// src/RedactoPrivacyCenter/lib/i18n.ts
|
|
130
130
|
var import_i18next = __toESM(require("i18next"));
|
|
@@ -541,7 +541,14 @@ var translation_default = {
|
|
|
541
541
|
submittingAs: "Submitting as {{email}}",
|
|
542
542
|
tapToChooseFile: "Tap to choose a file",
|
|
543
543
|
view: "View",
|
|
544
|
-
whatDoYouNeed: "What do you need?"
|
|
544
|
+
whatDoYouNeed: "What do you need?",
|
|
545
|
+
sessionExpiredTitle: "Your session has expired",
|
|
546
|
+
sessionExpiredDescription: "Please sign in again to continue.",
|
|
547
|
+
chooseYourProfile: "Choose your profile",
|
|
548
|
+
loginIdentifierLinkedToMultipleProfiles: "The login identifier is linked to more than one profile. Choose the one you want to view.",
|
|
549
|
+
userIdLabel: "User ID: {{id}}",
|
|
550
|
+
signingInEllipsis: "Signing in\u2026",
|
|
551
|
+
switchProfile: "Switch profile"
|
|
545
552
|
};
|
|
546
553
|
|
|
547
554
|
// src/RedactoPrivacyCenter/locales/as/translation.json
|
|
@@ -955,7 +962,14 @@ var translation_default2 = {
|
|
|
955
962
|
submittingAs: "{{email}} \u09B9\u09BF\u099A\u09BE\u09AA\u09C7 \u09A6\u09BE\u0996\u09BF\u09B2 \u0995\u09F0\u09BF \u0986\u099B\u09C7",
|
|
956
963
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09BF\u09AC\u09B2\u09C8 \u099F\u09BF\u09AA\u0995",
|
|
957
964
|
view: "\u099A\u09BE\u0993\u0995",
|
|
958
|
-
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?"
|
|
965
|
+
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?",
|
|
966
|
+
sessionExpiredTitle: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u099B\u09C7\u099A\u09A8 \u09B6\u09C7\u09B7 \u09B9\u09C8\u099B\u09C7",
|
|
967
|
+
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",
|
|
968
|
+
chooseYourProfile: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09A8\u09BF \u0995\u09F0\u0995",
|
|
969
|
+
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",
|
|
970
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09F1\u09B9\u09BE\u09F0\u0995\u09BE\u09F0\u09C0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
971
|
+
signingInEllipsis: "\u099B\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u09C8 \u0986\u099B\u09C7\u2026",
|
|
972
|
+
switchProfile: "\u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09B8\u09B2\u09A8\u09BF \u0995\u09F0\u0995"
|
|
959
973
|
};
|
|
960
974
|
|
|
961
975
|
// src/RedactoPrivacyCenter/locales/bn/translation.json
|
|
@@ -1369,7 +1383,14 @@ var translation_default3 = {
|
|
|
1369
1383
|
submittingAs: "{{email}} \u09B9\u09BF\u09B8\u09BE\u09AC\u09C7 \u099C\u09AE\u09BE \u09A6\u09C7\u0993\u09AF\u09BC\u09BE \u09B9\u099A\u09CD\u099B\u09C7",
|
|
1370
1384
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A4\u09C7 \u099F\u09CD\u09AF\u09BE\u09AA \u0995\u09B0\u09C1\u09A8",
|
|
1371
1385
|
view: "\u09A6\u09C7\u0996\u09C1\u09A8",
|
|
1372
|
-
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?"
|
|
1386
|
+
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?",
|
|
1387
|
+
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",
|
|
1388
|
+
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",
|
|
1389
|
+
chooseYourProfile: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A8",
|
|
1390
|
+
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",
|
|
1391
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
1392
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u099A\u09CD\u099B\u09C7\u2026",
|
|
1393
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8 \u0995\u09B0\u09C1\u09A8"
|
|
1373
1394
|
};
|
|
1374
1395
|
|
|
1375
1396
|
// src/RedactoPrivacyCenter/locales/brx/translation.json
|
|
@@ -1783,7 +1804,14 @@ var translation_default4 = {
|
|
|
1783
1804
|
submittingAs: "{{email}} \u092E\u0939\u0930\u0948 \u0917\u0925\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B",
|
|
1784
1805
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916\u0928\u094B \u091F\u0947\u092C \u0916\u093E\u0932\u093E\u092E",
|
|
1785
1806
|
view: "\u0928\u093E\u092F",
|
|
1786
|
-
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?"
|
|
1807
|
+
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?",
|
|
1808
|
+
sessionExpiredTitle: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u0938\u0947\u0938\u0928 \u091C\u094B\u092C\u092C\u093E\u092F",
|
|
1809
|
+
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",
|
|
1810
|
+
chooseYourProfile: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u092A\u094D\u0930\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916",
|
|
1811
|
+
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",
|
|
1812
|
+
userIdLabel: "\u092F\u0942\u091C\u0930 \u0906\u0908\u0921\u0940: {{id}}",
|
|
1813
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B \u0926\u0902\u2026",
|
|
1814
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0938\u094B\u0932\u093E\u092F"
|
|
1787
1815
|
};
|
|
1788
1816
|
|
|
1789
1817
|
// src/RedactoPrivacyCenter/locales/doi/translation.json
|
|
@@ -2197,7 +2225,14 @@ var translation_default5 = {
|
|
|
2197
2225
|
submittingAs: "{{email}} \u0926\u0947 \u0930\u0942\u092A \u091A \u091C\u092E\u093E\u0902 \u0915\u0930\u0926\u0947",
|
|
2198
2226
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u091F\u0948\u092A \u0915\u0930\u094B",
|
|
2199
2227
|
view: "\u0926\u093F\u0915\u094D\u0916\u094B",
|
|
2200
|
-
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?"
|
|
2228
|
+
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?",
|
|
2229
|
+
sessionExpiredTitle: "\u0924\u0941\u0902\u0926\u093E \u0938\u0924\u094D\u0930 \u0916\u0924\u092E \u0939\u094B\u0908 \u0917\u0947\u0906 \u0910",
|
|
2230
|
+
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",
|
|
2231
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u094B",
|
|
2232
|
+
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",
|
|
2233
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
2234
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B\u0906 \u0915\u0930\u0926\u093E \u0910\u2026",
|
|
2235
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094B"
|
|
2201
2236
|
};
|
|
2202
2237
|
|
|
2203
2238
|
// src/RedactoPrivacyCenter/locales/gom/translation.json
|
|
@@ -2611,7 +2646,14 @@ var translation_default6 = {
|
|
|
2611
2646
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0942\u0923 \u0938\u093E\u0926\u0930 \u0915\u0930\u0924\u093E",
|
|
2612
2647
|
tapToChooseFile: "\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u092A\u093E\u0915 \u091F\u0945\u092A \u0915\u0930\u093E\u0924",
|
|
2613
2648
|
view: "\u092A\u0933\u092F\u093E\u0924",
|
|
2614
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?"
|
|
2649
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?",
|
|
2650
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947\u0902 \u0938\u0924\u094D\u0930 \u0938\u094B\u0902\u092A\u0932\u093E\u0902",
|
|
2651
|
+
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.",
|
|
2652
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0947\u0902 \u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u093E\u0924",
|
|
2653
|
+
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.",
|
|
2654
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u092A\u0940 \u0906\u092F\u0921\u0940: {{id}}",
|
|
2655
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u0935\u0928 \u0906\u0938\u093E\u2026",
|
|
2656
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u092C\u0926\u0932\u093E"
|
|
2615
2657
|
};
|
|
2616
2658
|
|
|
2617
2659
|
// src/RedactoPrivacyCenter/locales/gu/translation.json
|
|
@@ -3025,7 +3067,14 @@ var translation_default7 = {
|
|
|
3025
3067
|
submittingAs: "{{email}} \u0AA4\u0AB0\u0AC0\u0A95\u0AC7 \u0AB8\u0AAC\u0AAE\u0ABF\u0A9F \u0A95\u0AB0\u0AC0 \u0AB0\u0AB9\u0ACD\u0AAF\u0ABE \u0A9B\u0ACB",
|
|
3026
3068
|
tapToChooseFile: "\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0AB5\u0ABE \u0A9F\u0AC5\u0AAA \u0A95\u0AB0\u0ACB",
|
|
3027
3069
|
view: "\u0A9C\u0AC1\u0A93",
|
|
3028
|
-
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?"
|
|
3070
|
+
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?",
|
|
3071
|
+
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",
|
|
3072
|
+
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.",
|
|
3073
|
+
chooseYourProfile: "\u0AA4\u0AAE\u0ABE\u0AB0\u0AC0 \u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0ACB",
|
|
3074
|
+
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.",
|
|
3075
|
+
userIdLabel: "\u0AB5\u0AAA\u0AB0\u0ABE\u0AB6\u0A95\u0AB0\u0ACD\u0AA4\u0ABE \u0A86\u0A88\u0AA1\u0AC0: {{id}}",
|
|
3076
|
+
signingInEllipsis: "\u0AB8\u0ABE\u0A87\u0AA8 \u0A87\u0AA8 \u0AA5\u0A88 \u0AB0\u0AB9\u0ACD\u0AAF\u0AC1\u0A82 \u0A9B\u0AC7\u2026",
|
|
3077
|
+
switchProfile: "\u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAC\u0AA6\u0AB2\u0ACB"
|
|
3029
3078
|
};
|
|
3030
3079
|
|
|
3031
3080
|
// src/RedactoPrivacyCenter/locales/hi/translation.json
|
|
@@ -3439,7 +3488,14 @@ var translation_default8 = {
|
|
|
3439
3488
|
submittingAs: "{{email}} \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0938\u092C\u092E\u093F\u091F \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
|
3440
3489
|
tapToChooseFile: "\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091F\u0948\u092A \u0915\u0930\u0947\u0902",
|
|
3441
3490
|
view: "\u0926\u0947\u0916\u0947\u0902",
|
|
3442
|
-
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?"
|
|
3491
|
+
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?",
|
|
3492
|
+
sessionExpiredTitle: "\u0906\u092A\u0915\u093E \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B \u0917\u092F\u093E \u0939\u0948",
|
|
3493
|
+
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",
|
|
3494
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0947\u0902",
|
|
3495
|
+
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",
|
|
3496
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
3497
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B \u0930\u0939\u093E \u0939\u0948\u2026",
|
|
3498
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u092C\u0926\u0932\u0947\u0902"
|
|
3443
3499
|
};
|
|
3444
3500
|
|
|
3445
3501
|
// src/RedactoPrivacyCenter/locales/kn/translation.json
|
|
@@ -3853,7 +3909,14 @@ var translation_default9 = {
|
|
|
3853
3909
|
submittingAs: "{{email}} \u0C86\u0C97\u0CBF \u0CB8\u0CB2\u0CCD\u0CB2\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6",
|
|
3854
3910
|
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",
|
|
3855
3911
|
view: "\u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CBF",
|
|
3856
|
-
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?"
|
|
3912
|
+
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?",
|
|
3913
|
+
sessionExpiredTitle: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CB8\u0CC6\u0CB7\u0CA8\u0CCD \u0C85\u0CB5\u0CA7\u0CBF \u0CAE\u0CC1\u0C97\u0CBF\u0CA6\u0CBF\u0CA6\u0CC6",
|
|
3914
|
+
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.",
|
|
3915
|
+
chooseYourProfile: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CBF",
|
|
3916
|
+
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.",
|
|
3917
|
+
userIdLabel: "\u0CAC\u0CB3\u0C95\u0CC6\u0CA6\u0CBE\u0CB0 \u0C90\u0CA1\u0CBF: {{id}}",
|
|
3918
|
+
signingInEllipsis: "\u0CB8\u0CC8\u0CA8\u0CCD \u0C87\u0CA8\u0CCD \u0C86\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6\u2026",
|
|
3919
|
+
switchProfile: "\u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0CAC\u0CA6\u0CB2\u0CBE\u0CAF\u0CBF\u0CB8\u0CBF"
|
|
3857
3920
|
};
|
|
3858
3921
|
|
|
3859
3922
|
// src/RedactoPrivacyCenter/locales/ks/translation.json
|
|
@@ -4267,7 +4330,14 @@ var translation_default10 = {
|
|
|
4267
4330
|
submittingAs: "{{email}} \u067E\u0620\u0658\u0679\u06BE \u062C\u0645\u0639 \u06A9\u0631\u0627\u0646",
|
|
4268
4331
|
tapToChooseFile: "\u0641\u0627\u06CC\u0644 \u0698\u0627\u0631\u0646\u06C1 \u062E\u0672\u0637\u0631\u0655 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u0648",
|
|
4269
4332
|
view: "\u0648\u064F\u0686\u06BE\u0650\u0648",
|
|
4270
|
-
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F"
|
|
4333
|
+
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F",
|
|
4334
|
+
sessionExpiredTitle: "\u062A\u064F\u06C1\u0646\u065B\u062F \u0633\u06CC\u0634\u064E\u0646 \u062E\u062A\u0645 \u06AF\u06C4\u0645\u064F\u062A",
|
|
4335
|
+
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",
|
|
4336
|
+
chooseYourProfile: "\u067E\u0646\u0646\u06C1\u0655 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0698\u0627\u0631\u0655\u0648",
|
|
4337
|
+
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",
|
|
4338
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
4339
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06AF\u0698\u06BE\u0627\u0646 \u0686\u06BE\u064F\u2026",
|
|
4340
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0628\u062F\u0644\u0627\u0648"
|
|
4271
4341
|
};
|
|
4272
4342
|
|
|
4273
4343
|
// src/RedactoPrivacyCenter/locales/mai/translation.json
|
|
@@ -4681,7 +4751,14 @@ var translation_default11 = {
|
|
|
4681
4751
|
submittingAs: "{{email}} \u0930\u0942\u092A\u092E\u0947 \u091C\u092E\u093E \u0915\u093D \u0930\u0939\u0932 \u091B\u0940",
|
|
4682
4752
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u092C\u093E\u0915 \u0932\u0947\u0932 \u091F\u0948\u092A \u0915\u0930\u0942",
|
|
4683
4753
|
view: "\u0926\u0947\u0916\u0942",
|
|
4684
|
-
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?"
|
|
4754
|
+
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?",
|
|
4755
|
+
sessionExpiredTitle: "\u0905\u0939\u093E\u0901\u0915 \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u093D \u0917\u0947\u0932 \u0905\u091B\u093F",
|
|
4756
|
+
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",
|
|
4757
|
+
chooseYourProfile: "\u0905\u092A\u0928 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0942",
|
|
4758
|
+
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",
|
|
4759
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0907\u0921\u0940: {{id}}",
|
|
4760
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u092D' \u0930\u0939\u0932 \u0905\u091B\u093F\u2026",
|
|
4761
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u0942"
|
|
4685
4762
|
};
|
|
4686
4763
|
|
|
4687
4764
|
// src/RedactoPrivacyCenter/locales/ml/translation.json
|
|
@@ -5095,7 +5172,14 @@ var translation_default12 = {
|
|
|
5095
5172
|
submittingAs: "{{email}} \u0D06\u0D2F\u0D3F \u0D38\u0D2E\u0D7C\u0D2A\u0D4D\u0D2A\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41",
|
|
5096
5173
|
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",
|
|
5097
5174
|
view: "\u0D15\u0D3E\u0D23\u0D41\u0D15",
|
|
5098
|
-
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?"
|
|
5175
|
+
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?",
|
|
5176
|
+
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",
|
|
5177
|
+
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.",
|
|
5178
|
+
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",
|
|
5179
|
+
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.",
|
|
5180
|
+
userIdLabel: "\u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D43 \u0D10\u0D21\u0D3F: {{id}}",
|
|
5181
|
+
signingInEllipsis: "\u0D38\u0D48\u0D7B \u0D07\u0D7B \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D28\u0D4D\u0D28\u0D41\u2026",
|
|
5182
|
+
switchProfile: "\u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D2E\u0D3E\u0D31\u0D4D\u0D31\u0D41\u0D15"
|
|
5099
5183
|
};
|
|
5100
5184
|
|
|
5101
5185
|
// src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json
|
|
@@ -5509,7 +5593,14 @@ var translation_default13 = {
|
|
|
5509
5593
|
submittingAs: "{{email}} \uABD1\uABE3\uABCF\uABC5 \uABCA\uABE5\uABD2\uABE0\uABC2\uABE4",
|
|
5510
5594
|
tapToChooseFile: "\uABD0\uABE5\uABCF\uABDC \uABC8\uABDF\uABC5\uABD5 \uABC7\uABE6\uABDE \uABC7\uABE7",
|
|
5511
5595
|
view: "\uABCC\uABE6\uABE1\uABCE",
|
|
5512
|
-
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?"
|
|
5596
|
+
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?",
|
|
5597
|
+
sessionExpiredTitle: "\uABD1\uABD7\uABE3\uABDD\uABD2\uABE4 \uABC1\uABE6\uABC1\uABDF \uABC2\uABE3\uABCF\uABD4\uABE6",
|
|
5598
|
+
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",
|
|
5599
|
+
chooseYourProfile: "\u09A8\u09B9\u09BE\u0995\u09CD\u0995\u09C0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u0996\u09A8\u09AC\u09BF\u09AF\u09BC\u09C1",
|
|
5600
|
+
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",
|
|
5601
|
+
userIdLabel: "\uABC3\uABE4\uABD1\uABE3\uABCF\uABD5 \uABD1\uABE5\uABCF\uABD7\uABE4: {{id}}",
|
|
5602
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09A4\u09CC\u09B0\u09BF\u2026",
|
|
5603
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09B9\u09CB\u0982\u09A6\u09CB\u0995-\u0989"
|
|
5513
5604
|
};
|
|
5514
5605
|
|
|
5515
5606
|
// src/RedactoPrivacyCenter/locales/mr/translation.json
|
|
@@ -5923,7 +6014,14 @@ var translation_default14 = {
|
|
|
5923
6014
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0923\u0942\u0928 \u0938\u092C\u092E\u093F\u091F \u0915\u0930\u0924 \u0906\u0939\u0947",
|
|
5924
6015
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u091F\u0945\u092A \u0915\u0930\u093E",
|
|
5925
6016
|
view: "\u092A\u0939\u093E",
|
|
5926
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?"
|
|
6017
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?",
|
|
6018
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947 \u0938\u0924\u094D\u0930 \u0938\u0902\u092A\u0932\u0947 \u0906\u0939\u0947",
|
|
6019
|
+
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.",
|
|
6020
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u093E",
|
|
6021
|
+
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.",
|
|
6022
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u0915\u0930\u094D\u0924\u093E \u0906\u092F\u0921\u0940: {{id}}",
|
|
6023
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0924 \u0906\u0939\u0947\u2026",
|
|
6024
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u093E"
|
|
5927
6025
|
};
|
|
5928
6026
|
|
|
5929
6027
|
// src/RedactoPrivacyCenter/locales/ne/translation.json
|
|
@@ -6337,7 +6435,14 @@ var translation_default15 = {
|
|
|
6337
6435
|
submittingAs: "{{email}} \u0915\u094B \u0930\u0942\u092A\u092E\u093E \u092A\u0947\u0936 \u0917\u0930\u094D\u0926\u0948",
|
|
6338
6436
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928 \u091F\u094D\u092F\u093E\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6339
6437
|
view: "\u0939\u0947\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6340
|
-
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?"
|
|
6438
|
+
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?",
|
|
6439
|
+
sessionExpiredTitle: "\u0924\u092A\u093E\u0908\u0902\u0915\u094B \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u090F\u0915\u094B \u091B",
|
|
6440
|
+
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",
|
|
6441
|
+
chooseYourProfile: "\u0906\u092B\u094D\u0928\u094B \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6442
|
+
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",
|
|
6443
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
6444
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u0941\u0901\u0926\u0948\u091B\u2026",
|
|
6445
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094D\u0928\u0941\u0939\u094B\u0938\u094D"
|
|
6341
6446
|
};
|
|
6342
6447
|
|
|
6343
6448
|
// src/RedactoPrivacyCenter/locales/or/translation.json
|
|
@@ -6751,7 +6856,14 @@ var translation_default16 = {
|
|
|
6751
6856
|
submittingAs: "{{email}} \u0B2D\u0B3E\u0B2C\u0B47 \u0B26\u0B3E\u0B16\u0B32 \u0B15\u0B30\u0B41\u0B1B\u0B28\u0B4D\u0B24\u0B3F",
|
|
6752
6857
|
tapToChooseFile: "\u0B2B\u0B3E\u0B07\u0B32 \u0B2C\u0B3E\u0B1B\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B1F\u0B4D\u0B5F\u0B3E\u0B2A \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41",
|
|
6753
6858
|
view: "\u0B26\u0B47\u0B16\u0B28\u0B4D\u0B24\u0B41",
|
|
6754
|
-
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?"
|
|
6859
|
+
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?",
|
|
6860
|
+
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",
|
|
6861
|
+
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",
|
|
6862
|
+
chooseYourProfile: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B3E\u0B1B\u0B28\u0B4D\u0B24\u0B41",
|
|
6863
|
+
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",
|
|
6864
|
+
userIdLabel: "\u0B2C\u0B4D\u0B5F\u0B2C\u0B39\u0B3E\u0B30\u0B15\u0B3E\u0B30\u0B40 \u0B06\u0B07\u0B21\u0B3F: {{id}}",
|
|
6865
|
+
signingInEllipsis: "\u0B38\u0B3E\u0B07\u0B28\u0B4D \u0B07\u0B28\u0B4D \u0B39\u0B47\u0B09\u0B1B\u0B3F\u2026",
|
|
6866
|
+
switchProfile: "\u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B26\u0B33\u0B3E\u0B28\u0B4D\u0B24\u0B41"
|
|
6755
6867
|
};
|
|
6756
6868
|
|
|
6757
6869
|
// src/RedactoPrivacyCenter/locales/pa/translation.json
|
|
@@ -7165,7 +7277,14 @@ var translation_default17 = {
|
|
|
7165
7277
|
submittingAs: "{{email}} \u0A35\u0A1C\u0A4B\u0A02 \u0A38\u0A2C\u0A2E\u0A3F\u0A1F \u0A15\u0A30 \u0A30\u0A39\u0A47 \u0A39\u0A4B",
|
|
7166
7278
|
tapToChooseFile: "\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A28 \u0A32\u0A08 \u0A1F\u0A48\u0A2A \u0A15\u0A30\u0A4B",
|
|
7167
7279
|
view: "\u0A26\u0A47\u0A16\u0A4B",
|
|
7168
|
-
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?"
|
|
7280
|
+
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?",
|
|
7281
|
+
sessionExpiredTitle: "\u0A24\u0A41\u0A39\u0A3E\u0A21\u0A3E \u0A38\u0A48\u0A38\u0A3C\u0A28 \u0A38\u0A2E\u0A3E\u0A2A\u0A24 \u0A39\u0A4B \u0A17\u0A3F\u0A06 \u0A39\u0A48",
|
|
7282
|
+
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",
|
|
7283
|
+
chooseYourProfile: "\u0A06\u0A2A\u0A23\u0A40 \u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A4B",
|
|
7284
|
+
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",
|
|
7285
|
+
userIdLabel: "\u0A09\u0A2A\u0A2F\u0A4B\u0A17\u0A15\u0A30\u0A24\u0A3E \u0A06\u0A08\u0A21\u0A40: {{id}}",
|
|
7286
|
+
signingInEllipsis: "\u0A38\u0A3E\u0A08\u0A28 \u0A07\u0A28 \u0A39\u0A4B \u0A30\u0A3F\u0A39\u0A3E \u0A39\u0A48\u2026",
|
|
7287
|
+
switchProfile: "\u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A2C\u0A26\u0A32\u0A4B"
|
|
7169
7288
|
};
|
|
7170
7289
|
|
|
7171
7290
|
// src/RedactoPrivacyCenter/locales/sa/translation.json
|
|
@@ -7579,7 +7698,14 @@ var translation_default18 = {
|
|
|
7579
7698
|
submittingAs: "{{email}} \u0907\u0924\u093F \u0938\u092E\u0930\u094D\u092A\u092F\u0928\u094D",
|
|
7580
7699
|
tapToChooseFile: "\u0938\u091E\u094D\u091A\u093F\u0915\u093E\u0902 \u091A\u0947\u0924\u0941\u0902 \u0938\u094D\u092A\u0943\u0936\u0924\u0941",
|
|
7581
7700
|
view: "\u092A\u0936\u094D\u092F",
|
|
7582
|
-
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?"
|
|
7701
|
+
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?",
|
|
7702
|
+
sessionExpiredTitle: "\u092D\u0935\u0924\u0903 \u0938\u0924\u094D\u0930\u0902 \u0938\u092E\u093E\u092A\u094D\u0924\u092E\u094D",
|
|
7703
|
+
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",
|
|
7704
|
+
chooseYourProfile: "\u0938\u094D\u0935\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u091A\u093F\u0928\u094B\u0924\u0941",
|
|
7705
|
+
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",
|
|
7706
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0915\u094D\u0924\u0943-\u0906\u092F\u0921\u0940: {{id}}",
|
|
7707
|
+
signingInEllipsis: "\u092A\u094D\u0930\u0935\u0947\u0936\u0903 \u0915\u094D\u0930\u093F\u092F\u0924\u0947\u2026",
|
|
7708
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u092A\u0930\u093F\u0935\u0930\u094D\u0924\u092F\u0924\u0941"
|
|
7583
7709
|
};
|
|
7584
7710
|
|
|
7585
7711
|
// src/RedactoPrivacyCenter/locales/sat/translation.json
|
|
@@ -7993,7 +8119,14 @@ var translation_default19 = {
|
|
|
7993
8119
|
submittingAs: "{{email}} \u1C5E\u1C6E\u1C60\u1C5F\u1C5B\u1C6E \u1C61\u1C5A\u1C62\u1C5F \u1C6E\u1C6B\u1C5F",
|
|
7994
8120
|
tapToChooseFile: "\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C74\u1C6E\u1C6F \u1C62\u1C6E",
|
|
7995
8121
|
view: "\u1C67\u1C6E\u1C5E \u1C62\u1C6E",
|
|
7996
|
-
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?"
|
|
8122
|
+
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?",
|
|
8123
|
+
sessionExpiredTitle: "\u1C5F\u1C62\u1C5F\u1C5C \u1C65\u1C6E\u1C65\u1C5A\u1C71 \u1C62\u1C69\u1C6A\u1C5F\u1C79\u1C6B\u1C6E\u1C71\u1C5F",
|
|
8124
|
+
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",
|
|
8125
|
+
chooseYourProfile: "\u1C5F\u1C62\u1C5F\u1C5C \u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C62\u1C6E",
|
|
8126
|
+
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",
|
|
8127
|
+
userIdLabel: "\u1C75\u1C6E\u1C75\u1C77\u1C5F\u1C68\u1C64\u1C6D\u1C5F\u1C79 \u1C5F\u1C6D\u1C70\u1C64: {{id}}",
|
|
8128
|
+
signingInEllipsis: "\u1C65\u1C5F\u1C6D\u1C64\u1C71 \u1C64\u1C71 \u1C6E\u1C6B\u1C5F\u1C6D\u2026",
|
|
8129
|
+
switchProfile: "\u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5A\u1C6B\u1C5A\u1C5E \u1C62\u1C6E"
|
|
7997
8130
|
};
|
|
7998
8131
|
|
|
7999
8132
|
// src/RedactoPrivacyCenter/locales/sd/translation.json
|
|
@@ -8407,7 +8540,14 @@ var translation_default20 = {
|
|
|
8407
8540
|
submittingAs: "{{email}} \u0637\u0648\u0631 \u062C\u0645\u0639 \u06AA\u0631\u064A \u0631\u0647\u064A\u0627 \u0622\u0647\u064A\u0648",
|
|
8408
8541
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u06BB \u0644\u0627\u0621\u0650 \u067D\u064A\u067E \u06AA\u0631\u064A\u0648",
|
|
8409
8542
|
view: "\u068F\u0633\u0648",
|
|
8410
|
-
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F"
|
|
8543
|
+
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F",
|
|
8544
|
+
sessionExpiredTitle: "\u062A\u0648\u0647\u0627\u0646 \u062C\u0648 \u0633\u064A\u0634\u0646 \u062E\u062A\u0645 \u067F\u064A \u0648\u064A\u0648 \u0622\u0647\u064A",
|
|
8545
|
+
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.",
|
|
8546
|
+
chooseYourProfile: "\u067E\u0646\u0647\u0646\u062C\u0648 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u064A\u0648",
|
|
8547
|
+
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.",
|
|
8548
|
+
userIdLabel: "\u064A\u0648\u0632\u0631 \u0622\u0626\u064A\u068A\u064A: {{id}}",
|
|
8549
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u067F\u064A \u0631\u0647\u064A\u0648 \u0622\u0647\u064A\u2026",
|
|
8550
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u064A\u0644 \u06AA\u0631\u064A\u0648"
|
|
8411
8551
|
};
|
|
8412
8552
|
|
|
8413
8553
|
// src/RedactoPrivacyCenter/locales/ta/translation.json
|
|
@@ -8821,7 +8961,14 @@ var translation_default21 = {
|
|
|
8821
8961
|
submittingAs: "{{email}} \u0B86\u0B95 \u0B9A\u0BAE\u0BB0\u0BCD\u0BAA\u0BCD\u0BAA\u0BBF\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
|
|
8822
8962
|
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",
|
|
8823
8963
|
view: "\u0BAA\u0BBE\u0BB0\u0BCD",
|
|
8824
|
-
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?"
|
|
8964
|
+
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?",
|
|
8965
|
+
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",
|
|
8966
|
+
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.",
|
|
8967
|
+
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",
|
|
8968
|
+
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.",
|
|
8969
|
+
userIdLabel: "\u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0B90\u0B9F\u0BBF: {{id}}",
|
|
8970
|
+
signingInEllipsis: "\u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0B95\u0BBF\u0BB1\u0BA4\u0BC1\u2026",
|
|
8971
|
+
switchProfile: "\u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BA4\u0BCD\u0BA4\u0BC8 \u0BAE\u0BBE\u0BB1\u0BCD\u0BB1\u0BC1"
|
|
8825
8972
|
};
|
|
8826
8973
|
|
|
8827
8974
|
// src/RedactoPrivacyCenter/locales/te/translation.json
|
|
@@ -9235,7 +9382,14 @@ var translation_default22 = {
|
|
|
9235
9382
|
submittingAs: "{{email}} \u0C17\u0C3E \u0C38\u0C2E\u0C30\u0C4D\u0C2A\u0C3F\u0C38\u0C4D\u0C24\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C41",
|
|
9236
9383
|
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",
|
|
9237
9384
|
view: "\u0C35\u0C40\u0C15\u0C4D\u0C37\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F",
|
|
9238
|
-
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?"
|
|
9385
|
+
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?",
|
|
9386
|
+
sessionExpiredTitle: "\u0C2E\u0C40 \u0C38\u0C46\u0C37\u0C28\u0C4D \u0C17\u0C21\u0C41\u0C35\u0C41 \u0C2E\u0C41\u0C17\u0C3F\u0C38\u0C3F\u0C02\u0C26\u0C3F",
|
|
9387
|
+
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.",
|
|
9388
|
+
chooseYourProfile: "\u0C2E\u0C40 \u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F",
|
|
9389
|
+
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.",
|
|
9390
|
+
userIdLabel: "\u0C35\u0C3F\u0C28\u0C3F\u0C2F\u0C4B\u0C17\u0C26\u0C3E\u0C30\u0C41 \u0C10\u0C21\u0C3F: {{id}}",
|
|
9391
|
+
signingInEllipsis: "\u0C38\u0C48\u0C28\u0C4D \u0C07\u0C28\u0C4D \u0C05\u0C35\u0C41\u0C24\u0C4B\u0C02\u0C26\u0C3F\u2026",
|
|
9392
|
+
switchProfile: "\u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C02\u0C21\u0C3F"
|
|
9239
9393
|
};
|
|
9240
9394
|
|
|
9241
9395
|
// src/RedactoPrivacyCenter/locales/ur/translation.json
|
|
@@ -9649,7 +9803,14 @@ var translation_default23 = {
|
|
|
9649
9803
|
submittingAs: "{{email}} \u06A9\u06D2 \u0637\u0648\u0631 \u067E\u0631 \u062C\u0645\u0639 \u06A9\u0631 \u0631\u06C1\u06D2 \u06C1\u06CC\u06BA",
|
|
9650
9804
|
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",
|
|
9651
9805
|
view: "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA",
|
|
9652
|
-
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F"
|
|
9806
|
+
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F",
|
|
9807
|
+
sessionExpiredTitle: "\u0622\u067E \u06A9\u0627 \u0633\u06CC\u0634\u0646 \u062E\u062A\u0645 \u06C1\u0648 \u06AF\u06CC\u0627 \u06C1\u06D2",
|
|
9808
|
+
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",
|
|
9809
|
+
chooseYourProfile: "\u0627\u067E\u0646\u06CC \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u06CC\u06BA",
|
|
9810
|
+
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",
|
|
9811
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
9812
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u06C1\u0648 \u0631\u06C1\u0627 \u06C1\u06D2\u2026",
|
|
9813
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u06CC\u0644 \u06A9\u0631\u06CC\u06BA"
|
|
9653
9814
|
};
|
|
9654
9815
|
|
|
9655
9816
|
// src/RedactoPrivacyCenter/lib/locales.ts
|
|
@@ -9894,6 +10055,26 @@ var sandboxQueryIdentity = () => sandboxBodyIdentity();
|
|
|
9894
10055
|
var sandboxContact = () => sandboxConfig ? sandboxConfig.ucic || sandboxConfig.subject : null;
|
|
9895
10056
|
|
|
9896
10057
|
// src/RedactoPrivacyCenter/api/fetcher.ts
|
|
10058
|
+
var ApiError = class _ApiError extends Error {
|
|
10059
|
+
constructor(message, options = {}) {
|
|
10060
|
+
super(message);
|
|
10061
|
+
this.name = "ApiError";
|
|
10062
|
+
this.status = options.status;
|
|
10063
|
+
this.detail = options.detail;
|
|
10064
|
+
Object.setPrototypeOf(this, _ApiError.prototype);
|
|
10065
|
+
}
|
|
10066
|
+
};
|
|
10067
|
+
var TERMINAL_REFRESH_STATUSES = /* @__PURE__ */ new Set([400, 401, 403, 422]);
|
|
10068
|
+
function isTerminalRefreshError(error) {
|
|
10069
|
+
const e = error;
|
|
10070
|
+
if (!e) return false;
|
|
10071
|
+
if (typeof e.status === "number") {
|
|
10072
|
+
return TERMINAL_REFRESH_STATUSES.has(e.status);
|
|
10073
|
+
}
|
|
10074
|
+
const message = (typeof e.message === "string" ? e.message : "").toLowerCase();
|
|
10075
|
+
if (!message) return false;
|
|
10076
|
+
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]");
|
|
10077
|
+
}
|
|
9897
10078
|
async function apiFetch(url, options = {}) {
|
|
9898
10079
|
const { getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9899
10080
|
const requestHeaders = new Headers();
|
|
@@ -9958,7 +10139,7 @@ async function apiFetch(url, options = {}) {
|
|
|
9958
10139
|
} catch {
|
|
9959
10140
|
}
|
|
9960
10141
|
}
|
|
9961
|
-
throw new
|
|
10142
|
+
throw new ApiError(errorMessage, { status: response.status });
|
|
9962
10143
|
}
|
|
9963
10144
|
const contentLength = response.headers.get("Content-Length");
|
|
9964
10145
|
const contentType = response.headers.get("Content-Type") || "";
|
|
@@ -10376,6 +10557,32 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10376
10557
|
authToken: authToken || baseRequest.authToken
|
|
10377
10558
|
});
|
|
10378
10559
|
},
|
|
10560
|
+
/**
|
|
10561
|
+
* List all data principals that share this session's contact
|
|
10562
|
+
* (shared-contact profile picker). Identity is derived server-side from the
|
|
10563
|
+
* JWT — the caller sends nothing but its bearer token.
|
|
10564
|
+
*/
|
|
10565
|
+
async listIdentities(baseRequest, authToken, options) {
|
|
10566
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities`;
|
|
10567
|
+
return privacyCenterApiFetch(url, {
|
|
10568
|
+
...options,
|
|
10569
|
+
authToken: authToken || baseRequest.authToken
|
|
10570
|
+
});
|
|
10571
|
+
},
|
|
10572
|
+
/**
|
|
10573
|
+
* Re-scope the session to a chosen principal uuid (must be one of the
|
|
10574
|
+
* principals sharing this session's contact). Returns fresh access/refresh
|
|
10575
|
+
* tokens scoped to that principal.
|
|
10576
|
+
*/
|
|
10577
|
+
async selectPrincipal(baseRequest, principalUuid, authToken, options) {
|
|
10578
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities/select`;
|
|
10579
|
+
return privacyCenterApiFetch(url, {
|
|
10580
|
+
...options,
|
|
10581
|
+
method: "POST",
|
|
10582
|
+
body: JSON.stringify({ uuid: principalUuid }),
|
|
10583
|
+
authToken: authToken || baseRequest.authToken
|
|
10584
|
+
});
|
|
10585
|
+
},
|
|
10379
10586
|
/**
|
|
10380
10587
|
* Get receipts (privacy center)
|
|
10381
10588
|
*/
|
|
@@ -11672,6 +11879,40 @@ var acknowledgeNotification = async (organizationId, workspaceId, notificationUu
|
|
|
11672
11879
|
var isRefreshing = false;
|
|
11673
11880
|
var refreshPromise = null;
|
|
11674
11881
|
var TOKEN_EXPIRY_BUFFER_SECONDS = 30;
|
|
11882
|
+
var deadRefreshToken = null;
|
|
11883
|
+
var transientRefreshFailureUntil = 0;
|
|
11884
|
+
var transientRefreshBackoffMs = 0;
|
|
11885
|
+
var MIN_REFRESH_BACKOFF_MS = 3e4;
|
|
11886
|
+
var MAX_REFRESH_BACKOFF_MS = 3e5;
|
|
11887
|
+
var sessionExpiredListener = null;
|
|
11888
|
+
var setSessionExpiredListener = (fn) => {
|
|
11889
|
+
sessionExpiredListener = fn;
|
|
11890
|
+
};
|
|
11891
|
+
var notifySessionExpired = () => {
|
|
11892
|
+
sessionExpiredListener == null ? void 0 : sessionExpiredListener();
|
|
11893
|
+
};
|
|
11894
|
+
var activeRefreshToken = (authContext) => (authContext == null ? void 0 : authContext.refreshToken) || getStoredValue("refresh_token") || null;
|
|
11895
|
+
var isRefreshBlocked = (authContext) => {
|
|
11896
|
+
const active = activeRefreshToken(authContext);
|
|
11897
|
+
if (active !== null && active === deadRefreshToken) return true;
|
|
11898
|
+
return Date.now() < transientRefreshFailureUntil;
|
|
11899
|
+
};
|
|
11900
|
+
var noteTransientRefreshFailure = () => {
|
|
11901
|
+
transientRefreshBackoffMs = Math.min(
|
|
11902
|
+
Math.max(transientRefreshBackoffMs * 2, MIN_REFRESH_BACKOFF_MS),
|
|
11903
|
+
MAX_REFRESH_BACKOFF_MS
|
|
11904
|
+
);
|
|
11905
|
+
transientRefreshFailureUntil = Date.now() + transientRefreshBackoffMs;
|
|
11906
|
+
};
|
|
11907
|
+
var markRefreshTokenDead = (token) => {
|
|
11908
|
+
if (token) deadRefreshToken = token;
|
|
11909
|
+
notifySessionExpired();
|
|
11910
|
+
};
|
|
11911
|
+
var resetRefreshCircuit = () => {
|
|
11912
|
+
deadRefreshToken = null;
|
|
11913
|
+
transientRefreshFailureUntil = 0;
|
|
11914
|
+
transientRefreshBackoffMs = 0;
|
|
11915
|
+
};
|
|
11675
11916
|
var tokenStore = {};
|
|
11676
11917
|
var getStoredValue = (key) => {
|
|
11677
11918
|
var _a3;
|
|
@@ -11762,6 +12003,7 @@ var ensureValidToken = async (organizationId, workspaceId, _slug, authContext, c
|
|
|
11762
12003
|
return accessToken;
|
|
11763
12004
|
}
|
|
11764
12005
|
if (isRefreshing && refreshPromise) return refreshPromise;
|
|
12006
|
+
if (isRefreshBlocked(authContext)) return null;
|
|
11765
12007
|
isRefreshing = true;
|
|
11766
12008
|
refreshPromise = performTokenRefresh(
|
|
11767
12009
|
organizationId,
|
|
@@ -11789,6 +12031,7 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11789
12031
|
if (!refreshToken || typeof refreshToken !== "string" || refreshToken.trim() === "") {
|
|
11790
12032
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11791
12033
|
authContext.onError(new Error("No refresh token available"));
|
|
12034
|
+
notifySessionExpired();
|
|
11792
12035
|
signOutPrivacyCenter();
|
|
11793
12036
|
return null;
|
|
11794
12037
|
}
|
|
@@ -11818,11 +12061,13 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11818
12061
|
if (newRefreshToken)
|
|
11819
12062
|
setStoredValue("refresh_token", newRefreshToken);
|
|
11820
12063
|
}
|
|
12064
|
+
resetRefreshCircuit();
|
|
11821
12065
|
return newAccessToken;
|
|
11822
12066
|
}
|
|
11823
12067
|
}
|
|
11824
12068
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11825
12069
|
authContext.onError(new Error("Refresh token expired or revoked"));
|
|
12070
|
+
markRefreshTokenDead(refreshToken);
|
|
11826
12071
|
signOutPrivacyCenter();
|
|
11827
12072
|
return null;
|
|
11828
12073
|
} catch (error) {
|
|
@@ -11830,7 +12075,12 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11830
12075
|
authContext.onError(
|
|
11831
12076
|
error instanceof Error ? error : new Error(String(error))
|
|
11832
12077
|
);
|
|
11833
|
-
|
|
12078
|
+
if (isTerminalRefreshError(error)) {
|
|
12079
|
+
markRefreshTokenDead(refreshToken);
|
|
12080
|
+
signOutPrivacyCenter();
|
|
12081
|
+
} else {
|
|
12082
|
+
noteTransientRefreshFailure();
|
|
12083
|
+
}
|
|
11834
12084
|
return null;
|
|
11835
12085
|
}
|
|
11836
12086
|
};
|
|
@@ -12254,8 +12504,17 @@ function DataAvailabilityProvider({ children }) {
|
|
|
12254
12504
|
mountedRef.current = false;
|
|
12255
12505
|
};
|
|
12256
12506
|
}, []);
|
|
12507
|
+
(0, import_react7.useEffect)(() => {
|
|
12508
|
+
setSessionExpiredListener(() => {
|
|
12509
|
+
if (!mountedRef.current) return;
|
|
12510
|
+
runIdRef.current += 1;
|
|
12511
|
+
setStatus("session-expired");
|
|
12512
|
+
});
|
|
12513
|
+
return () => setSessionExpiredListener(null);
|
|
12514
|
+
}, []);
|
|
12257
12515
|
const runCheck = (0, import_react7.useCallback)(async () => {
|
|
12258
12516
|
if (!organizationId || !workspaceId) return;
|
|
12517
|
+
if (isRefreshBlocked(authContext)) return;
|
|
12259
12518
|
const runId = ++runIdRef.current;
|
|
12260
12519
|
setStatus("checking");
|
|
12261
12520
|
const contact = email;
|
|
@@ -18295,6 +18554,7 @@ function useUnreadCount() {
|
|
|
18295
18554
|
const loadRef = (0, import_react32.useRef)();
|
|
18296
18555
|
loadRef.current = async () => {
|
|
18297
18556
|
if (!organizationId || !workspaceId) return;
|
|
18557
|
+
if (isRefreshBlocked(authContext)) return;
|
|
18298
18558
|
const res = await fetchUnreadCount(organizationId, workspaceId, authContext, consentClient);
|
|
18299
18559
|
if (res && typeof res.count === "number") setCount(res.count);
|
|
18300
18560
|
};
|
|
@@ -18620,17 +18880,255 @@ function PrivacyCenterEmptyState() {
|
|
|
18620
18880
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(PCEmpty, { iconName: "shield", title: t("noDataTitle"), description: t("noDataDescription") });
|
|
18621
18881
|
}
|
|
18622
18882
|
|
|
18883
|
+
// src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx
|
|
18884
|
+
var import_react_i18next21 = require("react-i18next");
|
|
18885
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
18886
|
+
function PrivacyCenterSessionExpired() {
|
|
18887
|
+
const { t } = (0, import_react_i18next21.useTranslation)();
|
|
18888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
18889
|
+
PCEmpty,
|
|
18890
|
+
{
|
|
18891
|
+
iconName: "shield",
|
|
18892
|
+
title: t("sessionExpiredTitle"),
|
|
18893
|
+
description: t("sessionExpiredDescription")
|
|
18894
|
+
}
|
|
18895
|
+
);
|
|
18896
|
+
}
|
|
18897
|
+
|
|
18898
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
18899
|
+
var import_react36 = require("react");
|
|
18900
|
+
var import_react_native51 = require("react-native");
|
|
18901
|
+
|
|
18902
|
+
// src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx
|
|
18903
|
+
var import_react35 = require("react");
|
|
18904
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
18905
|
+
var ProfileSwitchContext = (0, import_react35.createContext)({
|
|
18906
|
+
switchProfile: null
|
|
18907
|
+
});
|
|
18908
|
+
function ProfileSwitchProvider({
|
|
18909
|
+
switchProfile,
|
|
18910
|
+
children
|
|
18911
|
+
}) {
|
|
18912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ProfileSwitchContext.Provider, { value: { switchProfile }, children });
|
|
18913
|
+
}
|
|
18914
|
+
function useProfileSwitch() {
|
|
18915
|
+
return (0, import_react35.useContext)(ProfileSwitchContext);
|
|
18916
|
+
}
|
|
18917
|
+
|
|
18918
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18919
|
+
var import_react_native50 = require("react-native");
|
|
18920
|
+
var import_react_i18next22 = require("react-i18next");
|
|
18921
|
+
|
|
18922
|
+
// src/RedactoPrivacyCenter/lib/identityLabels.ts
|
|
18923
|
+
var identityPrimaryValue = (candidate) => {
|
|
18924
|
+
const orgUserId = candidate.org_user_id || "";
|
|
18925
|
+
const email = candidate.primary_email || "";
|
|
18926
|
+
const mobile = candidate.primary_mobile || "";
|
|
18927
|
+
return { orgUserId, fallback: email || mobile || candidate.uuid };
|
|
18928
|
+
};
|
|
18929
|
+
var identitySecondaryLabels = (candidate, primaryLabel) => {
|
|
18930
|
+
const email = candidate.primary_email || "";
|
|
18931
|
+
const mobile = candidate.primary_mobile || "";
|
|
18932
|
+
return [email, mobile].filter(
|
|
18933
|
+
(value, index, all) => value !== "" && value !== primaryLabel && all.indexOf(value) === index
|
|
18934
|
+
);
|
|
18935
|
+
};
|
|
18936
|
+
var selectableIdentities = (candidates) => candidates.filter((candidate) => Boolean(candidate.uuid));
|
|
18937
|
+
|
|
18938
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18939
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
18940
|
+
var SelectUser = ({
|
|
18941
|
+
candidates,
|
|
18942
|
+
onSelect,
|
|
18943
|
+
busyUuid,
|
|
18944
|
+
error
|
|
18945
|
+
}) => {
|
|
18946
|
+
const { t } = (0, import_react_i18next22.useTranslation)();
|
|
18947
|
+
const { colors } = useTheme();
|
|
18948
|
+
const selectable = selectableIdentities(candidates);
|
|
18949
|
+
const busy = busyUuid !== null;
|
|
18950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_native50.ScrollView, { contentContainerStyle: styles39.container, children: [
|
|
18951
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.title, styles39.heading, { color: colors.text }], children: t("chooseYourProfile") }),
|
|
18952
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.body, styles39.subtitle, { color: colors.textSecondary }], children: t("loginIdentifierLinkedToMultipleProfiles") }),
|
|
18953
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.caption, styles39.error, { color: colors.error }], children: error }) : null,
|
|
18954
|
+
selectable.map((candidate) => {
|
|
18955
|
+
const { orgUserId, fallback } = identityPrimaryValue(candidate);
|
|
18956
|
+
const primaryLabel = orgUserId ? t("userIdLabel", { id: orgUserId }) : fallback;
|
|
18957
|
+
const secondaryLabels = identitySecondaryLabels(candidate, primaryLabel);
|
|
18958
|
+
const isBusy = busyUuid === candidate.uuid;
|
|
18959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
18960
|
+
import_react_native50.TouchableOpacity,
|
|
18961
|
+
{
|
|
18962
|
+
accessibilityRole: "button",
|
|
18963
|
+
disabled: busy,
|
|
18964
|
+
onPress: () => onSelect(candidate.uuid),
|
|
18965
|
+
style: [
|
|
18966
|
+
styles39.row,
|
|
18967
|
+
{
|
|
18968
|
+
backgroundColor: colors.surface,
|
|
18969
|
+
borderColor: isBusy ? colors.primary : colors.border
|
|
18970
|
+
}
|
|
18971
|
+
],
|
|
18972
|
+
children: [
|
|
18973
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_native50.View, { style: styles39.rowText, children: [
|
|
18974
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.label, { color: colors.text }], children: primaryLabel }),
|
|
18975
|
+
secondaryLabels.map((label) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
18976
|
+
import_react_native50.Text,
|
|
18977
|
+
{
|
|
18978
|
+
style: [typography.caption, styles39.secondary, { color: colors.textSecondary }],
|
|
18979
|
+
children: label
|
|
18980
|
+
},
|
|
18981
|
+
label
|
|
18982
|
+
))
|
|
18983
|
+
] }),
|
|
18984
|
+
isBusy ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.caption, { color: colors.textSecondary }], children: t("signingInEllipsis") }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary })
|
|
18985
|
+
]
|
|
18986
|
+
},
|
|
18987
|
+
candidate.uuid
|
|
18988
|
+
);
|
|
18989
|
+
})
|
|
18990
|
+
] });
|
|
18991
|
+
};
|
|
18992
|
+
var styles39 = import_react_native50.StyleSheet.create({
|
|
18993
|
+
container: { padding: spacing.lg },
|
|
18994
|
+
heading: { textAlign: "center" },
|
|
18995
|
+
subtitle: { textAlign: "center", marginTop: spacing.xs, marginBottom: spacing.lg },
|
|
18996
|
+
error: { textAlign: "center", marginBottom: spacing.md },
|
|
18997
|
+
row: {
|
|
18998
|
+
flexDirection: "row",
|
|
18999
|
+
alignItems: "center",
|
|
19000
|
+
borderWidth: 1,
|
|
19001
|
+
borderRadius: radii.md,
|
|
19002
|
+
padding: spacing.md,
|
|
19003
|
+
marginBottom: spacing.sm
|
|
19004
|
+
},
|
|
19005
|
+
rowText: { flex: 1 },
|
|
19006
|
+
secondary: { marginTop: 2 }
|
|
19007
|
+
});
|
|
19008
|
+
|
|
19009
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
19010
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
19011
|
+
function SelectUserGate({ children }) {
|
|
19012
|
+
var _a3, _b;
|
|
19013
|
+
const { accessToken, organizationId, workspaceId, updateTokens } = useAuth();
|
|
19014
|
+
const { consentClient } = useBaseUrl();
|
|
19015
|
+
const { colors } = useTheme();
|
|
19016
|
+
const insets = useSafeInsets();
|
|
19017
|
+
const [phase, setPhase] = (0, import_react36.useState)("checking");
|
|
19018
|
+
const [candidates, setCandidates] = (0, import_react36.useState)([]);
|
|
19019
|
+
const [busyUuid, setBusyUuid] = (0, import_react36.useState)(null);
|
|
19020
|
+
const [selectError, setSelectError] = (0, import_react36.useState)(null);
|
|
19021
|
+
const [pinnedOrgUserId, setPinnedOrgUserId] = (0, import_react36.useState)(null);
|
|
19022
|
+
const tokenOrgUserId = ((_b = (_a3 = decodeJwtToken(accessToken)) == null ? void 0 : _a3.user_data) == null ? void 0 : _b.org_user_id) || "";
|
|
19023
|
+
(0, import_react36.useEffect)(() => {
|
|
19024
|
+
let cancelled = false;
|
|
19025
|
+
if (isSandboxMode() || !organizationId || !workspaceId || !accessToken) {
|
|
19026
|
+
setPhase("resolved");
|
|
19027
|
+
return;
|
|
19028
|
+
}
|
|
19029
|
+
const isPinned = Boolean(pinnedOrgUserId) && pinnedOrgUserId === tokenOrgUserId;
|
|
19030
|
+
setPhase(isPinned ? "resolved" : "checking");
|
|
19031
|
+
(async () => {
|
|
19032
|
+
var _a4;
|
|
19033
|
+
try {
|
|
19034
|
+
const res = await consentClient.listIdentities({
|
|
19035
|
+
organisationUuid: organizationId,
|
|
19036
|
+
workspaceUuid: workspaceId,
|
|
19037
|
+
authToken: accessToken
|
|
19038
|
+
});
|
|
19039
|
+
if (cancelled) return;
|
|
19040
|
+
const list = (_a4 = res == null ? void 0 : res.identities) != null ? _a4 : [];
|
|
19041
|
+
setCandidates(list);
|
|
19042
|
+
setPhase(list.length > 1 && !isPinned ? "picking" : "resolved");
|
|
19043
|
+
} catch {
|
|
19044
|
+
if (cancelled) return;
|
|
19045
|
+
setCandidates([]);
|
|
19046
|
+
setPhase("resolved");
|
|
19047
|
+
}
|
|
19048
|
+
})();
|
|
19049
|
+
return () => {
|
|
19050
|
+
cancelled = true;
|
|
19051
|
+
};
|
|
19052
|
+
}, [organizationId, workspaceId, tokenOrgUserId]);
|
|
19053
|
+
const handleSelect = (0, import_react36.useCallback)(
|
|
19054
|
+
async (principalUuid) => {
|
|
19055
|
+
var _a4, _b2;
|
|
19056
|
+
if (!principalUuid || busyUuid || !organizationId || !workspaceId) return;
|
|
19057
|
+
setBusyUuid(principalUuid);
|
|
19058
|
+
setSelectError(null);
|
|
19059
|
+
try {
|
|
19060
|
+
const res = await consentClient.selectPrincipal(
|
|
19061
|
+
{
|
|
19062
|
+
organisationUuid: organizationId,
|
|
19063
|
+
workspaceUuid: workspaceId,
|
|
19064
|
+
authToken: accessToken
|
|
19065
|
+
},
|
|
19066
|
+
principalUuid
|
|
19067
|
+
);
|
|
19068
|
+
if (!(res == null ? void 0 : res.token) || !(res == null ? void 0 : res.refresh_token)) {
|
|
19069
|
+
throw new Error("select-principal returned no tokens");
|
|
19070
|
+
}
|
|
19071
|
+
const pinned = ((_b2 = (_a4 = decodeJwtToken(res.token)) == null ? void 0 : _a4.user_data) == null ? void 0 : _b2.org_user_id) || null;
|
|
19072
|
+
setPinnedOrgUserId(pinned);
|
|
19073
|
+
setPhase("resolved");
|
|
19074
|
+
updateTokens(res.token, res.refresh_token);
|
|
19075
|
+
} catch (error) {
|
|
19076
|
+
setSelectError(
|
|
19077
|
+
error instanceof Error ? error.message : "Failed to switch profile"
|
|
19078
|
+
);
|
|
19079
|
+
} finally {
|
|
19080
|
+
setBusyUuid(null);
|
|
19081
|
+
}
|
|
19082
|
+
},
|
|
19083
|
+
[accessToken, busyUuid, consentClient, organizationId, workspaceId, updateTokens]
|
|
19084
|
+
);
|
|
19085
|
+
const canSwitch = candidates.length > 1;
|
|
19086
|
+
const switchProfile = (0, import_react36.useCallback)(() => {
|
|
19087
|
+
if (!canSwitch) return;
|
|
19088
|
+
setSelectError(null);
|
|
19089
|
+
setPhase("picking");
|
|
19090
|
+
}, [canSwitch]);
|
|
19091
|
+
if (phase === "checking" || phase === "picking") {
|
|
19092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
19093
|
+
import_react_native51.View,
|
|
19094
|
+
{
|
|
19095
|
+
style: [
|
|
19096
|
+
styles40.screen,
|
|
19097
|
+
{
|
|
19098
|
+
backgroundColor: colors.canvasSubtle,
|
|
19099
|
+
paddingTop: insets.top,
|
|
19100
|
+
paddingBottom: insets.bottom
|
|
19101
|
+
}
|
|
19102
|
+
],
|
|
19103
|
+
children: phase === "checking" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PCLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
19104
|
+
SelectUser,
|
|
19105
|
+
{
|
|
19106
|
+
candidates,
|
|
19107
|
+
onSelect: handleSelect,
|
|
19108
|
+
busyUuid,
|
|
19109
|
+
error: selectError
|
|
19110
|
+
}
|
|
19111
|
+
)
|
|
19112
|
+
}
|
|
19113
|
+
);
|
|
19114
|
+
}
|
|
19115
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ProfileSwitchProvider, { switchProfile: canSwitch ? switchProfile : null, children });
|
|
19116
|
+
}
|
|
19117
|
+
var styles40 = import_react_native51.StyleSheet.create({
|
|
19118
|
+
screen: { flex: 1 }
|
|
19119
|
+
});
|
|
19120
|
+
|
|
18623
19121
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
18624
|
-
var
|
|
18625
|
-
var
|
|
18626
|
-
var
|
|
19122
|
+
var import_react41 = require("react");
|
|
19123
|
+
var import_react_native59 = require("react-native");
|
|
19124
|
+
var import_react_i18next28 = require("react-i18next");
|
|
18627
19125
|
|
|
18628
19126
|
// src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx
|
|
18629
|
-
var
|
|
18630
|
-
var
|
|
18631
|
-
var
|
|
19127
|
+
var import_react_native52 = require("react-native");
|
|
19128
|
+
var import_react_i18next23 = require("react-i18next");
|
|
19129
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
18632
19130
|
function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
18633
|
-
const { t } = (0,
|
|
19131
|
+
const { t } = (0, import_react_i18next23.useTranslation)();
|
|
18634
19132
|
const { colors } = useTheme();
|
|
18635
19133
|
const { listBottom } = usePrivacyCenterInsets({ hasFooter: true });
|
|
18636
19134
|
const details = selectedCase.request_details;
|
|
@@ -18662,36 +19160,36 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18662
19160
|
}
|
|
18663
19161
|
const description = selectedCase.description_display || selectedCase.description;
|
|
18664
19162
|
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);
|
|
18665
|
-
return /* @__PURE__ */ (0,
|
|
18666
|
-
/* @__PURE__ */ (0,
|
|
19163
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.ScrollView, { style: [styles41.container, { backgroundColor: colors.canvasSubtle }], contentContainerStyle: [styles41.content, { flexGrow: 1, paddingBottom: listBottom }], showsVerticalScrollIndicator: false, children: [
|
|
19164
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.timeline, children: steps.map((step, i) => {
|
|
18667
19165
|
const isLast = i === steps.length - 1;
|
|
18668
|
-
return /* @__PURE__ */ (0,
|
|
18669
|
-
/* @__PURE__ */ (0,
|
|
18670
|
-
/* @__PURE__ */ (0,
|
|
18671
|
-
|
|
19166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.stepRow, children: [
|
|
19167
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.gutter, children: [
|
|
19168
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
19169
|
+
import_react_native52.View,
|
|
18672
19170
|
{
|
|
18673
19171
|
style: [
|
|
18674
|
-
|
|
19172
|
+
styles41.dot,
|
|
18675
19173
|
step.state === "upcoming" ? { backgroundColor: colors.canvasSubtle, borderWidth: 2, borderColor: step.danger ? colors.error : colors.border } : { backgroundColor: step.color }
|
|
18676
19174
|
],
|
|
18677
|
-
children: step.state === "done" ? /* @__PURE__ */ (0,
|
|
19175
|
+
children: step.state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: "check", size: 11, color: colors.primaryText, strokeWidth: 3 }) : step.state === "current" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: [styles41.dotInner, { backgroundColor: colors.primaryText }] }) : null
|
|
18678
19176
|
}
|
|
18679
19177
|
),
|
|
18680
|
-
!isLast ? /* @__PURE__ */ (0,
|
|
19178
|
+
!isLast ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: [styles41.connector, { backgroundColor: colors.border }] }) : null
|
|
18681
19179
|
] }),
|
|
18682
|
-
/* @__PURE__ */ (0,
|
|
18683
|
-
/* @__PURE__ */ (0,
|
|
18684
|
-
step.date ? /* @__PURE__ */ (0,
|
|
19180
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.stepContent, isLast && styles41.stepContentLast], children: [
|
|
19181
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.stepLabel, { color: step.danger ? colors.error : colors.text }], children: step.label }),
|
|
19182
|
+
step.date ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.stepDate, { color: step.danger ? colors.error : colors.textSecondary }], children: step.date }) : null
|
|
18685
19183
|
] })
|
|
18686
19184
|
] }, `${step.label}-${i}`);
|
|
18687
19185
|
}) }),
|
|
18688
|
-
hasDetails ? /* @__PURE__ */ (0,
|
|
18689
|
-
description ? /* @__PURE__ */ (0,
|
|
18690
|
-
/* @__PURE__ */ (0,
|
|
18691
|
-
/* @__PURE__ */ (0,
|
|
19186
|
+
hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.card, elevation.card, { backgroundColor: colors.surface }], children: [
|
|
19187
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19188
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("descriptionLabel") || "Description" }),
|
|
19189
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.descriptionText, { color: colors.text }], children: description })
|
|
18692
19190
|
] }) : null,
|
|
18693
|
-
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ (0,
|
|
18694
|
-
/* @__PURE__ */ (0,
|
|
19191
|
+
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19192
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
|
|
18695
19193
|
details.purposes.map((rawP, idx) => {
|
|
18696
19194
|
const p = (rawP == null ? void 0 : rawP.purpose) ? rawP.purpose : rawP;
|
|
18697
19195
|
const purposeId = (p == null ? void 0 : p.uuid) || (p == null ? void 0 : p.purpose_uuid) || (rawP == null ? void 0 : rawP.purpose_uuid) || idx;
|
|
@@ -18699,10 +19197,10 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18699
19197
|
const purposeDescription = (p == null ? void 0 : p.description) || (rawP == null ? void 0 : rawP.description);
|
|
18700
19198
|
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)) : [];
|
|
18701
19199
|
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 : [];
|
|
18702
|
-
return /* @__PURE__ */ (0,
|
|
18703
|
-
/* @__PURE__ */ (0,
|
|
18704
|
-
purposeDescription ? /* @__PURE__ */ (0,
|
|
18705
|
-
dataElements.length > 0 ? /* @__PURE__ */ (0,
|
|
19200
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: import_react_native52.StyleSheet.hairlineWidth }], children: [
|
|
19201
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemTitle, { color: colors.text }], children: purposeName }),
|
|
19202
|
+
purposeDescription ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
|
|
19203
|
+
dataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.chipRow, children: dataElements.map((de) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PCBadge, { status: "info", label: de.name }, de.uuid)) }) : dataElementUuids.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.Text, { style: [styles41.itemDesc, { color: colors.textSecondary }], children: [
|
|
18706
19204
|
dataElementUuids.length,
|
|
18707
19205
|
" ",
|
|
18708
19206
|
t("dataElements") || "data elements"
|
|
@@ -18710,44 +19208,44 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18710
19208
|
] }, purposeId);
|
|
18711
19209
|
})
|
|
18712
19210
|
] }) : null,
|
|
18713
|
-
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ (0,
|
|
18714
|
-
/* @__PURE__ */ (0,
|
|
18715
|
-
details.correction_data.map((item, idx) => /* @__PURE__ */ (0,
|
|
18716
|
-
/* @__PURE__ */ (0,
|
|
18717
|
-
/* @__PURE__ */ (0,
|
|
18718
|
-
/* @__PURE__ */ (0,
|
|
18719
|
-
/* @__PURE__ */ (0,
|
|
18720
|
-
/* @__PURE__ */ (0,
|
|
19211
|
+
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19212
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction" }),
|
|
19213
|
+
details.correction_data.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: import_react_native52.StyleSheet.hairlineWidth }], children: [
|
|
19214
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemTitle, { color: colors.text }], children: item.name }),
|
|
19215
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValues, children: [
|
|
19216
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValue, children: [
|
|
19217
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
|
|
19218
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionText, { color: colors.text }], children: item.curr_value || "-" })
|
|
18721
19219
|
] }),
|
|
18722
|
-
/* @__PURE__ */ (0,
|
|
18723
|
-
/* @__PURE__ */ (0,
|
|
18724
|
-
/* @__PURE__ */ (0,
|
|
18725
|
-
/* @__PURE__ */ (0,
|
|
19220
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: "chevron-right", size: 16, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
19221
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValue, children: [
|
|
19222
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
|
|
19223
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionText, { color: colors.primary }], children: item.new_value || "-" })
|
|
18726
19224
|
] })
|
|
18727
19225
|
] })
|
|
18728
19226
|
] }, idx))
|
|
18729
19227
|
] }) : null,
|
|
18730
|
-
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ (0,
|
|
18731
|
-
/* @__PURE__ */ (0,
|
|
18732
|
-
/* @__PURE__ */ (0,
|
|
19228
|
+
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19229
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance" }),
|
|
19230
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.chipRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PCBadge, { status: "warning", label: (g.grievance || "").replace(/_/g, " ") }, idx)) })
|
|
18733
19231
|
] }) : null,
|
|
18734
|
-
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ (0,
|
|
18735
|
-
/* @__PURE__ */ (0,
|
|
18736
|
-
details.nomination_data.nominee_email ? /* @__PURE__ */ (0,
|
|
18737
|
-
/* @__PURE__ */ (0,
|
|
18738
|
-
/* @__PURE__ */ (0,
|
|
19232
|
+
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19233
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
|
|
19234
|
+
details.nomination_data.nominee_email ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.kvRow, children: [
|
|
19235
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
|
|
19236
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_email })
|
|
18739
19237
|
] }) : null,
|
|
18740
|
-
details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0,
|
|
18741
|
-
/* @__PURE__ */ (0,
|
|
18742
|
-
/* @__PURE__ */ (0,
|
|
19238
|
+
details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.kvRow, children: [
|
|
19239
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
|
|
19240
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
|
|
18743
19241
|
] }) : null
|
|
18744
19242
|
] }) : null
|
|
18745
19243
|
] }) : null,
|
|
18746
|
-
/* @__PURE__ */ (0,
|
|
19244
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: { marginTop: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Footer, {}) })
|
|
18747
19245
|
] });
|
|
18748
19246
|
}
|
|
18749
19247
|
var DOT = 22;
|
|
18750
|
-
var
|
|
19248
|
+
var styles41 = import_react_native52.StyleSheet.create({
|
|
18751
19249
|
container: {
|
|
18752
19250
|
flex: 1
|
|
18753
19251
|
},
|
|
@@ -18868,51 +19366,51 @@ var styles39 = import_react_native50.StyleSheet.create({
|
|
|
18868
19366
|
});
|
|
18869
19367
|
|
|
18870
19368
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
18871
|
-
var
|
|
18872
|
-
var
|
|
18873
|
-
var
|
|
19369
|
+
var import_react40 = require("react");
|
|
19370
|
+
var import_react_native58 = require("react-native");
|
|
19371
|
+
var import_react_i18next27 = require("react-i18next");
|
|
18874
19372
|
|
|
18875
19373
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
18876
|
-
var
|
|
18877
|
-
var
|
|
19374
|
+
var import_react38 = __toESM(require("react"));
|
|
19375
|
+
var import_react_i18next25 = require("react-i18next");
|
|
18878
19376
|
|
|
18879
19377
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18880
|
-
var
|
|
18881
|
-
var
|
|
19378
|
+
var import_react37 = __toESM(require("react"));
|
|
19379
|
+
var import_react_native54 = require("react-native");
|
|
18882
19380
|
|
|
18883
19381
|
// src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx
|
|
18884
|
-
var
|
|
18885
|
-
var
|
|
19382
|
+
var import_react_native53 = require("react-native");
|
|
19383
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
18886
19384
|
function AttachmentCard({ doc }) {
|
|
18887
19385
|
const { colors } = useTheme();
|
|
18888
19386
|
const downloadUrl = getDownloadUrl(doc.file_url);
|
|
18889
19387
|
const handlePress = () => {
|
|
18890
19388
|
if (downloadUrl) {
|
|
18891
|
-
|
|
19389
|
+
import_react_native53.Linking.openURL(downloadUrl);
|
|
18892
19390
|
}
|
|
18893
19391
|
};
|
|
18894
|
-
return /* @__PURE__ */ (0,
|
|
18895
|
-
|
|
19392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
19393
|
+
import_react_native53.TouchableOpacity,
|
|
18896
19394
|
{
|
|
18897
|
-
style: [
|
|
19395
|
+
style: [styles42.container, { backgroundColor: colors.surface, borderColor: colors.border }],
|
|
18898
19396
|
onPress: handlePress,
|
|
18899
19397
|
disabled: !downloadUrl,
|
|
18900
19398
|
activeOpacity: 0.7,
|
|
18901
19399
|
children: [
|
|
18902
|
-
/* @__PURE__ */ (0,
|
|
18903
|
-
/* @__PURE__ */ (0,
|
|
18904
|
-
/* @__PURE__ */ (0,
|
|
18905
|
-
doc.file_size ? /* @__PURE__ */ (0,
|
|
19400
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { name: "file-text", size: 18, color: colors.textSecondary }),
|
|
19401
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react_native53.View, { style: styles42.info, children: [
|
|
19402
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_native53.Text, { style: [styles42.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
|
|
19403
|
+
doc.file_size ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_native53.Text, { style: [styles42.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
|
|
18906
19404
|
] })
|
|
18907
19405
|
]
|
|
18908
19406
|
}
|
|
18909
19407
|
);
|
|
18910
19408
|
}
|
|
18911
|
-
var
|
|
19409
|
+
var styles42 = import_react_native53.StyleSheet.create({
|
|
18912
19410
|
container: {
|
|
18913
19411
|
flexDirection: "row",
|
|
18914
19412
|
alignItems: "center",
|
|
18915
|
-
borderWidth:
|
|
19413
|
+
borderWidth: import_react_native53.StyleSheet.hairlineWidth,
|
|
18916
19414
|
borderRadius: radii.md,
|
|
18917
19415
|
paddingHorizontal: spacing.sm + 2,
|
|
18918
19416
|
paddingVertical: spacing.sm,
|
|
@@ -18932,11 +19430,11 @@ var styles40 = import_react_native51.StyleSheet.create({
|
|
|
18932
19430
|
});
|
|
18933
19431
|
|
|
18934
19432
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18935
|
-
var
|
|
19433
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
18936
19434
|
var AVATAR_SIZE = 28;
|
|
18937
19435
|
var AVATAR_GUTTER = 36;
|
|
18938
19436
|
function TeamAvatar({ tint }) {
|
|
18939
|
-
return /* @__PURE__ */ (0,
|
|
19437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: [styles43.avatar, { backgroundColor: withAlpha(tint, 0.13) }], children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: "shield-check", size: 15, color: tint, strokeWidth: 2 }) });
|
|
18940
19438
|
}
|
|
18941
19439
|
function ChatBubbleImpl({
|
|
18942
19440
|
message,
|
|
@@ -18963,28 +19461,28 @@ function ChatBubbleImpl({
|
|
|
18963
19461
|
borderBottomRightRadius: BUBBLE_RADIUS,
|
|
18964
19462
|
borderBottomLeftRadius: tailRadius
|
|
18965
19463
|
};
|
|
18966
|
-
const bubble = /* @__PURE__ */ (0,
|
|
18967
|
-
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0,
|
|
18968
|
-
message.body ? /* @__PURE__ */ (0,
|
|
18969
|
-
message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0,
|
|
19464
|
+
const bubble = /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react_native54.View, { style: [styles43.bubble, bubbleStyle], children: [
|
|
19465
|
+
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.Text, { style: [styles43.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
|
|
19466
|
+
message.body ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.Text, { style: [styles43.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
|
|
19467
|
+
message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: styles43.attachments, children: message.documents.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AttachmentCard, { doc }, doc.uuid)) }) : null
|
|
18970
19468
|
] });
|
|
18971
|
-
return /* @__PURE__ */ (0,
|
|
18972
|
-
|
|
19469
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
19470
|
+
import_react_native54.View,
|
|
18973
19471
|
{
|
|
18974
19472
|
style: [
|
|
18975
|
-
|
|
18976
|
-
isPrincipal ?
|
|
19473
|
+
styles43.row,
|
|
19474
|
+
isPrincipal ? styles43.rowRight : styles43.rowLeft,
|
|
18977
19475
|
{ marginTop: isFirstInGroup ? spacing.md : 2 }
|
|
18978
19476
|
],
|
|
18979
19477
|
children: [
|
|
18980
|
-
!isPrincipal ? /* @__PURE__ */ (0,
|
|
18981
|
-
/* @__PURE__ */ (0,
|
|
19478
|
+
!isPrincipal ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: styles43.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TeamAvatar, { tint: colors.primary }) : null }) : null,
|
|
19479
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react_native54.View, { style: [styles43.column, isPrincipal ? styles43.columnRight : styles43.columnLeft], children: [
|
|
18982
19480
|
bubble,
|
|
18983
|
-
isLastInGroup ? /* @__PURE__ */ (0,
|
|
18984
|
-
|
|
19481
|
+
isLastInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
19482
|
+
import_react_native54.Text,
|
|
18985
19483
|
{
|
|
18986
19484
|
style: [
|
|
18987
|
-
|
|
19485
|
+
styles43.timestamp,
|
|
18988
19486
|
{ color: colors.textSecondary, textAlign: isPrincipal ? "right" : "left" }
|
|
18989
19487
|
],
|
|
18990
19488
|
children: formatMessageTime(timestamp)
|
|
@@ -18995,8 +19493,8 @@ function ChatBubbleImpl({
|
|
|
18995
19493
|
}
|
|
18996
19494
|
);
|
|
18997
19495
|
}
|
|
18998
|
-
var ChatBubble =
|
|
18999
|
-
var
|
|
19496
|
+
var ChatBubble = import_react37.default.memo(ChatBubbleImpl);
|
|
19497
|
+
var styles43 = import_react_native54.StyleSheet.create({
|
|
19000
19498
|
row: {
|
|
19001
19499
|
flexDirection: "row",
|
|
19002
19500
|
paddingHorizontal: spacing.md,
|
|
@@ -19056,9 +19554,9 @@ var styles41 = import_react_native52.StyleSheet.create({
|
|
|
19056
19554
|
});
|
|
19057
19555
|
|
|
19058
19556
|
// src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx
|
|
19059
|
-
var
|
|
19060
|
-
var
|
|
19061
|
-
var
|
|
19557
|
+
var import_react_native55 = require("react-native");
|
|
19558
|
+
var import_react_i18next24 = require("react-i18next");
|
|
19559
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
19062
19560
|
var STATUS_BADGE_MAP = {
|
|
19063
19561
|
pending: "warning",
|
|
19064
19562
|
under_review: "info",
|
|
@@ -19078,20 +19576,20 @@ function humanize(value) {
|
|
|
19078
19576
|
}
|
|
19079
19577
|
function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized = false }) {
|
|
19080
19578
|
var _a3;
|
|
19081
|
-
const { t } = (0,
|
|
19579
|
+
const { t } = (0, import_react_i18next24.useTranslation)();
|
|
19082
19580
|
const { colors } = useTheme();
|
|
19083
19581
|
const meta = message.document_request_metadata;
|
|
19084
19582
|
if (!meta) return null;
|
|
19085
19583
|
const status = meta.document_request_status;
|
|
19086
19584
|
const canUpload = (status === "pending" || status === "replacement_requested") && !isCaseFinalized;
|
|
19087
19585
|
const requestEventUuid = meta.document_request_uuid;
|
|
19088
|
-
return /* @__PURE__ */ (0,
|
|
19089
|
-
/* @__PURE__ */ (0,
|
|
19090
|
-
/* @__PURE__ */ (0,
|
|
19091
|
-
/* @__PURE__ */ (0,
|
|
19092
|
-
/* @__PURE__ */ (0,
|
|
19586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: [styles44.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
|
|
19587
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: styles44.header, children: [
|
|
19588
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: styles44.titleRow, children: [
|
|
19589
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: "file-check", size: 16, color: colors.primary, strokeWidth: 2 }),
|
|
19590
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
|
|
19093
19591
|
] }),
|
|
19094
|
-
/* @__PURE__ */ (0,
|
|
19592
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
19095
19593
|
PCBadge,
|
|
19096
19594
|
{
|
|
19097
19595
|
status: STATUS_BADGE_MAP[status] || "info",
|
|
@@ -19099,30 +19597,30 @@ function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized
|
|
|
19099
19597
|
}
|
|
19100
19598
|
)
|
|
19101
19599
|
] }),
|
|
19102
|
-
meta.accepted_document ? /* @__PURE__ */ (0,
|
|
19600
|
+
meta.accepted_document ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.accepted, { color: colors.textSecondary }], children: t("acceptedLabel", {
|
|
19103
19601
|
accepted: meta.accepted_document,
|
|
19104
19602
|
defaultValue: `Accepted: ${meta.accepted_document}`
|
|
19105
19603
|
}) }) : null,
|
|
19106
|
-
meta.rejection_reason ? /* @__PURE__ */ (0,
|
|
19107
|
-
/* @__PURE__ */ (0,
|
|
19604
|
+
meta.rejection_reason ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: [styles44.rejectionBox, { backgroundColor: colors.errorSoft }], children: [
|
|
19605
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.Text, { style: [styles44.rejectionLabel, { color: colors.error }], children: [
|
|
19108
19606
|
t("rejectionReasonLabel") || "Rejection reason",
|
|
19109
19607
|
":"
|
|
19110
19608
|
] }),
|
|
19111
|
-
/* @__PURE__ */ (0,
|
|
19609
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.rejectionText, { color: colors.error }], children: meta.rejection_reason })
|
|
19112
19610
|
] }) : null,
|
|
19113
|
-
canUpload && requestEventUuid ? /* @__PURE__ */ (0,
|
|
19114
|
-
|
|
19611
|
+
canUpload && requestEventUuid ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
19612
|
+
import_react_native55.TouchableOpacity,
|
|
19115
19613
|
{
|
|
19116
|
-
style: [
|
|
19614
|
+
style: [styles44.uploadButton, { backgroundColor: colors.primary }],
|
|
19117
19615
|
onPress: () => onUpload(requestEventUuid),
|
|
19118
19616
|
disabled: isSubmitting,
|
|
19119
19617
|
activeOpacity: 0.7,
|
|
19120
|
-
children: /* @__PURE__ */ (0,
|
|
19618
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
|
|
19121
19619
|
}
|
|
19122
19620
|
) : null
|
|
19123
19621
|
] });
|
|
19124
19622
|
}
|
|
19125
|
-
var
|
|
19623
|
+
var styles44 = import_react_native55.StyleSheet.create({
|
|
19126
19624
|
container: {
|
|
19127
19625
|
borderWidth: 1.5,
|
|
19128
19626
|
borderStyle: "dashed",
|
|
@@ -19175,20 +19673,20 @@ var styles42 = import_react_native53.StyleSheet.create({
|
|
|
19175
19673
|
});
|
|
19176
19674
|
|
|
19177
19675
|
// src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx
|
|
19178
|
-
var
|
|
19179
|
-
var
|
|
19676
|
+
var import_react_native56 = require("react-native");
|
|
19677
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
19180
19678
|
function StatusEvent({ icon, color, bgColor, borderColor, text, subText, timestamp }) {
|
|
19181
19679
|
const { colors } = useTheme();
|
|
19182
|
-
return /* @__PURE__ */ (0,
|
|
19183
|
-
/* @__PURE__ */ (0,
|
|
19184
|
-
/* @__PURE__ */ (0,
|
|
19185
|
-
/* @__PURE__ */ (0,
|
|
19186
|
-
subText ? /* @__PURE__ */ (0,
|
|
19680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_react_native56.View, { style: [styles45.container, { backgroundColor: bgColor }], children: [
|
|
19681
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.View, { style: [styles45.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
|
|
19682
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_react_native56.View, { style: styles45.textContainer, children: [
|
|
19683
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.text, { color }], children: text }),
|
|
19684
|
+
subText ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
|
|
19187
19685
|
] }),
|
|
19188
|
-
/* @__PURE__ */ (0,
|
|
19686
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
|
|
19189
19687
|
] });
|
|
19190
19688
|
}
|
|
19191
|
-
var
|
|
19689
|
+
var styles45 = import_react_native56.StyleSheet.create({
|
|
19192
19690
|
container: {
|
|
19193
19691
|
flexDirection: "row",
|
|
19194
19692
|
alignItems: "center",
|
|
@@ -19227,10 +19725,10 @@ var styles43 = import_react_native54.StyleSheet.create({
|
|
|
19227
19725
|
});
|
|
19228
19726
|
|
|
19229
19727
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
19230
|
-
var
|
|
19231
|
-
var CheckIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19232
|
-
var XIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19233
|
-
var RefreshIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19728
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
19729
|
+
var CheckIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "check", size: 14, color, strokeWidth: 2.6 });
|
|
19730
|
+
var XIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "x", size: 14, color, strokeWidth: 2.6 });
|
|
19731
|
+
var RefreshIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "refresh-cw", size: 14, color, strokeWidth: 2.2 });
|
|
19234
19732
|
function MessageItemImpl({
|
|
19235
19733
|
message,
|
|
19236
19734
|
onUploadForRequest,
|
|
@@ -19240,14 +19738,14 @@ function MessageItemImpl({
|
|
|
19240
19738
|
isLastInGroup = true
|
|
19241
19739
|
}) {
|
|
19242
19740
|
var _a3, _b;
|
|
19243
|
-
const { t } = (0,
|
|
19741
|
+
const { t } = (0, import_react_i18next25.useTranslation)();
|
|
19244
19742
|
const isPrincipal = message.sender_role === "data_principal";
|
|
19245
19743
|
const senderLabel = isPrincipal ? t("senderYou") || "You" : t("senderPrivacyTeam") || "Privacy Team";
|
|
19246
19744
|
switch (message.message_type) {
|
|
19247
19745
|
case "message_sent":
|
|
19248
19746
|
case "document_submitted":
|
|
19249
19747
|
case "document_replaced":
|
|
19250
|
-
return /* @__PURE__ */ (0,
|
|
19748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19251
19749
|
ChatBubble,
|
|
19252
19750
|
{
|
|
19253
19751
|
message,
|
|
@@ -19259,8 +19757,8 @@ function MessageItemImpl({
|
|
|
19259
19757
|
}
|
|
19260
19758
|
);
|
|
19261
19759
|
case "document_requested":
|
|
19262
|
-
return /* @__PURE__ */ (0,
|
|
19263
|
-
/* @__PURE__ */ (0,
|
|
19760
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
19761
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19264
19762
|
ChatBubble,
|
|
19265
19763
|
{
|
|
19266
19764
|
message,
|
|
@@ -19271,7 +19769,7 @@ function MessageItemImpl({
|
|
|
19271
19769
|
isLastInGroup
|
|
19272
19770
|
}
|
|
19273
19771
|
),
|
|
19274
|
-
/* @__PURE__ */ (0,
|
|
19772
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19275
19773
|
DocumentRequestCard,
|
|
19276
19774
|
{
|
|
19277
19775
|
message,
|
|
@@ -19282,10 +19780,10 @@ function MessageItemImpl({
|
|
|
19282
19780
|
)
|
|
19283
19781
|
] });
|
|
19284
19782
|
case "document_approved":
|
|
19285
|
-
return /* @__PURE__ */ (0,
|
|
19783
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19286
19784
|
StatusEvent,
|
|
19287
19785
|
{
|
|
19288
|
-
icon: /* @__PURE__ */ (0,
|
|
19786
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CheckIcon, { color: "#059669" }),
|
|
19289
19787
|
color: "#059669",
|
|
19290
19788
|
bgColor: "rgba(16, 185, 129, 0.08)",
|
|
19291
19789
|
borderColor: "rgba(16, 185, 129, 0.2)",
|
|
@@ -19294,10 +19792,10 @@ function MessageItemImpl({
|
|
|
19294
19792
|
}
|
|
19295
19793
|
);
|
|
19296
19794
|
case "document_rejected":
|
|
19297
|
-
return /* @__PURE__ */ (0,
|
|
19795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19298
19796
|
StatusEvent,
|
|
19299
19797
|
{
|
|
19300
|
-
icon: /* @__PURE__ */ (0,
|
|
19798
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(XIcon, { color: "#DC2626" }),
|
|
19301
19799
|
color: "#DC2626",
|
|
19302
19800
|
bgColor: "rgba(220, 38, 38, 0.08)",
|
|
19303
19801
|
borderColor: "rgba(220, 38, 38, 0.2)",
|
|
@@ -19307,10 +19805,10 @@ function MessageItemImpl({
|
|
|
19307
19805
|
}
|
|
19308
19806
|
);
|
|
19309
19807
|
case "document_replacement_requested":
|
|
19310
|
-
return /* @__PURE__ */ (0,
|
|
19808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19311
19809
|
StatusEvent,
|
|
19312
19810
|
{
|
|
19313
|
-
icon: /* @__PURE__ */ (0,
|
|
19811
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(RefreshIcon, { color: "#D97706" }),
|
|
19314
19812
|
color: "#D97706",
|
|
19315
19813
|
bgColor: "rgba(245, 158, 11, 0.08)",
|
|
19316
19814
|
borderColor: "rgba(245, 158, 11, 0.2)",
|
|
@@ -19320,7 +19818,7 @@ function MessageItemImpl({
|
|
|
19320
19818
|
}
|
|
19321
19819
|
);
|
|
19322
19820
|
default:
|
|
19323
|
-
return /* @__PURE__ */ (0,
|
|
19821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19324
19822
|
ChatBubble,
|
|
19325
19823
|
{
|
|
19326
19824
|
message,
|
|
@@ -19333,13 +19831,13 @@ function MessageItemImpl({
|
|
|
19333
19831
|
);
|
|
19334
19832
|
}
|
|
19335
19833
|
}
|
|
19336
|
-
var MessageItem =
|
|
19834
|
+
var MessageItem = import_react38.default.memo(MessageItemImpl);
|
|
19337
19835
|
|
|
19338
19836
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx
|
|
19339
|
-
var
|
|
19340
|
-
var
|
|
19341
|
-
var
|
|
19342
|
-
var
|
|
19837
|
+
var import_react39 = require("react");
|
|
19838
|
+
var import_react_native57 = require("react-native");
|
|
19839
|
+
var import_react_i18next26 = require("react-i18next");
|
|
19840
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
19343
19841
|
function MessageComposer({
|
|
19344
19842
|
messageText,
|
|
19345
19843
|
onMessageTextChange,
|
|
@@ -19351,15 +19849,15 @@ function MessageComposer({
|
|
|
19351
19849
|
isUploading,
|
|
19352
19850
|
isCaseFinalized = false
|
|
19353
19851
|
}) {
|
|
19354
|
-
const { t } = (0,
|
|
19852
|
+
const { t } = (0, import_react_i18next26.useTranslation)();
|
|
19355
19853
|
const { colors } = useTheme();
|
|
19356
19854
|
const canSend = (messageText.trim().length > 0 || pendingUpload) && !isSending && !isUploading && !isCaseFinalized;
|
|
19357
|
-
const activate = (0,
|
|
19358
|
-
(0,
|
|
19359
|
-
|
|
19855
|
+
const activate = (0, import_react39.useRef)(new import_react_native57.Animated.Value(canSend ? 1 : 0)).current;
|
|
19856
|
+
(0, import_react39.useEffect)(() => {
|
|
19857
|
+
import_react_native57.Animated.timing(activate, {
|
|
19360
19858
|
toValue: canSend ? 1 : 0,
|
|
19361
19859
|
duration: 180,
|
|
19362
|
-
easing:
|
|
19860
|
+
easing: import_react_native57.Easing.out(import_react_native57.Easing.quad),
|
|
19363
19861
|
useNativeDriver: false
|
|
19364
19862
|
}).start();
|
|
19365
19863
|
}, [canSend, activate]);
|
|
@@ -19367,30 +19865,30 @@ function MessageComposer({
|
|
|
19367
19865
|
inputRange: [0, 1],
|
|
19368
19866
|
outputRange: [colors.border, colors.primary]
|
|
19369
19867
|
});
|
|
19370
|
-
const pressScale = (0,
|
|
19868
|
+
const pressScale = (0, import_react39.useRef)(new import_react_native57.Animated.Value(1)).current;
|
|
19371
19869
|
const handlePressIn = () => {
|
|
19372
|
-
|
|
19870
|
+
import_react_native57.Animated.spring(pressScale, { toValue: 0.88, useNativeDriver: true, speed: 30, bounciness: 0 }).start();
|
|
19373
19871
|
};
|
|
19374
19872
|
const handlePressOut = () => {
|
|
19375
|
-
|
|
19873
|
+
import_react_native57.Animated.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
|
|
19376
19874
|
};
|
|
19377
|
-
const pillIn = (0,
|
|
19378
|
-
(0,
|
|
19379
|
-
|
|
19875
|
+
const pillIn = (0, import_react39.useRef)(new import_react_native57.Animated.Value(0)).current;
|
|
19876
|
+
(0, import_react39.useEffect)(() => {
|
|
19877
|
+
import_react_native57.Animated.timing(pillIn, {
|
|
19380
19878
|
toValue: pendingUpload ? 1 : 0,
|
|
19381
19879
|
duration: 220,
|
|
19382
|
-
easing:
|
|
19880
|
+
easing: import_react_native57.Easing.out(import_react_native57.Easing.cubic),
|
|
19383
19881
|
useNativeDriver: true
|
|
19384
19882
|
}).start();
|
|
19385
19883
|
}, [pendingUpload, pillIn]);
|
|
19386
19884
|
const pillOpacity = pillIn;
|
|
19387
19885
|
const pillTranslateY = pillIn.interpolate({ inputRange: [0, 1], outputRange: [8, 0] });
|
|
19388
|
-
return /* @__PURE__ */ (0,
|
|
19389
|
-
pendingUpload && /* @__PURE__ */ (0,
|
|
19390
|
-
|
|
19886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.View, { style: [styles46.container, { borderTopColor: colors.hairline, backgroundColor: colors.canvasSubtle, paddingBottom: spacing.sm }], children: [
|
|
19887
|
+
pendingUpload && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
19888
|
+
import_react_native57.Animated.View,
|
|
19391
19889
|
{
|
|
19392
19890
|
style: [
|
|
19393
|
-
|
|
19891
|
+
styles46.uploadPill,
|
|
19394
19892
|
{
|
|
19395
19893
|
backgroundColor: colors.primarySoft,
|
|
19396
19894
|
opacity: pillOpacity,
|
|
@@ -19398,34 +19896,34 @@ function MessageComposer({
|
|
|
19398
19896
|
}
|
|
19399
19897
|
],
|
|
19400
19898
|
children: [
|
|
19401
|
-
/* @__PURE__ */ (0,
|
|
19402
|
-
/* @__PURE__ */ (0,
|
|
19899
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "file", size: 14, color: colors.primary }),
|
|
19900
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.Text, { style: [styles46.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
|
|
19403
19901
|
pendingUpload.file_name,
|
|
19404
19902
|
" (",
|
|
19405
19903
|
formatFileSize(pendingUpload.file_size),
|
|
19406
19904
|
")"
|
|
19407
19905
|
] }),
|
|
19408
|
-
/* @__PURE__ */ (0,
|
|
19906
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.TouchableOpacity, { onPress: onRemovePendingUpload, hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "x", size: 14, color: colors.textSecondary, strokeWidth: 2.4 }) })
|
|
19409
19907
|
]
|
|
19410
19908
|
}
|
|
19411
19909
|
),
|
|
19412
|
-
/* @__PURE__ */ (0,
|
|
19413
|
-
/* @__PURE__ */ (0,
|
|
19414
|
-
|
|
19910
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.View, { style: [styles46.pill, { backgroundColor: colors.surface, borderColor: colors.border }, isCaseFinalized && styles46.pillDisabled], children: [
|
|
19911
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19912
|
+
import_react_native57.TouchableOpacity,
|
|
19415
19913
|
{
|
|
19416
|
-
style:
|
|
19914
|
+
style: styles46.attachButton,
|
|
19417
19915
|
onPress: onAttachClick,
|
|
19418
19916
|
disabled: isUploading || isCaseFinalized,
|
|
19419
19917
|
activeOpacity: 0.6,
|
|
19420
19918
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
19421
19919
|
accessibilityLabel: t("uploadFile") || "Attach file",
|
|
19422
|
-
children: isUploading ? /* @__PURE__ */ (0,
|
|
19920
|
+
children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "paperclip", size: 20, color: colors.textSecondary })
|
|
19423
19921
|
}
|
|
19424
19922
|
),
|
|
19425
|
-
/* @__PURE__ */ (0,
|
|
19426
|
-
|
|
19923
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19924
|
+
import_react_native57.TextInput,
|
|
19427
19925
|
{
|
|
19428
|
-
style: [
|
|
19926
|
+
style: [styles46.input, { color: colors.text }],
|
|
19429
19927
|
value: messageText,
|
|
19430
19928
|
onChangeText: onMessageTextChange,
|
|
19431
19929
|
placeholder: t("messageInputPlaceholder", { defaultValue: "Message\u2026" }),
|
|
@@ -19435,8 +19933,8 @@ function MessageComposer({
|
|
|
19435
19933
|
editable: !isSending && !isCaseFinalized
|
|
19436
19934
|
}
|
|
19437
19935
|
),
|
|
19438
|
-
/* @__PURE__ */ (0,
|
|
19439
|
-
|
|
19936
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.Animated.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19937
|
+
import_react_native57.TouchableOpacity,
|
|
19440
19938
|
{
|
|
19441
19939
|
onPress: onSend,
|
|
19442
19940
|
onPressIn: handlePressIn,
|
|
@@ -19444,15 +19942,15 @@ function MessageComposer({
|
|
|
19444
19942
|
disabled: !canSend,
|
|
19445
19943
|
activeOpacity: 0.85,
|
|
19446
19944
|
accessibilityLabel: t("send") || "Send",
|
|
19447
|
-
children: /* @__PURE__ */ (0,
|
|
19945
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.Animated.View, { style: [styles46.sendButton, { backgroundColor: sendBgColor }], children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.ActivityIndicator, { size: "small", color: colors.primaryText }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.View, { style: styles46.sendIcon, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "send", size: 18, color: canSend ? colors.primaryText : colors.textSecondary }) }) })
|
|
19448
19946
|
}
|
|
19449
19947
|
) })
|
|
19450
19948
|
] })
|
|
19451
19949
|
] });
|
|
19452
19950
|
}
|
|
19453
|
-
var
|
|
19951
|
+
var styles46 = import_react_native57.StyleSheet.create({
|
|
19454
19952
|
container: {
|
|
19455
|
-
borderTopWidth:
|
|
19953
|
+
borderTopWidth: import_react_native57.StyleSheet.hairlineWidth,
|
|
19456
19954
|
paddingHorizontal: spacing.md,
|
|
19457
19955
|
paddingVertical: spacing.sm
|
|
19458
19956
|
},
|
|
@@ -19475,7 +19973,7 @@ var styles44 = import_react_native55.StyleSheet.create({
|
|
|
19475
19973
|
pill: {
|
|
19476
19974
|
flexDirection: "row",
|
|
19477
19975
|
alignItems: "center",
|
|
19478
|
-
borderWidth:
|
|
19976
|
+
borderWidth: import_react_native57.StyleSheet.hairlineWidth,
|
|
19479
19977
|
borderRadius: radii.xxl + 4,
|
|
19480
19978
|
paddingHorizontal: spacing.xs + 2,
|
|
19481
19979
|
paddingVertical: spacing.xs,
|
|
@@ -19514,7 +20012,7 @@ var styles44 = import_react_native55.StyleSheet.create({
|
|
|
19514
20012
|
});
|
|
19515
20013
|
|
|
19516
20014
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
19517
|
-
var
|
|
20015
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
19518
20016
|
var STREAK_GAP_MS = 5 * 60 * 1e3;
|
|
19519
20017
|
function isStreakBoundary(a, b) {
|
|
19520
20018
|
if (!a || !b) return true;
|
|
@@ -19544,11 +20042,11 @@ function sameDay(a, b) {
|
|
|
19544
20042
|
}
|
|
19545
20043
|
var MESSAGE_POLL_INTERVAL = 3e4;
|
|
19546
20044
|
function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
19547
|
-
const { t } = (0,
|
|
20045
|
+
const { t } = (0, import_react_i18next27.useTranslation)();
|
|
19548
20046
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19549
20047
|
const { consentClient } = useBaseUrl();
|
|
19550
20048
|
const { colors } = useTheme();
|
|
19551
|
-
const authContext = (0,
|
|
20049
|
+
const authContext = (0, import_react40.useMemo)(() => ({
|
|
19552
20050
|
accessToken,
|
|
19553
20051
|
refreshToken,
|
|
19554
20052
|
onError,
|
|
@@ -19560,13 +20058,13 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19560
20058
|
caseUuid,
|
|
19561
20059
|
authContext
|
|
19562
20060
|
);
|
|
19563
|
-
const [messageText, setMessageText] = (0,
|
|
19564
|
-
const [pendingUpload, setPendingUpload] = (0,
|
|
19565
|
-
const [isSending, setIsSending] = (0,
|
|
19566
|
-
const [isUploading, setIsUploading] = (0,
|
|
19567
|
-
const [isSubmittingForRequest, setIsSubmittingForRequest] = (0,
|
|
19568
|
-
const flatListRef = (0,
|
|
19569
|
-
(0,
|
|
20061
|
+
const [messageText, setMessageText] = (0, import_react40.useState)("");
|
|
20062
|
+
const [pendingUpload, setPendingUpload] = (0, import_react40.useState)(null);
|
|
20063
|
+
const [isSending, setIsSending] = (0, import_react40.useState)(false);
|
|
20064
|
+
const [isUploading, setIsUploading] = (0, import_react40.useState)(false);
|
|
20065
|
+
const [isSubmittingForRequest, setIsSubmittingForRequest] = (0, import_react40.useState)(false);
|
|
20066
|
+
const flatListRef = (0, import_react40.useRef)(null);
|
|
20067
|
+
(0, import_react40.useEffect)(() => {
|
|
19570
20068
|
if (messages && messages.length > 0) {
|
|
19571
20069
|
setTimeout(() => {
|
|
19572
20070
|
var _a3;
|
|
@@ -19574,16 +20072,19 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19574
20072
|
}, 100);
|
|
19575
20073
|
}
|
|
19576
20074
|
}, [messages == null ? void 0 : messages.length]);
|
|
19577
|
-
const refetchRef = (0,
|
|
20075
|
+
const refetchRef = (0, import_react40.useRef)(refetch);
|
|
19578
20076
|
refetchRef.current = refetch;
|
|
19579
|
-
(0,
|
|
20077
|
+
const authContextRef = (0, import_react40.useRef)(authContext);
|
|
20078
|
+
authContextRef.current = authContext;
|
|
20079
|
+
(0, import_react40.useEffect)(() => {
|
|
19580
20080
|
if (isCaseFinalized) return;
|
|
19581
20081
|
const id = setInterval(() => {
|
|
20082
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
19582
20083
|
refetchRef.current();
|
|
19583
20084
|
}, MESSAGE_POLL_INTERVAL);
|
|
19584
20085
|
return () => clearInterval(id);
|
|
19585
20086
|
}, [isCaseFinalized]);
|
|
19586
|
-
const handleSend = (0,
|
|
20087
|
+
const handleSend = (0, import_react40.useCallback)(async () => {
|
|
19587
20088
|
if (isCaseFinalized) return;
|
|
19588
20089
|
if (!messageText.trim() && !pendingUpload) return;
|
|
19589
20090
|
if (!organizationId || !workspaceId) return;
|
|
@@ -19608,7 +20109,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19608
20109
|
setIsSending(false);
|
|
19609
20110
|
}
|
|
19610
20111
|
}, [isCaseFinalized, messageText, pendingUpload, organizationId, workspaceId, caseUuid, authContext, consentClient, refetch]);
|
|
19611
|
-
const handleAttach = (0,
|
|
20112
|
+
const handleAttach = (0, import_react40.useCallback)(async () => {
|
|
19612
20113
|
if (isCaseFinalized) return;
|
|
19613
20114
|
if (!organizationId || !workspaceId) return;
|
|
19614
20115
|
try {
|
|
@@ -19643,10 +20144,10 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19643
20144
|
setIsUploading(false);
|
|
19644
20145
|
}
|
|
19645
20146
|
}, [isCaseFinalized, organizationId, workspaceId, caseUuid, authContext, consentClient]);
|
|
19646
|
-
const handleUploadForRequest = (0,
|
|
20147
|
+
const handleUploadForRequest = (0, import_react40.useCallback)((_requestEventUuid) => {
|
|
19647
20148
|
handleAttach();
|
|
19648
20149
|
}, [handleAttach]);
|
|
19649
|
-
const messagesList = (0,
|
|
20150
|
+
const messagesList = (0, import_react40.useMemo)(() => {
|
|
19650
20151
|
const list = messages ? [...messages] : [];
|
|
19651
20152
|
list.sort((a, b) => {
|
|
19652
20153
|
const ta = new Date(a.created_at).getTime();
|
|
@@ -19655,17 +20156,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19655
20156
|
});
|
|
19656
20157
|
return list;
|
|
19657
20158
|
}, [messages]);
|
|
19658
|
-
const keyExtractor = (0,
|
|
19659
|
-
const renderMessage = (0,
|
|
20159
|
+
const keyExtractor = (0, import_react40.useCallback)((item) => item.uuid, []);
|
|
20160
|
+
const renderMessage = (0, import_react40.useCallback)(
|
|
19660
20161
|
({ item, index }) => {
|
|
19661
20162
|
const prev = index > 0 ? messagesList[index - 1] : void 0;
|
|
19662
20163
|
const next = index < messagesList.length - 1 ? messagesList[index + 1] : void 0;
|
|
19663
20164
|
const isFirstInGroup = isStreakBoundary(prev, item);
|
|
19664
20165
|
const isLastInGroup = isStreakBoundary(item, next);
|
|
19665
20166
|
const dateSeparator = getDateSeparator(prev == null ? void 0 : prev.created_at, item.created_at, t);
|
|
19666
|
-
return /* @__PURE__ */ (0,
|
|
19667
|
-
dateSeparator ? /* @__PURE__ */ (0,
|
|
19668
|
-
/* @__PURE__ */ (0,
|
|
20167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
20168
|
+
dateSeparator ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.daySeparator, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: [styles47.dayPill, { backgroundColor: colors.surfaceAlt }], children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.dayPillText, { color: colors.textSecondary }], children: dateSeparator }) }) }) : null,
|
|
20169
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
19669
20170
|
MessageItem,
|
|
19670
20171
|
{
|
|
19671
20172
|
message: item,
|
|
@@ -19681,32 +20182,32 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19681
20182
|
[messagesList, handleUploadForRequest, isSubmittingForRequest, isCaseFinalized, colors, t]
|
|
19682
20183
|
);
|
|
19683
20184
|
if (isLoading) {
|
|
19684
|
-
return /* @__PURE__ */ (0,
|
|
20185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.centered, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.ActivityIndicator, { size: "large", color: colors.primary }) });
|
|
19685
20186
|
}
|
|
19686
20187
|
if (error) {
|
|
19687
|
-
return /* @__PURE__ */ (0,
|
|
20188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.centered, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
|
|
19688
20189
|
}
|
|
19689
|
-
return /* @__PURE__ */ (0,
|
|
19690
|
-
/* @__PURE__ */ (0,
|
|
19691
|
-
/* @__PURE__ */ (0,
|
|
19692
|
-
/* @__PURE__ */ (0,
|
|
20190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: [styles47.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
20191
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: styles47.secureRow, children: [
|
|
20192
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "lock", size: 12, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
20193
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { 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"}` })
|
|
19693
20194
|
] }),
|
|
19694
|
-
/* @__PURE__ */ (0,
|
|
19695
|
-
|
|
20195
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
20196
|
+
import_react_native58.FlatList,
|
|
19696
20197
|
{
|
|
19697
20198
|
ref: flatListRef,
|
|
19698
|
-
style:
|
|
20199
|
+
style: styles47.list,
|
|
19699
20200
|
data: messagesList,
|
|
19700
20201
|
keyExtractor,
|
|
19701
20202
|
renderItem: renderMessage,
|
|
19702
20203
|
contentContainerStyle: [
|
|
19703
|
-
|
|
19704
|
-
messagesList.length ?
|
|
20204
|
+
styles47.messagesList,
|
|
20205
|
+
messagesList.length ? styles47.messagesListFill : styles47.messagesListCenter
|
|
19705
20206
|
],
|
|
19706
|
-
ListEmptyComponent: /* @__PURE__ */ (0,
|
|
19707
|
-
/* @__PURE__ */ (0,
|
|
19708
|
-
/* @__PURE__ */ (0,
|
|
19709
|
-
/* @__PURE__ */ (0,
|
|
20207
|
+
ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: styles47.emptyContainer, children: [
|
|
20208
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: [styles47.emptyIconWrap, { backgroundColor: colors.primarySoft }], children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "messages-square", size: 28, color: colors.primary, strokeWidth: 2 }) }),
|
|
20209
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
|
|
20210
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
|
|
19710
20211
|
] }),
|
|
19711
20212
|
onContentSizeChange: () => {
|
|
19712
20213
|
var _a3;
|
|
@@ -19718,7 +20219,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19718
20219
|
removeClippedSubviews: true
|
|
19719
20220
|
}
|
|
19720
20221
|
),
|
|
19721
|
-
/* @__PURE__ */ (0,
|
|
20222
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
19722
20223
|
MessageComposer,
|
|
19723
20224
|
{
|
|
19724
20225
|
messageText,
|
|
@@ -19734,7 +20235,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19734
20235
|
)
|
|
19735
20236
|
] });
|
|
19736
20237
|
}
|
|
19737
|
-
var
|
|
20238
|
+
var styles47 = import_react_native58.StyleSheet.create({
|
|
19738
20239
|
container: {
|
|
19739
20240
|
flex: 1
|
|
19740
20241
|
},
|
|
@@ -19817,17 +20318,17 @@ var styles45 = import_react_native56.StyleSheet.create({
|
|
|
19817
20318
|
});
|
|
19818
20319
|
|
|
19819
20320
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
19820
|
-
var
|
|
20321
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
19821
20322
|
function CaseDetailsPage() {
|
|
19822
20323
|
var _a3, _b;
|
|
19823
|
-
const { t } = (0,
|
|
20324
|
+
const { t } = (0, import_react_i18next28.useTranslation)();
|
|
19824
20325
|
const { navigateTo, selectedCase, setSelectedCase, pendingCaseUuid } = useInternalNavigation();
|
|
19825
20326
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19826
20327
|
const { colors } = useTheme();
|
|
19827
20328
|
const { keyboardOffset } = usePrivacyCenterInsets();
|
|
19828
20329
|
const requestTypeLabels = useRequestTypeLabels();
|
|
19829
|
-
const [activeTab, setActiveTab] = (0,
|
|
19830
|
-
const authContext = (0,
|
|
20330
|
+
const [activeTab, setActiveTab] = (0, import_react41.useState)("request-details");
|
|
20331
|
+
const authContext = (0, import_react41.useMemo)(() => ({
|
|
19831
20332
|
accessToken,
|
|
19832
20333
|
refreshToken,
|
|
19833
20334
|
onError,
|
|
@@ -19840,7 +20341,7 @@ function CaseDetailsPage() {
|
|
|
19840
20341
|
email != null ? email : void 0,
|
|
19841
20342
|
authContext
|
|
19842
20343
|
);
|
|
19843
|
-
(0,
|
|
20344
|
+
(0, import_react41.useEffect)(() => {
|
|
19844
20345
|
if (!cases) return;
|
|
19845
20346
|
if (cases.length === 0) {
|
|
19846
20347
|
navigateTo("form");
|
|
@@ -19854,33 +20355,33 @@ function CaseDetailsPage() {
|
|
|
19854
20355
|
navigateTo("form");
|
|
19855
20356
|
}
|
|
19856
20357
|
}, [cases, targetUuid, setSelectedCase, navigateTo]);
|
|
19857
|
-
(0,
|
|
20358
|
+
(0, import_react41.useEffect)(() => {
|
|
19858
20359
|
if (!selectedCase && !targetUuid && !isLoading) {
|
|
19859
20360
|
navigateTo("form");
|
|
19860
20361
|
}
|
|
19861
20362
|
}, [selectedCase, targetUuid, isLoading, navigateTo]);
|
|
19862
20363
|
if (!selectedCase) {
|
|
19863
|
-
return /* @__PURE__ */ (0,
|
|
20364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: styles48.centered, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.ActivityIndicator, { size: "large", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.emptyText, { color: colors.textSecondary }], children: t("noCasesYet") || "No case selected" }) });
|
|
19864
20365
|
}
|
|
19865
20366
|
const requestTypeLabel = requestTypeLabels[(_b = selectedCase.request_type) == null ? void 0 : _b.toUpperCase()] || selectedCase.request_type_display || formatCaseStatus(selectedCase.request_type || "");
|
|
19866
20367
|
const tabs = [
|
|
19867
20368
|
{ id: "request-details", label: t("requestDetails") || "Request Details" },
|
|
19868
20369
|
{ id: "messages", label: t("messages") || "Messages" }
|
|
19869
20370
|
];
|
|
19870
|
-
return /* @__PURE__ */ (0,
|
|
20371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
19871
20372
|
KeyboardAvoidingViewCompat,
|
|
19872
20373
|
{
|
|
19873
|
-
style: [
|
|
20374
|
+
style: [styles48.container, { backgroundColor: colors.canvasSubtle }],
|
|
19874
20375
|
behavior: "padding",
|
|
19875
|
-
keyboardVerticalOffset:
|
|
20376
|
+
keyboardVerticalOffset: import_react_native59.Platform.OS === "ios" ? keyboardOffset : 0,
|
|
19876
20377
|
children: [
|
|
19877
|
-
/* @__PURE__ */ (0,
|
|
19878
|
-
/* @__PURE__ */ (0,
|
|
19879
|
-
/* @__PURE__ */ (0,
|
|
19880
|
-
/* @__PURE__ */ (0,
|
|
19881
|
-
/* @__PURE__ */ (0,
|
|
19882
|
-
/* @__PURE__ */ (0,
|
|
19883
|
-
/* @__PURE__ */ (0,
|
|
20378
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.headerWrap, children: [
|
|
20379
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.heroCard, elevation.card, { backgroundColor: colors.surface }], children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroInner, children: [
|
|
20380
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.accent, { backgroundColor: getCaseStatusColor(selectedCase.status, colors) }] }),
|
|
20381
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroBody, children: [
|
|
20382
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroTopRow, children: [
|
|
20383
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.typeChip, { backgroundColor: withAlpha(getRequestTypeColor(selectedCase.request_type, colors), 0.12) }], children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.typeChipText, { color: getRequestTypeColor(selectedCase.request_type, colors) }], numberOfLines: 1, children: requestTypeLabel }) }),
|
|
20384
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19884
20385
|
PCBadge,
|
|
19885
20386
|
{
|
|
19886
20387
|
status: getCaseStatusVariant(selectedCase.status),
|
|
@@ -19889,10 +20390,10 @@ function CaseDetailsPage() {
|
|
|
19889
20390
|
}
|
|
19890
20391
|
)
|
|
19891
20392
|
] }),
|
|
19892
|
-
/* @__PURE__ */ (0,
|
|
20393
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.caseId, { color: colors.text }], numberOfLines: 1, children: selectedCase.case_id })
|
|
19893
20394
|
] })
|
|
19894
20395
|
] }) }),
|
|
19895
|
-
/* @__PURE__ */ (0,
|
|
20396
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19896
20397
|
Segmented,
|
|
19897
20398
|
{
|
|
19898
20399
|
options: tabs.map((tab) => ({ value: tab.id, label: tab.label })),
|
|
@@ -19901,18 +20402,18 @@ function CaseDetailsPage() {
|
|
|
19901
20402
|
}
|
|
19902
20403
|
)
|
|
19903
20404
|
] }),
|
|
19904
|
-
/* @__PURE__ */ (0,
|
|
20405
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: styles48.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19905
20406
|
RequestDetailsTab,
|
|
19906
20407
|
{
|
|
19907
20408
|
selectedCase,
|
|
19908
20409
|
requestTypeLabel
|
|
19909
20410
|
}
|
|
19910
|
-
) : /* @__PURE__ */ (0,
|
|
20411
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(MessagesTab, { caseUuid: selectedCase.uuid, isCaseFinalized: isTerminalCaseStatus(selectedCase.status) }) })
|
|
19911
20412
|
]
|
|
19912
20413
|
}
|
|
19913
20414
|
);
|
|
19914
20415
|
}
|
|
19915
|
-
var
|
|
20416
|
+
var styles48 = import_react_native59.StyleSheet.create({
|
|
19916
20417
|
container: {
|
|
19917
20418
|
flex: 1
|
|
19918
20419
|
},
|
|
@@ -19977,36 +20478,36 @@ var styles46 = import_react_native57.StyleSheet.create({
|
|
|
19977
20478
|
});
|
|
19978
20479
|
|
|
19979
20480
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
19980
|
-
var
|
|
19981
|
-
var
|
|
19982
|
-
var
|
|
20481
|
+
var import_react44 = require("react");
|
|
20482
|
+
var import_react_native65 = require("react-native");
|
|
20483
|
+
var import_react_i18next30 = require("react-i18next");
|
|
19983
20484
|
|
|
19984
20485
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
19985
|
-
var
|
|
19986
|
-
var
|
|
20486
|
+
var import_react_native63 = require("react-native");
|
|
20487
|
+
var import_react_i18next29 = require("react-i18next");
|
|
19987
20488
|
|
|
19988
20489
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx
|
|
19989
|
-
var
|
|
19990
|
-
var
|
|
20490
|
+
var import_react_native60 = require("react-native");
|
|
20491
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
19991
20492
|
var NotificationCTAButton = ({ cta, onPress }) => {
|
|
19992
20493
|
const { colors } = useTheme();
|
|
19993
20494
|
const tone = cta.style === "danger" ? colors.error : colors.primary;
|
|
19994
20495
|
const isPrimary = cta.style === "primary" || cta.style === "danger";
|
|
19995
|
-
return /* @__PURE__ */ (0,
|
|
19996
|
-
|
|
20496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
20497
|
+
import_react_native60.TouchableOpacity,
|
|
19997
20498
|
{
|
|
19998
20499
|
onPress,
|
|
19999
20500
|
activeOpacity: 0.7,
|
|
20000
20501
|
style: [
|
|
20001
|
-
|
|
20502
|
+
styles49.button,
|
|
20002
20503
|
isPrimary ? { backgroundColor: tone } : { backgroundColor: colors.primarySoft }
|
|
20003
20504
|
],
|
|
20004
20505
|
accessibilityRole: "button",
|
|
20005
|
-
children: /* @__PURE__ */ (0,
|
|
20506
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_native60.Text, { style: [styles49.label, { color: isPrimary ? colors.primaryText : colors.primary }], numberOfLines: 1, children: cta.label })
|
|
20006
20507
|
}
|
|
20007
20508
|
);
|
|
20008
20509
|
};
|
|
20009
|
-
var
|
|
20510
|
+
var styles49 = import_react_native60.StyleSheet.create({
|
|
20010
20511
|
button: {
|
|
20011
20512
|
paddingHorizontal: spacing.lg,
|
|
20012
20513
|
paddingVertical: spacing.sm,
|
|
@@ -20021,8 +20522,8 @@ var styles47 = import_react_native58.StyleSheet.create({
|
|
|
20021
20522
|
});
|
|
20022
20523
|
|
|
20023
20524
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx
|
|
20024
|
-
var
|
|
20025
|
-
var
|
|
20525
|
+
var import_react_native61 = require("react-native");
|
|
20526
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
20026
20527
|
var CATEGORY_ICON = {
|
|
20027
20528
|
guardian: "user-round",
|
|
20028
20529
|
consent: "clock",
|
|
@@ -20035,18 +20536,18 @@ var NotificationIcon = ({ notificationType, size = 40 }) => {
|
|
|
20035
20536
|
var _a3;
|
|
20036
20537
|
const category = (_a3 = TYPE_TO_ICON_CATEGORY[notificationType]) != null ? _a3 : "system";
|
|
20037
20538
|
const color = ICON_COLORS[category];
|
|
20038
|
-
return /* @__PURE__ */ (0,
|
|
20039
|
-
|
|
20539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
20540
|
+
import_react_native61.View,
|
|
20040
20541
|
{
|
|
20041
20542
|
style: [
|
|
20042
|
-
|
|
20543
|
+
styles50.wrap,
|
|
20043
20544
|
{ width: size, height: size, borderRadius: radii.md, backgroundColor: withAlpha(color, 0.13) }
|
|
20044
20545
|
],
|
|
20045
|
-
children: /* @__PURE__ */ (0,
|
|
20546
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: CATEGORY_ICON[category], size: Math.round(size * 0.5), color, strokeWidth: 2 })
|
|
20046
20547
|
}
|
|
20047
20548
|
);
|
|
20048
20549
|
};
|
|
20049
|
-
var
|
|
20550
|
+
var styles50 = import_react_native61.StyleSheet.create({
|
|
20050
20551
|
wrap: {
|
|
20051
20552
|
alignItems: "center",
|
|
20052
20553
|
justifyContent: "center"
|
|
@@ -20054,15 +20555,15 @@ var styles48 = import_react_native59.StyleSheet.create({
|
|
|
20054
20555
|
});
|
|
20055
20556
|
|
|
20056
20557
|
// src/RedactoPrivacyCenter/components/NotificationHub/SwipeableRow.tsx
|
|
20057
|
-
var
|
|
20058
|
-
var
|
|
20059
|
-
var
|
|
20558
|
+
var import_react42 = require("react");
|
|
20559
|
+
var import_react_native62 = require("react-native");
|
|
20560
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
20060
20561
|
var ACTION_WIDTH = 80;
|
|
20061
20562
|
var CLAIM_THRESHOLD = 8;
|
|
20062
20563
|
var SwipeableRow = ({ actions, background, children }) => {
|
|
20063
20564
|
const { colors } = useTheme();
|
|
20064
|
-
const translateX = (0,
|
|
20065
|
-
const baseX = (0,
|
|
20565
|
+
const translateX = (0, import_react42.useRef)(new import_react_native62.Animated.Value(0)).current;
|
|
20566
|
+
const baseX = (0, import_react42.useRef)(0);
|
|
20066
20567
|
const maxOpen = actions.length * ACTION_WIDTH;
|
|
20067
20568
|
const toneColor2 = {
|
|
20068
20569
|
primary: colors.primary,
|
|
@@ -20071,10 +20572,10 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
20071
20572
|
};
|
|
20072
20573
|
const settle = (to) => {
|
|
20073
20574
|
baseX.current = to;
|
|
20074
|
-
|
|
20575
|
+
import_react_native62.Animated.spring(translateX, { toValue: to, useNativeDriver: true, bounciness: 0, speed: 18 }).start();
|
|
20075
20576
|
};
|
|
20076
|
-
const panResponder = (0,
|
|
20077
|
-
() =>
|
|
20577
|
+
const panResponder = (0, import_react42.useMemo)(
|
|
20578
|
+
() => import_react_native62.PanResponder.create({
|
|
20078
20579
|
onMoveShouldSetPanResponder: (_, g) => {
|
|
20079
20580
|
const horizontal = Math.abs(g.dx) > Math.abs(g.dy) * 1.5;
|
|
20080
20581
|
if (!horizontal) return false;
|
|
@@ -20095,37 +20596,37 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
20095
20596
|
[maxOpen]
|
|
20096
20597
|
);
|
|
20097
20598
|
if (actions.length === 0) {
|
|
20098
|
-
return /* @__PURE__ */ (0,
|
|
20599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, { children });
|
|
20099
20600
|
}
|
|
20100
20601
|
const runAction = (action) => {
|
|
20101
20602
|
settle(0);
|
|
20102
20603
|
action.onPress();
|
|
20103
20604
|
};
|
|
20104
|
-
return /* @__PURE__ */ (0,
|
|
20105
|
-
/* @__PURE__ */ (0,
|
|
20106
|
-
|
|
20605
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_react_native62.View, { style: styles51.root, children: [
|
|
20606
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.View, { style: styles51.actionsLayer, pointerEvents: "box-none", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
20607
|
+
import_react_native62.TouchableOpacity,
|
|
20107
20608
|
{
|
|
20108
|
-
style: [
|
|
20609
|
+
style: [styles51.action, { width: ACTION_WIDTH, backgroundColor: toneColor2[action.tone] }],
|
|
20109
20610
|
onPress: () => runAction(action),
|
|
20110
20611
|
activeOpacity: 0.85,
|
|
20111
20612
|
accessibilityRole: "button",
|
|
20112
20613
|
accessibilityLabel: action.label,
|
|
20113
20614
|
children: [
|
|
20114
|
-
/* @__PURE__ */ (0,
|
|
20115
|
-
/* @__PURE__ */ (0,
|
|
20615
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { name: action.icon, size: 20, color: colors.primaryText, strokeWidth: 2.2 }),
|
|
20616
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.Text, { style: [styles51.actionLabel, { color: colors.primaryText }], numberOfLines: 1, children: action.label })
|
|
20116
20617
|
]
|
|
20117
20618
|
},
|
|
20118
20619
|
action.key
|
|
20119
20620
|
)) }),
|
|
20120
|
-
/* @__PURE__ */ (0,
|
|
20621
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.Animated.View, { style: [{ backgroundColor: background, transform: [{ translateX }] }], ...panResponder.panHandlers, children })
|
|
20121
20622
|
] });
|
|
20122
20623
|
};
|
|
20123
|
-
var
|
|
20624
|
+
var styles51 = import_react_native62.StyleSheet.create({
|
|
20124
20625
|
root: {
|
|
20125
20626
|
position: "relative"
|
|
20126
20627
|
},
|
|
20127
20628
|
actionsLayer: {
|
|
20128
|
-
...
|
|
20629
|
+
...import_react_native62.StyleSheet.absoluteFillObject,
|
|
20129
20630
|
flexDirection: "row",
|
|
20130
20631
|
justifyContent: "flex-end"
|
|
20131
20632
|
},
|
|
@@ -20158,10 +20659,10 @@ var formatTimeAgo = (dateString, t) => {
|
|
|
20158
20659
|
};
|
|
20159
20660
|
|
|
20160
20661
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
20161
|
-
var
|
|
20662
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
20162
20663
|
var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) => {
|
|
20163
20664
|
var _a3, _b;
|
|
20164
|
-
const { t } = (0,
|
|
20665
|
+
const { t } = (0, import_react_i18next29.useTranslation)();
|
|
20165
20666
|
const { colors } = useTheme();
|
|
20166
20667
|
const isUnread = !notification.is_read;
|
|
20167
20668
|
const statusLabel = notification.status_label_display || notification.status_label;
|
|
@@ -20188,35 +20689,35 @@ var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) =>
|
|
|
20188
20689
|
onPress: onAcknowledge
|
|
20189
20690
|
});
|
|
20190
20691
|
}
|
|
20191
|
-
return /* @__PURE__ */ (0,
|
|
20192
|
-
isUnread ? /* @__PURE__ */ (0,
|
|
20193
|
-
/* @__PURE__ */ (0,
|
|
20194
|
-
/* @__PURE__ */ (0,
|
|
20195
|
-
/* @__PURE__ */ (0,
|
|
20196
|
-
/* @__PURE__ */ (0,
|
|
20197
|
-
|
|
20692
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SwipeableRow, { actions, background: colors.surface, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.TouchableOpacity, { onPress, activeOpacity: 0.6, accessibilityRole: "button", style: styles52.row, children: [
|
|
20693
|
+
isUnread ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.accent, { backgroundColor: accent }] }) : null,
|
|
20694
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NotificationIcon, { notificationType: notification.notification_type, size: 36 }),
|
|
20695
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.content, children: [
|
|
20696
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.titleRow, children: [
|
|
20697
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
20698
|
+
import_react_native63.Text,
|
|
20198
20699
|
{
|
|
20199
|
-
style: [
|
|
20700
|
+
style: [styles52.title, { color: colors.text, fontWeight: isUnread ? "700" : "600" }],
|
|
20200
20701
|
numberOfLines: 2,
|
|
20201
20702
|
children: notification.title
|
|
20202
20703
|
}
|
|
20203
20704
|
),
|
|
20204
|
-
isUnread ? /* @__PURE__ */ (0,
|
|
20705
|
+
isUnread ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.unreadDot, { backgroundColor: colors.primary }] }) : null
|
|
20205
20706
|
] }),
|
|
20206
|
-
/* @__PURE__ */ (0,
|
|
20207
|
-
statusLabel ? /* @__PURE__ */ (0,
|
|
20208
|
-
/* @__PURE__ */ (0,
|
|
20209
|
-
/* @__PURE__ */ (0,
|
|
20210
|
-
/* @__PURE__ */ (0,
|
|
20707
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.metaRow, children: [
|
|
20708
|
+
statusLabel ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
20709
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.statusDot, { backgroundColor: accent }] }),
|
|
20710
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaText, { color: colors.textSecondary }], numberOfLines: 1, children: statusLabel }),
|
|
20711
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaDivider, { color: colors.textSecondary }], children: "\xB7" })
|
|
20211
20712
|
] }) : null,
|
|
20212
|
-
/* @__PURE__ */ (0,
|
|
20713
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaText, { color: colors.textSecondary }], children: formatTimeAgo(notification.created_at, t) })
|
|
20213
20714
|
] }),
|
|
20214
|
-
showAcknowledge && ackCta ? /* @__PURE__ */ (0,
|
|
20715
|
+
showAcknowledge && ackCta ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: styles52.ackWrap, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NotificationCTAButton, { cta: ackCta, onPress: onAcknowledge }) }) : null
|
|
20215
20716
|
] }),
|
|
20216
|
-
/* @__PURE__ */ (0,
|
|
20717
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: styles52.chevron, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary }) })
|
|
20217
20718
|
] }) });
|
|
20218
20719
|
};
|
|
20219
|
-
var
|
|
20720
|
+
var styles52 = import_react_native63.StyleSheet.create({
|
|
20220
20721
|
row: {
|
|
20221
20722
|
flexDirection: "row",
|
|
20222
20723
|
alignItems: "center",
|
|
@@ -20279,25 +20780,25 @@ var styles50 = import_react_native61.StyleSheet.create({
|
|
|
20279
20780
|
});
|
|
20280
20781
|
|
|
20281
20782
|
// src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts
|
|
20282
|
-
var
|
|
20283
|
-
var
|
|
20783
|
+
var import_react43 = require("react");
|
|
20784
|
+
var import_react_native64 = require("react-native");
|
|
20284
20785
|
var useNotificationActions = () => {
|
|
20285
20786
|
const { navigateTo, setSelectedCase } = useInternalNavigation();
|
|
20286
20787
|
const { accessToken, refreshToken, onError, updateTokens, organizationId, workspaceId, email } = useAuth();
|
|
20287
20788
|
const { consentClient } = useBaseUrl();
|
|
20288
20789
|
const { langParam } = useCurrentLanguage();
|
|
20289
|
-
const authContext = (0,
|
|
20790
|
+
const authContext = (0, import_react43.useMemo)(
|
|
20290
20791
|
() => ({ accessToken, refreshToken, onError, updateTokens }),
|
|
20291
20792
|
[accessToken, refreshToken, onError, updateTokens]
|
|
20292
20793
|
);
|
|
20293
|
-
const hasAcknowledgeCTA = (0,
|
|
20794
|
+
const hasAcknowledgeCTA = (0, import_react43.useCallback)(
|
|
20294
20795
|
(notification) => {
|
|
20295
20796
|
var _a3, _b;
|
|
20296
20797
|
return (_b = (_a3 = notification.ctas) == null ? void 0 : _a3.some((cta) => cta.action_type === "acknowledge")) != null ? _b : false;
|
|
20297
20798
|
},
|
|
20298
20799
|
[]
|
|
20299
20800
|
);
|
|
20300
|
-
const handleMarkRead = (0,
|
|
20801
|
+
const handleMarkRead = (0, import_react43.useCallback)(
|
|
20301
20802
|
async (notificationUuid) => {
|
|
20302
20803
|
if (!organizationId || !workspaceId) return false;
|
|
20303
20804
|
const result = await markNotificationRead(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20305,12 +20806,12 @@ var useNotificationActions = () => {
|
|
|
20305
20806
|
},
|
|
20306
20807
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20307
20808
|
);
|
|
20308
|
-
const handleMarkAllRead = (0,
|
|
20809
|
+
const handleMarkAllRead = (0, import_react43.useCallback)(async () => {
|
|
20309
20810
|
if (!organizationId || !workspaceId) return false;
|
|
20310
20811
|
const result = await markAllRead(organizationId, workspaceId, authContext, consentClient);
|
|
20311
20812
|
return result !== null;
|
|
20312
20813
|
}, [organizationId, workspaceId, authContext, consentClient]);
|
|
20313
|
-
const handleAcknowledge = (0,
|
|
20814
|
+
const handleAcknowledge = (0, import_react43.useCallback)(
|
|
20314
20815
|
async (notificationUuid) => {
|
|
20315
20816
|
if (!organizationId || !workspaceId) return false;
|
|
20316
20817
|
const result = await acknowledgeNotification(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20318,7 +20819,7 @@ var useNotificationActions = () => {
|
|
|
20318
20819
|
},
|
|
20319
20820
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20320
20821
|
);
|
|
20321
|
-
const handleCTAClick = (0,
|
|
20822
|
+
const handleCTAClick = (0, import_react43.useCallback)(
|
|
20322
20823
|
async (notification, cta) => {
|
|
20323
20824
|
var _a3;
|
|
20324
20825
|
if (cta.action_type === "acknowledge") {
|
|
@@ -20352,7 +20853,7 @@ var useNotificationActions = () => {
|
|
|
20352
20853
|
const url = cta.url;
|
|
20353
20854
|
if (!/^https?:\/\//i.test(url)) return null;
|
|
20354
20855
|
try {
|
|
20355
|
-
await
|
|
20856
|
+
await import_react_native64.Linking.openURL(url);
|
|
20356
20857
|
return "opened";
|
|
20357
20858
|
} catch {
|
|
20358
20859
|
return null;
|
|
@@ -20375,7 +20876,7 @@ var useNotificationActions = () => {
|
|
|
20375
20876
|
};
|
|
20376
20877
|
|
|
20377
20878
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
20378
|
-
var
|
|
20879
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
20379
20880
|
var EMPTY_SUMMARY = { total: 0, unread: 0, action_needed: 0, acknowledged: 0 };
|
|
20380
20881
|
var READ_FILTER_TO_PARAM = {
|
|
20381
20882
|
all: void 0,
|
|
@@ -20383,7 +20884,7 @@ var READ_FILTER_TO_PARAM = {
|
|
|
20383
20884
|
read: true
|
|
20384
20885
|
};
|
|
20385
20886
|
var NotificationsScreen = () => {
|
|
20386
|
-
const { t } = (0,
|
|
20887
|
+
const { t } = (0, import_react_i18next30.useTranslation)();
|
|
20387
20888
|
const { colors } = useTheme();
|
|
20388
20889
|
const { langParam } = useCurrentLanguage();
|
|
20389
20890
|
const { listBottom } = usePrivacyCenterInsets();
|
|
@@ -20400,15 +20901,15 @@ var NotificationsScreen = () => {
|
|
|
20400
20901
|
handleAcknowledge,
|
|
20401
20902
|
handleCTAClick
|
|
20402
20903
|
} = useNotificationActions();
|
|
20403
|
-
const [notifications, setNotifications] = (0,
|
|
20404
|
-
const [summary, setSummary] = (0,
|
|
20405
|
-
const [activeTab, setActiveTab] = (0,
|
|
20406
|
-
const [readFilter, setReadFilter] = (0,
|
|
20407
|
-
const [isLoading, setIsLoading] = (0,
|
|
20408
|
-
const [isRefreshing2, setIsRefreshing] = (0,
|
|
20409
|
-
const [filterOpen, setFilterOpen] = (0,
|
|
20904
|
+
const [notifications, setNotifications] = (0, import_react44.useState)([]);
|
|
20905
|
+
const [summary, setSummary] = (0, import_react44.useState)(EMPTY_SUMMARY);
|
|
20906
|
+
const [activeTab, setActiveTab] = (0, import_react44.useState)("all");
|
|
20907
|
+
const [readFilter, setReadFilter] = (0, import_react44.useState)("all");
|
|
20908
|
+
const [isLoading, setIsLoading] = (0, import_react44.useState)(true);
|
|
20909
|
+
const [isRefreshing2, setIsRefreshing] = (0, import_react44.useState)(false);
|
|
20910
|
+
const [filterOpen, setFilterOpen] = (0, import_react44.useState)(false);
|
|
20410
20911
|
const isFiltered = activeTab !== "all" || readFilter !== "all";
|
|
20411
|
-
const loadNotifications = (0,
|
|
20912
|
+
const loadNotifications = (0, import_react44.useCallback)(
|
|
20412
20913
|
async (includeSummary = false, silent = false) => {
|
|
20413
20914
|
if (!organizationId || !workspaceId) return;
|
|
20414
20915
|
if (!silent) setIsLoading(true);
|
|
@@ -20438,18 +20939,21 @@ var NotificationsScreen = () => {
|
|
|
20438
20939
|
},
|
|
20439
20940
|
[organizationId, workspaceId, activeTab, readFilter, authContext, consentClient, langParam]
|
|
20440
20941
|
);
|
|
20441
|
-
(0,
|
|
20942
|
+
(0, import_react44.useEffect)(() => {
|
|
20442
20943
|
loadNotifications(true);
|
|
20443
20944
|
}, [loadNotifications]);
|
|
20444
|
-
const loadRef = (0,
|
|
20945
|
+
const loadRef = (0, import_react44.useRef)(loadNotifications);
|
|
20445
20946
|
loadRef.current = loadNotifications;
|
|
20446
|
-
(0,
|
|
20947
|
+
const authContextRef = (0, import_react44.useRef)(authContext);
|
|
20948
|
+
authContextRef.current = authContext;
|
|
20949
|
+
(0, import_react44.useEffect)(() => {
|
|
20447
20950
|
const id = setInterval(() => {
|
|
20951
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
20448
20952
|
loadRef.current(false, true);
|
|
20449
20953
|
}, POLL_INTERVAL);
|
|
20450
20954
|
return () => clearInterval(id);
|
|
20451
20955
|
}, []);
|
|
20452
|
-
const onNotificationClick = (0,
|
|
20956
|
+
const onNotificationClick = (0, import_react44.useCallback)(
|
|
20453
20957
|
async (notification) => {
|
|
20454
20958
|
const shouldMarkRead = !notification.is_read;
|
|
20455
20959
|
const shouldAutoAcknowledge = !notification.is_acknowledged && !hasAcknowledgeCTA(notification);
|
|
@@ -20470,7 +20974,7 @@ var NotificationsScreen = () => {
|
|
|
20470
20974
|
},
|
|
20471
20975
|
[hasAcknowledgeCTA, handleAcknowledge, handleMarkRead]
|
|
20472
20976
|
);
|
|
20473
|
-
const onRowPress = (0,
|
|
20977
|
+
const onRowPress = (0, import_react44.useCallback)(
|
|
20474
20978
|
async (notification) => {
|
|
20475
20979
|
var _a3;
|
|
20476
20980
|
const linkCta = (_a3 = notification.ctas) == null ? void 0 : _a3.find((cta) => cta.action_type === "link" && cta.url);
|
|
@@ -20488,7 +20992,7 @@ var NotificationsScreen = () => {
|
|
|
20488
20992
|
},
|
|
20489
20993
|
[handleCTAClick, onNotificationClick]
|
|
20490
20994
|
);
|
|
20491
|
-
const onMarkReadRow = (0,
|
|
20995
|
+
const onMarkReadRow = (0, import_react44.useCallback)(
|
|
20492
20996
|
async (notification) => {
|
|
20493
20997
|
if (notification.is_read) return;
|
|
20494
20998
|
const ok = await handleMarkRead(notification.uuid);
|
|
@@ -20498,7 +21002,7 @@ var NotificationsScreen = () => {
|
|
|
20498
21002
|
},
|
|
20499
21003
|
[handleMarkRead]
|
|
20500
21004
|
);
|
|
20501
|
-
const onAcknowledgeRow = (0,
|
|
21005
|
+
const onAcknowledgeRow = (0, import_react44.useCallback)(
|
|
20502
21006
|
async (notification) => {
|
|
20503
21007
|
if (notification.is_acknowledged) return;
|
|
20504
21008
|
const ok = await handleAcknowledge(notification.uuid);
|
|
@@ -20515,22 +21019,29 @@ var NotificationsScreen = () => {
|
|
|
20515
21019
|
},
|
|
20516
21020
|
[handleAcknowledge]
|
|
20517
21021
|
);
|
|
20518
|
-
const
|
|
21022
|
+
const onMarkAllRead = (0, import_react44.useCallback)(async () => {
|
|
21023
|
+
const ok = await handleMarkAllRead();
|
|
21024
|
+
if (!ok) return;
|
|
21025
|
+
setNotifications((prev) => prev.map((item) => ({ ...item, is_read: true })));
|
|
21026
|
+
setSummary((prev) => ({ ...prev, unread: 0 }));
|
|
21027
|
+
if (readFilter !== "all") loadNotifications(true, true);
|
|
21028
|
+
}, [handleMarkAllRead, readFilter, loadNotifications]);
|
|
21029
|
+
const onRefresh = (0, import_react44.useCallback)(() => {
|
|
20519
21030
|
setIsRefreshing(true);
|
|
20520
21031
|
loadNotifications(true, true);
|
|
20521
21032
|
}, [loadNotifications]);
|
|
20522
|
-
const sections = (0,
|
|
21033
|
+
const sections = (0, import_react44.useMemo)(
|
|
20523
21034
|
() => groupByTime(notifications, (item) => item.created_at, classifyTime),
|
|
20524
21035
|
[notifications, classifyTime]
|
|
20525
21036
|
);
|
|
20526
|
-
const header = /* @__PURE__ */ (0,
|
|
20527
|
-
/* @__PURE__ */ (0,
|
|
20528
|
-
/* @__PURE__ */ (0,
|
|
20529
|
-
/* @__PURE__ */ (0,
|
|
20530
|
-
|
|
21037
|
+
const header = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.header, children: [
|
|
21038
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.titleRow, children: [
|
|
21039
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.screenTitle, { color: colors.text }], children: t("notifications", { defaultValue: "Notifications" }) }),
|
|
21040
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21041
|
+
import_react_native65.TouchableOpacity,
|
|
20531
21042
|
{
|
|
20532
21043
|
style: [
|
|
20533
|
-
|
|
21044
|
+
styles53.filterBtn,
|
|
20534
21045
|
{
|
|
20535
21046
|
backgroundColor: isFiltered ? colors.primarySoft : colors.surface,
|
|
20536
21047
|
borderColor: isFiltered ? colors.primary : colors.border
|
|
@@ -20539,30 +21050,30 @@ var NotificationsScreen = () => {
|
|
|
20539
21050
|
onPress: () => setFilterOpen(true),
|
|
20540
21051
|
accessibilityRole: "button",
|
|
20541
21052
|
accessibilityLabel: t("filter") || "Filter",
|
|
20542
|
-
children: /* @__PURE__ */ (0,
|
|
21053
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: "sliders-horizontal", size: 18, color: isFiltered ? colors.primary : colors.text })
|
|
20543
21054
|
}
|
|
20544
21055
|
)
|
|
20545
21056
|
] }),
|
|
20546
|
-
summary.unread > 0 ? /* @__PURE__ */ (0,
|
|
20547
|
-
/* @__PURE__ */ (0,
|
|
20548
|
-
/* @__PURE__ */ (0,
|
|
21057
|
+
summary.unread > 0 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.TouchableOpacity, { style: styles53.markAllBtn, onPress: onMarkAllRead, activeOpacity: 0.7, accessibilityRole: "button", children: [
|
|
21058
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: "check-check", size: 15, color: colors.primary, strokeWidth: 2.2 }),
|
|
21059
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.markAllLabel, { color: colors.primary }], children: t("markAllAsRead") || "Mark all as read" })
|
|
20549
21060
|
] }) : null
|
|
20550
21061
|
] });
|
|
20551
|
-
return /* @__PURE__ */ (0,
|
|
20552
|
-
/* @__PURE__ */ (0,
|
|
20553
|
-
|
|
21062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
|
|
21063
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21064
|
+
import_react_native65.FlatList,
|
|
20554
21065
|
{
|
|
20555
21066
|
data: sections,
|
|
20556
21067
|
keyExtractor: (section2) => section2.key,
|
|
20557
|
-
style: [
|
|
20558
|
-
contentContainerStyle: [
|
|
21068
|
+
style: [styles53.list, { backgroundColor: colors.canvasSubtle }],
|
|
21069
|
+
contentContainerStyle: [styles53.listContent, { flexGrow: 1, paddingBottom: listBottom }],
|
|
20559
21070
|
ListHeaderComponent: header,
|
|
20560
21071
|
showsVerticalScrollIndicator: false,
|
|
20561
|
-
refreshControl: /* @__PURE__ */ (0,
|
|
20562
|
-
renderItem: ({ item: section2 }) => /* @__PURE__ */ (0,
|
|
20563
|
-
/* @__PURE__ */ (0,
|
|
20564
|
-
/* @__PURE__ */ (0,
|
|
20565
|
-
/* @__PURE__ */ (0,
|
|
21072
|
+
refreshControl: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.RefreshControl, { refreshing: isRefreshing2, onRefresh, tintColor: colors.primary, colors: [colors.primary] }),
|
|
21073
|
+
renderItem: ({ item: section2 }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.section, children: [
|
|
21074
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.sectionTitle, { color: colors.textSecondary }], children: section2.title }),
|
|
21075
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardShadow, elevation.card], children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardClip, { backgroundColor: colors.surface }], children: section2.data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { children: [
|
|
21076
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20566
21077
|
NotificationRow,
|
|
20567
21078
|
{
|
|
20568
21079
|
notification: item,
|
|
@@ -20571,19 +21082,19 @@ var NotificationsScreen = () => {
|
|
|
20571
21082
|
onAcknowledge: () => onAcknowledgeRow(item)
|
|
20572
21083
|
}
|
|
20573
21084
|
),
|
|
20574
|
-
index < section2.data.length - 1 ? /* @__PURE__ */ (0,
|
|
21085
|
+
index < section2.data.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
20575
21086
|
] }, item.uuid)) }) })
|
|
20576
21087
|
] }),
|
|
20577
|
-
ListEmptyComponent: isLoading ? /* @__PURE__ */ (0,
|
|
20578
|
-
/* @__PURE__ */ (0,
|
|
20579
|
-
/* @__PURE__ */ (0,
|
|
20580
|
-
/* @__PURE__ */ (0,
|
|
20581
|
-
/* @__PURE__ */ (0,
|
|
20582
|
-
/* @__PURE__ */ (0,
|
|
21088
|
+
ListEmptyComponent: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.skeletonWrap, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardClip, elevation.card, { backgroundColor: colors.surface }], children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { children: [
|
|
21089
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.skeletonRow, children: [
|
|
21090
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: 36, height: 36, radius: radii.md }),
|
|
21091
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.skeletonLines, children: [
|
|
21092
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: "70%", height: 13 }),
|
|
21093
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: "40%", height: 10 })
|
|
20583
21094
|
] })
|
|
20584
21095
|
] }),
|
|
20585
|
-
i < 3 ? /* @__PURE__ */ (0,
|
|
20586
|
-
] }, i)) }) }) : /* @__PURE__ */ (0,
|
|
21096
|
+
i < 3 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
21097
|
+
] }, i)) }) }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.emptyWrap, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20587
21098
|
PCEmpty,
|
|
20588
21099
|
{
|
|
20589
21100
|
iconName: "circle-check",
|
|
@@ -20592,14 +21103,14 @@ var NotificationsScreen = () => {
|
|
|
20592
21103
|
}
|
|
20593
21104
|
) }),
|
|
20594
21105
|
ListFooterComponentStyle: { marginTop: "auto" },
|
|
20595
|
-
ListFooterComponent: /* @__PURE__ */ (0,
|
|
21106
|
+
ListFooterComponent: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Footer, {})
|
|
20596
21107
|
}
|
|
20597
21108
|
),
|
|
20598
|
-
/* @__PURE__ */ (0,
|
|
20599
|
-
/* @__PURE__ */ (0,
|
|
20600
|
-
/* @__PURE__ */ (0,
|
|
21109
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(BottomSheet, { visible: filterOpen, onClose: () => setFilterOpen(false), title: t("filter") || "Filter", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.filterSheet, children: [
|
|
21110
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.filterGroupLabel, { color: colors.textSecondary }], children: t("category", { defaultValue: "Category" }) }),
|
|
21111
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.chipWrap, children: filterTabs.map((tab) => {
|
|
20601
21112
|
const selected = tab.key === activeTab;
|
|
20602
|
-
return /* @__PURE__ */ (0,
|
|
21113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20603
21114
|
FilterChip,
|
|
20604
21115
|
{
|
|
20605
21116
|
label: tab.label,
|
|
@@ -20609,12 +21120,12 @@ var NotificationsScreen = () => {
|
|
|
20609
21120
|
tab.key
|
|
20610
21121
|
);
|
|
20611
21122
|
}) }),
|
|
20612
|
-
/* @__PURE__ */ (0,
|
|
20613
|
-
/* @__PURE__ */ (0,
|
|
21123
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.filterGroupLabel, { color: colors.textSecondary, marginTop: spacing.lg }], children: t("readStatus", { defaultValue: "Status" }) }),
|
|
21124
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.chipWrap, children: [
|
|
20614
21125
|
{ key: "all", label: t("all") || "All" },
|
|
20615
21126
|
{ key: "unread", label: t("unread") || "Unread" },
|
|
20616
21127
|
{ key: "read", label: t("read", { defaultValue: "Read" }) }
|
|
20617
|
-
].map((opt) => /* @__PURE__ */ (0,
|
|
21128
|
+
].map((opt) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20618
21129
|
FilterChip,
|
|
20619
21130
|
{
|
|
20620
21131
|
label: opt.label,
|
|
@@ -20623,13 +21134,13 @@ var NotificationsScreen = () => {
|
|
|
20623
21134
|
},
|
|
20624
21135
|
opt.key
|
|
20625
21136
|
)) }),
|
|
20626
|
-
/* @__PURE__ */ (0,
|
|
20627
|
-
|
|
21137
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21138
|
+
import_react_native65.TouchableOpacity,
|
|
20628
21139
|
{
|
|
20629
|
-
style: [
|
|
21140
|
+
style: [styles53.applyBtn, { backgroundColor: colors.primary }],
|
|
20630
21141
|
onPress: () => setFilterOpen(false),
|
|
20631
21142
|
accessibilityRole: "button",
|
|
20632
|
-
children: /* @__PURE__ */ (0,
|
|
21143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.applyLabel, { color: colors.primaryText }], children: t("done", { defaultValue: "Done" }) })
|
|
20633
21144
|
}
|
|
20634
21145
|
)
|
|
20635
21146
|
] }) })
|
|
@@ -20637,25 +21148,25 @@ var NotificationsScreen = () => {
|
|
|
20637
21148
|
};
|
|
20638
21149
|
var FilterChip = ({ label, selected, onPress }) => {
|
|
20639
21150
|
const { colors } = useTheme();
|
|
20640
|
-
return /* @__PURE__ */ (0,
|
|
20641
|
-
|
|
21151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21152
|
+
import_react_native65.TouchableOpacity,
|
|
20642
21153
|
{
|
|
20643
21154
|
onPress,
|
|
20644
21155
|
activeOpacity: 0.7,
|
|
20645
21156
|
accessibilityRole: "button",
|
|
20646
21157
|
accessibilityState: { selected },
|
|
20647
21158
|
style: [
|
|
20648
|
-
|
|
21159
|
+
styles53.chip,
|
|
20649
21160
|
{
|
|
20650
21161
|
backgroundColor: selected ? colors.primary : colors.surfaceAlt,
|
|
20651
21162
|
borderColor: selected ? colors.primary : colors.border
|
|
20652
21163
|
}
|
|
20653
21164
|
],
|
|
20654
|
-
children: /* @__PURE__ */ (0,
|
|
21165
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.chipLabel, { color: selected ? colors.primaryText : colors.text }], children: label })
|
|
20655
21166
|
}
|
|
20656
21167
|
);
|
|
20657
21168
|
};
|
|
20658
|
-
var
|
|
21169
|
+
var styles53 = import_react_native65.StyleSheet.create({
|
|
20659
21170
|
list: {
|
|
20660
21171
|
flex: 1
|
|
20661
21172
|
},
|
|
@@ -20689,7 +21200,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20689
21200
|
filterBtn: {
|
|
20690
21201
|
width: 40,
|
|
20691
21202
|
height: 40,
|
|
20692
|
-
borderWidth:
|
|
21203
|
+
borderWidth: import_react_native65.StyleSheet.hairlineWidth,
|
|
20693
21204
|
borderRadius: radii.md,
|
|
20694
21205
|
justifyContent: "center",
|
|
20695
21206
|
alignItems: "center"
|
|
@@ -20710,7 +21221,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20710
21221
|
overflow: "hidden"
|
|
20711
21222
|
},
|
|
20712
21223
|
separator: {
|
|
20713
|
-
height:
|
|
21224
|
+
height: import_react_native65.StyleSheet.hairlineWidth,
|
|
20714
21225
|
marginLeft: spacing.lg + 36 + spacing.md
|
|
20715
21226
|
},
|
|
20716
21227
|
emptyWrap: {
|
|
@@ -20748,7 +21259,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20748
21259
|
justifyContent: "center",
|
|
20749
21260
|
paddingHorizontal: spacing.lg,
|
|
20750
21261
|
borderRadius: radii.pill,
|
|
20751
|
-
borderWidth:
|
|
21262
|
+
borderWidth: import_react_native65.StyleSheet.hairlineWidth
|
|
20752
21263
|
},
|
|
20753
21264
|
chipLabel: {
|
|
20754
21265
|
...typography.label
|
|
@@ -20767,7 +21278,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20767
21278
|
});
|
|
20768
21279
|
|
|
20769
21280
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
20770
|
-
var
|
|
21281
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
20771
21282
|
var privacyCenterQueryClient = new import_react_query2.QueryClient();
|
|
20772
21283
|
function PrivacyCenterContent({ onBack }) {
|
|
20773
21284
|
const { currentPage } = useInternalNavigation();
|
|
@@ -20777,24 +21288,24 @@ function PrivacyCenterContent({ onBack }) {
|
|
|
20777
21288
|
const chromeMode = getPageChromeMode(currentPage);
|
|
20778
21289
|
const canvasIsLight = isLightColor(colors.canvasSubtle);
|
|
20779
21290
|
const barStyle = canvasIsLight ? "dark-content" : "light-content";
|
|
20780
|
-
(0,
|
|
20781
|
-
|
|
20782
|
-
if (
|
|
21291
|
+
(0, import_react45.useEffect)(() => {
|
|
21292
|
+
import_react_native66.StatusBar.setBarStyle(barStyle, true);
|
|
21293
|
+
if (import_react_native66.Platform.OS === "android") {
|
|
20783
21294
|
setNavBarIconStyle(canvasIsLight ? "dark" : "light");
|
|
20784
21295
|
}
|
|
20785
21296
|
}, [barStyle, canvasIsLight]);
|
|
20786
|
-
return /* @__PURE__ */ (0,
|
|
20787
|
-
/* @__PURE__ */ (0,
|
|
20788
|
-
/* @__PURE__ */ (0,
|
|
20789
|
-
/* @__PURE__ */ (0,
|
|
20790
|
-
/* @__PURE__ */ (0,
|
|
20791
|
-
currentPage === "home" && /* @__PURE__ */ (0,
|
|
20792
|
-
currentPage === "consent-manager" && /* @__PURE__ */ (0,
|
|
20793
|
-
currentPage === "form" && /* @__PURE__ */ (0,
|
|
20794
|
-
currentPage === "activity" && /* @__PURE__ */ (0,
|
|
20795
|
-
currentPage === "receipts" && /* @__PURE__ */ (0,
|
|
20796
|
-
currentPage === "case-details" && /* @__PURE__ */ (0,
|
|
20797
|
-
currentPage === "notifications" && /* @__PURE__ */ (0,
|
|
21297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_react_native66.View, { style: [styles54.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
21298
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.StatusBar, { barStyle, translucent: true }),
|
|
21299
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.View, { style: styles54.mainColumn, children: brandingLoading ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PCLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
21300
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SlimTopBar, { mode: chromeMode, onBack }),
|
|
21301
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.View, { style: [styles54.content, { paddingBottom: insets.bottom }], children: status === "checking" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PCLoader, {}) : status === "session-expired" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterSessionExpired, {}) : status === "empty" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterEmptyState, {}) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
21302
|
+
currentPage === "home" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(HomeHub, {}),
|
|
21303
|
+
currentPage === "consent-manager" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ConsentManager, {}),
|
|
21304
|
+
currentPage === "form" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FormPage, {}),
|
|
21305
|
+
currentPage === "activity" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ActivitiesList, {}),
|
|
21306
|
+
currentPage === "receipts" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ReceiptsList, {}),
|
|
21307
|
+
currentPage === "case-details" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(CaseDetailsPage, {}),
|
|
21308
|
+
currentPage === "notifications" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(NotificationsScreen, {})
|
|
20798
21309
|
] }) })
|
|
20799
21310
|
] }) })
|
|
20800
21311
|
] });
|
|
@@ -20819,7 +21330,7 @@ function RedactoPrivacyCenter({
|
|
|
20819
21330
|
initialCaseUuid,
|
|
20820
21331
|
onBack
|
|
20821
21332
|
}) {
|
|
20822
|
-
return /* @__PURE__ */ (0,
|
|
21333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SafeAreaBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(KeyboardProviderCompat, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_query2.QueryClientProvider, { client: privacyCenterQueryClient, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_i18next31.I18nextProvider, { i18n: i18n_default, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ThemeProvider, { slug, baseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(BaseUrlProvider, { baseUrl, ledgerBaseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
20823
21334
|
AuthProvider,
|
|
20824
21335
|
{
|
|
20825
21336
|
accessToken: accessToken != null ? accessToken : "",
|
|
@@ -20831,11 +21342,11 @@ function RedactoPrivacyCenter({
|
|
|
20831
21342
|
workspaceUuid,
|
|
20832
21343
|
slug,
|
|
20833
21344
|
onError,
|
|
20834
|
-
children: /* @__PURE__ */ (0,
|
|
21345
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(NavigationProvider, { initialPage, initialPendingCaseUuid: initialCaseUuid != null ? initialCaseUuid : null, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SelectUserGate, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DataAvailabilityProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PageStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterContent, { onBack }) }) }) }) })
|
|
20835
21346
|
}
|
|
20836
21347
|
) }) }) }) }) }) });
|
|
20837
21348
|
}
|
|
20838
|
-
var
|
|
21349
|
+
var styles54 = import_react_native66.StyleSheet.create({
|
|
20839
21350
|
container: {
|
|
20840
21351
|
flex: 1
|
|
20841
21352
|
},
|
|
@@ -20849,74 +21360,74 @@ var styles52 = import_react_native64.StyleSheet.create({
|
|
|
20849
21360
|
});
|
|
20850
21361
|
|
|
20851
21362
|
// src/RedactoPrivacyCenter/components/SideMenu.tsx
|
|
20852
|
-
var
|
|
20853
|
-
var
|
|
21363
|
+
var import_react_native67 = require("react-native");
|
|
21364
|
+
var import_react_i18next32 = require("react-i18next");
|
|
20854
21365
|
var import_react_native_svg4 = __toESM(require("react-native-svg"));
|
|
20855
|
-
var
|
|
21366
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
20856
21367
|
var MENU_ITEMS = [
|
|
20857
21368
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consent Manager", icon: "shield-check" },
|
|
20858
21369
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Privacy Requests", icon: "message-circle-warning" },
|
|
20859
21370
|
{ page: "activity", labelKey: "activity", fallback: "Activity", icon: "activity" }
|
|
20860
21371
|
];
|
|
20861
21372
|
function SideMenu({ onBack } = {}) {
|
|
20862
|
-
const { t } = (0,
|
|
21373
|
+
const { t } = (0, import_react_i18next32.useTranslation)();
|
|
20863
21374
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20864
21375
|
const { organizationName, email } = useAuth();
|
|
20865
21376
|
const { colors } = useTheme();
|
|
20866
21377
|
const orgInitial = organizationName ? organizationName.charAt(0).toUpperCase() : "R";
|
|
20867
21378
|
const displayName = organizationName || "Organization";
|
|
20868
|
-
return /* @__PURE__ */ (0,
|
|
20869
|
-
/* @__PURE__ */ (0,
|
|
20870
|
-
/* @__PURE__ */ (0,
|
|
20871
|
-
/* @__PURE__ */ (0,
|
|
20872
|
-
/* @__PURE__ */ (0,
|
|
20873
|
-
email ? /* @__PURE__ */ (0,
|
|
21379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: [styles55.container, { backgroundColor: colors.surface }], children: [
|
|
21380
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: styles55.orgSection, children: [
|
|
21381
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
|
|
21382
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: styles55.orgInfo, children: [
|
|
21383
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
|
|
21384
|
+
email ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20874
21385
|
] })
|
|
20875
21386
|
] }),
|
|
20876
|
-
/* @__PURE__ */ (0,
|
|
20877
|
-
/* @__PURE__ */ (0,
|
|
21387
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21388
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: styles55.menuSection, children: MENU_ITEMS.map((item) => {
|
|
20878
21389
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
20879
|
-
return /* @__PURE__ */ (0,
|
|
20880
|
-
|
|
21390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
21391
|
+
import_react_native67.TouchableOpacity,
|
|
20881
21392
|
{
|
|
20882
21393
|
style: [
|
|
20883
|
-
|
|
20884
|
-
isActive && [
|
|
21394
|
+
styles55.menuItem,
|
|
21395
|
+
isActive && [styles55.menuItemActive, { backgroundColor: `${colors.primary}14` }]
|
|
20885
21396
|
],
|
|
20886
21397
|
onPress: () => navigateTo(item.page),
|
|
20887
21398
|
activeOpacity: 0.7,
|
|
20888
21399
|
accessibilityRole: "button",
|
|
20889
21400
|
accessibilityState: { selected: isActive },
|
|
20890
21401
|
children: [
|
|
20891
|
-
/* @__PURE__ */ (0,
|
|
20892
|
-
/* @__PURE__ */ (0,
|
|
20893
|
-
|
|
21402
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: styles55.menuIconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: item.icon, size: 18, color: isActive ? colors.primary : colors.textSecondary }) }),
|
|
21403
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
21404
|
+
import_react_native67.Text,
|
|
20894
21405
|
{
|
|
20895
21406
|
style: [
|
|
20896
|
-
|
|
21407
|
+
styles55.menuLabel,
|
|
20897
21408
|
{ color: isActive ? colors.primary : colors.text },
|
|
20898
|
-
isActive &&
|
|
21409
|
+
isActive && styles55.menuLabelActive
|
|
20899
21410
|
],
|
|
20900
21411
|
children: t(item.labelKey) || item.fallback
|
|
20901
21412
|
}
|
|
20902
21413
|
),
|
|
20903
|
-
isActive ? /* @__PURE__ */ (0,
|
|
21414
|
+
isActive ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.activeIndicator, { backgroundColor: colors.primary }] }) : null
|
|
20904
21415
|
]
|
|
20905
21416
|
},
|
|
20906
21417
|
item.page
|
|
20907
21418
|
);
|
|
20908
21419
|
}) }),
|
|
20909
|
-
onBack ? /* @__PURE__ */ (0,
|
|
20910
|
-
/* @__PURE__ */ (0,
|
|
20911
|
-
/* @__PURE__ */ (0,
|
|
20912
|
-
/* @__PURE__ */ (0,
|
|
20913
|
-
|
|
21420
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
21421
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: { flex: 1 } }),
|
|
21422
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21423
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
21424
|
+
import_react_native67.TouchableOpacity,
|
|
20914
21425
|
{
|
|
20915
|
-
style:
|
|
21426
|
+
style: styles55.backBtn,
|
|
20916
21427
|
onPress: () => navigateBack(onBack),
|
|
20917
21428
|
activeOpacity: 0.7,
|
|
20918
21429
|
children: [
|
|
20919
|
-
/* @__PURE__ */ (0,
|
|
21430
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native_svg4.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
20920
21431
|
import_react_native_svg4.Path,
|
|
20921
21432
|
{
|
|
20922
21433
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20925,7 +21436,7 @@ function SideMenu({ onBack } = {}) {
|
|
|
20925
21436
|
strokeLinecap: "round",
|
|
20926
21437
|
strokeLinejoin: "round"
|
|
20927
21438
|
}
|
|
20928
|
-
) : /* @__PURE__ */ (0,
|
|
21439
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
20929
21440
|
import_react_native_svg4.Path,
|
|
20930
21441
|
{
|
|
20931
21442
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20935,14 +21446,14 @@ function SideMenu({ onBack } = {}) {
|
|
|
20935
21446
|
strokeLinejoin: "round"
|
|
20936
21447
|
}
|
|
20937
21448
|
) }),
|
|
20938
|
-
/* @__PURE__ */ (0,
|
|
21449
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
|
|
20939
21450
|
]
|
|
20940
21451
|
}
|
|
20941
21452
|
)
|
|
20942
21453
|
] }) : null
|
|
20943
21454
|
] });
|
|
20944
21455
|
}
|
|
20945
|
-
var
|
|
21456
|
+
var styles55 = import_react_native67.StyleSheet.create({
|
|
20946
21457
|
container: {
|
|
20947
21458
|
flex: 1,
|
|
20948
21459
|
paddingTop: 12
|
|
@@ -21028,42 +21539,68 @@ var styles53 = import_react_native65.StyleSheet.create({
|
|
|
21028
21539
|
});
|
|
21029
21540
|
|
|
21030
21541
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
21031
|
-
var
|
|
21032
|
-
var
|
|
21033
|
-
var
|
|
21542
|
+
var import_react46 = require("react");
|
|
21543
|
+
var import_react_native69 = require("react-native");
|
|
21544
|
+
var import_react_i18next34 = require("react-i18next");
|
|
21034
21545
|
var import_react_native_svg6 = __toESM(require("react-native-svg"));
|
|
21035
21546
|
|
|
21036
21547
|
// src/RedactoPrivacyCenter/components/UserOrgMenu.tsx
|
|
21037
|
-
var
|
|
21038
|
-
var
|
|
21548
|
+
var import_react_native68 = require("react-native");
|
|
21549
|
+
var import_react_i18next33 = require("react-i18next");
|
|
21039
21550
|
var import_react_native_svg5 = __toESM(require("react-native-svg"));
|
|
21040
|
-
var
|
|
21551
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
21041
21552
|
var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
21042
|
-
const { t } = (0,
|
|
21553
|
+
const { t } = (0, import_react_i18next33.useTranslation)();
|
|
21043
21554
|
const { organizationName, email } = useAuth();
|
|
21044
21555
|
const { colors, branding } = useTheme();
|
|
21556
|
+
const { switchProfile } = useProfileSwitch();
|
|
21045
21557
|
const brandName = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
21046
21558
|
const handleAction = () => {
|
|
21047
21559
|
onClose();
|
|
21048
21560
|
navigateBack(onBack);
|
|
21049
21561
|
};
|
|
21050
|
-
return /* @__PURE__ */ (0,
|
|
21051
|
-
/* @__PURE__ */ (0,
|
|
21052
|
-
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0,
|
|
21053
|
-
/* @__PURE__ */ (0,
|
|
21054
|
-
/* @__PURE__ */ (0,
|
|
21055
|
-
email ? /* @__PURE__ */ (0,
|
|
21562
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(BottomSheet, { visible, onClose, title: t("account") || "Account", children: [
|
|
21563
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_react_native68.View, { style: styles56.identity, children: [
|
|
21564
|
+
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Image, { source: { uri: branding.logo_url }, style: styles56.logo, resizeMode: "contain" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(PCAvatar, { name: organizationName || brandName, imageUrl: branding == null ? void 0 : branding.icon_url, size: 52 }),
|
|
21565
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_react_native68.View, { style: styles56.identityText, children: [
|
|
21566
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.orgName, { color: colors.text }], numberOfLines: 2, children: brandName }),
|
|
21567
|
+
email ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.email, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
21056
21568
|
] })
|
|
21057
21569
|
] }),
|
|
21058
|
-
|
|
21059
|
-
|
|
21570
|
+
switchProfile ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
21571
|
+
import_react_native68.TouchableOpacity,
|
|
21572
|
+
{
|
|
21573
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(colors.primary, 0.1) }],
|
|
21574
|
+
onPress: () => {
|
|
21575
|
+
onClose();
|
|
21576
|
+
switchProfile();
|
|
21577
|
+
},
|
|
21578
|
+
activeOpacity: 0.7,
|
|
21579
|
+
accessibilityRole: "button",
|
|
21580
|
+
children: [
|
|
21581
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native_svg5.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21582
|
+
import_react_native_svg5.Path,
|
|
21583
|
+
{
|
|
21584
|
+
d: "M16 3h5v5 M21 3l-7 7 M8 21H3v-5 M3 21l7-7",
|
|
21585
|
+
stroke: colors.primary,
|
|
21586
|
+
strokeWidth: 2,
|
|
21587
|
+
strokeLinecap: "round",
|
|
21588
|
+
strokeLinejoin: "round"
|
|
21589
|
+
}
|
|
21590
|
+
) }),
|
|
21591
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.actionLabel, { color: colors.primary }], children: t("switchProfile") })
|
|
21592
|
+
]
|
|
21593
|
+
}
|
|
21594
|
+
) : null,
|
|
21595
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
21596
|
+
import_react_native68.TouchableOpacity,
|
|
21060
21597
|
{
|
|
21061
|
-
style: [
|
|
21598
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(onBack === "signout" ? colors.error : colors.primary, 0.1) }],
|
|
21062
21599
|
onPress: handleAction,
|
|
21063
21600
|
activeOpacity: 0.7,
|
|
21064
21601
|
accessibilityRole: "button",
|
|
21065
21602
|
children: [
|
|
21066
|
-
/* @__PURE__ */ (0,
|
|
21603
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native_svg5.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: onBack === "signout" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21067
21604
|
import_react_native_svg5.Path,
|
|
21068
21605
|
{
|
|
21069
21606
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -21072,7 +21609,7 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
21072
21609
|
strokeLinecap: "round",
|
|
21073
21610
|
strokeLinejoin: "round"
|
|
21074
21611
|
}
|
|
21075
|
-
) : /* @__PURE__ */ (0,
|
|
21612
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21076
21613
|
import_react_native_svg5.Path,
|
|
21077
21614
|
{
|
|
21078
21615
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21082,13 +21619,13 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
21082
21619
|
strokeLinejoin: "round"
|
|
21083
21620
|
}
|
|
21084
21621
|
) }),
|
|
21085
|
-
/* @__PURE__ */ (0,
|
|
21622
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.actionLabel, { color: onBack === "signout" ? colors.error : colors.primary }], children: onBack === "signout" ? t("signOut") || "Sign Out" : t("back") || "Back" })
|
|
21086
21623
|
]
|
|
21087
21624
|
}
|
|
21088
21625
|
) : null
|
|
21089
21626
|
] });
|
|
21090
21627
|
};
|
|
21091
|
-
var
|
|
21628
|
+
var styles56 = import_react_native68.StyleSheet.create({
|
|
21092
21629
|
identity: {
|
|
21093
21630
|
flexDirection: "row",
|
|
21094
21631
|
alignItems: "center",
|
|
@@ -21129,33 +21666,33 @@ var styles54 = import_react_native66.StyleSheet.create({
|
|
|
21129
21666
|
});
|
|
21130
21667
|
|
|
21131
21668
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
21132
|
-
var
|
|
21669
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
21133
21670
|
function Navbar({ mode = "primary", onBack }) {
|
|
21134
|
-
const { t } = (0,
|
|
21671
|
+
const { t } = (0, import_react_i18next34.useTranslation)();
|
|
21135
21672
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21136
21673
|
const { organizationName, email } = useAuth();
|
|
21137
21674
|
const { colors, branding } = useTheme();
|
|
21138
|
-
const [locale, setLocale] = (0,
|
|
21139
|
-
const [menuOpen, setMenuOpen] = (0,
|
|
21675
|
+
const [locale, setLocale] = (0, import_react46.useState)(i18n_default.language || "en");
|
|
21676
|
+
const [menuOpen, setMenuOpen] = (0, import_react46.useState)(false);
|
|
21140
21677
|
const unreadCount = useUnreadCount();
|
|
21141
21678
|
const { status: pageStatus } = usePageStatus();
|
|
21142
21679
|
const pageChrome = PAGE_CHROME_BY_PAGE[currentPage] || PAGE_CHROME_BY_PAGE["consent-manager"];
|
|
21143
21680
|
const isDetail = mode === "detail";
|
|
21144
|
-
(0,
|
|
21681
|
+
(0, import_react46.useEffect)(() => {
|
|
21145
21682
|
const handleLanguageChanged = () => setLocale(i18n_default.language);
|
|
21146
21683
|
i18n_default.on("languageChanged", handleLanguageChanged);
|
|
21147
21684
|
return () => {
|
|
21148
21685
|
i18n_default.off("languageChanged", handleLanguageChanged);
|
|
21149
21686
|
};
|
|
21150
21687
|
}, []);
|
|
21151
|
-
const handleLanguageChange = (0,
|
|
21688
|
+
const handleLanguageChange = (0, import_react46.useCallback)((value) => {
|
|
21152
21689
|
i18n_default.changeLanguage(value);
|
|
21153
21690
|
}, []);
|
|
21154
21691
|
const brandLabel = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
21155
21692
|
const accountLabel = brandLabel || email || t("account") || "Account";
|
|
21156
|
-
const brandLockup = /* @__PURE__ */ (0,
|
|
21157
|
-
/* @__PURE__ */ (0,
|
|
21158
|
-
/* @__PURE__ */ (0,
|
|
21693
|
+
const brandLockup = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.brandRow, children: [
|
|
21694
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCAvatar, { name: organizationName || brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 }),
|
|
21695
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.brandText, { color: colors.text }], numberOfLines: 1, children: brandLabel })
|
|
21159
21696
|
] });
|
|
21160
21697
|
const handleDetailBack = () => {
|
|
21161
21698
|
if (currentPage === "case-details") {
|
|
@@ -21167,26 +21704,26 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21167
21704
|
}
|
|
21168
21705
|
};
|
|
21169
21706
|
if (isDetail) {
|
|
21170
|
-
return /* @__PURE__ */ (0,
|
|
21171
|
-
/* @__PURE__ */ (0,
|
|
21172
|
-
|
|
21707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
21708
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21709
|
+
import_react_native69.View,
|
|
21173
21710
|
{
|
|
21174
21711
|
style: [
|
|
21175
|
-
|
|
21176
|
-
|
|
21712
|
+
styles57.container,
|
|
21713
|
+
styles57.detailContainer,
|
|
21177
21714
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21178
21715
|
],
|
|
21179
|
-
children: /* @__PURE__ */ (0,
|
|
21180
|
-
/* @__PURE__ */ (0,
|
|
21181
|
-
|
|
21716
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.detailRow, children: [
|
|
21717
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21718
|
+
import_react_native69.TouchableOpacity,
|
|
21182
21719
|
{
|
|
21183
|
-
style:
|
|
21720
|
+
style: styles57.backButton,
|
|
21184
21721
|
onPress: handleDetailBack,
|
|
21185
21722
|
activeOpacity: 0.7,
|
|
21186
21723
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21187
21724
|
accessibilityRole: "button",
|
|
21188
21725
|
accessibilityLabel: t("back") || "Back",
|
|
21189
|
-
children: /* @__PURE__ */ (0,
|
|
21726
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native_svg6.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21190
21727
|
import_react_native_svg6.Path,
|
|
21191
21728
|
{
|
|
21192
21729
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21198,36 +21735,36 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21198
21735
|
) })
|
|
21199
21736
|
}
|
|
21200
21737
|
),
|
|
21201
|
-
/* @__PURE__ */ (0,
|
|
21202
|
-
/* @__PURE__ */ (0,
|
|
21203
|
-
pageStatus ? /* @__PURE__ */ (0,
|
|
21738
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.detailTitleWrap, children: [
|
|
21739
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.detailTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21740
|
+
pageStatus ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21204
21741
|
] })
|
|
21205
21742
|
] })
|
|
21206
21743
|
}
|
|
21207
21744
|
),
|
|
21208
|
-
/* @__PURE__ */ (0,
|
|
21745
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21209
21746
|
] });
|
|
21210
21747
|
}
|
|
21211
|
-
return /* @__PURE__ */ (0,
|
|
21212
|
-
/* @__PURE__ */ (0,
|
|
21213
|
-
|
|
21748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
21749
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
21750
|
+
import_react_native69.View,
|
|
21214
21751
|
{
|
|
21215
21752
|
style: [
|
|
21216
|
-
|
|
21753
|
+
styles57.container,
|
|
21217
21754
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21218
21755
|
],
|
|
21219
21756
|
children: [
|
|
21220
|
-
/* @__PURE__ */ (0,
|
|
21221
|
-
onBack ? /* @__PURE__ */ (0,
|
|
21222
|
-
|
|
21757
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.appBar, children: [
|
|
21758
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21759
|
+
import_react_native69.TouchableOpacity,
|
|
21223
21760
|
{
|
|
21224
|
-
style:
|
|
21761
|
+
style: styles57.backButton,
|
|
21225
21762
|
onPress: () => navigateBack(onBack),
|
|
21226
21763
|
activeOpacity: 0.7,
|
|
21227
21764
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21228
21765
|
accessibilityRole: "button",
|
|
21229
21766
|
accessibilityLabel: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out",
|
|
21230
|
-
children: /* @__PURE__ */ (0,
|
|
21767
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native_svg6.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21231
21768
|
import_react_native_svg6.Path,
|
|
21232
21769
|
{
|
|
21233
21770
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21239,39 +21776,39 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21239
21776
|
) })
|
|
21240
21777
|
}
|
|
21241
21778
|
) : null,
|
|
21242
|
-
/* @__PURE__ */ (0,
|
|
21243
|
-
/* @__PURE__ */ (0,
|
|
21244
|
-
/* @__PURE__ */ (0,
|
|
21245
|
-
/* @__PURE__ */ (0,
|
|
21246
|
-
/* @__PURE__ */ (0,
|
|
21247
|
-
|
|
21779
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.View, { style: styles57.brandWrap, children: (branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BrandImage, { uri: branding.logo_url, height: 34, maxWidth: 170, fallback: brandLockup }) : brandLockup }),
|
|
21780
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.actions, children: [
|
|
21781
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(NotificationBell, { count: unreadCount, onPress: () => navigateTo("notifications") }),
|
|
21782
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCSelect, { value: locale, options: languageOptions, onChange: handleLanguageChange, placeholder: t("language"), compact: true }),
|
|
21783
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21784
|
+
import_react_native69.TouchableOpacity,
|
|
21248
21785
|
{
|
|
21249
|
-
style:
|
|
21786
|
+
style: styles57.avatarButton,
|
|
21250
21787
|
onPress: () => setMenuOpen(true),
|
|
21251
21788
|
activeOpacity: 0.7,
|
|
21252
21789
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21253
21790
|
accessibilityRole: "button",
|
|
21254
21791
|
accessibilityLabel: accountLabel,
|
|
21255
|
-
children: /* @__PURE__ */ (0,
|
|
21792
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCAvatar, { name: organizationName || accountLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 })
|
|
21256
21793
|
}
|
|
21257
21794
|
)
|
|
21258
21795
|
] })
|
|
21259
21796
|
] }),
|
|
21260
|
-
/* @__PURE__ */ (0,
|
|
21261
|
-
/* @__PURE__ */ (0,
|
|
21262
|
-
pageStatus ? /* @__PURE__ */ (0,
|
|
21797
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.View, { style: styles57.pageHeader, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.titleRow, children: [
|
|
21798
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.pageTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21799
|
+
pageStatus ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21263
21800
|
] }) })
|
|
21264
21801
|
]
|
|
21265
21802
|
}
|
|
21266
21803
|
),
|
|
21267
|
-
/* @__PURE__ */ (0,
|
|
21804
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21268
21805
|
] });
|
|
21269
21806
|
}
|
|
21270
|
-
var
|
|
21807
|
+
var styles57 = import_react_native69.StyleSheet.create({
|
|
21271
21808
|
container: {
|
|
21272
21809
|
paddingHorizontal: spacing.lg,
|
|
21273
21810
|
paddingBottom: spacing.md,
|
|
21274
|
-
borderBottomWidth:
|
|
21811
|
+
borderBottomWidth: import_react_native69.StyleSheet.hairlineWidth
|
|
21275
21812
|
},
|
|
21276
21813
|
detailContainer: {
|
|
21277
21814
|
paddingBottom: spacing.sm
|
|
@@ -21351,10 +21888,10 @@ var styles55 = import_react_native67.StyleSheet.create({
|
|
|
21351
21888
|
});
|
|
21352
21889
|
|
|
21353
21890
|
// src/RedactoPrivacyCenter/components/BottomTabBar.tsx
|
|
21354
|
-
var
|
|
21355
|
-
var
|
|
21356
|
-
var
|
|
21357
|
-
var
|
|
21891
|
+
var import_react47 = require("react");
|
|
21892
|
+
var import_react_native70 = require("react-native");
|
|
21893
|
+
var import_react_i18next35 = require("react-i18next");
|
|
21894
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
21358
21895
|
var TAB_ITEMS = [
|
|
21359
21896
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consents", icon: "shield-check" },
|
|
21360
21897
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Requests", icon: "message-circle-warning" },
|
|
@@ -21365,10 +21902,10 @@ var PAD_H = spacing.lg;
|
|
|
21365
21902
|
var PILL_WIDTH = 56;
|
|
21366
21903
|
var PILL_HEIGHT = 34;
|
|
21367
21904
|
function BottomTabBar({ showFooter = true }) {
|
|
21368
|
-
const { t } = (0,
|
|
21905
|
+
const { t } = (0, import_react_i18next35.useTranslation)();
|
|
21369
21906
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21370
21907
|
const { colors } = useTheme();
|
|
21371
|
-
const [rowWidth, setRowWidth] = (0,
|
|
21908
|
+
const [rowWidth, setRowWidth] = (0, import_react47.useState)(0);
|
|
21372
21909
|
const innerWidth = Math.max(0, rowWidth - PAD_H * 2);
|
|
21373
21910
|
const tabWidth = innerWidth > 0 ? innerWidth / TAB_ITEMS.length : 0;
|
|
21374
21911
|
const activeIndex = TAB_ITEMS.findIndex(
|
|
@@ -21376,13 +21913,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21376
21913
|
);
|
|
21377
21914
|
const { translateX } = useAnimatedTabIndicator(Math.max(0, activeIndex), tabWidth);
|
|
21378
21915
|
const onLayout = (e) => setRowWidth(e.nativeEvent.layout.width);
|
|
21379
|
-
return /* @__PURE__ */ (0,
|
|
21380
|
-
/* @__PURE__ */ (0,
|
|
21381
|
-
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ (0,
|
|
21382
|
-
|
|
21916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_react_native70.View, { style: [styles58.wrapper, { backgroundColor: colors.canvasSubtle, borderTopColor: colors.hairline }], children: [
|
|
21917
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_react_native70.View, { style: styles58.container, onLayout, children: [
|
|
21918
|
+
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21919
|
+
import_react_native70.Animated.View,
|
|
21383
21920
|
{
|
|
21384
21921
|
style: [
|
|
21385
|
-
|
|
21922
|
+
styles58.pill,
|
|
21386
21923
|
{
|
|
21387
21924
|
width: PILL_WIDTH,
|
|
21388
21925
|
left: PAD_H + (tabWidth - PILL_WIDTH) / 2,
|
|
@@ -21395,17 +21932,17 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21395
21932
|
TAB_ITEMS.map((item) => {
|
|
21396
21933
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
21397
21934
|
const label = t(item.labelKey) || item.fallback;
|
|
21398
|
-
return /* @__PURE__ */ (0,
|
|
21399
|
-
|
|
21935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
21936
|
+
import_react_native70.TouchableOpacity,
|
|
21400
21937
|
{
|
|
21401
|
-
style:
|
|
21938
|
+
style: styles58.tab,
|
|
21402
21939
|
onPress: () => navigateTo(item.page),
|
|
21403
21940
|
activeOpacity: 0.7,
|
|
21404
21941
|
accessibilityRole: "tab",
|
|
21405
21942
|
accessibilityState: { selected: isActive },
|
|
21406
21943
|
accessibilityLabel: label,
|
|
21407
21944
|
children: [
|
|
21408
|
-
/* @__PURE__ */ (0,
|
|
21945
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react_native70.View, { style: styles58.iconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21409
21946
|
Icon,
|
|
21410
21947
|
{
|
|
21411
21948
|
name: item.icon,
|
|
@@ -21414,10 +21951,10 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21414
21951
|
strokeWidth: isActive ? 2.1 : 1.85
|
|
21415
21952
|
}
|
|
21416
21953
|
) }),
|
|
21417
|
-
/* @__PURE__ */ (0,
|
|
21418
|
-
|
|
21954
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21955
|
+
import_react_native70.Text,
|
|
21419
21956
|
{
|
|
21420
|
-
style: [
|
|
21957
|
+
style: [styles58.tabLabel, { color: isActive ? colors.primary : colors.textSecondary }],
|
|
21421
21958
|
numberOfLines: 1,
|
|
21422
21959
|
children: label
|
|
21423
21960
|
}
|
|
@@ -21428,13 +21965,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21428
21965
|
);
|
|
21429
21966
|
})
|
|
21430
21967
|
] }),
|
|
21431
|
-
showFooter ? /* @__PURE__ */ (0,
|
|
21432
|
-
/* @__PURE__ */ (0,
|
|
21968
|
+
showFooter ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Footer, { inline: true }) : null,
|
|
21969
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react_native70.View, { style: { height: BOTTOM_INSET } })
|
|
21433
21970
|
] });
|
|
21434
21971
|
}
|
|
21435
|
-
var
|
|
21972
|
+
var styles58 = import_react_native70.StyleSheet.create({
|
|
21436
21973
|
wrapper: {
|
|
21437
|
-
borderTopWidth:
|
|
21974
|
+
borderTopWidth: import_react_native70.StyleSheet.hairlineWidth
|
|
21438
21975
|
},
|
|
21439
21976
|
container: {
|
|
21440
21977
|
flexDirection: "row",
|