aesirx-analytics 2.2.20 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1237,7 +1237,7 @@ var common_default7 = {
1237
1237
  txt_connecting: "\u0110ang k\u1EBFt n\u1ED1i",
1238
1238
  txt_here: "\u0110\xC2Y",
1239
1239
  txt_visit: "\u0110\u1EBFn",
1240
- txt_tracking_data_privacy: "THEO D\xD5I QUY\u1EC0N RI\xCANG T\u01AF D\u1EEE LI\u1EC6U C\u1EE6A B\u1EA0N",
1240
+ txt_tracking_data_privacy: "TU\u1EF2 CH\u1ECCN THEO D\xD5I V\xC0 QUY\u1EC0N RI\xCANG T\u01AF D\u1EEE LI\u1EC6U",
1241
1241
  txt_consent: "\u0110\u1ED3ng \xFD",
1242
1242
  txt_about: "Gi\u1EDBi thi\u1EC7u",
1243
1243
  txt_detail: "Chi ti\u1EBFt",
@@ -1255,51 +1255,51 @@ var common_default7 = {
1255
1255
  txt_your_current_level: "M\u1EE9c \u0111\u1ED9 \u0111\u1ED3ng \xFD hi\u1EC7n t\u1EA1i c\u1EE7a b\u1EA1n l\xE0:",
1256
1256
  txt_upgrade_consent_to: "\u0110\u1ED3ng \xFD n\xE2ng c\u1EA5p l\xEAn:",
1257
1257
  txt_upgrade_consent: "\u0110\u1ED3ng \xFD n\xE2ng c\u1EA5p",
1258
- txt_change_consent: "Thay \u0111\u1ED5i \u0111\u1ED3ng \xFD",
1258
+ txt_change_consent: "\u0110\u1ED3ng \xDD Phi T\u1EADp Trung",
1259
1259
  txt_upgrade_consent_text: "N\xE2ng c\u1EA5p m\u1EE9c \u0111\u1ED9 \u0111\u1ED3ng \xFD c\u1EE7a b\u1EA1n v\xE0 t\u1EADn h\u01B0\u1EDFng to\xE0n b\u1ED9 l\u1EE3i \xEDch c\u1EE7a L\xE1 ch\u1EAFn b\u1EA3o m\u1EADt \u0111\u1EC3 c\xF3 \u0111\u01B0\u1EE3c tr\u1EA3i nghi\u1EC7m k\u1EF9 thu\u1EADt s\u1ED1 \u0111\u01B0\u1EE3c x\xE1c th\u1EF1c b\u1EB1ng ID, t\xF9y ch\u1EC9nh, an to\xE0n.",
1260
1260
  txt_cancel: "H\u1EE7y",
1261
1261
  txt_no_personal_data: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u c\xE1 nh\xE2n n\xE0o \u0111\u01B0\u1EE3c chia s\u1EBB ho\u1EB7c b\xE1n cho b\xEAn th\u1EE9 3.",
1262
- txt_manage_your_consent: "Qu\u1EA3n l\xFD t\xF9y ch\u1ECDn \u0111\u1ED3ng \xFD c\u1EE7a b\u1EA1n",
1263
- txt_choose_how_we_use: "Ch\u1ECDn c\xE1ch ch\xFAng t\xF4i s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n: \u201CT\u1EEB ch\u1ED1i\u201D thu th\u1EADp d\u1EEF li\u1EC7u, cho ph\xE9p theo d\xF5i [\u201CS\u1EF1 \u0111\u1ED3ng \xFD\u201D] ho\u1EB7c s\u1EED d\u1EE5ng \u201CS\u1EF1 \u0111\u1ED3ng \xFD ph\xE2n c\u1EA5p\u201D \u0111\u1EC3 ki\u1EC3m so\xE1t nhi\u1EC1u h\u01A1n d\u1EEF li\u1EC7u c\xE1 nh\xE2n v\xE0 ph\u1EA7n th\u01B0\u1EDFng c\u1EE7a b\u1EA1n.",
1264
- txt_choose_how_we_use_simple: "Ch\u1ECDn c\xE1ch ch\xFAng t\xF4i s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n: \u201CT\u1EEB ch\u1ED1i\u201D vi\u1EC7c thu th\u1EADp d\u1EEF li\u1EC7u, cho ph\xE9p theo d\xF5i [\u201CS\u1EF1 \u0111\u1ED3ng \xFD\u201D].",
1265
- txt_by_consenting: "B\u1EB1ng vi\u1EC7c \u0111\u1ED3ng \xFD, b\u1EA1n cho ph\xE9p ch\xFAng t\xF4i thu th\u1EADp v\xE0 s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n cho:",
1266
- txt_analytics_behavioral: "D\u1EEF li\u1EC7u ph\xE2n t\xEDch v\xE0 h\xE0nh vi: \u0110\u1EC3 c\u1EA3i thi\u1EC7n d\u1ECBch v\u1EE5 c\u1EE7a ch\xFAng t\xF4i v\xE0 c\xE1 nh\xE2n h\xF3a tr\u1EA3i nghi\u1EC7m c\u1EE7a b\u1EA1n.",
1267
- txt_form_data: "D\u1EEF li\u1EC7u bi\u1EC3u m\u1EABu: Khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i.",
1262
+ txt_manage_your_consent: "Qu\u1EA3n l\xFD T\xF9y Ch\u1ECDn \u0110\u1ED3ng \xDD c\u1EE7a b\u1EA1n",
1263
+ txt_choose_how_we_use: "Ch\u1ECDn c\xE1ch ch\xFAng t\xF4i s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n: \u201CT\u1EEB ch\u1ED1i\u201D thu th\u1EADp d\u1EEF li\u1EC7u, cho ph\xE9p theo d\xF5i [\u201C\u0110\u1ED3ng \xFD\u201D], ho\u1EB7c s\u1EED d\u1EE5ng \u201C\u0110\u1ED3ng \xDD Phi T\u1EADp Trung\u201D \u0111\u1EC3 c\xF3 nhi\u1EC1u quy\u1EC1n ki\u1EC3m so\xE1t h\u01A1n \u0111\u1ED1i v\u1EDBi d\u1EEF li\u1EC7u c\xE1 nh\xE2n c\u1EE7a b\u1EA1n v\xE0 nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng.",
1264
+ txt_choose_how_we_use_simple: "Ch\u1ECDn c\xE1ch ch\xFAng t\xF4i s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n: \u201CT\u1EEB ch\u1ED1i\u201D thu th\u1EADp d\u1EEF li\u1EC7u, cho ph\xE9p theo d\xF5i [\u201C\u0110\u1ED3ng \xFD\u201D].",
1265
+ txt_by_consenting: "Khi \u0111\u1ED3ng \xFD, b\u1EA1n cho ph\xE9p ch\xFAng t\xF4i thu th\u1EADp v\xE0 s\u1EED d\u1EE5ng d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n cho:",
1266
+ txt_analytics_behavioral: "Ph\xE2n T\xEDch & D\u1EEF Li\u1EC7u H\xE0nh Vi: \u0110\u1EC3 c\u1EA3i thi\u1EC7n d\u1ECBch v\u1EE5 c\u1EE7a ch\xFAng t\xF4i v\xE0 c\xE1 nh\xE2n h\xF3a tr\u1EA3i nghi\u1EC7m c\u1EE7a b\u1EA1n.",
1267
+ txt_form_data: "D\u1EEF Li\u1EC7u Bi\u1EC3u M\u1EABu: Khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i.",
1268
1268
  txt_please_note: "Xin l\u01B0u \xFD",
1269
1269
  txt_we_do_not_share: "Ch\xFAng t\xF4i kh\xF4ng chia s\u1EBB d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n v\u1EDBi b\xEAn th\u1EE9 ba m\xE0 kh\xF4ng c\xF3 s\u1EF1 \u0111\u1ED3ng \xFD r\xF5 r\xE0ng c\u1EE7a b\u1EA1n.",
1270
- txt_you_can_opt_in: "B\u1EA1n c\xF3 th\u1EC3 ch\u1ECDn tham gia c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3 sau m\xE0 kh\xF4ng c\u1EA7n \u0111\u01B0a ra s\u1EF1 \u0111\u1ED3ng \xFD chung chung.",
1270
+ txt_you_can_opt_in: "B\u1EA1n c\xF3 th\u1EC3 \u0111\u1ED3ng \xFD cho c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3 sau m\xE0 kh\xF4ng c\u1EA7n \u0111\u1ED3ng \xFD chung.",
1271
1271
  txt_for_more_details: "\u0110\u1EC3 bi\u1EBFt th\xEAm chi ti\u1EBFt, h\xE3y tham kh\u1EA3o <a class='text-success fw-semibold text-decoration-underline' href='https://aesirx.io/privacy-policy' target='_blank'>ch\xEDnh s\xE1ch quy\u1EC1n ri\xEAng t\u01B0</a> c\u1EE7a ch\xFAng t\xF4i.",
1272
1272
  txt_benefit: "L\u1EE3i \xEDch",
1273
- txt_control_your_data: "<span class='fw-semibold text-primary'>Ki\u1EC3m so\xE1t d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n:</span> Ch\u1ECDn m\u1EE9c \u0111\u1ED9 thu th\u1EADp v\xE0 theo d\xF5i d\u1EEF li\u1EC7u \u01B0a th\xEDch c\u1EE7a b\u1EA1n.",
1274
- txt_earn_rewards: "<span class='fw-semibold text-primary'>Ki\u1EBFm ph\u1EA7n th\u01B0\u1EDFng:</span> Tham gia v\xE0o s\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung v\u1EC1 quy\u1EC1n ri\xEAng t\u01B0 v\xE0 ph\u1EA7n th\u01B0\u1EDFng.",
1275
- txt_transparent_data: "<span class='fw-semibold text-primary'>Ph\u01B0\u01A1ng ph\xE1p thu th\u1EADp d\u1EEF li\u1EC7u minh b\u1EA1ch:</span> Hi\u1EC3u c\xE1ch d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n \u0111\u01B0\u1EE3c thu th\u1EADp v\xE0 s\u1EED d\u1EE5ng.",
1276
- "txt_under Hi\u1EC3u_your_privacy": "Hi\u1EC3u c\xE1c l\u1EF1a ch\u1ECDn v\u1EC1 quy\u1EC1n ri\xEAng t\u01B0 c\u1EE7a b\u1EA1n",
1277
- txt_reject_no_data: "<span class='fw-semibold text-primary'>T\u1EEB ch\u1ED1i:</span> S\u1EBD kh\xF4ng c\xF3 d\u1EEF li\u1EC7u n\xE0o \u0111\u01B0\u1EE3c thu th\u1EADp ho\u1EB7c t\u1EA3i ngo\u1EA1i tr\u1EEB c\xE1c l\u01B0\u1EE3t xem v\xE0 t\u1EEB ch\u1ED1i trang \u1EA9n danh. M\u1ED9t s\u1ED1 t\xEDnh n\u0103ng c\xE1 nh\xE2n h\xF3a c\xF3 th\u1EC3 b\u1ECB t\u1EAFt.",
1273
+ txt_control_your_data: "<span class='fw-semibold text-primary'>Ki\u1EC3m so\xE1t d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n:</span> Ch\u1ECDn m\u1EE9c \u0111\u1ED9 thu th\u1EADp v\xE0 theo d\xF5i d\u1EEF li\u1EC7u m\xE0 b\u1EA1n mu\u1ED1n.",
1274
+ txt_earn_rewards: "<span class='fw-semibold text-primary'>Nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng:</span> Tham gia v\xE0o \u0111\u1ED3ng \xFD phi t\u1EADp trung \u0111\u1EC3 b\u1EA3o m\u1EADt v\xE0 nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng.",
1275
+ txt_transparent_data: "<span class='fw-semibold text-primary'>Th\u1EF1c h\xE0nh thu th\u1EADp d\u1EEF li\u1EC7u minh b\u1EA1ch:</span> Hi\u1EC3u c\xE1ch d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n \u0111\u01B0\u1EE3c thu th\u1EADp v\xE0 s\u1EED d\u1EE5ng.",
1276
+ txt_understanding_your_privacy: "Hi\u1EC3u l\u1EF1a ch\u1ECDn quy\u1EC1n ri\xEAng t\u01B0 c\u1EE7a b\u1EA1n",
1277
+ txt_reject_no_data: "<span class='fw-semibold text-primary'>T\u1EEB ch\u1ED1i:</span> Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u n\xE0o \u0111\u01B0\u1EE3c thu th\u1EADp ho\u1EB7c t\u1EA3i, ngo\u1EA1i tr\u1EEB c\xE1c l\u01B0\u1EE3t xem trang \u1EA9n danh v\xE0 c\xE1c t\u1EEB ch\u1ED1i. M\u1ED9t s\u1ED1 t\xEDnh n\u0103ng c\xE1 nh\xE2n h\xF3a c\xF3 th\u1EC3 b\u1ECB v\xF4 hi\u1EC7u h\xF3a.",
1278
1278
  txt_consent_first_third_party: "<span class='fw-semibold text-primary'>\u0110\u1ED3ng \xFD:</span> D\u1EEF li\u1EC7u theo d\xF5i c\u1EE7a b\xEAn th\u1EE9 nh\u1EA5t v\xE0 b\xEAn th\u1EE9 ba s\u1EBD \u0111\u01B0\u1EE3c thu th\u1EADp \u0111\u1EC3 n\xE2ng cao tr\u1EA3i nghi\u1EC7m c\u1EE7a b\u1EA1n.",
1279
- txt_decentralizered_consent_choose: "<span class='fw-semibold text-primary'>S\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung:</span> Ch\u1ECDn V\xED phi t\u1EADp trung ho\u1EB7c V\xED phi t\u1EADp trung + L\xE1 ch\u1EAFn b\u1EA3o m\u1EADt. C\u1EA3 hai t\xF9y ch\u1ECDn \u0111\u1EC1u cho ph\xE9p b\u1EA1n qu\u1EA3n l\xFD v\xE0 thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD t\u1EA1i ch\u1ED7 ho\u1EB7c th\xF4ng qua AesirX dApp, \u0111\u1ED3ng th\u1EDDi ki\u1EBFm \u0111\u01B0\u1EE3c ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1279
+ txt_decentralizered_consent_choose: "<span class='fw-semibold text-primary'>\u0110\u1ED3ng \xFD Phi t\u1EADp trung:</span> Ch\u1ECDn V\xED Phi t\u1EADp trung, ho\u1EB7c V\xED Phi t\u1EADp trung + L\xE1 ch\u1EAFn b\u1EA3o m\u1EADt. C\u1EA3 hai t\xF9y ch\u1ECDn \u0111\u1EC1u cho ph\xE9p b\u1EA1n qu\u1EA3n l\xFD v\xE0 thu h\u1ED3i \u0111\u1ED3ng \xFD tr\xEAn trang ho\u1EB7c th\xF4ng qua \u1EE9ng d\u1EE5ng AesirX dApp, \u0111\u1ED3ng th\u1EDDi nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1280
1280
  txt_our_commitment_in_action: "Cam k\u1EBFt h\xE0nh \u0111\u1ED9ng c\u1EE7a ch\xFAng t\xF4i",
1281
1281
  txt_private_protection: "<span class='fw-semibold text-primary'>B\u1EA3o v\u1EC7 quy\u1EC1n ri\xEAng t\u01B0:</span> Ng\u01B0\u1EDDi d\xF9ng c\xF3 to\xE0n quy\u1EC1n ki\u1EC3m so\xE1t d\u1EEF li\u1EC7u c\u1EE7a m\xECnh, \u0111\u1EA3m b\u1EA3o quy\u1EC1n ri\xEAng t\u01B0 t\u1ED1i \u0111a.",
1282
- txt_enables_compliance: "<span class='fw-semibold text-primary'>Cho ph\xE9p tu\xE2n th\u1EE7:</span> Vi\u1EC7c s\u1EED d\u1EE5ng L\xE1 ch\u1EAFn b\u1EA3o m\u1EADt (SoP) \u0111\u1EA3m b\u1EA3o tu\xE2n th\u1EE7 GDPR, CCPA, Ch\u1EC9 th\u1ECB v\u1EC1 quy\u1EC1n ri\xEAng t\u01B0 \u0111i\u1EC7n t\u1EED v\xE0 c\xE1c quy \u0111\u1ECBnh b\u1EA3o v\u1EC7 d\u1EEF li\u1EC7u kh\xE1c.",
1282
+ txt_enables_compliance: "<span class='fw-semibold text-primary'>\u0110\u1EA3m b\u1EA3o tu\xE2n th\u1EE7:</span> S\u1EED d\u1EE5ng L\xE1 ch\u1EAFn b\u1EA3o m\u1EADt (SoP) \u0111\u1EA3m b\u1EA3o tu\xE2n th\u1EE7 GDPR, CCPA, ch\u1EC9 th\u1ECB ePrivacy v\xE0 c\xE1c quy \u0111\u1ECBnh b\u1EA3o v\u1EC7 d\u1EEF li\u1EC7u kh\xE1c.",
1283
1283
  txt_proactive_protection: "<span class='fw-semibold text-primary'>B\u1EA3o v\u1EC7 ch\u1EE7 \u0111\u1ED9ng:</span> Ch\xFAng t\xF4i t\u0103ng c\u01B0\u1EDDng c\xE1c bi\u1EC7n ph\xE1p b\u1EA3o v\u1EC7 quy\u1EC1n ri\xEAng t\u01B0 \u0111\u1EC3 b\u1EA3o v\u1EC7 t\xEDnh to\xE0n v\u1EB9n d\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n.",
1284
- txt_flexible_consent: "<span class='fw-semibold text-primary'>S\u1EF1 \u0111\u1ED3ng \xFD linh ho\u1EA1t:</span> B\u1EA1n c\xF3 th\u1EC3 r\xFAt l\u1EA1i s\u1EF1 \u0111\u1ED3ng \xFD c\u1EE7a m\xECnh b\u1EA5t c\u1EE9 l\xFAc n\xE0o t\u1EA1i ch\u1ED7 ho\u1EB7c th\xF4ng qua <a class='text-success fw-semibold text- c\u1EE7a ch\xFAng t\xF4i trang tr\xED-underline' href='https://dapp.shield.aesirx.io' target='_blank'>dApp</a> (\u1EE8ng d\u1EE5ng phi t\u1EADp trung)",
1284
+ txt_flexible_consent: "<span class='fw-semibold text-primary'>S\u1EF1 \u0111\u1ED3ng \xFD linh ho\u1EA1t:</span> B\u1EA1n c\xF3 th\u1EC3 r\xFAt l\u1EA1i s\u1EF1 \u0111\u1ED3ng \xFD c\u1EE7a m\xECnh b\u1EA5t c\u1EE9 l\xFAc n\xE0o tr\xEAn trang web ho\u1EB7c qua \u1EE9ng d\u1EE5ng phi t\u1EADp trung <a class='text-success fw-semibold text-decoration-underline' href='https://dapp.shield.aesirx.io' target='_blank'>dApp</a> c\u1EE7a ch\xFAng t\xF4i",
1285
1285
  txt_learn_more: "<span class='fw-semibold text-primary'>T\xECm hi\u1EC3u th\xEAm:</span> Kh\xE1m ph\xE1 ph\u01B0\u01A1ng ph\xE1p x\u1EED l\xFD d\u1EEF li\u1EC7u c\u1EE7a ch\xFAng t\xF4i trong <a class='text-success fw-semibold text-trang tr\xED-underline' c\u1EE7a ch\xFAng t\xF4i href='https://aesirx.io/privacy-policy' target='_blank'>Ch\xEDnh s\xE1ch quy\u1EC1n ri\xEAng t\u01B0</a>.",
1286
1286
  txt_for_business: "<span class='fw-semibold text-primary'>D\xE0nh cho doanh nghi\u1EC7p:</span> N\xE2ng cao ni\u1EC1m tin, b\u1EA3o m\u1EADt danh t\xEDnh ng\u01B0\u1EDDi d\xF9ng v\xE0 ng\u0103n ch\u1EB7n vi ph\u1EA1m.",
1287
1287
  txt_more_info_at: "Th\xF4ng tin th\xEAm t\u1EA1i <a class='text-success fw-semibold text-trang tr\xED-underline' href='https://shield.aesirx.io' target='_blank'>https://shield. aesirx.io</a>.",
1288
- txt_select_your_preferred: "Ch\u1ECDn t\xF9y ch\u1ECDn \u0111\u1ED3ng \xFD phi t\u1EADp trung \u01B0a th\xEDch c\u1EE7a b\u1EA1n:",
1289
- txt_decentralized_wallet: "S\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung",
1290
- txt_decentralized_wallet_will_be_loaded: "S\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung s\u1EBD \u0111\u01B0\u1EE3c t\u1EA3i",
1291
- txt_both_first_party_third_party: "C\u1EA3 d\u1EEF li\u1EC7u theo d\xF5i c\u1EE7a b\xEAn th\u1EE9 nh\u1EA5t v\xE0 b\xEAn th\u1EE9 ba s\u1EBD \u0111\u01B0\u1EE3c k\xEDch ho\u1EA1t.",
1292
- txt_all_consented_data_will_be_collected: "T\u1EA5t c\u1EA3 d\u1EEF li\u1EC7u \u0111\u01B0\u1EE3c \u0111\u1ED3ng \xFD s\u1EBD \u0111\u01B0\u1EE3c thu th\u1EADp.",
1293
- txt_users_can_revoke: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD t\u1EA1i ch\u1ED7 b\u1EA5t k\u1EF3 l\xFAc n\xE0o.",
1294
- txt_decentralized_wallet_shield: "S\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung + AesirX Shield of Privacy",
1295
- txt_users_can_revoke_dapp: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD t\u1EA1i ch\u1ED7 ho\u1EB7c t\u1EEB AesirX dApp b\u1EA5t k\u1EF3 l\xFAc n\xE0o.",
1296
- txt_users_can_earn: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 ki\u1EBFm \u0111\u01B0\u1EE3c ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1288
+ txt_select_your_preferred: "Ch\u1ECDn t\xF9y ch\u1ECDn \u0111\u1ED3ng \xFD phi t\u1EADp trung m\xE0 b\u1EA1n mu\u1ED1n:",
1289
+ txt_decentralized_wallet: "\u0110\u1ED3ng \xDD Phi T\u1EADp Trung",
1290
+ txt_decentralized_wallet_will_be_loaded: "\u0110\u1ED3ng \xFD phi t\u1EADp trung s\u1EBD \u0111\u01B0\u1EE3c k\xEDch ho\u1EA1t.",
1291
+ txt_both_first_party_third_party: "D\u1EEF li\u1EC7u theo d\xF5i t\u1EEB c\u1EA3 b\xEAn th\u1EE9 nh\u1EA5t v\xE0 b\xEAn th\u1EE9 ba s\u1EBD \u0111\u01B0\u1EE3c thu th\u1EADp.",
1292
+ txt_all_consented_data_will_be_collected: "T\u1EA5t c\u1EA3 d\u1EEF li\u1EC7u \u0111\xE3 \u0111\u01B0\u1EE3c \u0111\u1ED3ng \xFD s\u1EBD \u0111\u01B0\u1EE3c thu th\u1EADp.",
1293
+ txt_users_can_revoke: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 thu h\u1ED3i \u0111\u1ED3ng \xFD tr\xEAn trang web b\u1EA5t k\u1EF3 l\xFAc n\xE0o.",
1294
+ txt_decentralized_wallet_shield: "\u0110\u1ED3ng \xDD Phi T\u1EADp Trung + Shield of Privacy",
1295
+ txt_users_can_revoke_dapp: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 thu h\u1ED3i \u0111\u1ED3ng \xFD tr\xEAn trang web ho\u1EB7c qua \u1EE9ng d\u1EE5ng AesirX dApp b\u1EA5t k\u1EF3 l\xFAc n\xE0o.",
1296
+ txt_users_can_earn: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1297
1297
  txt_continue: "Ti\u1EBFp t\u1EE5c",
1298
1298
  txt_back: "Quay l\u1EA1i",
1299
1299
  txt_you_have_chosen: "B\u1EA1n \u0111\xE3 ch\u1ECDn t\u1EEB ch\u1ED1i thu th\u1EADp d\u1EEF li\u1EC7u:",
1300
- txt_only_anonymized: "Ch\u1EC9 kh\u1EA3 d\u1EE5ng c\xE1c l\u01B0\u1EE3t xem trang \u1EA9n danh v\xE0 c\xE1c t\xEDnh n\u0103ng h\u1EA1n ch\u1EBF. \u0110\u1EC3 truy c\u1EADp t\u1EA5t c\u1EA3 c\xE1c t\xEDnh n\u0103ng c\u1EE7a trang web, bao g\u1ED3m n\u1ED9i dung \u0111\u01B0\u1EE3c c\xE1 nh\xE2n h\xF3a v\xE0 ch\u1EE9c n\u0103ng n\xE2ng cao, vui l\xF2ng ch\u1ECDn m\u1ED9t t\xF9y ch\u1ECDn:",
1301
- txt_consent_allow_data: "<span class='fw-semibold text-primary'>\u0110\u1ED3ng \xFD:</span> Cho ph\xE9p thu th\u1EADp d\u1EEF li\u1EC7u \u0111\u1EC3 ph\xE2n t\xEDch, d\u1EEF li\u1EC7u bi\u1EC3u m\u1EABu (khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i), theo d\xF5i h\xE0nh vi v\xE0 s\u1EF1 ki\u1EC7n, c\xF9ng v\u1EDBi t\xF9y ch\u1ECDn ch\u1ECDn -in \u0111\u1EC3 bi\u1EBFt c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3.",
1302
- txt_decentralized_consent_allow_data: "<span class='fw-semibold text-primary'>S\u1EF1 \u0111\u1ED3ng \xFD phi t\u1EADp trung:</span> Cho ph\xE9p thu th\u1EADp d\u1EEF li\u1EC7u \u0111\u1EC3 ph\xE2n t\xEDch, d\u1EEF li\u1EC7u bi\u1EC3u m\u1EABu (khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i), theo d\xF5i h\xE0nh vi v\xE0 s\u1EF1 ki\u1EC7n, v\u1EDBi t\xF9y ch\u1ECDn thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD, ch\u1ECDn tham gia c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3 v\xE0 ki\u1EBFm ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1300
+ txt_only_anonymized: "B\u1EA1n ch\u1EC9 c\xF3 th\u1EC3 xem trang \u1EA9n danh v\xE0 s\u1EED d\u1EE5ng c\xE1c t\xEDnh n\u0103ng h\u1EA1n ch\u1EBF. \u0110\u1EC3 truy c\u1EADp t\u1EA5t c\u1EA3 c\xE1c t\xEDnh n\u0103ng c\u1EE7a trang web, bao g\u1ED3m n\u1ED9i dung c\xE1 nh\xE2n h\xF3a v\xE0 ch\u1EE9c n\u0103ng n\xE2ng cao, vui l\xF2ng ch\u1ECDn m\u1ED9t trong c\xE1c t\xF9y ch\u1ECDn sau:",
1301
+ txt_consent_allow_data: "<span class='fw-semibold text-primary'>\u0110\u1ED3ng \xFD:</span> Cho ph\xE9p thu th\u1EADp d\u1EEF li\u1EC7u \u0111\u1EC3 ph\xE2n t\xEDch, d\u1EEF li\u1EC7u t\u1EEB bi\u1EC3u m\u1EABu (khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i) v\xE0 theo d\xF5i h\xE0nh vi v\xE0 s\u1EF1 ki\u1EC7n. B\u1EA1n c\u0169ng c\xF3 th\u1EC3 ch\u1ECDn tham gia v\xE0o c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3.",
1302
+ txt_decentralized_consent_allow_data: "<span class='fw-semibold text-primary'>\u0110\u1ED3ng \xFD phi t\u1EADp trung:</span> Cho ph\xE9p thu th\u1EADp d\u1EEF li\u1EC7u \u0111\u1EC3 ph\xE2n t\xEDch, d\u1EEF li\u1EC7u t\u1EEB bi\u1EC3u m\u1EABu (khi b\u1EA1n li\xEAn h\u1EC7 v\u1EDBi ch\xFAng t\xF4i) v\xE0 theo d\xF5i h\xE0nh vi v\xE0 s\u1EF1 ki\u1EC7n. B\u1EA1n c\xF3 th\u1EC3 thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD b\u1EA5t c\u1EE9 l\xFAc n\xE0o, ch\u1ECDn tham gia v\xE0o c\xE1c t\xEDnh n\u0103ng c\u1EE5 th\u1EC3 v\xE0 nh\u1EADn ph\u1EA7n th\u01B0\u1EDFng t\u1EEB c\xE1c ho\u1EA1t \u0111\u1ED9ng ti\u1EBFp th\u1ECB k\u1EF9 thu\u1EADt s\u1ED1.",
1303
1303
  txt_you_can_revoke_on_the_site: "B\u1EA1n c\xF3 th\u1EC3 thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD tr\xEAn trang web ho\u1EB7c b\u1EA5t k\u1EF3 s\u1EF1 \u0111\u1ED3ng \xFD ch\u1ECDn tham gia r\xF5 r\xE0ng n\xE0o, ch\u1EB3ng h\u1EA1n nh\u01B0 x\u1EED l\xFD thanh to\xE1n, b\u1EA5t k\u1EF3 l\xFAc n\xE0o",
1304
1304
  txt_revoke_opt_in: "Thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD tham gia",
1305
1305
  txt_revoke_opt_in_payment: "Thu h\u1ED3i s\u1EF1 \u0111\u1ED3ng \xFD ch\u1ECDn tham gia \u0111\u1EC3 x\u1EED l\xFD thanh to\xE1n",
@@ -1657,6 +1657,7 @@ var AesirXI18nextProvider = ({
1657
1657
  });
1658
1658
  return /* @__PURE__ */ React2.createElement(I18NextContext.Provider, { value: { listLanguages } }, /* @__PURE__ */ React2.createElement(I18nextProvider, { i18n }, children));
1659
1659
  };
1660
+ var useI18nextContext = () => useContext4(I18NextContext);
1660
1661
 
1661
1662
  // src/utils/AnalyticsContextProvider.tsx
1662
1663
  var AnalyticsContext = React3.createContext({
@@ -1690,20 +1691,531 @@ var AnalyticsContextProvider = ({ children }) => {
1690
1691
  };
1691
1692
  var AnalyticsContextProvider_default = AnalyticsContextProvider;
1692
1693
 
1694
+ // src/lib/envHelper.ts
1695
+ var getHashKey = () => {
1696
+ let value = null;
1697
+ try {
1698
+ if (typeof process.env != "undefined") {
1699
+ value = process.env.SECURE_LOCAL_STORAGE_HASH_KEY || process.env.REACT_APP_SECURE_LOCAL_STORAGE_HASH_KEY || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_HASH_KEY || process.env.VITE_SECURE_LOCAL_STORAGE_HASH_KEY;
1700
+ } else {
1701
+ console.warn(`react-secure-storage : process is not defined! Just a warning!`);
1702
+ }
1703
+ } catch (ex) {
1704
+ return null;
1705
+ }
1706
+ return value;
1707
+ };
1708
+ var getStoragePrefix = () => {
1709
+ let value = null;
1710
+ try {
1711
+ if (typeof process.env != "undefined") {
1712
+ value = process.env.SECURE_LOCAL_STORAGE_PREFIX || process.env.REACT_APP_SECURE_LOCAL_STORAGE_PREFIX || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_PREFIX || process.env.VITE_SECURE_LOCAL_STORAGE_PREFIX;
1713
+ } else {
1714
+ console.warn(`react-secure-storage : process is not defined! Just a warning!`);
1715
+ }
1716
+ } catch (ex) {
1717
+ return null;
1718
+ }
1719
+ return value;
1720
+ };
1721
+ var getDisabledKeys = () => {
1722
+ let value = null;
1723
+ try {
1724
+ if (typeof process.env != "undefined") {
1725
+ value = process.env.SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.REACT_APP_SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.NEXT_PUBLIC_SECURE_LOCAL_STORAGE_DISABLED_KEYS || process.env.VITE_SECURE_LOCAL_STORAGE_DISABLED_KEYS;
1726
+ } else {
1727
+ console.warn(`react-secure-storage : process is not defined! Just a warning!`);
1728
+ }
1729
+ } catch (ex) {
1730
+ return null;
1731
+ }
1732
+ return value;
1733
+ };
1734
+ var envHelper = {
1735
+ getHashKey,
1736
+ getStoragePrefix,
1737
+ getDisabledKeys
1738
+ };
1739
+ var envHelper_default = envHelper;
1740
+
1741
+ // src/lib/fingerpint.lib.ts
1742
+ import murmurhash3_32_gc from "murmurhash-js/murmurhash3_gc";
1743
+
1744
+ // src/lib/utils.ts
1745
+ var FINGERPRINT_KEYS = {
1746
+ USERAGENT: "UserAgent",
1747
+ SCREEN_PRINT: "ScreenPrint",
1748
+ PLUGINS: "Plugins",
1749
+ FONTS: "Fonts",
1750
+ LOCAL_STORAGE: "LocalStorage",
1751
+ SESSION_STORAGE: "SessionStorage",
1752
+ TIMEZONE: "TimeZone",
1753
+ LANGUAGE: "Language",
1754
+ SYSTEM_LANGUAGE: "SystemLanguage",
1755
+ COOKIE: "Cookie",
1756
+ CANVAS: "Canvas",
1757
+ HOSTNAME: "Hostname"
1758
+ };
1759
+ var getDisabledKeys2 = () => {
1760
+ const DISABLED_KEYS = envHelper_default.getDisabledKeys() || "";
1761
+ if (DISABLED_KEYS === "")
1762
+ return [];
1763
+ const allOptions = [
1764
+ FINGERPRINT_KEYS.USERAGENT,
1765
+ FINGERPRINT_KEYS.SCREEN_PRINT,
1766
+ FINGERPRINT_KEYS.PLUGINS,
1767
+ FINGERPRINT_KEYS.FONTS,
1768
+ FINGERPRINT_KEYS.LOCAL_STORAGE,
1769
+ FINGERPRINT_KEYS.SESSION_STORAGE,
1770
+ FINGERPRINT_KEYS.TIMEZONE,
1771
+ FINGERPRINT_KEYS.LANGUAGE,
1772
+ FINGERPRINT_KEYS.SYSTEM_LANGUAGE,
1773
+ FINGERPRINT_KEYS.COOKIE,
1774
+ FINGERPRINT_KEYS.CANVAS,
1775
+ FINGERPRINT_KEYS.HOSTNAME
1776
+ ];
1777
+ const response = [];
1778
+ DISABLED_KEYS.split("|").forEach((key) => {
1779
+ if (key === "") {
1780
+ console.log("test");
1781
+ } else if (allOptions.includes(key))
1782
+ response.push(key);
1783
+ else
1784
+ console.warn(
1785
+ `react-secure-storage : ${key} is not present in the available disabled keys options! Please go through the documentation`
1786
+ );
1787
+ });
1788
+ return response;
1789
+ };
1790
+
1791
+ // src/lib/fingerpint.lib.ts
1792
+ var ClientJS = class {
1793
+ //
1794
+ // MAIN METHODS
1795
+ //
1796
+ // Get Fingerprint. Return a 32-bit integer representing the browsers fingerprint.
1797
+ getFingerprint() {
1798
+ const bar = "|";
1799
+ const disabledKeys = getDisabledKeys2();
1800
+ let key = "";
1801
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.USERAGENT)) {
1802
+ key += navigator.userAgent + bar;
1803
+ }
1804
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.HOSTNAME)) {
1805
+ key += window.location.hostname + bar;
1806
+ }
1807
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.SCREEN_PRINT)) {
1808
+ key += this.getScreenPrint() + bar;
1809
+ }
1810
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.PLUGINS)) {
1811
+ key += this.getPlugins() + bar;
1812
+ }
1813
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.FONTS)) {
1814
+ key += this.getFonts() + bar;
1815
+ }
1816
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.LOCAL_STORAGE)) {
1817
+ key += this.isLocalStorage() + bar;
1818
+ }
1819
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.SESSION_STORAGE)) {
1820
+ key += this.isSessionStorage() + bar;
1821
+ }
1822
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.TIMEZONE)) {
1823
+ key += this.getTimeZone() + bar;
1824
+ }
1825
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.LANGUAGE)) {
1826
+ key += this.getLanguage() + bar;
1827
+ }
1828
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.SYSTEM_LANGUAGE)) {
1829
+ key += this.getSystemLanguage() + bar;
1830
+ }
1831
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.COOKIE)) {
1832
+ key += this.isCookie() + bar;
1833
+ }
1834
+ if (!disabledKeys.includes(FINGERPRINT_KEYS.CANVAS)) {
1835
+ key += this.getCanvasPrint();
1836
+ }
1837
+ if (key.endsWith(bar))
1838
+ key = key.substring(0, key.length - 1);
1839
+ const seed = 256;
1840
+ return murmurhash3_32_gc(key, seed);
1841
+ }
1842
+ //
1843
+ // SCREEN METHODS
1844
+ //
1845
+ // Get Screen Print. Return a string containing screen information.
1846
+ getScreenPrint() {
1847
+ return "Color Depth: " + this.getColorDepth() + ", Device XDPI: " + this.getDeviceXDPI() + ", Device YDPI: " + this.getDeviceYDPI();
1848
+ }
1849
+ // Get Color Depth. Return a string containing the color depth.
1850
+ getColorDepth() {
1851
+ return window.screen.colorDepth;
1852
+ }
1853
+ // Get Current Resolution. Return a string containing the current resolution.
1854
+ getCurrentResolution() {
1855
+ return window.screen.width + "x" + window.screen.height;
1856
+ }
1857
+ // Get Available Resolution. Return a string containing the available resolution.
1858
+ getAvailableResolution() {
1859
+ return window.screen.availWidth + "x" + window.screen.availHeight;
1860
+ }
1861
+ // Get Device XPDI. Return a string containing the device XPDI.
1862
+ getDeviceXDPI() {
1863
+ return "";
1864
+ }
1865
+ // Get Device YDPI. Return a string containing the device YDPI.
1866
+ getDeviceYDPI() {
1867
+ return "";
1868
+ }
1869
+ //
1870
+ // PLUGIN METHODS
1871
+ //
1872
+ // Get Plugins. Return a string containing a list of installed plugins.
1873
+ getPlugins() {
1874
+ let pluginsList = "";
1875
+ for (let i = 0; i < navigator.plugins.length; i++) {
1876
+ if (i === navigator.plugins.length - 1) {
1877
+ pluginsList += navigator.plugins[i].name;
1878
+ } else {
1879
+ pluginsList += navigator.plugins[i].name + ", ";
1880
+ }
1881
+ }
1882
+ return pluginsList;
1883
+ }
1884
+ //
1885
+ // FONT METHODS
1886
+ //
1887
+ // Get Fonts. Return a string containing a list of installed fonts.
1888
+ getFonts() {
1889
+ const fontString = "";
1890
+ return fontString;
1891
+ }
1892
+ //
1893
+ // STORAGE METHODS
1894
+ //
1895
+ // Is Local Storage. Check if local storage is enabled.
1896
+ isLocalStorage() {
1897
+ try {
1898
+ return !!localStorage;
1899
+ } catch (e2) {
1900
+ return true;
1901
+ }
1902
+ }
1903
+ // Is Session Storage. Check if session storage is enabled.
1904
+ isSessionStorage() {
1905
+ try {
1906
+ return !!sessionStorage;
1907
+ } catch (e2) {
1908
+ return true;
1909
+ }
1910
+ }
1911
+ // Is Cookie. Check if cookies are enabled.
1912
+ isCookie() {
1913
+ return navigator.cookieEnabled;
1914
+ }
1915
+ //
1916
+ // TIME METHODS
1917
+ //
1918
+ // Get Time Zone. Return a string containing the time zone.
1919
+ getTimeZone() {
1920
+ const rightNow = /* @__PURE__ */ new Date();
1921
+ let myNumber, formattedNumber, result;
1922
+ myNumber = String(-(rightNow.getTimezoneOffset() / 60));
1923
+ if (myNumber < 0) {
1924
+ myNumber = myNumber * -1;
1925
+ formattedNumber = ("0" + myNumber).slice(-2);
1926
+ result = "-" + formattedNumber;
1927
+ } else {
1928
+ formattedNumber = ("0" + myNumber).slice(-2);
1929
+ result = "+" + formattedNumber;
1930
+ }
1931
+ return result;
1932
+ }
1933
+ //
1934
+ // LANGUAGE METHODS
1935
+ //
1936
+ // Get Language. Return a string containing the user language.
1937
+ getLanguage() {
1938
+ return navigator.language;
1939
+ }
1940
+ // Get System Language. Return a string containing the system language.
1941
+ getSystemLanguage() {
1942
+ return navigator.language || window.navigator.language;
1943
+ }
1944
+ // Get Canvas Print. Return a string containing the canvas URI data.
1945
+ getCanvasPrint() {
1946
+ const canvas = document.createElement("canvas");
1947
+ let ctx;
1948
+ try {
1949
+ ctx = canvas.getContext("2d");
1950
+ } catch (e2) {
1951
+ return "";
1952
+ }
1953
+ const txt = "ClientJS,org <canvas> 1.0";
1954
+ ctx.textBaseline = "top";
1955
+ ctx.font = "14px 'Arial'";
1956
+ ctx.textBaseline = "alphabetic";
1957
+ ctx.fillStyle = "#f60";
1958
+ ctx.fillRect(125, 1, 62, 20);
1959
+ ctx.fillStyle = "#069";
1960
+ ctx.fillText(txt, 2, 15);
1961
+ ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
1962
+ ctx.fillText(txt, 4, 17);
1963
+ return canvas.toDataURL();
1964
+ }
1965
+ };
1966
+ var clientJS = new ClientJS();
1967
+ var fingerpint_lib_default = clientJS;
1968
+
1969
+ // src/lib/fingerprint.ts
1970
+ var HASH_KEY = "E86E2612010258B35137";
1971
+ var getFingerprint = () => {
1972
+ const HASH_KEY_CUSTOM = envHelper_default.getHashKey() || HASH_KEY;
1973
+ if (typeof window === "undefined")
1974
+ return HASH_KEY_CUSTOM;
1975
+ return fingerpint_lib_default.getFingerprint() + HASH_KEY_CUSTOM;
1976
+ };
1977
+ var fingerprint_default = getFingerprint;
1978
+
1979
+ // src/utils/services.ts
1980
+ var cache;
1981
+ var assign = (a, b) => {
1982
+ Object.keys(b).forEach((key) => {
1983
+ if (b[key] !== void 0)
1984
+ a[key] = b[key];
1985
+ });
1986
+ return a;
1987
+ };
1988
+ var trackerService = async (endpoint, payload) => {
1989
+ const fetchData = await fetch(endpoint, {
1990
+ method: "POST",
1991
+ body: JSON.stringify(payload),
1992
+ headers: assign({ "Content-Type": "application/json" }, { ["x-tracker-cache"]: cache })
1993
+ });
1994
+ const response = await fetchData.json();
1995
+ if (response.error) {
1996
+ throw response.error;
1997
+ } else {
1998
+ return response;
1999
+ }
2000
+ };
2001
+
2002
+ // src/utils/index.ts
2003
+ import Bowser from "bowser";
2004
+ var createRequest = (endpoint, task) => {
2005
+ return `${endpoint}/visitor/v1/${task}`;
2006
+ };
2007
+ var createRequestV2 = (endpoint, task) => {
2008
+ return `${endpoint}/visitor/v2/${task}`;
2009
+ };
2010
+ var rememberFlow = (endpoint, flow) => {
2011
+ return `${endpoint}/remember_flow/${flow}`;
2012
+ };
2013
+ var startTracker = async (endpoint, url, referer, user_agent, attributesVisit) => {
2014
+ const allow = sessionStorage.getItem("aesirx-analytics-allow");
2015
+ const reject = sessionStorage.getItem("aesirx-analytics-rejected");
2016
+ if (allow === "0" || reject === "true") {
2017
+ return null;
2018
+ }
2019
+ const { location, document: document2 } = window;
2020
+ const { pathname, search, origin } = location;
2021
+ url = `${origin}${pathname}${search}`;
2022
+ referer = referer ? location.protocol + "//" + location.host + referer : document2.referrer ? document2.referrer : window["referer"] ? window["referer"] === "/" ? location.protocol + "//" + location.host : location.protocol + "//" + location.host + window["referer"] : "";
2023
+ user_agent = window.navigator.userAgent;
2024
+ const browser = Bowser.parse(window.navigator.userAgent);
2025
+ const browser_name = browser?.browser?.name;
2026
+ const browser_version = browser?.browser?.version ?? "0";
2027
+ const lang = window.navigator["userLanguage"] || window.navigator.language;
2028
+ const device = browser?.platform?.model ?? browser?.platform?.type;
2029
+ const queryString = window.location.search;
2030
+ const urlParams = new URLSearchParams(queryString);
2031
+ const ip = "";
2032
+ try {
2033
+ const fingerprint = fingerprint_default();
2034
+ const attributes = [];
2035
+ for (const key of urlParams.keys()) {
2036
+ if (key.startsWith("utm_")) {
2037
+ urlParams.get(key) && attributes.push({ name: key, value: urlParams.get(key) });
2038
+ }
2039
+ }
2040
+ if (attributesVisit?.length) {
2041
+ attributesVisit?.forEach((element) => {
2042
+ element?.name && attributes.push({ name: element?.name, value: element?.value });
2043
+ });
2044
+ }
2045
+ const responseStart = await trackerService(createRequestV2(endpoint, "start"), {
2046
+ fingerprint,
2047
+ url: url?.replace(/^(https?:\/\/)?(www\.)?/, "$1"),
2048
+ ...referer && (referer !== url || document2.referrer) && {
2049
+ referer: referer !== url ? referer?.replace(/^(https?:\/\/)?(www\.)?/, "$1") : document2.referrer?.replace(/^(https?:\/\/)?(www\.)?/, "$1")
2050
+ },
2051
+ user_agent,
2052
+ ip,
2053
+ browser_name,
2054
+ browser_version,
2055
+ lang,
2056
+ device: device?.includes("iPhone") ? "mobile" : device?.includes("iPad") ? "tablet" : device,
2057
+ ...attributes?.length && {
2058
+ event_name: "visit",
2059
+ event_type: "action",
2060
+ attributes
2061
+ }
2062
+ });
2063
+ if (window["aesirxTrackEcommerce"] === "true" && sessionStorage.getItem("aesirx-analytics-flow") !== (await responseStart)?.flow_uuid) {
2064
+ sessionStorage.setItem("aesirx-analytics-flow", (await responseStart)?.flow_uuid);
2065
+ try {
2066
+ await trackerService(
2067
+ rememberFlow(window.location.origin, (await responseStart)?.flow_uuid),
2068
+ {}
2069
+ );
2070
+ } catch (error) {
2071
+ console.log("Remember Flow Error", error);
2072
+ }
2073
+ }
2074
+ return responseStart;
2075
+ } catch (error) {
2076
+ console.error("Analytics Error: ", error);
2077
+ }
2078
+ };
2079
+ var trackEvent = async (endpoint, referer, data) => {
2080
+ const allow = sessionStorage.getItem("aesirx-analytics-allow");
2081
+ const reject = sessionStorage.getItem("aesirx-analytics-rejected");
2082
+ if (allow === "0" || reject === "true") {
2083
+ return null;
2084
+ }
2085
+ const { location, document: document2 } = window;
2086
+ referer = referer ? location.protocol + "//" + location.host + referer : document2.referrer ? document2.referrer : window["referer"] ? window["referer"] === "/" ? location.protocol + "//" + location.host : location.protocol + "//" + location.host + window["referer"] : "";
2087
+ const url = location.protocol + "//" + location.host + location.pathname;
2088
+ const user_agent = window.navigator.userAgent;
2089
+ const browser = Bowser.parse(window.navigator.userAgent);
2090
+ const browser_name = browser?.browser?.name;
2091
+ const browser_version = browser?.browser?.version ?? "0";
2092
+ const lang = window.navigator["userLanguage"] || window.navigator.language;
2093
+ const device = browser?.platform?.model ?? browser?.platform?.type;
2094
+ const ip = "";
2095
+ const fingerprint = fingerprint_default();
2096
+ const headers = { type: "application/json" };
2097
+ const blobData = new Blob(
2098
+ [
2099
+ JSON.stringify({
2100
+ fingerprint,
2101
+ url: url?.replace(/^(https?:\/\/)?(www\.)?/, "$1"),
2102
+ ...referer !== "/" && referer && {
2103
+ referer: referer?.replace(/^(https?:\/\/)?(www\.)?/, "$1")
2104
+ },
2105
+ user_agent,
2106
+ ip,
2107
+ browser_name,
2108
+ browser_version,
2109
+ lang,
2110
+ device: device?.includes("iPhone") ? "mobile" : device?.includes("iPad") ? "tablet" : device,
2111
+ ...data
2112
+ })
2113
+ ],
2114
+ headers
2115
+ );
2116
+ const responseStart = navigator.sendBeacon(createRequestV2(endpoint, "start"), blobData);
2117
+ return responseStart;
2118
+ };
2119
+ var endTracker = (endPoint, event_uuid, visitor_uuid) => {
2120
+ if (event_uuid && visitor_uuid) {
2121
+ const body = {
2122
+ event_uuid,
2123
+ visitor_uuid
2124
+ };
2125
+ const headers = { type: "application/json" };
2126
+ const blob = new Blob([JSON.stringify(body)], headers);
2127
+ navigator.sendBeacon(createRequest(endPoint, "end"), blob);
2128
+ }
2129
+ };
2130
+ var endTrackerVisibilityState = (endPoint) => {
2131
+ document.addEventListener("visibilitychange", async () => {
2132
+ if (document.visibilityState === "hidden") {
2133
+ endTracker(endPoint, window["event_uuid"], window["visitor_uuid"]);
2134
+ }
2135
+ if (document.visibilityState === "visible") {
2136
+ const response = await startTracker(endPoint, "", "", "", window["attributes"]);
2137
+ window["event_uuid"] = response?.event_uuid;
2138
+ }
2139
+ });
2140
+ window.addEventListener(
2141
+ "pagehide",
2142
+ (event) => {
2143
+ if (event.persisted) {
2144
+ endTracker(endPoint, window["event_uuid"], window["visitor_uuid"]);
2145
+ }
2146
+ },
2147
+ false
2148
+ );
2149
+ };
2150
+ var unBlockScripts = () => {
2151
+ window["configBlockJS"]._backupNodes = window["configBlockJS"]?._backupNodes.filter(
2152
+ ({ position, node, uniqueID }) => {
2153
+ try {
2154
+ if (node.nodeName.toLowerCase() === "script") {
2155
+ const scriptNode = document.createElement("script");
2156
+ scriptNode.src = node.src;
2157
+ scriptNode.type = "text/javascript";
2158
+ document[position].appendChild(scriptNode);
2159
+ } else {
2160
+ const frame = document.getElementById(uniqueID);
2161
+ if (!frame)
2162
+ return false;
2163
+ const iframe = document.createElement("iframe");
2164
+ iframe.src = node.src;
2165
+ iframe.width = frame.offsetWidth;
2166
+ iframe.height = frame.offsetHeight;
2167
+ frame.parentNode.insertBefore(iframe, frame);
2168
+ frame.parentNode.removeChild(frame);
2169
+ }
2170
+ return false;
2171
+ } catch (error) {
2172
+ console.error(error);
2173
+ return false;
2174
+ }
2175
+ }
2176
+ );
2177
+ };
2178
+
1693
2179
  // src/utils/consent.ts
