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.
- package/dist/{Consent-4SM7WZEN.js → Consent-VKKGBHOL.js} +17 -14
- package/dist/{ConsentCustom-MHFD6YO3.js → ConsentCustom-ADJKXZV7.js} +81 -106
- package/dist/analytics.js +558 -723
- package/dist/{chunk-TDFENDG7.js → chunk-IAQD6GXT.js} +667 -279
- package/dist/{chunk-HGACFQLI.js → chunk-NKOHXSTE.js} +564 -45
- package/dist/index.js +40 -31
- package/package.json +15 -9
- package/dist/chunk-UJTYOAT7.js +0 -464
@@ -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
|
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: "
|
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
|
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 [\
|
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
|
1265
|
-
txt_by_consenting: "
|
1266
|
-
txt_analytics_behavioral: "
|
1267
|
-
txt_form_data: "D\u1EEF
|
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
|
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 \
|
1274
|
-
txt_earn_rewards: "<span class='fw-semibold text-primary'>
|
1275
|
-
txt_transparent_data: "<span class='fw-semibold text-primary'>
|
1276
|
-
|
1277
|
-
txt_reject_no_data: "<span class='fw-semibold text-primary'>T\u1EEB ch\u1ED1i:</span>
|
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'
|
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'
|
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
|
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 \
|
1289
|
-
txt_decentralized_wallet: "
|
1290
|
-
txt_decentralized_wallet_will_be_loaded: "
|
1291
|
-
txt_both_first_party_third_party: "
|
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
|
1294
|
-
txt_decentralized_wallet_shield: "
|
1295
|
-
txt_users_can_revoke_dapp: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3 thu h\u1ED3i
|
1296
|
-
txt_users_can_earn: "Ng\u01B0\u1EDDi d\xF9ng c\xF3 th\u1EC3
|
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: "
|
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)
|
1302
|
-
txt_decentralized_consent_allow_data: "<span class='fw-semibold text-primary'
|
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
|
-
|
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
|
1701
|
-
gtmId && consentModeGrant(false, gtmId
|
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
|
2262
|
+
var consentModeGrant = async (isGtag, id) => {
|
1749
2263
|
async function gtag(p0, p1, p2) {
|
1750
2264
|
dataLayer.push(arguments);
|
1751
2265
|
}
|
1752
|
-
if (
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
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,
|