bento-charts 2.3.0 → 2.4.1
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/.github/workflows/release.yml +1 -1
- package/README.md +94 -23
- package/dist/ChartConfigProvider.d.ts +2 -2
- package/dist/ChartConfigProvider.js.map +1 -1
- package/dist/Components/Charts/BentoBarChart.js.map +1 -1
- package/dist/Components/Charts/BentoPie.js +33 -31
- package/dist/Components/Charts/BentoPie.js.map +1 -1
- package/dist/Components/Maps/BentoChoroplethMap.d.ts +3 -0
- package/dist/Components/Maps/BentoChoroplethMap.js +91 -0
- package/dist/Components/Maps/BentoChoroplethMap.js.map +1 -0
- package/dist/Components/Maps/BentoMapContainer.d.ts +7 -0
- package/dist/Components/Maps/BentoMapContainer.js +33 -0
- package/dist/Components/Maps/BentoMapContainer.js.map +1 -0
- package/dist/Components/Maps/BentoOSMTileLayer.d.ts +2 -0
- package/dist/Components/Maps/BentoOSMTileLayer.js +6 -0
- package/dist/Components/Maps/BentoOSMTileLayer.js.map +1 -0
- package/dist/Components/Maps/BentoPointMap.d.ts +3 -0
- package/dist/Components/Maps/BentoPointMap.js +28 -0
- package/dist/Components/Maps/BentoPointMap.js.map +1 -0
- package/dist/Components/Maps/controls/MapLegendContinuous.d.ts +10 -0
- package/dist/Components/Maps/controls/MapLegendContinuous.js +19 -0
- package/dist/Components/Maps/controls/MapLegendContinuous.js.map +1 -0
- package/dist/Components/Maps/controls/MapLegendDiscrete.d.ts +8 -0
- package/dist/Components/Maps/controls/MapLegendDiscrete.js +22 -0
- package/dist/Components/Maps/controls/MapLegendDiscrete.js.map +1 -0
- package/dist/Components/Maps/controls/utils.d.ts +4 -0
- package/dist/Components/Maps/controls/utils.js +7 -0
- package/dist/Components/Maps/controls/utils.js.map +1 -0
- package/dist/constants/mapConstants.d.ts +2 -0
- package/dist/constants/mapConstants.js +3 -0
- package/dist/constants/mapConstants.js.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/maps.d.ts +3 -0
- package/dist/maps.js +5 -0
- package/dist/maps.js.map +1 -0
- package/dist/styles.css +48 -0
- package/dist/types/chartTypes.d.ts +11 -9
- package/dist/types/geoJSONTypes.d.ts +18 -0
- package/dist/types/geoJSONTypes.js +2 -0
- package/dist/types/geoJSONTypes.js.map +1 -0
- package/dist/types/mapTypes.d.ts +43 -0
- package/dist/types/mapTypes.js +2 -0
- package/dist/types/mapTypes.js.map +1 -0
- package/package.json +32 -5
- package/src/ChartConfigProvider.tsx +9 -2
- package/src/Components/Charts/BentoBarChart.tsx +2 -2
- package/src/Components/Charts/BentoPie.tsx +55 -53
- package/src/Components/Maps/BentoChoroplethMap.tsx +138 -0
- package/src/Components/Maps/BentoMapContainer.tsx +35 -0
- package/src/Components/Maps/BentoOSMTileLayer.tsx +7 -0
- package/src/Components/Maps/BentoPointMap.tsx +33 -0
- package/src/Components/Maps/controls/MapLegendContinuous.tsx +32 -0
- package/src/Components/Maps/controls/MapLegendDiscrete.tsx +31 -0
- package/src/Components/Maps/controls/utils.ts +8 -0
- package/src/constants/mapConstants.ts +4 -0
- package/src/index.ts +7 -0
- package/src/maps.ts +4 -0
- package/src/react-app-env.d.ts +1 -0
- package/src/styles.css +48 -0
- package/src/types/chartTypes.ts +12 -9
- package/src/types/geoJSONTypes.ts +21 -0
- package/src/types/mapTypes.ts +52 -0
- package/tsconfig.json +1 -1
- package/webpack.config.js +60 -0
package/README.md
CHANGED
|
@@ -4,19 +4,37 @@
|
|
|
4
4
|
[](https://coveralls.io/github/bento-platform/Bento-Charts?branch=master)
|
|
5
5
|
[](https://badge.fury.io/js/bento-charts)
|
|
6
6
|
|
|
7
|
-
This repository hosts the code for
|
|
7
|
+
This repository hosts the code for `bento-charts`, a library written in TypeScript for React projects, which wraps
|
|
8
|
+
Recharts and Leaflet in easy-to-use components compatible with the Bento platform.
|
|
9
|
+
|
|
10
|
+
The following components are currently available:
|
|
11
|
+
|
|
12
|
+
* Bar chart
|
|
13
|
+
* Pie chart
|
|
14
|
+
* Choropleth map
|
|
15
|
+
* Point map
|
|
16
|
+
|
|
8
17
|
|
|
9
|
-
Bento charts offers Bar and Pie charts for Bento project UI web applications in React.
|
|
10
18
|
|
|
11
19
|
## Installation
|
|
12
|
-
|
|
20
|
+
|
|
21
|
+
Add `bento-charts` as a dependency to another project:
|
|
13
22
|
|
|
14
23
|
```bash
|
|
15
24
|
npm install bento-charts
|
|
16
25
|
```
|
|
17
26
|
|
|
27
|
+
To install `bento-charts` with map support:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install bento-charts leaflet react-leaflet
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
18
35
|
## Usage
|
|
19
|
-
|
|
36
|
+
|
|
37
|
+
Wrap your app in the `ChartConfigProvider` and pass in the Language of your site.
|
|
20
38
|
|
|
21
39
|
```jsx
|
|
22
40
|
import { ChartConfigProvider } from 'bento-charts';
|
|
@@ -40,26 +58,60 @@ You also can provide your own theme and translation dictionary.
|
|
|
40
58
|
<App />
|
|
41
59
|
</ChartConfigProvider>
|
|
42
60
|
```
|
|
43
|
-
refer to [theme](https://github.com/bento-platform/Bento-Charts/blob/
|
|
44
|
-
|
|
61
|
+
refer to [theme](https://github.com/bento-platform/Bento-Charts/blob/main/src/types/chartTypes.ts#L20)
|
|
62
|
+
and [translations](https://github.com/bento-platform/Bento-Charts/blob/main/src/types/chartTypes.ts#L47)
|
|
63
|
+
for more information.
|
|
64
|
+
|
|
65
|
+
Right now, no properties from `ChartConfigProvider` are used for any map components, but they may do so in the future.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## Usage
|
|
69
|
+
|
|
70
|
+
### Using a Chart
|
|
45
71
|
|
|
46
72
|
```jsx
|
|
47
73
|
import { BarChart, PieChart } from 'bento-charts';
|
|
48
74
|
```
|
|
49
|
-
Refer to [Props](https://github.com/bento-platform/Bento-Charts/blob/
|
|
75
|
+
Refer to [Props](https://github.com/bento-platform/Bento-Charts/blob/main/src/types/chartTypes.ts#L51)
|
|
76
|
+
for information on their props.
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Using a Map
|
|
80
|
+
|
|
81
|
+
Maps can be imported using a command like the following:
|
|
82
|
+
|
|
83
|
+
```jsx
|
|
84
|
+
import { ChoroplethMap } from 'bento-charts/dist/maps';
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Here, note the sub-path on the import - this separation allows us to have the
|
|
88
|
+
map-related peer dependencies marked as "optional".
|
|
89
|
+
|
|
90
|
+
The following map components are available:
|
|
91
|
+
|
|
92
|
+
* `ChoroplethMap` for showing a choropleth map, coloured by
|
|
93
|
+
* `PointMap` (for showing a list of point coordinates; this uses a different data structure than the other components)
|
|
94
|
+
|
|
95
|
+
See [map component properties](https://github.com/bento-platform/bento_charts/blob/main/src/types/mapTypes.ts)
|
|
96
|
+
for more information.
|
|
97
|
+
|
|
98
|
+
|
|
50
99
|
|
|
51
100
|
## Release procedure
|
|
52
101
|
|
|
53
|
-
A commit on the `main` branch will trigger a build and release of the package to the npm Registry, no need to manually
|
|
102
|
+
A commit on the `main` branch will trigger a build and release of the package to the npm Registry, no need to manually
|
|
103
|
+
create tags thanks to semantic-release.
|
|
54
104
|
|
|
55
105
|
**Please follow the instructions bellow when writing your commits.**
|
|
56
106
|
|
|
107
|
+
|
|
57
108
|
### Semantic release
|
|
58
109
|
Bento-Charts adheres to the [semver](https://semver.org/) versioning convention (Semantic Versioning). This repository uses the
|
|
59
110
|
[semantic-release](https://github.com/semantic-release/semantic-release) library to automate the release of semver compliant packages to
|
|
60
111
|
the npm Registry.
|
|
61
112
|
|
|
62
|
-
Semantic-release parses the commit messages in the release branch in order to determine the versioning changes. It does
|
|
113
|
+
Semantic-release parses the commit messages in the release branch in order to determine the versioning changes. It does
|
|
114
|
+
not rely on magic to work, but rather on specific commit message formats, which are described bellow.
|
|
63
115
|
|
|
64
116
|
### Commit message guidelines
|
|
65
117
|
Semantic-release uses the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification in order to parse relevant information.
|
|
@@ -93,9 +145,12 @@ After adding unit tests to the charts
|
|
|
93
145
|
test(charts): add unit tests for mixbarchart
|
|
94
146
|
```
|
|
95
147
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## Commit with `commitlint`
|
|
151
|
+
|
|
152
|
+
[Commitlint](https://commitlint.js.org/#/) is a safeguard for commit message formats, which you can use to help write
|
|
153
|
+
semver-compliant commits. [Husky](https://github.com/typicode/husky) is a git hooks tool that binds commitlint to the `git commit` command.
|
|
99
154
|
|
|
100
155
|
### Installation
|
|
101
156
|
Run these steps once to setup commitlint + husky.
|
|
@@ -116,24 +171,40 @@ Example:
|
|
|
116
171
|
git commit -m "ci(semantic-release): add commitlint and husky as dev tools to write valid commits"
|
|
117
172
|
```
|
|
118
173
|
|
|
174
|
+
|
|
175
|
+
|
|
119
176
|
## Local development
|
|
177
|
+
|
|
120
178
|
For local development in a React/Recharts app that uses bento-charts, you can follow these steps for your setup:
|
|
121
179
|
|
|
122
180
|
1. `build` and `pack` bento-charts
|
|
123
|
-
```bash
|
|
124
|
-
# Builds package and creates a pack file in the "./packs" dir
|
|
125
|
-
npm run buildpack
|
|
126
|
-
```
|
|
181
|
+
```bash
|
|
182
|
+
# Builds package and creates a pack file in the "./packs" dir
|
|
183
|
+
npm run buildpack
|
|
184
|
+
```
|
|
127
185
|
|
|
128
186
|
2. In the project using bento-charts, modify the bento-charts dependency in package.json so that the version number is now the absolute path to the pack file.
|
|
129
|
-
```diff
|
|
130
|
-
- "bento-charts": "2.0.0",
|
|
131
|
-
+ "bento-charts": "file:~/bento-charts/packs/bento-charts-2.0.0.tgz",
|
|
132
|
-
```
|
|
187
|
+
```diff
|
|
188
|
+
- "bento-charts": "2.0.0",
|
|
189
|
+
+ "bento-charts": "file:~/bento-charts/packs/bento-charts-2.0.0.tgz",
|
|
190
|
+
```
|
|
133
191
|
|
|
134
192
|
3. Install the dependencies in the project
|
|
193
|
+
```bash
|
|
194
|
+
npm install
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Note: you will need to repeat steps 1 and 3 everytime you want the changes to be applied to the app using
|
|
198
|
+
`bento-charts`**
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## Testing
|
|
203
|
+
|
|
204
|
+
A small web application is included in the `test` folder to provide an easy manual testing bed for components.
|
|
205
|
+
|
|
206
|
+
This application can be launched with the following command:
|
|
207
|
+
|
|
135
208
|
```bash
|
|
136
|
-
npm
|
|
209
|
+
npm test
|
|
137
210
|
```
|
|
138
|
-
|
|
139
|
-
**Note: you will need to repeat steps 1 and 3 everytime you want the changes to be applied to the app using bento-charts**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ChartTheme, LngDictionary, TranslationObject } from './types/chartTypes';
|
|
2
|
+
import type { ChartTheme, LngDictionary, TranslationObject } from './types/chartTypes';
|
|
3
3
|
export declare function useChartTheme(): ChartTheme;
|
|
4
4
|
export declare function useChartTranslation(): LngDictionary;
|
|
5
5
|
export declare function useChartThreshold(): number;
|
|
6
6
|
export declare function useChartMaxLabelChars(): number;
|
|
7
|
-
declare const ChartConfigProvider: ({ theme, Lng, translationMap, children, globalThreshold, maxLabelChars }: ChartConfigProviderProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
declare const ChartConfigProvider: ({ theme, Lng, translationMap, children, globalThreshold, maxLabelChars, }: ChartConfigProviderProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
8
|
type ChartConfigProviderProps = {
|
|
9
9
|
theme?: ChartTheme;
|
|
10
10
|
Lng: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartConfigProvider.js","sourceRoot":"","sources":["../src/ChartConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAU3F,IAAM,eAAe,GAAqB;IACxC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,wBAAwB,CAAC,EAAE;IACxC,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,IAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAmB,eAAe,CAAC,CAAC;AAE5E,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC;AAChD,CAAC;AAED,IAAM,mBAAmB,GAAG,UAAC,
|
|
1
|
+
{"version":3,"file":"ChartConfigProvider.js","sourceRoot":"","sources":["../src/ChartConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAU3F,IAAM,eAAe,GAAqB;IACxC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,wBAAwB,CAAC,EAAE;IACxC,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,IAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAmB,eAAe,CAAC,CAAC;AAE5E,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC;AAChD,CAAC;AAED,IAAM,mBAAmB,GAAG,UAAC,EAOF;QANzB,KAAK,WAAA,EACL,GAAG,SAAA,EACH,cAAc,oBAAA,EACd,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,aAAa,mBAAA;IAEb,IAAI,IAAI,GAAiB,IAAI,CAAC;IAC9B,IAAI;QACF,IAAI,GAAG,GAAmB,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;KACb;IACD,IAAM,YAAY,GAAG;QACnB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,eAAe,CAAC,KAAK;QACrC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC;QACnF,SAAS,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,eAAe,CAAC,SAAS;QACvD,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,eAAe,CAAC,aAAa;KAC9D,CAAC;IACF,OAAO,KAAC,YAAY,CAAC,QAAQ,aAAC,KAAK,EAAE,YAAY,gBAAG,QAAQ,IAAyB,CAAC;AACxF,CAAC,CAAC;AAWF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoBarChart.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoBarChart.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,UAAU,CAAC;AACvF,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,WAAW,GACZ,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,IAAM,aAAa,GAAG,UAAC,SAAiB;IACtC,IAAI,SAAS,CAAC,MAAM,IAAI,oBAAoB,EAAE;QAC5C,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,UAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,oBAAoB,CAAC,QAAK,CAAC;AAC9D,CAAC,CAAC;AAEF,IAAM,aAAa,GAAG,UAAC,EAWP;QAVd,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,KAAK,WAAA,EACL,KAAK,WAAA,EACL,SAAS,eAAA,EACT,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,KAAA,EAClB,kBAAsB,EAAtB,UAAU,mBAAG,SAAS,KAAA;IAEtB,IAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC;IAC1B,IAAA,KAA+B,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAtD,SAAS,UAAA,EAAE,OAAO,aAAoC,CAAC;IAErE,IAAM,IAAI,GAAG,UAAC,
|
|
1
|
+
{"version":3,"file":"BentoBarChart.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoBarChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
22
22
|
import { useState } from 'react';
|
|
23
23
|
import { PieChart, Pie, Cell, Curve, Tooltip, Sector } from 'recharts';
|
|
24
24
|
import { TOOL_TIP_STYLE, LABEL_STYLE, COUNT_STYLE, CHART_MISSING_FILL, CHART_WRAPPER_STYLE, RADIAN, CHART_ASPECT_RATIO, LABEL_THRESHOLD, COUNT_TEXT_STYLE, TEXT_STYLE, } from '../../constants/chartConstants';
|
|
25
|
-
import { useChartTheme, useChartTranslation, useChartThreshold, useChartMaxLabelChars } from
|
|
25
|
+
import { useChartTheme, useChartTranslation, useChartThreshold, useChartMaxLabelChars, } from '../../ChartConfigProvider';
|
|
26
26
|
import { polarToCartesian } from '../../util/chartUtils';
|
|
27
27
|
import NoData from '../NoData';
|
|
28
28
|
var labelShortName = function (name, maxChars) {
|
|
@@ -94,36 +94,38 @@ var toNumber = function (val, defaultValue) {
|
|
|
94
94
|
}
|
|
95
95
|
return defaultValue || 0;
|
|
96
96
|
};
|
|
97
|
-
var RenderLabel = function (maxLabelChars) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
97
|
+
var RenderLabel = function (maxLabelChars) {
|
|
98
|
+
return function (params) {
|
|
99
|
+
var fill = params.fill, payload = params.payload, index = params.index, activeIndex = params.activeIndex;
|
|
100
|
+
var percent = params.percent || 0;
|
|
101
|
+
var midAngle = params.midAngle || 0;
|
|
102
|
+
// skip rendering this static label if the sector is selected.
|
|
103
|
+
// this will let the 'renderActiveState' draw without overlapping.
|
|
104
|
+
// also, skip rendering if segment is too small a percentage (avoids label clutter)
|
|
105
|
+
if (index === activeIndex || percent < LABEL_THRESHOLD) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
var outerRadius = toNumber(params.outerRadius);
|
|
109
|
+
var cx = toNumber(params.cx);
|
|
110
|
+
var cy = toNumber(params.cy);
|
|
111
|
+
var name = payload.name === 'null' ? '(Empty)' : payload.name;
|
|
112
|
+
var sin = Math.sin(-RADIAN * midAngle);
|
|
113
|
+
var cos = Math.cos(-RADIAN * midAngle);
|
|
114
|
+
var sx = cx + (outerRadius + 10) * cos;
|
|
115
|
+
var sy = cy + (outerRadius + 10) * sin;
|
|
116
|
+
var mx = cx + (outerRadius + 20) * cos;
|
|
117
|
+
var my = cy + (outerRadius + 20) * sin;
|
|
118
|
+
var ex = mx + (cos >= 0 ? 1 : -1) * 22;
|
|
119
|
+
var ey = my;
|
|
120
|
+
var textAnchor = cos >= 0 ? 'start' : 'end';
|
|
121
|
+
var currentTextStyle = __assign(__assign({}, TEXT_STYLE), { fontWeight: payload.selected ? 'bold' : 'normal', fontStyle: payload.name === 'null' ? 'italic' : 'normal' });
|
|
122
|
+
var offsetRadius = 20;
|
|
123
|
+
var startPoint = polarToCartesian(cx, cy, outerRadius, midAngle);
|
|
124
|
+
var endPoint = polarToCartesian(cx, cy, outerRadius + offsetRadius, midAngle);
|
|
125
|
+
var lineProps = __assign(__assign({}, params), { fill: 'none', stroke: fill, points: [startPoint, endPoint] });
|
|
126
|
+
return (_jsxs("g", { children: [_jsx(Curve, __assign({}, lineProps, { type: "linear", className: "recharts-pie-label-line" })), _jsx("path", { d: "M".concat(sx, ",").concat(sy, "L").concat(mx, ",").concat(my, "L").concat(ex, ",").concat(ey), stroke: fill, fill: "none" }), _jsx("circle", { cx: ex, cy: ey, r: 2, fill: fill, stroke: "none" }), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey + 3, textAnchor: textAnchor, style: currentTextStyle }, { children: labelShortName(name, maxLabelChars) })), _jsx("text", __assign({ x: ex + (cos >= 0 ? 1 : -1) * 12, y: ey, dy: 14, textAnchor: textAnchor, style: COUNT_TEXT_STYLE }, { children: "(".concat(payload.value, ")") }))] }));
|
|
127
|
+
};
|
|
128
|
+
};
|
|
127
129
|
var RenderActiveLabel = function (params) {
|
|
128
130
|
var cx = params.cx, cy = params.cy, innerRadius = params.innerRadius, outerRadius = params.outerRadius, startAngle = params.startAngle, endAngle = params.endAngle, fill = params.fill;
|
|
129
131
|
// render arc around active segment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAiC,MAAM,UAAU,CAAC;AAGtG,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,UAAU,GACX,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"BentoPie.js","sourceRoot":"","sources":["../../../src/Components/Charts/BentoPie.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ChoroplethMapProps } from '../../types/mapTypes';
|
|
2
|
+
declare const BentoChoroplethMap: ({ height, data: originalData, preFilter, dataMap, postFilter, center, zoom, tileLayer, colorMode, features, categoryProp, onClick, renderPopupBody, }: ChoroplethMapProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export default BentoChoroplethMap;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
+
if (ar || !(i in from)) {
|
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
+
ar[i] = from[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
+
};
|
|
21
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
23
|
+
import { GeoJSON, Popup } from 'react-leaflet';
|
|
24
|
+
import { interpolateRgb } from 'd3-interpolate';
|
|
25
|
+
import BentoMapContainer from './BentoMapContainer';
|
|
26
|
+
import MapLegendContinuous from './controls/MapLegendContinuous';
|
|
27
|
+
import MapLegendDiscrete from './controls/MapLegendDiscrete';
|
|
28
|
+
var DEFAULT_CATEGORY = '';
|
|
29
|
+
var POS_BOTTOM_RIGHT = 'bottomright';
|
|
30
|
+
var BentoChoroplethMap = function (_a) {
|
|
31
|
+
var height = _a.height, originalData = _a.data, preFilter = _a.preFilter, dataMap = _a.dataMap, postFilter = _a.postFilter, center = _a.center, zoom = _a.zoom, tileLayer = _a.tileLayer, colorMode = _a.colorMode, features = _a.features, categoryProp = _a.categoryProp, onClick = _a.onClick, renderPopupBody = _a.renderPopupBody;
|
|
32
|
+
var data = useMemo(function () {
|
|
33
|
+
var data = __spreadArray([], originalData, true);
|
|
34
|
+
if (preFilter)
|
|
35
|
+
data = data.filter(preFilter);
|
|
36
|
+
if (dataMap)
|
|
37
|
+
data = data.map(dataMap);
|
|
38
|
+
if (postFilter)
|
|
39
|
+
data = data.filter(postFilter);
|
|
40
|
+
return data;
|
|
41
|
+
}, [originalData]);
|
|
42
|
+
var dataByFeatureCat = useMemo(function () { return Object.fromEntries(data.map(function (d) { return [d.x, d.y]; })); }, [data]);
|
|
43
|
+
var minYVal = useMemo(function () { return Math.min.apply(Math, data.map(function (d) { return d.y; })); }, [data]);
|
|
44
|
+
var maxYVal = useMemo(function () { return Math.max.apply(Math, data.map(function (d) { return d.y; })); }, [data]);
|
|
45
|
+
var calculateColor = useCallback(function (v) {
|
|
46
|
+
return colorMode.mode === 'continuous'
|
|
47
|
+
? interpolateRgb(colorMode.minColor, colorMode.maxColor)(((v !== null && v !== void 0 ? v : minYVal) - minYVal) / (maxYVal - minYVal))
|
|
48
|
+
: colorMode.colorFunction(v);
|
|
49
|
+
}, [colorMode, minYVal, maxYVal]);
|
|
50
|
+
var shapeStyle = useCallback(function (f) {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
var fProps = (_a = f.properties) !== null && _a !== void 0 ? _a : {};
|
|
53
|
+
if (!Object.keys(fProps).includes(categoryProp)) {
|
|
54
|
+
console.warn("Feature is missing category prop ".concat(categoryProp), f);
|
|
55
|
+
}
|
|
56
|
+
var cat = (_b = fProps[categoryProp]) !== null && _b !== void 0 ? _b : DEFAULT_CATEGORY;
|
|
57
|
+
return {
|
|
58
|
+
color: 'white',
|
|
59
|
+
weight: 2,
|
|
60
|
+
fillColor: calculateColor(dataByFeatureCat[cat]),
|
|
61
|
+
fillOpacity: 1, // actual opacity set by fillColor
|
|
62
|
+
};
|
|
63
|
+
}, [data, features]);
|
|
64
|
+
var _b = useState(null), popupContents = _b[0], setPopupContents = _b[1];
|
|
65
|
+
var eventHandlers = useMemo(function () {
|
|
66
|
+
return ({
|
|
67
|
+
click: function (e) {
|
|
68
|
+
var _a;
|
|
69
|
+
var feature = e.sourceTarget.feature;
|
|
70
|
+
var fProps = (_a = feature.properties) !== null && _a !== void 0 ? _a : {};
|
|
71
|
+
var title = fProps.title ? "".concat(fProps.title, " (").concat(fProps[categoryProp], ")") : fProps[categoryProp];
|
|
72
|
+
setPopupContents(_jsxs("div", { children: [_jsx("h4", __assign({ style: { marginBottom: renderPopupBody ? 6 : 0 } }, { children: onClick ? (_jsx("a", __assign({ href: "#", onClick: function (e) {
|
|
73
|
+
if (onClick)
|
|
74
|
+
onClick(feature);
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
} }, { children: title }))) : (_jsx("span", { children: title })) })), renderPopupBody ? renderPopupBody(feature, dataByFeatureCat[fProps[categoryProp]]) : null] }));
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}, [onClick, categoryProp, renderPopupBody]);
|
|
80
|
+
var geoJsonLayer = useRef(null);
|
|
81
|
+
useEffect(function () {
|
|
82
|
+
// Bizarre workaround needed for react-leaflet when handling `features` change:
|
|
83
|
+
// See https://github.com/PaulLeCam/react-leaflet/issues/332#issuecomment-731379795
|
|
84
|
+
if (geoJsonLayer.current) {
|
|
85
|
+
geoJsonLayer.current.clearLayers().addData(features);
|
|
86
|
+
}
|
|
87
|
+
}, [features]);
|
|
88
|
+
return (_jsxs(BentoMapContainer, __assign({ height: height, center: center, zoom: zoom, tileLayer: tileLayer }, { children: [_jsx(GeoJSON, __assign({ ref: geoJsonLayer, data: features, style: shapeStyle, eventHandlers: eventHandlers }, { children: _jsx(Popup, { children: popupContents }) })), colorMode.mode === 'continuous' ? (_jsx(MapLegendContinuous, { position: POS_BOTTOM_RIGHT, minColor: colorMode.minColor, minValue: minYVal, maxColor: colorMode.maxColor, maxValue: maxYVal })) : (_jsx(MapLegendDiscrete, { position: POS_BOTTOM_RIGHT, legendItems: colorMode.legendItems }))] })));
|
|
89
|
+
};
|
|
90
|
+
export default BentoChoroplethMap;
|
|
91
|
+
//# sourceMappingURL=BentoChoroplethMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BentoChoroplethMap.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoChoroplethMap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { BaseMapProps } from '../../types/mapTypes';
|
|
3
|
+
interface MapContainerProps extends BaseMapProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
declare const BentoMapContainer: ({ height, center, zoom, children, tileLayer }: MapContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default BentoMapContainer;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { MapContainer } from 'react-leaflet';
|
|
14
|
+
import L, { Point } from 'leaflet';
|
|
15
|
+
import BentoOSMTileLayer from './BentoOSMTileLayer';
|
|
16
|
+
import iconPng from 'leaflet/dist/images/marker-icon.png';
|
|
17
|
+
import icon2XPng from 'leaflet/dist/images/marker-icon-2x.png';
|
|
18
|
+
import iconShadowPng from 'leaflet/dist/images/marker-shadow.png';
|
|
19
|
+
var defaultIcon = L.icon({
|
|
20
|
+
iconUrl: iconPng,
|
|
21
|
+
iconRetinaUrl: icon2XPng,
|
|
22
|
+
iconSize: new Point(25, 41),
|
|
23
|
+
iconAnchor: new Point(12, 41),
|
|
24
|
+
popupAnchor: new Point(1, -41),
|
|
25
|
+
shadowUrl: iconShadowPng,
|
|
26
|
+
});
|
|
27
|
+
L.Marker.prototype.options.icon = defaultIcon;
|
|
28
|
+
var BentoMapContainer = function (_a) {
|
|
29
|
+
var height = _a.height, center = _a.center, zoom = _a.zoom, children = _a.children, tileLayer = _a.tileLayer;
|
|
30
|
+
return (_jsxs(MapContainer, __assign({ style: { height: height }, center: center, zoom: zoom }, { children: [tileLayer !== null && tileLayer !== void 0 ? tileLayer : _jsx(BentoOSMTileLayer, {}), children] })));
|
|
31
|
+
};
|
|
32
|
+
export default BentoMapContainer;
|
|
33
|
+
//# sourceMappingURL=BentoMapContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BentoMapContainer.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoMapContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,OAAO,OAAO,MAAM,qCAAqC,CAAC;AAC1D,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAC/D,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAElE,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO;IAChB,aAAa,EAAE,SAAS;IACxB,QAAQ,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IAC3B,UAAU,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7B,WAAW,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,SAAS,EAAE,aAAa;CACzB,CAAC,CAAC;AAEH,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;AAM9C,IAAM,iBAAiB,GAAG,UAAC,EAAgE;QAA9D,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA;IAA0B,OAAA,CAC9F,MAAC,YAAY,aAAC,KAAK,EAAE,EAAE,MAAM,QAAA,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,iBACxD,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAC,iBAAiB,KAAG,EAClC,QAAQ,KACI,CAChB;AAL+F,CAK/F,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { TileLayer } from 'react-leaflet';
|
|
3
|
+
import { OSM_TILE_LAYER_ATTRIBUTION, OSM_TILE_LAYER_TEMPLATE } from '../../constants/mapConstants';
|
|
4
|
+
var BentoOSMTileLayer = function () { return _jsx(TileLayer, { attribution: OSM_TILE_LAYER_ATTRIBUTION, url: OSM_TILE_LAYER_TEMPLATE }); };
|
|
5
|
+
export default BentoOSMTileLayer;
|
|
6
|
+
//# sourceMappingURL=BentoOSMTileLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BentoOSMTileLayer.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoOSMTileLayer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEnG,IAAM,iBAAiB,GAAG,cAAM,OAAA,KAAC,SAAS,IAAC,WAAW,EAAE,0BAA0B,EAAE,GAAG,EAAE,uBAAuB,GAAI,EAApF,CAAoF,CAAC;AAErH,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { Marker, Popup } from 'react-leaflet';
|
|
14
|
+
import BentoMapContainer from './BentoMapContainer';
|
|
15
|
+
var BentoPointMap = function (_a) {
|
|
16
|
+
var height = _a.height, center = _a.center, zoom = _a.zoom, tileLayer = _a.tileLayer, data = _a.data, onClick = _a.onClick, renderPopupBody = _a.renderPopupBody;
|
|
17
|
+
return (_jsx(BentoMapContainer, __assign({ height: height, center: center, zoom: zoom, tileLayer: tileLayer }, { children: data.map(function (point, i) {
|
|
18
|
+
var coordinates = point.coordinates, title = point.title;
|
|
19
|
+
// We expect points in [long, lat] order (consistent with GeoJSON), but Leaflet wants them in [lat, long].
|
|
20
|
+
var coordinatesLatLongOrder = [coordinates[1], coordinates[0]];
|
|
21
|
+
return (_jsx(Marker, __assign({ position: coordinatesLatLongOrder }, { children: _jsxs(Popup, { children: [_jsx("h4", __assign({ style: { marginBottom: renderPopupBody ? 6 : 0 } }, { children: onClick ? _jsx("a", __assign({ href: "#", onClick: function (e) {
|
|
22
|
+
onClick(point);
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
} }, { children: title })) : _jsx(_Fragment, { children: title }) })), renderPopupBody ? renderPopupBody(point) : null] }) }), i));
|
|
25
|
+
}) })));
|
|
26
|
+
};
|
|
27
|
+
export default BentoPointMap;
|
|
28
|
+
//# sourceMappingURL=BentoPointMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BentoPointMap.js","sourceRoot":"","sources":["../../../src/Components/Maps/BentoPointMap.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAGpD,IAAM,aAAa,GAAG,UAAC,EAAkF;QAAhF,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,eAAe,qBAAA;IACtF,OAAO,CACL,KAAC,iBAAiB,aAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,gBAChF,IAAI,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC;YACT,IAAA,WAAW,GAAY,KAAK,YAAjB,EAAE,KAAK,GAAK,KAAK,MAAV,CAAW;YAErC,0GAA0G;YAC1G,IAAM,uBAAuB,GAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnF,OAAO,CACL,KAAC,MAAM,aAAS,QAAQ,EAAE,uBAAuB,gBAC/C,MAAC,KAAK,eACJ,sBAAI,KAAK,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBACjD,OAAO,CAAC,CAAC,CAAC,qBAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,UAAC,CAAC;oCAChC,OAAO,CAAC,KAAK,CAAC,CAAC;oCACf,CAAC,CAAC,cAAc,EAAE,CAAC;gCACrB,CAAC,gBAAG,KAAK,IAAK,CAAC,CAAC,CAAC,4BAAG,KAAK,GAAI,IAC1B,EACJ,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAC1C,KATG,CAAC,CAUL,CACV,CAAC;QACJ,CAAC,CAAC,IACgB,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ControlPosition } from 'leaflet';
|
|
2
|
+
export interface MapLegendDiscreteProps {
|
|
3
|
+
position: ControlPosition;
|
|
4
|
+
minValue: number;
|
|
5
|
+
minColor: string;
|
|
6
|
+
maxValue: number;
|
|
7
|
+
maxColor: string;
|
|
8
|
+
}
|
|
9
|
+
declare const MapLegendContinuous: ({ position, minValue, minColor, maxValue, maxColor }: MapLegendDiscreteProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default MapLegendContinuous;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { controlPositionClasses } from './utils';
|
|
14
|
+
var MapLegendContinuous = function (_a) {
|
|
15
|
+
var position = _a.position, minValue = _a.minValue, minColor = _a.minColor, maxValue = _a.maxValue, maxColor = _a.maxColor;
|
|
16
|
+
return (_jsx("div", __assign({ className: controlPositionClasses[position] }, { children: _jsx("div", __assign({ className: "leaflet-control bento-charts--map--legend" }, { children: _jsxs("div", __assign({ className: "bento-charts--map--legend--scale" }, { children: [_jsx("div", { className: "bento-charts--continuous-scale", style: { background: "linear-gradient(0deg, ".concat(minColor, " 0%, ").concat(maxColor, " 100%)") } }), _jsxs("div", __assign({ className: "bento-charts--map--legend--values" }, { children: [_jsx("span", { children: maxValue }), _jsx("span", { children: minValue })] }))] })) })) })));
|
|
17
|
+
};
|
|
18
|
+
export default MapLegendContinuous;
|
|
19
|
+
//# sourceMappingURL=MapLegendContinuous.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapLegendContinuous.js","sourceRoot":"","sources":["../../../../src/Components/Maps/controls/MapLegendContinuous.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAUjD,IAAM,mBAAmB,GAAG,UAAC,EAA4E;QAA1E,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA;IAC7E,OAAO,CACL,uBAAK,SAAS,EAAE,sBAAsB,CAAC,QAAQ,CAAC,gBAC9C,uBAAK,SAAS,EAAC,2CAA2C,gBACxD,wBAAK,SAAS,EAAC,kCAAkC,iBAC/C,cACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,UAAU,EAAE,gCAAyB,QAAQ,kBAAQ,QAAQ,WAAQ,EAAE,GAChF,EACF,wBAAK,SAAS,EAAC,mCAAmC,iBAChD,yBAAO,QAAQ,GAAQ,EACvB,yBAAO,QAAQ,GAAQ,KACnB,KACF,IACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ControlPosition } from 'leaflet';
|
|
2
|
+
import type { MapDiscreteLegendItem } from '../../../types/mapTypes';
|
|
3
|
+
export interface MapLegendDiscreteProps {
|
|
4
|
+
position: ControlPosition;
|
|
5
|
+
legendItems: MapDiscreteLegendItem[];
|
|
6
|
+
}
|
|
7
|
+
declare const MapLegendDiscrete: ({ position, legendItems }: MapLegendDiscreteProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default MapLegendDiscrete;
|