1694
2180
  import { stringMessage } from "@concordium/react-components";
1695
2181
  import axios from "axios";
1696
- var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, web3id, jwt, network = "concordium", gtagId, gtmId, layout) => {
2182
+ import Bowser2 from "bowser";
2183
+ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, web3id, jwt, network = "concordium", gtagId, gtmId) => {
1697
2184
  const url = `${endpoint}/consent/v1/level${level}/${uuid}`;
1698
2185
  const urlV2 = `${endpoint}/consent/v2/level${level}/${uuid}`;
1699
2186
  if (sessionStorage.getItem("consentGranted") !== "true") {
1700
- gtagId && consentModeGrant(true, gtagId, layout);
1701
- gtmId && consentModeGrant(false, gtmId, layout);
2187
+ gtagId && consentModeGrant(true, gtagId);
2188
+ gtmId && consentModeGrant(false, gtmId);
1702
2189
  }
2190
+ const fingerprint = fingerprint_default();
2191
+ const { location, document: document2 } = window;
2192
+ const { pathname, search, origin } = location;
2193
+ const currentUrl = `${origin}${pathname}${search}`;
2194
+ const referer = document2.referrer ? document2.referrer : window["referer"] ? window["referer"] === "/" ? location.protocol + "//" + location.host : location.protocol + "//" + location.host + window["referer"] : "";
2195
+ const user_agent = window.navigator.userAgent;
2196
+ const browser = Bowser2.parse(window.navigator.userAgent);
2197
+ const browser_name = browser?.browser?.name;
2198
+ const browser_version = browser?.browser?.version ?? "0";
2199
+ const lang = window.navigator["userLanguage"] || window.navigator.language;
2200
+ const device = browser?.platform?.model ?? browser?.platform?.type;
2201
+ const ip = "";
2202
+ const dataPayload = {
2203
+ fingerprint,
2204
+ url: currentUrl?.replace(/^(https?:\/\/)?(www\.)?/, "$1"),
2205
+ ...referer && (referer !== currentUrl || document2.referrer) && {
2206
+ referer: referer !== currentUrl ? referer?.replace(/^(https?:\/\/)?(www\.)?/, "$1") : document2.referrer?.replace(/^(https?:\/\/)?(www\.)?/, "$1")
2207
+ },
2208
+ user_agent,
2209
+ ip,
2210
+ browser_name,
2211
+ browser_version,
2212
+ lang,
2213
+ device: device?.includes("iPhone") ? "mobile" : device?.includes("iPad") ? "tablet" : device
2214
+ };
1703
2215
  try {
1704
2216
  switch (level) {
1705
2217
  case 1:
1706
- await axios.post(`${url}/${consent}`);
2218
+ await axios.post(`${url}/${consent}`, { ...dataPayload });
1707
2219
  break;
1708
2220
  case 2:
1709
2221
  await axios.post(
@@ -1720,7 +2232,8 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
1720
2232
  case 3:
1721
2233
  await axios.post(`${url}/${network}/${wallet}`, {
1722
2234
  signature,
1723
- consent
2235
+ consent,
2236
+ ...dataPayload
1724
2237
  });
1725
2238
  break;
1726
2239
  case 4:
@@ -1728,7 +2241,8 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
1728
2241
  `${urlV2}/${network}/${wallet}`,
1729
2242
  {
1730
2243
  signature,
1731
- consent
2244
+ consent,
2245
+ ...dataPayload
1732
2246
  },
1733
2247
  {
1734
2248
  headers: {
@@ -1745,19 +2259,17 @@ var agreeConsents = async (endpoint, level, uuid, consent, wallet, signature, we
1745
2259
  throw error;
1746
2260
  }
1747
2261
  };
1748
- var consentModeGrant = async (isGtag, id, layout) => {
2262
+ var consentModeGrant = async (isGtag, id) => {
1749
2263
  async function gtag(p0, p1, p2) {
1750
2264
  dataLayer.push(arguments);
1751
2265
  }
1752
- if (layout === "simple-consent-mode") {
1753
- if (isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtag/js?id=${id}"]`)) {
1754
- await loadGtagScript(id);
1755
- gtag("js", /* @__PURE__ */ new Date());
1756
- gtag("config", `${id}`);
1757
- } else if (!isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtm.js?id=${id}"]`)) {
1758
- await loadGtmScript(id);
1759
- dataLayer.push({ "gtm.start": (/* @__PURE__ */ new Date()).getTime(), event: "gtm.js" });
1760
- }
2266
+ if (isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtag/js?id=${id}"]`)) {
2267
+ await loadGtagScript(id);
2268
+ gtag("js", /* @__PURE__ */ new Date());
2269
+ gtag("config", `${id}`);
2270
+ } else if (!isGtag && !document.querySelector(`script[src="https://www.googletagmanager.com/gtm.js?id=${id}"]`)) {
2271
+ await loadGtmScript(id);
2272
+ dataLayer.push({ "gtm.start": (/* @__PURE__ */ new Date()).getTime(), event: "gtm.js" });
1761
2273
  }
1762
2274
  sessionStorage.setItem("consentGranted", "true");
1763
2275
  gtag("consent", "update", {
@@ -1968,8 +2480,15 @@ var no_default = 'data:image/svg+xml,<svg width="18" height="19" viewBox="0 0 18
1968
2480
 
1969
2481
  export {
1970
2482
  useTranslation,
2483
+ useI18nextContext,
1971
2484
  AnalyticsContext,
1972
2485
  AnalyticsContextProvider_default,
2486
+ fingerprint_default,
2487
+ startTracker,
2488
+ trackEvent,
2489
+ endTracker,
2490
+ endTrackerVisibilityState,
2491
+ unBlockScripts,
1973
2492
  agreeConsents,
1974
2493
  loadGtagScript,
1975
2494
  loadGtmScript,