-
+
0
-
+
1
-
+
99
-
+
100000
@@ -41,7 +59,7 @@ const categories: ValidatorSubsetCategory[] = ['all', 'online', 'offline', 'pend
+
diff --git a/frontend/plugins/bcLogger.ts b/frontend/plugins/bcLogger.ts
index 911f0dd1b..6c2a063cc 100644
--- a/frontend/plugins/bcLogger.ts
+++ b/frontend/plugins/bcLogger.ts
@@ -3,7 +3,9 @@ import * as path from 'path'
import { warn } from 'vue'
export default defineNuxtPlugin((_nuxtApp) => {
- const { public: { logFile } } = useRuntimeConfig()
+ const {
+ public: { logFile },
+ } = useRuntimeConfig()
return {
provide: {
bcLogger: {
@@ -11,7 +13,10 @@ export default defineNuxtPlugin((_nuxtApp) => {
const ts = new Date().toISOString()
if (isServer && logFile) {
const filePath = path.resolve(logFile)
- fs.appendFileSync(filePath, `${ts}: ${msg} | ${JSON.stringify(rest)}\n`)
+ fs.appendFileSync(
+ filePath,
+ `${ts}: ${msg} | ${JSON.stringify(rest)}\n`,
+ )
}
warn(`${ts}: ${msg}`, ...rest)
},
diff --git a/frontend/plugins/fontawesome.js b/frontend/plugins/fontawesome.js
index 10a4b1036..fa111b99e 100644
--- a/frontend/plugins/fontawesome.js
+++ b/frontend/plugins/fontawesome.js
@@ -11,7 +11,8 @@ config.autoAddCss = false
// You can add your icons directly in this plugin. See other examples for how you
// can add other styles or just individual icons.
/*
-If we want to include all icons we could add them like this, but it would be better for tree shaking to import them one by one
+If we want to include all icons we could add them like this, but it would be
+better for tree shaking to import them one by one
library.add(fas)
library.add(far)
library.add(fab)
@@ -19,8 +20,6 @@ library.add(fab)
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component('font-awesome-icon', FontAwesomeIcon, {
- css: [
- '@fortawesome/fontawesome-svg-core/styles.css',
- ],
+ css: ['@fortawesome/fontawesome-svg-core/styles.css'],
})
})
diff --git a/frontend/public/mock/dashboard/overview.json b/frontend/public/mock/dashboard/overview.json
index 35416d492..d47b3f1e6 100644
--- a/frontend/public/mock/dashboard/overview.json
+++ b/frontend/public/mock/dashboard/overview.json
@@ -44,7 +44,7 @@
"efficiency": {
"all_time": 55.454,
"last_24h": 98.45,
- "last_7d": 77.65,
+ "last_7d": 77.65,
"last_30d": 88.88
},
"rewards": {
@@ -66,10 +66,10 @@
}
},
"apr": {
- "all_time": {"el":2.45, "cl": 1.45},
- "last_24h": {"el":3.45, "cl": 21.45},
- "last_7d": {"el":12.45, "cl": 31.45},
- "last_30d": {"el":22.45, "cl": 51.45}
+ "all_time": { "el": 2.45, "cl": 1.45 },
+ "last_24h": { "el": 3.45, "cl": 21.45 },
+ "last_7d": { "el": 12.45, "cl": 31.45 },
+ "last_30d": { "el": 22.45, "cl": 51.45 }
}
}
}
diff --git a/frontend/public/mock/dashboard/validatorRewardsChart.json b/frontend/public/mock/dashboard/validatorRewardsChart.json
index 99e8a5f30..238f79c95 100644
--- a/frontend/public/mock/dashboard/validatorRewardsChart.json
+++ b/frontend/public/mock/dashboard/validatorRewardsChart.json
@@ -1,2695 +1,2701 @@
{
"data": {
- "categories": [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049],
+ "categories": [
+ 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009,
+ 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019,
+ 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029,
+ 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039,
+ 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049
+ ],
"series": [
- {
- "id": 0,
- "property": "cl",
- "data": [
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "10000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 1,
- "property": "cl",
- "data": [
- "870000000000000000",
- "30000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 2,
- "property": "cl",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 3,
- "property": "cl",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 4,
- "property": "cl",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 5,
- "property": "cl",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 6,
- "property": "cl",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 9,
- "property": "cl",
- "data": [
- "580000000000000000",
- "410000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- },
- {
- "id": 10,
- "property": "cl",
- "data": [
- "0",
- "110000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "1000000000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 11,
- "property": "cl",
- "data": [
- "840000000000000000",
- "130000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 12,
- "property": "cl",
- "data": [
- "840000000000000000",
- "60000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 13,
- "property": "cl",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 14,
- "property": "cl",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 15,
- "property": "cl",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 16,
- "property": "cl",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 19,
- "property": "cl",
- "data": [
- "680000000000000000",
- "400000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- },
- {
- "id": 20,
- "property": "cl",
- "data": [
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "1000000000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 21,
- "property": "cl",
- "data": [
- "870000000000000000",
- "30000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 22,
- "property": "cl",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 23,
- "property": "cl",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 24,
- "property": "cl",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 25,
- "property": "cl",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 26,
- "property": "cl",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 29,
- "property": "cl",
- "data": [
- "680000000000000000",
- "400000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- },
- {
- "id": 0,
- "property": "el",
- "data": [
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "1000000000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 1,
- "property": "el",
- "data": [
- "870000000000000000",
- "30000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 2,
- "property": "el",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 3,
- "property": "el",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 4,
- "property": "el",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 5,
- "property": "el",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 6,
- "property": "el",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 9,
- "property": "el",
- "data": [
- "580000000000000000",
- "410000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- },
- {
- "id": 10,
- "property": "el",
- "data": [
- "0",
- "110000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "1000000000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 11,
- "property": "el",
- "data": [
- "840000000000000000",
- "130000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 12,
- "property": "el",
- "data": [
- "840000000000000000",
- "60000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 13,
- "property": "el",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 14,
- "property": "el",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 15,
- "property": "el",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 16,
- "property": "el",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 19,
- "property": "el",
- "data": [
- "680000000000000000",
- "400000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- },
- {
- "id": 20,
- "property": "el",
- "data": [
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "900000000000000000",
- "1000000000000000000",
- "900000000000000000",
- "800000000000000000",
- "700000000000000000",
- "600000000000000000",
- "500000000000000000",
- "400000000000000000",
- "300000000000000000",
- "200000000000000000",
- "100000000000000000",
- "0",
- "50000000000000000",
- "0",
- "50000000000000000",
- "0",
- "100000000000000000",
- "200000000000000000",
- "300000000000000000",
- "400000000000000000",
- "500000000000000000",
- "600000000000000000",
- "700000000000000000",
- "800000000000000000",
- "850000000000000000",
- "900000000000000000",
- "950000000000000000",
- "970000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "980000000000000000",
- "990000000000000000",
- "990000000000000000",
- "9910000000000000000",
- "990000000000000000",
- "9932345000000001",
- "99324450000001",
- "9932495000001",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 21,
- "property": "el",
- "data": [
- "870000000000000000",
- "30000000000000000",
- "720000000000000000",
- "240000000000000000",
- "370000000000000000",
- "120000000000000000",
- "510000000000000000",
- "630000000000000000",
- "950000000000000000",
- "450000000000000000",
- "90000000000000000",
- "330000000000000000",
- "320000000000000000",
- "800000000000000000",
- "960000000000000000",
- "410000000000000000",
- "20000000000000000",
- "710000000000000000",
- "40000000000000000",
- "900000000000000000",
- "360000000000000000",
- "530000000000000000",
- "160000000000000000",
- "170000000000000000",
- "50000000000000000",
- "170000000000000000",
- "210000000000000000",
- "740000000000000000",
- "490000000000000000",
- "520000000000000000",
- "810000000000000000",
- "670000000000000000",
- "280000000000000000",
- "70000000000000000",
- "410000000000000000",
- "50000000000000000",
- "130000000000000000",
- "740000000000000000",
- "340000000000000000",
- "470000000000000000",
- "70000000000000000",
- "970000000000000000",
- "540000000000000000",
- "620000000000000000",
- "420000000000000000",
- "420000000000000000",
- "950000000000000000",
- "220000000000000000",
- "380000000000000000",
- "53000000000"
- ]
- },
- {
- "id": 22,
- "property": "el",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "82000000000"
- ]
- },
- {
- "id": 23,
- "property": "el",
- "data": [
- "840000000000000000",
- "600000000000000000",
- "160000000000000000",
- "940000000000000000",
- "70000000000000000",
- "80000000000000000",
- "880000000000000000",
- "890000000000000000",
- "240000000000000000",
- "340000000000000000",
- "380000000000000000",
- "590000000000000000",
- "590000000000000000",
- "640000000000000000",
- "0",
- "480000000000000000",
- "910000000000000000",
- "380000000000000000",
- "50000000000000000",
- "930000000000000000",
- "160000000000000000",
- "710000000000000000",
- "670000000000000000",
- "70000000000000000",
- "40000000000000000",
- "680000000000000000",
- "660000000000000000",
- "540000000000000000",
- "730000000000000000",
- "910000000000000000",
- "350000000000000000",
- "280000000000000000",
- "60000000000000000",
- "420000000000000000",
- "510000000000000000",
- "50000000000000000",
- "380000000000000000",
- "70000000000000000",
- "850000000000000000",
- "990000000000000000",
- "170000000000000000",
- "380000000000000000",
- "130000000000000000",
- "460000000000000000",
- "290000000000000000",
- "690000000000000000",
- "940000000000000000",
- "100000000000000000",
- "620000000000000000",
- "42000000000"
- ]
- },
- {
- "id": 24,
- "property": "el",
- "data": [
- "770000000000000000",
- "300000000000000000",
- "960000000000000000",
- "340000000000000000",
- "900000000000000000",
- "770000000000000000",
- "530000000000000000",
- "400000000000000000",
- "800000000000000000",
- "670000000000000000",
- "0",
- "360000000000000000",
- "170000000000000000",
- "160000000000000000",
- "160000000000000000",
- "570000000000000000",
- "900000000000000000",
- "710000000000000000",
- "770000000000000000",
- "880000000000000000",
- "700000000000000000",
- "830000000000000000",
- "100000000000000000",
- "580000000000000000",
- "340000000000000000",
- "220000000000000000",
- "600000000000000000",
- "220000000000000000",
- "440000000000000000",
- "330000000000000000",
- "280000000000000000",
- "470000000000000000",
- "410000000000000000",
- "360000000000000000",
- "710000000000000000",
- "610000000000000000",
- "210000000000000000",
- "20000000000000000",
- "190000000000000000",
- "160000000000000000",
- "110000000000000000",
- "490000000000000000",
- "520000000000000000",
- "680000000000000000",
- "890000000000000000",
- "920000000000000000",
- "890000000000000000",
- "920000000000000000",
- "1000000000000000000",
- "100000000000"
- ]
- },
- {
- "id": 25,
- "property": "el",
- "data": [
- "900000000000000000",
- "440000000000000000",
- "350000000000000000",
- "120000000000000000",
- "920000000000000000",
- "450000000000000000",
- "110000000000000000",
- "460000000000000000",
- "910000000000000000",
- "170000000000000000",
- "490000000000000000",
- "770000000000000000",
- "40000000000000000",
- "220000000000000000",
- "270000000000000000",
- "270000000000000000",
- "170000000000000000",
- "10000000000000000",
- "470000000000000000",
- "500000000000000000",
- "490000000000000000",
- "110000000000000000",
- "690000000000000000",
- "420000000000000000",
- "280000000000000000",
- "630000000000000000",
- "230000000000000000",
- "290000000000000000",
- "990000000000000000",
- "820000000000000000",
- "800000000000000000",
- "320000000000000000",
- "250000000000000000",
- "250000000000000000",
- "170000000000000000",
- "0",
- "510000000000000000",
- "250000000000000000",
- "90000000000000000",
- "820000000000000000",
- "520000000000000000",
- "840000000000000000",
- "420000000000000000",
- "490000000000000000",
- "790000000000000000",
- "260000000000000000",
- "120000000000000000",
- "40000000000000000",
- "710000000000000000",
- "80000000000"
- ]
- },
- {
- "id": 26,
- "property": "el",
- "data": [
- "720000000000000000",
- "410000000000000000",
- "470000000000000000",
- "350000000000000000",
- "530000000000000000",
- "270000000000000000",
- "480000000000000000",
- "460000000000000000",
- "590000000000000000",
- "380000000000000000",
- "470000000000000000",
- "510000000000000000",
- "150000000000000000",
- "220000000000000000",
- "210000000000000000",
- "520000000000000000",
- "670000000000000000",
- "560000000000000000",
- "470000000000000000",
- "720000000000000000",
- "510000000000000000",
- "280000000000000000",
- "670000000000000000",
- "470000000000000000",
- "360000000000000000",
- "460000000000000000",
- "420000000000000000",
- "640000000000000000",
- "670000000000000000",
- "680000000000000000",
- "510000000000000000",
- "380000000000000000",
- "390000000000000000",
- "350000000000000000",
- "180000000000000000",
- "210000000000000000",
- "290000000000000000",
- "180000000000000000",
- "250000000000000000",
- "400000000000000000",
- "470000000000000000",
- "570000000000000000",
- "440000000000000000",
- "460000000000000000",
- "500000000000000000",
- "320000000000000000",
- "440000000000000000",
- "370000000000000000",
- "250000000000000000",
- "20000000000"
- ]
- },
- {
- "id": 29,
- "property": "el",
- "data": [
- "680000000000000000",
- "400000000000000000",
- "470000000000000000",
- "440000000000000000",
- "540000000000000000",
- "320000000000000000",
- "540000000000000000",
- "560000000000000000",
- "690000000000000000",
- "400000000000000000",
- "280000000000000000",
- "510000000000000000",
- "180000000000000000",
- "300000000000000000",
- "260000000000000000",
- "470000000000000000",
- "520000000000000000",
- "490000000000000000",
- "470000000000000000",
- "700000000000000000",
- "480000000000000000",
- "350000000000000000",
- "610000000000000000",
- "340000000000000000",
- "290000000000000000",
- "440000000000000000",
- "560000000000000000",
- "500000000000000000",
- "550000000000000000",
- "610000000000000000",
- "430000000000000000",
- "350000000000000000",
- "310000000000000000",
- "230000000000000000",
- "320000000000000000",
- "320000000000000000",
- "250000000000000000",
- "410000000000000000",
- "460000000000000000",
- "310000000000000000",
- "500000000000000000",
- "380000000000000000",
- "370000000000000000",
- "410000000000000000",
- "600000000000000000",
- "570000000000000000",
- "420000000000000000",
- "420000000000000000",
- "630000000000000000",
- "43000000000"
- ]
- }
+ {
+ "id": 0,
+ "property": "cl",
+ "data": [
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "10000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 1,
+ "property": "cl",
+ "data": [
+ "870000000000000000",
+ "30000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 2,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 3,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 4,
+ "property": "cl",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 5,
+ "property": "cl",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 6,
+ "property": "cl",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 9,
+ "property": "cl",
+ "data": [
+ "580000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ },
+ {
+ "id": 10,
+ "property": "cl",
+ "data": [
+ "0",
+ "110000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "1000000000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 11,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "130000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 12,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "60000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 13,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 14,
+ "property": "cl",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 15,
+ "property": "cl",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 16,
+ "property": "cl",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 19,
+ "property": "cl",
+ "data": [
+ "680000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ },
+ {
+ "id": 20,
+ "property": "cl",
+ "data": [
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "1000000000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 21,
+ "property": "cl",
+ "data": [
+ "870000000000000000",
+ "30000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 22,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 23,
+ "property": "cl",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 24,
+ "property": "cl",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 25,
+ "property": "cl",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 26,
+ "property": "cl",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 29,
+ "property": "cl",
+ "data": [
+ "680000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ },
+ {
+ "id": 0,
+ "property": "el",
+ "data": [
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "1000000000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 1,
+ "property": "el",
+ "data": [
+ "870000000000000000",
+ "30000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 2,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 3,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 4,
+ "property": "el",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 5,
+ "property": "el",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 6,
+ "property": "el",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 9,
+ "property": "el",
+ "data": [
+ "580000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ },
+ {
+ "id": 10,
+ "property": "el",
+ "data": [
+ "0",
+ "110000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "1000000000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 11,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "130000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 12,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "60000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 13,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 14,
+ "property": "el",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 15,
+ "property": "el",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 16,
+ "property": "el",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 19,
+ "property": "el",
+ "data": [
+ "680000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ },
+ {
+ "id": 20,
+ "property": "el",
+ "data": [
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "900000000000000000",
+ "1000000000000000000",
+ "900000000000000000",
+ "800000000000000000",
+ "700000000000000000",
+ "600000000000000000",
+ "500000000000000000",
+ "400000000000000000",
+ "300000000000000000",
+ "200000000000000000",
+ "100000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "50000000000000000",
+ "0",
+ "100000000000000000",
+ "200000000000000000",
+ "300000000000000000",
+ "400000000000000000",
+ "500000000000000000",
+ "600000000000000000",
+ "700000000000000000",
+ "800000000000000000",
+ "850000000000000000",
+ "900000000000000000",
+ "950000000000000000",
+ "970000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "980000000000000000",
+ "990000000000000000",
+ "990000000000000000",
+ "9910000000000000000",
+ "990000000000000000",
+ "9932345000000001",
+ "99324450000001",
+ "9932495000001",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 21,
+ "property": "el",
+ "data": [
+ "870000000000000000",
+ "30000000000000000",
+ "720000000000000000",
+ "240000000000000000",
+ "370000000000000000",
+ "120000000000000000",
+ "510000000000000000",
+ "630000000000000000",
+ "950000000000000000",
+ "450000000000000000",
+ "90000000000000000",
+ "330000000000000000",
+ "320000000000000000",
+ "800000000000000000",
+ "960000000000000000",
+ "410000000000000000",
+ "20000000000000000",
+ "710000000000000000",
+ "40000000000000000",
+ "900000000000000000",
+ "360000000000000000",
+ "530000000000000000",
+ "160000000000000000",
+ "170000000000000000",
+ "50000000000000000",
+ "170000000000000000",
+ "210000000000000000",
+ "740000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "810000000000000000",
+ "670000000000000000",
+ "280000000000000000",
+ "70000000000000000",
+ "410000000000000000",
+ "50000000000000000",
+ "130000000000000000",
+ "740000000000000000",
+ "340000000000000000",
+ "470000000000000000",
+ "70000000000000000",
+ "970000000000000000",
+ "540000000000000000",
+ "620000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "950000000000000000",
+ "220000000000000000",
+ "380000000000000000",
+ "53000000000"
+ ]
+ },
+ {
+ "id": 22,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "82000000000"
+ ]
+ },
+ {
+ "id": 23,
+ "property": "el",
+ "data": [
+ "840000000000000000",
+ "600000000000000000",
+ "160000000000000000",
+ "940000000000000000",
+ "70000000000000000",
+ "80000000000000000",
+ "880000000000000000",
+ "890000000000000000",
+ "240000000000000000",
+ "340000000000000000",
+ "380000000000000000",
+ "590000000000000000",
+ "590000000000000000",
+ "640000000000000000",
+ "0",
+ "480000000000000000",
+ "910000000000000000",
+ "380000000000000000",
+ "50000000000000000",
+ "930000000000000000",
+ "160000000000000000",
+ "710000000000000000",
+ "670000000000000000",
+ "70000000000000000",
+ "40000000000000000",
+ "680000000000000000",
+ "660000000000000000",
+ "540000000000000000",
+ "730000000000000000",
+ "910000000000000000",
+ "350000000000000000",
+ "280000000000000000",
+ "60000000000000000",
+ "420000000000000000",
+ "510000000000000000",
+ "50000000000000000",
+ "380000000000000000",
+ "70000000000000000",
+ "850000000000000000",
+ "990000000000000000",
+ "170000000000000000",
+ "380000000000000000",
+ "130000000000000000",
+ "460000000000000000",
+ "290000000000000000",
+ "690000000000000000",
+ "940000000000000000",
+ "100000000000000000",
+ "620000000000000000",
+ "42000000000"
+ ]
+ },
+ {
+ "id": 24,
+ "property": "el",
+ "data": [
+ "770000000000000000",
+ "300000000000000000",
+ "960000000000000000",
+ "340000000000000000",
+ "900000000000000000",
+ "770000000000000000",
+ "530000000000000000",
+ "400000000000000000",
+ "800000000000000000",
+ "670000000000000000",
+ "0",
+ "360000000000000000",
+ "170000000000000000",
+ "160000000000000000",
+ "160000000000000000",
+ "570000000000000000",
+ "900000000000000000",
+ "710000000000000000",
+ "770000000000000000",
+ "880000000000000000",
+ "700000000000000000",
+ "830000000000000000",
+ "100000000000000000",
+ "580000000000000000",
+ "340000000000000000",
+ "220000000000000000",
+ "600000000000000000",
+ "220000000000000000",
+ "440000000000000000",
+ "330000000000000000",
+ "280000000000000000",
+ "470000000000000000",
+ "410000000000000000",
+ "360000000000000000",
+ "710000000000000000",
+ "610000000000000000",
+ "210000000000000000",
+ "20000000000000000",
+ "190000000000000000",
+ "160000000000000000",
+ "110000000000000000",
+ "490000000000000000",
+ "520000000000000000",
+ "680000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "890000000000000000",
+ "920000000000000000",
+ "1000000000000000000",
+ "100000000000"
+ ]
+ },
+ {
+ "id": 25,
+ "property": "el",
+ "data": [
+ "900000000000000000",
+ "440000000000000000",
+ "350000000000000000",
+ "120000000000000000",
+ "920000000000000000",
+ "450000000000000000",
+ "110000000000000000",
+ "460000000000000000",
+ "910000000000000000",
+ "170000000000000000",
+ "490000000000000000",
+ "770000000000000000",
+ "40000000000000000",
+ "220000000000000000",
+ "270000000000000000",
+ "270000000000000000",
+ "170000000000000000",
+ "10000000000000000",
+ "470000000000000000",
+ "500000000000000000",
+ "490000000000000000",
+ "110000000000000000",
+ "690000000000000000",
+ "420000000000000000",
+ "280000000000000000",
+ "630000000000000000",
+ "230000000000000000",
+ "290000000000000000",
+ "990000000000000000",
+ "820000000000000000",
+ "800000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "250000000000000000",
+ "170000000000000000",
+ "0",
+ "510000000000000000",
+ "250000000000000000",
+ "90000000000000000",
+ "820000000000000000",
+ "520000000000000000",
+ "840000000000000000",
+ "420000000000000000",
+ "490000000000000000",
+ "790000000000000000",
+ "260000000000000000",
+ "120000000000000000",
+ "40000000000000000",
+ "710000000000000000",
+ "80000000000"
+ ]
+ },
+ {
+ "id": 26,
+ "property": "el",
+ "data": [
+ "720000000000000000",
+ "410000000000000000",
+ "470000000000000000",
+ "350000000000000000",
+ "530000000000000000",
+ "270000000000000000",
+ "480000000000000000",
+ "460000000000000000",
+ "590000000000000000",
+ "380000000000000000",
+ "470000000000000000",
+ "510000000000000000",
+ "150000000000000000",
+ "220000000000000000",
+ "210000000000000000",
+ "520000000000000000",
+ "670000000000000000",
+ "560000000000000000",
+ "470000000000000000",
+ "720000000000000000",
+ "510000000000000000",
+ "280000000000000000",
+ "670000000000000000",
+ "470000000000000000",
+ "360000000000000000",
+ "460000000000000000",
+ "420000000000000000",
+ "640000000000000000",
+ "670000000000000000",
+ "680000000000000000",
+ "510000000000000000",
+ "380000000000000000",
+ "390000000000000000",
+ "350000000000000000",
+ "180000000000000000",
+ "210000000000000000",
+ "290000000000000000",
+ "180000000000000000",
+ "250000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "570000000000000000",
+ "440000000000000000",
+ "460000000000000000",
+ "500000000000000000",
+ "320000000000000000",
+ "440000000000000000",
+ "370000000000000000",
+ "250000000000000000",
+ "20000000000"
+ ]
+ },
+ {
+ "id": 29,
+ "property": "el",
+ "data": [
+ "680000000000000000",
+ "400000000000000000",
+ "470000000000000000",
+ "440000000000000000",
+ "540000000000000000",
+ "320000000000000000",
+ "540000000000000000",
+ "560000000000000000",
+ "690000000000000000",
+ "400000000000000000",
+ "280000000000000000",
+ "510000000000000000",
+ "180000000000000000",
+ "300000000000000000",
+ "260000000000000000",
+ "470000000000000000",
+ "520000000000000000",
+ "490000000000000000",
+ "470000000000000000",
+ "700000000000000000",
+ "480000000000000000",
+ "350000000000000000",
+ "610000000000000000",
+ "340000000000000000",
+ "290000000000000000",
+ "440000000000000000",
+ "560000000000000000",
+ "500000000000000000",
+ "550000000000000000",
+ "610000000000000000",
+ "430000000000000000",
+ "350000000000000000",
+ "310000000000000000",
+ "230000000000000000",
+ "320000000000000000",
+ "320000000000000000",
+ "250000000000000000",
+ "410000000000000000",
+ "460000000000000000",
+ "310000000000000000",
+ "500000000000000000",
+ "380000000000000000",
+ "370000000000000000",
+ "410000000000000000",
+ "600000000000000000",
+ "570000000000000000",
+ "420000000000000000",
+ "420000000000000000",
+ "630000000000000000",
+ "43000000000"
+ ]
+ }
]
}
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/dashboard/validatorSummary.json b/frontend/public/mock/dashboard/validatorSummary.json
index 5fde1b097..7fe952175 100644
--- a/frontend/public/mock/dashboard/validatorSummary.json
+++ b/frontend/public/mock/dashboard/validatorSummary.json
@@ -10,7 +10,7 @@
"current_sync_count": 345,
"slashed_count": 12
},
- "validators":{
+ "validators": {
"online": 123124,
"offline": 234,
"exited": 22
diff --git a/frontend/public/mock/dashboard/validatorSummaryChart.json b/frontend/public/mock/dashboard/validatorSummaryChart.json
index 41759404a..10d17acb3 100644
--- a/frontend/public/mock/dashboard/validatorSummaryChart.json
+++ b/frontend/public/mock/dashboard/validatorSummaryChart.json
@@ -1,107 +1,216 @@
{
"data": {
- "categories": [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049],
+ "categories": [
+ 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009,
+ 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019,
+ 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029,
+ 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039,
+ 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049
+ ],
"series": [
{
"id": -1,
- "data": [68, 41, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52, 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23, 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43]
+ "data": [
+ 68, 41, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52,
+ 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23,
+ 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43
+ ]
},
{
"id": 0,
- "data": [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95, 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201, 99.2015, 100, 100]
+ "data": [
+ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40,
+ 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95,
+ 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201,
+ 99.2015, 100, 100
+ ]
},
{
"id": 1,
- "data": [87, 3, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71, 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5, 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53]
+ "data": [
+ 87, 3, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71,
+ 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5,
+ 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53
+ ]
},
{
"id": 2,
- "data": [84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82]
+ "data": [
+ 84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38,
+ 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38,
+ 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82
+ ]
},
{
"id": 3,
- "data": [84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42]
+ "data": [
+ 84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38,
+ 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38,
+ 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42
+ ]
},
{
"id": 4,
- "data": [77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71, 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71, 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100]
+ "data": [
+ 77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71,
+ 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71,
+ 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100
+ ]
},
{
"id": 5,
- "data": [90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1, 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0, 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80]
+ "data": [
+ 90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1,
+ 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0,
+ 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80
+ ]
},
{
"id": 6,
- "data": [72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67, 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35, 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20]
+ "data": [
+ 72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67,
+ 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35,
+ 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20
+ ]
},
{
"id": 9,
- "data": [58, 41, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52, 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23, 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43]
+ "data": [
+ 58, 41, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52,
+ 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23,
+ 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43
+ ]
},
{
"id": 10,
- "data": [0, 11, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95, 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201, 99.2015, 100, 100]
+ "data": [
+ 0, 11, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40,
+ 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95,
+ 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201,
+ 99.2015, 100, 100
+ ]
},
{
"id": 11,
- "data": [84, 13, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71, 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5, 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53]
+ "data": [
+ 84, 13, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71,
+ 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5,
+ 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53
+ ]
},
{
"id": 12,
- "data": [84, 6, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82]
+ "data": [
+ 84, 6, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5,
+ 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7,
+ 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82
+ ]
},
{
"id": 13,
- "data": [84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42]
+ "data": [
+ 84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38,
+ 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38,
+ 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42
+ ]
},
{
"id": 14,
- "data": [77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71, 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71, 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100]
+ "data": [
+ 77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71,
+ 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71,
+ 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100
+ ]
},
{
"id": 15,
- "data": [90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1, 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0, 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80]
+ "data": [
+ 90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1,
+ 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0,
+ 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80
+ ]
},
{
"id": 16,
- "data": [72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67, 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35, 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20]
+ "data": [
+ 72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67,
+ 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35,
+ 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20
+ ]
},
{
"id": 19,
- "data": [68, 40, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52, 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23, 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43]
+ "data": [
+ 68, 40, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52,
+ 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23,
+ 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43
+ ]
},
{
"id": 20,
- "data": [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95, 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201, 99.2015, 100, 100]
+ "data": [
+ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 90, 80, 70, 60, 50, 40,
+ 30, 20, 10, 0, 5, 0, 5, 0, 10, 20, 30, 40, 50, 60, 70, 80, 85, 90, 95,
+ 97.5, 98, 98.25, 98.5, 98.75, 99, 99.1, 99.15, 99.175, 99.2, 99.201,
+ 99.2015, 100, 100
+ ]
},
{
"id": 21,
- "data": [87, 3, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71, 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5, 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53]
+ "data": [
+ 87, 3, 72, 24, 37, 12, 51, 63, 95, 45, 9, 33, 32, 80, 96, 41, 2, 71,
+ 4, 90, 36, 53, 16, 17, 5, 17, 21, 74, 49, 52, 81, 67, 28, 7, 41, 5,
+ 13, 74, 34, 47, 7, 97, 54, 62, 42, 42, 95, 22, 38, 53
+ ]
},
{
"id": 22,
- "data": [84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82]
+ "data": [
+ 84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38,
+ 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38,
+ 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 82
+ ]
},
{
"id": 23,
- "data": [84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38, 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38, 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42]
+ "data": [
+ 84, 60, 16, 94, 7, 8, 88, 89, 24, 34, 38, 59, 59, 64, 0, 48, 91, 38,
+ 5, 93, 16, 71, 67, 7, 4, 68, 66, 54, 73, 91, 35, 28, 6, 42, 51, 5, 38,
+ 7, 85, 99, 17, 38, 13, 46, 29, 69, 94, 10, 62, 42
+ ]
},
{
"id": 24,
- "data": [77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71, 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71, 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100]
+ "data": [
+ 77, 30, 96, 34, 90, 77, 53, 40, 80, 67, 0, 36, 17, 16, 16, 57, 90, 71,
+ 77, 88, 70, 83, 10, 58, 34, 22, 60, 22, 44, 33, 28, 47, 41, 36, 71,
+ 61, 21, 2, 19, 16, 11, 49, 52, 68, 89, 92, 89, 92, 100, 100
+ ]
},
{
"id": 25,
- "data": [90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1, 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0, 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80]
+ "data": [
+ 90, 44, 35, 12, 92, 45, 11, 46, 91, 17, 49, 77, 4, 22, 27, 27, 17, 1,
+ 47, 50, 49, 11, 69, 42, 28, 63, 23, 29, 99, 82, 80, 32, 25, 25, 17, 0,
+ 51, 25, 9, 82, 52, 84, 42, 49, 79, 26, 12, 4, 71, 80
+ ]
},
{
"id": 26,
- "data": [72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67, 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35, 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20]
+ "data": [
+ 72, 41, 47, 35, 53, 27, 48, 46, 59, 38, 47, 51, 15, 22, 21, 52, 67,
+ 56, 47, 72, 51, 28, 67, 47, 36, 46, 42, 64, 67, 68, 51, 38, 39, 35,
+ 18, 21, 29, 18, 25, 40, 47, 57, 44, 46, 50, 32, 44, 37, 25, 20
+ ]
},
{
"id": 29,
- "data": [68, 40, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52, 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23, 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43]
+ "data": [
+ 68, 40, 47, 44, 54, 32, 54, 56, 69, 40, 28, 51, 18, 30, 26, 47, 52,
+ 49, 47, 70, 48, 35, 61, 34, 29, 44, 56, 50, 55, 61, 43, 35, 31, 23,
+ 32, 32, 25, 41, 46, 31, 50, 38, 37, 41, 60, 57, 42, 42, 63, 43
+ ]
}
]
}
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/dashboard/validatorSummaryDetails.json b/frontend/public/mock/dashboard/validatorSummaryDetails.json
index b1228bf00..072f00df5 100644
--- a/frontend/public/mock/dashboard/validatorSummaryDetails.json
+++ b/frontend/public/mock/dashboard/validatorSummaryDetails.json
@@ -193,8 +193,8 @@
"validators": [1, 213, 1245, 453, 345, 23]
},
"attestation_count": {
- "success": 0,
- "failed": 32
+ "success": 0,
+ "failed": 32
},
"attestation_efficiency": 87.1234412,
"attestation_avg_incl_dist": 12,
@@ -275,8 +275,8 @@
"validators": [1, 213, 1245, 453, 345, 23]
},
"attestation_count": {
- "success": 5111,
- "failed": 3223
+ "success": 5111,
+ "failed": 3223
},
"attestation_efficiency": 87.1234412,
"attestation_avg_incl_dist": 12,
diff --git a/frontend/public/mock/latestState.json b/frontend/public/mock/latestState.json
index 14c257442..aacf892cb 100644
--- a/frontend/public/mock/latestState.json
+++ b/frontend/public/mock/latestState.json
@@ -1,13 +1,13 @@
{
- "lastProposedSlot": 4181855,
- "currentSlot": 4181855,
- "currentEpoch": 130682,
- "currentFinalizedEpoch": 130679,
- "finalityDelay": 3,
- "syncing": false,
- "rates": {
- "EUR": 2127.51,
- "USD": 2304.85,
- "GNO": 10.46
- }
-}
\ No newline at end of file
+ "lastProposedSlot": 4181855,
+ "currentSlot": 4181855,
+ "currentEpoch": 130682,
+ "currentFinalizedEpoch": 130679,
+ "finalityDelay": 3,
+ "syncing": false,
+ "rates": {
+ "EUR": 2127.51,
+ "USD": 2304.85,
+ "GNO": 10.46
+ }
+}
diff --git a/frontend/public/mock/login.json b/frontend/public/mock/login.json
index 3a4419202..e1964b818 100644
--- a/frontend/public/mock/login.json
+++ b/frontend/public/mock/login.json
@@ -1,4 +1,4 @@
{
- "refresh_token": "mySuperCoolRefreshToken",
- "access_token": "INowHaveAccessToken"
-}
\ No newline at end of file
+ "refresh_token": "mySuperCoolRefreshToken",
+ "access_token": "INowHaveAccessToken"
+}
diff --git a/frontend/public/mock/notifications/dashboards.json b/frontend/public/mock/notifications/dashboards.json
index 0340b37ae..31658d54b 100644
--- a/frontend/public/mock/notifications/dashboards.json
+++ b/frontend/public/mock/notifications/dashboards.json
@@ -13,11 +13,7 @@
"type": "validator",
"count": 134
},
- "notification": [
- "Proposal missed",
- "Back online",
- "Foo Bar"
- ]
+ "notification": ["Proposal missed", "Back online", "Foo Bar"]
},
{
"group_id": 122,
@@ -29,11 +25,7 @@
"type": "account",
"count": 1
},
- "notification": [
- "Proposal missed",
- "Back online",
- "Foo Bar"
- ]
+ "notification": ["Proposal missed", "Back online", "Foo Bar"]
},
{
"group_id": 1,
@@ -45,11 +37,7 @@
"type": "validator",
"count": 134
},
- "notification": [
- "Proposal missed",
- "Back online",
- "Foo Bar"
- ]
+ "notification": ["Proposal missed", "Back online", "Foo Bar"]
}
]
}
diff --git a/frontend/public/mock/notifications/managementDashboard.json b/frontend/public/mock/notifications/managementDashboard.json
index 6836f61d2..eb0d14c72 100644
--- a/frontend/public/mock/notifications/managementDashboard.json
+++ b/frontend/public/mock/notifications/managementDashboard.json
@@ -28,4 +28,4 @@
"networks": [1, 10, 42161, 8453]
}
]
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/notifications/testEmail.json b/frontend/public/mock/notifications/testEmail.json
index 9e26dfeeb..0967ef424 100644
--- a/frontend/public/mock/notifications/testEmail.json
+++ b/frontend/public/mock/notifications/testEmail.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/frontend/public/mock/notifications/testPush.json b/frontend/public/mock/notifications/testPush.json
index 9e26dfeeb..0967ef424 100644
--- a/frontend/public/mock/notifications/testPush.json
+++ b/frontend/public/mock/notifications/testPush.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/frontend/public/mock/refreshToken.json b/frontend/public/mock/refreshToken.json
index 2e947bedf..605f073c3 100644
--- a/frontend/public/mock/refreshToken.json
+++ b/frontend/public/mock/refreshToken.json
@@ -1,3 +1,3 @@
{
- "access_token": "thisIsANewAccessToken"
-}
\ No newline at end of file
+ "access_token": "thisIsANewAccessToken"
+}
diff --git a/frontend/public/mock/stripe/checkout-session.json b/frontend/public/mock/stripe/checkout-session.json
index d65023209..36b563dc8 100644
--- a/frontend/public/mock/stripe/checkout-session.json
+++ b/frontend/public/mock/stripe/checkout-session.json
@@ -1,4 +1,4 @@
{
"sessionId": "thisIsNotARealSessionId",
"error": "somethign went wrong"
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/stripe/customer-portal.json b/frontend/public/mock/stripe/customer-portal.json
index 23d2acc63..695f723d7 100644
--- a/frontend/public/mock/stripe/customer-portal.json
+++ b/frontend/public/mock/stripe/customer-portal.json
@@ -1,3 +1,3 @@
{
"url": "https://stripe.com/"
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/user/dashboards.json b/frontend/public/mock/user/dashboards.json
index e63f67d81..846c63b0c 100644
--- a/frontend/public/mock/user/dashboards.json
+++ b/frontend/public/mock/user/dashboards.json
@@ -35,6 +35,6 @@
"id": "8",
"name": "The other wallets"
}
- ]
+ ]
}
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/user/me.json b/frontend/public/mock/user/me.json
index 80846bedf..7fd36499a 100644
--- a/frontend/public/mock/user/me.json
+++ b/frontend/public/mock/user/me.json
@@ -40,4 +40,4 @@
"custom_machine_alerts": true
}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/public/mock/user/me/email.json b/frontend/public/mock/user/me/email.json
index 9e26dfeeb..0967ef424 100644
--- a/frontend/public/mock/user/me/email.json
+++ b/frontend/public/mock/user/me/email.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/frontend/public/mock/user/me/password.json b/frontend/public/mock/user/me/password.json
index 9e26dfeeb..0967ef424 100644
--- a/frontend/public/mock/user/me/password.json
+++ b/frontend/public/mock/user/me/password.json
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/frontend/stores/dashboard/useUserDashboardStore.ts b/frontend/stores/dashboard/useUserDashboardStore.ts
index 0db0f3102..bb58471e0 100644
--- a/frontend/stores/dashboard/useUserDashboardStore.ts
+++ b/frontend/stores/dashboard/useUserDashboardStore.ts
@@ -1,8 +1,17 @@
import { defineStore } from 'pinia'
import { warn } from 'vue'
-import type { GetUserDashboardsResponse, UserDashboardsData, ValidatorDashboard } from '~/types/api/dashboard'
+import type {
+ GetUserDashboardsResponse,
+ UserDashboardsData,
+ ValidatorDashboard,
+} from '~/types/api/dashboard'
import type { VDBPostReturnData } from '~/types/api/validator_dashboard'
-import { type DashboardKey, type DashboardType, type CookieDashboard, COOKIE_DASHBOARD_ID } from '~/types/dashboard'
+import {
+ type DashboardKey,
+ type DashboardType,
+ type CookieDashboard,
+ COOKIE_DASHBOARD_ID,
+} from '~/types/dashboard'
import { COOKIE_KEY } from '~/types/cookie'
import { API_PATH } from '~/types/customFetch'
import type { ChainIDs } from '~/types/network'
@@ -36,7 +45,9 @@ export function useUserDashboardStore() {
async function refreshDashboards() {
if (isLoggedIn.value) {
- const res = await fetch
(API_PATH.USER_DASHBOARDS)
+ const res = await fetch(
+ API_PATH.USER_DASHBOARDS,
+ )
data.value = res.data
// add fallback names for dashboards that have no names
@@ -69,10 +80,18 @@ export function useUserDashboardStore() {
dashboardCookie.value = JSON.stringify(db)
}
- async function createValidatorDashboard(name: string, network: ChainIDs, dashboardKey?: string): Promise {
+ async function createValidatorDashboard(
+ name: string,
+ network: ChainIDs,
+ dashboardKey?: string,
+ ): Promise {
if (!isLoggedIn.value) {
// Create local Validator dashboard
- const cd: CookieDashboard = { id: COOKIE_DASHBOARD_ID.VALIDATOR, name: '', hash: dashboardKey ?? '' }
+ const cd: CookieDashboard = {
+ id: COOKIE_DASHBOARD_ID.VALIDATOR,
+ name: '',
+ hash: dashboardKey ?? '',
+ }
data.value = {
account_dashboards: dashboards.value?.account_dashboards || [],
validator_dashboards: [cd as ValidatorDashboard],
@@ -81,23 +100,39 @@ export function useUserDashboardStore() {
return cd
}
// Create user specific Validator dashboard
- const res = await fetch<{ data: VDBPostReturnData }>(API_PATH.DASHBOARD_CREATE_VALIDATOR, { body: { name, network } })
+ const res = await fetch<{ data: VDBPostReturnData }>(
+ API_PATH.DASHBOARD_CREATE_VALIDATOR,
+ { body: { name, network } },
+ )
if (res.data) {
data.value = {
account_dashboards: dashboards.value?.account_dashboards || [],
validator_dashboards: [
...(dashboards.value?.validator_dashboards || []),
- { id: res.data.id, name: res.data.name, is_archived: false, validator_count: 0, group_count: 1 },
+ {
+ id: res.data.id,
+ name: res.data.name,
+ is_archived: false,
+ validator_count: 0,
+ group_count: 1,
+ },
],
}
return res.data
}
}
- async function createAccountDashboard(name: string, dashboardKey?: string): Promise {
+ async function createAccountDashboard(
+ name: string,
+ dashboardKey?: string,
+ ): Promise {
if (!isLoggedIn.value) {
// Create local account dashboard
- const cd: CookieDashboard = { id: COOKIE_DASHBOARD_ID.ACCOUNT, name: '', hash: dashboardKey ?? '' }
+ const cd: CookieDashboard = {
+ id: COOKIE_DASHBOARD_ID.ACCOUNT,
+ name: '',
+ hash: dashboardKey ?? '',
+ }
data.value = {
validator_dashboards: dashboards.value?.validator_dashboards || [],
account_dashboards: [cd],
@@ -106,7 +141,10 @@ export function useUserDashboardStore() {
return cd
}
// Create user specific account dashboard
- const res = await fetch<{ data: VDBPostReturnData }>(API_PATH.DASHBOARD_CREATE_ACCOUNT, { body: { name } })
+ const res = await fetch<{ data: VDBPostReturnData }>(
+ API_PATH.DASHBOARD_CREATE_ACCOUNT,
+ { body: { name } },
+ )
if (res.data) {
data.value = {
validator_dashboards: dashboards.value?.validator_dashboards || [],
@@ -126,14 +164,24 @@ export function useUserDashboardStore() {
return
}
if (type === 'validator') {
- const cd: CookieDashboard = { id: COOKIE_DASHBOARD_ID.VALIDATOR, name: '', ...dashboards.value?.validator_dashboards?.[0], hash }
+ const cd: CookieDashboard = {
+ id: COOKIE_DASHBOARD_ID.VALIDATOR,
+ name: '',
+ ...dashboards.value?.validator_dashboards?.[0],
+ hash,
+ }
data.value = {
account_dashboards: dashboards.value?.account_dashboards || [],
validator_dashboards: [cd as ValidatorDashboard],
}
}
else {
- const cd: CookieDashboard = { id: COOKIE_DASHBOARD_ID.ACCOUNT, name: '', ...dashboards.value?.account_dashboards?.[0], hash }
+ const cd: CookieDashboard = {
+ id: COOKIE_DASHBOARD_ID.ACCOUNT,
+ name: '',
+ ...dashboards.value?.account_dashboards?.[0],
+ hash,
+ }
data.value = {
validator_dashboards: dashboards.value?.validator_dashboards || [],
account_dashboards: [cd],
@@ -144,7 +192,9 @@ export function useUserDashboardStore() {
function getDashboardLabel(key: DashboardKey, type: DashboardType): string {
const isValidatorDashboard = type === 'validator'
- const list = isValidatorDashboard ? dashboards.value?.validator_dashboards : dashboards.value?.account_dashboards
+ const list = isValidatorDashboard
+ ? dashboards.value?.validator_dashboards
+ : dashboards.value?.account_dashboards
const id = parseInt(key ?? '')
if (!isNaN(id)) {
const userDb = list?.find(db => db.id === id)
@@ -152,11 +202,14 @@ export function useUserDashboardStore() {
return userDb.name
}
- // in production we should not get here, but with our public api key we can also view dashboards that are not part of our list
+ // in production we should not get here, but with our public api key we
+ // can also view dashboards that are not part of our list
return `${isValidatorDashboard ? $t('dashboard.validator_dashboard') : $t('dashboard.account_dashboard')} ${id}`
}
- return isValidatorDashboard ? $t('dashboard.public_validator_dashboard') : $t('dashboard.public_account_dashboard')
+ return isValidatorDashboard
+ ? $t('dashboard.public_validator_dashboard')
+ : $t('dashboard.public_account_dashboard')
}
return {
diff --git a/frontend/stores/dashboard/useValidatorDashboardBlocksStore.ts b/frontend/stores/dashboard/useValidatorDashboardBlocksStore.ts
index 60d3a538f..95e3ae66a 100644
--- a/frontend/stores/dashboard/useValidatorDashboardBlocksStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardBlocksStore.ts
@@ -4,22 +4,30 @@ import type { DashboardKey } from '~/types/dashboard'
import type { TableQueryParams } from '~/types/datatable'
import { API_PATH } from '~/types/customFetch'
-const validatorDashboardBlocksStore = defineStore('validator_dashboard_blocks_store', () => {
- const data = ref < InternalGetValidatorDashboardBlocksResponse>()
- const query = ref < TableQueryParams>()
+const validatorDashboardBlocksStore = defineStore(
+ 'validator_dashboard_blocks_store',
+ () => {
+ const data = ref()
+ const query = ref()
- return { data, query }
-})
+ return { data, query }
+ },
+)
export function useValidatorDashboardBlocksStore() {
const { fetch } = useCustomFetch()
- const { data, query: storedQuery } = storeToRefs(validatorDashboardBlocksStore())
+ const { data, query: storedQuery } = storeToRefs(
+ validatorDashboardBlocksStore(),
+ )
const isLoading = ref(false)
const blocks = computed(() => data.value)
const query = computed(() => storedQuery.value)
- async function getBlocks(dashboardKey: DashboardKey, query?: TableQueryParams) {
+ async function getBlocks(
+ dashboardKey: DashboardKey,
+ query?: TableQueryParams,
+ ) {
if (!dashboardKey) {
data.value = undefined
isLoading.value = false
@@ -28,7 +36,12 @@ export function useValidatorDashboardBlocksStore() {
}
isLoading.value = true
storedQuery.value = query
- const res = await fetch(API_PATH.DASHBOARD_VALIDATOR_BLOCKS, undefined, { dashboardKey }, query)
+ const res = await fetch(
+ API_PATH.DASHBOARD_VALIDATOR_BLOCKS,
+ undefined,
+ { dashboardKey },
+ query,
+ )
isLoading.value = false
if (JSON.stringify(storedQuery.value) !== JSON.stringify(query)) {
diff --git a/frontend/stores/dashboard/useValidatorDashboardClDepositsStore.ts b/frontend/stores/dashboard/useValidatorDashboardClDepositsStore.ts
index 5a3551b81..740da4ec9 100644
--- a/frontend/stores/dashboard/useValidatorDashboardClDepositsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardClDepositsStore.ts
@@ -10,7 +10,8 @@ import { API_PATH } from '~/types/customFetch'
const validatorDashboardClDepositsStore = defineStore(
'validator_dashboard_cl_deposits_store',
() => {
- const data = ref()
+ const data
+ = ref()
const total = ref()
const query = ref()
diff --git a/frontend/stores/dashboard/useValidatorDashboardElDepositsStore.ts b/frontend/stores/dashboard/useValidatorDashboardElDepositsStore.ts
index bec5b8847..c83689619 100644
--- a/frontend/stores/dashboard/useValidatorDashboardElDepositsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardElDepositsStore.ts
@@ -10,7 +10,8 @@ import { API_PATH } from '~/types/customFetch'
const validatorDashboardElDepositsStore = defineStore(
'validator_dashboard_el_deposits_store',
() => {
- const data = ref()
+ const data
+ = ref()
const total = ref()
const query = ref()
diff --git a/frontend/stores/dashboard/useValidatorDashboardOverviewStore.ts b/frontend/stores/dashboard/useValidatorDashboardOverviewStore.ts
index 6e1be323d..154d3fae9 100644
--- a/frontend/stores/dashboard/useValidatorDashboardOverviewStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardOverviewStore.ts
@@ -1,6 +1,9 @@
import { defineStore } from 'pinia'
import { useAllValidatorDashboardRewardsDetailsStore } from './useValidatorDashboardRewardsDetailsStore'
-import type { VDBOverviewData, InternalGetValidatorDashboardResponse } from '~/types/api/validator_dashboard'
+import type {
+ VDBOverviewData,
+ InternalGetValidatorDashboardResponse,
+} from '~/types/api/validator_dashboard'
import type { DashboardKey } from '~/types/dashboard'
import { API_PATH } from '~/types/customFetch'
@@ -12,7 +15,8 @@ const validatorOverviewStore = defineStore('validator_overview_store', () => {
export function useValidatorDashboardOverviewStore() {
const { fetch } = useCustomFetch()
const { data } = storeToRefs(validatorOverviewStore())
- const { clearCache: clearRewardDetails } = useAllValidatorDashboardRewardsDetailsStore()
+ const { clearCache: clearRewardDetails }
+ = useAllValidatorDashboardRewardsDetailsStore()
const overview = computed(() => data.value)
@@ -22,7 +26,11 @@ export function useValidatorDashboardOverviewStore() {
return
}
try {
- const res = await fetch(API_PATH.DASHBOARD_OVERVIEW, undefined, { dashboardKey: key })
+ const res = await fetch(
+ API_PATH.DASHBOARD_OVERVIEW,
+ undefined,
+ { dashboardKey: key },
+ )
data.value = res.data
clearOverviewDependentCaches()
@@ -45,7 +53,13 @@ export function useValidatorDashboardOverviewStore() {
if (!overview.value?.validators) {
return false
}
- return !!overview.value.validators.online || !!overview.value.validators.exited || !!overview.value.validators.offline || !!overview.value.validators.pending || !!overview.value.validators.slashed
+ return (
+ !!overview.value.validators.online
+ || !!overview.value.validators.exited
+ || !!overview.value.validators.offline
+ || !!overview.value.validators.pending
+ || !!overview.value.validators.slashed
+ )
})
const validatorCount = computed(() => {
@@ -55,7 +69,13 @@ export function useValidatorDashboardOverviewStore() {
if (!overview.value.validators) {
return 0
}
- return overview.value.validators.exited + overview.value.validators.offline + overview.value.validators.online + overview.value.validators.pending + overview.value.validators.slashed
+ return (
+ overview.value.validators.exited
+ + overview.value.validators.offline
+ + overview.value.validators.online
+ + overview.value.validators.pending
+ + overview.value.validators.slashed
+ )
})
return { overview, refreshOverview, hasValidators, validatorCount }
diff --git a/frontend/stores/dashboard/useValidatorDashboardRewardsDetailsStore.ts b/frontend/stores/dashboard/useValidatorDashboardRewardsDetailsStore.ts
index 972569a0b..87fe94410 100644
--- a/frontend/stores/dashboard/useValidatorDashboardRewardsDetailsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardRewardsDetailsStore.ts
@@ -1,14 +1,24 @@
import { defineStore } from 'pinia'
-import type { VDBGroupRewardsData, InternalGetValidatorDashboardGroupRewardsResponse } from '~/types/api/validator_dashboard'
+import type {
+ VDBGroupRewardsData,
+ InternalGetValidatorDashboardGroupRewardsResponse,
+} from '~/types/api/validator_dashboard'
import type { DashboardKey } from '~/types/dashboard'
import { API_PATH } from '~/types/customFetch'
-const validatorDashboardRewardsDetailsStore = defineStore('validator_dashboard_rewards_details_store', () => {
- const data = ref < Record>({})
- return { data }
-})
-
-export const useValidatorDashboardRewardsDetailsStore = (dashboardKey: DashboardKey, groupId: number, epoch: number) => {
+const validatorDashboardRewardsDetailsStore = defineStore(
+ 'validator_dashboard_rewards_details_store',
+ () => {
+ const data = ref>({})
+ return { data }
+ },
+)
+
+export const useValidatorDashboardRewardsDetailsStore = (
+ dashboardKey: DashboardKey,
+ groupId: number,
+ epoch: number,
+) => {
const { fetch } = useCustomFetch()
const { data } = storeToRefs(validatorDashboardRewardsDetailsStore())
@@ -17,11 +27,16 @@ export const useValidatorDashboardRewardsDetailsStore = (dashboardKey: Dashboard
}
async function getDetails() {
- // Rewards of an epoch will only change when validators changed (see useValidatorDashboardOverviewStore), so we can cache data
+ // Rewards of an epoch will only change when validators changed
+ // (see useValidatorDashboardOverviewStore), so we can cache data
if (data.value[getKey()]) {
return data.value[getKey()]
}
- const res = await fetch(API_PATH.DASHBOARD_VALIDATOR_REWARDS_DETAILS, undefined, { dashboardKey, groupId, epoch })
+ const res = await fetch(
+ API_PATH.DASHBOARD_VALIDATOR_REWARDS_DETAILS,
+ undefined,
+ { dashboardKey, groupId, epoch },
+ )
data.value = { ...data.value, [getKey()]: res.data }
return res.data
}
diff --git a/frontend/stores/dashboard/useValidatorDashboardRewardsStore.ts b/frontend/stores/dashboard/useValidatorDashboardRewardsStore.ts
index e4da7c4a2..355388f5f 100644
--- a/frontend/stores/dashboard/useValidatorDashboardRewardsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardRewardsStore.ts
@@ -5,16 +5,21 @@ import type { TableQueryParams } from '~/types/datatable'
import { DAHSHBOARDS_NEXT_EPOCH_ID } from '~/types/dashboard'
import { API_PATH } from '~/types/customFetch'
-const validatorDashboardRewardsStore = defineStore('validator_dashboard_rewards_store', () => {
- const data = ref < InternalGetValidatorDashboardRewardsResponse>()
- const query = ref < TableQueryParams>()
+const validatorDashboardRewardsStore = defineStore(
+ 'validator_dashboard_rewards_store',
+ () => {
+ const data = ref()
+ const query = ref()
- return { data, query }
-})
+ return { data, query }
+ },
+)
export function useValidatorDashboardRewardsStore() {
const { fetch } = useCustomFetch()
- const { data, query: storedQuery } = storeToRefs(validatorDashboardRewardsStore())
+ const { data, query: storedQuery } = storeToRefs(
+ validatorDashboardRewardsStore(),
+ )
const isLoading = ref(false)
const { slotViz } = useValidatorSlotVizStore()
@@ -22,7 +27,10 @@ export function useValidatorDashboardRewardsStore() {
const rewards = computed(() => data.value)
const query = computed(() => storedQuery.value)
- async function getRewards(dashboardKey: DashboardKey, query?: TableQueryParams) {
+ async function getRewards(
+ dashboardKey: DashboardKey,
+ query?: TableQueryParams,
+ ) {
if (!dashboardKey) {
data.value = undefined
isLoading.value = false
@@ -31,7 +39,12 @@ export function useValidatorDashboardRewardsStore() {
}
isLoading.value = true
storedQuery.value = query
- const res = await fetch(API_PATH.DASHBOARD_VALIDATOR_REWARDS, undefined, { dashboardKey }, query)
+ const res = await fetch(
+ API_PATH.DASHBOARD_VALIDATOR_REWARDS,
+ undefined,
+ { dashboardKey },
+ query,
+ )
isLoading.value = false
if (JSON.stringify(storedQuery.value) !== JSON.stringify(query)) {
@@ -44,7 +57,15 @@ export function useValidatorDashboardRewardsStore() {
const nextEpoch = slotViz.value?.findLast(e => e.epoch > searchEpoch)
if (nextEpoch) {
- res.data = [{ epoch: nextEpoch.epoch, group_id: DAHSHBOARDS_NEXT_EPOCH_ID, duty: { attestation: 0, proposal: 0, slashing: 0, sync: 0 }, reward: { cl: '0', el: '0' } }, ...res.data]
+ res.data = [
+ {
+ epoch: nextEpoch.epoch,
+ group_id: DAHSHBOARDS_NEXT_EPOCH_ID,
+ duty: { attestation: 0, proposal: 0, slashing: 0, sync: 0 },
+ reward: { cl: '0', el: '0' },
+ },
+ ...res.data,
+ ]
}
}
diff --git a/frontend/stores/dashboard/useValidatorDashboardSummaryDetailsStore.ts b/frontend/stores/dashboard/useValidatorDashboardSummaryDetailsStore.ts
index ce8f132a7..f835986bc 100644
--- a/frontend/stores/dashboard/useValidatorDashboardSummaryDetailsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardSummaryDetailsStore.ts
@@ -1,18 +1,29 @@
import { defineStore } from 'pinia'
-import type { VDBGroupSummaryData, InternalGetValidatorDashboardGroupSummaryResponse } from '~/types/api/validator_dashboard'
+import type {
+ VDBGroupSummaryData,
+ InternalGetValidatorDashboardGroupSummaryResponse,
+} from '~/types/api/validator_dashboard'
import type { DashboardKey } from '~/types/dashboard'
import { API_PATH } from '~/types/customFetch'
import type { SummaryTimeFrame } from '~/types/dashboard/summary'
-const validatorDashboardSummaryDetailsStore = defineStore('validator_dashboard_sumary_details_store', () => {
- const data = ref < Record>({})
- const timeFrame = ref < SummaryTimeFrame>()
- return { data, timeFrame }
-})
+const validatorDashboardSummaryDetailsStore = defineStore(
+ 'validator_dashboard_sumary_details_store',
+ () => {
+ const data = ref>({})
+ const timeFrame = ref()
+ return { data, timeFrame }
+ },
+)
-export function useValidatorDashboardSummaryDetailsStore(dashboardKey: DashboardKey, groupId: number) {
+export function useValidatorDashboardSummaryDetailsStore(
+ dashboardKey: DashboardKey,
+ groupId: number,
+) {
const { fetch } = useCustomFetch()
- const { data, timeFrame: storeTimeFrame } = storeToRefs(validatorDashboardSummaryDetailsStore())
+ const { data, timeFrame: storeTimeFrame } = storeToRefs(
+ validatorDashboardSummaryDetailsStore(),
+ )
function getKey() {
return `${dashboardKey}_${groupId}`
@@ -26,7 +37,11 @@ export function useValidatorDashboardSummaryDetailsStore(dashboardKey: Dashboard
data.value = {}
storeTimeFrame.value = timeFrame
}
- const res = await fetch(API_PATH.DASHBOARD_SUMMARY_DETAILS, { query: { period: timeFrame } }, { dashboardKey, groupId })
+ const res = await fetch(
+ API_PATH.DASHBOARD_SUMMARY_DETAILS,
+ { query: { period: timeFrame } },
+ { dashboardKey, groupId },
+ )
data.value = { ...data.value, [getKey()]: res.data }
return res.data
}
diff --git a/frontend/stores/dashboard/useValidatorDashboardSummaryStore.ts b/frontend/stores/dashboard/useValidatorDashboardSummaryStore.ts
index 73a85bd2d..0bc1a0ead 100644
--- a/frontend/stores/dashboard/useValidatorDashboardSummaryStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardSummaryStore.ts
@@ -5,23 +5,32 @@ import type { TableQueryParams } from '~/types/datatable'
import { API_PATH } from '~/types/customFetch'
import type { SummaryTimeFrame } from '~/types/dashboard/summary'
-const validatorDashboardSummaryStore = defineStore('validator_dashboard_sumary_store', () => {
- const data = ref < InternalGetValidatorDashboardSummaryResponse>()
- const query = ref < TableQueryParams>()
+const validatorDashboardSummaryStore = defineStore(
+ 'validator_dashboard_sumary_store',
+ () => {
+ const data = ref()
+ const query = ref()
- return { data, query }
-})
+ return { data, query }
+ },
+)
export function useValidatorDashboardSummaryStore() {
const { fetch } = useCustomFetch()
- const { data, query: storedQuery } = storeToRefs(validatorDashboardSummaryStore())
+ const { data, query: storedQuery } = storeToRefs(
+ validatorDashboardSummaryStore(),
+ )
const isLoading = ref(false)
const summary = computed(() => data.value)
const query = computed(() => storedQuery.value)
- async function getSummary(dashboardKey: DashboardKey, timeFrame: SummaryTimeFrame, query?: TableQueryParams) {
+ async function getSummary(
+ dashboardKey: DashboardKey,
+ timeFrame: SummaryTimeFrame,
+ query?: TableQueryParams,
+ ) {
if (!dashboardKey) {
data.value = undefined
isLoading.value = false
@@ -31,7 +40,12 @@ export function useValidatorDashboardSummaryStore() {
isLoading.value = true
storedQuery.value = query
- const res = await fetch(API_PATH.DASHBOARD_SUMMARY, { query: { period: timeFrame } }, { dashboardKey }, query)
+ const res = await fetch(
+ API_PATH.DASHBOARD_SUMMARY,
+ { query: { period: timeFrame } },
+ { dashboardKey },
+ query,
+ )
isLoading.value = false
if (JSON.stringify(storedQuery.value) !== JSON.stringify(query)) {
return // in case some query params change while loading
diff --git a/frontend/stores/dashboard/useValidatorDashboardWithdrawalsStore.ts b/frontend/stores/dashboard/useValidatorDashboardWithdrawalsStore.ts
index e21bfb6eb..e5f86a453 100644
--- a/frontend/stores/dashboard/useValidatorDashboardWithdrawalsStore.ts
+++ b/frontend/stores/dashboard/useValidatorDashboardWithdrawalsStore.ts
@@ -1,20 +1,30 @@
import { defineStore } from 'pinia'
-import type { InternalGetValidatorDashboardWithdrawalsResponse, InternalGetValidatorDashboardTotalWithdrawalsResponse } from '~/types/api/validator_dashboard'
+import type {
+ InternalGetValidatorDashboardWithdrawalsResponse,
+ InternalGetValidatorDashboardTotalWithdrawalsResponse,
+} from '~/types/api/validator_dashboard'
import type { DashboardKey } from '~/types/dashboard'
import type { TableQueryParams } from '~/types/datatable'
import { API_PATH } from '~/types/customFetch'
-const validatorDashboardWithdrawalsStore = defineStore('validator_dashboard_withdrawals', () => {
- const data = ref()
- const total = ref()
- const query = ref()
+const validatorDashboardWithdrawalsStore = defineStore(
+ 'validator_dashboard_withdrawals',
+ () => {
+ const data = ref()
+ const total = ref()
+ const query = ref()
- return { data, query, total }
-})
+ return { data, query, total }
+ },
+)
export function useValidatorDashboardWithdrawalsStore() {
const { fetch } = useCustomFetch()
- const { data, total, query: storedQuery } = storeToRefs(validatorDashboardWithdrawalsStore())
+ const {
+ data,
+ total,
+ query: storedQuery,
+ } = storeToRefs(validatorDashboardWithdrawalsStore())
const withdrawals = computed(() => data.value)
const totalAmount = computed(() => total.value)
@@ -22,7 +32,10 @@ export function useValidatorDashboardWithdrawalsStore() {
const isLoadingWithdrawals = ref(false)
const isLoadingTotal = ref(false)
- async function getWithdrawals(dashboardKey: DashboardKey, query?: TableQueryParams) {
+ async function getWithdrawals(
+ dashboardKey: DashboardKey,
+ query?: TableQueryParams,
+ ) {
if (!dashboardKey) {
data.value = undefined
isLoadingWithdrawals.value = false
@@ -32,7 +45,12 @@ export function useValidatorDashboardWithdrawalsStore() {
storedQuery.value = query
isLoadingWithdrawals.value = true
- const res = await fetch(API_PATH.DASHBOARD_VALIDATOR_WITHDRAWALS, undefined, { dashboardKey }, query)
+ const res = await fetch(
+ API_PATH.DASHBOARD_VALIDATOR_WITHDRAWALS,
+ undefined,
+ { dashboardKey },
+ query,
+ )
if (JSON.stringify(storedQuery.value) !== JSON.stringify(query)) {
return // in case some query params change while loading
@@ -51,11 +69,24 @@ export function useValidatorDashboardWithdrawalsStore() {
}
isLoadingTotal.value = true
- const res = await fetch(API_PATH.DASHBOARD_VALIDATOR_TOTAL_WITHDRAWALS, undefined, { dashboardKey })
+ const res
+ = await fetch(
+ API_PATH.DASHBOARD_VALIDATOR_TOTAL_WITHDRAWALS,
+ undefined,
+ { dashboardKey },
+ )
isLoadingTotal.value = false
total.value = res?.data?.total_amount
return total.value
}
- return { totalAmount, getTotalAmount, withdrawals, query, getWithdrawals, isLoadingTotal, isLoadingWithdrawals }
+ return {
+ totalAmount,
+ getTotalAmount,
+ withdrawals,
+ query,
+ getWithdrawals,
+ isLoadingTotal,
+ isLoadingWithdrawals,
+ }
}
diff --git a/frontend/stores/dashboard/useValidatorSlotVizStore.ts b/frontend/stores/dashboard/useValidatorSlotVizStore.ts
index 1772c895d..59e4ff44a 100644
--- a/frontend/stores/dashboard/useValidatorSlotVizStore.ts
+++ b/frontend/stores/dashboard/useValidatorSlotVizStore.ts
@@ -1,5 +1,8 @@
import { defineStore } from 'pinia'
-import type { SlotVizEpoch, InternalGetValidatorDashboardSlotVizResponse } from '~/types/api/slot_viz'
+import type {
+ SlotVizEpoch,
+ InternalGetValidatorDashboardSlotVizResponse,
+} from '~/types/api/slot_viz'
import type { DashboardKey } from '~/types/dashboard'
import { API_PATH } from '~/types/customFetch'
@@ -19,7 +22,11 @@ export function useValidatorSlotVizStore() {
if (groups?.length) {
query = { group_ids: groups.join(',') }
}
- const res = await fetch(API_PATH.DASHBOARD_SLOTVIZ, { headers: {}, query }, { dashboardKey: dashboardKey || 'MQ' })
+ const res = await fetch(
+ API_PATH.DASHBOARD_SLOTVIZ,
+ { headers: {}, query },
+ { dashboardKey: dashboardKey || 'MQ' },
+ )
// We use this hacky solution as we don't have an api endpoint to load a slot viz without validators
// So we load it for a small public dashboard and then remove the validator informations from it.
@@ -30,8 +37,7 @@ export function useValidatorSlotVizStore() {
slot: s.slot,
status: s.status,
})),
- }),
- )
+ }))
}
else {
data.value = res.data
diff --git a/frontend/stores/notifications/useNotificationsDashboardStore.ts b/frontend/stores/notifications/useNotificationsDashboardStore.ts
index b247e9a58..26b89773c 100644
--- a/frontend/stores/notifications/useNotificationsDashboardStore.ts
+++ b/frontend/stores/notifications/useNotificationsDashboardStore.ts
@@ -3,23 +3,42 @@ import { API_PATH } from '~/types/customFetch'
import type { TableQueryParams } from '~/types/datatable'
import type { NotifcationDashboardResponse } from '~/types/notifications/dashboards'
-const notificationsDashboardStore = defineStore('notifications-dashboard-store', () => {
- const data = ref()
- return { data }
-})
+const notificationsDashboardStore = defineStore(
+ 'notifications-dashboard-store',
+ () => {
+ const data = ref()
+ return { data }
+ },
+)
export function useNotificationsDashboardStore() {
const { isLoggedIn } = useUserStore()
const { fetch } = useCustomFetch()
const { data } = storeToRefs(notificationsDashboardStore())
- const { query, pendingQuery, cursor, pageSize, onSort, setCursor, setPageSize, setSearch, setStoredQuery, isStoredQuery } = useTableQuery({ limit: 10, sort: 'dashboard:desc' }, 10)
+ const {
+ query,
+ pendingQuery,
+ cursor,
+ pageSize,
+ onSort,
+ setCursor,
+ setPageSize,
+ setSearch,
+ setStoredQuery,
+ isStoredQuery,
+ } = useTableQuery({ limit: 10, sort: 'dashboard:desc' }, 10)
const isLoading = ref(false)
async function loadNotificationsDashboards(q: TableQueryParams) {
isLoading.value = true
setStoredQuery(q)
- const result = await fetch(API_PATH.NOTIFICATIONS_DASHBOARDS, undefined, undefined, q)
+ const result = await fetch(
+ API_PATH.NOTIFICATIONS_DASHBOARDS,
+ undefined,
+ undefined,
+ q,
+ )
isLoading.value = false
if (!isStoredQuery(q)) {
@@ -34,11 +53,15 @@ export function useNotificationsDashboardStore() {
return data.value
})
- watch(query, (q) => {
- if (q) {
- isLoggedIn.value && loadNotificationsDashboards(q)
- }
- }, { immediate: true })
+ watch(
+ query,
+ (q) => {
+ if (q) {
+ isLoggedIn.value && loadNotificationsDashboards(q)
+ }
+ },
+ { immediate: true },
+ )
return {
cursor,
diff --git a/frontend/stores/useAdConfigurationStore.ts b/frontend/stores/useAdConfigurationStore.ts
index a8f11eaf9..a55124189 100644
--- a/frontend/stores/useAdConfigurationStore.ts
+++ b/frontend/stores/useAdConfigurationStore.ts
@@ -3,7 +3,7 @@ import type { AdConfiguration } from '~/types/adConfiguration'
import { API_PATH } from '~/types/customFetch'
const adConfigurationStore = defineStore('ad_configuration_store', () => {
- const data = ref< Record>({})
+ const data = ref>({})
return { data }
})
@@ -15,7 +15,11 @@ export function useAdConfigurationStore() {
async function refreshAdConfigs(route: string) {
const keys = ['global', route].join(',')
- const res = await fetch(API_PATH.AD_CONFIGURATIONs, undefined, { keys })
+ const res = await fetch(
+ API_PATH.AD_CONFIGURATIONs,
+ undefined,
+ { keys },
+ )
const newConfigurations: Record = {}
res.forEach((config) => {
if (!newConfigurations[config.key]) {
diff --git a/frontend/stores/useLatestStateStore.ts b/frontend/stores/useLatestStateStore.ts
index 437370537..11fe728f7 100644
--- a/frontend/stores/useLatestStateStore.ts
+++ b/frontend/stores/useLatestStateStore.ts
@@ -1,5 +1,8 @@
import { defineStore } from 'pinia'
-import type { InternalGetLatestStateResponse, LatestStateData } from '~/types/api/latest_state'
+import type {
+ InternalGetLatestStateResponse,
+ LatestStateData,
+} from '~/types/api/latest_state'
import { API_PATH } from '~/types/customFetch'
const latestStateStore = defineStore('latest_state_store', () => {
@@ -15,7 +18,9 @@ export function useLatestStateStore() {
async function refreshLatestState(): Promise {
try {
- const res = await fetch(API_PATH.LATEST_STATE)
+ const res = await fetch(
+ API_PATH.LATEST_STATE,
+ )
if (!res.data) {
return undefined
}
diff --git a/frontend/stores/useNetworkStore.ts b/frontend/stores/useNetworkStore.ts
index 428fc84ef..ec916acfe 100644
--- a/frontend/stores/useNetworkStore.ts
+++ b/frontend/stores/useNetworkStore.ts
@@ -14,7 +14,9 @@ const store = defineStore('network-store', () => {
currentNetwork: networkTs.ChainIDs
}>({
availableNetworks: [networkTs.ChainIDs.Ethereum],
- currentNetwork: networkTs.ChainIDs.Any, // this impossible value by defaut must be kept, it ensures that the `computed` of `currentNetwork` selects the network of highest priority when `setCurrentNetwork()` has not been called yet
+ // this impossible value by defaut must be kept, it ensures that the `computed`
+ // of `currentNetwork` selects the network of highest priority when `setCurrentNetwork()` has not been called yet
+ currentNetwork: networkTs.ChainIDs.Any,
})
return { data }
})
@@ -28,11 +30,15 @@ export function useNetworkStore() {
async function loadAvailableNetworks(): Promise {
try {
const { fetch } = useCustomFetch()
- const response = await fetch>(API_PATH.AVAILABLE_NETWORKS)
+ const response = await fetch>(
+ API_PATH.AVAILABLE_NETWORKS,
+ )
if (!response.data || !response.data.length) {
return false
}
- data.value.availableNetworks = networkTs.sortChainIDsByPriority(response.data.map(apiInfo => apiInfo.chain_id))
+ data.value.availableNetworks = networkTs.sortChainIDsByPriority(
+ response.data.map(apiInfo => apiInfo.chain_id),
+ )
return true
}
catch {
@@ -41,12 +47,19 @@ export function useNetworkStore() {
}
const availableNetworks = computed(() => data.value.availableNetworks)
- const currentNetwork = computed(() => availableNetworks.value.includes(data.value.currentNetwork) ? data.value.currentNetwork : availableNetworks.value[0])
+ const currentNetwork = computed(() =>
+ availableNetworks.value.includes(data.value.currentNetwork)
+ ? data.value.currentNetwork
+ : availableNetworks.value[0],
+ )
const networkInfo = computed(() => networkTs.ChainInfo[currentNetwork.value])
function isNetworkDisabled(chainId: networkTs.ChainIDs): boolean {
// TODO: return `false` for everything once we are ready
- return !useRuntimeConfig().public.showInDevelopment && chainId !== currentNetwork.value
+ return (
+ !useRuntimeConfig().public.showInDevelopment
+ && chainId !== currentNetwork.value
+ )
}
function setCurrentNetwork(chainId: networkTs.ChainIDs) {
diff --git a/frontend/stores/useProductsStore.ts b/frontend/stores/useProductsStore.ts
index 78716fc96..f66fa77cc 100644
--- a/frontend/stores/useProductsStore.ts
+++ b/frontend/stores/useProductsStore.ts
@@ -1,10 +1,17 @@
import { defineStore } from 'pinia'
-import type { InternalGetProductSummaryResponse, ProductSummary } from '~/types/api/user'
+import type {
+ InternalGetProductSummaryResponse,
+ ProductSummary,
+} from '~/types/api/user'
import { API_PATH } from '~/types/customFetch'
-import { ProductCategoryPremium, ProductStoreAndroidPlaystore, ProductStoreIosAppstore } from '~/types/api/user'
+import {
+ ProductCategoryPremium,
+ ProductStoreAndroidPlaystore,
+ ProductStoreIosAppstore,
+} from '~/types/api/user'
const productsStore = defineStore('products_store', () => {
- const data = ref ()
+ const data = ref()
return { data }
})
@@ -17,16 +24,25 @@ export function useProductsStore() {
const products = computed(() => data.value)
const bestPremiumProduct = computed(() => {
- return data.value?.premium_products.reduce((max, product) => (product.price_per_year_eur > max.price_per_year_eur ? product : max), data.value.premium_products[0])
+ return data.value?.premium_products.reduce(
+ (max, product) =>
+ product.price_per_year_eur > max.price_per_year_eur ? product : max,
+ data.value.premium_products[0],
+ )
})
const currentPremiumSubscription = computed(() => {
- return user.value?.subscriptions?.find(sub => sub.product_category === ProductCategoryPremium)
+ return user.value?.subscriptions?.find(
+ sub => sub.product_category === ProductCategoryPremium,
+ )
})
const isPremiumSubscribedViaApp = computed(() => {
const store = currentPremiumSubscription.value?.product_store
- return (store === ProductStoreAndroidPlaystore || store === ProductStoreIosAppstore)
+ return (
+ store === ProductStoreAndroidPlaystore
+ || store === ProductStoreIosAppstore
+ )
})
async function getProducts() {
@@ -34,11 +50,19 @@ export function useProductsStore() {
return data.value
}
- const res = await fetch(API_PATH.PRODUCT_SUMMARY)
+ const res = await fetch(
+ API_PATH.PRODUCT_SUMMARY,
+ )
data.value = res.data
return res
}
- return { products, getProducts, bestPremiumProduct, currentPremiumSubscription, isPremiumSubscribedViaApp }
+ return {
+ products,
+ getProducts,
+ bestPremiumProduct,
+ currentPremiumSubscription,
+ isPremiumSubscribedViaApp,
+ }
}
diff --git a/frontend/stores/useUserStore.ts b/frontend/stores/useUserStore.ts
index 0be2ae10d..ca66bc1d2 100644
--- a/frontend/stores/useUserStore.ts
+++ b/frontend/stores/useUserStore.ts
@@ -29,7 +29,13 @@ export function useUserStore() {
async function getUser(): Promise {
try {
- const res = await fetch(API_PATH.USER, undefined, undefined, undefined, true)
+ const res = await fetch(
+ API_PATH.USER,
+ undefined,
+ undefined,
+ undefined,
+ true,
+ )
setUser(res.data)
return res.data
}
diff --git a/frontend/types/currencies.ts b/frontend/types/currencies.ts
index cf1c1ba00..bc33058da 100644
--- a/frontend/types/currencies.ts
+++ b/frontend/types/currencies.ts
@@ -1,11 +1,28 @@
-const FiatCurrencies = ['AUD', 'CAD', 'CNY', 'EUR', 'GBP', 'JPY', 'USD', 'RUB'] as const
-type FiatCurrency = typeof FiatCurrencies[number]
+const FiatCurrencies = [
+ 'AUD',
+ 'CAD',
+ 'CNY',
+ 'EUR',
+ 'GBP',
+ 'JPY',
+ 'USD',
+ 'RUB',
+] as const
+type FiatCurrency = (typeof FiatCurrencies)[number]
const CryptoCurrencies = ['ETH', 'GNO', 'DAI', 'xDAI'] as const
-type CryptoCurrency = typeof CryptoCurrencies[number]
+type CryptoCurrency = (typeof CryptoCurrencies)[number]
const Native = 'NAT' as const
type Native = typeof Native
type Currency = FiatCurrency | CryptoCurrency | Native
type CryptoUnits = 'MAIN' | 'GWEI' | 'WEI'
-export { type Currency, type CryptoUnits, type CryptoCurrency, type FiatCurrency, CryptoCurrencies, FiatCurrencies, Native }
+export {
+ type Currency,
+ type CryptoUnits,
+ type CryptoCurrency,
+ type FiatCurrency,
+ CryptoCurrencies,
+ FiatCurrencies,
+ Native,
+}
diff --git a/frontend/types/customFetch.ts b/frontend/types/customFetch.ts
index 4f28a06a2..c2b15fa79 100644
--- a/frontend/types/customFetch.ts
+++ b/frontend/types/customFetch.ts
@@ -1,4 +1,8 @@
-import { simulateAPIresponseForTheSearchBar, simulateAPIresponseAboutNetworkList, mockManageNotificationsGeneral } from '~/utils/mock'
+import {
+ simulateAPIresponseForTheSearchBar,
+ simulateAPIresponseAboutNetworkList,
+ mockManageNotificationsGeneral,
+} from '~/utils/mock'
export enum API_PATH {
AD_CONFIGURATIONs = '/adConfigurations',
@@ -71,7 +75,8 @@ type MappingData = {
export const mapping: Record = {
[API_PATH.DASHBOARD_VALIDATOR_MANAGEMENT]: {
path: 'validator-dashboards/{dashboard_id}/validators',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/validators`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/validators`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_BLOCKS]: {
@@ -81,12 +86,14 @@ export const mapping: Record = {
},
[API_PATH.DASHBOARD_VALIDATOR_WITHDRAWALS]: {
path: 'validator-dashboards/{dashboard_id}/withdrawals',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/withdrawals`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/withdrawals`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_TOTAL_WITHDRAWALS]: {
path: 'validator-dashboards/{dashboard_id}/total-withdrawals',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/total-withdrawals`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/total-withdrawals`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_GROUPS]: {
@@ -97,7 +104,8 @@ export const mapping: Record = {
},
[API_PATH.DASHBOARD_VALIDATOR_GROUP_MODIFY]: {
path: 'validator-dashboards/{dashboard_id}/groups/{group_id}',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}`,
mock: false,
method: 'PUT', // can be 'DELETE' = delete group or 'PUT' = modify group
},
@@ -165,64 +173,76 @@ export const mapping: Record = {
},
[API_PATH.DASHBOARD_VALIDATOR_CREATE_PUBLIC_ID]: {
path: '/validator-dashboards/{dashboardKey}/public-ids',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/public-ids`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/public-ids`,
mock: false,
method: 'POST',
},
[API_PATH.DASHBOARD_VALIDATOR_EDIT_PUBLIC_ID]: {
path: '/validator-dashboards/{dashboardKey}/public-ids/{publicId}',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/public-ids/${values?.publicId}`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/public-ids/${values?.publicId}`,
mock: false,
method: 'PUT',
},
[API_PATH.DASHBOARD_SUMMARY_DETAILS]: {
path: '/validator-dashboards/{dashboardKey}/groups/{group_id}/summary',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}/summary`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}/summary`,
mock: false,
},
[API_PATH.DASHBOARD_SUMMARY]: {
path: '/validator-dashboards/{dashboardKey}/summary',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/summary`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/summary`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_REWARDS_CHART]: {
path: '/validator-dashboards/{dashboardKey}/rewards-chart',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/rewards-chart`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/rewards-chart`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_REWARDS_DETAILS]: {
path: '/validator-dashboards/{dashboardKey}/groups/{group_id}/rewards',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}/rewards/${values?.epoch}`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/groups/${values?.groupId}/rewards/${values?.epoch}`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_REWARDS]: {
path: '/validator-dashboards/{dashboardKey}/rewards',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/rewards`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/rewards`,
mock: false,
},
[API_PATH.DASHBOARD_EL_DEPOSITS]: {
path: '/validator-dashboards/{dashboard_id}/execution-layer-deposits',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/execution-layer-deposits`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/execution-layer-deposits`,
mock: false,
},
[API_PATH.DASHBOARD_EL_DEPOSITS_TOTAL]: {
path: '/validator-dashboards/{dashboard_id}/total-execution-layer-deposits',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/total-execution-layer-deposits`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/total-execution-layer-deposits`,
mock: false,
},
[API_PATH.DASHBOARD_CL_DEPOSITS]: {
path: '/validator-dashboards/{dashboard_id}/consensus-layer-deposits',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/consensus-layer-deposits`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/consensus-layer-deposits`,
mock: false,
},
[API_PATH.DASHBOARD_CL_DEPOSITS_TOTAL]: {
path: '/validator-dashboards/{dashboard_id}/total-consensus-layer-deposits',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/total-consensus-layer-deposits`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/total-consensus-layer-deposits`,
mock: false,
},
[API_PATH.DASHBOARD_SUMMARY_CHART]: {
path: '/validator-dashboards/{dashboardKey}/summary-chart?',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/summary-chart`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/summary-chart`,
mock: false,
},
[API_PATH.DASHBOARD_OVERVIEW]: {
@@ -232,7 +252,8 @@ export const mapping: Record = {
},
[API_PATH.DASHBOARD_SLOTVIZ]: {
path: '/validator-dashboards/{dashboardKey}/slot-viz',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/slot-viz`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/slot-viz`,
mock: false,
},
[API_PATH.GET_NOTIFICATIONS_SETTINGS_DASHBOARD]: {
@@ -256,12 +277,14 @@ export const mapping: Record = {
},
[API_PATH.DASHBOARD_VALIDATOR_EPOCH_DUTY]: {
path: '/validator-dashboards/{dashboard_id}/duties/{epoch}:',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/duties/${values?.epoch}`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/duties/${values?.epoch}`,
mock: false,
},
[API_PATH.DASHBOARD_VALIDATOR_INDICES]: {
path: '/validator-dashboards/{dashboard_id}/summary/validators',
- getPath: values => `/validator-dashboards/${values?.dashboardKey}/summary/validators`,
+ getPath: values =>
+ `/validator-dashboards/${values?.dashboardKey}/summary/validators`,
mock: false,
},
[API_PATH.NOTIFICATIONS_DASHBOARDS]: {
@@ -316,7 +339,8 @@ export const mapping: Record = {
},
[API_PATH.SAVE_DASHBOARDS_SETTINGS]: {
path: '/users/me/notifications/settings/{for}-dashboards/{dashboard_key}/groups/{group_id}',
- getPath: values => `/users/me/notifications/settings/${values?.for}-dashboards/${values?.dashboardKey}/groups/${values?.groupId}`,
+ getPath: values =>
+ `/users/me/notifications/settings/${values?.for}-dashboards/${values?.dashboardKey}/groups/${values?.groupId}`,
method: 'POST',
mock: false,
},
diff --git a/frontend/types/dashboard/slotViz.ts b/frontend/types/dashboard/slotViz.ts
index 2b86830f8..e046ad471 100644
--- a/frontend/types/dashboard/slotViz.ts
+++ b/frontend/types/dashboard/slotViz.ts
@@ -1,2 +1,12 @@
-export type SlotVizCategories = 'attestation' | 'proposal' | 'slashing' | 'sync' | 'visible' | 'initial'
-export type SlotVizIcons = SlotVizCategories | 'head_attestation' | 'source_attestation' | 'target_attestation'
+export type SlotVizCategories =
+ | 'attestation'
+ | 'proposal'
+ | 'slashing'
+ | 'sync'
+ | 'visible'
+ | 'initial'
+export type SlotVizIcons =
+ | SlotVizCategories
+ | 'head_attestation'
+ | 'source_attestation'
+ | 'target_attestation'
diff --git a/frontend/types/dashboard/summary.ts b/frontend/types/dashboard/summary.ts
index a320025d2..b46e2ff29 100644
--- a/frontend/types/dashboard/summary.ts
+++ b/frontend/types/dashboard/summary.ts
@@ -1,28 +1,75 @@
import { type ChartHistorySeconds } from '~/types/api/common'
-export const SummaryDetailsEfficiencyProps = ['attestations_head', 'attestations_source', 'attestations_target', 'slashings', 'sync'] as const
-export type SummaryDetailsEfficiencyProp = typeof SummaryDetailsEfficiencyProps[number]
+export const SummaryDetailsEfficiencyProps = [
+ 'attestations_head',
+ 'attestations_source',
+ 'attestations_target',
+ 'slashings',
+ 'sync',
+] as const
+export type SummaryDetailsEfficiencyProp =
+ (typeof SummaryDetailsEfficiencyProps)[number]
-export const SummaryDetailsEfficiencyValidatorProps = ['validators_sync', 'validators_proposal', 'validators_slashings'] as const
-export type SummaryDetailsEfficiencyValidatorProp = typeof SummaryDetailsEfficiencyValidatorProps[number]
+export const SummaryDetailsEfficiencyValidatorProps = [
+ 'validators_sync',
+ 'validators_proposal',
+ 'validators_slashings',
+] as const
+export type SummaryDetailsEfficiencyValidatorProp =
+ (typeof SummaryDetailsEfficiencyValidatorProps)[number]
-export const SummaryDetailsEfficiencyLuckProps = ['proposal_luck', 'sync_luck'] as const
-export type SummaryDetailsEfficiencyLuckProp = typeof SummaryDetailsEfficiencyLuckProps[number]
+export const SummaryDetailsEfficiencyLuckProps = [
+ 'proposal_luck',
+ 'sync_luck',
+] as const
+export type SummaryDetailsEfficiencyLuckProp =
+ (typeof SummaryDetailsEfficiencyLuckProps)[number]
export const SummaryDetailsEfficiencyCustomProps = ['attestations'] as const
-export type SummaryDetailsEfficiencyCustomProp = typeof SummaryDetailsEfficiencyCustomProps[number]
+export type SummaryDetailsEfficiencyCustomProp =
+ (typeof SummaryDetailsEfficiencyCustomProps)[number]
-export const SummaryDetailsEfficiencySpecialProps = ['reward', 'efficiency', 'apr', 'luck', 'attestation_avg_incl_dist', 'attestation_efficiency', 'proposals', 'missed_rewards'] as const
-export type SummaryDetailsEfficiencySpecialProp = typeof SummaryDetailsEfficiencySpecialProps[number]
+export const SummaryDetailsEfficiencySpecialProps = [
+ 'reward',
+ 'efficiency',
+ 'apr',
+ 'luck',
+ 'attestation_avg_incl_dist',
+ 'attestation_efficiency',
+ 'proposals',
+ 'missed_rewards',
+] as const
+export type SummaryDetailsEfficiencySpecialProp =
+ (typeof SummaryDetailsEfficiencySpecialProps)[number]
-export type SummaryDetailsEfficiencyCombinedProp = SummaryDetailsEfficiencySpecialProp | SummaryDetailsEfficiencyProp | SummaryDetailsEfficiencyCustomProp | SummaryDetailsEfficiencyLuckProp | SummaryDetailsEfficiencyValidatorProp
+export type SummaryDetailsEfficiencyCombinedProp =
+ | SummaryDetailsEfficiencySpecialProp
+ | SummaryDetailsEfficiencyProp
+ | SummaryDetailsEfficiencyCustomProp
+ | SummaryDetailsEfficiencyLuckProp
+ | SummaryDetailsEfficiencyValidatorProp
-export type DashboardValidatorContext = 'dashboard' | 'group' | 'attestation' | 'sync' | 'slashings' | 'proposal'
+export type DashboardValidatorContext =
+ | 'dashboard'
+ | 'group'
+ | 'attestation'
+ | 'sync'
+ | 'slashings'
+ | 'proposal'
-export type SummaryRow = { prop?: SummaryDetailsEfficiencyCombinedProp, title: string }
+export type SummaryRow = {
+ prop?: SummaryDetailsEfficiencyCombinedProp
+ title: string
+}
-export const SummaryTimeFrames = ['last_1h', 'last_24h', 'last_7d', 'last_30d', 'all_time'] as const
-export type SummaryTimeFrame = typeof SummaryTimeFrames[number]
+export const SummaryTimeFrames = [
+ 'last_1h',
+ 'last_24h',
+ 'last_7d',
+ 'last_30d',
+ 'all_time',
+] as const
+export type SummaryTimeFrame = (typeof SummaryTimeFrames)[number]
export type SummaryTableVisibility = {
proposals: boolean
@@ -36,10 +83,15 @@ export const SUMMARY_CHART_GROUP_TOTAL = -1
export const SUMMARY_CHART_GROUP_NETWORK_AVERAGE = -2
export type AggregationTimeframe = keyof ChartHistorySeconds
-export const AggregationTimeframes: AggregationTimeframe[] = ['epoch', 'hourly', 'daily', 'weekly']
+export const AggregationTimeframes: AggregationTimeframe[] = [
+ 'epoch',
+ 'hourly',
+ 'daily',
+ 'weekly',
+]
export const EfficiencyTypes = ['all', 'attestation', 'sync', 'proposal']
-export type EfficiencyType = typeof EfficiencyTypes[number]
+export type EfficiencyType = (typeof EfficiencyTypes)[number]
export type SummaryChartFilter = {
groupIds: number[]
diff --git a/frontend/types/helper.ts b/frontend/types/helper.ts
index 8aa405337..b2fdd4fbd 100644
--- a/frontend/types/helper.ts
+++ b/frontend/types/helper.ts
@@ -27,7 +27,7 @@ type KeyPaths = {
? never // remove Arrays
: `${K}.${KeyPaths}`
: K
- : never
+ : never;
}[keyof T]
export type { KeyPaths }
diff --git a/frontend/types/network.ts b/frontend/types/network.ts
index 0cef2e2b4..df6f86fe2 100644
--- a/frontend/types/network.ts
+++ b/frontend/types/network.ts
@@ -265,10 +265,11 @@ export function getAllExistingChainIDs(sortByPriority: boolean): ChainIDs[] {
/**
* Should be used only when you test a network different from the current one.
- * Whereever you would write `isMainNet(currentNetwork.value)` you should rather use `isMainNet()` from `useNetworkStore.ts`.
+ * Whereever you would write `isMainNet(currentNetwork.value)` you should
+ * rather use `isMainNet()` from `useNetworkStore.ts`.
*/
export function isMainNet(network: ChainIDs): boolean {
- return (ChainInfo[network].mainNet === network)
+ return ChainInfo[network].mainNet === network
}
/**
@@ -276,37 +277,43 @@ export function isMainNet(network: ChainIDs): boolean {
* Wherever you would write `isL1(currentNetwork.value)` you should rather use `isL1()` from `useNetworkStore.ts`.
*/
export function isL1(network: ChainIDs): boolean {
- return (ChainInfo[network].L1 === network)
+ return ChainInfo[network].L1 === network
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `epochsPerDay(currentNetwork.value)` you should rather use `epochsPerDay()` from `useNetworkStore.ts`.
+ * Wherever you would write `epochsPerDay(currentNetwork.value)` you should
+ * rather use `epochsPerDay()` from `useNetworkStore.ts`.
*/
export function epochsPerDay(chainId: ChainIDs): number {
const info = ChainInfo[chainId]
if (info.timeStampSlot0 === undefined) {
return 0
}
- return 24 * 60 * 60 / (info.slotsPerEpoch * info.secondsPerSlot)
+ return (24 * 60 * 60) / (info.slotsPerEpoch * info.secondsPerSlot)
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `epochToTs(currentNetwork.value, epoch)` you should rather use `epochToTs(epoch)` from `useNetworkStore.ts`.
+ * Wherever you would write `epochToTs(currentNetwork.value, epoch)` you should
+ * rather use `epochToTs(epoch)` from `useNetworkStore.ts`.
*/
-export function epochToTs(chainId: ChainIDs, epoch: number): number | undefined {
+export function epochToTs(
+ chainId: ChainIDs,
+ epoch: number,
+): number | undefined {
const info = ChainInfo[chainId]
if (info.timeStampSlot0 === undefined || epoch < 0) {
return undefined
}
- return info.timeStampSlot0 + ((epoch * info.slotsPerEpoch) * info.secondsPerSlot)
+ return info.timeStampSlot0 + epoch * info.slotsPerEpoch * info.secondsPerSlot
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `slotToTs(currentNetwork.value, slot)` you should rather use `slotToTs(slot)` from `useNetworkStore.ts`.
+ * Wherever you would write `slotToTs(currentNetwork.value, slot)` you should
+ * rather use `slotToTs(slot)` from `useNetworkStore.ts`.
*/
export function slotToTs(chainId: ChainIDs, slot: number): number | undefined {
const info = ChainInfo[chainId]
@@ -314,12 +321,13 @@ export function slotToTs(chainId: ChainIDs, slot: number): number | undefined {
return undefined
}
- return info.timeStampSlot0 + (slot * info.secondsPerSlot)
+ return info.timeStampSlot0 + slot * info.secondsPerSlot
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `tsToSlot(currentNetwork.value, ts)` you should rather use `tsToSlot(ts)` from `useNetworkStore.ts`.
+ * Wherever you would write `tsToSlot(currentNetwork.value, ts)` you should
+ * rather use `tsToSlot(ts)` from `useNetworkStore.ts`.
*/
export function tsToSlot(chainId: ChainIDs, ts: number): number {
const info = ChainInfo[chainId]
@@ -331,7 +339,8 @@ export function tsToSlot(chainId: ChainIDs, ts: number): number {
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `slotToEpoch(currentNetwork.value, slot)` you should rather use `slotToEpoch(slot)` from `useNetworkStore.ts`.
+ * Wherever you would write `slotToEpoch(currentNetwork.value, slot)` you should
+ * rather use `slotToEpoch(slot)` from `useNetworkStore.ts`.
*/
export function slotToEpoch(chainId: ChainIDs, slot: number): number {
const info = ChainInfo[chainId]
@@ -343,7 +352,8 @@ export function slotToEpoch(chainId: ChainIDs, slot: number): number {
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `secondsPerEpoch(currentNetwork.value)` you should rather use `secondsPerEpoch()` from `useNetworkStore.ts`.
+ * Wherever you would write `secondsPerEpoch(currentNetwork.value)` you should
+ * rather use `secondsPerEpoch()` from `useNetworkStore.ts`.
*/
export function secondsPerEpoch(chainId: ChainIDs): number {
const info = ChainInfo[chainId]
diff --git a/frontend/types/notifications/dashboards.ts b/frontend/types/notifications/dashboards.ts
index c41833e2a..7529027b4 100644
--- a/frontend/types/notifications/dashboards.ts
+++ b/frontend/types/notifications/dashboards.ts
@@ -15,4 +15,5 @@ export type NotifcationDashboardRow = {
nofitication: string[]
}
-export type NotifcationDashboardResponse = ApiPagingResponse
+export type NotifcationDashboardResponse =
+ ApiPagingResponse
diff --git a/frontend/types/notifications/settings.ts b/frontend/types/notifications/settings.ts
index 3baed8644..558119ffc 100644
--- a/frontend/types/notifications/settings.ts
+++ b/frontend/types/notifications/settings.ts
@@ -1,10 +1,22 @@
-import type { NotificationSettingsGeneral, NotificationPairedDevice } from '~/types/api/notifications'
+import type {
+ NotificationSettingsGeneral,
+ NotificationPairedDevice,
+} from '~/types/api/notifications'
-export type NotificationsManagementSettingsGeneralTab = Pick
+export type NotificationsManagementSettingsGeneralTab = Pick<
+ NotificationSettingsGeneral,
+ | 'do_not_disturb_timestamp'
+ | 'is_email_notifications_enabled'
+ | 'is_push_notifications_enabled'
+>
export interface NotificationsManagementSettingsProvider {
- generalSettings: ComputedRef
- updateGeneralSettings: (newSettings: NotificationsManagementSettingsGeneralTab) => void
+ generalSettings: ComputedRef<
+ NotificationsManagementSettingsGeneralTab | undefined
+ >
+ updateGeneralSettings: (
+ newSettings: NotificationsManagementSettingsGeneralTab,
+ ) => void
pairedDevices: ComputedRef
updatePairedDevices: (newDevices: NotificationPairedDevice[]) => void
isLoading: Ref
diff --git a/frontend/types/searchbar.ts b/frontend/types/searchbar.ts
index 41f7a3c02..c0ec45557 100644
--- a/frontend/types/searchbar.ts
+++ b/frontend/types/searchbar.ts
@@ -1,6 +1,11 @@
+/* eslint-disable vue/max-len -- TODO: plz fix this */
import type { ComposerTranslation } from 'vue-i18n'
import type { ChainIDs } from '~/types/network'
-import { type ApiErrorResponse, type SearchResult, type InternalPostSearchResponse } from '~/types/api/common'
+import {
+ type ApiErrorResponse,
+ type SearchResult,
+ type InternalPostSearchResponse,
+} from '~/types/api/common'
export const MinimumTimeBetweenAPIcalls = 400 // ms
export const LayoutThreshold = 500 // px (tells when the bar must switch between its narrow and large layouts)
@@ -91,7 +96,9 @@ export type Matching = {
triggers the event `@go` to call your handler with the actual data of the matching that you picked. If you return `undefined` instead
of a matching, nothing happens (either no result suits you or you want to deactivate Enter).
You will find futher below a function named `pickHighestPriorityAmongBestMatchings`. It is an example that you can use directly. */
-export interface PickingCallBackFunction { (possibilities: Matching[]): Matching | undefined }
+export interface PickingCallBackFunction {
+ (possibilities: Matching[]): Matching | undefined
+}
export interface SearchRequest {
input: string
@@ -100,7 +107,9 @@ export interface SearchRequest {
count?: boolean
}
export type SingleAPIresult = SearchResult
-export interface SearchAheadAPIresponse extends ApiErrorResponse, InternalPostSearchResponse {}
+export interface SearchAheadAPIresponse
+ extends ApiErrorResponse,
+ InternalPostSearchResponse {}
// in SuggestionRow.vue, you will see that the drop-down where the list of result suggestions appear is organised into 3 rows that display a "name", a "description" and some "low level data", about each result
export type ResultSuggestionOutput = {
@@ -169,9 +178,18 @@ interface SearchbarPurposeInfoField {
differentialRequests: boolean // If activated, the bar decreases the workload for the API **in certain scenarii** by asking only for results that it does not know yet (which can happen when the user started a search with filters and activates a new filter, then the bar asks only for results corresponding to the newly selected filter). The downside is that the bar cannot help the user by mentionning the number of filtered-out results at the bottom of the suggestion list.
}
// this Record describes the look and behavior of the search-bar according to the value that you pass in its props `:bar-purpose`
-export const SearchbarPurposeInfo: Record = {
+export const SearchbarPurposeInfo: Record<
+ SearchbarPurpose,
+ SearchbarPurposeInfoField
+> = {
[SearchbarPurpose.GlobalSearch]: {
- searchable: [Category.Protocol, Category.Addresses, Category.Tokens, Category.NFTs, Category.Validators], // to display the filter buttons in a different order, write the categories in a different order here
+ searchable: [
+ Category.Protocol,
+ Category.Addresses,
+ Category.Tokens,
+ Category.NFTs,
+ Category.Validators,
+ ], // to display the filter buttons in a different order, write the categories in a different order here
unsearchable: [],
askAPItoCountResults: false,
button: 'search',
@@ -185,7 +203,8 @@ export const SearchbarPurposeInfo: Record = {
- [Category.Tokens]: { title: ['common.erc20token', PLURAL], filterLabel: ['common.token', PLURAL] },
- [Category.NFTs]: { title: ['common.nft', PLURAL], filterLabel: ['common.nft', PLURAL] },
- [Category.Protocol]: { title: ['common.protocol', SINGULAR], filterLabel: ['common.protocol', SINGULAR] },
- [Category.Addresses]: { title: ['common.address', PLURAL], filterLabel: ['common.address', PLURAL] },
- [Category.Validators]: { title: ['common.validator', PLURAL], filterLabel: ['common.validator', PLURAL] },
+ [Category.Tokens]: {
+ title: ['common.erc20token', PLURAL],
+ filterLabel: ['common.token', PLURAL],
+ },
+ [Category.NFTs]: {
+ title: ['common.nft', PLURAL],
+ filterLabel: ['common.nft', PLURAL],
+ },
+ [Category.Protocol]: {
+ title: ['common.protocol', SINGULAR],
+ filterLabel: ['common.protocol', SINGULAR],
+ },
+ [Category.Addresses]: {
+ title: ['common.address', PLURAL],
+ filterLabel: ['common.address', PLURAL],
+ },
+ [Category.Validators]: {
+ title: ['common.validator', PLURAL],
+ filterLabel: ['common.validator', PLURAL],
+ },
}
interface SubCategoryInfoFields {
@@ -248,7 +283,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIstr_value, // this tells us that field `str_value` in singleAPIresult identifies precisely a result of type ResultType.Tokens when communicating about it with the back-end
- howToFillresultSuggestionOutput: { name: Indirect.APIstr_value, description: '', lowLevelData: Indirect.APIhash_value }, // this tells us that field `name` in ResultSuggestionOutput will be filled with the content of `str_value` in singleAPIresult, and `lowLevelData` will be filled with `hash_value`
+ howToFillresultSuggestionOutput: {
+ name: Indirect.APIstr_value,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ }, // this tells us that field `name` in ResultSuggestionOutput will be filled with the content of `str_value` in singleAPIresult, and `lowLevelData` will be filled with `hash_value`
},
[ResultType.NFTs]: {
title: ['common.nft_as_token', SINGULAR],
@@ -258,7 +297,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.APIstr_value, description: '', lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.APIstr_value,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.Epochs]: {
title: ['common.epoch', SINGULAR],
@@ -268,7 +311,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: '' },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: '',
+ },
},
[ResultType.Slots]: {
title: ['common.slot', SINGULAR],
@@ -278,7 +325,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.Blocks]: {
title: ['common.block', SINGULAR],
@@ -288,7 +339,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.BlockRoots]: {
title: ['common.block_root', SINGULAR],
@@ -298,7 +353,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.StateRoots]: {
title: ['common.state_root', SINGULAR],
@@ -308,7 +367,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.Transactions]: {
title: ['common.transaction', SINGULAR],
@@ -318,7 +381,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: '', lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.TransactionBatches]: {
title: ['common.tx_batch', SINGULAR],
@@ -328,7 +395,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: '' },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: '',
+ },
},
[ResultType.StateBatches]: {
title: ['common.state_batch', SINGULAR],
@@ -338,7 +409,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: Indirect.APInum_value, lowLevelData: '' },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: '',
+ },
},
[ResultType.Contracts]: {
title: ['common.contract', SINGULAR],
@@ -348,7 +423,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.APIstr_value, description: '', lowLevelData: Indirect.APIhash_value }, // str_value is the name of the contract (for ex: "uniswap") but if the API gives '' we will replace it with a generic name (the title of this type: "Contract")
+ howToFillresultSuggestionOutput: {
+ name: Indirect.APIstr_value,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ }, // str_value is the name of the contract (for ex: "uniswap") but if the API gives '' we will replace it with a generic name (the title of this type: "Contract")
},
[ResultType.Accounts]: {
title: ['common.account', SINGULAR],
@@ -358,7 +437,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: '', lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.EnsAddresses]: {
title: ['common.ens_address', SINGULAR],
@@ -368,7 +451,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.APIstr_value, description: '', lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.APIstr_value,
+ description: '',
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.EnsOverview]: {
title: ['common.overview_of_ens', SINGULAR],
@@ -378,7 +465,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: true,
countSource: Indirect.None,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: Indirect.APIstr_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: Indirect.APIstr_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.Graffiti]: {
title: ['common.graffiti', SINGULAR],
@@ -388,7 +479,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.TypeTitle, description: ['search_bar.blocks_with', 0], lowLevelData: Indirect.APIstr_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.TypeTitle,
+ description: ['search_bar.blocks_with', 0],
+ lowLevelData: Indirect.APIstr_value,
+ },
},
[ResultType.ValidatorsByIndex]: {
title: ['search_bar.validator_by_index', 0],
@@ -398,7 +493,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APInum_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.ValidatorsByPubkey]: {
title: ['search_bar.validator_by_public_key', 0],
@@ -408,7 +507,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.None,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: Indirect.APInum_value, lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: Indirect.APInum_value,
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.ValidatorsByDepositAddress]: {
title: ['search_bar.validator_by_deposit_address', 0],
@@ -418,7 +521,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.deposited_by', 0], lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.deposited_by', 0],
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.ValidatorsByDepositEnsName]: {
title: ['search_bar.validator_by_deposit_ens', 0],
@@ -428,7 +535,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.deposited_by', 0], lowLevelData: Indirect.APIstr_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.deposited_by', 0],
+ lowLevelData: Indirect.APIstr_value,
+ },
},
[ResultType.ValidatorsByWithdrawalCredential]: {
title: ['search_bar.validator_by_credential', 0],
@@ -438,7 +549,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.credential', SINGULAR], lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.credential', SINGULAR],
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.ValidatorsByWithdrawalAddress]: {
title: ['search_bar.validator_by_withdrawal_address', 0],
@@ -448,7 +563,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIhash_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.withdrawn_to', 0], lowLevelData: Indirect.APIhash_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.withdrawn_to', 0],
+ lowLevelData: Indirect.APIhash_value,
+ },
},
[ResultType.ValidatorsByWithdrawalEnsName]: {
title: ['search_bar.validator_by_withdrawal_ens', 0],
@@ -458,7 +577,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.withdrawn_to', 0], lowLevelData: Indirect.APIstr_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.withdrawn_to', 0],
+ lowLevelData: Indirect.APIstr_value,
+ },
},
[ResultType.ValidatorsByGraffiti]: {
title: ['search_bar.validator_by_graffiti', 0],
@@ -468,7 +591,11 @@ export const TypeInfo: Record = {
belongsToAllNetworks: false,
countSource: Indirect.APInum_value,
queryParamField: Indirect.APIstr_value,
- howToFillresultSuggestionOutput: { name: Indirect.SubCategoryTitle, description: ['search_bar.block_graffiti', 0], lowLevelData: Indirect.APIstr_value },
+ howToFillresultSuggestionOutput: {
+ name: Indirect.SubCategoryTitle,
+ description: ['search_bar.block_graffiti', 0],
+ lowLevelData: Indirect.APIstr_value,
+ },
},
/* [ResultType.ValidatorsByName]: {
title: ['search_bar.validator_by_name', 0],
@@ -482,25 +609,34 @@ export const TypeInfo: Record = {
} */
}
-export interface PremiumRowCallBackFunction { (result: ResultSuggestion): boolean }
+export interface PremiumRowCallBackFunction {
+ (result: ResultSuggestion): boolean
+}
-export interface ExposedSearchbarMethods { // for internal use
+export interface ExposedSearchbarMethods {
+ // for internal use
hideResult: (whichOne: ResultSuggestion) => void
closeDropdown: () => void
empty: () => void
}
export interface SearchBar // your ref to the search-bar component must be of this type
- extends ComponentPublicInstance, ExposedSearchbarMethods {}
+ extends ComponentPublicInstance,
+ ExposedSearchbarMethods {}
export type CategoryFilter = Map // for internal use
export type NetworkFilter = Map // for internal use
export type SearchbarDropdownLayout = 'narrow-dropdown' | 'large-dropdown' // for internal use (do not change the litterals, they are used as class names)
-export function wasOutputDataGivenByTheAPI(type: ResultType, resultSuggestionOutputField: keyof HowToFillresultSuggestionOutput): boolean {
- switch (TypeInfo[type].howToFillresultSuggestionOutput[resultSuggestionOutputField]) {
- case Indirect.APIstr_value :
- case Indirect.APInum_value :
- case Indirect.APIhash_value :
+export function wasOutputDataGivenByTheAPI(
+ type: ResultType,
+ resultSuggestionOutputField: keyof HowToFillresultSuggestionOutput,
+): boolean {
+ switch (
+ TypeInfo[type].howToFillresultSuggestionOutput[resultSuggestionOutputField]
+ ) {
+ case Indirect.APIstr_value:
+ case Indirect.APInum_value:
+ case Indirect.APIhash_value:
return true
default:
return false
@@ -510,23 +646,34 @@ export function wasOutputDataGivenByTheAPI(type: ResultType, resultSuggestionOut
/**
* @returns Data read from the API response. `undefined` means that something is wrong.
*/
-export function realizeData(apiResponseElement: SingleAPIresult, dataSource: FillFrom, t: ComposerTranslation): any {
+export function realizeData(
+ apiResponseElement: SingleAPIresult,
+ dataSource: FillFrom,
+ t: ComposerTranslation,
+): any {
const type = apiResponseElement.type as ResultType
let sourceField: keyof SingleAPIresult
switch (dataSource) {
- case Indirect.None : return ''
- case Indirect.APIstr_value : sourceField = 'str_value'
+ case Indirect.None:
+ return ''
+ case Indirect.APIstr_value:
+ sourceField = 'str_value'
break
- case Indirect.APInum_value : sourceField = 'num_value'
+ case Indirect.APInum_value:
+ sourceField = 'num_value'
break
- case Indirect.APIhash_value : sourceField = 'hash_value'
+ case Indirect.APIhash_value:
+ sourceField = 'hash_value'
break
- case Indirect.CategoryTitle : return t(...CategoryInfo[TypeInfo[type].category].title)
- case Indirect.SubCategoryTitle : return t(...SubCategoryInfo[TypeInfo[type].subCategory].title)
- case Indirect.TypeTitle : return t(...TypeInfo[type].title)
- default :
- return (dataSource === '') ? '' : t(...dataSource)
+ case Indirect.CategoryTitle:
+ return t(...CategoryInfo[TypeInfo[type].category].title)
+ case Indirect.SubCategoryTitle:
+ return t(...SubCategoryInfo[TypeInfo[type].subCategory].title)
+ case Indirect.TypeTitle:
+ return t(...TypeInfo[type].title)
+ default:
+ return dataSource === '' ? '' : t(...dataSource)
}
return apiResponseElement[sourceField]
@@ -543,17 +690,26 @@ export function getListOfResultTypes(sortByPriority: boolean): ResultType[] {
listOfResultTypesAsDeclared.push(ResultType[ty])
listOfResultTypesPrioritized.push(ResultType[ty])
}
- listOfResultTypesPrioritized.sort((a, b) => TypeInfo[a].priority - TypeInfo[b].priority)
+ listOfResultTypesPrioritized.sort(
+ (a, b) => TypeInfo[a].priority - TypeInfo[b].priority,
+ )
}
- return sortByPriority ? listOfResultTypesPrioritized : listOfResultTypesAsDeclared
+ return sortByPriority
+ ? listOfResultTypesPrioritized
+ : listOfResultTypesAsDeclared
}
-const searchableTypesPerCategory: Record = {} as Record
+const searchableTypesPerCategory: Record = {} as Record<
+ Category,
+ ResultType[]
+>
/**
* @returns the list of types belonging to the given category.
* This function is fast on average: it computes the lists only at the first call. Subsequent calls return the already computed lists.
*/
-export function getListOfResultTypesInCategory(category: Category): ResultType[] {
+export function getListOfResultTypesInCategory(
+ category: Category,
+): ResultType[] {
if (!(category in searchableTypesPerCategory)) {
for (const t of getListOfResultTypes(true)) {
const c = TypeInfo[t].category
@@ -577,7 +733,9 @@ export function getListOfResultTypesInCategory(category: Category): ResultType[]
* @param possibilities here the function receives the list of matchings (representing result suggestions)
* @returns the matching fulfilling the criteria explained above
*/
-export function pickHighestPriorityAmongBestMatchings(possibilities: Matching[]): Matching | undefined {
+export function pickHighestPriorityAmongBestMatchings(
+ possibilities: Matching[],
+): Matching | undefined {
let bestMatchWithHigherPriority = possibilities[0]
for (const possibility of possibilities) {
if (possibility.closeness < bestMatchWithHigherPriority.closeness) {
@@ -590,6 +748,8 @@ export function pickHighestPriorityAmongBestMatchings(possibilities: Matching[])
/**
* @returns the I18n path of a TranslatableLitteral that you can give to t(). Useful to display the litteral in singular or in plural with respect to your needs.
*/
-export function getI18nPathOfTranslatableLitteral(litteral: TranslatableLitteral): string {
+export function getI18nPathOfTranslatableLitteral(
+ litteral: TranslatableLitteral,
+): string {
return litteral[0] as string
}
diff --git a/frontend/types/swipe.ts b/frontend/types/swipe.ts
index 7d6154536..bf8787412 100644
--- a/frontend/types/swipe.ts
+++ b/frontend/types/swipe.ts
@@ -1,5 +1,10 @@
export type SwipeDirection = 'left' | 'top' | 'right' | 'bottom' | 'all'
-export type SwipeCallback = (event: TouchEvent, directions: SwipeDirection[]) => undefined | boolean // if callback returns true we keep the element at it's position (example: dialog hides where you left it and not pops back)
+// if callback returns true we keep the element at it's position
+// (example: dialog hides where you left it and not pops back)
+export type SwipeCallback = (
+ event: TouchEvent,
+ directions: SwipeDirection[],
+) => undefined | boolean
export type SwipeOptions = {
directional_threshold?: number // Pixels offset to trigger swipe
directions?: SwipeDirection[]
diff --git a/frontend/types/tag.ts b/frontend/types/tag.ts
index 54a0e791a..99b297577 100644
--- a/frontend/types/tag.ts
+++ b/frontend/types/tag.ts
@@ -1,4 +1,11 @@
-export const TagColors = ['success', 'failed', 'orphaned', 'partial', 'light', 'dark'] as const
-export type TagColor = typeof TagColors[number]
+export const TagColors = [
+ 'success',
+ 'failed',
+ 'orphaned',
+ 'partial',
+ 'light',
+ 'dark',
+] as const
+export type TagColor = (typeof TagColors)[number]
export type TagSize = 'default' | 'compact' | 'circle'
diff --git a/frontend/types/validator/index.ts b/frontend/types/validator/index.ts
index 8262687ad..2848e23f3 100644
--- a/frontend/types/validator/index.ts
+++ b/frontend/types/validator/index.ts
@@ -1,8 +1,18 @@
-import type { VDBManageValidatorsTableRow, VDBSummaryValidator, VDBSummaryValidatorsData } from '../api/validator_dashboard'
+import type {
+ VDBManageValidatorsTableRow,
+ VDBSummaryValidator,
+ VDBSummaryValidatorsData,
+} from '../api/validator_dashboard'
export type ValidatorStatus = VDBManageValidatorsTableRow['status']
-export type ValidatorSubsetCategory = VDBSummaryValidatorsData['category'] | 'all' | 'exited_withdrawing' | 'exited_withdrawn' | 'slashed_withdrawing' | 'slashed_withdrawn'
+export type ValidatorSubsetCategory =
+ | VDBSummaryValidatorsData['category']
+ | 'all'
+ | 'exited_withdrawing'
+ | 'exited_withdrawn'
+ | 'slashed_withdrawing'
+ | 'slashed_withdrawn'
export type ValidatorSubset = {
category: ValidatorSubsetCategory
diff --git a/frontend/types/value.ts b/frontend/types/value.ts
index bef61e538..0652af516 100644
--- a/frontend/types/value.ts
+++ b/frontend/types/value.ts
@@ -8,7 +8,7 @@ export type ValueConvertOptions = {
fixedDecimalCount?: number // can override the usual settings, but can't go over 2 for fiat
maxDecimalCount?: number // max decimal count
minDecimalCount?: number // min decimal count
- minUnit?: CryptoUnits // if output should only be in higher units (for example GWEI -> then it will never go down to WEI)
+ minUnit?: CryptoUnits // if output should only be in higher units (e.g. GWEI -> then it will never go down to WEI)
minUnitDecimalCount?: number // decimal count to check for value while unit conversion - defaults to max decimal count
fixedUnit?: CryptoUnits // fixed output unit - overrides min unit
addPlus?: boolean // add + sign if value is positive
@@ -21,9 +21,17 @@ export type ExtendedLabel = {
fullLabel?: string
}
-export const TimeFrames = ['last_24h', 'last_7d', 'last_30d', 'all_time'] as const
-export type TimeFrame = typeof TimeFrames[number]
+export const TimeFrames = [
+ 'last_24h',
+ 'last_7d',
+ 'last_30d',
+ 'all_time',
+] as const
+export type TimeFrame = (typeof TimeFrames)[number]
-export type WeiToValue = (wei?: string | BigNumber, options?: ValueConvertOptions) => ExtendedLabel
+export type WeiToValue = (
+ wei?: string | BigNumber,
+ options?: ValueConvertOptions,
+) => ExtendedLabel
export type CompareResult = 'higher' | 'equal' | 'lower'
diff --git a/frontend/utils/bigMath.ts b/frontend/utils/bigMath.ts
index 216975dfc..21d21677c 100644
--- a/frontend/utils/bigMath.ts
+++ b/frontend/utils/bigMath.ts
@@ -33,7 +33,10 @@ export const bigDiv = (big: BigNumber, num: number): BigNumber => {
}
export const convertSum = (...values: string[]): BigNumber | undefined => {
- return values?.reduce((sum, newValue) => sum.add(BigNumber.from(newValue)), BigNumber.from('0'))
+ return values?.reduce(
+ (sum, newValue) => sum.add(BigNumber.from(newValue)),
+ BigNumber.from('0'),
+ )
}
export const totalElCl = (value: ClElValue): BigNumber | undefined => {
@@ -51,7 +54,9 @@ export const subWei = (total: string, value: string): BigNumber | undefined => {
return BigNumber.from(total).sub(BigNumber.from(value ?? '0'))
}
-export const totalElClNumbers = (value: ClElValue): number | undefined => {
+export const totalElClNumbers = (
+ value: ClElValue,
+): number | undefined => {
if (!value) {
return
}
diff --git a/frontend/utils/colors.ts b/frontend/utils/colors.ts
index 9503cb290..14b9f8b9c 100644
--- a/frontend/utils/colors.ts
+++ b/frontend/utils/colors.ts
@@ -1,6 +1,68 @@
export function getSummaryChartGroupColors(theme: string) {
- const colorsLight = ['#ffaa31', '#7db5ec', '#b2df27', '#5d78dc', '#ffdb58', '#f067e9', '#57bd64', '#a448c0', '#dc2a7f', '#e6beff', '#87ceeb', '#438d61', '#e7416a', '#6be4d8', '#fabebe', '#90d9a5', '#ff6a00', '#ffbe7c', '#bcb997', '#deb244', '#dda0dd', '#fa8072', '#d2b48c', '#6b8e23', '#0e8686', '#9a6324', '#932929', '#808000', '#30308e', '#708090']
- const colorsDark = ['#ffaa31', '#7db5ec', '#c3f529', '#5d78dc', '#ffdb58', '#f067e9', '#57bd64', '#a448c0', '#dc2a7f', '#e6beff', '#87ceeb', '#438d61', '#e7416a', '#6be4d8', '#fabebe', '#aaffc3', '#ff6a00', '#ffd8b1', '#fffac8', '#deb244', '#dda0dd', '#fa8072', '#d2b48c', '#6b8e23', '#0e8686', '#9a6324', '#932929', '#808000', '#30308e', '#708090']
+ const colorsLight = [
+ '#ffaa31',
+ '#7db5ec',
+ '#b2df27',
+ '#5d78dc',
+ '#ffdb58',
+ '#f067e9',
+ '#57bd64',
+ '#a448c0',
+ '#dc2a7f',
+ '#e6beff',
+ '#87ceeb',
+ '#438d61',
+ '#e7416a',
+ '#6be4d8',
+ '#fabebe',
+ '#90d9a5',
+ '#ff6a00',
+ '#ffbe7c',
+ '#bcb997',
+ '#deb244',
+ '#dda0dd',
+ '#fa8072',
+ '#d2b48c',
+ '#6b8e23',
+ '#0e8686',
+ '#9a6324',
+ '#932929',
+ '#808000',
+ '#30308e',
+ '#708090',
+ ]
+ const colorsDark = [
+ '#ffaa31',
+ '#7db5ec',
+ '#c3f529',
+ '#5d78dc',
+ '#ffdb58',
+ '#f067e9',
+ '#57bd64',
+ '#a448c0',
+ '#dc2a7f',
+ '#e6beff',
+ '#87ceeb',
+ '#438d61',
+ '#e7416a',
+ '#6be4d8',
+ '#fabebe',
+ '#aaffc3',
+ '#ff6a00',
+ '#ffd8b1',
+ '#fffac8',
+ '#deb244',
+ '#dda0dd',
+ '#fa8072',
+ '#d2b48c',
+ '#6b8e23',
+ '#0e8686',
+ '#9a6324',
+ '#932929',
+ '#808000',
+ '#30308e',
+ '#708090',
+ ]
return theme === 'light' ? colorsLight : colorsDark
}
diff --git a/frontend/utils/currency.ts b/frontend/utils/currency.ts
index 9d6210f56..f8f2a3ca9 100644
--- a/frontend/utils/currency.ts
+++ b/frontend/utils/currency.ts
@@ -1,7 +1,15 @@
-import { FiatCurrencies, type FiatCurrency, CryptoCurrencies, type CryptoCurrency, type Currency } from '~/types/currencies'
+import {
+ FiatCurrencies,
+ type FiatCurrency,
+ CryptoCurrencies,
+ type CryptoCurrency,
+ type Currency,
+} from '~/types/currencies'
-const isFiat = (value?: Currency) => !!value && FiatCurrencies.includes(value as FiatCurrency)
-const isCrypto = (value?: Currency) => !!value && CryptoCurrencies.includes(value as CryptoCurrency)
+const isFiat = (value?: Currency) =>
+ !!value && FiatCurrencies.includes(value as FiatCurrency)
+const isCrypto = (value?: Currency) =>
+ !!value && CryptoCurrencies.includes(value as CryptoCurrency)
const isNative = (value?: Currency) => value === 'NAT'
export { isFiat, isCrypto, isNative }
diff --git a/frontend/utils/dashboard/group.ts b/frontend/utils/dashboard/group.ts
index f86e568f1..210605c62 100644
--- a/frontend/utils/dashboard/group.ts
+++ b/frontend/utils/dashboard/group.ts
@@ -1,8 +1,16 @@
import type { ComposerTranslation } from 'vue-i18n'
import type { VDBOverviewGroup } from '~/types/api/validator_dashboard'
-import { DAHSHBOARDS_ALL_GROUPS_ID, DAHSHBOARDS_NEXT_EPOCH_ID } from '~/types/dashboard'
+import {
+ DAHSHBOARDS_ALL_GROUPS_ID,
+ DAHSHBOARDS_NEXT_EPOCH_ID,
+} from '~/types/dashboard'
-export function getGroupLabel(t: ComposerTranslation, groupId?: number, groups?: VDBOverviewGroup[], allGroupLabel?: string): string {
+export function getGroupLabel(
+ t: ComposerTranslation,
+ groupId?: number,
+ groups?: VDBOverviewGroup[],
+ allGroupLabel?: string,
+): string {
if (groupId === undefined) {
return ''
}
diff --git a/frontend/utils/dashboard/table.ts b/frontend/utils/dashboard/table.ts
index b9c1327cb..97afac0a0 100644
--- a/frontend/utils/dashboard/table.ts
+++ b/frontend/utils/dashboard/table.ts
@@ -1,5 +1,8 @@
import type { ValueConvertOptions } from '~/types/value'
export const formatRewardValueOption: ValueConvertOptions = {
- addPlus: true, maxDecimalCount: 6, minUnit: 'MAIN', minDecimalCount: 0,
+ addPlus: true,
+ maxDecimalCount: 6,
+ minUnit: 'MAIN',
+ minDecimalCount: 0,
}
diff --git a/frontend/utils/dashboard/validator.ts b/frontend/utils/dashboard/validator.ts
index 349cb177a..474793861 100644
--- a/frontend/utils/dashboard/validator.ts
+++ b/frontend/utils/dashboard/validator.ts
@@ -1,13 +1,26 @@
import type { ValidatorHistoryDuties } from '~/types/api/common'
import type { VDBSummaryValidator } from '~/types/api/validator_dashboard'
-import type { ValidatorSubset, ValidatorSubsetCategory } from '~/types/validator'
+import type {
+ ValidatorSubset,
+ ValidatorSubsetCategory,
+} from '~/types/validator'
export function totalDutyRewards(duties?: ValidatorHistoryDuties) {
if (!duties) {
return
}
- const values: string[] = [duties.attestation_head?.income, duties.attestation_source?.income, duties.attestation_target?.income, duties.slashing?.income, duties.sync?.income, duties.proposal?.cl_attestation_inclusion_income, duties.proposal?.cl_slashing_inclusion_income, duties.proposal?.cl_sync_inclusion_income, duties.proposal?.el_income].filter(v => !!v) as string[]
+ const values: string[] = [
+ duties.attestation_head?.income,
+ duties.attestation_source?.income,
+ duties.attestation_target?.income,
+ duties.slashing?.income,
+ duties.sync?.income,
+ duties.proposal?.cl_attestation_inclusion_income,
+ duties.proposal?.cl_slashing_inclusion_income,
+ duties.proposal?.cl_sync_inclusion_income,
+ duties.proposal?.el_income,
+ ].filter(v => !!v) as string[]
if (values.length) {
return convertSum(...values)
}
@@ -20,25 +33,35 @@ export function sortValidatorIds(list?: number[]): number[] {
return [...list].sort((a, b) => a - b)
}
-export function sortSummaryValidators(list?: VDBSummaryValidator[]): VDBSummaryValidator[] {
+export function sortSummaryValidators(
+ list?: VDBSummaryValidator[],
+): VDBSummaryValidator[] {
if (!list) {
return []
}
return [...list].sort((a, b) => a.index - b.index)
}
-export function countSubsetDuties(list: ValidatorSubset[], categories: ValidatorSubsetCategory[]): number {
+export function countSubsetDuties(
+ list: ValidatorSubset[],
+ categories: ValidatorSubsetCategory[],
+): number {
return categories.reduce((sum, cat) => {
const subset = list.find(sub => sub.category === cat)
return sum + countSummaryValidatorDuties(subset?.validators || [], cat)
}, 0)
}
-export function countSummaryValidatorDuties(validators: VDBSummaryValidator[], category: ValidatorSubsetCategory): number {
+export function countSummaryValidatorDuties(
+ validators: VDBSummaryValidator[],
+ category: ValidatorSubsetCategory,
+): number {
let countBy: 'index' | 'duty-count' | 'duty-value' = 'index'
if (category === 'sync_past') {
countBy = 'duty-value'
}
- else if (['has_slashed', 'proposal_proposed', 'proposal_missed'].includes(category)) {
+ else if (
+ ['has_slashed', 'proposal_proposed', 'proposal_missed'].includes(category)
+ ) {
countBy = 'duty-count'
}
if (countBy === 'index') {
diff --git a/frontend/utils/format.ts b/frontend/utils/format.ts
index d9129bfa8..8788e0327 100644
--- a/frontend/utils/format.ts
+++ b/frontend/utils/format.ts
@@ -16,11 +16,17 @@ export interface NumberFormatConfig {
addPositiveSign?: boolean
}
-export function formatPercent(percent?: number, config?: NumberFormatConfig): string {
+export function formatPercent(
+ percent?: number,
+ config?: NumberFormatConfig,
+): string {
if (percent === undefined) {
return ''
}
- const { precision, fixed, addPositiveSign } = { ...{ precision: 2, fixed: 2, addPositiveSign: false }, ...config }
+ const { precision, fixed, addPositiveSign } = {
+ ...{ precision: 2, fixed: 2, addPositiveSign: false },
+ ...config,
+ }
let result = trim(percent, precision, fixed)
if (addPositiveSign) {
result = addPlusSign(result)
@@ -32,10 +38,14 @@ export function calculatePercent(value?: number, base?: number): number {
if (!base) {
return 0
}
- return (value ?? 0) * 100 / base
+ return ((value ?? 0) * 100) / base
}
-export function formatAndCalculatePercent(value?: number, base?: number, config?: NumberFormatConfig): string {
+export function formatAndCalculatePercent(
+ value?: number,
+ base?: number,
+ config?: NumberFormatConfig,
+): string {
if (!base) {
return ''
}
@@ -58,7 +68,11 @@ export function withCurrency(value: string, currency: string): string {
}
export function nZeros(count: number): string {
- return count > 0 ? Array.from(Array(count)).map(() => '0').join('') : ''
+ return count > 0
+ ? Array.from(Array(count))
+ .map(() => '0')
+ .join('')
+ : ''
}
export function commmifyLeft(value: string): string {
@@ -70,13 +84,20 @@ export function commmifyLeft(value: string): string {
return formatted
}
-export function trim(value: string | number, maxDecimalCount: number, minDecimalCount?: number): string {
+export function trim(
+ value: string | number,
+ maxDecimalCount: number,
+ minDecimalCount?: number,
+): string {
if (typeof value !== 'string') {
value = `${value}`
}
- minDecimalCount = minDecimalCount === undefined ? maxDecimalCount : Math.min(minDecimalCount, maxDecimalCount)
+ minDecimalCount
+ = minDecimalCount === undefined
+ ? maxDecimalCount
+ : Math.min(minDecimalCount, maxDecimalCount)
const split = value.split('.')
- let dec = (split[1] ?? '')
+ let dec = split[1] ?? ''
const hasTinyValue = !!dec && REGEXP_HAS_NUMBERS.test(dec)
dec = dec.substring(0, maxDecimalCount)
while (dec.length < minDecimalCount) {
@@ -95,7 +116,14 @@ export function trim(value: string | number, maxDecimalCount: number, minDecimal
return `${left}.${dec}`
}
-function formatTs(ts?: number, timestamp?: number, format: AgeFormat = 'relative', style: StringUnitLength = 'narrow', locales: string = 'en-US', withTime = true) {
+function formatTs(
+ ts?: number,
+ timestamp?: number,
+ format: AgeFormat = 'relative',
+ style: StringUnitLength = 'narrow',
+ locales: string = 'en-US',
+ withTime = true,
+) {
if (ts === undefined) {
return undefined
}
@@ -108,7 +136,11 @@ function formatTs(ts?: number, timestamp?: number, format: AgeFormat = 'relative
}
}
-export function formatTsToAbsolute(ts: number, locales: string, includeTime?: boolean): string {
+export function formatTsToAbsolute(
+ ts: number,
+ locales: string,
+ includeTime?: boolean,
+): string {
const timeOptions: Intl.DateTimeFormatOptions = includeTime
? {
hour: 'numeric',
@@ -122,7 +154,9 @@ export function formatTsToAbsolute(ts: number, locales: string, includeTime?: bo
...timeOptions,
}
const date = new Date(ts * 1000)
- return includeTime ? date.toLocaleString(locales, options) : date.toLocaleDateString(locales, options)
+ return includeTime
+ ? date.toLocaleString(locales, options)
+ : date.toLocaleDateString(locales, options)
}
export function formatTsToTime(ts: number, locales: string): string {
@@ -134,52 +168,123 @@ export function formatTsToTime(ts: number, locales: string): string {
return date.toLocaleTimeString(locales, options)
}
-function formatTsToRelative(targetTimestamp?: number, baseTimestamp?: number, style: StringUnitLength = 'narrow', locales: string = 'en-US'): string | null | undefined {
+function formatTsToRelative(
+ targetTimestamp?: number,
+ baseTimestamp?: number,
+ style: StringUnitLength = 'narrow',
+ locales: string = 'en-US',
+): string | null | undefined {
if (!targetTimestamp) {
return undefined
}
- const date = baseTimestamp ? DateTime.fromMillis(baseTimestamp) : DateTime.now()
- return DateTime.fromMillis(targetTimestamp).setLocale(locales).toRelative({ base: date, style })
+ const date = baseTimestamp
+ ? DateTime.fromMillis(baseTimestamp)
+ : DateTime.now()
+ return DateTime.fromMillis(targetTimestamp)
+ .setLocale(locales)
+ .toRelative({ base: date, style })
}
-export function formatGoTimestamp(timestamp: string | number, compareTimestamp?: number, format?: AgeFormat, style?: StringUnitLength, locales?: string, withTime?: boolean) {
+export function formatGoTimestamp(
+ timestamp: string | number,
+ compareTimestamp?: number,
+ format?: AgeFormat,
+ style?: StringUnitLength,
+ locales?: string,
+ withTime?: boolean,
+) {
if (typeof timestamp === 'number') {
timestamp *= 1000
}
const dateTime = new Date(timestamp).getTime()
- return formatTs(dateTime / 1000, compareTimestamp, format, style, locales, withTime)
+ return formatTs(
+ dateTime / 1000,
+ compareTimestamp,
+ format,
+ style,
+ locales,
+ withTime,
+ )
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `formatEpochToDateTime(currentNetwork.value, ...)` you should rather use `formatEpochToDateTime(...)` from `useFormat.ts`.
+ * Wherever you would write `formatEpochToDateTime(currentNetwork.value, ...)`
+ * you should rather use `formatEpochToDateTime(...)` from `useFormat.ts`.
*/
-export function formatEpochToDateTime(chainId: ChainIDs, epoch: number, timestamp?: number, format?: AgeFormat, style?: StringUnitLength, locales?: string, withTime?: boolean): string | null | undefined {
- return formatTs(epochToTs(chainId, epoch), timestamp, format, style, locales, withTime)
+export function formatEpochToDateTime(
+ chainId: ChainIDs,
+ epoch: number,
+ timestamp?: number,
+ format?: AgeFormat,
+ style?: StringUnitLength,
+ locales?: string,
+ withTime?: boolean,
+): string | null | undefined {
+ return formatTs(
+ epochToTs(chainId, epoch),
+ timestamp,
+ format,
+ style,
+ locales,
+ withTime,
+ )
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `formatSlotToDateTime(currentNetwork.value, ...)` you should rather use `formatSlotToDateTime(...)` from `useFormat.ts`.
+ * Wherever you would write `formatSlotToDateTime(currentNetwork.value, ...)`
+ * you should rather use `formatSlotToDateTime(...)` from `useFormat.ts`.
*/
-export function formatSlotToDateTime(chainId: ChainIDs, slot: number, timestamp?: number, format?: AgeFormat, style?: StringUnitLength, locales?: string, withTime?: boolean): string | null | undefined {
- return formatTs(slotToTs(chainId, slot), timestamp, format, style, locales, withTime)
+export function formatSlotToDateTime(
+ chainId: ChainIDs,
+ slot: number,
+ timestamp?: number,
+ format?: AgeFormat,
+ style?: StringUnitLength,
+ locales?: string,
+ withTime?: boolean,
+): string | null | undefined {
+ return formatTs(
+ slotToTs(chainId, slot),
+ timestamp,
+ format,
+ style,
+ locales,
+ withTime,
+ )
}
/**
* Should be used only when you work with a network different from the current one.
- * Wherever you would write `formatEpochToDate(currentNetwork.value, ...)` you should rather use `formatEpochToDate(...)` from `useFormat.ts`.
+ * Wherever you would write `formatEpochToDate(currentNetwork.value, ...)` you
+ * should rather use `formatEpochToDate(...)` from `useFormat.ts`.
*/
-export function formatEpochToDate(chainId: ChainIDs, epoch: number, locales: string): string | null | undefined {
- return formatEpochToDateTime(chainId, epoch, undefined, 'absolute', undefined, locales, false)
+export function formatEpochToDate(
+ chainId: ChainIDs,
+ epoch: number,
+ locales: string,
+): string | null | undefined {
+ return formatEpochToDateTime(
+ chainId,
+ epoch,
+ undefined,
+ 'absolute',
+ undefined,
+ locales,
+ false,
+ )
}
export function formattedNumberToHtml(value?: string): string | undefined {
return value?.split(',').join(' ')
}
-export function formatTimeDuration(seconds: number | undefined, t: ComposerTranslation): string | undefined {
+export function formatTimeDuration(
+ seconds: number | undefined,
+ t: ComposerTranslation,
+): string | undefined {
if (seconds === undefined) {
return undefined
}
@@ -209,7 +314,10 @@ export function formatTimeDuration(seconds: number | undefined, t: ComposerTrans
return t(translationId, { amount }, amount === 1 ? 1 : 2)
}
-export function formatNanoSecondDuration(nano: number | undefined, t: ComposerTranslation): string | undefined {
+export function formatNanoSecondDuration(
+ nano: number | undefined,
+ t: ComposerTranslation,
+): string | undefined {
if (nano === undefined) {
return undefined
}
@@ -217,7 +325,13 @@ export function formatNanoSecondDuration(nano: number | undefined, t: ComposerTr
return formatTimeDuration(seconds, t)
}
-export function formatFiat(value: number, currency: string, locales: string, minimumFractionDigits?: number, maximumFractionDigits?: number) {
+export function formatFiat(
+ value: number,
+ currency: string,
+ locales: string,
+ minimumFractionDigits?: number,
+ maximumFractionDigits?: number,
+) {
const formatter = new Intl.NumberFormat(locales, {
style: 'currency',
currency,
@@ -228,6 +342,16 @@ export function formatFiat(value: number, currency: string, locales: string, min
return formatter.format(value)
}
-export const formatPremiumProductPrice = (t: ComposerTranslation, price: number, digits?: number) => {
- return formatFiat(price, 'EUR', t('locales.currency'), digits ?? 2, digits ?? 2)
+export const formatPremiumProductPrice = (
+ t: ComposerTranslation,
+ price: number,
+ digits?: number,
+) => {
+ return formatFiat(
+ price,
+ 'EUR',
+ t('locales.currency'),
+ digits ?? 2,
+ digits ?? 2,
+ )
}
diff --git a/frontend/utils/html.ts b/frontend/utils/html.ts
index 1c0d1a433..34298793c 100644
--- a/frontend/utils/html.ts
+++ b/frontend/utils/html.ts
@@ -1,4 +1,7 @@
-export function isParent(parent: HTMLElement | null, child: HTMLElement | null): boolean {
+export function isParent(
+ parent: HTMLElement | null,
+ child: HTMLElement | null,
+): boolean {
if (!parent || !child) {
return false
}
@@ -15,13 +18,19 @@ export function isParent(parent: HTMLElement | null, child: HTMLElement | null):
}
function isScrollable(element: HTMLElement): boolean {
- if (element.offsetWidth < element.scrollWidth || element.offsetHeight < element.scrollHeight) {
+ if (
+ element.offsetWidth < element.scrollWidth
+ || element.offsetHeight < element.scrollHeight
+ ) {
return true
}
return false
}
-export function isOrIsInIteractiveContainer(child: HTMLElement | null, stopSearchAtElement?: HTMLElement): boolean {
+export function isOrIsInIteractiveContainer(
+ child: HTMLElement | null,
+ stopSearchAtElement?: HTMLElement,
+): boolean {
if (!child || child === stopSearchAtElement) {
return false
}
@@ -35,7 +44,10 @@ export function isOrIsInIteractiveContainer(child: HTMLElement | null, stopSearc
return isOrIsInIteractiveContainer(child.parentElement, stopSearchAtElement)
}
-export function findAllScrollParents(child: HTMLElement | null, list?: HTMLElement[]): HTMLElement[] {
+export function findAllScrollParents(
+ child: HTMLElement | null,
+ list?: HTMLElement[],
+): HTMLElement[] {
if (!list) {
list = []
}
diff --git a/frontend/utils/misc.ts b/frontend/utils/misc.ts
index bd1a64df5..6b39f777b 100644
--- a/frontend/utils/misc.ts
+++ b/frontend/utils/misc.ts
@@ -18,8 +18,12 @@ export function levenshteinDistance(str1: string, str2: string): number {
dist[i][j] = j
}
else {
- const subst = (str1[i - 1] === str2[j - 1]) ? 0 : 1
- dist[i][j] = Math.min(dist[i - 1][j] + 1, dist[i][j - 1] + 1, dist[i - 1][j - 1] + subst)
+ const subst = str1[i - 1] === str2[j - 1] ? 0 : 1
+ dist[i][j] = Math.min(
+ dist[i - 1][j] + 1,
+ dist[i][j - 1] + 1,
+ dist[i - 1][j - 1] + subst,
+ )
}
}
}
@@ -27,12 +31,11 @@ export function levenshteinDistance(str1: string, str2: string): number {
}
export function generateUUID() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
- .replace(/[xy]/g, function (c) {
- const r = Math.random() * 16 | 0
- const v = c === 'x' ? r : (r & 0x3 | 0x8)
- return v.toString(16)
- })
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ const r = (Math.random() * 16) | 0
+ const v = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString(16)
+ })
}
export function isInt(value?: string): boolean {
diff --git a/frontend/utils/mock.ts b/frontend/utils/mock.ts
index 58f3bbd1b..2b1f68265 100644
--- a/frontend/utils/mock.ts
+++ b/frontend/utils/mock.ts
@@ -1,12 +1,19 @@
import type { InternalGetLatestStateResponse } from '~/types/api/latest_state'
import type { ApiDataResponse } from '~/types/api/common'
import { isMainNet } from '~/types/network'
-import { type SearchAheadAPIresponse, type ResultType, TypeInfo, Indirect } from '~/types/searchbar'
+import {
+ type SearchAheadAPIresponse,
+ type ResultType,
+ TypeInfo,
+ Indirect,
+} from '~/types/searchbar'
import { type InternalGetUserNotificationSettingsResponse } from '~/types/api/notifications'
const probabilityOfNoResultOrError = 0.0
-export function simulateAPIresponseForTheSearchBar(body?: Record): SearchAheadAPIresponse {
+export function simulateAPIresponseForTheSearchBar(
+ body?: Record,
+): SearchAheadAPIresponse {
const searched = body?.input as string
const searchableTypes = body?.types as ResultType[]
const searchableNetworks = body?.networks as number[]
@@ -21,12 +28,14 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
}
const n = Math.floor(Number(searched))
- const searchedIsPositiveInteger = (n !== Infinity && n >= 0 && String(n) === searched)
+ const searchedIsPositiveInteger
+ = n !== Infinity && n >= 0 && String(n) === searched
let ordinal = searched
if (Number(searched) < 11 || Number(searched) > 13) {
const last = searched.slice(-1)
- ordinal += (last === '1') ? 'st' : (last === '2' ? 'nd' : (last === '3' ? 'rd' : 'th'))
+ ordinal
+ += last === '1' ? 'st' : last === '2' ? 'nd' : last === '3' ? 'rd' : 'th'
}
else {
ordinal += 'th'
@@ -73,19 +82,22 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
chain_id: 1,
type: 'slots',
num_value: Number(searched),
- hash_value: '0x910e0f2ee77c80bc506a1cefc90751b919cc612d42f17bb0acc49b546f42f0ce',
+ hash_value:
+ '0x910e0f2ee77c80bc506a1cefc90751b919cc612d42f17bb0acc49b546f42f0ce',
},
{
chain_id: 1,
type: 'blocks',
num_value: Number(searched),
- hash_value: '0x910e0f2ee77c80bc506a1cefc90751b919cc612d42f17bb0acc49b546f42f0ce',
+ hash_value:
+ '0x910e0f2ee77c80bc506a1cefc90751b919cc612d42f17bb0acc49b546f42f0ce',
},
{
chain_id: 1,
type: 'validator_by_index',
num_value: Number(searched),
- hash_value: '0xa525497ec3116c1310be8d73d2efd536dc0ce6bd4b0163dffddf94dad3d91d154c061b9a3bfd1b704a5ba67fc443974a',
+ hash_value:
+ '0xa525497ec3116c1310be8d73d2efd536dc0ce6bd4b0163dffddf94dad3d91d154c061b9a3bfd1b704a5ba67fc443974a',
},
{
chain_id: 1,
@@ -130,7 +142,8 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
chain_id: 1,
type: 'validator_by_public_key',
num_value: Math.floor(Math.random() * 1000000),
- hash_value: '0x8000300c7607886b7e6f1030f833162f81b02e702ff9cea045e5a1d4a13bc7010e277f077533c7899334df2d51d65660',
+ hash_value:
+ '0x8000300c7607886b7e6f1030f833162f81b02e702ff9cea045e5a1d4a13bc7010e277f077533c7899334df2d51d65660',
},
{
chain_id: 1,
@@ -155,7 +168,8 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
{
chain_id: 42161,
type: 'transactions',
- hash_value: '0xacd47cc7a30b4273aadec96b4e5aa06d1cfa627b751f358069b9a7febdba3c30',
+ hash_value:
+ '0xacd47cc7a30b4273aadec96b4e5aa06d1cfa627b751f358069b9a7febdba3c30',
},
{
chain_id: 8453,
@@ -179,19 +193,22 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
chain_id: 8453,
type: 'slots',
num_value: Number(searched),
- hash_value: '0xb47b779916e7b1517863ec60c372abf0dc255180ed6b47dd6f93e77f2dd6b9ca',
+ hash_value:
+ '0xb47b779916e7b1517863ec60c372abf0dc255180ed6b47dd6f93e77f2dd6b9ca',
},
{
chain_id: 8453,
type: 'blocks',
num_value: Number(searched),
- hash_value: '0xb47b779916e7b1517863ec60c372abf0dc255180ed6b47dd6f93e77f2dd6b9ca',
+ hash_value:
+ '0xb47b779916e7b1517863ec60c372abf0dc255180ed6b47dd6f93e77f2dd6b9ca',
},
{
chain_id: 8453,
type: 'validator_by_index',
num_value: Number(searched),
- hash_value: '0x99f9ec412465e15243a5996205928ef1461fd4ef6b6a0c642748c6f85de72c801751facda0c96454a8c2ad3bd19f91ee',
+ hash_value:
+ '0x99f9ec412465e15243a5996205928ef1461fd4ef6b6a0c642748c6f85de72c801751facda0c96454a8c2ad3bd19f91ee',
},
{
chain_id: 100,
@@ -202,19 +219,22 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
chain_id: 100,
type: 'slots',
num_value: Number(searched),
- hash_value: '0xd13eb040661d8d8de07d154985be5f4332f57141948a9d67b87bb7a2cae29b81',
+ hash_value:
+ '0xd13eb040661d8d8de07d154985be5f4332f57141948a9d67b87bb7a2cae29b81',
},
{
chain_id: 100,
type: 'blocks',
num_value: Number(searched),
- hash_value: '0xd13eb040661d8d8de07d154985be5f4332f57141948a9d67b87bb7a2cae29b81',
+ hash_value:
+ '0xd13eb040661d8d8de07d154985be5f4332f57141948a9d67b87bb7a2cae29b81',
},
{
chain_id: 100,
type: 'validator_by_index',
num_value: Number(searched),
- hash_value: '0x85e5ac15a728a2bf0b0b4f22312dad780d4e27856e30997ee11f73d74d86682800046a86a01d134dbdf171326cd7cc54',
+ hash_value:
+ '0x85e5ac15a728a2bf0b0b4f22312dad780d4e27856e30997ee11f73d74d86682800046a86a01d134dbdf171326cd7cc54',
},
{
chain_id: 100,
@@ -229,7 +249,8 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
{
chain_id: 100,
type: 'validators_by_withdrawal_credential',
- hash_value: '0x0100000000000000000000000c6bd499ef02a44031ffe8336f59c82d81333f2a',
+ hash_value:
+ '0x0100000000000000000000000c6bd499ef02a44031ffe8336f59c82d81333f2a',
},
{
chain_id: 100,
@@ -306,16 +327,23 @@ export function simulateAPIresponseForTheSearchBar(body?: Record):
// keeping only the results that the API is asked for
if (searchableTypes.length) {
- response.data = response.data.filter(singleRes => searchableTypes.includes(singleRes.type as ResultType))
+ response.data = response.data.filter(singleRes =>
+ searchableTypes.includes(singleRes.type as ResultType),
+ )
}
if (searchableNetworks.length) {
- response.data = response.data.filter(singleRes => searchableNetworks.includes(singleRes.chain_id) || TypeInfo[singleRes.type as ResultType].belongsToAllNetworks)
+ response.data = response.data.filter(
+ singleRes =>
+ searchableNetworks.includes(singleRes.chain_id)
+ || TypeInfo[singleRes.type as ResultType].belongsToAllNetworks,
+ )
}
// adding fake numbers of identical results where it is possible
for (const singleRes of response.data) {
const batchSize = 2 + Math.floor(30 * Math.random())
switch (TypeInfo[singleRes.type as ResultType].countSource) {
- case Indirect.APInum_value: singleRes.num_value = batchSize
+ case Indirect.APInum_value:
+ singleRes.num_value = batchSize
break
// add cases here in the future if new fields can hold batches or counts
}
@@ -356,18 +384,32 @@ interface ApiChainInfo {
name: string
}
-export function simulateAPIresponseAboutNetworkList(): ApiDataResponse {
+export function simulateAPIresponseAboutNetworkList(): ApiDataResponse<
+ ApiChainInfo[]
+> {
const result = { data: [] } as ApiDataResponse
if (isMainNet(Number(useRuntimeConfig().public.chainIdByDefault))) {
- result.data.push({ chain_id: 1, name: 'ethereum' }, { chain_id: 100, name: 'gnosis' })
+ result.data.push(
+ { chain_id: 1, name: 'ethereum' },
+ { chain_id: 100, name: 'gnosis' },
+ )
if (useRuntimeConfig().public.showInDevelopment) {
- result.data.push({ chain_id: 42161, name: 'arbitrum' }, { chain_id: 8453, name: 'base' })
+ result.data.push(
+ { chain_id: 42161, name: 'arbitrum' },
+ { chain_id: 8453, name: 'base' },
+ )
}
}
else {
- result.data.push({ chain_id: 17000, name: 'holesky' }, { chain_id: 10200, name: 'chiado' })
+ result.data.push(
+ { chain_id: 17000, name: 'holesky' },
+ { chain_id: 10200, name: 'chiado' },
+ )
if (useRuntimeConfig().public.showInDevelopment) {
- result.data.push({ chain_id: 421614, name: 'arbitrum testnet' }, { chain_id: 84532, name: 'base testnet' })
+ result.data.push(
+ { chain_id: 421614, name: 'arbitrum testnet' },
+ { chain_id: 84532, name: 'base testnet' },
+ )
}
}
return result
diff --git a/frontend/utils/regexp.ts b/frontend/utils/regexp.ts
index 8f54e8116..4646c81f4 100644
--- a/frontend/utils/regexp.ts
+++ b/frontend/utils/regexp.ts
@@ -1,5 +1,6 @@
export const REGEXP_HAS_NUMBERS = /^(?!0+$)\d+$/
+// eslint-disable-next-line vue/max-len
export const REGEXP_VALID_EMAIL = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i
export const REGEXP_VALID_NAME = /^(?=.*[a-zA-Z0-9])[a-zA-Z0-9 ]*$/
diff --git a/frontend/utils/table.ts b/frontend/utils/table.ts
index c5465c1a6..ea166ddd0 100644
--- a/frontend/utils/table.ts
+++ b/frontend/utils/table.ts
@@ -1,21 +1,34 @@
import type { DataTableSortEvent } from 'primevue/datatable'
import type { TableQueryParams, Cursor } from '~/types/datatable'
-export const setQueryPageSize = (limit: number, query?: TableQueryParams): TableQueryParams => {
+export const setQueryPageSize = (
+ limit: number,
+ query?: TableQueryParams,
+): TableQueryParams => {
return { ...query, limit }
}
-export const setQueryCursor = (cursor: Cursor, query?: TableQueryParams): TableQueryParams => {
+export const setQueryCursor = (
+ cursor: Cursor,
+ query?: TableQueryParams,
+): TableQueryParams => {
return { ...query, cursor }
}
-export const setQuerySearch = (search?: string, query?: TableQueryParams): TableQueryParams => {
+export const setQuerySearch = (
+ search?: string,
+ query?: TableQueryParams,
+): TableQueryParams => {
return { ...query, search }
}
-export const getSortOrder = (dir?: number | null) => dir === -1 ? 'asc' : 'desc'
+export const getSortOrder = (dir?: number | null) =>
+ dir === -1 ? 'asc' : 'desc'
-export const setQuerySort = (sort?: DataTableSortEvent, query?: TableQueryParams): TableQueryParams => {
+export const setQuerySort = (
+ sort?: DataTableSortEvent,
+ query?: TableQueryParams,
+): TableQueryParams => {
query = query || {}
if (sort?.multiSortMeta?.length) {
if (!query) {
@@ -23,9 +36,11 @@ export const setQuerySort = (sort?: DataTableSortEvent, query?: TableQueryParams
}
query = {
...query,
- sort: sort?.multiSortMeta.map((obj) => {
- return `${obj.field}:${getSortOrder(obj.order)}`
- }).join(','),
+ sort: sort?.multiSortMeta
+ .map((obj) => {
+ return `${obj.field}:${getSortOrder(obj.order)}`
+ })
+ .join(','),
}
}
else if (sort?.sortField && sort?.sortOrder) {
diff --git a/frontend/utils/translation.ts b/frontend/utils/translation.ts
index 2a46704cd..47979723b 100644
--- a/frontend/utils/translation.ts
+++ b/frontend/utils/translation.ts
@@ -3,40 +3,67 @@ import type { ComposerTranslation } from 'vue-i18n'
const NOT_FOUND = 'NOT_FOUND'
const END_OF_ARRAY = 'END_OF_ARRAY'
-export function formatMultiPartSpan(t: ComposerTranslation, key: string, classes: (string | undefined)[], options?: any) {
- const parts = classes.map((c, index) => {
- const value = tOf(t, key, index, options)
- if (!value) {
- return undefined
- }
- const classString = c ? `class="${c}"` : ''
- return `${value} `
- }).filter(v => !!v)
+export function formatMultiPartSpan(
+ t: ComposerTranslation,
+ key: string,
+ classes: (string | undefined)[],
+ options?: any,
+) {
+ const parts = classes
+ .map((c, index) => {
+ const value = tOf(t, key, index, options)
+ if (!value) {
+ return undefined
+ }
+ const classString = c ? `class="${c}"` : ''
+ return `${value} `
+ })
+ .filter(v => !!v)
return `${parts.join(' ')} `
}
-/** Translation with default. Needed if we want to default to '' as the translation lib does not support to default to '' */
-export function tD(t: ComposerTranslation, path: string, options?: any, d: string = ''): string {
+/** Translation with default. Needed if we want to default to '' as the
+ * translation lib does not support to default to '' */
+export function tD(
+ t: ComposerTranslation,
+ path: string,
+ options?: any,
+ d: string = '',
+): string {
if (typeof options === 'number') {
options = { plural: options }
}
const translation = t(path, NOT_FOUND, { ...options, missingWarn: false })
- return (translation === NOT_FOUND) ? d : translation
+ return translation === NOT_FOUND ? d : translation
}
-function tOfWithEOA(t: ComposerTranslation, path: string, index: number, options?: any): string {
+function tOfWithEOA(
+ t: ComposerTranslation,
+ path: string,
+ index: number,
+ options?: any,
+): string {
return tD(t, `${path}[${index}]`, options, END_OF_ARRAY)
}
/** gets a translation at a specific index, if it exists */
-export function tOf(t: ComposerTranslation, path: string, index: number, options?: any): string {
+export function tOf(
+ t: ComposerTranslation,
+ path: string,
+ index: number,
+ options?: any,
+): string {
const element = tOfWithEOA(t, path, index, options)
- return (element === END_OF_ARRAY) ? '' : element
+ return element === END_OF_ARRAY ? '' : element
}
/** returns an array of translations (with only one element if the translation data is a simple string) */
-export function tAll(t: ComposerTranslation, path: string, options?: any): string[] {
+export function tAll(
+ t: ComposerTranslation,
+ path: string,
+ options?: any,
+): string[] {
const list: string[] = []
if (tD(t, path, options, NOT_FOUND) !== NOT_FOUND) {
// the data is a string, we push the translation
@@ -45,7 +72,11 @@ export function tAll(t: ComposerTranslation, path: string, options?: any): strin
else {
// the data is an array
let index = 0
- for (let value = tOfWithEOA(t, path, index, options); value !== END_OF_ARRAY; value = tOfWithEOA(t, path, ++index, options)) {
+ for (
+ let value = tOfWithEOA(t, path, index, options);
+ value !== END_OF_ARRAY;
+ value = tOfWithEOA(t, path, ++index, options)
+ ) {
list.push(value)
}
}
diff --git a/frontend/utils/userValidation.ts b/frontend/utils/userValidation.ts
index 8620db91b..ca089d0de 100644
--- a/frontend/utils/userValidation.ts
+++ b/frontend/utils/userValidation.ts
@@ -3,23 +3,46 @@ import type { StringSchema, BooleanSchema } from 'yup'
import { ref as yupRef, string as yupString, boolean as yupBool } from 'yup'
export function passwordValidation(t: ComposerTranslation): StringSchema {
- return yupString().required(t('validation.password.empty')).min(5, t('validation.password.min', { amount: 5 })).max(64, t('validation.password.max', { amount: 64 }))
+ return yupString()
+ .required(t('validation.password.empty'))
+ .min(5, t('validation.password.min', { amount: 5 }))
+ .max(64, t('validation.password.max', { amount: 64 }))
}
-export function confirmPasswordValidation(t: ComposerTranslation, comparerRefName: string): StringSchema {
- return passwordValidation(t).oneOf([yupRef(comparerRefName)], t('validation.password.no_match'))
+export function confirmPasswordValidation(
+ t: ComposerTranslation,
+ comparerRefName: string,
+): StringSchema {
+ return passwordValidation(t).oneOf(
+ [yupRef(comparerRefName)],
+ t('validation.password.no_match'),
+ )
}
-export function newPasswordValidation(t: ComposerTranslation, oldRefName: string): StringSchema {
- return passwordValidation(t).notOneOf([yupRef(oldRefName)], t('validation.password.not_new'))
+export function newPasswordValidation(
+ t: ComposerTranslation,
+ oldRefName: string,
+): StringSchema {
+ return passwordValidation(t).notOneOf(
+ [yupRef(oldRefName)],
+ t('validation.password.not_new'),
+ )
}
export function emailValidation(t: ComposerTranslation): StringSchema {
- return yupString().required(t('validation.email.empty')).matches(REGEXP_VALID_EMAIL, t('validation.email.invalid'))
+ return yupString()
+ .required(t('validation.email.empty'))
+ .matches(REGEXP_VALID_EMAIL, t('validation.email.invalid'))
}
-export function confirmEmailValidation(t: ComposerTranslation, comparerRefName: string): StringSchema {
- return emailValidation(t).oneOf([yupRef(comparerRefName)], t('validation.email.no_match'))
+export function confirmEmailValidation(
+ t: ComposerTranslation,
+ comparerRefName: string,
+): StringSchema {
+ return emailValidation(t).oneOf(
+ [yupRef(comparerRefName)],
+ t('validation.email.no_match'),
+ )
}
export function checkboxValidation(errorMessage: string): BooleanSchema {