react-route-profile 0.1.37 → 0.1.39
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/README.md +21 -20
- package/dist/RouteMap.module-BNAAKWIR.module.css +217 -0
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +34 -30
- package/dist/index.d.ts +34 -30
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/RouteMap.module-4GSEMCKC.module.css +0 -29
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ const myRoute: RouteConfig = {
|
|
|
33
33
|
routes: [{ id: "A12", color: "green", segment: [0, 1000] }],
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
<RouteMap apiKey={apiKey} route={myRoute} height="100dvh" />;
|
|
36
|
+
<RouteMap apiKey={apiKey} route={myRoute} height="100dvh" lang="en" />;
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### Precompute elevation offline
|
|
@@ -61,7 +61,7 @@ const myTheme: Theme = {
|
|
|
61
61
|
},
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
<RouteMap apiKey={apiKey} route={myRoute} theme={myTheme} />;
|
|
64
|
+
<RouteMap apiKey={apiKey} route={myRoute} theme={myTheme} lang="en" />;
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
### Sticky header sizing
|
|
@@ -76,7 +76,7 @@ const {
|
|
|
76
76
|
|
|
77
77
|
<header ref={refHeader}>Header</header>
|
|
78
78
|
<div style={{ height: mapHeight }}>
|
|
79
|
-
<RouteMap apiKey={apiKey} route={myRoute} height={mapHeight} />
|
|
79
|
+
<RouteMap apiKey={apiKey} route={myRoute} height={mapHeight} lang="en" />
|
|
80
80
|
</div>;
|
|
81
81
|
```
|
|
82
82
|
|
|
@@ -84,26 +84,27 @@ const {
|
|
|
84
84
|
|
|
85
85
|
### RouteMap props
|
|
86
86
|
|
|
87
|
-
| Prop | Type
|
|
88
|
-
| --------- |
|
|
89
|
-
| apiKey | string
|
|
90
|
-
| route | RouteConfig
|
|
91
|
-
| height | number \| string
|
|
92
|
-
| className | string
|
|
93
|
-
| style | CSSProperties
|
|
94
|
-
| theme | Theme
|
|
87
|
+
| Prop | Type | Description |
|
|
88
|
+
| --------- | ---------------------- | ------------------------------------------------------ |
|
|
89
|
+
| apiKey | string | Required Google Maps JS API key. |
|
|
90
|
+
| route | RouteConfig | Route data (center, zooms, geoJson). |
|
|
91
|
+
| height | number \| string | Map height (e.g., `520` or `"100dvh"`). |
|
|
92
|
+
| className | string | Optional wrapper class. |
|
|
93
|
+
| style | CSSProperties | Inline style overrides. |
|
|
94
|
+
| theme | Theme | Optional theme override (colors, marker/dots, layout). |
|
|
95
|
+
| lang | `"de" \| "en" \| "sk"` | Optional UI language for built-in labels. |
|
|
95
96
|
|
|
96
97
|
### RouteConfig
|
|
97
98
|
|
|
98
|
-
| Field | Type
|
|
99
|
-
| -------------- |
|
|
100
|
-
| id | string
|
|
101
|
-
| name | string
|
|
102
|
-
| center | `{ lat: number; lng: number }`
|
|
103
|
-
| zoomHorizontal | number (optional)
|
|
104
|
-
| zoomVertical | number (optional)
|
|
105
|
-
| geoJson | FeatureCollection
|
|
106
|
-
| surface | `Array<{ segment: [number, number]; type: SurfaceType }>`
|
|
99
|
+
| Field | Type | Description |
|
|
100
|
+
| -------------- | ----------------------------------------------------------------- | -------------------------------------------- |
|
|
101
|
+
| id | string | Identifier for the route. |
|
|
102
|
+
| name | string | Display name. |
|
|
103
|
+
| center | `{ lat: number; lng: number }` | Map center. |
|
|
104
|
+
| zoomHorizontal | number (optional) | Zoom when landscape. |
|
|
105
|
+
| zoomVertical | number (optional) | Zoom when portrait. |
|
|
106
|
+
| geoJson | FeatureCollection | GeoJSON geometry and features. |
|
|
107
|
+
| surface | `Array<{ segment: [number, number]; type: SurfaceType }>` | Optional surface segments for the strip. |
|
|
107
108
|
| routes | `Array<{ id: string; color: string; segment: [number, number] }>` | Optional route segments for the route strip. |
|
|
108
109
|
|
|
109
110
|
### Theme
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
.rrpRoot {
|
|
2
|
+
position: relative;
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.rrpChartLayer {
|
|
7
|
+
position: absolute;
|
|
8
|
+
left: 25px;
|
|
9
|
+
right: auto;
|
|
10
|
+
bottom: 25px;
|
|
11
|
+
width: 50%;
|
|
12
|
+
height: 250px;
|
|
13
|
+
background: rgba(15, 23, 42, 0.85);
|
|
14
|
+
border-radius: 12px;
|
|
15
|
+
padding: 5px;
|
|
16
|
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
gap: 6px;
|
|
20
|
+
pointer-events: auto;
|
|
21
|
+
z-index: 2;
|
|
22
|
+
backdrop-filter: blur(10px);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.rrpChartLayerExpanded {
|
|
26
|
+
position: fixed;
|
|
27
|
+
inset: 0;
|
|
28
|
+
left: 0;
|
|
29
|
+
top: 0;
|
|
30
|
+
right: 0;
|
|
31
|
+
bottom: 0;
|
|
32
|
+
width: auto;
|
|
33
|
+
height: auto;
|
|
34
|
+
max-width: none;
|
|
35
|
+
max-height: none;
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
border-radius: 0;
|
|
38
|
+
padding: 24px;
|
|
39
|
+
z-index: 9999;
|
|
40
|
+
background: rgba(2, 6, 23, 0.96);
|
|
41
|
+
box-shadow: none;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.rrpChartLayerExpanded .rrpToolbar {
|
|
46
|
+
grid-template-columns: 1fr auto 1fr;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.rrpChartLayerExpanded .rrpChartBody {
|
|
50
|
+
padding: 8px 4px 4px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.rrpToolbar {
|
|
54
|
+
display: grid;
|
|
55
|
+
grid-template-columns: 1fr auto auto;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 12px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.rrpToolbarSide,
|
|
61
|
+
.rrpToolbarCenter {
|
|
62
|
+
min-width: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.rrpIconButton {
|
|
66
|
+
appearance: none;
|
|
67
|
+
border: 0;
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
color: rgba(226, 232, 240, 0.9);
|
|
70
|
+
transition:
|
|
71
|
+
color 140ms ease,
|
|
72
|
+
transform 140ms ease;
|
|
73
|
+
display: inline-flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
justify-content: center;
|
|
76
|
+
padding: 0;
|
|
77
|
+
background: transparent;
|
|
78
|
+
justify-self: end;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.rrpIconButton:active {
|
|
82
|
+
transform: translateY(1px);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.rrpIconButton:hover {
|
|
86
|
+
color: rgba(255, 255, 255, 1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.rrpIcon {
|
|
90
|
+
width: 28px;
|
|
91
|
+
height: 28px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.rrpChartBody {
|
|
95
|
+
flex: 1;
|
|
96
|
+
min-height: 0;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.rrpChartBodyScrollable {
|
|
100
|
+
overflow: hidden;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.rrpChartScrollViewport {
|
|
104
|
+
width: 100%;
|
|
105
|
+
height: 100%;
|
|
106
|
+
overflow-x: auto;
|
|
107
|
+
overflow-y: hidden;
|
|
108
|
+
scrollbar-width: thin;
|
|
109
|
+
scrollbar-color: rgba(148, 163, 184, 0.45) transparent;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.rrpChartScrollContent {
|
|
113
|
+
width: 200%;
|
|
114
|
+
min-width: 200%;
|
|
115
|
+
height: 100%;
|
|
116
|
+
display: flex;
|
|
117
|
+
flex-direction: column;
|
|
118
|
+
gap: 10px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.rrpScrollHint {
|
|
122
|
+
flex: 0 0 auto;
|
|
123
|
+
display: flex;
|
|
124
|
+
align-items: center;
|
|
125
|
+
justify-content: center;
|
|
126
|
+
gap: 10px;
|
|
127
|
+
color: rgba(226, 232, 240, 0.82);
|
|
128
|
+
letter-spacing: 0.06em;
|
|
129
|
+
text-transform: uppercase;
|
|
130
|
+
font-size: 12px;
|
|
131
|
+
user-select: none;
|
|
132
|
+
white-space: nowrap;
|
|
133
|
+
min-width: 0;
|
|
134
|
+
justify-self: center;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.rrpScrollHintIcon {
|
|
138
|
+
width: 22px;
|
|
139
|
+
height: 22px;
|
|
140
|
+
flex: 0 0 auto;
|
|
141
|
+
animation: rrpScrollHintPulse 1.6s ease-in-out infinite alternate;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.rrpScrollHintHand {
|
|
145
|
+
width: 20px;
|
|
146
|
+
height: 20px;
|
|
147
|
+
flex: 0 0 auto;
|
|
148
|
+
animation: rrpScrollHintDrift 1.6s ease-in-out infinite alternate;
|
|
149
|
+
transform-origin: center;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.rrpScrollHintText {
|
|
153
|
+
flex: 0 0 auto;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.rrpChartCanvas {
|
|
157
|
+
flex: 1;
|
|
158
|
+
min-height: 0;
|
|
159
|
+
width: 100%;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@keyframes rrpScrollHintDrift {
|
|
163
|
+
from {
|
|
164
|
+
transform: translateX(-6px);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
to {
|
|
168
|
+
transform: translateX(6px);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@keyframes rrpScrollHintPulse {
|
|
173
|
+
from {
|
|
174
|
+
opacity: 0.55;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
to {
|
|
178
|
+
opacity: 1;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
@media (orientation: portrait) {
|
|
183
|
+
.rrpChartLayer:not(.rrpChartLayerExpanded) {
|
|
184
|
+
width: 80%;
|
|
185
|
+
left: 10px;
|
|
186
|
+
right: auto;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
@media (max-width: 767px) {
|
|
191
|
+
.rrpChartLayer:not(.rrpChartLayerExpanded) {
|
|
192
|
+
left: 10px;
|
|
193
|
+
right: 10px;
|
|
194
|
+
bottom: 10px;
|
|
195
|
+
width: auto;
|
|
196
|
+
height: 220px;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.rrpChartLayerExpanded {
|
|
200
|
+
inset: 0;
|
|
201
|
+
padding: 16px;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.rrpToolbar {
|
|
205
|
+
gap: 8px;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.rrpChartScrollContent {
|
|
209
|
+
width: 200%;
|
|
210
|
+
min-width: 200%;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.rrpScrollHint {
|
|
214
|
+
gap: 8px;
|
|
215
|
+
font-size: 11px;
|
|
216
|
+
}
|
|
217
|
+
}
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
'use strict';var reactWrapper=require('@googlemaps/react-wrapper'),T=require('react'),jsxRuntime=require('react/jsx-runtime'),Be=require('./Loader.module-M6WPG37K.module.css'),recharts=require('recharts'),Nt=require('./GoogleMapCanvas.module-GCGVA6T4.module.css'),Xe=require('./RouteMap.module-4GSEMCKC.module.css');require('./index-DIK6ZNA4.css');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var T__namespace=/*#__PURE__*/_interopNamespace(T);var Be__default=/*#__PURE__*/_interopDefault(Be);var Nt__default=/*#__PURE__*/_interopDefault(Nt);var Xe__default=/*#__PURE__*/_interopDefault(Xe);var V=()=>typeof window>"u"?true:window.innerWidth>=window.innerHeight,G=()=>{let[e,n]=T.useState(V);return T.useEffect(()=>{let r=()=>n(V());return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{isHorizontal:e,isVertical:!e}};var w={colors:{primary:"rgba(14, 165, 233, 1)",primaryMuted:"rgba(14, 165, 233, 0.7)",accent:"rgba(132, 204, 22, 1)",surface:"rgba(248, 250, 252, 1)"},marker:{outer:"rgba(132, 204, 22, 1)",inner:"rgba(248, 250, 252, 1)",startInner:"rgba(34, 197, 94, 1)",finishInner:"rgba(239, 68, 68, 1)"},dots:{mapActive:"rgba(132, 204, 22, 1)",chart:"rgba(132, 204, 22, 1)",chartActive:"rgba(132, 204, 22, 1)"},map:{strokeWeight:10,markerSize:50,markerLabelFontSize:20,markerLabelFontWeight:"bold",hoverMarkerScale:6},chart:{margin:{top:4,right:8,bottom:4,left:8},gridStroke:"rgba(255,255,255,0.08)",gridDasharray:"3 3",axisStroke:"rgba(226, 232, 240, 0.7)",cursorStroke:"rgba(226,232,240,0.4)",cursorStrokeWidth:1,yAxisWidth:60,lineStrokeWidth:1,dotRadius:3,dotOpacity:.9,activeDotRadius:3,referenceDotRadius:7,referenceLineOpacity:.5,gradientStartOpacity:.6,gradientEndOpacity:.1,xTickFontSize:12,xTickDy:12,xTickUnitFontSize:10,xTickUnitDx:2,yTickFontSize:12,yTickDy:4,yTickUnitFontSize:10,yTickUnitDx:2},tooltip:{background:"rgba(15,23,42,0.9)",textColor:"#e2e8f0",padding:"6px 8px",borderRadius:6},markerShape:{size:33,lift:20,text:{fontSize:12,fontWeight:300,letterSpacing:2,xOffset:15,lineHeight:12,startLiftPerWord:10}}};var $=T.createContext(w),Je=e=>({colors:{...w.colors,...e?.colors??{}},marker:{...w.marker,...e?.marker??{}},dots:{...w.dots,...e?.dots??{}},map:{...w.map,...e?.map??{}},chart:{...w.chart,...e?.chart??{}},tooltip:{...w.tooltip,...e?.tooltip??{}},markerShape:{...w.markerShape,...e?.markerShape??{},text:{...w.markerShape.text,...e?.markerShape?.text??{}}}}),O=({theme:e,children:n})=>{let r=T.useMemo(()=>Je(e),[e]);return jsxRuntime.jsx($.Provider,{value:r,children:n})},h=()=>T.useContext($);var qe=({message:e="Loading map...",height:n="100dvh"})=>{let r=h(),t={height:n,background:r.colors.surface,color:r.colors.primary};return jsxRuntime.jsx("div",{className:Be__default.default.rrpLoader,style:t,children:e})},J=qe;var B=e=>{let{x:n,y:r,payload:t}=e,o=h(),i=Math.round((t?.value??0)/1e3);return jsxRuntime.jsxs("text",{x:n,y:r,fill:o.chart.axisStroke,fontSize:o.chart.xTickFontSize,textAnchor:"middle",dy:o.chart.xTickDy,children:[jsxRuntime.jsx("tspan",{children:i}),jsxRuntime.jsx("tspan",{fontSize:o.chart.xTickUnitFontSize,dx:o.chart.xTickUnitDx,children:"km"})]})};var j=T.createContext(void 0),K=({children:e})=>{let[n,r]=T.useState({}),t=T.useCallback(s=>r(s),[]),o=T.useCallback(()=>r({}),[]),i=T.useMemo(()=>({hover:n,setHover:t,clearHover:o}),[n,t,o]);return jsxRuntime.jsx(j.Provider,{value:i,children:e})},z=()=>{let e=T.useContext(j);if(!e)throw new Error("useHover must be used within HoverProvider");return e};var ee=e=>{let{cx:n,cy:r,fill:t}=e,o=h();return n===void 0||r===void 0?null:jsxRuntime.jsx("circle",{cx:n,cy:r,r:o.chart.dotRadius,fill:t,opacity:o.chart.dotOpacity})},te=e=>{let n=h();return jsxRuntime.jsx(ee,{...e,fill:n.dots.chart})},ne=e=>{let n=h();return jsxRuntime.jsx(ee,{...e,fill:n.dots.mapActive})};var oe=e=>{let{x:n,y:r,payload:t}=e,o=h(),i=Math.round(t?.value??0);return jsxRuntime.jsxs("text",{x:n,y:r,fill:o.chart.axisStroke,fontSize:o.chart.yTickFontSize,textAnchor:"end",dy:o.chart.yTickDy,children:[jsxRuntime.jsx("tspan",{children:i}),jsxRuntime.jsx("tspan",{fontSize:o.chart.yTickUnitFontSize,dx:o.chart.yTickUnitDx,children:"m"})]})};var ie="data:image/png;base64,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";var se="data:image/png;base64,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";var ae="data:image/png;base64,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";var ce="data:image/png;base64,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";var ue="data:image/png;base64,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";var le=(i=>(i.Asphalt="asphalt",i.Compacted="compacted",i.Concrete="concrete",i.Natural="natural",i.Penetrated="penetrated",i))(le||{});var N=16,X={asphalt:{file:ie,size:{width:30,height:22}},compacted:{file:se,size:{width:375,height:16}},concrete:{file:ae,size:{width:30,height:22}},natural:{file:ce,size:{width:30,height:22}},penetrated:{file:ue,size:{width:30,height:22}}},de=({route:e,maxDistance:n,xAxisMap:r,offset:t})=>{let o=e.surface??[];if(!o.length)return null;let i=r?Object.values(r)[0]:void 0,s=i?.scale,a=i?.x??t?.left??0,c=i?.width??t?.width??0,m=i?.y??(t?.top??0)+(t?.height??0),l=N,d=m-l;return !s||c<=0?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("defs",{children:Object.entries(X).map(([u,{file:v,size:p}])=>{let y=p.width,x=N,f=x-p.height;return jsxRuntime.jsx("pattern",{id:`surface-${u}`,patternUnits:"userSpaceOnUse",patternContentUnits:"userSpaceOnUse",width:y,height:x,y:d,overflow:"hidden",children:jsxRuntime.jsx("image",{href:v,x:"0",y:f,width:y,height:p.height})},`pattern-${u}`)})}),jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:a,y:d,width:c,height:l,fill:"none"}),o.map((u,v)=>{let[p,y]=u.segment,x=Math.max(0,Math.min(p,n)),f=Math.max(0,Math.min(y,n)),S=Math.min(x,f),b=Math.max(x,f);if(b<=S)return null;let R=s(S),C=s(b),A=Math.min(R,C),L=Math.max(0,Math.abs(C-R));return L<=0?null:jsxRuntime.jsx("rect",{x:A,y:d,width:L,height:l,fill:`url(#surface-${u.type})`},`${u.type}-${v}`)})]})]})};var dt=300,pt=(e,n)=>e?.length?e.find(r=>{let[t,o]=r.segment,i=Math.min(t,o),s=Math.max(t,o);return n>=i&&n<=s})??null:null,ft=(e,n)=>e?.length?e.find(r=>{let[t,o]=r.segment,i=Math.min(t,o),s=Math.max(t,o);return n>=i&&n<=s})??null:null,ht=e=>e.charAt(0).toUpperCase()+e.slice(1),pe=e=>{let[n,r]=e,t=Math.min(n,r),o=Math.max(n,r),i=s=>{let c=(s/1e3).toFixed(1);return c.endsWith(".0")?c.slice(0,-2):c};return `(${i(t)} km - ${i(o)} km)`},fe=({active:e,payload:n,label:r,accent:t,primary:o,markers:i,surfaces:s,routes:a})=>{let{tooltip:c}=h();if(!e||!n?.length)return null;let m=n[0]?.payload,l=m?.distance??r,d=i.find(f=>Math.abs((f?.distance??-1)-(m?.distance??0))<=dt),u=pt(s,l),v=u?.type?X[u.type]:null,p=ft(a,l),y=Math.trunc(r/1e3),x=Math.round(r%1e3);return jsxRuntime.jsxs("div",{style:{background:c.background,border:"none",color:c.textColor,padding:"4px 6px",borderRadius:c.borderRadius,fontSize:13,lineHeight:1.2},children:[jsxRuntime.jsxs("div",{style:{fontWeight:600,color:o},children:[y," km ",x," m"]}),jsxRuntime.jsxs("div",{children:["Elevation: ",jsxRuntime.jsxs("strong",{children:[Math.round(m?.elevation??0)," m"]})]}),u?.type?jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsxRuntime.jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:v?jsxRuntime.jsx("image",{href:v.file,x:"0",y:"0",width:"20",height:"14",preserveAspectRatio:"xMidYMid slice"}):jsxRuntime.jsx("rect",{width:"20",height:"14",fill:c.textColor})}),jsxRuntime.jsx("span",{children:ht(u.type)}),jsxRuntime.jsx("span",{children:pe(u.segment)})]}):null,p?jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsxRuntime.jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("rect",{width:"20",height:"14",fill:p.color})}),jsxRuntime.jsx("span",{children:p.id}),jsxRuntime.jsx("span",{children:pe(p.segment)})]}):null,d?.name?jsxRuntime.jsx("div",{style:{color:t,fontWeight:600},children:d.name}):null]})};var he=`<svg stroke="currentColor" fill="#84CC16" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true" height="200px" width="200px" xmlns="http://www.w3.org/2000/svg">
|
|
1
|
+
'use strict';var reactWrapper=require('@googlemaps/react-wrapper'),M=require('react'),jsxRuntime=require('react/jsx-runtime'),ht=require('./Loader.module-M6WPG37K.module.css'),kt=require('./GoogleMapCanvas.module-GCGVA6T4.module.css'),md=require('react-icons/md'),recharts=require('recharts'),b=require('./RouteMap.module-BNAAKWIR.module.css');require('./index-DIK6ZNA4.css');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var M__namespace=/*#__PURE__*/_interopNamespace(M);var ht__default=/*#__PURE__*/_interopDefault(ht);var kt__default=/*#__PURE__*/_interopDefault(kt);var b__default=/*#__PURE__*/_interopDefault(b);var q=()=>typeof window>"u"?true:window.innerWidth>=window.innerHeight,j=()=>{let[e,t]=M.useState(q);return M.useEffect(()=>{let n=()=>t(q());return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),{isHorizontal:e,isVertical:!e}};var ee=(i=>(i.Asphalt="asphalt",i.Compacted="compacted",i.Concrete="concrete",i.Natural="natural",i.Penetrated="penetrated",i))(ee||{});var te={loader:{loadingMap:"Karte wird geladen..."},routeMap:{apiKeyMissing:"Die Karte kann nicht angezeigt werden: Der Google Maps API-Schl\xFCssel fehlt",googleMapsFailure:"Die Google Maps API konnte nicht geladen werden. Pr\xFCfen Sie Ihren API-Schl\xFCssel oder die Netzwerkverbindung.",expandRouteProfile:"Routenprofil erweitern",minimizeRouteProfile:"Routenprofil minimieren",scrollToExplore:"Zum Erkunden scrollen",scrollableRouteProfile:"Scrollbares Routenprofil"},tooltip:{elevation:"H\xF6henmeter"},surface:{asphalt:"Asphalt",compacted:"Verdichteter Belag",concrete:"Beton",natural:"Naturbelag",penetrated:"Penetrierter Belag"}};var re={loader:{loadingMap:"Loading map..."},routeMap:{apiKeyMissing:"Oops! Cannot display the map: Google Maps API key missing",googleMapsFailure:"Unable to load Google Maps API. Check your API key or network.",expandRouteProfile:"Expand route profile",minimizeRouteProfile:"Minimize route profile",scrollToExplore:"Scroll to explore",scrollableRouteProfile:"Scrollable route profile"},tooltip:{elevation:"Elevation"},surface:{asphalt:"Asphalt",compacted:"Compacted",concrete:"Concrete",natural:"Natural",penetrated:"Penetrated"}};var ne={loader:{loadingMap:"Na\u010D\xEDtavam mapu..."},routeMap:{apiKeyMissing:"Ups! Mapu nie je mo\u017En\xE9 zobrazi\u0165: ch\xFDba Google Maps API k\u013E\xFA\u010D",googleMapsFailure:"Google Maps API sa nepodarilo na\u010D\xEDta\u0165. Skontrolujte API k\u013E\xFA\u010D alebo sie\u0165.",expandRouteProfile:"Rozbali\u0165 profil trasy",minimizeRouteProfile:"Zbali\u0165 profil trasy",scrollToExplore:"Posunut\xEDm zobraz\xEDte viac",scrollableRouteProfile:"Posuvn\xFD profil trasy"},tooltip:{elevation:"Prev\xFD\u0161enie"},surface:{asphalt:"Asfalt",compacted:"Spevnen\xFD povrch",concrete:"Bet\xF3n",natural:"Pr\xEDrodn\xFD povrch",penetrated:"Penetra\u010Dn\xFD povrch"}};var oe={de:te,en:re,sk:ne},ie=M.createContext(oe.en),ae=({lang:e,children:t})=>{let n=M.useMemo(()=>oe[e??"en"],[e]);return jsxRuntime.jsx(ie.Provider,{value:n,children:t})},P=()=>M.useContext(ie);var w={colors:{primary:"rgba(14, 165, 233, 1)",primaryMuted:"rgba(14, 165, 233, 0.7)",accent:"rgba(132, 204, 22, 1)",surface:"rgba(248, 250, 252, 1)"},marker:{outer:"rgba(132, 204, 22, 1)",inner:"rgba(248, 250, 252, 1)",startInner:"rgba(34, 197, 94, 1)",finishInner:"rgba(239, 68, 68, 1)"},dots:{mapActive:"rgba(132, 204, 22, 1)",chart:"rgba(132, 204, 22, 1)",chartActive:"rgba(132, 204, 22, 1)"},map:{strokeWeight:10,markerSize:50,markerLabelFontSize:20,markerLabelFontWeight:"bold",hoverMarkerScale:6},chart:{margin:{top:4,right:8,bottom:4,left:8},gridStroke:"rgba(255,255,255,0.08)",gridDasharray:"3 3",axisStroke:"rgba(226, 232, 240, 0.7)",cursorStroke:"rgba(226,232,240,0.4)",cursorStrokeWidth:1,yAxisWidth:60,lineStrokeWidth:1,dotRadius:3,dotOpacity:.9,activeDotRadius:3,referenceDotRadius:7,referenceLineOpacity:.5,gradientStartOpacity:.6,gradientEndOpacity:.1,xTickFontSize:12,xTickDy:12,xTickUnitFontSize:10,xTickUnitDx:2,yTickFontSize:12,yTickDy:4,yTickUnitFontSize:10,yTickUnitDx:2},tooltip:{background:"rgba(15,23,42,0.9)",textColor:"#e2e8f0",padding:"6px 8px",borderRadius:6},markerShape:{size:33,lift:20,text:{fontSize:12,fontWeight:300,letterSpacing:2,xOffset:15,lineHeight:12,startLiftPerWord:10}}};var se=M.createContext(w),dt=e=>({colors:{...w.colors,...e?.colors??{}},marker:{...w.marker,...e?.marker??{}},dots:{...w.dots,...e?.dots??{}},map:{...w.map,...e?.map??{}},chart:{...w.chart,...e?.chart??{}},tooltip:{...w.tooltip,...e?.tooltip??{}},markerShape:{...w.markerShape,...e?.markerShape??{},text:{...w.markerShape.text,...e?.markerShape?.text??{}}}}),F=({theme:e,children:t})=>{let n=M.useMemo(()=>dt(e),[e]);return jsxRuntime.jsx(se.Provider,{value:n,children:t})},g=()=>M.useContext(se);var gt=({message:e,height:t="100dvh"})=>{let n=g(),{loader:r}=P(),o={height:t,background:n.colors.surface,color:n.colors.primary};return jsxRuntime.jsx("div",{className:ht__default.default.rrpLoader,style:o,children:e??r.loadingMap})},ce=gt;var H=e=>e.length?e[e.length-1].distance:0,ue=(e,t=2e3)=>{let n=[];for(let r=0;r<=e;r+=t)n.push(r);return n[n.length-1]<e&&n.push(e),n},U=e=>[...e.geoJson?.features?.find(o=>o?.geometry?.type==="LineString"&&o?.properties?.elevationProfile?.points)?.properties?.elevationProfile?.points||[]].sort((o,i)=>(o?.distance??0)-(i?.distance??0)),le=e=>(e.geoJson?.features?.find(r=>r?.geometry?.type==="LineString"&&r?.geometry?.coordinates)).geometry.coordinates,me=e=>{if(!e.length)return [0,0];let t=e.map(i=>i.elevation),n=Math.min(...t),r=Math.max(...t),o=Math.max(10,(r-n)*.05);return [Math.floor(n-o),Math.ceil(r+o)]},pe=(e,t=false)=>{let[n,r]=e,o=(r-n)*1.2,i=Math.max(10,Math.round(o/6/10)*10||50),a=t?-20:0,s=Math.floor((n-(o-(r-n))/2)/i)*i+a,c=Math.ceil((r+(o-(r-n))/2)/i)*i+a,p=[];for(let u=s;u<=c+i/2;u+=i)p.push(u);return [s,c,p]},de=(e,t)=>{if(!e?.length)return [];let r=(t?.features??[]).filter(i=>i?.geometry?.type==="Point"),o=[];return r.forEach(i=>{let a=i?.geometry?.coordinates;if(!Array.isArray(a)||a.length<2)return;let[s,c]=a;if(!Number.isFinite(c)||!Number.isFinite(s))return;let p=e.reduce((u,m)=>{let l=Math.pow(m.lat-c,2)+Math.pow(m.lng-s,2);return l<u.dist?{point:m,dist:l}:u},{point:null,dist:Number.POSITIVE_INFINITY});if(p.point){if(p.point.distance===0)return;o.push({distance:p.point.distance,elevation:p.point.elevation,name:i?.properties?.name});}}),o.sort((i,a)=>(i.distance??0)-(a.distance??0))},fe=(e,t)=>{if(!e.length)return null;let n=null,r=Number.POSITIVE_INFINITY;return e.forEach(([o,i])=>{let a=(i-t.lat)**2+(o-t.lng)**2;a<r&&(r=a,n={lat:i,lng:o});}),n},he=(e,t)=>{if(!e.length)return null;let n=null,r=Number.POSITIVE_INFINITY;return e.forEach(o=>{let i=(o.lat-t[0])**2+(o.lng-t[1])**2;i<r&&(r=i,n=o);}),n};var ge=(e,t,n=1e3)=>t&&Math.abs((t.distance??0)-(e.distance??0))<n;var xe={lat:48.9325937,lng:20.3452306},ye=13,ve=12;var we=`<svg stroke="currentColor" fill="#84CC16" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true" height="200px" width="200px" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<path stroke-linecap="round" stroke-linejoin="round" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"></path>
|
|
3
3
|
<path fill="white" stroke-linecap="round" stroke-linejoin="round" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
4
4
|
</svg>
|
|
5
|
-
`;var xt=(e,n,r)=>{let t=0;return e.replace(/fill="[^"]*"/g,o=>(t+=1,t===1?`fill="${n}"`:t===2?`fill="${r}"`:o))},P=(e,n)=>{let r=xt(he,e,n).trim();return `data:image/svg+xml,${encodeURIComponent(r).replace(/'/g,"%27").replace(/"/g,"%22")}`};var ge=e=>{let{cx:n,cy:r,fill:t,name:o}=e,i=h(),s=i.markerShape,a=s.size,c=T.useMemo(()=>P(i.marker.outer,i.marker.inner),[i.marker.inner,i.marker.outer]);if(n===void 0||r===void 0)return null;let m=typeof o=="string"?o.split(/\s+/).map(l=>l.trim()).filter(Boolean):[];return jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx(ne,{cx:n,cy:r}),jsxRuntime.jsx("image",{x:n-a/2,y:r-a/2-s.lift,width:a,height:a,href:c}),o?jsxRuntime.jsx(St,{words:m,cx:n,cy:r,fill:t}):null]})},St=({words:e,cx:n,cy:r,fill:t})=>{let i=h().markerShape.text;return jsxRuntime.jsx("text",{y:r-e.length*i.startLiftPerWord,fill:t||"#fff",fontSize:i.fontSize,fontWeight:i.fontWeight,letterSpacing:i.letterSpacing,style:{userSelect:"none"},children:e.map((s,a)=>jsxRuntime.jsx(wt,{word:s,index:a,cx:n},`${n}-${r}-word-${a}`))})},wt=({word:e,index:n,cx:r})=>{let o=h().markerShape.text,i=T.useId();return jsxRuntime.jsx("tspan",{x:r+o.xOffset,dy:n===0?0:o.lineHeight,children:e},i)};var ye=({route:e,maxDistance:n,belowHeight:r=0,xAxisMap:t,offset:o})=>{let i=e.routes??[];if(!i.length)return null;let s=t?Object.values(t)[0]:void 0,a=s?.scale,c=s?.x??o?.left??0,m=s?.width??o?.width??0,l=s?.y??(o?.top??0)+(o?.height??0),d=16,u=l-r-d;return !a||m<=0?null:jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:c,y:u,width:m,height:d,fill:"none"}),i.map((v,p)=>{let[y,x]=v.segment,f=Math.max(0,Math.min(y,n)),S=Math.max(0,Math.min(x,n)),b=Math.min(f,S),R=Math.max(f,S);if(R<=b)return null;let C=a(b),A=a(R),L=Math.min(C,A),H=Math.max(0,Math.abs(A-C));return H<=0?null:jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:L,y:u,width:H,height:d,fill:v.color}),jsxRuntime.jsx("text",{x:L+H/2,y:u+d/2,fill:"#000000",fontSize:10,fontWeight:600,textAnchor:"middle",dominantBaseline:"middle",children:v.id})]},`${v.id}-${p}`)})]})};function Se(e){let[n,r]=T.useState(null),t=T.useMemo(()=>n!=null?e[n]:null,[n,e]),o=T.useCallback(()=>{r(null);},[]),i=T.useCallback(s=>{if(!e.length)return;let a=0,c=e.length-1;for(;a<c;){let l=Math.floor((a+c)/2);e[l].distance<s?a=l+1:c=l;}let m=a;if(a>0){let l=e[a-1],d=e[a];Math.abs(l.distance-s)<Math.abs(d.distance-s)&&(m=a-1);}r(m);},[e]);return {activeIndex:n,activePoint:t,triggerByXValue:i,clearActiveIndex:o}}var we=e=>e.length?e[e.length-1].distance:0,be=(e,n=2e3)=>{let r=[];for(let t=0;t<=e;t+=n)r.push(t);return r[r.length-1]<e&&r.push(e),r},Ee=e=>[...e.geoJson?.features?.find(o=>o?.geometry?.type==="LineString"&&o?.properties?.elevationProfile?.points)?.properties?.elevationProfile?.points||[]].sort((o,i)=>(o?.distance??0)-(i?.distance??0)),Re=e=>(e.geoJson?.features?.find(t=>t?.geometry?.type==="LineString"&&t?.geometry?.coordinates)).geometry.coordinates,Te=e=>{if(!e.length)return [0,0];let n=e.map(i=>i.elevation),r=Math.min(...n),t=Math.max(...n),o=Math.max(10,(t-r)*.05);return [Math.floor(r-o),Math.ceil(t+o)]},ke=(e,n=false)=>{let[r,t]=e,o=(t-r)*1.2,i=Math.max(10,Math.round(o/6/10)*10||50),s=n?-20:0,a=Math.floor((r-(o-(t-r))/2)/i)*i+s,c=Math.ceil((t+(o-(t-r))/2)/i)*i+s,m=[];for(let l=a;l<=c+i/2;l+=i)m.push(l);return [a,c,m]},Ce=(e,n)=>{if(!e?.length)return [];let t=(n?.features??[]).filter(i=>i?.geometry?.type==="Point"),o=[];return t.forEach(i=>{let s=i?.geometry?.coordinates;if(!Array.isArray(s)||s.length<2)return;let[a,c]=s;if(!Number.isFinite(c)||!Number.isFinite(a))return;let m=e.reduce((l,d)=>{let u=Math.pow(d.lat-c,2)+Math.pow(d.lng-a,2);return u<l.dist?{point:d,dist:u}:l},{point:null,dist:Number.POSITIVE_INFINITY});if(m.point){if(m.point.distance===0)return;o.push({distance:m.point.distance,elevation:m.point.elevation,name:i?.properties?.name});}}),o.sort((i,s)=>(i.distance??0)-(s.distance??0))},Me=(e,n)=>{if(!e.length)return null;let r=null,t=Number.POSITIVE_INFINITY;return e.forEach(([o,i])=>{let s=(i-n.lat)**2+(o-n.lng)**2;s<t&&(t=s,r={lat:i,lng:o});}),r},Pe=(e,n)=>{if(!e.length)return null;let r=null,t=Number.POSITIVE_INFINITY;return e.forEach(o=>{let i=(o.lat-n[0])**2+(o.lng-n[1])**2;i<t&&(t=i,r=o);}),r};var De=(e,n,r=1e3)=>n&&Math.abs((n.distance??0)-(e.distance??0))<r;var Q=({route:e})=>{let{hover:n,setHover:r}=z(),t=h(),o=T.useMemo(()=>Ee(e),[e]),i=T.useMemo(()=>Ce(o,e.geoJson),[o,e.geoJson]),s=we(o),a=be(s),[c,m]=Te(o),[l,d,u]=T.useMemo(()=>ke([c,m],!!e.surface?.length),[c,m,e.surface?.length]),{activeIndex:v,activePoint:p,triggerByXValue:y,clearActiveIndex:x}=Se(o);return T.useEffect(()=>{if(n.source==="chart"||!n.lat||!n.lng)return;let f=Pe(o,[n.lat,n.lng]);f&&y(f.distance);},[n,o,y]),o.length?jsxRuntime.jsx(recharts.ResponsiveContainer,{width:"100%",height:"100%",style:{userSelect:"none"},children:jsxRuntime.jsxs(recharts.ComposedChart,{data:o,margin:t.chart.margin,onMouseMove:({activePayload:f})=>{v&&x();let S=f?.[0];if(!S)return;let{lat:b,lng:R}=S.payload;r({lat:b,lng:R,source:"chart"});},onMouseEnter:()=>x(),children:[jsxRuntime.jsx("defs",{children:jsxRuntime.jsxs("linearGradient",{id:"elevationGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:t.colors.primary,stopOpacity:t.chart.gradientStartOpacity}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:t.colors.primaryMuted,stopOpacity:t.chart.gradientEndOpacity})]})}),jsxRuntime.jsx(recharts.CartesianGrid,{stroke:t.chart.gridStroke,strokeDasharray:t.chart.gridDasharray}),jsxRuntime.jsx(recharts.Customized,{component:jsxRuntime.jsx(ye,{route:e,maxDistance:s,belowHeight:N})}),jsxRuntime.jsx(recharts.Customized,{component:jsxRuntime.jsx(de,{route:e,maxDistance:s})}),jsxRuntime.jsx(recharts.XAxis,{dataKey:"distance",type:"number",domain:[0,s],ticks:a,tick:jsxRuntime.jsx(B,{}),stroke:t.chart.axisStroke}),jsxRuntime.jsx(recharts.YAxis,{dataKey:"elevation",tick:jsxRuntime.jsx(oe,{}),domain:[l,d],ticks:u,stroke:t.chart.axisStroke,width:t.chart.yAxisWidth}),jsxRuntime.jsx(recharts.Tooltip,{cursor:{stroke:t.chart.cursorStroke,strokeWidth:t.chart.cursorStrokeWidth},content:jsxRuntime.jsx(fe,{accent:t.colors.accent,primary:t.colors.primary,markers:i,surfaces:e.surface,routes:e.routes})}),jsxRuntime.jsx(recharts.Line,{type:"monotone",dataKey:"elevation",stroke:t.colors.primary,strokeWidth:t.chart.lineStrokeWidth,dot:f=>{let{cx:S,cy:b,index:R}=f;if(R===v&&p)return jsxRuntime.jsx(te,{cx:S,cy:b},`dot-${S}-${b}`)},activeDot:{r:t.chart.activeDotRadius,fill:t.dots.chartActive,strokeWidth:0},fill:"url(#elevationGradient)",isAnimationActive:false}),i.length>0&&i.map((f,S)=>{let b=De(i[S],i[S+1]);return jsxRuntime.jsx(recharts.ReferenceDot,{x:f.distance,y:f.elevation,r:t.chart.referenceDotRadius,shape:R=>jsxRuntime.jsx(ge,{...R,name:b?void 0:f.name,fill:t.colors.accent})},`${f.distance}-${S}`)}),p&&jsxRuntime.jsx(recharts.ReferenceLine,{x:p.distance,opacity:t.chart.referenceLineOpacity})]})}):null};var Ae={lat:48.9325937,lng:20.3452306},Oe=13,ze=12;var Ue=({route:e,height:n,isHorizontal:r})=>{let t=h(),{hover:o,setHover:i}=z(),s=T.useRef(null),a=T.useRef(null),c=T.useRef(null),m=T.useMemo(()=>Re(e),[e]),l=T.useMemo(()=>({default:P(t.marker.outer,t.marker.inner),start:P(t.marker.outer,t.marker.startInner),finish:P(t.marker.outer,t.marker.finishInner)}),[t.marker]);return T.useEffect(()=>{if(!s.current||!window.google?.maps)return;let d=r&&(e.zoomHorizontal||Oe)||e.zoomVertical||ze,u=new window.google.maps.Map(s.current,{center:e.center||Ae,zoom:d,mapTypeId:window.google.maps.MapTypeId.SATELLITE,streetViewControl:false});c.current=u,u.data.setStyle(p=>{let y=p.getProperty("name"),x=p.getProperty("first"),f=p.getProperty("last");return {strokeColor:t.colors.primaryMuted,strokeWeight:t.map.strokeWeight,icon:{url:x?l.start:f?l.finish:l.default,scaledSize:new window.google.maps.Size(t.map.markerSize,t.map.markerSize),optimized:false,zIndex:x||f?100:10,collisionBehavior:window.google?.maps?.CollisionBehavior?.REQUIRED_AND_HIDES_OPTIONAL},label:{className:"rrpMarkerLabel",fontSize:`${t.map.markerLabelFontSize}px`,fontWeight:t.map.markerLabelFontWeight,color:t.colors.accent,text:y}}}),u.data.addGeoJson(e.geoJson);let v=u.addListener("mousemove",p=>{let y=p.latLng;if(!y)return;let x=Me(m,{lat:y.lat(),lng:y.lng()});x&&i({lat:x.lat,lng:x.lng,source:"map"});});return ()=>{v.remove(),u.data.forEach(p=>{u.data.remove(p);}),c.current=null;}},[e,r,t,m,i,l]),T.useEffect(()=>{if(!s.current||!window.google?.maps)return;let d=c.current;if(!d)return;if(!o.lat||!o.lng){a.current&&(a.current.setMap(null),a.current=null);return}let u={path:window.google.maps.SymbolPath.CIRCLE,scale:t.map.hoverMarkerScale,fillColor:t.dots.mapActive,fillOpacity:1,strokeWeight:0};a.current?a.current.setIcon(u):a.current=new window.google.maps.Marker({map:d,icon:u}),a.current.setPosition({lat:o.lat,lng:o.lng}),a.current.setMap(d);},[o,t]),jsxRuntime.jsx("div",{ref:s,className:Nt__default.default.rrpMapCanvas,style:{height:n}})};var Xt={apiKey:"Oops! Cannot display the map: Google Maps API key missing",[reactWrapper.Status.FAILURE]:"Unable to load Google Maps API. Check your API key or network.",[reactWrapper.Status.LOADING]:void 0,[reactWrapper.Status.SUCCESS]:void 0},Fe=({type:e,height:n})=>jsxRuntime.jsx("div",{style:{height:n},children:jsxRuntime.jsx(J,{message:Xt[e],height:n})}),Ft=(e,n)=>jsxRuntime.jsx(Fe,{type:e,height:n}),We=({apiKey:e,route:n,height:r="100dvh",className:t,style:o,theme:i=w})=>{let{isHorizontal:s}=G();if(!e)return jsxRuntime.jsx(O,{theme:i,children:jsxRuntime.jsx(Fe,{type:"apiKey",height:r})});let a={height:r,width:"100%",...o};return jsxRuntime.jsx(O,{theme:i,children:jsxRuntime.jsx(K,{children:jsxRuntime.jsxs("div",{className:t,style:a,children:[jsxRuntime.jsx(reactWrapper.Wrapper,{apiKey:e,render:c=>Ft(c,r),children:jsxRuntime.jsx(Ue,{route:n,height:r,isHorizontal:s})}),jsxRuntime.jsx("div",{className:Xe__default.default.rrpChartLayer,children:jsxRuntime.jsx("div",{className:Xe__default.default.rrpChartBody,children:jsxRuntime.jsx(Q,{route:n})})})]})})})};function Qe(){let[e,n]=T__namespace.useState({width:null,height:null}),r=T__namespace.useRef(null);return [T__namespace.useCallback(o=>{if(r.current&&(r.current.disconnect(),r.current=null),o?.nodeType===Node.ELEMENT_NODE){let i=new ResizeObserver(([s])=>{if(s&&s.borderBoxSize){let{inlineSize:a,blockSize:c}=s.borderBoxSize[0];n({width:a,height:c});}});i.observe(o),r.current=i;}},[]),e]}var Qt=()=>{let[e,{height:n}]=Qe(),r=!!n,t=r?`calc(100dvh - ${n}px)`:"0px";return {refHeader:e,isHeaderReady:r,headerHeight:n,mapHeight:t}};exports.RouteMap=We;exports.SurfaceType=le;exports.ThemeProvider=O;exports.theme=w;exports.useMapHeader=Qt;exports.useTheme=h;//# sourceMappingURL=index.cjs.map
|
|
5
|
+
`;var vt=(e,t,n)=>{let r=0;return e.replace(/fill="[^"]*"/g,o=>(r+=1,r===1?`fill="${t}"`:r===2?`fill="${n}"`:o))},D=(e,t)=>{let n=vt(we,e,t).trim();return `data:image/svg+xml,${encodeURIComponent(n).replace(/'/g,"%27").replace(/"/g,"%22")}`};var be=M.createContext(void 0),Re=({children:e})=>{let[t,n]=M.useState({}),r=M.useCallback(a=>n(a),[]),o=M.useCallback(()=>n({}),[]),i=M.useMemo(()=>({hover:t,setHover:r,clearHover:o}),[t,r,o]);return jsxRuntime.jsx(be.Provider,{value:i,children:e})},W=()=>{let e=M.useContext(be);if(!e)throw new Error("useHover must be used within HoverProvider");return e};var ke=({route:e,height:t,isHorizontal:n})=>{let r=g(),{hover:o,setHover:i}=W(),a=M.useRef(null),s=M.useRef(null),c=M.useRef(null),p=M.useMemo(()=>le(e),[e]),u=M.useMemo(()=>({default:D(r.marker.outer,r.marker.inner),start:D(r.marker.outer,r.marker.startInner),finish:D(r.marker.outer,r.marker.finishInner)}),[r.marker]);return M.useEffect(()=>{if(!a.current||!window.google?.maps)return;let m=n&&(e.zoomHorizontal||ye)||e.zoomVertical||ve,l=new window.google.maps.Map(a.current,{center:e.center||xe,zoom:m,mapTypeId:window.google.maps.MapTypeId.SATELLITE,mapTypeControl:true,streetViewControl:false});c.current=l,l.data.setStyle(d=>{let x=d.getProperty("name"),h=d.getProperty("first"),f=d.getProperty("last");return {strokeColor:r.colors.primaryMuted,strokeWeight:r.map.strokeWeight,icon:{url:h?u.start:f?u.finish:u.default,scaledSize:new window.google.maps.Size(r.map.markerSize,r.map.markerSize),optimized:false,zIndex:h||f?100:10,collisionBehavior:window.google?.maps?.CollisionBehavior?.REQUIRED_AND_HIDES_OPTIONAL},label:{className:"rrpMarkerLabel",fontSize:`${r.map.markerLabelFontSize}px`,fontWeight:r.map.markerLabelFontWeight,color:r.colors.accent,text:x}}}),l.data.addGeoJson(e.geoJson);let S=l.addListener("mousemove",d=>{let x=d.latLng;if(!x)return;let h=fe(p,{lat:x.lat(),lng:x.lng()});h&&i({lat:h.lat,lng:h.lng,source:"map"});});return ()=>{S.remove(),l.data.forEach(d=>{l.data.remove(d);}),c.current=null;}},[e,n,r,p,i,u]),M.useEffect(()=>{if(!a.current||!window.google?.maps)return;let m=c.current;if(!m)return;if(!o.lat||!o.lng){s.current&&(s.current.setMap(null),s.current=null);return}let l={path:window.google.maps.SymbolPath.CIRCLE,scale:r.map.hoverMarkerScale,fillColor:r.dots.mapActive,fillOpacity:1,strokeWeight:0};s.current?s.current.setIcon(l):s.current=new window.google.maps.Marker({map:m,icon:l}),s.current.setPosition({lat:o.lat,lng:o.lng}),s.current.setMap(m);},[o,r]),jsxRuntime.jsx("div",{ref:a,className:kt__default.default.rrpMapCanvas,style:{height:t}})};var Me=()=>{let[e,t]=M.useState(false);return M.useEffect(()=>{if(!e)return;let n=i=>{i.key==="Escape"&&t(false);},r=document.body.style.overflow,o=document.documentElement.style.overflow;return document.body.style.overflow="hidden",document.documentElement.style.overflow="hidden",window.addEventListener("keydown",n),()=>{document.body.style.overflow=r,document.documentElement.style.overflow=o,window.removeEventListener("keydown",n);}},[e]),{isChartExpanded:e,toggleChartExpanded:()=>t(n=>!n)}};var V=(e,t,n)=>Math.min(n,Math.max(t,e)),Dt=({isHorizontal:e,width:t,height:n})=>{let r=V((t-360)/1080,0,1),o=V((n-540)/360,0,1),i=.68+r*.22+o*.1;return Math.min(1,V(i*(e?1:.88),.62,1))},Ce=({isHorizontal:e,theme:t,width:n,height:r})=>M.useMemo(()=>{let o=Dt({isHorizontal:e,width:n,height:r}),i={...w.map,...t.map??{}},a={...w.chart,...t.chart??{}},s={...w.markerShape,...t.markerShape??{},text:{...w.markerShape.text,...t.markerShape?.text??{}}};return {...t,map:{...i,markerLabelFontSize:Math.max(12,Math.round(i.markerLabelFontSize*o)),markerLabelFontWeight:e&&n>=768?i.markerLabelFontWeight:"400"},chart:{...a,xTickFontSize:Math.max(10,Math.round(a.xTickFontSize*o)),xTickUnitFontSize:Math.max(9,Math.round(a.xTickUnitFontSize*o)),yTickFontSize:Math.max(10,Math.round(a.yTickFontSize*o)),yTickUnitFontSize:Math.max(9,Math.round(a.yTickUnitFontSize*o)),yAxisWidth:Math.max(48,Math.round(a.yAxisWidth*o))},markerShape:{...s,text:{...s.text,fontSize:Math.max(10,Math.round(s.text.fontSize*o)),lineHeight:Math.max(10,Math.round(s.text.lineHeight*o)),xOffset:Math.max(12,Math.round(s.text.xOffset*o)),startLiftPerWord:Math.max(8,Math.round(s.text.startLiftPerWord*o))}}}},[r,e,t,n]);var Pe=()=>({width:typeof window>"u"?1440:window.innerWidth,height:typeof window>"u"?900:window.innerHeight}),Le=()=>{let[e,t]=M.useState(Pe);return M.useEffect(()=>{let n=()=>t(Pe());return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),e};var Ie=e=>{let{x:t,y:n,payload:r}=e,o=g(),i=Math.round((r?.value??0)/1e3);return jsxRuntime.jsxs("text",{x:t,y:n,fill:o.chart.axisStroke,fontSize:o.chart.xTickFontSize,textAnchor:"middle",dy:o.chart.xTickDy,children:[jsxRuntime.jsx("tspan",{children:i}),jsxRuntime.jsx("tspan",{fontSize:o.chart.xTickUnitFontSize,dx:o.chart.xTickUnitDx,children:"km"})]})};var ze=e=>{let{cx:t,cy:n,fill:r}=e,o=g();return t===void 0||n===void 0?null:jsxRuntime.jsx("circle",{cx:t,cy:n,r:o.chart.dotRadius,fill:r,opacity:o.chart.dotOpacity})},Ae=e=>{let t=g();return jsxRuntime.jsx(ze,{...e,fill:t.dots.chart})},Ne=e=>{let t=g();return jsxRuntime.jsx(ze,{...e,fill:t.dots.mapActive})};var Fe=e=>{let{x:t,y:n,payload:r}=e,o=g(),i=Math.round(r?.value??0);return jsxRuntime.jsxs("text",{x:t,y:n,fill:o.chart.axisStroke,fontSize:o.chart.yTickFontSize,textAnchor:"end",dy:o.chart.yTickDy,children:[jsxRuntime.jsx("tspan",{children:i}),jsxRuntime.jsx("tspan",{fontSize:o.chart.yTickUnitFontSize,dx:o.chart.yTickUnitDx,children:"m"})]})};var He="data:image/png;base64,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";var Ue="data:image/png;base64,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";var We="data:image/png;base64,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";var Xe="data:image/png;base64,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";var Qe="data:image/png;base64,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";var X=16,J={asphalt:{file:He,size:{width:30,height:22}},compacted:{file:Ue,size:{width:375,height:16}},concrete:{file:We,size:{width:30,height:22}},natural:{file:Xe,size:{width:30,height:22}},penetrated:{file:Qe,size:{width:30,height:22}}},_e=({route:e,maxDistance:t,xAxisMap:n,offset:r})=>{let o=e.surface??[];if(!o.length)return null;let i=n?Object.values(n)[0]:void 0,a=i?.scale,s=i?.x??r?.left??0,c=i?.width??r?.width??0,p=i?.y??(r?.top??0)+(r?.height??0),u=X,m=p-u;return !a||c<=0?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("defs",{children:Object.entries(J).map(([l,{file:S,size:d}])=>{let x=d.width,h=X,f=h-d.height;return jsxRuntime.jsx("pattern",{id:`surface-${l}`,patternUnits:"userSpaceOnUse",patternContentUnits:"userSpaceOnUse",width:x,height:h,y:m,overflow:"hidden",children:jsxRuntime.jsx("image",{href:S,x:"0",y:f,width:x,height:d.height})},`pattern-${l}`)})}),jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:s,y:m,width:c,height:u,fill:"none"}),o.map((l,S)=>{let[d,x]=l.segment,h=Math.max(0,Math.min(d,t)),f=Math.max(0,Math.min(x,t)),y=Math.min(h,f),R=Math.max(h,f);if(R<=y)return null;let k=a(y),L=a(R),O=Math.min(k,L),A=Math.max(0,Math.abs(L-k));return A<=0?null:jsxRuntime.jsx("rect",{x:O,y:m,width:A,height:u,fill:`url(#surface-${l.type})`},`${l.type}-${S}`)})]})]})};var Qt=300,Yt=(e,t)=>e?.length?e.find(n=>{let[r,o]=n.segment,i=Math.min(r,o),a=Math.max(r,o);return t>=i&&t<=a})??null:null,_t=(e,t)=>e?.length?e.find(n=>{let[r,o]=n.segment,i=Math.min(r,o),a=Math.max(r,o);return t>=i&&t<=a})??null:null,Ve=e=>{let[t,n]=e,r=Math.min(t,n),o=Math.max(t,n),i=a=>{let c=(a/1e3).toFixed(1);return c.endsWith(".0")?c.slice(0,-2):c};return `(${i(r)} km - ${i(o)} km)`},Ge=({active:e,payload:t,label:n,accent:r,primary:o,markers:i,surfaces:a,routes:s})=>{let{tooltip:c}=g(),{surface:p,tooltip:u}=P();if(!e||!t?.length)return null;let m=t[0]?.payload,l=m?.distance??n,S=i.find(R=>Math.abs((R?.distance??-1)-(m?.distance??0))<=Qt),d=Yt(a,l),x=d?.type?J[d.type]:null,h=_t(s,l),f=Math.trunc(n/1e3),y=Math.round(n%1e3);return jsxRuntime.jsxs("div",{style:{background:c.background,border:"none",color:c.textColor,padding:"4px 6px",borderRadius:c.borderRadius,fontSize:13,lineHeight:1.2},children:[jsxRuntime.jsxs("div",{style:{fontWeight:600,color:o},children:[f," km ",y," m"]}),jsxRuntime.jsxs("div",{children:[u.elevation,": ",jsxRuntime.jsxs("strong",{children:[Math.round(m?.elevation??0)," m"]})]}),d?.type?jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsxRuntime.jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:x?jsxRuntime.jsx("image",{href:x.file,x:"0",y:"0",width:"20",height:"14",preserveAspectRatio:"xMidYMid slice"}):jsxRuntime.jsx("rect",{width:"20",height:"14",fill:c.textColor})}),jsxRuntime.jsx("span",{children:p[d.type]}),jsxRuntime.jsx("span",{children:Ve(d.segment)})]}):null,h?jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsxRuntime.jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:jsxRuntime.jsx("rect",{width:"20",height:"14",fill:h.color})}),jsxRuntime.jsx("span",{children:h.id}),jsxRuntime.jsx("span",{children:Ve(h.segment)})]}):null,S?.name?jsxRuntime.jsx("div",{style:{color:r,fontWeight:600},children:S.name}):null]})};var Je=e=>{let{cx:t,cy:n,fill:r,name:o}=e,i=g(),a=i.markerShape,s=a.size,c=M.useMemo(()=>D(i.marker.outer,i.marker.inner),[i.marker.inner,i.marker.outer]);if(t===void 0||n===void 0)return null;let p=typeof o=="string"?o.split(/\s+/).map(u=>u.trim()).filter(Boolean):[];return jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx(Ne,{cx:t,cy:n}),jsxRuntime.jsx("image",{x:t-s/2,y:n-s/2-a.lift,width:s,height:s,href:c}),o?jsxRuntime.jsx(Jt,{words:p,cx:t,cy:n,fill:r}):null]})},Jt=({words:e,cx:t,cy:n,fill:r})=>{let i=g().markerShape.text;return jsxRuntime.jsx("text",{y:n-e.length*i.startLiftPerWord,fill:r||"#fff",fontSize:i.fontSize,fontWeight:i.fontWeight,letterSpacing:i.letterSpacing,style:{userSelect:"none"},children:e.map((a,s)=>jsxRuntime.jsx($t,{word:a,index:s,cx:t},`${t}-${n}-word-${s}`))})},$t=({word:e,index:t,cx:n})=>{let o=g().markerShape.text,i=M.useId();return jsxRuntime.jsx("tspan",{x:n+o.xOffset,dy:t===0?0:o.lineHeight,children:e},i)};var Ze=({route:e,maxDistance:t,belowHeight:n=0,xAxisMap:r,offset:o})=>{let i=e.routes??[];if(!i.length)return null;let a=r?Object.values(r)[0]:void 0,s=a?.scale,c=a?.x??o?.left??0,p=a?.width??o?.width??0,u=a?.y??(o?.top??0)+(o?.height??0),m=16,l=u-n-m;return !s||p<=0?null:jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:c,y:l,width:p,height:m,fill:"none"}),i.map((S,d)=>{let[x,h]=S.segment,f=Math.max(0,Math.min(x,t)),y=Math.max(0,Math.min(h,t)),R=Math.min(f,y),k=Math.max(f,y);if(k<=R)return null;let L=s(R),O=s(k),A=Math.min(L,O),Y=Math.max(0,Math.abs(O-L));return Y<=0?null:jsxRuntime.jsxs("g",{children:[jsxRuntime.jsx("rect",{x:A,y:l,width:Y,height:m,fill:S.color}),jsxRuntime.jsx("text",{x:A+Y/2,y:l+m/2,fill:"#000000",fontSize:10,fontWeight:600,textAnchor:"middle",dominantBaseline:"middle",children:S.id})]},`${S.id}-${d}`)})]})};function Ke(e){let[t,n]=M.useState(null),r=M.useMemo(()=>t!=null?e[t]:null,[t,e]),o=M.useCallback(()=>{n(null);},[]),i=M.useCallback(a=>{if(!e.length)return;let s=0,c=e.length-1;for(;s<c;){let u=Math.floor((s+c)/2);e[u].distance<a?s=u+1:c=u;}let p=s;if(s>0){let u=e[s-1],m=e[s];Math.abs(u.distance-a)<Math.abs(m.distance-a)&&(p=s-1);}n(p);},[e]);return {activeIndex:t,activePoint:r,triggerByXValue:i,clearActiveIndex:o}}var Q=({route:e})=>{let{hover:t,setHover:n}=W(),r=g(),o=M.useMemo(()=>U(e),[e]),i=M.useMemo(()=>de(o,e.geoJson),[o,e.geoJson]),a=H(o),s=ue(a),[c,p]=me(o),[u,m,l]=M.useMemo(()=>pe([c,p],!!e.surface?.length),[c,p,e.surface?.length]),{activeIndex:S,activePoint:d,triggerByXValue:x,clearActiveIndex:h}=Ke(o);return M.useEffect(()=>{if(t.source==="chart"||!t.lat||!t.lng)return;let f=he(o,[t.lat,t.lng]);f&&x(f.distance);},[t,o,x]),o.length?jsxRuntime.jsx(recharts.ResponsiveContainer,{width:"100%",height:"100%",style:{userSelect:"none"},children:jsxRuntime.jsxs(recharts.ComposedChart,{data:o,margin:r.chart.margin,onMouseMove:({activePayload:f})=>{S&&h();let y=f?.[0];if(!y)return;let{lat:R,lng:k}=y.payload;n({lat:R,lng:k,source:"chart"});},onMouseEnter:()=>h(),children:[jsxRuntime.jsx("defs",{children:jsxRuntime.jsxs("linearGradient",{id:"elevationGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsxRuntime.jsx("stop",{offset:"0%",stopColor:r.colors.primary,stopOpacity:r.chart.gradientStartOpacity}),jsxRuntime.jsx("stop",{offset:"100%",stopColor:r.colors.primaryMuted,stopOpacity:r.chart.gradientEndOpacity})]})}),jsxRuntime.jsx(recharts.CartesianGrid,{stroke:r.chart.gridStroke,strokeDasharray:r.chart.gridDasharray}),jsxRuntime.jsx(recharts.Customized,{component:jsxRuntime.jsx(Ze,{route:e,maxDistance:a,belowHeight:X})}),jsxRuntime.jsx(recharts.Customized,{component:jsxRuntime.jsx(_e,{route:e,maxDistance:a})}),jsxRuntime.jsx(recharts.XAxis,{dataKey:"distance",type:"number",domain:[0,a],ticks:s,tick:jsxRuntime.jsx(Ie,{}),stroke:r.chart.axisStroke}),jsxRuntime.jsx(recharts.YAxis,{dataKey:"elevation",tick:jsxRuntime.jsx(Fe,{}),domain:[u,m],ticks:l,padding:{top:20,bottom:20},stroke:r.chart.axisStroke,width:r.chart.yAxisWidth}),jsxRuntime.jsx(recharts.Tooltip,{cursor:{stroke:r.chart.cursorStroke,strokeWidth:r.chart.cursorStrokeWidth},content:jsxRuntime.jsx(Ge,{accent:r.colors.accent,primary:r.colors.primary,markers:i,surfaces:e.surface,routes:e.routes})}),jsxRuntime.jsx(recharts.Line,{type:"monotone",dataKey:"elevation",stroke:r.colors.primary,strokeWidth:r.chart.lineStrokeWidth,dot:f=>{let{cx:y,cy:R,index:k}=f;if(k===S&&d)return jsxRuntime.jsx(Ae,{cx:y,cy:R},`dot-${y}-${R}`)},activeDot:{r:r.chart.activeDotRadius,fill:r.dots.chartActive,strokeWidth:0},fill:"url(#elevationGradient)",isAnimationActive:false}),i.length>0&&i.map((f,y)=>{let R=ge(i[y],i[y+1]);return jsxRuntime.jsx(recharts.ReferenceDot,{x:f.distance,y:f.elevation,r:r.chart.referenceDotRadius,shape:k=>jsxRuntime.jsx(Je,{...k,name:R?void 0:f.name,fill:r.colors.accent})},`${f.distance}-${y}`)}),d&&jsxRuntime.jsx(recharts.ReferenceLine,{x:d.distance,opacity:r.chart.referenceLineOpacity})]})}):null};var et=({route:e,isChartExpanded:t,isScrollableChartExpanded:n,onToggleChartExpanded:r})=>{let{routeMap:o}=P();return jsxRuntime.jsxs("div",{className:[b__default.default.rrpChartLayer,t?b__default.default.rrpChartLayerExpanded:""].filter(Boolean).join(" "),children:[jsxRuntime.jsxs("div",{className:b__default.default.rrpToolbar,children:[jsxRuntime.jsx("div",{className:b__default.default.rrpToolbarSide}),n?jsxRuntime.jsxs("div",{className:b__default.default.rrpScrollHint,"aria-hidden":"true",children:[jsxRuntime.jsx(md.MdKeyboardDoubleArrowLeft,{className:b__default.default.rrpScrollHintIcon}),jsxRuntime.jsx(md.MdPanToolAlt,{className:b__default.default.rrpScrollHintHand}),jsxRuntime.jsx("span",{className:b__default.default.rrpScrollHintText,children:o.scrollToExplore}),jsxRuntime.jsx(md.MdKeyboardDoubleArrowRight,{className:b__default.default.rrpScrollHintIcon})]}):jsxRuntime.jsx("div",{className:b__default.default.rrpToolbarCenter}),jsxRuntime.jsx("button",{type:"button",className:b__default.default.rrpIconButton,onClick:r,title:t?o.minimizeRouteProfile:o.expandRouteProfile,children:t?jsxRuntime.jsx(md.MdFullscreenExit,{className:b__default.default.rrpIcon}):jsxRuntime.jsx(md.MdFullscreen,{className:b__default.default.rrpIcon})})]}),jsxRuntime.jsx("div",{className:[b__default.default.rrpChartBody,n?b__default.default.rrpChartBodyScrollable:""].filter(Boolean).join(" "),children:n?jsxRuntime.jsx("div",{className:b__default.default.rrpChartScrollViewport,children:jsxRuntime.jsx("div",{className:b__default.default.rrpChartScrollContent,children:jsxRuntime.jsx("div",{className:b__default.default.rrpChartCanvas,children:jsxRuntime.jsx(Q,{route:e})})})}):jsxRuntime.jsx(Q,{route:e})})]})};var tt=({message:e,height:t})=>jsxRuntime.jsx("div",{style:{height:t},children:jsxRuntime.jsx(ce,{message:e,height:t})}),rt=({apiKey:e,route:t,height:n="100dvh",className:r,style:o,theme:i=w,lang:a="en"})=>jsxRuntime.jsx(ae,{lang:a,children:jsxRuntime.jsx(gr,{apiKey:e,route:t,height:n,className:r,style:o,theme:i})}),gr=({apiKey:e,route:t,height:n="100dvh",className:r,style:o,theme:i=w})=>{let{isHorizontal:a}=j(),{routeMap:s}=P(),{isChartExpanded:c,toggleChartExpanded:p}=Me(),u=Le(),m=Ce({isHorizontal:a,theme:i,width:u.width,height:u.height}),l=M.useMemo(()=>U(t),[t]),S=M.useMemo(()=>H(l),[l]),d=M.useMemo(()=>t.geoJson.features?.filter(R=>R.geometry?.type==="Point").length??0,[t.geoJson]),x=!a&&u.width<=767,h=c&&x&&S>=3e4&&d>10;if(!e)return jsxRuntime.jsx(F,{theme:m,children:jsxRuntime.jsx(tt,{message:s.apiKeyMissing,height:n})});let f={height:n,width:"100%",...o};return jsxRuntime.jsx(F,{theme:m,children:jsxRuntime.jsx(Re,{children:jsxRuntime.jsxs("div",{className:`${b__default.default.rrpRoot} ${r??""}`.trim(),style:f,children:[jsxRuntime.jsx(reactWrapper.Wrapper,{apiKey:e,render:y=>jsxRuntime.jsx(tt,{message:y===reactWrapper.Status.FAILURE?s.googleMapsFailure:void 0,height:n}),children:jsxRuntime.jsx(ke,{route:t,height:n,isHorizontal:a})}),jsxRuntime.jsx(et,{route:t,isChartExpanded:c,isScrollableChartExpanded:h,onToggleChartExpanded:p})]})})})};function nt(){let[e,t]=M__namespace.useState({width:null,height:null}),n=M__namespace.useRef(null);return [M__namespace.useCallback(o=>{if(n.current&&(n.current.disconnect(),n.current=null),o?.nodeType===Node.ELEMENT_NODE){let i=new ResizeObserver(([a])=>{if(a&&a.borderBoxSize){let{inlineSize:s,blockSize:c}=a.borderBoxSize[0];t({width:s,height:c});}});i.observe(o),n.current=i;}},[]),e]}var yr=()=>{let[e,{height:t}]=nt(),n=!!t,r=n?`calc(100dvh - ${t}px)`:"0px";return {refHeader:e,isHeaderReady:n,headerHeight:t,mapHeight:r}};
|
|
6
|
+
exports.RouteMap=rt;exports.SurfaceType=ee;exports.ThemeProvider=F;exports.theme=w;exports.useMapHeader=yr;exports.useTheme=g;//# sourceMappingURL=index.cjs.map
|
|
6
7
|
//# sourceMappingURL=index.cjs.map
|