@mapcomponents/react-maplibre 0.1.60 → 0.1.62
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/.eslintignore +2 -1
- package/CHANGELOG.md +10 -0
- package/coverage/clover.xml +127 -48
- package/coverage/coverage-final.json +4 -3
- package/coverage/lcov-report/index.html +38 -23
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +2 -8
- package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
- package/coverage/lcov-report/src/contexts/MapContext.tsx.html +1 -1
- package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
- package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
- package/coverage/lcov-report/src/contexts/index.html +1 -1
- package/coverage/lcov-report/src/hooks/index.html +11 -11
- package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +116 -0
- package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +661 -0
- package/coverage/lcov-report/src/hooks/useExportMap/index.html +14 -14
- package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +21 -108
- package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
- package/coverage/lcov-report/src/hooks/useMap.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useMapState.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useSource.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +8 -2
- package/coverage/lcov.info +222 -72
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +1 -0
- package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +3 -16
- package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +19 -6
- package/dist/components/MlCreatePdfForm/lib/_PdfPreview.d.ts +13 -0
- package/dist/hooks/useCameraFollowPath/useCameraFollowPath.d.ts +35 -0
- package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +17 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +656 -597
- package/dist/index.esm.js.map +1 -1
- package/package.json +3 -1
- package/scripts/build-catalogue-meta.js +1 -1
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +16 -1
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +0 -2
- package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +16 -18
- package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +80 -7
- package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +285 -357
- package/src/components/MlCreatePdfForm/lib/_PdfPreview.tsx +399 -0
- package/src/components/MlCreatePdfForm/lib/pdfContext.d.ts +24 -0
- package/src/components/MlCreatePdfForm/lib/preview.css +114 -0
- package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.de.md +4 -0
- package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.en.md +1 -0
- package/src/hooks/useCameraFollowPath/useCameraFollowPath.meta.json +15 -0
- package/src/hooks/useCameraFollowPath/useCameraFollowPath.stories.tsx +198 -0
- package/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx +192 -0
- package/src/hooks/useExportMap/lib.ts +14 -43
- package/src/index.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapcomponents/react-maplibre",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.62",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -29,9 +29,11 @@
|
|
|
29
29
|
"@mui/styles": "^5.5.3",
|
|
30
30
|
"@turf/turf": "^6.5.0",
|
|
31
31
|
"d3": "^7.4.4",
|
|
32
|
+
"deck.gl": "^8.8.13",
|
|
32
33
|
"jspdf": "^2.5.1",
|
|
33
34
|
"maplibre-gl": "^2.1.7",
|
|
34
35
|
"react-i18next": "^11.14.3",
|
|
36
|
+
"react-moveable": "^0.41.1",
|
|
35
37
|
"three": "^0.139.1",
|
|
36
38
|
"uuid": "^8.3.2",
|
|
37
39
|
"wms-capabilities": "^0.5.1",
|
|
@@ -4,7 +4,7 @@ const fs = require("fs");
|
|
|
4
4
|
let options = {};
|
|
5
5
|
let mc_meta = {};
|
|
6
6
|
|
|
7
|
-
glob("src
|
|
7
|
+
glob("src/**/**/*.meta.json", options, function (er, files) {
|
|
8
8
|
console.log(files);
|
|
9
9
|
|
|
10
10
|
for (var i = 0, len = files.length; i < len; i++) {
|
|
@@ -10,7 +10,9 @@ import Draggable from 'react-draggable';
|
|
|
10
10
|
|
|
11
11
|
import TopToolbar from '../../ui_components/TopToolbar';
|
|
12
12
|
|
|
13
|
+
import './lib/preview.css';
|
|
13
14
|
import mapContextDecorator from '../../decorators/MapContextDecorator';
|
|
15
|
+
|
|
14
16
|
const PaperComponent = (props: object) => {
|
|
15
17
|
return (
|
|
16
18
|
<Draggable handle="#draggable-dialog-title" cancel={'[class*="MuiDialogContent-root"]'}>
|
|
@@ -49,11 +51,14 @@ export default storyoptions;
|
|
|
49
51
|
|
|
50
52
|
const Template = () => {
|
|
51
53
|
const [showCreatePdfForm, setShowCreatePdfForm] = useState(false);
|
|
54
|
+
const targetRef = React.useRef<HTMLDivElement>(null);
|
|
55
|
+
const containerRef = React.useRef<HTMLDivElement>(document.querySelector('.map_container'));
|
|
52
56
|
|
|
57
|
+
// <MlWmsLayer url='https://geo.stat.fi/geoserver/vaestoruutu/wms' urlParameters={{layers:'vaki2005_1km_kp'}}/>
|
|
53
58
|
return (
|
|
54
59
|
<>
|
|
55
60
|
<TopToolbar>
|
|
56
|
-
<Button variant="contained" onClick={() => setShowCreatePdfForm(
|
|
61
|
+
<Button variant="contained" onClick={() => setShowCreatePdfForm(!showCreatePdfForm)}>
|
|
57
62
|
PDF
|
|
58
63
|
</Button>
|
|
59
64
|
</TopToolbar>
|
|
@@ -150,3 +155,13 @@ const Template = () => {
|
|
|
150
155
|
export const ExampleConfig = Template.bind({});
|
|
151
156
|
ExampleConfig.parameters = {};
|
|
152
157
|
ExampleConfig.args = {};
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
//const SidebarTemplate = function() {
|
|
161
|
+
//
|
|
162
|
+
// return <>
|
|
163
|
+
// </>;
|
|
164
|
+
//}
|
|
165
|
+
//export const SidebarExample = SidebarTemplate.bind({});
|
|
166
|
+
//SidebarExample.parameters = {};
|
|
167
|
+
//SidebarExample.args = {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PdfPreview from './lib/PdfPreview';
|
|
3
2
|
import PdfForm from './lib/PdfForm';
|
|
4
3
|
import { PdfContextProvider } from './lib/PdfContext';
|
|
5
4
|
import { createPdfResolverParams } from '../../hooks/useExportMap/lib';
|
|
@@ -27,7 +26,6 @@ const MlCreatePdfForm = (props: MlCreatePdfFormProps) => {
|
|
|
27
26
|
<>
|
|
28
27
|
<PdfContextProvider>
|
|
29
28
|
<PdfForm {...props} />
|
|
30
|
-
<PdfPreview />
|
|
31
29
|
</PdfContextProvider>
|
|
32
30
|
</>
|
|
33
31
|
);
|
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
import React, { useState, useRef, useMemo
|
|
1
|
+
import React, { useState, useRef, useMemo } from 'react';
|
|
2
2
|
import templates from './pdf.templates';
|
|
3
|
-
import {
|
|
3
|
+
import { PdfContextInterface, PdfPreviewOptions } from './pdfContext';
|
|
4
4
|
|
|
5
|
-
interface PdfContextInterface {
|
|
6
|
-
format: string;
|
|
7
|
-
setFormat: (format: string) => void;
|
|
8
|
-
quality: string;
|
|
9
|
-
setQuality: (quality: string) => void;
|
|
10
|
-
orientation: string;
|
|
11
|
-
setOrientation: (orientation: string) => void;
|
|
12
|
-
geojsonRef: MutableRefObject<Feature | undefined>;
|
|
13
|
-
template: { width: number; height: number };
|
|
14
|
-
}
|
|
15
5
|
|
|
16
|
-
const PdfContext = React.createContext<
|
|
6
|
+
const PdfContext = React.createContext<PdfContextInterface>({} as PdfContextInterface);
|
|
17
7
|
|
|
18
8
|
const defaultTemplate = templates['A4']['72dpi'];
|
|
19
9
|
const PdfContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|
20
10
|
const [format, setFormat] = useState('A4');
|
|
21
11
|
const [quality, setQuality] = useState('72dpi');
|
|
22
|
-
const [
|
|
12
|
+
const [options, setOptions] = useState<PdfPreviewOptions>({
|
|
13
|
+
center: undefined,
|
|
14
|
+
scale: undefined,
|
|
15
|
+
rotate: 0,
|
|
16
|
+
width: 210,
|
|
17
|
+
height: 297,
|
|
18
|
+
orientation: 'portrait',
|
|
19
|
+
fixedScale: 0,
|
|
20
|
+
});
|
|
23
21
|
|
|
24
22
|
const geojsonRef = useRef();
|
|
25
23
|
|
|
26
24
|
const template = useMemo(() => {
|
|
27
25
|
if (typeof templates[format][quality] !== 'undefined') {
|
|
28
|
-
return orientation === 'portrait'
|
|
26
|
+
return options.orientation === 'portrait'
|
|
29
27
|
? templates[format][quality]
|
|
30
28
|
: {
|
|
31
29
|
width: templates[format][quality].height,
|
|
@@ -33,15 +31,15 @@ const PdfContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|
|
33
31
|
};
|
|
34
32
|
}
|
|
35
33
|
return defaultTemplate;
|
|
36
|
-
}, [format, quality, orientation]);
|
|
34
|
+
}, [format, quality, options.orientation]);
|
|
37
35
|
|
|
38
36
|
const value = {
|
|
37
|
+
options,
|
|
38
|
+
setOptions,
|
|
39
39
|
format,
|
|
40
40
|
setFormat,
|
|
41
41
|
quality,
|
|
42
42
|
setQuality,
|
|
43
|
-
orientation,
|
|
44
|
-
setOrientation,
|
|
45
43
|
geojsonRef,
|
|
46
44
|
template,
|
|
47
45
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useContext, useMemo, useCallback } from 'react';
|
|
2
2
|
import PdfContext from './PdfContext';
|
|
3
|
+
import PdfPreview from './PdfPreview';
|
|
3
4
|
import {
|
|
4
5
|
FormControl,
|
|
5
6
|
MenuItem,
|
|
@@ -19,7 +20,46 @@ import { createPdfResolverParams } from '../../../hooks/useExportMap/lib';
|
|
|
19
20
|
import * as turf from '@turf/turf';
|
|
20
21
|
|
|
21
22
|
import templates from './pdf.templates';
|
|
23
|
+
import { PdfPreviewOptions } from './pdfContext';
|
|
22
24
|
|
|
25
|
+
const scaleOptions = [
|
|
26
|
+
{
|
|
27
|
+
value: 0,
|
|
28
|
+
label: 'free scale',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
value: 250,
|
|
32
|
+
label: '1/250',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
value: 500,
|
|
36
|
+
label: '1/500',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
value: 750,
|
|
40
|
+
label: '1/750',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
value: 1000,
|
|
44
|
+
label: '1/1000',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
value: 1500,
|
|
48
|
+
label: '1/1500',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
value: 2000,
|
|
52
|
+
label: '1/2000',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
value: 10000,
|
|
56
|
+
label: '1/10000',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
value: 100000,
|
|
60
|
+
label: '1/100000',
|
|
61
|
+
},
|
|
62
|
+
];
|
|
23
63
|
const qualityOptions = [
|
|
24
64
|
{
|
|
25
65
|
value: '72dpi',
|
|
@@ -40,10 +80,10 @@ interface PdfFormProps {
|
|
|
40
80
|
* Id of the target MapLibre instance in mapContext
|
|
41
81
|
*/
|
|
42
82
|
mapId?: string;
|
|
43
|
-
onCreatePdf?: (options:createPdfResolverParams) => createPdfResolverParams;
|
|
83
|
+
onCreatePdf?: (options: createPdfResolverParams) => createPdfResolverParams;
|
|
44
84
|
}
|
|
45
85
|
|
|
46
|
-
export default function PdfForm(props:PdfFormProps) {
|
|
86
|
+
export default function PdfForm(props: PdfFormProps) {
|
|
47
87
|
const pdfContext = useContext(PdfContext);
|
|
48
88
|
const mapHook = useMap({
|
|
49
89
|
// eslint-disable-next-line react/prop-types
|
|
@@ -57,7 +97,7 @@ export default function PdfForm(props:PdfFormProps) {
|
|
|
57
97
|
mapExporter.createExport &&
|
|
58
98
|
pdfContext.template &&
|
|
59
99
|
pdfContext.format &&
|
|
60
|
-
pdfContext.orientation &&
|
|
100
|
+
pdfContext.options?.orientation &&
|
|
61
101
|
pdfContext.geojsonRef?.current?.bbox &&
|
|
62
102
|
pdfContext.geojsonRef?.current
|
|
63
103
|
) {
|
|
@@ -69,9 +109,9 @@ export default function PdfForm(props:PdfFormProps) {
|
|
|
69
109
|
height: pdfContext.template.height,
|
|
70
110
|
bbox: bbox,
|
|
71
111
|
bboxUnrotated: pdfContext.geojsonRef.current.bbox,
|
|
72
|
-
bearing: pdfContext.geojsonRef.current?.properties?.bearing || 0,
|
|
112
|
+
bearing: (pdfContext.geojsonRef.current?.properties?.bearing as number) || 0,
|
|
73
113
|
format: pdfContext.format.toLowerCase(),
|
|
74
|
-
orientation: pdfContext.orientation,
|
|
114
|
+
orientation: pdfContext.options.orientation,
|
|
75
115
|
})
|
|
76
116
|
.then((res) => res.createPdf())
|
|
77
117
|
.then((res) => {
|
|
@@ -124,9 +164,14 @@ export default function PdfForm(props:PdfFormProps) {
|
|
|
124
164
|
row
|
|
125
165
|
aria-labelledby="orientation-radio-buttons-group-label"
|
|
126
166
|
name="orientation-radio-buttons-group"
|
|
127
|
-
value={pdfContext.orientation}
|
|
167
|
+
value={pdfContext.options?.orientation}
|
|
128
168
|
onChange={(event) => {
|
|
129
|
-
pdfContext.
|
|
169
|
+
if (!pdfContext.setOptions) return;
|
|
170
|
+
|
|
171
|
+
pdfContext.setOptions((val: PdfPreviewOptions) => ({
|
|
172
|
+
...val,
|
|
173
|
+
orientation: event.target.value as 'landscape' | 'portrait',
|
|
174
|
+
}));
|
|
130
175
|
}}
|
|
131
176
|
>
|
|
132
177
|
<FormControlLabel value="portrait" control={<Radio />} label="Portrait" />
|
|
@@ -151,11 +196,39 @@ export default function PdfForm(props:PdfFormProps) {
|
|
|
151
196
|
))}
|
|
152
197
|
</Select>
|
|
153
198
|
</FormControl>
|
|
199
|
+
<FormControl fullWidth sx={formControlStyles}>
|
|
200
|
+
<InputLabel id="quality-select-label">Scale</InputLabel>
|
|
201
|
+
<Select
|
|
202
|
+
labelId="quality-select-label"
|
|
203
|
+
id="quality-select"
|
|
204
|
+
label="Qualität"
|
|
205
|
+
value={pdfContext?.options?.fixedScale}
|
|
206
|
+
onChange={(event) => {
|
|
207
|
+
pdfContext.setOptions?.((val) => ({
|
|
208
|
+
...val,
|
|
209
|
+
fixedScale: event.target.value as number,
|
|
210
|
+
}));
|
|
211
|
+
}}
|
|
212
|
+
>
|
|
213
|
+
{scaleOptions.map((el, idx) => (
|
|
214
|
+
<MenuItem key={idx} value={el.value}>
|
|
215
|
+
{el.label}
|
|
216
|
+
</MenuItem>
|
|
217
|
+
))}
|
|
218
|
+
</Select>
|
|
219
|
+
</FormControl>
|
|
154
220
|
<FormControl fullWidth sx={formControlStyles}>
|
|
155
221
|
<Button variant="contained" onClick={createPdfHandler}>
|
|
156
222
|
PDF erstellen
|
|
157
223
|
</Button>
|
|
158
224
|
</FormControl>
|
|
225
|
+
{pdfContext.options && pdfContext.setOptions && (
|
|
226
|
+
<PdfPreview
|
|
227
|
+
options={pdfContext.options}
|
|
228
|
+
setOptions={pdfContext.setOptions}
|
|
229
|
+
geojsonRef={pdfContext.geojsonRef}
|
|
230
|
+
/>
|
|
231
|
+
)}
|
|
159
232
|
</>
|
|
160
233
|
);
|
|
161
234
|
}
|