@quillsql/react 2.13.40 → 2.13.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Chart.d.ts +5 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +51 -28
- package/dist/cjs/ChartBuilder.d.ts +13 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +342 -138
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -1
- package/dist/cjs/Context.d.ts +16 -4
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +57 -38
- package/dist/cjs/Dashboard.d.ts +6 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +70 -28
- package/dist/cjs/QuillProvider.d.ts +4 -8
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +117 -45
- package/dist/cjs/SQLEditor.d.ts +7 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +53 -9
- package/dist/cjs/Table.d.ts +21 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +30 -192
- package/dist/cjs/components/Chart/BarChart.d.ts +5 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +4 -3
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.js +26 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/GaugeChart.js +198 -0
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +14 -11
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +4 -3
- package/dist/cjs/components/Chart/MapChart.d.ts +36 -0
- package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/MapChart.js +548 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +114 -42
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +57 -54
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +12 -11
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +13 -13
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +28 -7
- package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +15 -2
- package/dist/cjs/components/UiComponents.d.ts +4 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +31 -5
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +11 -9
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +18 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +16 -3
- package/dist/cjs/hooks/useReport.d.ts.map +1 -1
- package/dist/cjs/hooks/useReport.js +1 -7
- package/dist/cjs/hooks/useVirtualTables.d.ts +6 -2
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +5 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/cjs/models/Filter.d.ts +20 -13
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +161 -87
- package/dist/cjs/models/Report.d.ts +12 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +12 -1
- package/dist/cjs/models/Schema.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +22 -22
- package/dist/cjs/utils/astProcessing.d.ts +2 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +25 -6
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +25 -0
- package/dist/cjs/utils/color.d.ts +159 -0
- package/dist/cjs/utils/color.d.ts.map +1 -1
- package/dist/cjs/utils/color.js +14 -5
- package/dist/cjs/utils/columnProcessing.js +3 -3
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +2 -1
- package/dist/cjs/utils/dashboard.d.ts +13 -3
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +73 -16
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +3 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +9 -9
- package/dist/cjs/utils/getDomain.d.ts +4 -1
- package/dist/cjs/utils/getDomain.d.ts.map +1 -1
- package/dist/cjs/utils/getDomain.js +11 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +5 -5
- package/dist/cjs/utils/queryConstructor.d.ts +1 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +71 -43
- package/dist/cjs/utils/report.d.ts +23 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +28 -8
- package/dist/cjs/utils/schema.d.ts +26 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +75 -43
- package/dist/cjs/utils/tableProcessing.d.ts +10 -3
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +4 -6
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +0 -1
- package/dist/esm/Chart.d.ts +5 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +52 -29
- package/dist/esm/ChartBuilder.d.ts +13 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +347 -143
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +11 -1
- package/dist/esm/Context.d.ts +16 -4
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +59 -40
- package/dist/esm/Dashboard.d.ts +6 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +71 -29
- package/dist/esm/QuillProvider.d.ts +4 -8
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +119 -47
- package/dist/esm/SQLEditor.d.ts +7 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +54 -10
- package/dist/esm/Table.d.ts +21 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +34 -196
- package/dist/esm/components/Chart/BarChart.d.ts +5 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +5 -4
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/esm/components/Chart/CustomReferenceLine.js +23 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/GaugeChart.js +195 -0
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +14 -11
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +5 -4
- package/dist/esm/components/Chart/MapChart.d.ts +36 -0
- package/dist/esm/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/MapChart.js +541 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +114 -42
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +57 -54
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +12 -11
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +14 -14
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +26 -7
- package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +15 -2
- package/dist/esm/components/UiComponents.d.ts +4 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +29 -4
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +11 -9
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +19 -5
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +16 -3
- package/dist/esm/hooks/useReport.d.ts.map +1 -1
- package/dist/esm/hooks/useReport.js +1 -7
- package/dist/esm/hooks/useVirtualTables.d.ts +6 -2
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +6 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/esm/models/Filter.d.ts +20 -13
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +160 -86
- package/dist/esm/models/Report.d.ts +12 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +12 -1
- package/dist/esm/models/Schema.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +23 -23
- package/dist/esm/utils/astProcessing.d.ts +2 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +25 -6
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +25 -0
- package/dist/esm/utils/color.d.ts +159 -0
- package/dist/esm/utils/color.d.ts.map +1 -1
- package/dist/esm/utils/color.js +8 -2
- package/dist/esm/utils/columnProcessing.js +3 -3
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +13 -3
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +73 -16
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +3 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +10 -10
- package/dist/esm/utils/getDomain.d.ts +4 -1
- package/dist/esm/utils/getDomain.d.ts.map +1 -1
- package/dist/esm/utils/getDomain.js +11 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +5 -5
- package/dist/esm/utils/queryConstructor.d.ts +1 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +71 -43
- package/dist/esm/utils/report.d.ts +23 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +29 -9
- package/dist/esm/utils/schema.d.ts +26 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +74 -43
- package/dist/esm/utils/tableProcessing.d.ts +10 -3
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +4 -6
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +0 -1
- package/package.json +8 -3
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.USMap = USMap;
|
|
7
|
+
exports.WorldMap = WorldMap;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_simple_maps_1 = require("react-simple-maps");
|
|
10
|
+
const d3_geo_1 = require("d3-geo");
|
|
11
|
+
const d3_scale_1 = require("d3-scale");
|
|
12
|
+
const react_1 = require("react");
|
|
13
|
+
const ChartTooltipFrame_1 = __importDefault(require("./ChartTooltipFrame"));
|
|
14
|
+
const ChartTooltipRow_1 = __importDefault(require("./ChartTooltipRow"));
|
|
15
|
+
const valueFormatter_1 = require("../../utils/valueFormatter");
|
|
16
|
+
const statesUrl = "https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json";
|
|
17
|
+
const countriesUrl = "https://cdn.jsdelivr.net/npm/world-atlas@2/countries-50m.json";
|
|
18
|
+
const fipsToNames = {
|
|
19
|
+
'01': { name: 'Alabama', abbreviation: 'AL' },
|
|
20
|
+
'02': { name: 'Alaska', abbreviation: 'AK' },
|
|
21
|
+
'04': { name: 'Arizona', abbreviation: 'AZ' },
|
|
22
|
+
'05': { name: 'Arkansas', abbreviation: 'AR' },
|
|
23
|
+
'06': { name: 'California', abbreviation: 'CA' },
|
|
24
|
+
'08': { name: 'Colorado', abbreviation: 'CO' },
|
|
25
|
+
'09': { name: 'Connecticut', abbreviation: 'CT' },
|
|
26
|
+
'10': { name: 'Delaware', abbreviation: 'DE' },
|
|
27
|
+
'12': { name: 'Florida', abbreviation: 'FL' },
|
|
28
|
+
'13': { name: 'Georgia', abbreviation: 'GA' },
|
|
29
|
+
'15': { name: 'Hawaii', abbreviation: 'HI' },
|
|
30
|
+
'16': { name: 'Idaho', abbreviation: 'ID' },
|
|
31
|
+
'17': { name: 'Illinois', abbreviation: 'IL' },
|
|
32
|
+
'18': { name: 'Indiana', abbreviation: 'IN' },
|
|
33
|
+
'19': { name: 'Iowa', abbreviation: 'IA' },
|
|
34
|
+
'20': { name: 'Kansas', abbreviation: 'KS' },
|
|
35
|
+
'21': { name: 'Kentucky', abbreviation: 'KY' },
|
|
36
|
+
'22': { name: 'Louisiana', abbreviation: 'LA' },
|
|
37
|
+
'23': { name: 'Maine', abbreviation: 'ME' },
|
|
38
|
+
'24': { name: 'Maryland', abbreviation: 'MD' },
|
|
39
|
+
'25': { name: 'Massachusetts', abbreviation: 'MA' },
|
|
40
|
+
'26': { name: 'Michigan', abbreviation: 'MI' },
|
|
41
|
+
'27': { name: 'Minnesota', abbreviation: 'MN' },
|
|
42
|
+
'28': { name: 'Mississippi', abbreviation: 'MS' },
|
|
43
|
+
'29': { name: 'Missouri', abbreviation: 'MO' },
|
|
44
|
+
'30': { name: 'Montana', abbreviation: 'MT' },
|
|
45
|
+
'31': { name: 'Nebraska', abbreviation: 'NE' },
|
|
46
|
+
'32': { name: 'Nevada', abbreviation: 'NV' },
|
|
47
|
+
'33': { name: 'New Hampshire', abbreviation: 'NH' },
|
|
48
|
+
'34': { name: 'New Jersey', abbreviation: 'NJ' },
|
|
49
|
+
'35': { name: 'New Mexico', abbreviation: 'NM' },
|
|
50
|
+
'36': { name: 'New York', abbreviation: 'NY' },
|
|
51
|
+
'37': { name: 'North Carolina', abbreviation: 'NC' },
|
|
52
|
+
'38': { name: 'North Dakota', abbreviation: 'ND' },
|
|
53
|
+
'39': { name: 'Ohio', abbreviation: 'OH' },
|
|
54
|
+
'40': { name: 'Oklahoma', abbreviation: 'OK' },
|
|
55
|
+
'41': { name: 'Oregon', abbreviation: 'OR' },
|
|
56
|
+
'42': { name: 'Pennsylvania', abbreviation: 'PA' },
|
|
57
|
+
'44': { name: 'Rhode Island', abbreviation: 'RI' },
|
|
58
|
+
'45': { name: 'South Carolina', abbreviation: 'SC' },
|
|
59
|
+
'46': { name: 'South Dakota', abbreviation: 'SD' },
|
|
60
|
+
'47': { name: 'Tennessee', abbreviation: 'TN' },
|
|
61
|
+
'48': { name: 'Texas', abbreviation: 'TX' },
|
|
62
|
+
'49': { name: 'Utah', abbreviation: 'UT' },
|
|
63
|
+
'50': { name: 'Vermont', abbreviation: 'VT' },
|
|
64
|
+
'51': { name: 'Virginia', abbreviation: 'VA' },
|
|
65
|
+
'53': { name: 'Washington', abbreviation: 'WA' },
|
|
66
|
+
'54': { name: 'West Virginia', abbreviation: 'WV' },
|
|
67
|
+
'55': { name: 'Wisconsin', abbreviation: 'WI' },
|
|
68
|
+
'56': { name: 'Wyoming', abbreviation: 'WY' },
|
|
69
|
+
'72': { name: 'Puerto Rico', abbreviation: 'PR' },
|
|
70
|
+
};
|
|
71
|
+
const isoToNames = {
|
|
72
|
+
'004': { name: 'Afghanistan', abbreviation: 'AF' },
|
|
73
|
+
'008': { name: 'Albania', abbreviation: 'AL' },
|
|
74
|
+
'010': { name: 'Antarctica', abbreviation: 'AQ' },
|
|
75
|
+
'012': { name: 'Algeria', abbreviation: 'DZ' },
|
|
76
|
+
'016': { name: 'American Samoa', abbreviation: 'AS' },
|
|
77
|
+
'020': { name: 'Andorra', abbreviation: 'AD' },
|
|
78
|
+
'024': { name: 'Angola', abbreviation: 'AO' },
|
|
79
|
+
'028': { name: 'Antigua and Barbuda', abbreviation: 'AG' },
|
|
80
|
+
'031': { name: 'Azerbaijan', abbreviation: 'AZ' },
|
|
81
|
+
'032': { name: 'Argentina', abbreviation: 'AR' },
|
|
82
|
+
'036': { name: 'Australia', abbreviation: 'AU' },
|
|
83
|
+
'040': { name: 'Austria', abbreviation: 'AT' },
|
|
84
|
+
'044': { name: 'Bahamas', abbreviation: 'BS' },
|
|
85
|
+
'048': { name: 'Bahrain', abbreviation: 'BH' },
|
|
86
|
+
'050': { name: 'Bangladesh', abbreviation: 'BD' },
|
|
87
|
+
'051': { name: 'Armenia', abbreviation: 'AM' },
|
|
88
|
+
'052': { name: 'Barbados', abbreviation: 'BB' },
|
|
89
|
+
'056': { name: 'Belgium', abbreviation: 'BE' },
|
|
90
|
+
'060': { name: 'Bermuda', abbreviation: 'BM' },
|
|
91
|
+
'064': { name: 'Bhutan', abbreviation: 'BT' },
|
|
92
|
+
'068': { name: 'Bolivia', abbreviation: 'BO' },
|
|
93
|
+
'070': { name: 'Bosnia and Herzegovina', abbreviation: 'BA' },
|
|
94
|
+
'072': { name: 'Botswana', abbreviation: 'BW' },
|
|
95
|
+
'074': { name: 'Bouvet Island', abbreviation: 'BV' },
|
|
96
|
+
'076': { name: 'Brazil', abbreviation: 'BR' },
|
|
97
|
+
'084': { name: 'Belize', abbreviation: 'BZ' },
|
|
98
|
+
'086': { name: 'British Indian Ocean Territory', abbreviation: 'IO' },
|
|
99
|
+
'090': { name: 'Solomon Islands', abbreviation: 'SB' },
|
|
100
|
+
'092': { name: 'British Virgin Islands', abbreviation: 'VG' },
|
|
101
|
+
'096': { name: 'Brunei', abbreviation: 'BN' },
|
|
102
|
+
'100': { name: 'Bulgaria', abbreviation: 'BG' },
|
|
103
|
+
'104': { name: 'Myanmar', abbreviation: 'MM' },
|
|
104
|
+
'108': { name: 'Burundi', abbreviation: 'BI' },
|
|
105
|
+
'112': { name: 'Belarus', abbreviation: 'BY' },
|
|
106
|
+
'116': { name: 'Cambodia', abbreviation: 'KH' },
|
|
107
|
+
'120': { name: 'Cameroon', abbreviation: 'CM' },
|
|
108
|
+
'124': { name: 'Canada', abbreviation: 'CA' },
|
|
109
|
+
'132': { name: 'Cape Verde', abbreviation: 'CV' },
|
|
110
|
+
'136': { name: 'Cayman Islands', abbreviation: 'KY' },
|
|
111
|
+
'140': { name: 'Central African Republic', abbreviation: 'CF' },
|
|
112
|
+
'144': { name: 'Sri Lanka', abbreviation: 'LK' },
|
|
113
|
+
'148': { name: 'Chad', abbreviation: 'TD' },
|
|
114
|
+
'152': { name: 'Chile', abbreviation: 'CL' },
|
|
115
|
+
'156': { name: 'China', abbreviation: 'CN' },
|
|
116
|
+
'158': { name: 'Taiwan', abbreviation: 'TW' },
|
|
117
|
+
'162': { name: 'Christmas Island', abbreviation: 'CX' },
|
|
118
|
+
'166': { name: 'Cocos (Keeling) Islands', abbreviation: 'CC' },
|
|
119
|
+
'170': { name: 'Colombia', abbreviation: 'CO' },
|
|
120
|
+
'174': { name: 'Comoros', abbreviation: 'KM' },
|
|
121
|
+
'175': { name: 'Mayotte', abbreviation: 'YT' },
|
|
122
|
+
'178': { name: 'Republic of the Congo', abbreviation: 'CG' },
|
|
123
|
+
'180': { name: 'Democratic Republic of the Congo', abbreviation: 'CD' },
|
|
124
|
+
'184': { name: 'Cook Islands', abbreviation: 'CK' },
|
|
125
|
+
'188': { name: 'Costa Rica', abbreviation: 'CR' },
|
|
126
|
+
'191': { name: 'Croatia', abbreviation: 'HR' },
|
|
127
|
+
'192': { name: 'Cuba', abbreviation: 'CU' },
|
|
128
|
+
'196': { name: 'Cyprus', abbreviation: 'CY' },
|
|
129
|
+
'203': { name: 'Czech Republic', abbreviation: 'CZ' },
|
|
130
|
+
'204': { name: 'Benin', abbreviation: 'BJ' },
|
|
131
|
+
'208': { name: 'Denmark', abbreviation: 'DK' },
|
|
132
|
+
'212': { name: 'Dominica', abbreviation: 'DM' },
|
|
133
|
+
'214': { name: 'Dominican Republic', abbreviation: 'DO' },
|
|
134
|
+
'218': { name: 'Ecuador', abbreviation: 'EC' },
|
|
135
|
+
'222': { name: 'El Salvador', abbreviation: 'SV' },
|
|
136
|
+
'226': { name: 'Equatorial Guinea', abbreviation: 'GQ' },
|
|
137
|
+
'231': { name: 'Ethiopia', abbreviation: 'ET' },
|
|
138
|
+
'232': { name: 'Eritrea', abbreviation: 'ER' },
|
|
139
|
+
'233': { name: 'Estonia', abbreviation: 'EE' },
|
|
140
|
+
'234': { name: 'Faroe Islands', abbreviation: 'FO' },
|
|
141
|
+
'238': { name: 'Falkland Islands', abbreviation: 'FK' },
|
|
142
|
+
'239': { name: 'South Georgia and the South Sandwich Islands', abbreviation: 'GS' },
|
|
143
|
+
'242': { name: 'Fiji', abbreviation: 'FJ' },
|
|
144
|
+
'246': { name: 'Finland', abbreviation: 'FI' },
|
|
145
|
+
'248': { name: 'Åland Islands', abbreviation: 'AX' },
|
|
146
|
+
'250': { name: 'France', abbreviation: 'FR' },
|
|
147
|
+
'254': { name: 'French Guiana', abbreviation: 'GF' },
|
|
148
|
+
'258': { name: 'French Polynesia', abbreviation: 'PF' },
|
|
149
|
+
'260': { name: 'French Southern and Antarctic Lands', abbreviation: 'TF' },
|
|
150
|
+
'262': { name: 'Djibouti', abbreviation: 'DJ' },
|
|
151
|
+
'266': { name: 'Gabon', abbreviation: 'GA' },
|
|
152
|
+
'268': { name: 'Georgia', abbreviation: 'GE' },
|
|
153
|
+
'270': { name: 'Gambia', abbreviation: 'GM' },
|
|
154
|
+
'275': { name: 'Palestine', abbreviation: 'PS' },
|
|
155
|
+
'276': { name: 'Germany', abbreviation: 'DE' },
|
|
156
|
+
'288': { name: 'Ghana', abbreviation: 'GH' },
|
|
157
|
+
'292': { name: 'Gibraltar', abbreviation: 'GI' },
|
|
158
|
+
'296': { name: 'Kiribati', abbreviation: 'KI' },
|
|
159
|
+
'300': { name: 'Greece', abbreviation: 'GR' },
|
|
160
|
+
'304': { name: 'Greenland', abbreviation: 'GL' },
|
|
161
|
+
'308': { name: 'Grenada', abbreviation: 'GD' },
|
|
162
|
+
'312': { name: 'Guadeloupe', abbreviation: 'GP' },
|
|
163
|
+
'316': { name: 'Guam', abbreviation: 'GU' },
|
|
164
|
+
'320': { name: 'Guatemala', abbreviation: 'GT' },
|
|
165
|
+
'324': { name: 'Guinea', abbreviation: 'GN' },
|
|
166
|
+
'328': { name: 'Guyana', abbreviation: 'GY' },
|
|
167
|
+
'332': { name: 'Haiti', abbreviation: 'HT' },
|
|
168
|
+
'334': { name: 'Heard Island and McDonald Islands', abbreviation: 'HM' },
|
|
169
|
+
'336': { name: 'Vatican City', abbreviation: 'VA' },
|
|
170
|
+
'340': { name: 'Honduras', abbreviation: 'HN' },
|
|
171
|
+
'344': { name: 'Hong Kong', abbreviation: 'HK' },
|
|
172
|
+
'348': { name: 'Hungary', abbreviation: 'HU' },
|
|
173
|
+
'352': { name: 'Iceland', abbreviation: 'IS' },
|
|
174
|
+
'356': { name: 'India', abbreviation: 'IN' },
|
|
175
|
+
'360': { name: 'Indonesia', abbreviation: 'ID' },
|
|
176
|
+
'364': { name: 'Iran', abbreviation: 'IR' },
|
|
177
|
+
'368': { name: 'Iraq', abbreviation: 'IQ' },
|
|
178
|
+
'372': { name: 'Ireland', abbreviation: 'IE' },
|
|
179
|
+
'376': { name: 'Israel', abbreviation: 'IL' },
|
|
180
|
+
'380': { name: 'Italy', abbreviation: 'IT' },
|
|
181
|
+
'384': { name: 'Ivory Coast', abbreviation: 'CI' },
|
|
182
|
+
'388': { name: 'Jamaica', abbreviation: 'JM' },
|
|
183
|
+
'392': { name: 'Japan', abbreviation: 'JP' },
|
|
184
|
+
'398': { name: 'Kazakhstan', abbreviation: 'KZ' },
|
|
185
|
+
'400': { name: 'Jordan', abbreviation: 'JO' },
|
|
186
|
+
'404': { name: 'Kenya', abbreviation: 'KE' },
|
|
187
|
+
'408': { name: 'North Korea', abbreviation: 'KP' },
|
|
188
|
+
'410': { name: 'South Korea', abbreviation: 'KR' },
|
|
189
|
+
'414': { name: 'Kuwait', abbreviation: 'KW' },
|
|
190
|
+
'417': { name: 'Kyrgyzstan', abbreviation: 'KG' },
|
|
191
|
+
'418': { name: 'Laos', abbreviation: 'LA' },
|
|
192
|
+
'422': { name: 'Lebanon', abbreviation: 'LB' },
|
|
193
|
+
'426': { name: 'Lesotho', abbreviation: 'LS' },
|
|
194
|
+
'428': { name: 'Latvia', abbreviation: 'LV' },
|
|
195
|
+
'430': { name: 'Liberia', abbreviation: 'LR' },
|
|
196
|
+
'434': { name: 'Libya', abbreviation: 'LY' },
|
|
197
|
+
'438': { name: 'Liechtenstein', abbreviation: 'LI' },
|
|
198
|
+
'440': { name: 'Lithuania', abbreviation: 'LT' },
|
|
199
|
+
'442': { name: 'Luxembourg', abbreviation: 'LU' },
|
|
200
|
+
'446': { name: 'Macau', abbreviation: 'MO' },
|
|
201
|
+
'450': { name: 'Madagascar', abbreviation: 'MG' },
|
|
202
|
+
'454': { name: 'Malawi', abbreviation: 'MW' },
|
|
203
|
+
'458': { name: 'Malaysia', abbreviation: 'MY' },
|
|
204
|
+
'462': { name: 'Maldives', abbreviation: 'MV' },
|
|
205
|
+
'466': { name: 'Mali', abbreviation: 'ML' },
|
|
206
|
+
'470': { name: 'Malta', abbreviation: 'MT' },
|
|
207
|
+
'474': { name: 'Martinique', abbreviation: 'MQ' },
|
|
208
|
+
'478': { name: 'Mauritania', abbreviation: 'MR' },
|
|
209
|
+
'480': { name: 'Mauritius', abbreviation: 'MU' },
|
|
210
|
+
'484': { name: 'Mexico', abbreviation: 'MX' },
|
|
211
|
+
'492': { name: 'Monaco', abbreviation: 'MC' },
|
|
212
|
+
'496': { name: 'Mongolia', abbreviation: 'MN' },
|
|
213
|
+
'498': { name: 'Moldova', abbreviation: 'MD' },
|
|
214
|
+
'499': { name: 'Montenegro', abbreviation: 'ME' },
|
|
215
|
+
'500': { name: 'Montserrat', abbreviation: 'MS' },
|
|
216
|
+
'504': { name: 'Morocco', abbreviation: 'MA' },
|
|
217
|
+
'508': { name: 'Mozambique', abbreviation: 'MZ' },
|
|
218
|
+
'512': { name: 'Oman', abbreviation: 'OM' },
|
|
219
|
+
'516': { name: 'Namibia', abbreviation: 'NA' },
|
|
220
|
+
'520': { name: 'Nauru', abbreviation: 'NR' },
|
|
221
|
+
'524': { name: 'Nepal', abbreviation: 'NP' },
|
|
222
|
+
'528': { name: 'Netherlands', abbreviation: 'NL' },
|
|
223
|
+
'531': { name: 'Curaçao', abbreviation: 'CW' },
|
|
224
|
+
'533': { name: 'Aruba', abbreviation: 'AW' },
|
|
225
|
+
'534': { name: 'Sint Maarten', abbreviation: 'SX' },
|
|
226
|
+
'535': { name: 'Bonaire, Sint Eustatius and Saba', abbreviation: 'BQ' },
|
|
227
|
+
'540': { name: 'New Caledonia', abbreviation: 'NC' },
|
|
228
|
+
'548': { name: 'Vanuatu', abbreviation: 'VU' },
|
|
229
|
+
'554': { name: 'New Zealand', abbreviation: 'NZ' },
|
|
230
|
+
'558': { name: 'Nicaragua', abbreviation: 'NI' },
|
|
231
|
+
'562': { name: 'Niger', abbreviation: 'NE' },
|
|
232
|
+
'566': { name: 'Nigeria', abbreviation: 'NG' },
|
|
233
|
+
'570': { name: 'Niue', abbreviation: 'NU' },
|
|
234
|
+
'574': { name: 'Norfolk Island', abbreviation: 'NF' },
|
|
235
|
+
'578': { name: 'Norway', abbreviation: 'NO' },
|
|
236
|
+
'580': { name: 'Northern Mariana Islands', abbreviation: 'MP' },
|
|
237
|
+
'581': { name: 'United States Minor Outlying Islands', abbreviation: 'UM' },
|
|
238
|
+
'583': { name: 'Federated States of Micronesia', abbreviation: 'FM' },
|
|
239
|
+
'584': { name: 'Marshall Islands', abbreviation: 'MH' },
|
|
240
|
+
'585': { name: 'Palau', abbreviation: 'PW' },
|
|
241
|
+
'586': { name: 'Pakistan', abbreviation: 'PK' },
|
|
242
|
+
'591': { name: 'Panama', abbreviation: 'PA' },
|
|
243
|
+
'598': { name: 'Papua New Guinea', abbreviation: 'PG' },
|
|
244
|
+
'600': { name: 'Paraguay', abbreviation: 'PY' },
|
|
245
|
+
'604': { name: 'Peru', abbreviation: 'PE' },
|
|
246
|
+
'608': { name: 'Philippines', abbreviation: 'PH' },
|
|
247
|
+
'612': { name: 'Pitcairn Islands', abbreviation: 'PN' },
|
|
248
|
+
'616': { name: 'Poland', abbreviation: 'PL' },
|
|
249
|
+
'620': { name: 'Portugal', abbreviation: 'PT' },
|
|
250
|
+
'624': { name: 'Guinea-Bissau', abbreviation: 'GW' },
|
|
251
|
+
'626': { name: 'Timor-Leste', abbreviation: 'TL' },
|
|
252
|
+
'630': { name: 'Puerto Rico', abbreviation: 'PR' },
|
|
253
|
+
'634': { name: 'Qatar', abbreviation: 'QA' },
|
|
254
|
+
'638': { name: 'Réunion', abbreviation: 'RE' },
|
|
255
|
+
'642': { name: 'Romania', abbreviation: 'RO' },
|
|
256
|
+
'643': { name: 'Russia', abbreviation: 'RU' },
|
|
257
|
+
'646': { name: 'Rwanda', abbreviation: 'RW' },
|
|
258
|
+
'652': { name: 'Saint Barthélemy', abbreviation: 'BL' },
|
|
259
|
+
'654': { name: 'Saint Helena, Ascension and Tristan da Cunha', abbreviation: 'SH' },
|
|
260
|
+
'659': { name: 'Saint Kitts and Nevis', abbreviation: 'KN' },
|
|
261
|
+
'660': { name: 'Anguilla', abbreviation: 'AI' },
|
|
262
|
+
'662': { name: 'Saint Lucia', abbreviation: 'LC' },
|
|
263
|
+
'663': { name: 'Saint Martin', abbreviation: 'MF' },
|
|
264
|
+
'666': { name: 'Saint Pierre and Miquelon', abbreviation: 'PM' },
|
|
265
|
+
'670': { name: 'Saint Vincent and the Grenadines', abbreviation: 'VC' },
|
|
266
|
+
'674': { name: 'San Marino', abbreviation: 'SM' },
|
|
267
|
+
'678': { name: 'São Tomé and Príncipe', abbreviation: 'ST' },
|
|
268
|
+
'682': { name: 'Saudi Arabia', abbreviation: 'SA' },
|
|
269
|
+
'686': { name: 'Senegal', abbreviation: 'SN' },
|
|
270
|
+
'688': { name: 'Serbia', abbreviation: 'RS' },
|
|
271
|
+
'690': { name: 'Seychelles', abbreviation: 'SC' },
|
|
272
|
+
'694': { name: 'Sierra Leone', abbreviation: 'SL' },
|
|
273
|
+
'702': { name: 'Singapore', abbreviation: 'SG' },
|
|
274
|
+
'703': { name: 'Slovakia', abbreviation: 'SK' },
|
|
275
|
+
'704': { name: 'Vietnam', abbreviation: 'VN' },
|
|
276
|
+
'705': { name: 'Slovenia', abbreviation: 'SI' },
|
|
277
|
+
'706': { name: 'Somalia', abbreviation: 'SO' },
|
|
278
|
+
'710': { name: 'South Africa', abbreviation: 'ZA' },
|
|
279
|
+
'716': { name: 'Zimbabwe', abbreviation: 'ZW' },
|
|
280
|
+
'724': { name: 'Spain', abbreviation: 'ES' },
|
|
281
|
+
'728': { name: 'South Sudan', abbreviation: 'SS' },
|
|
282
|
+
'729': { name: 'Sudan', abbreviation: 'SD' },
|
|
283
|
+
'732': { name: 'Western Sahara', abbreviation: 'EH' },
|
|
284
|
+
'740': { name: 'Suriname', abbreviation: 'SR' },
|
|
285
|
+
'744': { name: 'Svalbard and Jan Mayen', abbreviation: 'SJ' },
|
|
286
|
+
'748': { name: 'Eswatini', abbreviation: 'SZ' },
|
|
287
|
+
'752': { name: 'Sweden', abbreviation: 'SE' },
|
|
288
|
+
'756': { name: 'Switzerland', abbreviation: 'CH' },
|
|
289
|
+
'760': { name: 'Syria', abbreviation: 'SY' },
|
|
290
|
+
'762': { name: 'Tajikistan', abbreviation: 'TJ' },
|
|
291
|
+
'764': { name: 'Thailand', abbreviation: 'TH' },
|
|
292
|
+
'768': { name: 'Togo', abbreviation: 'TG' },
|
|
293
|
+
'772': { name: 'Tokelau', abbreviation: 'TK' },
|
|
294
|
+
'776': { name: 'Tonga', abbreviation: 'TO' },
|
|
295
|
+
'780': { name: 'Trinidad and Tobago', abbreviation: 'TT' },
|
|
296
|
+
'784': { name: 'United Arab Emirates', abbreviation: 'AE' },
|
|
297
|
+
'788': { name: 'Tunisia', abbreviation: 'TN' },
|
|
298
|
+
'792': { name: 'Turkey', abbreviation: 'TR' },
|
|
299
|
+
'795': { name: 'Turkmenistan', abbreviation: 'TM' },
|
|
300
|
+
'796': { name: 'Turks and Caicos Islands', abbreviation: 'TC' },
|
|
301
|
+
'798': { name: 'Tuvalu', abbreviation: 'TV' },
|
|
302
|
+
'800': { name: 'Uganda', abbreviation: 'UG' },
|
|
303
|
+
'804': { name: 'Ukraine', abbreviation: 'UA' },
|
|
304
|
+
'807': { name: 'North Macedonia', abbreviation: 'MK' },
|
|
305
|
+
'818': { name: 'Egypt', abbreviation: 'EG' },
|
|
306
|
+
'826': { name: 'United Kingdom', abbreviation: 'GB' },
|
|
307
|
+
'831': { name: 'Guernsey', abbreviation: 'GG' },
|
|
308
|
+
'832': { name: 'Jersey', abbreviation: 'JE' },
|
|
309
|
+
'833': { name: 'Isle of Man', abbreviation: 'IM' },
|
|
310
|
+
'834': { name: 'Tanzania', abbreviation: 'TZ' },
|
|
311
|
+
'840': { name: 'United States', abbreviation: 'US' },
|
|
312
|
+
'850': { name: 'U.S. Virgin Islands', abbreviation: 'VI' },
|
|
313
|
+
'854': { name: 'Burkina Faso', abbreviation: 'BF' },
|
|
314
|
+
'858': { name: 'Uruguay', abbreviation: 'UY' },
|
|
315
|
+
'860': { name: 'Uzbekistan', abbreviation: 'UZ' },
|
|
316
|
+
'862': { name: 'Venezuela', abbreviation: 'VE' },
|
|
317
|
+
'876': { name: 'Wallis and Futuna', abbreviation: 'WF' },
|
|
318
|
+
'882': { name: 'Samoa', abbreviation: 'WS' },
|
|
319
|
+
'887': { name: 'Yemen', abbreviation: 'YE' },
|
|
320
|
+
'894': { name: 'Zambia', abbreviation: 'ZM' },
|
|
321
|
+
};
|
|
322
|
+
function USMap({ theme, data, xAxisField, xAxisFormat, yAxisFields, onClickChartElement, colors, colorMap, className, containerStyle, }) {
|
|
323
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
324
|
+
const [hoveredState, setHoveredState] = (0, react_1.useState)(undefined);
|
|
325
|
+
const [hoveredCoords, setHoveredCoords] = (0, react_1.useState)(undefined);
|
|
326
|
+
const mappedData = data.reduce((acc, curr) => {
|
|
327
|
+
acc[curr[xAxisField]?.toString()] = curr;
|
|
328
|
+
return acc;
|
|
329
|
+
}, {});
|
|
330
|
+
const measureField = yAxisFields[0].field;
|
|
331
|
+
const colorScale = (0, react_1.useMemo)(() => {
|
|
332
|
+
const values = Object.values(mappedData)
|
|
333
|
+
.map((d) => parseFloat(d[measureField]))
|
|
334
|
+
.filter((v) => !isNaN(v));
|
|
335
|
+
const minValue = Math.min(...values);
|
|
336
|
+
const maxValue = Math.max(...values);
|
|
337
|
+
// Allows the users to override the color scheme on a per-chart basis.
|
|
338
|
+
const getCustomColor = (field, gradient) => {
|
|
339
|
+
let key = 'primary';
|
|
340
|
+
if (colorMap && colorMap[field]) {
|
|
341
|
+
if (gradient === 'start')
|
|
342
|
+
key = 'primaryGradientStart';
|
|
343
|
+
if (gradient === 'stop')
|
|
344
|
+
key = 'primaryGradientStop';
|
|
345
|
+
// @ts-ignore
|
|
346
|
+
return colorMap[field][key];
|
|
347
|
+
}
|
|
348
|
+
return undefined; // use the default colors from the theme
|
|
349
|
+
};
|
|
350
|
+
const gradientStart = getCustomColor(yAxisFields[0]?.field ?? xAxisField, 'start') ??
|
|
351
|
+
getCustomColor(yAxisFields[0]?.field ?? xAxisField) ??
|
|
352
|
+
'#FFFFFF';
|
|
353
|
+
const gradientStop = getCustomColor(yAxisFields[0]?.field ?? xAxisField, 'stop') ??
|
|
354
|
+
getCustomColor(yAxisFields[0]?.field ?? xAxisField) ??
|
|
355
|
+
colors[0];
|
|
356
|
+
return (0, d3_scale_1.scaleLog)()
|
|
357
|
+
.domain([minValue, maxValue])
|
|
358
|
+
.range([gradientStart ?? "#f7fbff", gradientStop ?? "#08306b"]);
|
|
359
|
+
}, [mappedData, measureField, colorMap, yAxisFields, xAxisField, colors]);
|
|
360
|
+
const hoveredValue = (0, react_1.useMemo)(() => {
|
|
361
|
+
return !hoveredState ? undefined : mappedData[fipsToNames[hoveredState]?.abbreviation ?? '']?.[measureField] ??
|
|
362
|
+
mappedData[fipsToNames[hoveredState]?.name ?? '']?.[measureField] ??
|
|
363
|
+
mappedData[fipsToNames[hoveredState]?.abbreviation?.toLowerCase() ?? '']?.[measureField] ??
|
|
364
|
+
mappedData[fipsToNames[hoveredState]?.name?.toLowerCase() ?? '']?.[measureField];
|
|
365
|
+
}, [hoveredState, mappedData, measureField]);
|
|
366
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: className, style: {
|
|
367
|
+
width: "100%",
|
|
368
|
+
height: "auto",
|
|
369
|
+
marginTop: '-5%',
|
|
370
|
+
zIndex: 0,
|
|
371
|
+
...containerStyle,
|
|
372
|
+
position: "relative",
|
|
373
|
+
}, children: [(0, jsx_runtime_1.jsx)(react_simple_maps_1.ComposableMap, { projection: "geoAlbersUsa", children: (0, jsx_runtime_1.jsx)(MapLayout, { hoveredRegion: hoveredState, setHoveredRegion: setHoveredState, setHoveredCoords: setHoveredCoords, containerRef: containerRef, mappedData: mappedData, measureField: measureField, colorScale: colorScale, onClickChartElement: onClickChartElement, regionNames: fipsToNames, geographyUrl: statesUrl }) }), hoveredCoords && hoveredState && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
374
|
+
position: "absolute",
|
|
375
|
+
pointerEvents: "none",
|
|
376
|
+
left: hoveredCoords[0],
|
|
377
|
+
top: hoveredCoords[1],
|
|
378
|
+
}, children: (0, jsx_runtime_1.jsxs)(ChartTooltipFrame_1.default, { theme: theme, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
379
|
+
borderStyle: 'solid',
|
|
380
|
+
borderBottomColor: '#E5E7EB',
|
|
381
|
+
background: 'white',
|
|
382
|
+
borderTop: 'none',
|
|
383
|
+
borderLeft: 'none',
|
|
384
|
+
borderRight: 'none',
|
|
385
|
+
borderBottomWidth: 1,
|
|
386
|
+
display: 'flex',
|
|
387
|
+
flexDirection: 'column',
|
|
388
|
+
paddingLeft: '16px',
|
|
389
|
+
paddingRight: '16px',
|
|
390
|
+
paddingTop: '8px',
|
|
391
|
+
paddingBottom: '8px',
|
|
392
|
+
}, children: (0, jsx_runtime_1.jsx)("p", { style: {
|
|
393
|
+
textAlign: 'left',
|
|
394
|
+
marginTop: 0,
|
|
395
|
+
marginBottom: 0,
|
|
396
|
+
fontFamily: theme?.fontFamily,
|
|
397
|
+
color: theme?.primaryTextColor,
|
|
398
|
+
fontSize: theme?.fontSizeSmall || '14px',
|
|
399
|
+
fontWeight: theme?.fontWeightBold || '500',
|
|
400
|
+
paddingTop: 2,
|
|
401
|
+
paddingBottom: 2,
|
|
402
|
+
}, children: fipsToNames[hoveredState]?.name }) }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
403
|
+
paddingRight: '16px',
|
|
404
|
+
paddingLeft: '16px',
|
|
405
|
+
paddingTop: '8px',
|
|
406
|
+
paddingBottom: '8px',
|
|
407
|
+
}, children: yAxisFields.map((field) => ((0, jsx_runtime_1.jsx)(ChartTooltipRow_1.default, { value: (0, valueFormatter_1.valueFormatter)({
|
|
408
|
+
fields: [
|
|
409
|
+
...yAxisFields,
|
|
410
|
+
{ field: xAxisField, format: xAxisFormat },
|
|
411
|
+
],
|
|
412
|
+
field: field.field,
|
|
413
|
+
value: hoveredValue || 0,
|
|
414
|
+
}), name: mappedData[hoveredState]?.name, color: colorScale(parseFloat(hoveredValue)) || 'black', theme: theme }, `id-${field}`))) })] }) }))] }));
|
|
415
|
+
}
|
|
416
|
+
function WorldMap({ theme, data, xAxisField, xAxisFormat, yAxisFields, onClickChartElement, colors, colorMap, className, containerStyle, }) {
|
|
417
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
418
|
+
const [hoveredCountry, setHoveredCountry] = (0, react_1.useState)(undefined);
|
|
419
|
+
const [hoveredCoords, setHoveredCoords] = (0, react_1.useState)(undefined);
|
|
420
|
+
const mappedData = data.reduce((acc, curr) => {
|
|
421
|
+
acc[curr[xAxisField]?.toString()] = curr;
|
|
422
|
+
return acc;
|
|
423
|
+
}, {});
|
|
424
|
+
const measureField = yAxisFields[0].field;
|
|
425
|
+
const colorScale = (0, react_1.useMemo)(() => {
|
|
426
|
+
const values = Object.values(mappedData)
|
|
427
|
+
.map((d) => parseFloat(d[measureField]))
|
|
428
|
+
.filter((v) => !isNaN(v));
|
|
429
|
+
const minValue = Math.min(...values);
|
|
430
|
+
const maxValue = Math.max(...values);
|
|
431
|
+
// Allows the users to override the color scheme on a per-chart basis.
|
|
432
|
+
const getCustomColor = (field, gradient) => {
|
|
433
|
+
let key = 'primary';
|
|
434
|
+
if (colorMap && colorMap[field]) {
|
|
435
|
+
if (gradient === 'start')
|
|
436
|
+
key = 'primaryGradientStart';
|
|
437
|
+
if (gradient === 'stop')
|
|
438
|
+
key = 'primaryGradientStop';
|
|
439
|
+
// @ts-ignore
|
|
440
|
+
return colorMap[field][key];
|
|
441
|
+
}
|
|
442
|
+
return undefined; // use the default colors from the theme
|
|
443
|
+
};
|
|
444
|
+
const gradientStart = getCustomColor(yAxisFields[0]?.field ?? xAxisField, 'start') ??
|
|
445
|
+
getCustomColor(yAxisFields[0]?.field ?? xAxisField) ??
|
|
446
|
+
'#FFFFFF';
|
|
447
|
+
const gradientStop = getCustomColor(yAxisFields[0]?.field ?? xAxisField, 'stop') ??
|
|
448
|
+
getCustomColor(yAxisFields[0]?.field ?? xAxisField) ??
|
|
449
|
+
colors[0];
|
|
450
|
+
return (0, d3_scale_1.scaleLog)()
|
|
451
|
+
.domain([minValue, maxValue])
|
|
452
|
+
.range([gradientStart ?? "#f7fbff", gradientStop ?? "#08306b"]);
|
|
453
|
+
}, [mappedData, measureField, colorMap, yAxisFields, xAxisField, colors]);
|
|
454
|
+
const hoveredValue = (0, react_1.useMemo)(() => {
|
|
455
|
+
return !hoveredCountry ? undefined : mappedData[isoToNames[hoveredCountry]?.abbreviation ?? '']?.[measureField] ??
|
|
456
|
+
mappedData[isoToNames[hoveredCountry]?.name ?? '']?.[measureField] ??
|
|
457
|
+
mappedData[isoToNames[hoveredCountry]?.abbreviation?.toLowerCase() ?? '']?.[measureField] ??
|
|
458
|
+
mappedData[isoToNames[hoveredCountry]?.name?.toLowerCase() ?? '']?.[measureField];
|
|
459
|
+
}, [hoveredCountry, mappedData, measureField]);
|
|
460
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: className, style: {
|
|
461
|
+
width: "100%",
|
|
462
|
+
height: "auto",
|
|
463
|
+
marginTop: '-5%',
|
|
464
|
+
marginBottom: '-6.5%',
|
|
465
|
+
zIndex: 0,
|
|
466
|
+
...containerStyle,
|
|
467
|
+
position: "relative",
|
|
468
|
+
}, children: [(0, jsx_runtime_1.jsx)(react_simple_maps_1.ComposableMap, { projection: "geoEqualEarth", children: (0, jsx_runtime_1.jsx)(MapLayout, { hoveredRegion: hoveredCountry, setHoveredRegion: setHoveredCountry, setHoveredCoords: setHoveredCoords, containerRef: containerRef, mappedData: mappedData, measureField: measureField, colorScale: colorScale, onClickChartElement: onClickChartElement, geographyUrl: countriesUrl, regionNames: isoToNames }) }), hoveredCoords && hoveredCountry && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
469
|
+
position: "absolute",
|
|
470
|
+
pointerEvents: "none",
|
|
471
|
+
left: hoveredCoords[0],
|
|
472
|
+
top: hoveredCoords[1],
|
|
473
|
+
}, children: (0, jsx_runtime_1.jsxs)(ChartTooltipFrame_1.default, { theme: theme, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
474
|
+
borderStyle: 'solid',
|
|
475
|
+
borderBottomColor: '#E5E7EB',
|
|
476
|
+
background: 'white',
|
|
477
|
+
borderTop: 'none',
|
|
478
|
+
borderLeft: 'none',
|
|
479
|
+
borderRight: 'none',
|
|
480
|
+
borderBottomWidth: 1,
|
|
481
|
+
display: 'flex',
|
|
482
|
+
flexDirection: 'column',
|
|
483
|
+
paddingLeft: '16px',
|
|
484
|
+
paddingRight: '16px',
|
|
485
|
+
paddingTop: '8px',
|
|
486
|
+
paddingBottom: '8px',
|
|
487
|
+
}, children: (0, jsx_runtime_1.jsx)("p", { style: {
|
|
488
|
+
textAlign: 'left',
|
|
489
|
+
marginTop: 0,
|
|
490
|
+
marginBottom: 0,
|
|
491
|
+
fontFamily: theme?.fontFamily,
|
|
492
|
+
color: theme?.primaryTextColor,
|
|
493
|
+
fontSize: theme?.fontSizeSmall || '14px',
|
|
494
|
+
fontWeight: theme?.fontWeightBold || '500',
|
|
495
|
+
paddingTop: 2,
|
|
496
|
+
paddingBottom: 2,
|
|
497
|
+
}, children: isoToNames[hoveredCountry]?.name }) }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
498
|
+
paddingRight: '16px',
|
|
499
|
+
paddingLeft: '16px',
|
|
500
|
+
paddingTop: '8px',
|
|
501
|
+
paddingBottom: '8px',
|
|
502
|
+
}, children: yAxisFields.map((field) => ((0, jsx_runtime_1.jsx)(ChartTooltipRow_1.default, { value: (0, valueFormatter_1.valueFormatter)({
|
|
503
|
+
fields: [
|
|
504
|
+
...yAxisFields,
|
|
505
|
+
{ field: xAxisField, format: xAxisFormat },
|
|
506
|
+
],
|
|
507
|
+
field: field.field,
|
|
508
|
+
value: hoveredValue || 0,
|
|
509
|
+
}), name: field.label, color: colorScale(parseFloat(hoveredValue)) || 'black', theme: theme }, `id-${field}`))) })] }) }))] }));
|
|
510
|
+
}
|
|
511
|
+
function MapLayout({ geographyUrl, hoveredRegion, setHoveredRegion, setHoveredCoords, containerRef, mappedData, measureField, colorScale, onClickChartElement, regionNames, }) {
|
|
512
|
+
const { projection } = (0, react_simple_maps_1.useMapContext)();
|
|
513
|
+
return ((0, jsx_runtime_1.jsx)(react_simple_maps_1.Geographies, { geography: geographyUrl, children: ({ geographies }) => geographies.map((geo, index) => {
|
|
514
|
+
const regionData = mappedData[geo.id] ??
|
|
515
|
+
mappedData[regionNames[geo.id]?.abbreviation ?? ''] ??
|
|
516
|
+
mappedData[regionNames[geo.id]?.name ?? ''] ??
|
|
517
|
+
mappedData[regionNames[geo.id]?.abbreviation?.toLowerCase() ?? ''] ??
|
|
518
|
+
mappedData[regionNames[geo.id]?.name?.toLowerCase() ?? ''];
|
|
519
|
+
const value = regionData ? parseFloat(regionData[measureField]) : null;
|
|
520
|
+
const fill = value != null ? colorScale(value) : "#D6D6DA";
|
|
521
|
+
return (0, jsx_runtime_1.jsx)(react_simple_maps_1.Geography, { geography: geo, fill: fill, stroke: "#FFFFFF", strokeWidth: 0.5, onMouseEnter: () => {
|
|
522
|
+
const centroid = (0, d3_geo_1.geoCentroid)(geo);
|
|
523
|
+
const projected = projection(centroid);
|
|
524
|
+
if (projected && containerRef.current) {
|
|
525
|
+
const [x, y] = projected;
|
|
526
|
+
const svg = containerRef.current.querySelector("svg");
|
|
527
|
+
if (svg) {
|
|
528
|
+
const svgRect = svg.getBoundingClientRect();
|
|
529
|
+
const viewBoxWidth = 800, viewBoxHeight = 600;
|
|
530
|
+
const scaleX = svgRect.width / viewBoxWidth;
|
|
531
|
+
const scaleY = svgRect.height / viewBoxHeight;
|
|
532
|
+
const finalX = x * scaleX;
|
|
533
|
+
const finalY = y * scaleY;
|
|
534
|
+
setHoveredRegion(geo.id);
|
|
535
|
+
setHoveredCoords([finalX, finalY]);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}, onMouseLeave: () => {
|
|
539
|
+
if (hoveredRegion === geo.id) {
|
|
540
|
+
setHoveredRegion(undefined);
|
|
541
|
+
}
|
|
542
|
+
}, onClick: () => {
|
|
543
|
+
if (regionData) {
|
|
544
|
+
onClickChartElement?.(regionData);
|
|
545
|
+
}
|
|
546
|
+
} }, geo.id + index.toString());
|
|
547
|
+
}) }));
|
|
548
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAajD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA2BtE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAyKF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,oBAAoB,EAAE,2BAA2B,EACjD,UAAkB,GACnB,EAAE;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA6Xd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,eAAe,4FAQzB;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,KACf,YAAY,CAAC;IAClB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,iBAAiB,GAClB,EAAE,yBAAyB,KAAK,GAAG,CAAC,OAAO,CAAC;CAC9C,KAAG,GAAG,CAAC,OAoLP,CAAC"}
|