react-route-profile 0.1.29 → 0.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -4
- package/dist/assets/surface/surface_asphalt.png +0 -0
- package/dist/assets/surface/surface_compacted.png +0 -0
- package/dist/assets/surface/surface_concrete.png +0 -0
- package/dist/assets/surface/surface_natural.png +0 -0
- package/dist/assets/surface/surface_penetrated.png +0 -0
- package/dist/surface_asphalt-ZUAYWE5E.png +0 -0
- package/dist/surface_compacted-JVQXEHW6.png +0 -0
- package/dist/surface_concrete-TRX2AGHQ.png +0 -0
- package/dist/surface_natural-AFI6LXRM.png +0 -0
- package/dist/surface_penetrated-4K24DL3E.png +0 -0
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {Status,Wrapper}from'@googlemaps/react-wrapper';import*as k from'react';import {createContext,useContext,useMemo,useState,useEffect,useCallback,useRef,useId}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import Ge from'./Loader.module-M6WPG37K.module.css';import {ResponsiveContainer,ComposedChart,CartesianGrid,Customized,XAxis,YAxis,Tooltip,Line,ReferenceDot,ReferenceLine}from'recharts';import rt from'./surface_asphalt-ZUAYWE5E.png';import nt from'./surface_compacted-JVQXEHW6.png';import ot from'./surface_concrete-TRX2AGHQ.png';import st from'./surface_natural-AFI6LXRM.png';import it from'./surface_penetrated-4K24DL3E.png';import Dt from'./GoogleMapCanvas.module-GCGVA6T4.module.css';import Ne from'./RouteMap.module-4GSEMCKC.module.css';import'./index-DIK6ZNA4.css';var X=()=>typeof window>"u"?true:window.innerWidth>=window.innerHeight,G=()=>{let[e,r]=useState(X);return useEffect(()=>{let n=()=>r(X());return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[]),{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 V=createContext(w),$e=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??{}}}}),N=({theme:e,children:r})=>{let n=useMemo(()=>$e(e),[e]);return jsx(V.Provider,{value:n,children:r})},h=()=>useContext(V);var Ve=({message:e="Loading map...",height:r="100dvh"})=>{let n=h(),t={height:r,background:n.colors.surface,color:n.colors.primary};return jsx("div",{className:Ge.rrpLoader,style:t,children:e})},J=Ve;var Z=e=>{let{x:r,y:n,payload:t}=e,o=h(),s=Math.round((t?.value??0)/1e3);return jsxs("text",{x:r,y:n,fill:o.chart.axisStroke,fontSize:o.chart.xTickFontSize,textAnchor:"middle",dy:o.chart.xTickDy,children:[jsx("tspan",{children:s}),jsx("tspan",{fontSize:o.chart.xTickUnitFontSize,dx:o.chart.xTickUnitDx,children:"km"})]})};var q=createContext(void 0),j=({children:e})=>{let[r,n]=useState({}),t=useCallback(i=>n(i),[]),o=useCallback(()=>n({}),[]),s=useMemo(()=>({hover:r,setHover:t,clearHover:o}),[r,t,o]);return jsx(q.Provider,{value:s,children:e})},H=()=>{let e=useContext(q);if(!e)throw new Error("useHover must be used within HoverProvider");return e};var ee=e=>{let{cx:r,cy:n,fill:t}=e,o=h();return r===void 0||n===void 0?null:jsx("circle",{cx:r,cy:n,r:o.chart.dotRadius,fill:t,opacity:o.chart.dotOpacity})},te=e=>{let r=h();return jsx(ee,{...e,fill:r.dots.chart})},re=e=>{let r=h();return jsx(ee,{...e,fill:r.dots.mapActive})};var oe=e=>{let{x:r,y:n,payload:t}=e,o=h(),s=Math.round(t?.value??0);return jsxs("text",{x:r,y:n,fill:o.chart.axisStroke,fontSize:o.chart.yTickFontSize,textAnchor:"end",dy:o.chart.yTickDy,children:[jsx("tspan",{children:s}),jsx("tspan",{fontSize:o.chart.yTickUnitFontSize,dx:o.chart.yTickUnitDx,children:"m"})]})};var se=(s=>(s.Asphalt="asphalt",s.Compacted="compacted",s.Concrete="concrete",s.Natural="natural",s.Penetrated="penetrated",s))(se||{});var ie=30,A=16,U={asphalt:{file:rt,width:30,height:22},compacted:{file:nt,width:200,height:16},concrete:{file:ot},natural:{file:st,width:30,height:22},penetrated:{file:it,width:30,height:22}},ce=({route:e,maxDistance:r,xAxisMap:n,offset:t})=>{let o=e.surface??[];if(!o.length)return null;let s=n?Object.values(n)[0]:void 0,i=s?.scale,a=s?.x??t?.left??0,c=s?.width??t?.width??0,m=s?.y??(t?.top??0)+(t?.height??0),l=A,d=m-l;return !i||c<=0?null:jsxs(Fragment,{children:[jsx("defs",{children:Object.entries(U).map(([u,{file:y,width:p,height:v}])=>jsx("pattern",{id:`surface-${u}`,patternUnits:u==="compacted"?void 0:"userSpaceOnUse",width:p??ie,height:v??A,children:jsx("image",{href:y,x:"0",y:"0",width:p??ie,height:v??A})},u))}),jsxs("g",{children:[jsx("rect",{x:a,y:d,width:c,height:l,fill:"none"}),o.map((u,y)=>{let[p,v]=u.segment,S=Math.max(0,Math.min(p,r)),f=Math.max(0,Math.min(v,r)),x=Math.min(S,f),b=Math.max(S,f);if(b<=x)return null;let R=i(x),C=i(b),O=Math.min(R,C),I=Math.max(0,Math.abs(C-R));return I<=0?null:jsx("rect",{x:O,y:d,width:I,height:l,fill:`url(#surface-${u.type})`},`${u.type}-${y}`)})]})]})};var ct=300,ut=(e,r)=>e?.length?e.find(n=>{let[t,o]=n.segment,s=Math.min(t,o),i=Math.max(t,o);return r>=s&&r<=i})??null:null,lt=(e,r)=>e?.length?e.find(n=>{let[t,o]=n.segment,s=Math.min(t,o),i=Math.max(t,o);return r>=s&&r<=i})??null:null,mt=e=>e.charAt(0).toUpperCase()+e.slice(1),ue=e=>{let[r,n]=e,t=Math.min(r,n),o=Math.max(r,n),s=i=>{let c=(i/1e3).toFixed(1);return c.endsWith(".0")?c.slice(0,-2):c};return `(${s(t)} km - ${s(o)} km)`},le=({active:e,payload:r,label:n,accent:t,primary:o,markers:s,surfaces:i,routes:a})=>{let{tooltip:c}=h();if(!e||!r?.length)return null;let m=r[0]?.payload,l=m?.distance??n,d=s.find(f=>Math.abs((f?.distance??-1)-(m?.distance??0))<=ct),u=ut(i,l),y=u?.type?U[u.type]:null,p=lt(a,l),v=Math.trunc(n/1e3),S=Math.round(n%1e3);return jsxs("div",{style:{background:c.background,border:"none",color:c.textColor,padding:"4px 6px",borderRadius:c.borderRadius,fontSize:13,lineHeight:1.2},children:[jsxs("div",{style:{fontWeight:600,color:o},children:[v," km ",S," m"]}),jsxs("div",{children:["Elevation: ",jsxs("strong",{children:[Math.round(m?.elevation??0)," m"]})]}),u?.type?jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:y?jsx("image",{href:y.file,x:"0",y:"0",width:"20",height:"14",preserveAspectRatio:"xMidYMid slice"}):jsx("rect",{width:"20",height:"14",fill:c.textColor})}),jsx("span",{children:mt(u.type)}),jsx("span",{children:ue(u.segment)})]}):null,p?jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:jsx("rect",{width:"20",height:"14",fill:p.color})}),jsx("span",{children:p.id}),jsx("span",{children:ue(p.segment)})]}):null,d?.name?jsx("div",{style:{color:t,fontWeight:600},children:d.name}):null]})};var me=`<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
|
+
import {Status,Wrapper}from'@googlemaps/react-wrapper';import*as T from'react';import {createContext,useContext,useMemo,useState,useEffect,useCallback,useRef,useId}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import je from'./Loader.module-M6WPG37K.module.css';import {ResponsiveContainer,ComposedChart,CartesianGrid,Customized,XAxis,YAxis,Tooltip,Line,ReferenceDot,ReferenceLine}from'recharts';import Nt from'./GoogleMapCanvas.module-GCGVA6T4.module.css';import Xe from'./RouteMap.module-4GSEMCKC.module.css';import'./index-DIK6ZNA4.css';var Y=()=>typeof window>"u"?true:window.innerWidth>=window.innerHeight,Z=()=>{let[e,n]=useState(Y);return useEffect(()=>{let r=()=>n(Y());return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{isHorizontal:e,isVertical:!e}};var S={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 $=createContext(S),Je=e=>({colors:{...S.colors,...e?.colors??{}},marker:{...S.marker,...e?.marker??{}},dots:{...S.dots,...e?.dots??{}},map:{...S.map,...e?.map??{}},chart:{...S.chart,...e?.chart??{}},tooltip:{...S.tooltip,...e?.tooltip??{}},markerShape:{...S.markerShape,...e?.markerShape??{},text:{...S.markerShape.text,...e?.markerShape?.text??{}}}}),O=({theme:e,children:n})=>{let r=useMemo(()=>Je(e),[e]);return jsx($.Provider,{value:r,children:n})},h=()=>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 jsx("div",{className:je.rrpLoader,style:t,children:e})},B=qe;var V=e=>{let{x:n,y:r,payload:t}=e,o=h(),i=Math.round((t?.value??0)/1e3);return jsxs("text",{x:n,y:r,fill:o.chart.axisStroke,fontSize:o.chart.xTickFontSize,textAnchor:"middle",dy:o.chart.xTickDy,children:[jsx("tspan",{children:i}),jsx("tspan",{fontSize:o.chart.xTickUnitFontSize,dx:o.chart.xTickUnitDx,children:"km"})]})};var q=createContext(void 0),K=({children:e})=>{let[n,r]=useState({}),t=useCallback(s=>r(s),[]),o=useCallback(()=>r({}),[]),i=useMemo(()=>({hover:n,setHover:t,clearHover:o}),[n,t,o]);return jsx(q.Provider,{value:i,children:e})},H=()=>{let e=useContext(q);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:jsx("circle",{cx:n,cy:r,r:o.chart.dotRadius,fill:t,opacity:o.chart.dotOpacity})},te=e=>{let n=h();return jsx(ee,{...e,fill:n.dots.chart})},ne=e=>{let n=h();return 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 jsxs("text",{x:n,y:r,fill:o.chart.axisStroke,fontSize:o.chart.yTickFontSize,textAnchor:"end",dy:o.chart.yTickDy,children:[jsx("tspan",{children:i}),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,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAWCAIAAABYAbuYAAAJ92lDQ1BJQ0MgUHJvZmlsZQAAWIXtmWlQU8kahvucrISwJYR9CQQIIPsmsoVN9n2TRUEIIewECCAiRERFVMQFAVGBUVRUEBCHEQaHUVGWQXFQcRBlEbxBQRlRUUfHcwNz53qnbpV3/t98VV39nPd8p/vrPv3jrWoAFO2jOZxkWBKAlFRuRoCrIzU0LJyKmwVEIAukAA5Qo5mZHAc/Py8giD/7v8bSCICW+7v6y2P99/uvhngsK5MJAKQnYDaTk8EVcLmAaTlczjJfFrB0TNIKDy5zhqBAAU8uM/sPfrOSs8IwfiUnKMBJwEoA4IkxK0zQXmb2CpPMljk2JTYWAAV7QX5abErqMrcsc3JWSgIAitTlcbgsZryABfmAuFzn5L9qdmSl+lP9nE1NjIyC/7Kaey6ewDDQG9yJh6E/P9j4kQR+ETzbZGOgUEETE2iXxlEQV6AXo2zBfkVbMPOBBKQFuuVNwGVt4i4P5ZTGyc1IYMdzqQ6CXWVR3VOZBnpUEyMTQTXL/+iPWl4/WNl7SAb9RfsSX7R8wboZ5oLEp1+0kGcAtFUAQPH+oqkL9kDMAoAuPDMrI/sPDf31PwgLErAADwiCMyMhODPSQA3QAB3oAH1gDEzBamANGMAJuAJP4AsCQTiIAkzABqkgE+SAArAdFIMyUAGOgVpwBjSDdnAF9IBeMAQegAnABwvgHUAgPCQByUOqkC5kCFlDDMgb8oWioAQoDdoC8aAyqBqqhZqhDqgbGoJGoQloAfoIITAJVoZVYXOYATvBYXAUnAEXwIVwFVwLX4S74WvwQ3gCfgsjKCmUKoqGskHZo8JQUahsFA9VjqpFtaG6UcOoCdQiCkHj0epoEzQD7Y6ORWeheehSdAO6A30VPYx+iUYweIwGxgLDwPhjUjE8TAnmNKYDcx0ziXmNQbBSWEMsA+uNTcLysLuxDdgr2D4sH/sJh8PRcTY4Nxwbl48rwZ3FdeMGcfM4BC+Jp+Pd8FH4bHwR/ij+Iv4efh6PiJBEdEW8RVgiBSKlIqdE+kSmRD4SCAQNgishmpBH2EM4RegnTBM+i0qI6oj6iCaI8kQrRFtFR0QXiWgilehCjCEWEPcTm4h3ib+KocSoYq5isWI8scNibWJjYu/FieKrxAPF08V3iteL3xKfl4AkqBLuEgkSPIkaiT4JvgQiqSJpJxkpWSJ5VnJAck4KlqJJOUvFSR2QapO6L7VEEicZkwJJWaQTpB4SnwzINLILOYFcSe4kj5MRaSVpe+lY6YPS7dJj0ghFgcKgxFIOUToo4xRERlVmrUySzFGZqzJ8WZSsrqy/bKFsg+yQ7JKctJy1HFOuXK5LbkYelteVD5DfId8kPyKPKKgouCpwFE4qDCosKcooMhQTFI8r9iouKpGUbJXYSseUepUWlcnKdsqJyrXKPym/U5FXWauSrnJG5a4KokpT9VXdqdqmOklFU42pUdS91E7qrBpVzUdti9p5tVE1RF1ffb36HvVO9Wc0dVoAbRutlTalgdOw1IjXqNLo10RpmmmyNCs0ezU/aFG1ArSKtL7V4tNp9GB6Mb2TPq9N0XbTztO+oD2lo6IToLNDp0Pnha6MrocuT7dNl79Ka1XEqrJVPas+6GnoheuV6d3QR+tb6XP0T+s/MhAxYBhkGzQaTBtqGEYYHjTsN0SMDIzijGqMRozljP2MdxlfNf5gom0SbVJtctdUxtTXtMT0muknMz2zOLM6s4fmKuZh5ofMb5sjFmsssixaLOZWG61OXt2wetqSYulvuc9yYI3kGu81u9fcXINYWVhxrVqtXlpbWHOtW60XbGg2MTZ1NuO2dNs423rbaTs5u3V2lXYjDCojilHLmLCn2AfbV9iPOMg6rHOochh11HBkOZ5xnHXSdUpyanJacKY7Jzo3Or9ca7yWu7bdBeXi4rLb5ZarpGuQa5XrmBvFLcytxu2Ju5Z7knuL+xsPJ49dHrc9yZ6hnjWeM15UL5ZXo9eit6U3z/uGj4zPBp96nzlfE99c36u+iJ+L3z6/EX8V/zj/CwFQgHvAwYCxQI3AlMD2QCSIEbQraDhYKTguuCUEHeIbciRkZp3Butx1PaGYUL/QY6H8MNOwgrCBcGp4cnhHBCbCP6ImYm69/vrN6/s2UDbEbGiJxEUGR56MfBXFiCqNGttI3Zi68Uo0MToi+lwMKiYw5kTMItOBeYA5FUuPzYntY8mxElidcdJxrLh2Np4dxj7H/hTvHF8RP5tglbA3YTzROrE0cTLJNGln0miyenJ2cn+KcgonpSdVPTU7dSBNNS0zrY9D5sRzutJJ6ez0rgyljPSM3kzlzMzMfi6Fm8S9liWflZZ1M5ueXZB9P0c/Z3vOo026m7Ztephrkrs798nmtZuPb17K881ryEO2+G05l4/K35DfXqBQwC24zdPhFfEebzXYWrJ1ppBRWF34dpvftsYiXBGzqHu75vbC7Y93WO2o2PF6p9/OpmJCMbu4Z5fsrqxdwyVGJftK5nd77G7Yg9vD2tOzV3/vnr3PSz1Kz+7D74vf11tGLysu4++33X98/+cDkQe6D1IPbj04dcjpUH25RHl6+fBhs8MVh99XhFd0VapWFlbOVNlW1R6Bj8Qd6a/Wq95f/frouqPfH9M5Vnrs1fGQ4501qjXba57V+tS21YnXZdaNfmP3Tf0JwgnOiZGTtidP1pPrN9dPnXI71Xxa5nT+6adnvM5capBqyG2YOut+9uI5hXNF5+bOB52/0mjUeKQJbkpuun+BceFsM7k5v5nf4trS2qrUWtz66uL6i71tJm01l8iXeJeefxvy7bV2g/bq77DfZX43cdnxcnOHUkdJx1Ins/PO93bfN3bRug50IVdSrjz6weOHjm56d0U38mPij6NX3a5evka/Vnkddz3nOr8nuufnG443Lt6k3SzvRfdm9fL7fPq6+437Tw5ID+wceP9T4k+PB8MGB2/Z3Wq9rXG7cogwlD/06k74nds/O/7cPqw7XHOXdLf4Hube5nsL92Pvj474jFx/YPngwi8Kv5SNYkbzRhcfxj8cHwseG3zk9ej6Y6vHreM643UTchNlE8hk1uSLKdbU+JOQJ0PTrtM/zjjNdD01f3rhH9r/+IavyD88i5nlzX54lvns5fP459NzkXOj85Hzoy+CXtx56fmyd8FpoftX41+bXum8Or2ovlj7Wun1kTfUN8ffKrytWqIsHXon9a7sPep94XvkQ/6HT7/l/fbbx02f4E+Fv4Pfeb8jn3mfEaQAQYReQOgFhF5A6AWEXkDoBYReQOgFhF5A6AWEXkDoBYReQOgFhF7g/9cL/K07kT/ja3cjxBwMZCRoFPDVu5H/mI+yMl88l8uxMjSMYaWmGzDTUv72fHXZGKgn+3/O9+97kfOyBHBJ0PdgVDIT2Cuag7cz9Z8JvoGfi8hfZgAAAERlWElmTU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAAqACAAQAAAABAAAAHqADAAQAAAABAAAAFgAAAAAwQelqAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoZXuEHAAAAb0lEQVQ4Ee2SwQ2AMAzEmjRFMCFzsQvT0TSBvnn7gUQGsCxf5Dx2KchZT1m0EmwrNTwCQTdby9URdL9GK0ht26y6I9bq7kSNh6mZSaFVlUKLIBvCQaAa0xps7Tkgceo9ZhBI+Ue/w36ztUmMEMT9Bsa5HsejKZxwAAAAAElFTkSuQmCC";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 me=30,A=16,U={asphalt:{file:ie,width:30,height:22},compacted:{file:se,width:200,height:16},concrete:{file:ae},natural:{file:ce,width:30,height:22},penetrated:{file:ue,width:30,height:22}},pe=({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=A,d=m-l;return !s||c<=0?null:jsxs(Fragment,{children:[jsx("defs",{children:Object.entries(U).map(([u,{file:v,width:p,height:x}])=>jsx("pattern",{id:`surface-${u}`,patternUnits:u==="compacted"?void 0:"userSpaceOnUse",width:p??me,height:x??A,children:jsx("image",{href:v,x:"0",y:"0",width:p??me,height:x??A})},u))}),jsxs("g",{children:[jsx("rect",{x:a,y:d,width:c,height:l,fill:"none"}),o.map((u,v)=>{let[p,x]=u.segment,y=Math.max(0,Math.min(p,n)),f=Math.max(0,Math.min(x,n)),w=Math.min(y,f),b=Math.max(y,f);if(b<=w)return null;let R=s(w),C=s(b),z=Math.min(R,C),D=Math.max(0,Math.abs(C-R));return D<=0?null:jsx("rect",{x:z,y:d,width:D,height:l,fill:`url(#surface-${u.type})`},`${u.type}-${v}`)})]})]})};var pt=300,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,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,gt=e=>e.charAt(0).toUpperCase()+e.slice(1),fe=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)`},he=({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))<=pt),u=ft(s,l),v=u?.type?U[u.type]:null,p=ht(a,l),x=Math.trunc(r/1e3),y=Math.round(r%1e3);return jsxs("div",{style:{background:c.background,border:"none",color:c.textColor,padding:"4px 6px",borderRadius:c.borderRadius,fontSize:13,lineHeight:1.2},children:[jsxs("div",{style:{fontWeight:600,color:o},children:[x," km ",y," m"]}),jsxs("div",{children:["Elevation: ",jsxs("strong",{children:[Math.round(m?.elevation??0)," m"]})]}),u?.type?jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:v?jsx("image",{href:v.file,x:"0",y:"0",width:"20",height:"14",preserveAspectRatio:"xMidYMid slice"}):jsx("rect",{width:"20",height:"14",fill:c.textColor})}),jsx("span",{children:gt(u.type)}),jsx("span",{children:fe(u.segment)})]}):null,p?jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[jsx("svg",{width:"20",height:"14","aria-hidden":"true",style:{display:"block"},children:jsx("rect",{width:"20",height:"14",fill:p.color})}),jsx("span",{children:p.id}),jsx("span",{children:fe(p.segment)})]}):null,d?.name?jsx("div",{style:{color:t,fontWeight:600},children:d.name}):null]})};var ge=`<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
|
|
5
|
+
`;var vt=(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=vt(ge,e,n).trim();return `data:image/svg+xml,${encodeURIComponent(r).replace(/'/g,"%27").replace(/"/g,"%22")}`};var xe=e=>{let{cx:n,cy:r,fill:t,name:o}=e,i=h(),s=i.markerShape,a=s.size,c=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 jsxs("g",{children:[jsx(ne,{cx:n,cy:r}),jsx("image",{x:n-a/2,y:r-a/2-s.lift,width:a,height:a,href:c}),o?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 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)=>jsx(bt,{word:s,index:a,cx:n},s))})},bt=({word:e,index:n,cx:r})=>{let o=h().markerShape.text,i=useId();return 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:jsxs("g",{children:[jsx("rect",{x:c,y:u,width:m,height:d,fill:"none"}),i.map((v,p)=>{let[x,y]=v.segment,f=Math.max(0,Math.min(x,n)),w=Math.max(0,Math.min(y,n)),b=Math.min(f,w),R=Math.max(f,w);if(R<=b)return null;let C=a(b),z=a(R),D=Math.min(C,z),N=Math.max(0,Math.abs(z-C));return N<=0?null:jsxs("g",{children:[jsx("rect",{x:D,y:u,width:N,height:d,fill:v.color}),jsx("text",{x:D+N/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]=useState(null),t=useMemo(()=>n!=null?e[n]:null,[n,e]),o=useCallback(()=>{r(null);},[]),i=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 be=e=>e.length?e[e.length-1].distance:0,Ee=(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},Re=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)),Te=e=>(e.geoJson?.features?.find(t=>t?.geometry?.type==="LineString"&&t?.geometry?.coordinates)).geometry.coordinates,ke=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)]},Ce=(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]},Me=(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))},Pe=(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},Le=(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 _=({route:e})=>{let{hover:n,setHover:r}=H(),t=h(),o=useMemo(()=>Re(e),[e]),i=useMemo(()=>Me(o,e.geoJson),[o,e.geoJson]),s=be(o),a=Ee(s),[c,m]=ke(o),[l,d,u]=useMemo(()=>Ce([c,m],!!e.surface?.length),[c,m,e.surface?.length]),{activeIndex:v,activePoint:p,triggerByXValue:x,clearActiveIndex:y}=Se(o);return useEffect(()=>{if(n.source==="chart"||!n.lat||!n.lng)return;let f=Le(o,[n.lat,n.lng]);f&&x(f.distance);},[n,o,x]),o.length?jsx(ResponsiveContainer,{width:"100%",height:"100%",style:{userSelect:"none"},children:jsxs(ComposedChart,{data:o,margin:t.chart.margin,onMouseMove:({activePayload:f})=>{v&&y();let w=f?.[0];if(!w)return;let{lat:b,lng:R}=w.payload;r({lat:b,lng:R,source:"chart"});},onMouseEnter:()=>y(),children:[jsx("defs",{children:jsxs("linearGradient",{id:"elevationGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[jsx("stop",{offset:"0%",stopColor:t.colors.primary,stopOpacity:t.chart.gradientStartOpacity}),jsx("stop",{offset:"100%",stopColor:t.colors.primaryMuted,stopOpacity:t.chart.gradientEndOpacity})]})}),jsx(CartesianGrid,{stroke:t.chart.gridStroke,strokeDasharray:t.chart.gridDasharray}),jsx(Customized,{component:jsx(ye,{route:e,maxDistance:s,belowHeight:A})}),jsx(Customized,{component:jsx(pe,{route:e,maxDistance:s})}),jsx(XAxis,{dataKey:"distance",type:"number",domain:[0,s],ticks:a,tick:jsx(V,{}),stroke:t.chart.axisStroke}),jsx(YAxis,{dataKey:"elevation",tick:jsx(oe,{}),domain:[l,d],ticks:u,stroke:t.chart.axisStroke,width:t.chart.yAxisWidth}),jsx(Tooltip,{cursor:{stroke:t.chart.cursorStroke,strokeWidth:t.chart.cursorStrokeWidth},content:jsx(he,{accent:t.colors.accent,primary:t.colors.primary,markers:i,surfaces:e.surface,routes:e.routes})}),jsx(Line,{type:"monotone",dataKey:"elevation",stroke:t.colors.primary,strokeWidth:t.chart.lineStrokeWidth,dot:f=>{let{cx:w,cy:b,index:R}=f;if(R===v&&p)return jsx(te,{cx:w,cy:b},`dot-${w}-${b}`)},activeDot:{r:t.chart.activeDotRadius,fill:t.dots.chartActive,strokeWidth:0},fill:"url(#elevationGradient)",isAnimationActive:false}),i.length>0&&i.map((f,w)=>{let b=De(i[w],i[w+1]);return jsx(ReferenceDot,{x:f.distance,y:f.elevation,r:t.chart.referenceDotRadius,shape:R=>jsx(xe,{...R,name:b?void 0:f.name,fill:t.colors.accent})},`${f.distance}-${w}`)}),p&&jsx(ReferenceLine,{x:p.distance,opacity:t.chart.referenceLineOpacity})]})}):null};var ze={lat:48.9325937,lng:20.3452306},Oe=13,He=12;var Ue=({route:e,height:n,isHorizontal:r})=>{let t=h(),{hover:o,setHover:i}=H(),s=useRef(null),a=useRef(null),c=useRef(null),m=useMemo(()=>Te(e),[e]),l=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 useEffect(()=>{if(!s.current||!window.google?.maps)return;let d=r&&(e.zoomHorizontal||Oe)||e.zoomVertical||He,u=new window.google.maps.Map(s.current,{center:e.center||ze,zoom:d,mapTypeId:window.google.maps.MapTypeId.SATELLITE,streetViewControl:false});c.current=u,u.data.setStyle(p=>{let x=p.getProperty("name"),y=p.getProperty("first"),f=p.getProperty("last");return {strokeColor:t.colors.primaryMuted,strokeWeight:t.map.strokeWeight,icon:{url:y?l.start:f?l.finish:l.default,scaledSize:new window.google.maps.Size(t.map.markerSize,t.map.markerSize),optimized:false,zIndex:y||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:x}}}),u.data.addGeoJson(e.geoJson);let v=u.addListener("mousemove",p=>{let x=p.latLng;if(!x)return;let y=Pe(m,{lat:x.lat(),lng:x.lng()});y&&i({lat:y.lat,lng:y.lng,source:"map"});});return ()=>{v.remove(),u.data.forEach(p=>{u.data.remove(p);}),c.current=null;}},[e,r,t,m,i,l]),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]),jsx("div",{ref:s,className:Nt.rrpMapCanvas,style:{height:n}})};var Xt={apiKey:"Oops! Cannot display the map: Google Maps API key missing",[Status.FAILURE]:"Unable to load Google Maps API. Check your API key or network.",[Status.LOADING]:void 0,[Status.SUCCESS]:void 0},We=({type:e,height:n})=>jsx("div",{style:{height:n},children:jsx(B,{message:Xt[e],height:n})}),Wt=(e,n)=>jsx(We,{type:e,height:n}),_e=({apiKey:e,route:n,height:r="100dvh",className:t,style:o,theme:i=S})=>{let{isHorizontal:s}=Z();if(!e)return jsx(O,{theme:i,children:jsx(We,{type:"apiKey",height:r})});let a={height:r,width:"100%",...o};return jsx(O,{theme:i,children:jsx(K,{children:jsxs("div",{className:t,style:a,children:[jsx(Wrapper,{apiKey:e,render:c=>Wt(c,r),children:jsx(Ue,{route:n,height:r,isHorizontal:s})}),jsx("div",{className:Xe.rrpChartLayer,children:jsx("div",{className:Xe.rrpChartBody,children:jsx(_,{route:n})})})]})})})};function Ge(){let[e,n]=T.useState({width:null,height:null}),r=T.useRef(null);return [T.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 Gt=()=>{let[e,{height:n}]=Ge(),r=!!n,t=r?`calc(100dvh - ${n}px)`:"0px";return {refHeader:e,isHeaderReady:r,headerHeight:n,mapHeight:t}};export{_e as RouteMap,le as SurfaceType,O as ThemeProvider,S as theme,Gt as useMapHeader,h as useTheme};//# sourceMappingURL=index.js.map
|
|
6
6
|
//# sourceMappingURL=index.js.map
|