diff --git a/buildNumber.json b/buildNumber.json index b667dfaa..d1b5db91 100644 --- a/buildNumber.json +++ b/buildNumber.json @@ -1 +1 @@ -{ "buildNumber" : "00130"} \ No newline at end of file +{ "buildNumber" : "00132"} \ No newline at end of file diff --git a/dist/TravelNotes.min.css b/dist/TravelNotes.min.css index 711aa464..0298036f 100644 --- a/dist/TravelNotes.min.css +++ b/dist/TravelNotes.min.css @@ -1 +1 @@ -body{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}#noscript #TravelNote-Noscript-Text{color:maroon;font:30px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif;width:30em;position:absolute;top:30vh;left:calc(50vw - 15em);text-align:center}#noscript #TravelNotes-Noscript-Bike{position:absolute;top:0;left:0;width:100vw}#noscript #TravelNotes-Noscript-BikeIcon{background-image:url('data:image/svg+xml;utf8, ');background-size:100px 100px;background-repeat:no-repeat;width:100px;height:100px;animation:10s ease-in 0s infinite AnimationBike}@keyframes AnimationBike{from{margin-left:calc(0% - 100px)}to{margin-left:100%}}.leaflet-popup-tip-container{transform:scale(0);visibility:hidden}.leaflet-popup-content-wrapper{border-radius:0}#TravelNotes-UI{position:absolute;top:0;right:0;z-index:1200}#TravelNotes-Map{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;overflow:hidden}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#0ff;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Map-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Map-NoteHtml-Address-City,.TravelNotes-Map-NoteHtml-Address>span:first-child,.TravelNotes-Map-NoteHtml-Distance>span:first-child,.TravelNotes-Map-NoteHtml-LatLng>span,.TravelNotes-Map-NoteHtml-NextDistance>span:first-child,.TravelNotes-Map-NoteHtml-Phone>span:first-child,.TravelNotes-Map-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Map-AllNotes{background:0 0;height:auto}.TravelNotes-Map-Note-Background{background-color:#fff}.TravelNotes-Map-Note-Bullet{background-color:#000}.TravelNotes-ItineraryPaneUI-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-ItineraryPaneUI-NoteHtml-Address-City,.TravelNotes-ItineraryPaneUI-NoteHtml-Address>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Distance>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-LatLng>span,.TravelNotes-ItineraryPaneUI-NoteHtml-NextDistance>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Phone>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-TravelNotesPaneUI-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-TravelNotesPaneUI-NoteHtml-Address-City,.TravelNotes-TravelNotesPaneUI-NoteHtml-Address>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Distance>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-LatLng>span,.TravelNotes-TravelNotesPaneUI-NoteHtml-NextDistance>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Phone>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-routeViewDiv{margin:5mm;margin-left:auto;margin-right:auto}.TravelNotes-routeViewDiv.TravelNotes-PrintPageBreak{page-break-inside:avoid}#TravelNotes-PrintToolbar{position:fixed;top:0;right:0;margin:1em;padding:.5em;z-index:1000;border-style:solid;border-width:.1em;background-color:#fff}@media print{.TravelNotes-routeViewDiv{margin:0;margin-left:auto;margin-right:auto}#TravelNotes-PrintToolbar{width:0;height:0;margin:0;padding:0;top:0;left:0;visibility:hidden}}.TravelNotes-Map-Route-Header-Name{font-weight:700}.TravelNotes-Map-Route-Header-Ascent>span,.TravelNotes-Map-Route-Header-Descent>span,.TravelNotes-Map-Route-Header-Distance>span,.TravelNotes-Map-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-ItineraryPaneUI-Route-Header-Name{font-weight:700}.TravelNotes-ItineraryPaneUI-Route-Header-Ascent>span,.TravelNotes-ItineraryPaneUI-Route-Header-Descent>span,.TravelNotes-ItineraryPaneUI-Route-Header-Distance>span,.TravelNotes-ItineraryPaneUI-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-Route-SvgProfile{background-color:#fff;margin:1em}.TravelNotes-Route-SvgProfile-profilePolyline{fill:none;stroke:red;stroke-width:3}.TravelNotes-Route-SvgProfile-framePolyline,.TravelNotes-Route-SvgProfile-markerPolyline{fill:none;stroke:#000;stroke-width:1}.TravelNotes-Route-SvgProfile-elevText{fill:#000;font:bold 30px sans-serif}.TravelNotes-Route-SvgProfile-distLegend,.TravelNotes-Route-SvgProfile-elevLegend{fill:#000;font:bold 24px sans-serif}.TravelNotes-Map-WayPointStyle{background:0 0;height:auto}.TravelNotes-Map-WayPoint{background-repeat:no-repeat;height:20px;width:20px;display:inline-block;vertical-align:top}.TravelNotes-Map-WayPointStart{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointVia{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointEnd{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointTmp{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointText{width:20px;text-align:center;font-size:1em;font-weight:700}.TravelNotes-Background{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;z-index:1200;overflow:hidden;background-color:rgba(0,0,0,.4)}.TravelNotes-Background:hover{cursor:move}.TravelNotes-WaitAnimation{margin:1em;height:1em;width:calc(100% - 2em);overflow:hidden;visibility:visible}.TravelNotes-WaitAnimationBullet{background-color:red;height:100%;width:1em;animation:2s linear 0s infinite alternate WaitAnimationBullet;visibility:visible}@keyframes WaitAnimationBullet{from{margin-left:0}to{margin-left:calc(100% - 1em)}}.TravelNotes-ContextMenu-DummyDiv{position:absolute;top:0;left:0;width:100vw;height:100vh;background-color:transparent;z-index:1100}.TravelNotes-ContextMenu-Container{position:absolute;z-index:1200;background-color:#fff;border-style:solid;border-width:.1em;font-family:sans-serif;font-size:1em;box-shadow:0 3px 14px rgba(0,0,0,.4)}.TravelNotes-ContextMenu-CloseButton{width:1.3em}.TravelNotes-ContextMenu-CloseButton:hover{background-color:#d3d3d3;cursor:default}.TravelNotes-ContextMenu-ItemContainer{margin-left:2em;margin-right:.5em;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-ContextMenu-ItemContainer:last-child{border-bottom-style:none}.TravelNotes-ContextMenu-Item{margin-top:.2em;margin-bottom:.2em;padding-left:1em;padding-right:.2em}.TravelNotes-ContextMenu-ItemSelected{background-color:#add8e6;cursor:default}.TravelNotes-ContextMenu-ItemDisabled{color:gray}.TravelNotes-ContextMenu-ItemDisabled.TravelNotes-ContextMenu-ItemSelected{background-color:#d3d3d3;cursor:auto}#TravelNotes-AboutDialog-AboutDiv{width:30em;color:gray}#TravelNotes-APIKeysDialog-DataDiv{margin-top:1em;width:39em}#TravelNotes-APIKeysDialog-ToolbarDiv{margin-bottom:.5em;display:flex;flex-direction:row}.TravelNotes-APIKeysDialog-AtRightButton{margin-left:auto}.TravelNotes-APIKeysDialog-ApiKeyRow{display:flex;flex-direction:row}.TravelNotes-APIKeysDialog-Input{margin:.2em}.TravelNotes-APIKeysDialog-ApiKeyName{width:10em}.TravelNotes-APIKeysDialog-ApiKeyValue{width:20em}.TravelNotes-BaseDialog-Container{z-index:1200;position:absolute;background-color:#fff;border-style:solid;border-width:.1em;cursor:default;max-height:90vh;box-shadow:0 3px 14px rgba(0,0,0,.6)}.TravelNotes-BaseDialog-TopBar{background-color:#d3d3d3;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-BaseDialog-TopBar:hover{background-color:#8b0000}.TravelNotes-BaseDialog-TopBar:active,.TravelNotes-BaseDialog-TopBar:hover{cursor:grab}.TravelNotes-BaseDialog-CancelButton{background-color:#fff;width:1.5em;text-align:center}.TravelNotes-BaseDialog-CancelButton:hover{cursor:default}.TravelNotes-BaseDialog-ContentDiv,.TravelNotes-BaseDialog-ErrorDiv,.TravelNotes-BaseDialog-FooterDiv,.TravelNotes-BaseDialog-HeaderDiv,.TravelNotes-BaseDialog-WaitDiv{padding:.5em}.TravelNotes-BaseDialog-HeaderDiv{text-align:center;font-weight:700}.TravelNotes-BaseDialog-ContentDiv{border-top-style:solid;border-bottom-style:solid;border-color:#d3d3d3;border-width:.1em;overflow:auto}.TravelNotes-BaseDialog-ErrorDiv{background-color:red;color:#fff}.TravelNotes-BaseDialog-OpenFileInput{opacity:0;position:relative;width:0;height:0}.TravelNotes-BaseDialog-Button{display:inline-block;width:2em;text-align:center;border-style:solid;border-width:.1em;border-color:#fff}.TravelNotes-BaseDialog-Button:hover{border-color:#000}#TravelNotes-ColorDialog-ColorDiv{width:30em;text-align:center}#TravelNotes-ColorDialog-RedButtonsRowDiv{margin-top:.5em;margin-bottom:.5em}.TravelNotes-ColorDialog-CellColorDiv{display:inline-block;height:1em;width:1em;border-style:solid;border-width:.1em;margin-top:0;margin-left:.1em;margin-right:.1em;margin-bottom:0}.TravelNotes-ColorDialog-NumberInput{width:3em;margin:.5em}#TravelNotes-ColorDialog-ColorSampleDiv{width:5em;height:3em;display:inline-block;border-style:solid;border-width:.1em}.TravelNotes-BaseDialog-Container{max-width:44em}#TravelNotes-NoteDialog-MainDataDiv{width:43em}#TravelNotes-NoteDialog-ToolbarDiv{max-width:39em}#TravelNotes-NoteDialog-IconSelect{margin-right:.2em}.TravelNotes-NoteDialog-EditorButton{display:inline-block;text-align:center;border-style:solid;border-width:.1em;border-color:#fff;margin:.1em;padding:.1em}.TravelNotes-NoteDialog-EditorButton span{padding-right:.2em;padding-left:.2em}.TravelNotes-NoteDialog-EditorButton:hover{border-color:#000}.TravelNotes-NoteDialog-DataDiv{margin-top:.3em;margin-bottom:.3em}.TravelNotes-NoteDialog-TextArea{width:39em}.TravelNotes-NoteDialog-InputText{width:38em}.TravelNotes-NoteDialog-NumberInput{margin-right:.5em;width:3em}.TravelNotes-NoteDialog-PreviewDiv>div{margin-top:1em;padding-top:1em;border-top-style:solid;border-top-width:.1em;display:flex;flex-direction:row;max-width:43em;background-color:#d3d3d3}.TravelNotes-NoteDialog-Travel-Notes-IconCell{min-height:20px;background-repeat:no-repeat;flex-shrink:0;margin-left:auto;background-color:#fff}.TravelNotes-NoteDialog-Travel-Notes-Cell{padding:.3em;flex-shrink:1;border-style:solid;border-width:.1em;margin-left:1em;margin-right:auto;max-width:calc(43em - 40px);max-height:11em;overflow:auto;background-color:#fff}.TravelNotes-PrintRouteMapDialog-NumberInput{width:4em;margin-left:.3em;margin-right:.3em}.TravelNotes-PrintRouteMapDialog-DataDiv{margin:.5em}#TravelNotes-RoutePropertiesDialog-MainDataDiv{text-align:center;width:30em}#TravelNotes-RoutePropertiesDialog-NameInput{width:100%}.TravelNotes-RoutePropertiesDialog-DataDiv{text-align:left;margin:.5em}.TravelNotes-RoutePropertiesDialog-DataDiv>span{display:inline-block;width:10em;text-align:right;padding-right:1em}#TravelNotes-RoutePropertiesDialog-ChainDiv,#TravelNotes-RoutePropertiesDialog-NameInputDiv{border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3;margin-bottom:1em;padding-bottom:1em}#TravelNotes-RoutePropertiesDialog-WidthInput{width:3em}#TravelNotes-RoutePropertiesDialog-ColorHeaderDiv{margin:.5em}.TravelNotes-TwoButtonsDialog-FooterDiv{display:flex;flex-direction:row}#TravelNotes-TwoButtonsDialog-MessageDiv{width:30em}.TravelNotes-TwoButtonsDialog-Button{min-width:2em;width:auto}#TravelNotes-WayPointPropertiesDialog-DataDiv{width:30em}#TravelNotes-WayPointPropertiesDialog-DataDiv>div{padding-top:.3em;padding-bottom:.1em}#TravelNotes-WayPointPropertiesDialog-DataDiv>div>div{margin-right:.5em}.TravelNotes-WayPointPropertiesDialog-Input{width:calc(100% - .5em)}.TravelNotes-FloatWindow-Container{position:absolute;top:10em;left:10em;width:40em;z-index:1000;background-color:#fff;border-style:solid;border-width:.1em}.TravelNotes-FloatWindow-TopBar{background-color:#d3d3d3;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-FloatWindow-TopBar:hover{background-color:#8b0000}.TravelNotes-FloatWindow-TopBar:active,.TravelNotes-FloatWindow-TopBar:hover{cursor:grab}.TravelNotes-FloatWindow-CancelButton{background-color:#fff;width:1em}.TravelNotes-FloatWindow-CancelButton:hover{color:red}#TravelNotes-AttributionsUI{position:absolute;left:0;bottom:0;z-index:1800;background-color:#fff;padding-left:1em;padding-right:1em;color:#0078a8;font-size:80%}#TravelNotes-AttributionsUI a{color:#0078a8}#TravelNotes-ErrorsUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:transparent;background-color:transparent;z-index:1300}#TravelNotes-ErrorsUI-CancelButton{background-color:#fff}#TravelNotes-ErrorsUI-HelpInputDiv,#TravelNotes-ErrorsUI-Message{margin:.5em}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Hidden{visibility:hidden;width:0;height:0}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Error{color:#fff;background-color:red}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Warning{color:#000;background-color:orange}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Info{color:#000;background-color:#fff}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Help{color:#000;background-color:#fff}.TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row,.TravelNotes-ItineraryPaneUI-Route-Notes-Row{display:flex;flex-direction:row;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes-Cell{padding:.3em;flex-shrink:1}.TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-ItineraryPaneUI-Route-Maneuver-Distance>span{text-decoration:underline}#TravelNotes-LayersToolbarUI{position:absolute;width:3em;top:0;left:0;z-index:1300;display:flex;flex-direction:column;height:auto;max-height:100vh}#TravelNotes-LayersToolbarUI-Header{transform-origin:bottom right;transform:rotateZ(-90deg) translateY(-6em) translateX(4em);text-align:center;width:8em;height:2em;font-size:1em;font-weight:700;color:#fff;background-color:#000;padding:.5em;margin:0;flex-shrink:0}#TravelNotes-LayersToolbarUI-Buttons{background-color:#fff;color:#000;flex-shrink:2;flex-grow:2;overflow:hidden}.TravelNotes-LayersToolbarUI-Button{padding:.5em;text-align:center;margin:0;font-weight:700;height:1.1em}.TravelNotes-LayersToolbarUI-LinkButton-Enter{color:#fff;background-color:#000}.TravelNotes-LayersToolbarUI-LinkButton-Leave{color:#000;background-color:#fff}.TravelNotes-LayersToolbarUI-Button>a{text-decoration:none}.TravelNotes-LayersToolbarUI-Button>a:hover{text-decoration:none}.TravelNotes-LayersToolbarUI-Button:hover{cursor:pointer}#TravelNotes-MouseUI{position:absolute;top:0;left:calc(50vw - 5em);z-index:1200;text-align:center;width:10em}@media screen and (min-width:1px) and (max-width:640px){#TravelNotes-MouseUI{left:3em;width:0;text-align:left;visibility:hidden}}@media screen and (min-width:641px) and (max-width:1024px){#TravelNotes-MouseUI{left:3em;width:calc(100% - 33em);text-align:left}}#TravelNotes-MouseUI>span{padding:.3em;background-color:#fff;opacity:.5}#TravelNotes-OsmSearchPaneUI-SearchButton{margin-right:.3em}#TravelNotes-OsmSearchPaneUI-SearchTree{max-height:15em;overflow:auto}.TravelNotes-OsmSearchPaneUI-SearchItemMargin1{margin-left:.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin2{margin-left:.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin3{margin-left:2.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin4{margin-left:4.5em}.TravelNotes-OsmSearchPaneUI-TreeArrow{color:gray}.TravelNotes-OsmSearchPaneUI-TreeArrow:hover{color:red;border-color:#fff}.TravelNotes-OsmSearchPaneUI-SearchResult-Row{display:flex;flex-direction:row;padding:.3em;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-OsmSearchPaneUI-SearchResult-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-OsmSearchPaneUI-SearchResult-Cell{flex-shrink:1}#TravelNotes-PanesManagerUI-PaneControlsDiv{margin-left:.5em;border-bottom-style:solid;border-bottom-width:.1em}#TravelNotes-PanesManagerUI-PaneDataDiv{margin-left:.5em;margin-bottom:auto;max-height:none;overflow:auto;flex-grow:2}.TravelNotes-PanesManagerUI-PaneButton{border-style:solid;border-top-width:.3em;border-right-width:.1em;border-bottom-width:.1em;border-left-width:.3em;border-color:gray;background-color:#d3d3d3;margin-left:.1em}.TravelNotes-PanesManagerUI-ActivePaneButton{background-color:#fff;border-bottom-color:#fff}.TravelNotes-ProvidersToolbarUI-ImgButtonsDiv{padding-top:.5em;border-style:solid;border-width:.1em;border-color:#d3d3d3}.TravelNotes-ProvidersToolbarUI-ImgButton{padding:.1em;margin:.1em;border-style:solid;border-width:.1em;border-color:#fff;width:24px;height:24px}.TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton,.TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton{border-color:#000}.TravelNotes-ProvidersToolbarUI-InactiveImgButton{visibility:hidden;width:0;padding:0;margin:0;border-width:0}.TravelNotes-TravelNotesPaneUI-Travel-Notes-Row{display:flex;flex-direction:row;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-TravelNotesPaneUI-Travel-Notes-Cell{padding:.3em;flex-shrink:1}.TravelNotes-TravelNotesPaneUI-Travel-Notes-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-TravelNotesToolbarUI-GeoLocationButton-Striked{text-decoration:line-through;text-decoration-color:red;text-decoration-thickness:2px}#TravelNotes-TravelUI-InputTravelName{width:100%}.TravelNotes-TravelUI-SaveAsButton{background-image:url('data:image/svg+xml;utf8, ');background-position:center}.TravelNotes-TravelUI-RoutesListDiv{flex-shrink:0;max-height:20em;overflow:auto}.TravelNotes-TravelUI-RoutesList-Item{margin-left:2em;margin-right:.5em;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-TravelUI-RoutesList-HiddenItem{color:gray}.TravelNotes-TravelUI-RouteList-ExpandButton{padding-right:.5em;color:#d3d3d3}.TravelNotes-TravelUI-RouteList-ExpandButton:hover{cursor:default;color:red}.TravelNotes-TravelUI-OpenFileInput{opacity:0;position:relative;width:0}#TravelNotes-UI-MainDiv{height:100vh;max-height:100vh;font-family:sans-serif;font-size:1em;margin:0;display:flex;flex-direction:column;max-width:30em;width:30em;background-color:#fff}#TravelNotes-UI-MainDiv.TravelNotes-UI-Minimized{height:3em;background-color:transparent;width:8em;margin:0;padding:0}#TravelNotes-UI-MainDiv-Title{position:absolute;top:0;right:0;text-align:center;font-size:1em;font-weight:700;color:#fff;background-color:#000;transform-origin:bottom right;transform:rotateZ(-90deg) translateX(4em);padding:.5em;padding-top:1em;margin:0;height:2em;width:8em}.TravelNotes-UI-MoveCursor{cursor:grab}.TravelNotes-UI-MoveCursor:active{cursor:move}.TravelNotes-UI-FlexRowDiv{display:flex;flex-direction:row;padding:.5em}.TravelNotes-UI-FlexRow-RightButton{margin-left:auto}.TravelNotes-UI-Button{font-weight:700;display:inline-block;width:2em;text-align:center;cursor:default;border-style:solid;border-width:.1em;border-color:#fff}.TravelNotes-UI-Button:hover{border-color:#000}.TravelNotes-UI-Button>a{text-decoration:none;color:#000}.TravelNotes-UI-Button>a:visited{color:#000}#TravelNotes-WaitUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:#000;background-color:#fff;z-index:1350;border-style:solid;border-width:.1em}#TravelNotes-WaitUI-MessageDiv{text-align:center;padding:1em}.TravelNotes-Hidden,.TravelNotes-Hidden>*,.TravelNotes-Hidden>*>*,.TravelNotes-Hidden>*>*>*{width:0;height:0;margin:0;padding:0;top:0;left:0;border-width:0;border-style:none;animation:none;visibility:hidden;transform:scale(0)} \ No newline at end of file +body{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}#noscript #TravelNote-Noscript-Text{color:maroon;font:30px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif;width:30em;position:absolute;top:30vh;left:calc(50vw - 15em);text-align:center}#noscript #TravelNotes-Noscript-Bike{position:absolute;top:0;left:0;width:100vw}#noscript #TravelNotes-Noscript-BikeIcon{background-image:url('data:image/svg+xml;utf8, ');background-size:100px 100px;background-repeat:no-repeat;width:100px;height:100px;animation:10s ease-in 0s infinite AnimationBike}@keyframes AnimationBike{from{margin-left:calc(0% - 100px)}to{margin-left:100%}}.leaflet-popup-tip-container{transform:scale(0);visibility:hidden}.leaflet-popup-content-wrapper{border-radius:0}#TravelNotes-UI{position:absolute;top:0;right:0;z-index:1200}#TravelNotes-Map{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;overflow:hidden}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#000;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Map-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Map-NoteHtml-Address-City,.TravelNotes-Map-NoteHtml-Address>span:first-child,.TravelNotes-Map-NoteHtml-Distance>span:first-child,.TravelNotes-Map-NoteHtml-LatLng>span,.TravelNotes-Map-NoteHtml-NextDistance>span:first-child,.TravelNotes-Map-NoteHtml-Phone>span:first-child,.TravelNotes-Map-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Map-AllNotes{background:0 0;height:auto}.TravelNotes-Map-Note-Background{background-color:#fff}.TravelNotes-Map-Note-Bullet{background-color:#000}.TravelNotes-ItineraryPaneUI-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-ItineraryPaneUI-NoteHtml-Address-City,.TravelNotes-ItineraryPaneUI-NoteHtml-Address>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Distance>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-LatLng>span,.TravelNotes-ItineraryPaneUI-NoteHtml-NextDistance>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Phone>span:first-child,.TravelNotes-ItineraryPaneUI-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-TravelNotesPaneUI-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-TravelNotesPaneUI-NoteHtml-Address-City,.TravelNotes-TravelNotesPaneUI-NoteHtml-Address>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Distance>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-LatLng>span,.TravelNotes-TravelNotesPaneUI-NoteHtml-NextDistance>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Phone>span:first-child,.TravelNotes-TravelNotesPaneUI-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-routeViewDiv{margin:5mm;margin-left:auto;margin-right:auto}.TravelNotes-routeViewDiv.TravelNotes-PrintPageBreak{page-break-inside:avoid}#TravelNotes-PrintToolbar{position:fixed;top:0;right:0;margin:1em;padding:.5em;z-index:1000;border-style:solid;border-width:.1em;background-color:#fff}@media print{.TravelNotes-routeViewDiv{margin:0;margin-left:auto;margin-right:auto}#TravelNotes-PrintToolbar{width:0;height:0;margin:0;padding:0;top:0;left:0;visibility:hidden}}.TravelNotes-Map-Route-Header-Name{font-weight:700}.TravelNotes-Map-Route-Header-Ascent>span,.TravelNotes-Map-Route-Header-Descent>span,.TravelNotes-Map-Route-Header-Distance>span,.TravelNotes-Map-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-ItineraryPaneUI-Route-Header-Name{font-weight:700}.TravelNotes-ItineraryPaneUI-Route-Header-Ascent>span,.TravelNotes-ItineraryPaneUI-Route-Header-Descent>span,.TravelNotes-ItineraryPaneUI-Route-Header-Distance>span,.TravelNotes-ItineraryPaneUI-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-Route-SvgProfile{background-color:#fff;margin:1em}.TravelNotes-Route-SvgProfile-profilePolyline{fill:none;stroke:red;stroke-width:3}.TravelNotes-Route-SvgProfile-framePolyline,.TravelNotes-Route-SvgProfile-markerPolyline{fill:none;stroke:#000;stroke-width:1}.TravelNotes-Route-SvgProfile-elevText{fill:#000;font:bold 30px sans-serif}.TravelNotes-Route-SvgProfile-distLegend,.TravelNotes-Route-SvgProfile-elevLegend{fill:#000;font:bold 24px sans-serif}.TravelNotes-Map-WayPointStyle{background:0 0;height:auto}.TravelNotes-Map-WayPoint{background-repeat:no-repeat;height:20px;width:20px;display:inline-block;vertical-align:top}.TravelNotes-Map-WayPointStart{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointVia{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointEnd{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointTmp{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-Map-WayPointText{width:20px;text-align:center;font-size:1em;font-weight:700}.TravelNotes-Background{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;z-index:1200;overflow:hidden;background-color:rgba(0,0,0,.4)}.TravelNotes-Background:hover{cursor:move}.TravelNotes-WaitAnimation{margin:1em;height:1em;width:calc(100% - 2em);overflow:hidden;visibility:visible}.TravelNotes-WaitAnimationBullet{background-color:red;height:100%;width:1em;animation:2s linear 0s infinite alternate WaitAnimationBullet;visibility:visible}@keyframes WaitAnimationBullet{from{margin-left:0}to{margin-left:calc(100% - 1em)}}.TravelNotes-ContextMenu-DummyDiv{position:absolute;top:0;left:0;width:100vw;height:100vh;background-color:transparent;z-index:1100}.TravelNotes-ContextMenu-Container{position:absolute;z-index:1200;background-color:#fff;border-style:solid;border-width:.1em;font-family:sans-serif;font-size:1em;box-shadow:0 3px 14px rgba(0,0,0,.4)}.TravelNotes-ContextMenu-CloseButton{width:1.3em}.TravelNotes-ContextMenu-CloseButton:hover{background-color:#d3d3d3;cursor:default}.TravelNotes-ContextMenu-ItemContainer{margin-left:2em;margin-right:.5em;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-ContextMenu-ItemContainer:last-child{border-bottom-style:none}.TravelNotes-ContextMenu-Item{margin-top:.2em;margin-bottom:.2em;padding-left:1em;padding-right:.2em}.TravelNotes-ContextMenu-ItemSelected{background-color:#add8e6;cursor:default}.TravelNotes-ContextMenu-ItemDisabled{color:gray}.TravelNotes-ContextMenu-ItemDisabled.TravelNotes-ContextMenu-ItemSelected{background-color:#d3d3d3;cursor:auto}#TravelNotes-AboutDialog-AboutDiv{width:30em;color:gray}#TravelNotes-APIKeysDialog-DataDiv{margin-top:1em;width:39em}#TravelNotes-APIKeysDialog-ToolbarDiv{margin-bottom:.5em;display:flex;flex-direction:row}.TravelNotes-APIKeysDialog-AtRightButton{margin-left:auto}.TravelNotes-APIKeysDialog-ApiKeyRow{display:flex;flex-direction:row}.TravelNotes-APIKeysDialog-Input{margin:.2em}.TravelNotes-APIKeysDialog-ApiKeyName{width:10em}.TravelNotes-APIKeysDialog-ApiKeyValue{width:20em}.TravelNotes-BaseDialog-Container{z-index:1200;position:absolute;background-color:#fff;border-style:solid;border-width:.1em;cursor:default;max-height:90vh;box-shadow:0 3px 14px rgba(0,0,0,.6)}.TravelNotes-BaseDialog-TopBar{background-color:#d3d3d3;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-BaseDialog-TopBar:hover{background-color:#8b0000}.TravelNotes-BaseDialog-TopBar:active,.TravelNotes-BaseDialog-TopBar:hover{cursor:grab}.TravelNotes-BaseDialog-CancelButton{background-color:#fff;width:1.5em;text-align:center}.TravelNotes-BaseDialog-CancelButton:hover{cursor:default}.TravelNotes-BaseDialog-ContentDiv,.TravelNotes-BaseDialog-ErrorDiv,.TravelNotes-BaseDialog-FooterDiv,.TravelNotes-BaseDialog-HeaderDiv,.TravelNotes-BaseDialog-WaitDiv{padding:.5em}.TravelNotes-BaseDialog-HeaderDiv{text-align:center;font-weight:700}.TravelNotes-BaseDialog-ContentDiv{border-top-style:solid;border-bottom-style:solid;border-color:#d3d3d3;border-width:.1em;overflow:auto}.TravelNotes-BaseDialog-ErrorDiv{background-color:red;color:#fff}.TravelNotes-BaseDialog-OpenFileInput{opacity:0;position:relative;width:0;height:0}.TravelNotes-BaseDialog-Button{display:inline-block;width:2em;text-align:center;border-style:solid;border-width:.1em;border-color:#fff}.TravelNotes-BaseDialog-Button:hover{border-color:#000}#TravelNotes-ColorDialog-ColorDiv{width:30em;text-align:center}#TravelNotes-ColorDialog-RedButtonsRowDiv{margin-top:.5em;margin-bottom:.5em}.TravelNotes-ColorDialog-CellColorDiv{display:inline-block;height:1em;width:1em;border-style:solid;border-width:.1em;margin-top:0;margin-left:.1em;margin-right:.1em;margin-bottom:0}.TravelNotes-ColorDialog-NumberInput{width:3em;margin:.5em}#TravelNotes-ColorDialog-ColorSampleDiv{width:5em;height:3em;display:inline-block;border-style:solid;border-width:.1em}.TravelNotes-BaseDialog-Container{max-width:44em}#TravelNotes-NoteDialog-MainDataDiv{width:43em}#TravelNotes-NoteDialog-ToolbarDiv{max-width:39em}#TravelNotes-NoteDialog-IconSelect{margin-right:.2em}.TravelNotes-NoteDialog-EditorButton{display:inline-block;text-align:center;border-style:solid;border-width:.1em;border-color:#fff;margin:.1em;padding:.1em}.TravelNotes-NoteDialog-EditorButton span{padding-right:.2em;padding-left:.2em}.TravelNotes-NoteDialog-EditorButton:hover{border-color:#000}.TravelNotes-NoteDialog-DataDiv{margin-top:.3em;margin-bottom:.3em}.TravelNotes-NoteDialog-TextArea{width:39em}.TravelNotes-NoteDialog-InputText{width:38em}.TravelNotes-NoteDialog-NumberInput{margin-right:.5em;width:3em}.TravelNotes-NoteDialog-PreviewDiv>div{margin-top:1em;padding-top:1em;border-top-style:solid;border-top-width:.1em;display:flex;flex-direction:row;max-width:43em;background-color:#d3d3d3}.TravelNotes-NoteDialog-Travel-Notes-IconCell{min-height:20px;background-repeat:no-repeat;flex-shrink:0;margin-left:auto;background-color:#fff}.TravelNotes-NoteDialog-Travel-Notes-Cell{padding:.3em;flex-shrink:1;border-style:solid;border-width:.1em;margin-left:1em;margin-right:auto;max-width:calc(43em - 40px);max-height:11em;overflow:auto;background-color:#fff}.TravelNotes-PrintRouteMapDialog-NumberInput{width:4em;margin-left:.3em;margin-right:.3em}.TravelNotes-PrintRouteMapDialog-DataDiv{margin:.5em}#TravelNotes-RoutePropertiesDialog-MainDataDiv{text-align:center;width:30em}#TravelNotes-RoutePropertiesDialog-NameInput{width:100%}.TravelNotes-RoutePropertiesDialog-DataDiv{text-align:left;margin:.5em}.TravelNotes-RoutePropertiesDialog-DataDiv>span{display:inline-block;width:10em;text-align:right;padding-right:1em}#TravelNotes-RoutePropertiesDialog-ChainDiv,#TravelNotes-RoutePropertiesDialog-NameInputDiv{border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3;margin-bottom:1em;padding-bottom:1em}#TravelNotes-RoutePropertiesDialog-WidthInput{width:3em}#TravelNotes-RoutePropertiesDialog-ColorHeaderDiv{margin:.5em}.TravelNotes-TwoButtonsDialog-FooterDiv{display:flex;flex-direction:row}#TravelNotes-TwoButtonsDialog-MessageDiv{width:30em}.TravelNotes-TwoButtonsDialog-Button{min-width:2em;width:auto}#TravelNotes-WayPointPropertiesDialog-DataDiv{width:30em}#TravelNotes-WayPointPropertiesDialog-DataDiv>div{padding-top:.3em;padding-bottom:.1em}#TravelNotes-WayPointPropertiesDialog-DataDiv>div>div{margin-right:.5em}.TravelNotes-WayPointPropertiesDialog-Input{width:calc(100% - .5em)}.TravelNotes-FloatWindow-Container{position:absolute;top:10em;left:10em;width:40em;z-index:1000;background-color:#fff;border-style:solid;border-width:.1em}.TravelNotes-FloatWindow-TopBar{background-color:#d3d3d3;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-FloatWindow-TopBar:hover{background-color:#8b0000}.TravelNotes-FloatWindow-TopBar:active,.TravelNotes-FloatWindow-TopBar:hover{cursor:grab}.TravelNotes-FloatWindow-CancelButton{background-color:#fff;width:1em}.TravelNotes-FloatWindow-CancelButton:hover{color:red}#TravelNotes-AttributionsUI{position:absolute;left:0;bottom:0;z-index:1800;background-color:#fff;padding-left:1em;padding-right:1em;color:#0078a8;font-size:80%}#TravelNotes-AttributionsUI a{color:#0078a8}#TravelNotes-ErrorsUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:transparent;background-color:transparent;z-index:1300}#TravelNotes-ErrorsUI-CancelButton{background-color:#fff}#TravelNotes-ErrorsUI-HelpInputDiv,#TravelNotes-ErrorsUI-Message{margin:.5em}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Hidden{visibility:hidden;width:0;height:0}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Error{color:#fff;background-color:red}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Warning{color:#000;background-color:orange}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Info{color:#000;background-color:#fff}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Help{color:#000;background-color:#fff}.TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row,.TravelNotes-ItineraryPaneUI-Route-Notes-Row{display:flex;flex-direction:row;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes-Cell{padding:.3em;flex-shrink:1}.TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-ItineraryPaneUI-Route-Maneuver-Distance>span{text-decoration:underline}#TravelNotes-LayersToolbarUI{position:absolute;width:3em;top:0;left:0;z-index:1300;display:flex;flex-direction:column;height:auto;max-height:100vh}#TravelNotes-LayersToolbarUI-Header{transform-origin:bottom right;transform:rotateZ(-90deg) translateY(-6em) translateX(4em);text-align:center;width:8em;height:2em;font-size:1em;font-weight:700;color:#fff;background-color:#000;padding:.5em;margin:0;flex-shrink:0}#TravelNotes-LayersToolbarUI-Buttons{background-color:#fff;color:#000;flex-shrink:2;flex-grow:2;overflow:hidden}.TravelNotes-LayersToolbarUI-Button{padding:.5em;text-align:center;margin:0;font-weight:700;height:1.1em}.TravelNotes-LayersToolbarUI-LinkButton-Enter{color:#fff;background-color:#000}.TravelNotes-LayersToolbarUI-LinkButton-Leave{color:#000;background-color:#fff}.TravelNotes-LayersToolbarUI-Button>a{text-decoration:none}.TravelNotes-LayersToolbarUI-Button>a:hover{text-decoration:none}.TravelNotes-LayersToolbarUI-Button:hover{cursor:pointer}#TravelNotes-MouseUI{position:absolute;top:0;left:calc(50vw - 5em);z-index:1200;text-align:center;width:10em}@media screen and (min-width:1px) and (max-width:640px){#TravelNotes-MouseUI{left:3em;width:0;text-align:left;visibility:hidden}}@media screen and (min-width:641px) and (max-width:1024px){#TravelNotes-MouseUI{left:3em;width:calc(100% - 33em);text-align:left}}#TravelNotes-MouseUI>span{padding:.3em;background-color:#fff;opacity:.5}#TravelNotes-OsmSearchPaneUI-SearchButton{margin-right:.3em}#TravelNotes-OsmSearchPaneUI-SearchTree{max-height:15em;overflow:auto}.TravelNotes-OsmSearchPaneUI-SearchItemMargin1{margin-left:.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin2{margin-left:.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin3{margin-left:2.5em}.TravelNotes-OsmSearchPaneUI-SearchItemMargin4{margin-left:4.5em}.TravelNotes-OsmSearchPaneUI-TreeArrow{color:gray}.TravelNotes-OsmSearchPaneUI-TreeArrow:hover{color:red;border-color:#fff}.TravelNotes-OsmSearchPaneUI-SearchResult-Row{display:flex;flex-direction:row;padding:.3em;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-OsmSearchPaneUI-SearchResult-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-OsmSearchPaneUI-SearchResult-Cell{flex-shrink:1}#TravelNotes-PanesManagerUI-PaneControlsDiv{margin-left:.5em;border-bottom-style:solid;border-bottom-width:.1em}#TravelNotes-PanesManagerUI-PaneDataDiv{margin-left:.5em;margin-bottom:auto;max-height:none;overflow:auto;flex-grow:2}.TravelNotes-PanesManagerUI-PaneButton{border-style:solid;border-top-width:.3em;border-right-width:.1em;border-bottom-width:.1em;border-left-width:.3em;border-color:gray;background-color:#d3d3d3;margin-left:.1em}.TravelNotes-PanesManagerUI-ActivePaneButton{background-color:#fff;border-bottom-color:#fff}.TravelNotes-ProvidersToolbarUI-ImgButtonsDiv{padding-top:.5em;border-style:solid;border-width:.1em;border-color:#d3d3d3}.TravelNotes-ProvidersToolbarUI-ImgButton{padding:.1em;margin:.1em;border-style:solid;border-width:.1em;border-color:#fff;width:24px;height:24px}.TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton,.TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton{border-color:#000}.TravelNotes-ProvidersToolbarUI-InactiveImgButton{visibility:hidden;width:0;padding:0;margin:0;border-width:0}.TravelNotes-TravelNotesPaneUI-Travel-Notes-Row{display:flex;flex-direction:row;border-bottom-style:solid;border-bottom-width:.1em;border-bottom-color:#d3d3d3}.TravelNotes-TravelNotesPaneUI-Travel-Notes-Cell{padding:.3em;flex-shrink:1}.TravelNotes-TravelNotesPaneUI-Travel-Notes-IconCell{width:40px;height:40px;min-height:20px;background-repeat:no-repeat;flex-shrink:0}.TravelNotes-TravelNotesToolbarUI-GeoLocationButton-Striked{text-decoration:line-through;text-decoration-color:red;text-decoration-thickness:2px}#TravelNotes-TravelUI-InputTravelName{width:100%}.TravelNotes-TravelUI-SaveAsButton{background-image:url('data:image/svg+xml;utf8, ');background-position:center}.TravelNotes-TravelUI-RoutesListDiv{flex-shrink:0;max-height:20em;overflow:auto}.TravelNotes-TravelUI-RoutesList-Item{margin-left:2em;margin-right:.5em;border-bottom-style:solid;border-bottom-width:.1em}.TravelNotes-TravelUI-RoutesList-HiddenItem{color:gray}.TravelNotes-TravelUI-RouteList-ExpandButton{padding-right:.5em;color:#d3d3d3}.TravelNotes-TravelUI-RouteList-ExpandButton:hover{cursor:default;color:red}.TravelNotes-TravelUI-OpenFileInput{opacity:0;position:relative;width:0}#TravelNotes-UI-MainDiv{height:100vh;max-height:100vh;font-family:sans-serif;font-size:1em;margin:0;display:flex;flex-direction:column;max-width:30em;width:30em;background-color:#fff}#TravelNotes-UI-MainDiv.TravelNotes-UI-Minimized{height:3em;background-color:transparent;width:8em;margin:0;padding:0}#TravelNotes-UI-MainDiv-Title{position:absolute;top:0;right:0;text-align:center;font-size:1em;font-weight:700;color:#fff;background-color:#000;transform-origin:bottom right;transform:rotateZ(-90deg) translateX(4em);padding:.5em;padding-top:1em;margin:0;height:2em;width:8em}.TravelNotes-UI-MoveCursor{cursor:grab}.TravelNotes-UI-MoveCursor:active{cursor:move}.TravelNotes-UI-FlexRowDiv{display:flex;flex-direction:row;padding:.5em}.TravelNotes-UI-FlexRow-RightButton{margin-left:auto}.TravelNotes-UI-Button{font-weight:700;display:inline-block;width:2em;text-align:center;cursor:default;border-style:solid;border-width:.1em;border-color:#fff}.TravelNotes-UI-Button:hover{border-color:#000}.TravelNotes-UI-Button>a{text-decoration:none;color:#000}.TravelNotes-UI-Button>a:visited{color:#000}#TravelNotes-WaitUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:#000;background-color:#fff;z-index:1350;border-style:solid;border-width:.1em}#TravelNotes-WaitUI-MessageDiv{text-align:center;padding:1em}.TravelNotes-Hidden,.TravelNotes-Hidden>*,.TravelNotes-Hidden>*>*,.TravelNotes-Hidden>*>*>*{width:0;height:0;margin:0;padding:0;top:0;left:0;border-width:0;border-style:none;animation:none;visibility:hidden;transform:scale(0)} \ No newline at end of file diff --git a/dist/TravelNotes.min.js b/dist/TravelNotes.min.js index 0ca22631..b08f44be 100644 --- a/dist/TravelNotes.min.js +++ b/dist/TravelNotes.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 @@ -71,7 +71,7 @@ @private @------------------------------------------------------------------------------------------------------------------------------ - */function be(){function e(e){return window.crypto.subtle.importKey("raw",e,{name:"PBKDF2"},!1,["deriveKey"])}function t(e){return window.crypto.subtle.deriveKey({name:"PBKDF2",salt:(new window.TextEncoder).encode("Tire la chevillette la bobinette cherra. Le Petit Chaperon rouge tira la chevillette."),iterations:1e6,hash:"SHA-256"},e,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}return new class{constructor(){Object.freeze(this)}encryptData(o,a,n,r){!function(o,a,n,r){let i=window.crypto.getRandomValues(new Uint8Array(16));r.then(e).then(t).then((function(e){return window.crypto.subtle.encrypt({name:"AES-GCM",iv:i},e,o)})).then((function(e){a(new Blob([i,new Uint8Array(e)],{type:"application/octet-stream"}))})).catch(n)}(o,a,n,r)}decryptData(o,a,n,r){!function(o,a,n,r){r.then(e).then(t).then((function(e){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(o.slice(0,16))},e,new Uint8Array(o.slice(16)))})).then(a).catch(n)}(o,a,n,r)}}}let ye=null,we=null,Ne=null,Te=null,xe=y.errorsUI.showHelp;function Le(){xe=!Ne.checked}function Ie(){we&&(clearTimeout(we),we=null),ye.classList.remove("TravelNotes-ErrorsUI-Error"),ye.classList.remove("TravelNotes-ErrorsUI-Warning"),ye.classList.remove("TravelNotes-ErrorsUI-Info"),ye.classList.remove("TravelNotes-ErrorsUI-Help"),ye.classList.add("TravelNotes-ErrorsUI-Hidden"),Ne&&(Ne.removeEventListener("change",Le,!1),Ne=null,Te=null),ye.textContent=""}function Ee(e,t){if("Error"===t&&!y.errorsUI.showError||"Warning"===t&&!y.errorsUI.showWarning||"Info"===t&&!y.errorsUI.showInfo||"Help"===t&&!y.errorsUI.showHelp||"Help"===t&&!xe)return;we&&Ie();let o=w.create("div",{id:"TravelNotes-ErrorsUI-Header"},ye);w.create("span",{id:"TravelNotes-ErrorsUI-CancelButton",textContent:"❌"},o).addEventListener("click",Ie,!1),f.sanitizeToHtmlElement(e,w.create("div",{id:"TravelNotes-ErrorsUI-Message"},ye)),ye.classList.add("TravelNotes-ErrorsUI-"+t);let a=y.errorsUI.timeOut;"Help"===t&&(Te=w.create("div",{id:"TravelNotes-ErrorsUI-HelpInputDiv"},ye),Ne=w.create("input",{id:"TravelNotes-ErrorsUI-HelpInput",type:"checkbox"},Te),Ne.addEventListener("change",Le,!1),w.create("label",{id:"TravelNotes-ErrorsUI-HelpInputLabel",for:"TravelNotes-ErrorsUI-HelpInput",textContent:E.getText("ErrorUI - Dont show again")},Te),a=y.errorsUI.helpTimeOut),ye.classList.remove("TravelNotes-ErrorsUI-Hidden"),we=setTimeout(Ie,a)}const je=new class{constructor(){Object.freeze(this)}createUI(){ye||(ye=w.create("div",{id:"TravelNotes-ErrorsUI",className:"TravelNotes-ErrorsUI-Hidden"},document.body))}showError(e){Ee(e,"Error")}showWarning(e){Ee(e,"Warning")}showInfo(e){Ee(e,"Info")}showHelp(e){Ee(e,"Help")}};function Pe(e,t){let o=null,a=null,n=null,r=null,i=null,l=null,s=null,d=null,c=null,u=null,g=null;function v(){let e=[],t=n.childNodes;for(let o=0;op(e)),o.hideWait(),o.hideError(),o.keyboardEventListenerEnabled=!0}function N(e){be().decryptData(e,b,f,fe(!1).show())}function T(e){e.stopPropagation(),o.showWait(),o.keyboardEventListenerEnabled=!1,fetch(window.location.href.substr(0,window.location.href.lastIndexOf("/")+1)+"APIKeys").then(e=>{200===e.status&&e.ok?e.arrayBuffer().then(N):f(new Error("Invalid http status"))}).catch(e=>{f(e),e instanceof Error&&console.error(e)})}function x(){o.showError(E.getText("APIKeysDialog - An error occurs when saving the keys")),o.hideWait(),o.keyboardEventListenerEnabled=!0}function L(e){o.hideError(),o.hideWait();let t=URL.createObjectURL(e),a=document.createElement("a");a.setAttribute("href",t),a.setAttribute("download","APIKeys"),a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(t),o.keyboardEventListenerEnabled=!0}function I(e){e.stopPropagation(),o.hideError(),h()&&(o.showWait(),o.keyboardEventListenerEnabled=!1,be().encryptData((new window.TextEncoder).encode(JSON.stringify(v())),L,x,fe(!0).show()))}function P(e){o.hideError(),o.showWait(),o.keyboardEventListenerEnabled=!1,e.stopPropagation();let t=new FileReader;t.onload=function(){be().decryptData(t.result,b,f,fe(!1).show())},t.readAsArrayBuffer(e.target.files[0])}function D(){r.click()}function C(e){e.stopPropagation(),p({providerName:"",providerKey:""})}function R(e){e.stopPropagation(),o.hideError(),h()&&j.saveFile("APIKeys.json",JSON.stringify(v()))}function M(e){e.stopPropagation(),o.hideError();let t=new FileReader;t.onload=function(){try{let e=JSON.parse(t.result);for(;n.firstChild;)n.removeChild(n.firstChild);e.forEach(e=>p(e))}catch(e){o.showError(e.message),e instanceof Error&&console.error(e)}},t.readAsText(e.target.files[0])}function S(){i.click()}function O(){if(o.hideError(),h())return v()}return o=pe(),o.title=E.getText("APIKeysDialog - API keys"),o.okButtonListener=O,a=w.create("div",{id:"TravelNotes-APIKeysDialog-ToolbarDiv"},o.content),window.crypto&&window.crypto.subtle&&window.crypto.subtle.importKey&&window.isSecureContext&&(t&&(l=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Reload from server"),textContent:"🔄"},a),l.addEventListener("click",T,!1)),s=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Save to file"),textContent:"💾"},a),s.addEventListener("click",I,!1),r=w.create("input",{className:"TravelNotes-BaseDialog-OpenFileInput",type:"file"},a),r.addEventListener("change",P,!1),d=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Open file"),textContent:"📂"},a),d.addEventListener("click",D,!1)),c=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - new API key"),textContent:"+"},a),c.addEventListener("click",C,!1),y.APIKeysDialog.haveUnsecureButtons&&(u=w.create("div",{className:"TravelNotes-BaseDialog-Button TravelNotes-APIKeysDialog-AtRightButton",title:E.getText("APIKeysDialog - Save to json file"),textContent:"💾"},a),u.addEventListener("click",R,!1),i=w.create("input",{className:"TravelNotes-BaseDialog-OpenFileInput",type:"file"},a),i.addEventListener("change",M,!1),g=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Open json file"),textContent:"📂"},a),g.addEventListener("click",S,!1)),n=w.create("div",{id:"TravelNotes-APIKeysDialog-DataDiv"},o.content),e.forEach(e=>p(e)),je.showHelp("

"+E.getText("Help - Complete the APIKeys1")+"

"+E.getText("Help - Complete the APIKeys2")+"

"+E.getText("Help - Complete the APIKeys3")+"

"),o}const De=new class{constructor(){Object.freeze(this)}dispatch(e,t){let o=function(e){return-1<["showitinerary","updateitinerary","showtravelnotes","updatetravelnotes","showsearch","updatesearch","setrouteslist","setprovider","providersadded","travelnameupdated","settransitmode"].indexOf(e)?document.querySelector("#TravelNotes-UI-MainDiv"):-1<["removeobject","removeallobjects","zoomto","additinerarypointmarker","addsearchpointmarker","addrectangle","addwaypoint","layerchange","geolocationstatuschanged","geolocationpositionchanged","routeupdated","routepropertiesupdated","noteupdated","roadbookupdate","profileclosed"].indexOf(e)?document:null}(e);if(o){let a=new Event(e);t&&(a.data=t),o.dispatchEvent(a)}}};let Ce=new Map,Re=!1;function Me(e){return Ce.get(e.toLowerCase())}function Se(e,t){Ce.set(e.toLowerCase(),t)}function Oe(e){sessionStorage.clear(),Ce.clear();let t=j.storageAvailable("sessionStorage")&&y.APIKeys.saveToSessionStorage;e.forEach(e=>{t&&sessionStorage.setItem(e.providerName.toLowerCase()+"ProviderKey",btoa(e.providerKey)),Se(e.providerName,e.providerKey)}),he.providers.forEach(e=>{e.providerKey=Me(e.name)||""}),De.dispatch("providersadded")}function Ae(e){Oe(JSON.parse((new TextDecoder).decode(e)))}function ke(e){e instanceof Error&&console.error(e),e&&"Canceled by user"!==e&&je.showError(E.getText("APIKeysManager - An error occurs when reading the APIKeys file"))}function Ue(e){window.isSecureContext&&window.crypto&&window.crypto.subtle&&window.crypto.subtle.importKey&&be().decryptData(e,Ae,ke,fe(!1).show())}const Be=new class{constructor(){Object.freeze(this)}hasKey(e){return Ce.has(e.toLowerCase())}getUrl(e){if(e.providerKeyNeeded){let t=Ce.get(e.providerName.toLowerCase());return t?e.url.replace("{providerKey}",t):null}return e.url}setKeysFromServerFile(){let e=!1;0!==function(){let e=0;for(let t=0;t{e.providerKey=Me(e.name)||""}),e}()&&(De.dispatch("providersadded"),e=!0),fetch(window.location.href.substr(0,window.location.href.lastIndexOf("/")+1)+"APIKeys").then(t=>{200===t.status&&t.ok&&(Re=!0,e||t.arrayBuffer().then(Ue))}).catch(e=>{e instanceof Error&&console.error(e)})}setKeysFromDialog(){let e=[];Ce.forEach((t,o)=>e.push({providerName:o,providerKey:t})),e.sort((e,t)=>e.providerName.localeCompare(t.providerName)),Pe(e,Re).show().then(e=>Oe(e)).catch(e=>{e instanceof Error&&console.error(e)})}addProvider(e){let t=e.name.toLowerCase(),o=Me(t);e.providerKeyNeeded&&!o&&j.storageAvailable("sessionStorage")&&(o=sessionStorage.getItem(t),o&&(o=atob(o))),e.providerKeyNeeded&&o&&(e.providerKey=o),he.providers.set(e.name.toLowerCase(),e)}};const He=new class{constructor(){Object.freeze(this)}getRoute(e){let t=null;return t=he.travel.routes.getAt(e),t||e===he.travel.editedRoute.objId&&(t=he.travel.editedRoute),t}getNoteAndRoute(e){let t=null,o=null;if(t=he.travel.notes.getAt(e),!t){let a=he.travel.routes.iterator;for(;!a.done&&!t;)t=a.value.notes.getAt(e),t&&(o=a.value);t||(t=he.travel.editedRoute.notes.getAt(e),t&&(o=he.travel.editedRoute))}return Object.freeze({note:t,route:o})}getWayPoint(e){let t=he.travel.editedRoute.wayPoints.getAt(e);if(!t){let o=he.travel.routes.iterator;for(;!o.done&&!t;)t=o.value.wayPoints.getAt(e)}return t}};function ze(){let e="",t="",o=null;function a(a){o=He.getRoute(a),o&&(t='time="'+(new Date).toISOString()+'" ',e='\n',e+='',function(){let a=o.wayPoints.iterator;for(;!a.done;)e+='\n\t"}(),function(){e+="\n\t";let a=o.itinerary.maneuvers.iterator;for(;!a.done;){let n=o.itinerary.itineraryPoints.getAt(a.value.itineraryPointObjId),r=a.value.instruction.replace("&","&").replace('"',"'").replace('"',""e;").replace(">",">").replace("<","<");e+='\n\t\t'}e+="\n\t"}(),function(){e+="\n\t",e+="\n\t\t";let a=o.itinerary.itineraryPoints.iterator;for(;!a.done;)e+='\n\t\t\t";e+="\n\t\t",e+="\n\t"}(),e+="\n",function(){let t=(""===he.travel.name?"":he.travel.name+" - ")+o.computedName;""===t&&(t="TravelNote"),t+=".gpx",j.saveFile(t,e)}())}return new class{constructor(){Object.freeze(this)}routeToGpx(e){a(e)}}}class Fe{constructor(e,t,o){this.red="number"==typeof e&&255>=e?e:255,this.green="number"==typeof t&&255>=t?t:255,this.blue="number"==typeof o&&255>=o?o:255,Object.seal(this)}get cssColor(){return"#"+this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")}set cssColor(e){this.red=parseInt(e.substr(1,2),16),this.green=parseInt(e.substr(3,2),16),this.blue=parseInt(e.substr(5,2),16)}clone(){return new Fe(this.red,this.green,this.blue)}copyTo(e){e.red=this.red,e.green=this.green,e.blue=this.blue}}function Ve(e){let t=null,o=null,a=null,n=null,r=null,i=null;function l(){return e.color=document.querySelector("#TravelNotes-ColorDialog-ColorSampleDiv").color.cssColor,e.computedName!==a.value&&(e.name=a.value),e.width=parseInt(n.value),e.chain=r.checked,e.dashArray=i.selectedIndex,e.validateData(),e}return t=function(e){let t=null,o=new Fe;o.cssColor=e;let a=null,n=[],r=null,i=null,l=null,s=null;function d(e){o=e.target.color.clone(),r.value=o.red,i.value=o.green,l.value=o.blue,s.style["background-color"]=o.cssColor,s.color=o}function c(e){for(let t=0;t<6;++t)for(let o=0;o<6;++o){let a=n[6*t+o];a.color.red=e,a.style["background-color"]=a.color.cssColor}}function u(e){c(Math.ceil(2.55*e.target.valueAsNumber))}function g(e){c(255-e.target.color.blue)}function v(){o.red=parseInt(r.value),o.green=parseInt(i.value),o.blue=parseInt(l.value),s.style["background-color"]=o.cssColor,s.color=o}return t=pe(),t.title=E.getText("ColorDialog - Colors"),a=w.create("div",{id:"TravelNotes-ColorDialog-ColorDiv"},t.content),function(){let e=w.create("div",null,a),t=new Fe(y.colorDialog.initialRed,0,0);for(let o=0;o<6;++o){let o=w.create("div",{className:"TravelNotes-ColorDialog-RowColorDiv"},e);t.green=0;for(let e=0;e<6;++e){let e=w.create("div",{className:"TravelNotes-ColorDialog-CellColorDiv"},o);e.color=t.clone(),e.style["background-color"]=t.cssColor,e.addEventListener("click",d,!1),t.green+=51,n.push(e)}t.blue+=51}}(),y.colorDialog.haveSlider?function(){let e=w.create("div",null,a),t=Math.ceil(y.colorDialog.initialRed*(100/255)),o=w.create("input",{type:"range",className:"TravelNotes-ColorDialog-SliderInput",value:t,min:0,max:100,step:20},e);o.addEventListener("input",u,!1),o.focus()}():function(){let e=w.create("div",null,a),t=new Fe(255,0,0),o=w.create("div",{className:"TravelNotes-ColorDialog-RowColorDiv",id:"TravelNotes-ColorDialog-RedButtonsRowDiv"},e);for(let e=0;e<6;++e){let e=w.create("div",{className:"TravelNotes-ColorDialog-CellColorDiv"},o);e.color=t.clone(),e.style["background-color"]=e.color.cssColor,e.addEventListener("click",g,!1),t.green+=51,t.blue+=51}}(),function(){let e=w.create("div",null,a);w.create("text",{value:E.getText("ColorDialog - Red")},e),r=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.red,min:0,max:255},e),r.addEventListener("input",v,!1),w.create("text",{value:E.getText("ColorDialog - Green")},e),i=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.green,min:0,max:255},e),i.addEventListener("input",v,!1),w.create("text",{value:E.getText("ColorDialog - Blue")},e),l=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.blue,min:0,max:255},e),l.addEventListener("input",v,!1)}(),s=w.create("div",{id:"TravelNotes-ColorDialog-ColorSampleDiv"},a),s.style["background-color"]=o.cssColor,s.color=o,t}(e.color),t.title=E.getText("RoutePropertiesDialog - Route properties"),t.okButtonListener=l,o=w.create("div",{id:"TravelNotes-RoutePropertiesDialog-MainDataDiv"}),t.content.insertBefore(o,t.content.firstChild),function(){let t=w.create("div",null,o);w.create("div",{textContent:E.getText("RoutePropertiesDialog - Name")},t);let n=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv",id:"TravelNotes-RoutePropertiesDialog-NameInputDiv"},t);a=w.create("input",{type:"text",id:"TravelNotes-RoutePropertiesDialog-NameInput",value:e.computedName},n)}(),function(){let t=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv"},o);w.create("text",{value:E.getText("RoutePropertiesDialog - Width")},w.create("span",null,t)),n=w.create("input",{type:"number",id:"TravelNotes-RoutePropertiesDialog-WidthInput",value:e.width,min:1,max:40},t)}(),function(){let t=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv"},o);w.create("text",{value:E.getText("RoutePropertiesDialog - Linetype")},w.create("span",null,t)),i=w.create("select",null,t);let a=y.route.dashChoices;for(let e=0;ee.push(t.latLng)),o.notes.forEach(e=>t(e))}return new class{constructor(){Object.freeze(this)}zoomToLatLng(e){De.dispatch("zoomto",{latLng:e})}zoomToManeuver(e){let t=he.travel.editedRoute.itinerary.maneuvers.getAt(e).itineraryPointObjId,o=he.travel.editedRoute.itinerary.itineraryPoints.getAt(t).latLng;De.dispatch("zoomto",{latLng:o})}zoomToNote(o){e=[],t(He.getNoteAndRoute(o).note),De.dispatch("zoomto",{geometry:[e]})}zoomToRoute(t){e=[],o(He.getRoute(t)),De.dispatch("zoomto",{geometry:[e]})}zoomToTravel(){e=[],he.travel.routes.forEach(e=>o(e)),-1!==he.travel.editedRouteObjId&&o(he.travel.editedRoute),he.travel.notes.forEach(e=>t(e)),De.dispatch("zoomto",{geometry:[e]})}zoomToPoi(e){De.dispatch("zoomto",e)}}} + */function be(){function e(e){return window.crypto.subtle.importKey("raw",e,{name:"PBKDF2"},!1,["deriveKey"])}function t(e){return window.crypto.subtle.deriveKey({name:"PBKDF2",salt:(new window.TextEncoder).encode("Tire la chevillette la bobinette cherra. Le Petit Chaperon rouge tira la chevillette."),iterations:1e6,hash:"SHA-256"},e,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}return new class{constructor(){Object.freeze(this)}encryptData(o,a,n,r){!function(o,a,n,r){let i=window.crypto.getRandomValues(new Uint8Array(16));r.then(e).then(t).then((function(e){return window.crypto.subtle.encrypt({name:"AES-GCM",iv:i},e,o)})).then((function(e){a(new Blob([i,new Uint8Array(e)],{type:"application/octet-stream"}))})).catch(n)}(o,a,n,r)}decryptData(o,a,n,r){!function(o,a,n,r){r.then(e).then(t).then((function(e){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(o.slice(0,16))},e,new Uint8Array(o.slice(16)))})).then(a).catch(n)}(o,a,n,r)}}}let ye=null,we=null,Ne=null,Te=null,xe=y.errorsUI.showHelp;function Le(){xe=!Ne.checked}function Ie(){we&&(clearTimeout(we),we=null),ye.classList.remove("TravelNotes-ErrorsUI-Error"),ye.classList.remove("TravelNotes-ErrorsUI-Warning"),ye.classList.remove("TravelNotes-ErrorsUI-Info"),ye.classList.remove("TravelNotes-ErrorsUI-Help"),ye.classList.add("TravelNotes-ErrorsUI-Hidden"),Ne&&(Ne.removeEventListener("change",Le,!1),Ne=null,Te=null),ye.textContent=""}function Ee(e,t){if("Error"===t&&!y.errorsUI.showError||"Warning"===t&&!y.errorsUI.showWarning||"Info"===t&&!y.errorsUI.showInfo||"Help"===t&&!y.errorsUI.showHelp||"Help"===t&&!xe)return;we&&Ie();let o=w.create("div",{id:"TravelNotes-ErrorsUI-Header"},ye);w.create("span",{id:"TravelNotes-ErrorsUI-CancelButton",textContent:"❌"},o).addEventListener("click",Ie,!1),f.sanitizeToHtmlElement(e,w.create("div",{id:"TravelNotes-ErrorsUI-Message"},ye)),ye.classList.add("TravelNotes-ErrorsUI-"+t);let a=y.errorsUI.timeOut;"Help"===t&&(Te=w.create("div",{id:"TravelNotes-ErrorsUI-HelpInputDiv"},ye),Ne=w.create("input",{id:"TravelNotes-ErrorsUI-HelpInput",type:"checkbox"},Te),Ne.addEventListener("change",Le,!1),w.create("label",{id:"TravelNotes-ErrorsUI-HelpInputLabel",for:"TravelNotes-ErrorsUI-HelpInput",textContent:E.getText("ErrorUI - Dont show again")},Te),a=y.errorsUI.helpTimeOut),ye.classList.remove("TravelNotes-ErrorsUI-Hidden"),we=setTimeout(Ie,a)}const je=new class{constructor(){Object.freeze(this)}createUI(){ye||(ye=w.create("div",{id:"TravelNotes-ErrorsUI",className:"TravelNotes-ErrorsUI-Hidden"},document.body))}showError(e){Ee(e,"Error")}showWarning(e){Ee(e,"Warning")}showInfo(e){Ee(e,"Info")}showHelp(e){Ee(e,"Help")}};function Pe(e,t){let o=null,a=null,n=null,r=null,i=null,l=null,s=null,d=null,c=null,u=null,g=null;function v(){let e=[],t=n.childNodes;for(let o=0;op(e)),o.hideWait(),o.hideError(),o.keyboardEventListenerEnabled=!0}function N(e){be().decryptData(e,b,f,fe(!1).show())}function T(e){e.stopPropagation(),o.showWait(),o.keyboardEventListenerEnabled=!1,fetch(window.location.href.substr(0,window.location.href.lastIndexOf("/")+1)+"APIKeys").then(e=>{200===e.status&&e.ok?e.arrayBuffer().then(N):f(new Error("Invalid http status"))}).catch(e=>{f(e),e instanceof Error&&console.error(e)})}function x(){o.showError(E.getText("APIKeysDialog - An error occurs when saving the keys")),o.hideWait(),o.keyboardEventListenerEnabled=!0}function L(e){o.hideError(),o.hideWait();let t=URL.createObjectURL(e),a=document.createElement("a");a.setAttribute("href",t),a.setAttribute("download","APIKeys"),a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(t),o.keyboardEventListenerEnabled=!0}function I(e){e.stopPropagation(),o.hideError(),h()&&(o.showWait(),o.keyboardEventListenerEnabled=!1,be().encryptData((new window.TextEncoder).encode(JSON.stringify(v())),L,x,fe(!0).show()))}function P(e){o.hideError(),o.showWait(),o.keyboardEventListenerEnabled=!1,e.stopPropagation();let t=new FileReader;t.onload=function(){be().decryptData(t.result,b,f,fe(!1).show())},t.readAsArrayBuffer(e.target.files[0])}function D(){r.click()}function C(e){e.stopPropagation(),p({providerName:"",providerKey:""})}function R(e){e.stopPropagation(),o.hideError(),h()&&j.saveFile("APIKeys.json",JSON.stringify(v()))}function M(e){e.stopPropagation(),o.hideError();let t=new FileReader;t.onload=function(){try{let e=JSON.parse(t.result);for(;n.firstChild;)n.removeChild(n.firstChild);e.forEach(e=>p(e))}catch(e){o.showError(e.message),e instanceof Error&&console.error(e)}},t.readAsText(e.target.files[0])}function S(){i.click()}function O(){if(o.hideError(),h())return v()}return o=pe(),o.title=E.getText("APIKeysDialog - API keys"),o.okButtonListener=O,a=w.create("div",{id:"TravelNotes-APIKeysDialog-ToolbarDiv"},o.content),window.crypto&&window.crypto.subtle&&window.crypto.subtle.importKey&&window.isSecureContext&&(t&&(l=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Reload from server"),textContent:"🔄"},a),l.addEventListener("click",T,!1)),s=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Save to file"),textContent:"💾"},a),s.addEventListener("click",I,!1),r=w.create("input",{className:"TravelNotes-BaseDialog-OpenFileInput",type:"file"},a),r.addEventListener("change",P,!1),d=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Open file"),textContent:"📂"},a),d.addEventListener("click",D,!1)),c=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - new API key"),textContent:"+"},a),c.addEventListener("click",C,!1),y.APIKeysDialog.haveUnsecureButtons&&(u=w.create("div",{className:"TravelNotes-BaseDialog-Button TravelNotes-APIKeysDialog-AtRightButton",title:E.getText("APIKeysDialog - Save to json file"),textContent:"💾"},a),u.addEventListener("click",R,!1),i=w.create("input",{className:"TravelNotes-BaseDialog-OpenFileInput",type:"file"},a),i.addEventListener("change",M,!1),g=w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("APIKeysDialog - Open json file"),textContent:"📂"},a),g.addEventListener("click",S,!1)),n=w.create("div",{id:"TravelNotes-APIKeysDialog-DataDiv"},o.content),e.forEach(e=>p(e)),je.showHelp("

"+E.getText("Help - Complete the APIKeys1")+"

"+E.getText("Help - Complete the APIKeys2")+"

"+E.getText("Help - Complete the APIKeys3")+"

"),o}const De=new class{constructor(){Object.freeze(this)}dispatch(e,t){let o=function(e){return-1<["showitinerary","updateitinerary","showtravelnotes","updatetravelnotes","showsearch","updatesearch","setrouteslist","setprovider","providersadded","travelnameupdated","settransitmode"].indexOf(e)?document.querySelector("#TravelNotes-UI-MainDiv"):-1<["removeobject","removeallobjects","zoomto","additinerarypointmarker","addsearchpointmarker","addrectangle","addwaypoint","layerchange","geolocationstatuschanged","geolocationpositionchanged","routeupdated","routepropertiesupdated","noteupdated","roadbookupdate","profileclosed"].indexOf(e)?document:null}(e);if(o){let a=new Event(e);t&&(a.data=t),o.dispatchEvent(a)}}};let Ce=new Map,Re=!1;function Me(e){return Ce.get(e.toLowerCase())}function Se(e,t){Ce.set(e.toLowerCase(),t)}function Oe(e){sessionStorage.clear(),Ce.clear();let t=j.storageAvailable("sessionStorage")&&y.APIKeys.saveToSessionStorage;e.forEach(e=>{t&&sessionStorage.setItem(e.providerName.toLowerCase()+"ProviderKey",btoa(e.providerKey)),Se(e.providerName,e.providerKey)}),he.providers.forEach(e=>{e.providerKey=Me(e.name)||""}),De.dispatch("providersadded")}function Ae(e){Oe(JSON.parse((new TextDecoder).decode(e)))}function ke(e){e instanceof Error&&console.error(e),e&&"Canceled by user"!==e&&je.showError(E.getText("APIKeysManager - An error occurs when reading the APIKeys file"))}function Ue(e){window.isSecureContext&&window.crypto&&window.crypto.subtle&&window.crypto.subtle.importKey&&be().decryptData(e,Ae,ke,fe(!1).show())}const Be=new class{constructor(){Object.freeze(this)}hasKey(e){return Ce.has(e.toLowerCase())}getUrl(e){if(e.providerKeyNeeded){let t=Ce.get(e.providerName.toLowerCase());return t?e.url.replace("{providerKey}",t):null}return e.url}setKeysFromServerFile(){let e=!1;0!==function(){let e=0;for(let t=0;t{e.providerKey=Me(e.name)||""}),e}()&&(De.dispatch("providersadded"),e=!0),fetch(window.location.href.substr(0,window.location.href.lastIndexOf("/")+1)+"APIKeys").then(t=>{200===t.status&&t.ok&&(Re=!0,e||t.arrayBuffer().then(Ue))}).catch(e=>{e instanceof Error&&console.error(e)})}setKeysFromDialog(){let e=[];Ce.forEach((t,o)=>e.push({providerName:o,providerKey:t})),e.sort((e,t)=>e.providerName.localeCompare(t.providerName)),Pe(e,Re).show().then(e=>Oe(e)).catch(e=>{e instanceof Error&&console.error(e)})}addProvider(e){let t=e.name.toLowerCase(),o=Me(t);e.providerKeyNeeded&&!o&&j.storageAvailable("sessionStorage")&&(o=sessionStorage.getItem(t),o&&(o=atob(o))),e.providerKeyNeeded&&o&&(e.providerKey=o),he.providers.set(e.name.toLowerCase(),e)}};const He=new class{constructor(){Object.freeze(this)}getRoute(e){let t=null;return t=he.travel.routes.getAt(e),t||e===he.travel.editedRoute.objId&&(t=he.travel.editedRoute),t}getNoteAndRoute(e){let t=null,o=null;if(t=he.travel.notes.getAt(e),!t){let a=he.travel.routes.iterator;for(;!a.done&&!t;)t=a.value.notes.getAt(e),t&&(o=a.value);t||(t=he.travel.editedRoute.notes.getAt(e),t&&(o=he.travel.editedRoute))}return Object.freeze({note:t,route:o})}getWayPoint(e){let t=he.travel.editedRoute.wayPoints.getAt(e);if(!t){let o=he.travel.routes.iterator;for(;!o.done&&!t;)t=o.value.wayPoints.getAt(e)}return t}};function ze(){let e="",t="",o=null;function a(a){o=He.getRoute(a),o&&(t='time="'+(new Date).toISOString()+'" ',e='\n',e+='',function(){let a=o.wayPoints.iterator;for(;!a.done;)e+='\n\t"}(),function(){e+="\n\t";let a=o.itinerary.maneuvers.iterator;for(;!a.done;){let n=o.itinerary.itineraryPoints.getAt(a.value.itineraryPointObjId),r=a.value.instruction.replaceAll(/\u0027/g,"'").replaceAll(/"/g,""").replaceAll(//g,">");e+='\n\t\t'}e+="\n\t"}(),function(){e+="\n\t",e+="\n\t\t";let a=o.itinerary.itineraryPoints.iterator;for(;!a.done;)e+='\n\t\t\t";e+="\n\t\t",e+="\n\t"}(),e+="\n",function(){let t=(""===he.travel.name?"":he.travel.name+" - ")+o.computedName;""===t&&(t="TravelNote"),t+=".gpx",j.saveFile(t,e)}())}return new class{constructor(){Object.freeze(this)}routeToGpx(e){a(e)}}}class Fe{constructor(e,t,o){this.red="number"==typeof e&&255>=e?e:255,this.green="number"==typeof t&&255>=t?t:255,this.blue="number"==typeof o&&255>=o?o:255,Object.seal(this)}get cssColor(){return"#"+this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")}set cssColor(e){this.red=parseInt(e.substr(1,2),16),this.green=parseInt(e.substr(3,2),16),this.blue=parseInt(e.substr(5,2),16)}clone(){return new Fe(this.red,this.green,this.blue)}copyTo(e){e.red=this.red,e.green=this.green,e.blue=this.blue}}function Ve(e){let t=null,o=null,a=null,n=null,r=null,i=null;function l(){return e.color=document.querySelector("#TravelNotes-ColorDialog-ColorSampleDiv").color.cssColor,e.computedName!==a.value&&(e.name=a.value),e.width=parseInt(n.value),e.chain=r.checked,e.dashArray=i.selectedIndex,e.validateData(),e}return t=function(e){let t=null,o=new Fe;o.cssColor=e;let a=null,n=[],r=null,i=null,l=null,s=null;function d(e){o=e.target.color.clone(),r.value=o.red,i.value=o.green,l.value=o.blue,s.style["background-color"]=o.cssColor,s.color=o}function c(e){for(let t=0;t<6;++t)for(let o=0;o<6;++o){let a=n[6*t+o];a.color.red=e,a.style["background-color"]=a.color.cssColor}}function u(e){c(Math.ceil(2.55*e.target.valueAsNumber))}function g(e){c(255-e.target.color.blue)}function v(){o.red=parseInt(r.value),o.green=parseInt(i.value),o.blue=parseInt(l.value),s.style["background-color"]=o.cssColor,s.color=o}return t=pe(),t.title=E.getText("ColorDialog - Colors"),a=w.create("div",{id:"TravelNotes-ColorDialog-ColorDiv"},t.content),function(){let e=w.create("div",null,a),t=new Fe(y.colorDialog.initialRed,0,0);for(let o=0;o<6;++o){let o=w.create("div",{className:"TravelNotes-ColorDialog-RowColorDiv"},e);t.green=0;for(let e=0;e<6;++e){let e=w.create("div",{className:"TravelNotes-ColorDialog-CellColorDiv"},o);e.color=t.clone(),e.style["background-color"]=t.cssColor,e.addEventListener("click",d,!1),t.green+=51,n.push(e)}t.blue+=51}}(),y.colorDialog.haveSlider?function(){let e=w.create("div",null,a),t=Math.ceil(y.colorDialog.initialRed*(100/255)),o=w.create("input",{type:"range",className:"TravelNotes-ColorDialog-SliderInput",value:t,min:0,max:100,step:20},e);o.addEventListener("input",u,!1),o.focus()}():function(){let e=w.create("div",null,a),t=new Fe(255,0,0),o=w.create("div",{className:"TravelNotes-ColorDialog-RowColorDiv",id:"TravelNotes-ColorDialog-RedButtonsRowDiv"},e);for(let e=0;e<6;++e){let e=w.create("div",{className:"TravelNotes-ColorDialog-CellColorDiv"},o);e.color=t.clone(),e.style["background-color"]=e.color.cssColor,e.addEventListener("click",g,!1),t.green+=51,t.blue+=51}}(),function(){let e=w.create("div",null,a);w.create("text",{value:E.getText("ColorDialog - Red")},e),r=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.red,min:0,max:255},e),r.addEventListener("input",v,!1),w.create("text",{value:E.getText("ColorDialog - Green")},e),i=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.green,min:0,max:255},e),i.addEventListener("input",v,!1),w.create("text",{value:E.getText("ColorDialog - Blue")},e),l=w.create("input",{type:"number",className:"TravelNotes-ColorDialog-NumberInput",value:o.blue,min:0,max:255},e),l.addEventListener("input",v,!1)}(),s=w.create("div",{id:"TravelNotes-ColorDialog-ColorSampleDiv"},a),s.style["background-color"]=o.cssColor,s.color=o,t}(e.color),t.title=E.getText("RoutePropertiesDialog - Route properties"),t.okButtonListener=l,o=w.create("div",{id:"TravelNotes-RoutePropertiesDialog-MainDataDiv"}),t.content.insertBefore(o,t.content.firstChild),function(){let t=w.create("div",null,o);w.create("div",{textContent:E.getText("RoutePropertiesDialog - Name")},t);let n=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv",id:"TravelNotes-RoutePropertiesDialog-NameInputDiv"},t);a=w.create("input",{type:"text",id:"TravelNotes-RoutePropertiesDialog-NameInput",value:e.computedName},n)}(),function(){let t=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv"},o);w.create("text",{value:E.getText("RoutePropertiesDialog - Width")},w.create("span",null,t)),n=w.create("input",{type:"number",id:"TravelNotes-RoutePropertiesDialog-WidthInput",value:e.width,min:1,max:40},t)}(),function(){let t=w.create("div",{className:"TravelNotes-RoutePropertiesDialog-DataDiv"},o);w.create("text",{value:E.getText("RoutePropertiesDialog - Linetype")},w.create("span",null,t)),i=w.create("select",null,t);let a=y.route.dashChoices;for(let e=0;ee.push(t.latLng)),o.notes.forEach(e=>t(e))}return new class{constructor(){Object.freeze(this)}zoomToLatLng(e){De.dispatch("zoomto",{latLng:e})}zoomToManeuver(e){let t=he.travel.editedRoute.itinerary.maneuvers.getAt(e).itineraryPointObjId,o=he.travel.editedRoute.itinerary.itineraryPoints.getAt(t).latLng;De.dispatch("zoomto",{latLng:o})}zoomToNote(o){e=[],t(He.getNoteAndRoute(o).note),De.dispatch("zoomto",{geometry:[e]})}zoomToRoute(t){e=[],o(He.getRoute(t)),De.dispatch("zoomto",{geometry:[e]})}zoomToTravel(){e=[],he.travel.routes.forEach(e=>o(e)),-1!==he.travel.editedRouteObjId&&o(he.travel.editedRoute),he.travel.notes.forEach(e=>t(e)),De.dispatch("zoomto",{geometry:[e]})}zoomToPoi(e){De.dispatch("zoomto",e)}}} /** @------------------------------------------------------------------------------------------------------------------------------ @@ -93,7 +93,7 @@ function Ze(){let e=null,t=null,o=null,a=0,n=0,r=0,i=0,l=0,s=0,d=null,c=null;fun @------------------------------------------------------------------------------------------------------------------------------ */ -function oo(){let e=T(),t=null,o=null,a=null,n=null,r=null,i=null,s=null,d=null;function c(e){let o=t.getBoundingClientRect(),a=(e.clientX-o.x-l.margin/(2*l.margin+l.width)*o.width)/(l.width/(2*l.margin+l.width)*o.width)*d.distance;return me.getLatLngElevAtDist(d,a)}function g(e){e.preventDefault(),e.stopPropagation();let t=c(e);t&&(e.routeObjId=d.objId,e.latlng={lat:t.latLng[0],lng:t.latLng[1]},e.originalEvent={clientX:e.clientX,clientY:e.clientY},function(e){let t=_e();return lt(e,[{context:to,name:E.getText("ProfileContextMenu - Add a note to the route at this point"),action:to.newRouteNote,param:{routeObjId:e.routeObjId,lat:e.latlng.lat,lng:e.latlng.lng}},{context:t,name:E.getText("ProfileContextMenu - Zoom to this point"),action:t.zoomToLatLng,param:[e.latlng.lat,e.latlng.lng]}])}(e).show())}function v(){De.dispatch("removeobject",{objId:e})}function h(i){let s=t.getBoundingClientRect(),g=c(i);if(g){De.dispatch("removeobject",{objId:e}),De.dispatch("additinerarypointmarker",{objId:e,latLng:g.latLng}),o&&(t.removeChild(o),t.removeChild(r),t.removeChild(a),t.removeChild(n));let c=(2*l.margin+l.width)*(i.clientX-s.x)/s.width,v=l.margin+l.height;o=document.createElementNS(u,"polyline"),o.setAttributeNS(null,"points",String(c)+","+l.margin+" "+c+","+v),o.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-markerPolyline"),t.appendChild(o);let h=g.routeDistance>d.distance/2?"end":"start",m=g.routeDistance>d.distance/2?-l.xDeltaText:l.xDeltaText;r=document.createElementNS(u,"text"),r.appendChild(document.createTextNode(j.formatDistance(g.routeDistance))),r.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),r.setAttributeNS(null,"x",c+m),r.setAttributeNS(null,"y",l.margin+l.yDeltaText),r.setAttributeNS(null,"text-anchor",h),t.appendChild(r),a=document.createElementNS(u,"text"),a.appendChild(document.createTextNode("Alt. "+g.elev.toFixed(0)+" m.")),a.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),a.setAttributeNS(null,"x",c+m),a.setAttributeNS(null,"y",l.margin+2*l.yDeltaText),a.setAttributeNS(null,"text-anchor",h),t.appendChild(a),n=document.createElementNS(u,"text"),n.appendChild(document.createTextNode("Pente "+g.ascent.toFixed(0)+" % ")),n.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),n.setAttributeNS(null,"x",c+m),n.setAttributeNS(null,"y",l.margin+3*l.yDeltaText),n.setAttributeNS(null,"text-anchor",h),t.appendChild(n)}}function m(){t&&(t.removeEventListener("contextmenu",g,!1),t.removeEventListener("mousemove",h,!1),t.removeEventListener("mouseleave",v,!1),De.dispatch("removeobject",{objId:e}),i.content.removeChild(s),i.content.removeChild(t)),t=null,o=null,n=null,r=null,a=null,s=null}return i=Ze(),i.createWindow(),i.onClose=function(){m(),De.dispatch("profileclosed",{objId:d.objId})},i.onUpdate=function(e){m(),d=e[0],t=St().createSvg(d),i.header.textContent=E.getText("ProfileWindow - Profile {name}",{name:d.computedName}),i.content.appendChild(t),t.addEventListener("contextmenu",g,!1),t.addEventListener("mousemove",h,!1),t.addEventListener("mouseleave",v,!1),s=w.create("div",{className:"TravelNotes-ProfileWindow-Ascent",textContent:E.getText("ProfileWindow - Ascent: {ascent} m. - Descent: {descent} m. - Distance: {distance}",{ascent:d.itinerary.ascent.toFixed(0),descent:d.itinerary.descent.toFixed(0),distance:j.formatDistance(d.distance)})}),i.content.appendChild(s)},i}let ao=new Map,no=St();const ro=new class{constructor(){Object.freeze(this)}createProfile(e){let t=ao.get(e.objId);if(e.itinerary.hasProfile){y.route.elev.smooth&&no.smooth(e),e.itinerary.ascent=0,e.itinerary.descent=0;let o=e.itinerary.itineraryPoints.first.elev;e.itinerary.itineraryPoints.forEach(t=>{let a=t.elev-o;0>a?e.itinerary.descent-=a:e.itinerary.ascent+=a,o=t.elev}),t&&t.update(e)}else t&&t.close()}updateProfile(e,t){let o=ao.get(e);o&&(ao.delete(e),t&&t.itinerary.hasProfile?(o.update(t),ao.set(t.objId,o)):o.close())}deleteProfile(e){let t=ao.get(e);t&&t.close()}deleteAllProfiles(){ao.forEach(e=>e.close())}showProfile(e){let t=ao.get(e);t||(t=oo());let o=He.getRoute(e);t.update(o),ao.set(e,t)}onProfileClosed(e){ao.delete(e)}};let io=null;const lo=new class{constructor(){Object.freeze(this)}createUI(){io=w.create("div",{id:"TravelNotes-AttributionsUI"},document.body),this.attributions=""}set attributions(e){let t='© Leaflet | © OpenStreetMap contributors '+e+'| © Travel & Notes';for(;io.firstChild;)io.removeChild(io.firstChild);f.sanitizeToHtmlElement(t,io)}};class so{constructor(e){if(!e.name||"string"!=typeof e.name)throw new Error("invalid name for layer");if(this.name=f.sanitizeToJsString(e.name),!e.service||"wms"!==e.service&&"wmts"!==e.service)throw new Error("invalid service for layer "+this.name);if(this.service=e.service,!e.url||"string"!=typeof e.url)throw new Error("invalid url for layer "+this.name);if(this.url=e.url,"wms"===this.service){if(!(e.wmsOptions&&e.wmsOptions.layers&&"string"==typeof e.wmsOptions.layers&&e.wmsOptions.format&&"string"==typeof e.wmsOptions.format&&e.wmsOptions.transparent&&"boolean"==typeof e.wmsOptions.transparent))throw new Error("invalid wmsOptions for layer "+this.name);this.wmsOptions=e.wmsOptions,this.wmsOptions.layers=f.sanitizeToJsString(this.wmsOptions.layers),this.wmsOptions.format=f.sanitizeToJsString(this.wmsOptions.format)}try{e.bounds&&"number"==typeof e.bounds[0][0]&&"number"==typeof e.bounds[0][1]&&"number"==typeof e.bounds[1][0]&&"number"==typeof e.bounds[1][1]&&(this.bounds=e.bounds)}catch(e){throw new Error("invalid bounds for layer "+this.name)}if(e.minZoom&&"number"==typeof e.minZoom&&(this.minZoom=e.minZoom),e.maxZoom&&"number"==typeof e.maxZoom&&(this.maxZoom=e.maxZoom),!(e.toolbar&&e.toolbar.text&&"string"==typeof e.toolbar.text&&e.toolbar.color&&"string"==typeof e.toolbar.color&&e.toolbar.backgroundColor&&"string"==typeof e.toolbar.backgroundColor))throw new Error("invalid toolbar for layer "+this.name);if(this.toolbar=e.toolbar,this.toolbar.text=f.sanitizeToJsString(this.toolbar.text),this.toolbar.color=f.sanitizeToColor(this.toolbar.color)||"#000000",this.toolbar.backgroundColor=f.sanitizeToColor(this.toolbar.backgroundColor)||"#ffffff",!e.providerName||"string"!=typeof e.providerName)throw new Error("invalid providerName for layer "+this.name);if(this.providerName=f.sanitizeToJsString(e.providerName),"boolean"!=typeof e.providerKeyNeeded)throw new Error("invalid providerKeyNeeded for layer "+this.name);if(this.providerKeyNeeded=e.providerKeyNeeded,""===e.attribution)this.attribution="";else{if(!e.attribution||"string"!=typeof e.attribution)throw new Error("invalid attribution for layer "+this.name);this.attribution=f.sanitizeToHtmlString(e.attribution).htmlString}if(e.getCapabilitiesUrl&&"string"==typeof e.getCapabilitiesUrl&&(this.getCapabilitiesUrl=f.sanitizeToUrl(e.getCapabilitiesUrl).url,""===this.getCapabilitiesUrl))throw new Error("invalid getCapabilitiesUrl for layer "+this.name);Object.freeze(this)}}function co(e){return new so(e)}let uo=[co({service:"wmts",url:"https://{s}.tile.osm.org/{z}/{x}/{y}.png",name:"OSM - Color",toolbar:{text:"OSM",color:"#ff0000",backgroundColor:"#ffffff"},providerName:"OSM",providerKeyNeeded:!1,attribution:""})],go=null,vo=null,ho=null,mo=0,po=0,fo=0,bo=0;function yo(e){e.target.style.color=e.target.layer.toolbar.backgroundColor,e.target.style["background-color"]=e.target.layer.toolbar.color}function wo(e){e.target.style.color=e.target.layer.toolbar.color,e.target.style["background-color"]=e.target.layer.toolbar.backgroundColor}function No(e){e.target.classList.add("TravelNotes-LayersToolbarUI-LinkButton-Enter"),e.target.classList.remove("TravelNotes-LayersToolbarUI-LinkButton-Leave")}function To(e){De.dispatch("layerchange",{layer:e.target.layer}),lo.attributions=e.target.layer.attribution,he.travel.layerName=e.target.layer.name}function xo(e){e.target.classList.add("TravelNotes-LayersToolbarUI-LinkButton-Leave"),e.target.classList.remove("TravelNotes-LayersToolbarUI-LinkButton-Enter")}function Lo(e){e.deltaY&&(mo-=e.deltaY*c[e.deltaMode],mo=mo>bo?bo:mo,mo=mofunction(e){if(e.providerKeyNeeded&&!Be.hasKey(e.providerName.toLowerCase()))return;let t=w.create("div",{type:"layer",className:"TravelNotes-LayersToolbarUI-Button",title:e.name,layer:e,textContent:e.toolbar.text,style:"color:"+e.toolbar.color+";background-color:"+e.toolbar.backgroundColor},ho);t.addEventListener("mouseenter",yo,!1),t.addEventListener("mouseleave",wo,!1),t.addEventListener("click",To,!1),po=t.clientHeight,fo+=po}(e)),y.layersToolbarUI.theDevil&&y.layersToolbarUI.theDevil.addButton&&function(e,t,o){let a=w.create("div",{type:"link",className:"TravelNotes-LayersToolbarUI-Button TravelNotes-LayersToolbarUI-LinkButton-Leave"},ho);w.create("a",{href:e,title:t,textContent:o,target:"_blank"},a),a.addEventListener("mouseenter",No,!1),a.addEventListener("mouseleave",xo,!1),fo+=a.clientHeight}("https://www.google.com/maps/@"+he.map.getCenter().lat+","+he.map.getCenter().lng+","+he.map.getZoom()+"z","Reminder! The devil will know everything about you","👿"),bo+=po,mo=bo,ho.style.marginTop=String(mo)+"px",ho.addEventListener("wheel",Lo,!1)}const Po=new class{constructor(){Object.freeze(this)}createUI(){vo=w.create("div",{id:"TravelNotes-LayersToolbarUI"},document.body),w.create("div",{id:"TravelNotes-LayersToolbarUI-Header",textContent:E.getText("LayersToolbarUI - Layers")},vo),vo.addEventListener("mouseenter",jo,!1),vo.addEventListener("mouseleave",Eo,!1),De.dispatch("layerchange",{layer:uo[0]}),lo.attributions=uo[0].attribution}getLayer(e){let t=uo.find(t=>t.name===e)||uo[0];return t.providerKeyNeeded&&(Be.hasKey(t.providerName.toLowerCase())||(t=uo[0])),t}setLayer(e){let t=uo.find(t=>t.name===e)||uo[0];t.providerKeyNeeded&&(Be.hasKey(t.providerName.toLowerCase())||(t=uo[0])),De.dispatch("layerchange",{layer:t}),lo.attributions=t.attribution,he.travel.layerName=t.name}addLayers(e){e.forEach(e=>{uo.push(co(e))})}};function Do(){let e=null,t=null,o=null,a=[],n=0,r=[],i=null,l=null,s=null,d=null,c=0;function u(){r.forEach(e=>document.body.removeChild(e)),r.length=0,s.removeEventListener("click",()=>window.print(),!1),d.removeEventListener("click",u,!1),document.body.removeChild(l);let e=document.body.children;for(let t=0;to.lat?e.bottomLeft.lat:e.upperRight.lat,lng:t.lng}:t.lat===o.lat?{lat:t.lat,lng:t.lng=e.bottomLeft.lat&&n.lng=e.bottomLeft.lng&&n.lng<=e.upperRight.lng&&n.lat=e.bottomLeft.lat&&n.lng>a.lng)return n;if(n={lat:e.bottomLeft.lat,lng:(e.bottomLeft.lat-i)/r},n.lng>=e.bottomLeft.lng&&n.lng<=e.upperRight.lng&&n.lat>a.lat)return n;throw new Error("intermediate point not found")}function v(o){n++;let a="TravelNotes-RouteViewDiv"+n,l=w.create("div",{className:"TravelNotes-routeViewDiv",id:a},document.body);r.push(l),e.pageBreak&&l.classList.add("TravelNotes-PrintPageBreak"),l.style.width=String(e.paperWidth)+"mm",l.style.height=String(e.paperHeight)+"mm";let s=e.printNotes?function(){let e=[];return t.notes.forEach(t=>{let o=window.L.divIcon({iconSize:[t.iconWidth,t.iconHeight],iconAnchor:[t.iconWidth/2,t.iconHeight/2],popupAnchor:[0,-t.iconHeight/2],html:t.iconContent,className:"TravelNotes-Map-AllNotes "}),a=window.L.marker(t.iconLatLng,{zIndexOffset:100,icon:o,draggable:!0});e.push(a)}),e}():[];s.push(function(){let e=Po.getLayer(he.travel.layerName),t=Be.getUrl(e),o=null;return o="wmts"===e.service.toLowerCase()?window.L.tileLayer(t):window.L.tileLayer.wms(t,e.wmsOptions),o.options.attribution=f.sanitizeToHtmlString(' © OpenStreetMap contributors '+e.attribution+'| © Travel & Notes ').htmlString,o}()),s.push(window.L.circleMarker([o.entryPoint.lat,o.entryPoint.lng],y.printRouteMap.entryPointMarker)),s.push(window.L.circleMarker([o.exitPoint.lat,o.exitPoint.lng],y.printRouteMap.exitPointMarker)),s.push(i),window.L.map(a,{attributionControl:!0,zoomControl:!1,center:[(o.bottomLeft.lat+o.upperRight.lat)/2,(o.bottomLeft.lng+o.upperRight.lng)/2],zoom:e.zoomFactor,minZoom:e.zoomFactor,maxZoom:e.zoomFactor,layers:s})}function h(){let e=document.body.children;for(let t=0;twindow.print(),!1),d=w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("PrintFactory - Cancel print"),textContent:"❌"},l),d.addEventListener("click",u,!1),window.addEventListener("afterprint",u,!0);let o=[],r=t.itinerary.itineraryPoints.iterator;for(;!r.done;)o.push(r.value.latLng);i=window.L.polyline(o,{color:t.color,weight:t.width}),n=0,a.forEach(v)}return new class{constructor(){Object.freeze(this)}print(n,r){t=He.getRoute(r),t&&(e=n,function(){let t=w.create("div",{},document.body);t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.width=String(e.paperWidth-2*e.borderWidth)+"mm",t.style.height=String(e.paperHeight-2*e.borderWidth)+"mm",c=Math.ceil(t.clientWidth/256)*Math.ceil(t.clientHeight/256);let a=me.screenCoordToLatLng(0,0),n=me.screenCoordToLatLng(t.clientWidth,t.clientHeight);document.body.removeChild(t);let r=he.map.getZoomScale(he.map.getZoom(),e.zoomFactor);o=[Math.abs(a[0]-n[0])*r,Math.abs(a[1]-n[1])*r]}(),function(){a=[];let e=t.itinerary.itineraryPoints.iterator,n=e.done,r={bottomLeft:{lat:e.value.lat,lng:e.value.lng},upperRight:{lat:e.value.lat,lng:e.value.lng}},i={lat:e.value.lat,lng:e.value.lng},l=e.value;n=e.done;let s=e.value;for(;!n;){let t={bottomLeft:{lat:Math.min(r.bottomLeft.lat,s.lat),lng:Math.min(r.bottomLeft.lng,s.lng)},upperRight:{lat:Math.max(r.upperRight.lat,s.lat),lng:Math.max(r.upperRight.lng,s.lng)}},d=[t.upperRight.lat-t.bottomLeft.lat,t.upperRight.lng-t.bottomLeft.lng];o[0]>d[0]&&o[1]>d[1]?(r=t,l=e.value,n=e.done,s=e.value,n&&(r.entryPoint=i,r.exitPoint=l,a.push(r))):(l=g(r,l,s),r.bottomLeft={lat:Math.min(r.bottomLeft.lat,l.lat),lng:Math.min(r.bottomLeft.lng,l.lng)},r.upperRight={lat:Math.max(r.upperRight.lat,l.lat),lng:Math.max(r.upperRight.lng,l.lng)},r.entryPoint=i,r.exitPoint=l,a.push(r),r={bottomLeft:{lat:l.lat,lng:l.lng},upperRight:{lat:l.lat,lng:l.lng}},i={lat:l.lat,lng:l.lng}),y.printRouteMap.maxTiles{t=t&&r.defaultValue!==e.lat&&r.defaultValue!==e.lng}),t}function Oo(e){Ro=!1,je.showError(e),e instanceof Error&&console.error(e)}function Ao(){Ro=!1,he.travel.editedRoute.itinerary.validateData();let e=he.travel.editedRoute.itinerary.maneuvers.iterator;for(;!e.done;)e.value.validateData();let o=he.travel.editedRoute.itinerary.itineraryPoints.iterator;for(;!o.done;)o.value.validateData();if(function(e){let o=e.itinerary.itineraryPoints.iterator,a=e.itinerary.maneuvers.iterator;for(o.done,a.done,a.value.distance=t.defaultValue,a.done,e.distance=t.defaultValue,e.duration=t.defaultValue;!o.done;)o.previous.distance=Ke.pointsDistance(o.previous.latLng,o.value.latLng),e.distance+=o.previous.distance,a.previous.distance+=o.previous.distance,a.value.itineraryPointObjId===o.value.objId&&(e.duration+=a.previous.duration,a.value.distance=t.defaultValue,a.next&&a.value.itineraryPointObjId===a.next.itineraryPointObjId&&(a.done,a.value.distance=t.defaultValue),a.done)}(he.travel.editedRoute),"circle"!==he.travel.editedRoute.itinerary.transitMode){let e=he.travel.editedRoute.wayPoints.iterator;for(;!e.done;)e.first?e.value.latLng=he.travel.editedRoute.itinerary.itineraryPoints.first.latLng:e.last?e.value.latLng=he.travel.editedRoute.itinerary.itineraryPoints.last.latLng:e.value.latLng=me.getClosestLatLngDistance(he.travel.editedRoute,e.value.latLng).latLng}let a=he.travel.editedRoute.notes.iterator;for(;!a.done;){let e=me.getClosestLatLngDistance(he.travel.editedRoute,a.value.latLng);a.value.latLng=e.latLng,a.value.distance=e.distance}Mo(),he.travel.editedRoute.notes.sort((e,t)=>e.distance-t.distance),Co&&_e().zoomToRoute(he.travel.editedRoute.objId),ro.createProfile(he.travel.editedRoute),De.dispatch("routeupdated",{removedRouteObjId:he.travel.editedRoute.objId,addedRouteObjId:he.travel.editedRoute.objId}),De.dispatch("roadbookupdate"),De.dispatch("showitinerary"),De.dispatch("setrouteslist")}const ko=new class{constructor(){Object.freeze(this)}addRoute(){let e=ne();he.travel.routes.add(e),i.editedChanged===he.travel.editedRoute.editionStatus?(Mo(),De.dispatch("setrouteslist"),De.dispatch("roadbookupdate")):this.editRoute(e.objId)}editRoute(e){if(i.editedChanged===he.travel.editedRoute.editionStatus)return void je.showError(E.getText("RouteEditor - Not possible to edit a route without a save or cancel"));let t=He.getRoute(e),o=t.itinerary.provider,a=he.providers.get(o.toLowerCase());if(o&&""!==o&&(!a||a.providerKeyNeeded&&!Be.hasKey(o)))return void je.showError(E.getText("RouteEditor - Not possible to edit a route created with this provider",{provider:o}));-1!==he.editedRouteObjId&&this.cancelEdition(),o&&""!==o&&De.dispatch("setprovider",{provider:o});let n=t.itinerary.transitMode;n&&""!==n&&De.dispatch("settransitmode",{transitMode:n}),he.travel.editedRoute=ne(),t.editionStatus=i.editedNoChange,he.travel.editedRoute.jsonObject=t.jsonObject,he.editedRouteObjId=t.objId,he.travel.editedRoute.hidden=!1,t.hidden=!1,ro.updateProfile(he.editedRouteObjId,he.travel.editedRoute),Mo(),De.dispatch("routeupdated",{removedRouteObjId:t.objId,addedRouteObjId:he.travel.editedRoute.objId}),De.dispatch("roadbookupdate"),De.dispatch("showitinerary"),De.dispatch("setrouteslist")}removeRoute(e){let t=e;if(t===he.editedRouteObjId||t===he.travel.editedRoute.objId){if(i.editedChanged===he.travel.editedRoute.editionStatus)return void je.showError(E.getText("TravelEditor - Cannot remove an edited route"));t=he.editedRouteObjId,this.cancelEdition()}De.dispatch("routeupdated",{removedRouteObjId:t,addedRouteObjId:-1}),he.travel.routes.remove(t),ro.deleteProfile(t),Mo(),De.dispatch("roadbookupdate"),De.dispatch("setrouteslist")}removeManeuver(e){(he.travel.editedRoute.itinerary.maneuvers.previous(e,e=>t.defaultValue{Mo(),So(t)&&De.dispatch("routepropertiesupdated",{routeObjId:t.objId}),De.dispatch("roadbookupdate"),De.dispatch("setrouteslist"),De.dispatch("updateitinerary")}).catch(e=>{e instanceof Error&&console.error(e)})}printRouteMap(e){(function(){let e=null,t=null,o=null,a=null,n=null,r=null,i=null,l=null;function s(){return Object.freeze({paperWidth:parseInt(o.value),paperHeight:parseInt(a.value),borderWidth:parseInt(n.value),zoomFactor:parseInt(l.value),pageBreak:r.checked,printNotes:i.checked})}return e=pe(),e.title=E.getText("PrintRouteMapDialog - Print"),e.okButtonListener=s,t=w.create("div",{id:"TravelNotes-PrintRouteMapDialog-MainDataDiv"},e.content),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Paper width")},e),o=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput"},e),o.value=y.printRouteMap.paperWidth,w.create("text",{value:E.getText("PrintRouteMapDialog - Paper width units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Paper height")},e),a=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",value:y.printRouteMap.paperHeight},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Paper height units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Border width")},e),n=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",id:"TravelNotes-PrintRouteMapDialog-BorderWidthNumberInput",value:y.printRouteMap.borderWidth},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Border width units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-ZoomFactorDataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Zoom factor")},e),l=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",value:Math.min(y.printRouteMap.zoomFactor,15),min:he.map.getMinZoom(),max:Math.min(he.map.getMaxZoom(),15)},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-PageBreakDataDiv"},t);r=w.create("input",{type:"checkbox",id:"TravelNotes-PrintRouteMapDialog-PageBreakInput",checked:y.printRouteMap.pageBreak},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Page break")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-PrintNotesDataDiv"},t);i=w.create("input",{type:"checkbox",id:"TravelNotes-PrintRouteMapDialog-PrintNotesInput",checked:y.printRouteMap.printNotes},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Print notes")},e)}(),e})().show().then(t=>Do().print(t,e)).catch(e=>{e instanceof Error&&console.error(e)})}showRoute(e){He.getRoute(e).hidden=!1,De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e}),De.dispatch("setrouteslist")}hideRoute(e){He.getRoute(e).hidden=!0,De.dispatch("routeupdated",{removedRouteObjId:e,addedRouteObjId:-1}),De.dispatch("setrouteslist")}showRoutes(){let e=he.travel.routes.iterator;for(;!e.done;)e.value.hidden&&(e.value.hidden=!1,De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e.value.objId}));De.dispatch("setrouteslist")}hideRoutes(){let e=he.travel.routes.iterator;for(;!e.done;)e.value.hidden||e.value.objId===he.editedRouteObjId||(e.value.hidden=!0,De.dispatch("routeupdated",{removedRouteObjId:e.value.objId,addedRouteObjId:-1}));De.dispatch("setrouteslist")}};function Uo(e,t){if(!y.wayPoint.reverseGeocoding)return De.dispatch("setrouteslist"),De.dispatch("showitinerary"),void De.dispatch("roadbookupdate");vt().getPromiseAddress(e).then(e=>{let o=e.street;""!==e.city&&(o+=" "+e.city);let a="";y.wayPoint.geocodingIncludeName&&(a=e.name),function(e,t){he.travel.editedRoute.editionStatus=i.editedChanged;let o=he.travel.editedRoute.wayPoints.getAt(t);o.name=e.name,o.address=e.address,De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")}(Object.seal({name:a,address:o}),t)}).catch(e=>{e instanceof Error&&console.error(e)})}const Bo=new class{constructor(){Object.freeze(this)}addWayPoint(e){he.travel.editedRoute.editionStatus=i.editedChanged;let t=M();t.latLng=e,he.travel.editedRoute.wayPoints.add(t),Uo(e,t.objId),De.dispatch("addwaypoint",{wayPoint:he.travel.editedRoute.wayPoints.last,letter:he.travel.editedRoute.wayPoints.length-2}),he.travel.editedRoute.wayPoints.swap(t.objId,!0),ko.startRouting()}addWayPointOnRoute(e,t){let o=me.getClosestLatLngDistance(he.travel.editedRoute,e).distance;he.travel.editedRoute.editionStatus=i.editedChanged;let a=M();a.latLng=t,he.travel.editedRoute.wayPoints.add(a),Uo(t,a.objId),De.dispatch("addwaypoint",{wayPoint:he.travel.editedRoute.wayPoints.last,letter:he.travel.editedRoute.wayPoints.length-2});let n=he.travel.editedRoute.wayPoints.iterator;for(;!n.done;){if(o{t.okButton.classList.remove("TravelNotes-Hidden"),y.wayPoint.geocodingIncludeName&&(a.value=e.name);let o=e.street;""!==e.city&&(o+=" "+e.city),n.value=o}).catch(e=>{t.okButton.classList.remove("TravelNotes-Hidden"),e instanceof Error&&console.error(e)})}return t=pe(),t.title=E.getText("WayPointPropertiesDialog - Waypoint properties"),t.okButtonListener=r,o=w.create("div",{id:"TravelNotes-WayPointPropertiesDialog-DataDiv"},t.content),w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("WayPointPropertiesDialog - Reset address"),textContent:"🔄"},w.create("div",null,o)).addEventListener("click",i,!1),w.create("div",{textContent:E.getText("WayPointPropertiesDialog - Name")},o),a=w.create("input",{type:"text",value:e.name,className:"TravelNotes-WayPointPropertiesDialog-Input"},w.create("div",null,o)),w.create("text",{value:E.getText("WayPointPropertiesDialog - Address")},w.create("div",null,o)),n=w.create("input",{type:"text",value:e.address,className:"TravelNotes-WayPointPropertiesDialog-Input"},w.create("div",null,o)),t})(he.travel.editedRoute.wayPoints.getAt(e)).show().then(()=>{De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")}).catch(e=>{e instanceof Error&&console.error(e)})}};function Ho(e,t){let o=e.target.objId,a=He.getRoute(o),n=_e();return lt(e,function(){let t=[{context:ko,name:E.getText("RouteContextMenu - Edit this route"),action:o===he.travel.editedRoute.objId||i.editedChanged===he.travel.editedRoute.editionStatus?null:ko.editRoute,param:o},{context:ko,name:E.getText("RouteContextMenu - Delete this route"),action:o===he.travel.editedRoute.objId&&i.editedChanged===he.travel.editedRoute.editionStatus?null:ko.removeRoute,param:o},a.hidden?{context:ko,name:E.getText("RouteContextMenu - Show this route"),action:ko.showRoute,param:o}:{context:ko,name:E.getText("RouteContextMenu - Hide this route"),action:he.travel.editedRoute.objId===o?null:ko.hideRoute,param:o},{context:ko,name:E.getText("RouteContextMenu - Properties"),action:a.hidden?null:ko.routeProperties,param:o},{context:n,name:E.getText("RouteContextMenu - Zoom to route"),action:a.hidden?null:n.zoomToRoute,param:o},{context:ro,name:E.getText("RouteContextMenu - View the elevation"),action:a.itinerary.hasProfile?ro.showProfile:null,param:o}];return y.printRouteMap.isEnabled&&t.push({context:ko,name:E.getText("RouteContextMenu - Print route map"),action:ko.printRouteMap,param:o}),t=t.concat([{context:ko,name:E.getText("RouteContextMenu - Save this route in a GPX file"),action:0",className:"TravelNotes-Map-Note-Bullet"}),opacity:y.note.grip.opacity,draggable:!he.travel.readOnly});o.objId=t.objId;let a=window.L.divIcon({iconSize:[t.iconWidth,t.iconHeight],iconAnchor:[t.iconWidth/2,t.iconHeight/2],popupAnchor:[0,-t.iconHeight/2],html:t.iconContent,className:"TravelNotes-Map-AllNotes "}),n=window.L.marker(t.iconLatLng,{zIndexOffset:100,icon:a,draggable:!he.travel.readOnly});n.objId=t.objId,n.bindPopup(e=>Wt.getNoteTextHTML("TravelNotes-Map-",He.getNoteAndRoute(e.objId))),0!==t.tooltipContent.length&&(n.bindTooltip(e=>He.getNoteAndRoute(e.objId).note.tooltipContent),n.getTooltip().options.offset[0]=t.iconWidth/2);let r=window.L.polyline([t.latLng,t.iconLatLng],y.note.polyline);r.objId=t.objId;let i=window.L.layerGroup([n,r,o]);return i.markerId=window.L.Util.stamp(n),i.polylineId=window.L.Util.stamp(r),i.bulletId=window.L.Util.stamp(o),Ko(t.objId,i),y.note.haveBackground&&document.querySelectorAll(".TravelNotes-MapNote,.TravelNotes-SvgIcon").forEach(e=>e.classList.add("TravelNotes-Map-Note-Background")),Object.freeze({marker:n,polyline:r,bullet:o})}function Zo(e){e.dashArray>=y.route.dashChoices.length&&(e.dashArray=0);let t=y.route.dashChoices[e.dashArray].iDashArray;if(t){let o="",a=0;for(a=0;a{let t=He.getRoute(e.objId);return Wt.getRouteHeaderHTML("TravelNotes-Map-",t)}),window.L.DomEvent.on(n,"click",e=>e.target.openPopup(e.latlng));let r=t.notes.iterator;for(;!r.done;)_o(r.value.objId);return t}addNote(e){return _o(e)}getDashArray(e){return Zo(e)}zoomTo(e,t){if(t){let e=[];t.forEach(t=>e=e.concat(t)),he.map.fitBounds(me.getLatLngBounds(e))}else he.map.setView(e,y.itineraryPoint.zoomFactor)}setLayer(e,t){let o=null;o="wmts"===e.service.toLowerCase()?window.L.tileLayer(t):window.L.tileLayer.wms(t,e.wmsOptions),Fo&&he.map.removeLayer(Fo),he.map.addLayer(o),Fo=o,he.travel.readOnly||(he.map.getZoom()<(e.minZoom||0)&&he.map.setZoom(e.minZoom||0),he.map.setMinZoom(e.minZoom||0),he.map.getZoom()>(e.maxZoom||18)&&he.map.setZoom(e.maxZoom||18),he.map.setMaxZoom(e.maxZoom||18),e.bounds?(he.map.getBounds().intersects(e.bounds)&&!he.map.getBounds().contains(e.bounds)||(he.map.setMaxBounds(null),he.map.fitBounds(e.bounds),he.map.setZoom(e.minZoom||0)),he.map.setMaxBounds(e.bounds)):he.map.setMaxBounds(null)),he.map.fire("baselayerchange",o)}onGeolocationStatusChanged(e){o.active!==e&&Vo&&(he.map.removeLayer(Vo),Vo=null)}onGeolocationPositionChanged(e){let t=y.geoLocation.zoomToPosition;Vo&&(he.map.removeLayer(Vo),t=!1),Vo=window.L.circleMarker(window.L.latLng(e.coords.latitude,e.coords.longitude),y.geoLocation.marker).bindTooltip(j.formatLatLng([e.coords.latitude,e.coords.longitude])).addTo(he.map),t&&he.map.setView(window.L.latLng(e.coords.latitude,e.coords.longitude),y.geoLocation.zoomFactor)}};let Go=null,Jo=null,Yo=1;function qo(){Go&&(window.L.DomEvent.off(Go),he.map.removeLayer(Go),Go=null)}function $o(){window.L.DomEvent.off(Go,"mouseout",qo)}function Qo(e){e.latlng.lat=Jo[0],e.latlng.lng=Jo[1],e.target.objId=he.travel.editedRoute.objId,Ho(e).show()}function ea(e){Bo.addWayPointOnRoute(Jo,[e.target.getLatLng().lat,e.target.getLatLng().lng]),Go&&(window.L.DomEvent.off(Go,"dragstart",$o),window.L.DomEvent.off(Go,"dragend",ea),window.L.DomEvent.off(Go,"contextmenu",Qo),he.map.removeLayer(Go),Go=null)}function ta(e){let t=He.getNoteAndRoute(e.target.objId),o=t.note,a=t.route,n=he.mapObjects.get(e.target.objId);if(null===a)o.latLng=[e.target.getLatLng().lat,e.target.getLatLng().lng],De.dispatch("updatetravelnotes");else{let t=me.getClosestLatLngDistance(a,[e.target.getLatLng().lat,e.target.getLatLng().lng]);o.latLng=t.latLng,o.distance=t.distance,a.notes.sort((e,t)=>e.distance-t.distance),n.getLayer(n.bulletId).setLatLng(t.latLng),De.dispatch("updateitinerary")}n.getLayer(n.polylineId).setLatLngs([o.latLng,o.iconLatLng]),De.dispatch("roadbookupdate")}function oa(e){let t=He.getNoteAndRoute(e.target.objId).note,o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([[e.latlng.lat,e.latlng.lng],t.iconLatLng])}function aa(e){e.originalEvent.target.style.opacity=y.note.grip.moveOpacity}function na(e){e.originalEvent.target.style.opacity=y.note.grip.opacity}function ra(e){zo(e).show()}function ia(e){let t=He.getNoteAndRoute(e.target.objId).note;t.iconLatLng=[e.target.getLatLng().lat,e.target.getLatLng().lng];let o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([t.latLng,t.iconLatLng])}function la(e){let t=He.getNoteAndRoute(e.target.objId).note,o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([t.latLng,[e.latlng.lat,e.latlng.lng]])}function sa(e){let t=He.getRoute(e.target.objId);if(i.notEdited!==t.editionStatus)if(Jo=[e.latlng.lat,e.latlng.lng],Go)Go.setLatLng(e.latlng);else{let t='
?
';Go=window.L.marker(e.latlng,{icon:window.L.divIcon({iconSize:[20,20],iconAnchor:[10,20],html:t,className:"TravelNotes-Map-WayPointStyle"}),draggable:!0}),(-1===y.route.showDragTooltip||Yo<=y.route.showDragTooltip)&&(Yo++,Go.bindTooltip(E.getText("MapEditor - Drag and drop to add a waypoint")),Go.getTooltip().options.offset=[0,0]),Go.addTo(he.map),window.L.DomEvent.on(Go,"mouseout",qo),window.L.DomEvent.on(Go,"dragstart",$o),window.L.DomEvent.on(Go,"dragend",ea),window.L.DomEvent.on(Go,"contextmenu",Qo)}}function da(e){window.L.DomEvent.stopPropagation(e),Ho(e).show()}function ca(e){(function(e){let t=e.target.objId;return lt(e,function(){let e=he.travel.editedRoute.wayPoints.first.objId!==t&&he.travel.editedRoute.wayPoints.last.objId!==t;return[{context:Bo,name:E.getText("WayPointContextMenu - Delete this waypoint"),action:e?Bo.removeWayPoint:null,param:t},{context:Bo,name:E.getText("WayPointContextMenu - Modify properties"),action:Bo.wayPointProperties,param:t}]}())})(e).show()}function ua(e){he.travel.editedRoute.wayPoints.getAt(e.target.objId).latLng=[e.target.getLatLng().lat,e.target.getLatLng().lng],Bo.wayPointDragEnd(e.target.objId)}function ga(e,t){t.objId=e,t.addTo(he.map),he.mapObjects.set(e,t)}function va(e){let t=he.mapObjects.get(e);t&&(window.L.DomEvent.off(t),he.map.removeLayer(t),he.mapObjects.delete(e))}function ha(e,t){if(r.defaultValue===e.lat&&r.defaultValue===e.lng)return;let o='
'+t+"
",a=window.L.marker(e.latLng,{icon:window.L.divIcon({iconSize:[20,20],iconAnchor:[10,20],html:o,className:"TravelNotes-Map-WayPointStyle"}),draggable:!0});a.bindTooltip(e=>He.getWayPoint(e.objId).fullName),a.getTooltip().options.offset=[10,-10],window.L.DomEvent.on(a,"contextmenu",ca),a.objId=e.objId,ga(e.objId,a),window.L.DomEvent.on(a,"dragend",ua)}const ma=new class{constructor(){Object.freeze(this)}updateRoute(e,t){-1!==e&&function(e){let t=He.getRoute(e);va(t.objId);let o=t.notes.iterator;for(;!o.done;)va(o.value.objId);let a=t.wayPoints.iterator;for(;!a.done;)va(a.value.objId)}(e),-1!==t&&function(e){let t=Xo.addRoute(e),o=he.mapObjects.get(e);if(!he.travel.readOnly){window.L.DomEvent.on(o,"contextmenu",da),window.L.DomEvent.on(o,"mouseover",sa);let e=t.notes.iterator;for(;!e.done;){let t=he.mapObjects.get(e.value.objId),o=t.getLayer(t.markerId),a=t.getLayer(t.bulletId);window.L.DomEvent.on(a,"dragend",ta),window.L.DomEvent.on(a,"drag",oa),window.L.DomEvent.on(a,"mouseenter",aa),window.L.DomEvent.on(a,"mouseleave",na),window.L.DomEvent.on(o,"contextmenu",ra),window.L.DomEvent.on(o,"dragend",ia),window.L.DomEvent.on(o,"drag",la)}}if(!he.travel.readOnly&&i.notEdited!==t.editionStatus){let e=he.travel.editedRoute.wayPoints.iterator;for(;!e.done;)ha(e.value,e.first?"A":e.last?"B":e.index)}}(t)}updateRouteProperties(e){let t=he.mapObjects.get(e),o=He.getRoute(e);t.setStyle({color:o.color,weight:o.width,dashArray:Xo.getDashArray(o)})}updateNote(e,t){let o=!1;if(-1!==e){let t=he.mapObjects.get(e);t&&(o=t.getLayer(t.markerId).isPopupOpen()),va(e)}-1!==t&&function(e,t){let o=Xo.addNote(e);t&&o.marker.openPopup(),he.travel.readOnly||(window.L.DomEvent.on(o.bullet,"dragend",ta),window.L.DomEvent.on(o.bullet,"drag",oa),window.L.DomEvent.on(o.bullet,"mouseenter",aa),window.L.DomEvent.on(o.bullet,"mouseleave",na),window.L.DomEvent.on(o.marker,"contextmenu",ra),window.L.DomEvent.on(o.marker,"dragend",ia),window.L.DomEvent.on(o.marker,"drag",la))}(t,o)}removeObject(e){va(e)}removeAllObjects(){he.mapObjects.forEach(e=>{window.L.DomEvent.off(e),he.map.removeLayer(e)}),he.mapObjects.clear()}addWayPoint(e,t){ha(e,t)}addItineraryPointMarker(e,t){ga(e,window.L.circleMarker(t,y.itineraryPoint.marker))}addSearchPointMarker(e,t,o){let a=!1;if(o){let e=[];o.forEach(t=>{e=e.concat(t)});let t=me.getLatLngBounds(e),n=he.map.getBounds();a=(t.getEast()-t.getWest())/(n.getEast()-n.getWest())>.01&&(t.getNorth()-t.getSouth())/(n.getNorth()-n.getSouth())>.01}ga(e,a?window.L.polyline(o,y.osmSearch.searchPointPolyline):window.L.circleMarker(t,y.osmSearch.searchPointMarker))}addRectangle(e,t,o){ga(e,window.L.rectangle(t,o))}setLayer(e){let t=Be.getUrl(e);t&&Xo.setLayer(e,t)}};function pa(e){return Math.floor(Math.abs(e)+.5)*(0<=e?1:-1)}const fa=new class{constructor(){Object.freeze(this)}encode(e,t){if(!e.length)return"";let o=t.length,a=Array.from(t,e=>Math.pow(10,e));function n(e,t,o){let a=pa(e*o),n=pa(t*o),r=a-n;r<<=1,0>a-n&&(r=~r);let i="";for(;32<=r;)i+=String.fromCharCode(63+(32|31&r)),r>>=5;return i+=String.fromCharCode(r+63),i}let r="";for(let t=0;tMath.pow(10,e)),i=new Array(o).fill(0);function l(){let t=null,o=0,n=0;do{t=e.charCodeAt(a++)-63,n|=(31&t)<>1):n>>1}for(;a{a.push([e.lat,e.lng,e.distance,e.elev,e.objId])}),o.values=fa.encode(a,[r.fixed,r.fixed,2,2,0]),e.itinerary.itineraryPoints=o}function o(e){let o=[];if(e.itinerary.itineraryPoints.values)fa.decode(e.itinerary.itineraryPoints.values,[r.fixed,r.fixed,2,2,0]).forEach(a=>{let i={lat:r.defaultValue,lng:r.defaultValue,distance:t.defaultValue,elev:n.defaultValue,objId:-1};[i.lat,i.lng,i.distance,i.elev,i.objId]=a,i.objType=e.itinerary.itineraryPoints.objType,o.push(i)});else{e.itinerary.itineraryPoints.latLngs=fa.decode(e.itinerary.itineraryPoints.latLngs,[r.fixed,r.fixed]);let t=0;e.itinerary.itineraryPoints.latLngs.forEach(a=>{let r={};r.lat=a[0],r.lng=a[1],r.distance=e.itinerary.itineraryPoints.distances[t],e.itinerary.itineraryPoints.elevs?r.elev=e.itinerary.itineraryPoints.elevs[t]:r.elev=n.defaultValue,r.objId=e.itinerary.itineraryPoints.objIds[t],r.objType=e.itinerary.itineraryPoints.objType,o.push(r),t++})}e.itinerary.itineraryPoints=o}function a(e){e.routes.forEach(o),e.editedRoute&&o(e.editedRoute)}return new class{constructor(){Object.freeze(this)}decompress(e){a(e),he.travel.jsonObject=e,he.editedRouteObjId=-1,he.travel.routes.forEach(e=>{i.notEdited!==e.editionStatus&&(he.editedRouteObjId=e.objId)})}decompressMerge(e){a(e);let t=de();t.jsonObject=e;let o=t.routes.iterator;for(;!o.done;)he.travel.routes.add(o.value);let n=t.notes.iterator;for(;!n.done;)he.travel.notes.add(n.value)}compress(t){let o=t.jsonObject;return o.routes.forEach(e),e(o.editedRoute),o}}}let ya=null,wa=null,Na=null,Ta=e.saved,xa=null;function La(){ya&&(ya.textContent=Ta+" "+wa+" - Zoom : "+Na)}function Ia(t){e.modified===t&&e.notSaved===Ta||(Ta=t,e.modified!==t||xa||(xa=setTimeout(Ia,3e5,e.notSaved)),e.saved===t&&xa&&(clearTimeout(xa),xa=null),La())}function Ea(e){wa=j.formatLatLng([e.latlng.lat,e.latlng.lng]),La()}function ja(){Na=String(he.map.getZoom()),La()}const Pa=new class{constructor(){Object.freeze(this)}set saveStatus(e){Ia(e)}createUI(){Na=he.map.getZoom(),wa=j.formatLat(y.map.center.lat)+" - "+j.formatLng(y.map.center.lng),ya=w.create("span",null,w.create("div",{id:"TravelNotes-MouseUI"},document.body)),he.map.on("mousemove",Ea),he.map.on("zoomend",ja)}};const Da=new class{constructor(){Object.freeze(this)}routeDropped(e,t,o){he.travel.routes.moveTo(e,t,o),ko.chainRoutes(),De.dispatch("setrouteslist"),De.dispatch("roadbookupdate")}saveAsTravel(){if(""===he.travel.name)return void je.showError(E.getText("TravelEditor - Gives a name to the travel"));if(-1!==he.editedRouteObjId)return void je.showError(E.getText("TravelEditor - Not possible to partial save when a route is edited."));(function(){let e=null,t=null,o=null,a=null,n=null;function r(){return Object.freeze({removeTravelNotes:o.checked,removeRoutesNotes:a.checked,removeManeuvers:n.checked})}function i(e){let o=w.create("div",null,t),a=w.create("input",{type:"checkbox",checked:!1},o);return w.create("text",{value:e},o),a}return e=pe(),e.title=E.getText("SaveAsDialog - SaveAs"),e.okButtonListener=r,t=w.create("div",null,e.content),o=i(E.getText("SaveAsDialog - Remove Travel Notes")),a=i(E.getText("SaveAsDialog - Remove Routes Notes")),n=i(E.getText("SaveAsDialog - Remove Maneuvers")),e})().show().then(e=>function(e){let t=de();t.jsonObject=he.travel.jsonObject,t.name+="-partial";let o=t.routes.iterator;for(;!o.done;)o.value.hidden=!1;if(e.removeTravelNotes&&t.notes.removeAll(),e.removeRoutesNotes)for(o=t.routes.iterator;!o.done;)o.value.notes.removeAll();if(e.removeManeuvers)for(o=t.routes.iterator;!o.done;)o.value.itinerary.maneuvers.removeAll();let a=ba().compress(t);j.saveFile(a.name+".trv",JSON.stringify(a))}(e)).catch(e=>{e instanceof Error&&console.error(e)})}saveTravel(){if(""===he.travel.name)return void je.showError(E.getText("TravelEditor - Gives a name to the travel"));let t=he.travel.routes.iterator;for(;!t.done;)t.value.hidden=!1;let o=ba().compress(he.travel);j.saveFile(o.name+".trv",JSON.stringify(o)),Pa.saveStatus=e.saved}clear(){y.travelNotes.haveBeforeUnloadWarning&&!window.confirm(E.getText("TravelEditor - This page ask to close; data are perhaps not saved."))||(ro.deleteAllProfiles(),De.dispatch("removeallobjects"),he.travel.editedRoute=ne(),he.editedRouteObjId=-1,he.travel=de(),he.travel.routes.add(ne()),De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate"),De.dispatch("travelnameupdated"),y.travelEditor.startupRouteEdition&&ko.editRoute(he.travel.routes.first.objId),Pa.saveStatus=e.saved)}};function Ca(){return new class{constructor(){Object.freeze(this)}openDistantFile(e){ba().decompress(e),he.travel.readOnly=!0,this.display()}display(){document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name);let e=he.travel.routes.iterator;for(;!e.done;)i.notEdited===e.value.editionStatus&&De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e.value.objId});-1!==he.editedRouteObjId&&De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:he.travel.editedRoute.objId});let t=he.travel.notes.iterator;for(;!t.done;)De.dispatch("noteupdated",{removedNoteObjId:-1,addedNoteObjId:t.value.objId});_e().zoomToTravel()}}}function Ra(){function t(t,o){let a=new FileReader;a.onload=function(){let t={};try{t=JSON.parse(a.result)}catch(e){return void(e instanceof Error&&console.error(e))}o?ba().decompressMerge(t):(ro.deleteAllProfiles(),ba().decompress(t)),function(){if(De.dispatch("removeallobjects"),Ca().display(),Po.setLayer(he.travel.layerName),De.dispatch("setrouteslist"),-1!==he.editedRouteObjId){let e=he.travel.editedRoute.itinerary.provider;if(e&&""!==e&&!he.providers.get(e.toLowerCase()))je.showError(E.getText("FileLoader - Not possible to select as provider",{provider:e}));else{let t=he.travel.editedRoute.itinerary.transitMode;De.dispatch("setprovider",{provider:e}),t&&""!==t&&De.dispatch("settransitmode",{transitMode:t})}}ko.chainRoutes(),De.dispatch("travelnameupdated"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")}(),o||(Pa.saveStatus=e.saved)},a.readAsText(t.target.files[0])}return new class{constructor(){Object.freeze(this)}openLocalFile(e){t(e,!1)}mergeLocalFile(e){t(e,!0)}}}let Ma=null,Sa=null,Oa=null,Aa=0,ka=null,Ua=null,Ba=null,Ha=null;function za(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}function Fa(e){he.travel.name=f.sanitizeToJsString(e.target.value),document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name),De.dispatch("roadbookupdate")}function Va(e){e.stopPropagation(),Da.clear(),document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name)}function Wa(e){e.stopPropagation(),Da.saveTravel()}function Ka(e){e.stopPropagation(),Da.saveAsTravel()}function _a(e){e.stopPropagation(),Ra().openLocalFile(e)}function Za(){y.travelNotes.haveBeforeUnloadWarning&&!window.confirm(E.getText("TravelEditor - This page ask to close; data are perhaps not saved."))||Ua.click()}function Xa(e){e.stopPropagation(),Ra().mergeLocalFile(e)}function Ga(){-1===he.editedRouteObjId?Ba.click():je.showError(E.getText("TravelUI - Not possible to merge a travel when a route is edited"))}function Ja(){ka=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},Oa),w.create("div",{className:"TravelNotes-UI-Button TravelNotes-TravelUI-SaveAsButton",title:E.getText("TravelUI - Save as travel"),textContent:"💾"},ka).addEventListener("click",Ka,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Cancel travel"),textContent:"❌"},ka).addEventListener("click",Va,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Save travel"),textContent:"💾"},ka).addEventListener("click",Wa,!1),Ua=w.create("input",{className:"TravelNotes-TravelUI-OpenFileInput",type:"file",accept:".trv"},ka),Ua.addEventListener("change",_a,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Open travel"),textContent:"📂"},ka).addEventListener("click",Za,!1),Ba=w.create("input",{className:"TravelNotes-TravelUI-OpenFileInput",type:"file",accept:".trv,.map"},ka),Ba.addEventListener("change",Xa,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Import travel"),textContent:"🌏"},ka).addEventListener("click",Ga,!1),w.create("text",{value:"📋"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:"TravelNotesRoadbook.html?lng="+y.travelNotes.language+"&page="+he.UUID,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Open travel roadbook")},ka)))}function Ya(e){e.stopPropagation(),Ma.classList.toggle("TravelNotes-Hidden");let t=Ma.classList.contains("TravelNotes-Hidden");e.target.textContent=t?"▶":"▼",e.target.title=t?E.getText("TravelUI - Show"):E.getText("TravelUI - Hide")}function qa(e){e.stopPropagation(),ko.addRoute()}function $a(){Ha=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},Oa),w.create("div",{textContent:"▼",className:"TravelNotes-TravelUI-RouteList-ExpandButton"},Ha).addEventListener("click",Ya,!1),w.create("span",{textContent:E.getText("TravelUI - Travel routes")},Ha),w.create("div",{className:"TravelNotes-UI-Button TravelNotes-UI-FlexRow-RightButton",title:E.getText("TravelUI - Add a route"),textContent:"+"},Ha).addEventListener("click",qa,!1)}function Qa(e){e.stopPropagation();try{e.dataTransfer.setData("Text",e.target.objId),e.dataTransfer.dropEffect="move",e.dataTransfer.routeObjId=e.target.objId}catch(e){e instanceof Error&&console.error(e)}Aa=e.target.objId}function en(e){e.preventDefault()}function tn(e){e.preventDefault();let t=e.target;for(;!t.objId;)t=t.parentElement;let o=t.getBoundingClientRect();Da.routeDropped(Aa,t.objId,e.clientY-o.top{e.paneId===nn?e.classList.add("TravelNotes-PanesManagerUI-ActivePaneButton"):e.classList.remove("TravelNotes-PanesManagerUI-ActivePaneButton")})}function cn(e){dn(e.target.paneId)}function un(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}const gn=new class{constructor(){Object.freeze(this)}createUI(e){if(ln)return;let t=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},e);sn=w.create("div",{id:"TravelNotes-PanesManagerUI-PaneControlsDiv"},e),ln=w.create("div",{id:"TravelNotes-PanesManagerUI-PaneDataDiv"},e),ln.addEventListener("wheel",un,!1),rn.forEach(e=>{w.create("div",{textContent:e.getButtonText(),className:"TravelNotes-PanesManagerUI-PaneButton",paneId:e.getId()},t).addEventListener("click",cn,!1),e.setPaneDivs(ln,sn)})}addPane(e){rn.set(e.getId(),e)}showPane(e){dn(e)}updatePane(e){e===nn&&dn(e)}},vn=["bike","pedestrian","car","train","line","circle"],hn={bike:'data:image/svg+xml;utf8, ',pedestrian:'data:image/svg+xml;utf8, ',car:'data:image/svg+xml;utf8, ',train:'data:image/svg+xml;utf8, ',line:'data:image/svg+xml;utf8, ',circle:'data:image/svg+xml;utf8, '};let mn=null,pn=!1,fn={bike:null,pedestrian:null,car:null,train:null,line:null,circle:null};function bn(e){he.routing.transitMode=e;let t=document.querySelector(".TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton");t&&t.classList.remove("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton"),document.querySelector("#TravelNotes-ProvidersToolbarUI-"+e+"ImgButton").classList.add("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton")}function yn(e){e.stopPropagation(),bn(e.target.transitMode),ko.startRouting()}function wn(e){he.routing.provider=e;let t=document.querySelector(".TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton");t&&t.classList.remove("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton"),document.querySelector("#TravelNotes-ProvidersToolbarUI-"+e+"ImgButton").classList.add("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton");let o=he.providers.get(e.toLowerCase());if(vn.forEach(e=>{o.transitModes[e]?fn[e].classList.remove("TravelNotes-ProvidersToolbarUI-InactiveImgButton"):fn[e].classList.add("TravelNotes-ProvidersToolbarUI-InactiveImgButton")}),!o.transitModes[he.routing.transitMode]){let e=null;vn.forEach(t=>{o.transitModes[t]&&(e=e||t)}),bn(e)}}function Nn(e){e.stopPropagation(),wn(e.target.provider),ko.startRouting()}function Tn(e){if(0===e.providerKey)return;let t=w.create("img",{src:e.icon,id:"TravelNotes-ProvidersToolbarUI-"+e.name+"ImgButton",className:"TravelNotes-ProvidersToolbarUI-ImgButton",title:e.title||e.name,provider:e.name},mn);if(t.addEventListener("click",Nn,!1),!pn){t.classList.add("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton"),he.routing.provider=t.provider,pn=!0;let o=null;vn.forEach(t=>{e.transitModes[t]&&(o=o||t)}),fn[o].classList.add("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton"),he.routing.transitMode=o,vn.forEach(t=>{e.transitModes[t]||fn[t].classList.add("TravelNotes-ProvidersToolbarUI-InactiveImgButton")})}}function xn(){he.providers&&(pn=!1,he.providers.forEach(Tn))}function Ln(){vn.forEach(e=>{fn[e]=w.create("img",{src:hn[e],id:"TravelNotes-ProvidersToolbarUI-"+e+"ImgButton",className:"TravelNotes-ProvidersToolbarUI-ImgButton",title:E.getText("ProvidersToolbarUI - "+e),transitMode:e},mn),fn[e].addEventListener("click",yn,!1)})}const In=new class{constructor(){Object.freeze(this)}createUI(e){mn=w.create("div",{className:"TravelNotes-UI-FlexRowDiv TravelNotes-ProvidersToolbarUI-ImgButtonsDiv"},e),Ln(),xn()}set provider(e){wn(e)}set transitMode(e){bn(e)}providersAdded(){for(;mn.firstChild;)mn.removeChild(mn.firstChild);Ln(),xn()}};let En="geolocation"in navigator?o.inactive:o.disabled,jn=null;function Pn(e){De.dispatch("geolocationpositionchanged",{position:e})}function Dn(){o.active===En&&(En=o.inactive),De.dispatch("geolocationstatuschanged",{status:En}),navigator.geolocation.clearWatch(jn),jn=null}function Cn(e){1===e.code&&(En=o.refusedByUser),Dn()}const Rn=new class{constructor(){Object.freeze(this)}get status(){return En}switch(){switch(En){case o.inactive:En=o.active,De.dispatch("geolocationstatuschanged",{status:En}),navigator.geolocation.getCurrentPosition(Pn,Cn,y.geoLocation.options),jn=navigator.geolocation.watchPosition(Pn,Cn,y.geoLocation.options);break;case o.active:Dn()}return En}};let Mn=null,Sn=null,On=null;function An(e){e.stopPropagation(),Be.setKeysFromDialog()}function kn(e){e.stopPropagation(),Rn.switch()}function Un(e){e.target.textContent="📌"===e.target.textContent?"❌":"📌",On.pin()}const Bn=new class{constructor(){Object.freeze(this)}createUI(e){On=e,Sn=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},e),w.create("text",{value:"🏠"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:window.location.origin,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Home"},Sn))),w.create("text",{value:"?"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:"https://github.com/wwwouaiebe/leaflet.TravelNotes/tree/gh-pages/TravelNotesGuides",target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Help"},Sn))),w.create("text",{value:"@"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:y.travelNotesToolbarUI.contactMail.url||window.location.origin,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Contact"},Sn))),y.APIKeysDialog.showButton&&w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelNotesToolbarUI - API keys"),textContent:"🔑"},Sn).addEventListener("click",An,!1),o.disabled{e.classList.toggle("TravelNotes-Hidden")})}function h(e){t=e.target.checked,document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")})}return new class{constructor(){Object.freeze(this)}remove(){!function(){document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row, .TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.removeEventListener("contextmenu",c,!1),e.removeEventListener("mouseenter",u,!1),e.removeEventListener("mouseleave",g,!1)});let e=document.querySelector(".TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes");e&&o.removeChild(e)}(),i&&(d&&(d.removeEventListener("click",h,!1),i.removeChild(d),d=null),s&&(s.removeEventListener("click",v,!1),i.removeChild(s),s=null),n.removeChild(i),i=null),l&&(n.removeChild(l),l=null)}add(){-1!==he.editedRouteObjId&&(i=w.create("div",null,n),w.create("text",{value:E.getText("ItineraryPaneUI - Show notes")},i),s=w.create("input",{type:"checkbox",id:"TravelNotes-ItineraryPane-ShowNotesInput",checked:e},i),s.addEventListener("click",v,!1),w.create("text",{value:E.getText("ItineraryPaneUI - Show maneuvers")},i),d=w.create("input",{type:"checkbox",id:"TravelNotes-ItineraryPane-ShowManeuversInput",checked:t},i),d.addEventListener("click",h,!1),l=Wt.getRouteHeaderHTML("TravelNotes-ItineraryPaneUI-",he.travel.editedRoute),n.appendChild(l),o.appendChild(Wt.getEditedRouteManeuversAndNotesHTML("TravelNotes-ItineraryPaneUI-")),document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row, .TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.addEventListener("contextmenu",c,!1),e.addEventListener("mouseenter",u,!1),e.addEventListener("mouseleave",g,!1)}),e||document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")}),t||document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")}))}getId(){return a.itineraryPane}getButtonText(){return E.getText("PanesManagerUI - Itinerary")}setPaneDivs(e,t){o=e,n=t}}}let zn=-1,Fn=-1,Vn=!1;let Wn=null,Kn=null,_n=null,Zn=[];class Xn{constructor(e,t){this.name=f.sanitizeToJsString(e),this.items=[],this.filterTagsArray=[],this.elementTypes=["node","way","relation"],this.isSelected=!1,this.isExpanded=!1,this.isRoot=!1,t&&(this.isExpanded=!0,this.isRoot=!0)}}function Gn(){-1===Fn?Fn=T():De.dispatch("removeobject",{objId:Fn});let e=he.map.getCenter();Kn=he.map.getBounds();let t=me.getSquareBoundingBox([e.lat,e.lng],5e3);Kn.getSouthWest().lat=Math.max(Kn.getSouthWest().lat,t.getSouthWest().lat),Kn.getSouthWest().lng=Math.max(Kn.getSouthWest().lng,t.getSouthWest().lng),Kn.getNorthEast().lat=Math.min(Kn.getNorthEast().lat,t.getNorthEast().lat),Kn.getNorthEast().lng=Math.min(Kn.getNorthEast().lng,t.getNorthEast().lng),De.dispatch("addrectangle",{objId:Fn,bounds:Kn,properties:y.osmSearch.nextSearchLimit})}function Jn(e){e.isSelected&&0{o.filterTagsArray.forEach(a=>{(function(e,t){let o=!0;return t.forEach(t=>{let[a,n]=Object.entries(t)[0];o=o&&e.tags[a]&&(!n||e.tags[a]===n)}),o})(e,a)&&(e.description=o.name,t.set(e.id,e))})})}function qn(e){let t=new Map,o=new Map,a=new Map,n=new Map;function i(e){e.geometry=[[]],e.lat=r.defaultValue,e.lon=r.defaultValue;let t=0;e.nodes.forEach(a=>{let n=o.get(a);e.geometry[0].push([n.lat,n.lon]),e.lat+=n.lat,e.lon+=n.lon,t++}),0!==t&&(e.lat/=t,e.lon/=t)}e.forEach(e=>{switch(e.type){case"node":o.set(e.id,e);break;case"way":a.set(e.id,e);break;case"relation":n.set(e.id,e)}e.tags&&Yn(e,t)}),t.forEach(e=>{switch(e.type){case"way":i(e);break;case"relation":!function(e){e.geometry=[[]],e.lat=r.defaultValue,e.lon=r.defaultValue;let t=0;e.members.forEach(o=>{if("way"===o.type){let n=a.get(o.ref);i(n),e.geometry.push(n.geometry[0]),e.lat+=n.lat,e.lon+=n.lon,t++}}),0!==t&&(e.lat/=t,e.lon/=t)}(e)}}),he.searchData=Array.from(t.values()).sort((e,t)=>e.description>t.description?1:e.description{e.filterTagsArray.forEach(o=>{let[a,n]=Object.entries(o[0])[0],r=t.get(a);r||(r={values:new Map,elements:new Map},t.set(a,r)),r.values.set(n,n),e.elementTypes.forEach(e=>{r.elements.set(e,e)})})});let o="("+Kn.getSouthWest().lat.toFixed(r.fixed)+","+Kn.getSouthWest().lng.toFixed(r.fixed)+","+Kn.getNorthEast().lat.toFixed(r.fixed)+","+Kn.getNorthEast().lng.toFixed(r.fixed)+")";return t.forEach((t,a)=>{let n='"'+a+'"';if(1===t.values.size){let e=t.values.values().next().value;e&&(n+='="'+e+'"')}else 1{n+=e+"|"}),n=n.substr(0,n.length-1)+'"');let r=1===t.elements.size?t.elements.values().next().value:"nwr",i=y.overpassApi.url+"?data=[out:json][timeout:"+y.overpassApi.timeOut+"];"+r+"["+n+"]"+o+";"+("node"===r?"":"(._;>;);")+"out;";e.push(fetch(i))}),e}()).then($n))}show(){he.map.on("zoom",Gn),he.map.on("move",Gn),Gn(),Wn&&(-1===zn?zn=T():De.dispatch("removeobject",{objId:zn}),De.dispatch("addrectangle",{objId:zn,bounds:[[Wn.getSouthWest().lat,Wn.getSouthWest().lng],[Wn.getNorthEast().lat,Wn.getNorthEast().lng]],properties:y.osmSearch.previousSearchLimit}))}hide(){let e=De;he.map.off("zoom",Gn),he.map.off("move",Gn),-1!==Fn&&(e.dispatch("removeobject",{objId:Fn}),Fn=-1),-1!==zn&&(e.dispatch("removeobject",{objId:zn}),zn=-1)}parseDictionary(e){_n=new Xn("All",!0);let t=[_n.items],o=null,a=null;e.split(/\r\n|\r|\n/).forEach(e=>{""!==e&&function(e){let n=e.split(";");for(;""===n[n.length-1];)n.pop();let r=0,i=null;n.forEach(e=>{if(""!==e)if(-1===e.indexOf("="))a=new Xn(e),t[r].push(a),t[r+1]=a.items,o=a.filterTagsArray;else{let t=e.split("=");if("element"===t[0])a.elementTypes=[t[1]];else{let e={};e[t[0]]="*"===t[1]?null:t[1],i=i||[],i.push(e)}}r++}),i&&o.push(i)}(e)})}};function er(){let e=null,t=null,o=null,n=null,i=null,l=-1,s=0;function d(t){t.stopPropagation(),t.preventDefault();let o=t.target;for(;!o.osmElement;)o=o.parentNode;t.latlng={lat:r.defaultValue,lng:r.defaultValue},t.fromUI=!0,t.originalEvent={clientX:t.clientX,clientY:t.clientY,latLng:[o.osmElement.lat,o.osmElement.lon],osmElement:o.osmElement,geometry:o.osmElement.geometry},function(e,t){let o=_e();return lt(e,function(){let t=e.originalEvent.latLng;return[{context:Bo,name:E.getText("MapContextMenu - Select this point as start point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.first.lat?Bo.setStartPoint:null,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as way point"),action:-1===he.editedRouteObjId?null:Bo.addWayPoint,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as end point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.last.lat?Bo.setEndPoint:null,param:t},{context:to,name:E.getText("OsmSearchContextMenu - Create a route note with this result"),action:to.newSearchNote,param:{osmElement:e.originalEvent.osmElement,isTravelNote:!1}},{context:to,name:E.getText("OsmSearchContextMenu - Create a travel note with this result"),action:to.newSearchNote,param:{osmElement:e.originalEvent.osmElement,isTravelNote:!0}},{context:to,name:to.osmSearchNoteDialog?E.getText("OsmSearchContextMenu - Hide note dialog"):E.getText("OsmSearchContextMenu - Show note dialog"),action:to.changeOsmSearchNoteDialog},{context:o,name:E.getText("OsmSearchContextMenu - Zoom to this result"),action:o.zoomToPoi,param:{latLng:e.originalEvent.latLng,geometry:e.originalEvent.geometry}}]}(),t)}(t,e).show()}function u(e){e.stopPropagation(),l=e.target.objId,De.dispatch("addsearchpointmarker",{objId:e.target.objId,latLng:[e.target.osmElement.lat,e.target.osmElement.lon],geometry:e.target.osmElement.geometry})}function g(e){e.stopPropagation(),De.dispatch("removeobject",{objId:e.target.objId})}function v(){document.querySelectorAll(".TravelNotes-OsmSearchPaneUI-SearchResult").forEach(t=>{t.removeEventListener("contextmenu",d,!1),t.removeEventListener("mouseenter",u,!1),t.removeEventListener("mouseleave",g,!1),e.removeChild(t)})}function h(e){s++;let t=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchItem TravelNotes-OsmSearchPaneUI-SearchItemMargin"+s,dictItem:e},i);if(!e.isRoot){w.create("input",{type:"checkbox",checked:e.isSelected},t).addEventListener("change",(function(e){!function e(t,o){t.isSelected=o,t.items.forEach(t=>{e(t,o)})}(e.target.parentNode.dictItem,e.target.checked),i.textContent="",h(Qn.dictionary)}),!1)}if(0===e.filterTagsArray.length){w.create("div",{className:"TravelNotes-UI-Button TravelNotes-OsmSearchPaneUI-TreeArrow",textContent:e.isExpanded?"▼":"▶"},t).addEventListener("click",(function(e){e.target.parentNode.dictItem.isExpanded=!e.target.parentNode.dictItem.isExpanded,i.textContent="",h(Qn.dictionary)}),!1)}w.create("text",{value:e.name},t),e.isExpanded&&e.items.forEach(h),s--}function m(){v(),Qn.dictionary.isExpanded=!1,i.textContent="",h(Qn.dictionary),n=w.create("div",{className:"TravelNotes-WaitAnimation"},t),w.create("div",{className:"TravelNotes-WaitAnimationBullet"},n),Qn.search()}function p(e){e.items.forEach(p),e.isSelected=!1}function b(){p(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function y(e){e.items.forEach(y),e.isExpanded=!0}function N(){y(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function x(e){e.items.forEach(x),e.isRoot||(e.isExpanded=!1)}function L(){x(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function I(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}function j(e,t){t&&w.create("div",{textContent:t},e)}function P(t){let o=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-Row",osmElement:t,objId:T()},e),a="";a=t.tags.rcn_ref?"
"+t.tags.rcn_ref+"
":It.getIconDataFromName(t.description)||"";let n=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-IconCell"},o);f.sanitizeToHtmlElement(a,n);let r=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-Cell"},o);j(r,t.description),j(r,t.tags.name),j(r,t.tags.rcn_ref),j(r,function(e){let t=(e.tags["addr:street"]?(e.tags["addr:housenumber"]?e.tags["addr:housenumber"]+" ":"")+e.tags["addr:street"]+" ":"")+(e.tags["addr:city"]?(e.tags["addr:postcode"]?e.tags["addr:postcode"]+" ":"")+e.tags["addr:city"]:"");return""===t?null:t}(t)),t.tags.phone&&j(r,"☎️ : "+t.tags.phone),t.tags.email&&w.create("a",{href:"mailto:"+t.tags.email,textContent:t.tags.email},w.create("div",{textContent:"📧 : "},r)),t.tags.website&&w.create("a",{href:t.tags.website,target:"_blank",textContent:t.tags.website},w.create("div",null,r)),o.title="";for(const[e,a]of Object.entries(t.tags))o.title+=e+"="+a+"\n";o.addEventListener("contextmenu",d,!1),o.addEventListener("mouseenter",u,!1),o.addEventListener("mouseleave",g,!1)}return new class{constructor(){Object.freeze(this)}remove(){Qn.hide(),v(),i&&(t.removeChild(i),i=null),o&&t.removeChild(o),n&&(t.removeChild(n),n=null),De.dispatch("removeobject",{objId:l})}add(){Qn.show(),o=w.create("div",null,t),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Search OpenStreetMap"),textContent:"🔎"},o).addEventListener("click",m,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Expand tree"),textContent:"▼"},o).addEventListener("click",N,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Collapse tree"),textContent:"▶"},o).addEventListener("click",L,!1),w.create("div",{id:"TravelNotes-OsmSearchPaneUI-ClearAllButton",className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Clear tree"),textContent:"❌"},o).addEventListener("click",b,!1),i=w.create("div",{id:"TravelNotes-OsmSearchPaneUI-SearchTree"},t),i.addEventListener("wheel",I,!1),Qn.dictionary.name="",h(Qn.dictionary),he.searchData.forEach(P)}getId(){return a.searchPane}getButtonText(){return E.getText("PanesManagerUI - Search")}setPaneDivs(o,a){e=o,t=a}}}let tr=null,or=!1,ar=null,nr=null;function rr(){ar&&(clearTimeout(ar),ar=null),tr.classList.remove("TravelNotes-UI-Minimized"),nr.classList.add("TravelNotes-Hidden");let e=tr.childNodes;for(let t=1;t{e.removeEventListener("contextmenu",s,!1),e.removeEventListener("dragstart",n,!1)}),t.removeChild(o)),o=null}add(){o=Wt.getTravelNotesHTML("TravelNotes-TravelNotesPaneUI-"),o.addEventListener("drop",l,!1),o.addEventListener("dragover",i,!1),t.appendChild(o),o.childNodes.forEach(e=>{e.draggable=!0,e.addEventListener("contextmenu",s,!1),e.addEventListener("dragstart",n,!1),e.classList.add("TravelNotes-UI-MoveCursor")})}getId(){return a.travelNotesPane}getButtonText(){return E.getText("PanesManagerUI - Travel notes")}setPaneDivs(e){t=e}}}()),gn.addPane(er()),gn.createUI(tr),In.createUI(tr),y.travelEditor.startMinimized){tr.addEventListener("mouseenter",rr,!1),tr.addEventListener("mouseleave",lr,!1),tr.classList.add("TravelNotes-UI-Minimized");let e=tr.childNodes;for(let t=1;tan.setTravelName(),!1),tr.addEventListener("setrouteslist",()=>an.setRoutesList(),!1),tr.addEventListener("showitinerary",()=>gn.showPane(a.itineraryPane),!1),tr.addEventListener("updateitinerary",()=>gn.updatePane(a.itineraryPane),!1),tr.addEventListener("showtravelnotes",()=>gn.showPane(a.travelNotesPane),!1),tr.addEventListener("updatetravelnotes",()=>gn.updatePane(a.travelNotesPane),!1),tr.addEventListener("showsearch",()=>gn.showPane(a.searchPane),!1),tr.addEventListener("updatesearch",()=>gn.updatePane(a.searchPane),!1),tr.addEventListener("providersadded",()=>In.providersAdded(),!1),tr.addEventListener("setprovider",e=>{e.data&&e.data.provider&&(In.provider=e.data.provider)},!1),tr.addEventListener("settransitmode",e=>{e.data&&e.data.provider&&(In.transitMode=e.data.transitMode)},!1),document.addEventListener("geolocationstatuschanged",e=>{Bn.geoLocationStatusChanged(e.data.status)},!1),tr.addEventListener("click",e=>{e.target.id&&"TravelNotes-UI-MainDiv"===e.target.id&&(e.stopPropagation(),e.preventDefault())},!1),tr.addEventListener("dblclick",e=>{e.stopPropagation(),e.preventDefault()},!1),tr.addEventListener("contextmenu",e=>{e.stopPropagation(),e.preventDefault()},!1),tr.addEventListener("wheel",e=>{e.stopPropagation(),e.preventDefault()},!1)}}};function cr(){let e=pe();e.title=E.getText("AboutDialog - About Travel & Notes");f.sanitizeToHtmlElement('

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.

Copyright - 2017 2021 - wwwouaiebe

Contact : https://www.ouaie.be/

GitHub : https://github.com/wwwouaiebe/leaflet.TravelNotes

Version : 2.3.0.

This program uses: leaflet, Project-OSRM/osrm-text-instructions and the Overpass API

',e.content),e.show().then().catch(e=>{e instanceof Error&&console.error(e)})}let ur=null;const gr=new class{constructor(){Object.freeze(this)}getOpenPromise(){return new Promise((function(e,t){if(ur)return void e();let o=window.indexedDB.open("TravelNotesDb",1);o.onerror=function(){ur=null,t(new Error("Not possible to open the db"))},o.onsuccess=function(t){ur=t.target.result,e()},o.onupgradeneeded=function(e){ur=e.target.result,ur.createObjectStore("Travels",{keyPath:"UUID"})}}))}getReadPromise(e){return new Promise((function(t,o){if(!ur)return void o(new Error("Database not opened"));let a=ur.transaction(["Travels"],"readonly");a.onerror=function(){o(new Error("Transaction error"))},a.objectStore("Travels").get(e).onsuccess=function(e){t(e.target.result?e.target.result.data:null)}}))}getWritePromise(e,t){return new Promise((function(o,a){if(!ur)return void a(new Error("Database not opened"));let n=null;try{n=ur.transaction(["Travels"],"readwrite")}catch(e){return void a(e)}n.onerror=function(){a(new Error("Transaction error"))},n.objectStore("Travels").put({UUID:e,data:t}).onsuccess=function(){o()}}))}closeDb(e){if(!ur)return;if(!e)return ur.close(),void(ur=null);let t=ur.transaction(["Travels"],"readwrite");t.onerror=function(){};let o=t.objectStore("Travels").delete(e);o.onerror=function(){ur.close(),ur=null},o.onsuccess=function(){ur.close(),ur=null}}};let vr=!1;function hr(){document.addEventListener("routeupdated",e=>{e.data&&ma.updateRoute(e.data.removedRouteObjId,e.data.addedRouteObjId)},!1),document.addEventListener("routepropertiesupdated",e=>{e.data&&ma.updateRouteProperties(e.data.routeObjId)},!1),document.addEventListener("noteupdated",e=>{e.data&&ma.updateNote(e.data.removedNoteObjId,e.data.addedNoteObjId)},!1),document.addEventListener("removeobject",e=>{e.data&&ma.removeObject(e.data.objId)},!1),document.addEventListener("removeallobjects",()=>ma.removeAllObjects(),!1),document.addEventListener("zoomto",e=>{e.data&&Xo.zoomTo(e.data.latLng,e.data.geometry)},!1),document.addEventListener("additinerarypointmarker",e=>{e.data&&ma.addItineraryPointMarker(e.data.objId,e.data.latLng)},!1),document.addEventListener("addsearchpointmarker",e=>{e.data&&ma.addSearchPointMarker(e.data.objId,e.data.latLng,e.data.geometry)},!1),document.addEventListener("addrectangle",e=>{e.data&&ma.addRectangle(e.data.objId,e.data.bounds,e.data.properties)},!1),document.addEventListener("addwaypoint",e=>{e.data&&ma.addWayPoint(e.data.wayPoint,e.data.letter)},!1),document.addEventListener("layerchange",e=>{e.data&&ma.setLayer(e.data.layer)}),document.addEventListener("geolocationpositionchanged",e=>{e.data&&Xo.onGeolocationPositionChanged(e.data.position)},!1),document.addEventListener("geolocationstatuschanged",e=>{e.data&&Xo.onGeolocationStatusChanged(e.data.status)},!1),document.addEventListener("roadbookupdate",()=>(Pa.saveStatus=e.modified,void(j.storageAvailable("localStorage")&&gr.getOpenPromise().then(()=>{gr.getWritePromise(he.UUID,Wt.getTravelHTML("TravelNotes-Roadbook-").outerHTML)}).then(()=>localStorage.setItem(he.UUID,Date.now())).catch(e=>{e instanceof Error&&console.error(e)}))),!1),document.addEventListener("profileclosed",e=>{e.data&&ro.onProfileClosed(e.data.objId)},!1)}function mr(e){he.travel.readOnly||function(e){let t=[e.latlng.lat,e.latlng.lng],o=_e();return lt(e,[{context:Bo,name:E.getText("MapContextMenu - Select this point as start point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.first.lat?Bo.setStartPoint:null,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as way point"),action:-1===he.editedRouteObjId?null:Bo.addWayPoint,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as end point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.last.lat?Bo.setEndPoint:null,param:t},{context:ko,name:E.getText("MapContextMenu - Add a route"),action:ko.addRoute},{context:ko,name:E.getText("MapContextMenu - Hide all routes"),action:ko.hideRoutes},{context:ko,name:E.getText("MapContextMenu - Show all routes"),action:ko.showRoutes},{context:to,name:E.getText("MapContextMenu - New travel note"),action:to.newTravelNote,param:t},{context:to,name:E.getText("MapContextMenu - Hide all notes"),action:to.hideNotes},{context:to,name:E.getText("MapContextMenu - Show all notes"),action:to.showNotes},{context:o,name:E.getText("MapContextMenu - Zoom to travel"),action:o.zoomToTravel},{context:null,name:E.getText("MapContextMenu - About Travel & Notes"),action:cr}])} +function oo(){let e=T(),t=null,o=null,a=null,n=null,r=null,i=null,s=null,d=null;function c(e){let o=t.getBoundingClientRect(),a=(e.clientX-o.x-l.margin/(2*l.margin+l.width)*o.width)/(l.width/(2*l.margin+l.width)*o.width)*d.distance;return me.getLatLngElevAtDist(d,a)}function g(e){e.preventDefault(),e.stopPropagation();let t=c(e);t&&(e.routeObjId=d.objId,e.latlng={lat:t.latLng[0],lng:t.latLng[1]},e.originalEvent={clientX:e.clientX,clientY:e.clientY},function(e){let t=_e();return lt(e,[{context:to,name:E.getText("ProfileContextMenu - Add a note to the route at this point"),action:to.newRouteNote,param:{routeObjId:e.routeObjId,lat:e.latlng.lat,lng:e.latlng.lng}},{context:t,name:E.getText("ProfileContextMenu - Zoom to this point"),action:t.zoomToLatLng,param:[e.latlng.lat,e.latlng.lng]}])}(e).show())}function v(){De.dispatch("removeobject",{objId:e})}function h(i){let s=t.getBoundingClientRect(),g=c(i);if(g){De.dispatch("removeobject",{objId:e}),De.dispatch("additinerarypointmarker",{objId:e,latLng:g.latLng}),o&&(t.removeChild(o),t.removeChild(r),t.removeChild(a),t.removeChild(n));let c=(2*l.margin+l.width)*(i.clientX-s.x)/s.width,v=l.margin+l.height;o=document.createElementNS(u,"polyline"),o.setAttributeNS(null,"points",String(c)+","+l.margin+" "+c+","+v),o.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-markerPolyline"),t.appendChild(o);let h=g.routeDistance>d.distance/2?"end":"start",m=g.routeDistance>d.distance/2?-l.xDeltaText:l.xDeltaText;r=document.createElementNS(u,"text"),r.appendChild(document.createTextNode(j.formatDistance(g.routeDistance))),r.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),r.setAttributeNS(null,"x",c+m),r.setAttributeNS(null,"y",l.margin+l.yDeltaText),r.setAttributeNS(null,"text-anchor",h),t.appendChild(r),a=document.createElementNS(u,"text"),a.appendChild(document.createTextNode("Alt. "+g.elev.toFixed(0)+" m.")),a.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),a.setAttributeNS(null,"x",c+m),a.setAttributeNS(null,"y",l.margin+2*l.yDeltaText),a.setAttributeNS(null,"text-anchor",h),t.appendChild(a),n=document.createElementNS(u,"text"),n.appendChild(document.createTextNode("Pente "+g.ascent.toFixed(0)+" % ")),n.setAttributeNS(null,"class","TravelNotes-Route-SvgProfile-elevText"),n.setAttributeNS(null,"x",c+m),n.setAttributeNS(null,"y",l.margin+3*l.yDeltaText),n.setAttributeNS(null,"text-anchor",h),t.appendChild(n)}}function m(){t&&(t.removeEventListener("contextmenu",g,!1),t.removeEventListener("mousemove",h,!1),t.removeEventListener("mouseleave",v,!1),De.dispatch("removeobject",{objId:e}),i.content.removeChild(s),i.content.removeChild(t)),t=null,o=null,n=null,r=null,a=null,s=null}return i=Ze(),i.createWindow(),i.onClose=function(){m(),De.dispatch("profileclosed",{objId:d.objId})},i.onUpdate=function(e){m(),d=e[0],t=St().createSvg(d),i.header.textContent=E.getText("ProfileWindow - Profile {name}",{name:d.computedName}),i.content.appendChild(t),t.addEventListener("contextmenu",g,!1),t.addEventListener("mousemove",h,!1),t.addEventListener("mouseleave",v,!1),s=w.create("div",{className:"TravelNotes-ProfileWindow-Ascent",textContent:E.getText("ProfileWindow - Ascent: {ascent} m. - Descent: {descent} m. - Distance: {distance}",{ascent:d.itinerary.ascent.toFixed(0),descent:d.itinerary.descent.toFixed(0),distance:j.formatDistance(d.distance)})}),i.content.appendChild(s)},i}let ao=new Map,no=St();const ro=new class{constructor(){Object.freeze(this)}createProfile(e){let t=ao.get(e.objId);if(e.itinerary.hasProfile){y.route.elev.smooth&&no.smooth(e),e.itinerary.ascent=0,e.itinerary.descent=0;let o=e.itinerary.itineraryPoints.first.elev;e.itinerary.itineraryPoints.forEach(t=>{let a=t.elev-o;0>a?e.itinerary.descent-=a:e.itinerary.ascent+=a,o=t.elev}),t&&t.update(e)}else t&&t.close()}updateProfile(e,t){let o=ao.get(e);o&&(ao.delete(e),t&&t.itinerary.hasProfile?(o.update(t),ao.set(t.objId,o)):o.close())}deleteProfile(e){let t=ao.get(e);t&&t.close()}deleteAllProfiles(){ao.forEach(e=>e.close())}showProfile(e){let t=ao.get(e);t||(t=oo());let o=He.getRoute(e);t.update(o),ao.set(e,t)}onProfileClosed(e){ao.delete(e)}};let io=null;const lo=new class{constructor(){Object.freeze(this)}createUI(){io=w.create("div",{id:"TravelNotes-AttributionsUI"},document.body),this.attributions=""}set attributions(e){let t='© Leaflet | © OpenStreetMap contributors '+e+'| © Travel & Notes';for(;io.firstChild;)io.removeChild(io.firstChild);f.sanitizeToHtmlElement(t,io)}};class so{constructor(e){if(!e.name||"string"!=typeof e.name)throw new Error("invalid name for layer");if(this.name=f.sanitizeToJsString(e.name),!e.service||"wms"!==e.service&&"wmts"!==e.service)throw new Error("invalid service for layer "+this.name);if(this.service=e.service,!e.url||"string"!=typeof e.url)throw new Error("invalid url for layer "+this.name);if(this.url=e.url,"wms"===this.service){if(!(e.wmsOptions&&e.wmsOptions.layers&&"string"==typeof e.wmsOptions.layers&&e.wmsOptions.format&&"string"==typeof e.wmsOptions.format&&e.wmsOptions.transparent&&"boolean"==typeof e.wmsOptions.transparent))throw new Error("invalid wmsOptions for layer "+this.name);this.wmsOptions=e.wmsOptions,this.wmsOptions.layers=f.sanitizeToJsString(this.wmsOptions.layers),this.wmsOptions.format=f.sanitizeToJsString(this.wmsOptions.format)}try{e.bounds&&"number"==typeof e.bounds[0][0]&&"number"==typeof e.bounds[0][1]&&"number"==typeof e.bounds[1][0]&&"number"==typeof e.bounds[1][1]&&(this.bounds=e.bounds)}catch(e){throw new Error("invalid bounds for layer "+this.name)}if(e.minZoom&&"number"==typeof e.minZoom&&(this.minZoom=e.minZoom),e.maxZoom&&"number"==typeof e.maxZoom&&(this.maxZoom=e.maxZoom),!(e.toolbar&&e.toolbar.text&&"string"==typeof e.toolbar.text&&e.toolbar.color&&"string"==typeof e.toolbar.color&&e.toolbar.backgroundColor&&"string"==typeof e.toolbar.backgroundColor))throw new Error("invalid toolbar for layer "+this.name);if(this.toolbar=e.toolbar,this.toolbar.text=f.sanitizeToJsString(this.toolbar.text),this.toolbar.color=f.sanitizeToColor(this.toolbar.color)||"#000000",this.toolbar.backgroundColor=f.sanitizeToColor(this.toolbar.backgroundColor)||"#ffffff",!e.providerName||"string"!=typeof e.providerName)throw new Error("invalid providerName for layer "+this.name);if(this.providerName=f.sanitizeToJsString(e.providerName),"boolean"!=typeof e.providerKeyNeeded)throw new Error("invalid providerKeyNeeded for layer "+this.name);if(this.providerKeyNeeded=e.providerKeyNeeded,""===e.attribution)this.attribution="";else{if(!e.attribution||"string"!=typeof e.attribution)throw new Error("invalid attribution for layer "+this.name);this.attribution=f.sanitizeToHtmlString(e.attribution).htmlString}if(e.getCapabilitiesUrl&&"string"==typeof e.getCapabilitiesUrl&&(this.getCapabilitiesUrl=f.sanitizeToUrl(e.getCapabilitiesUrl).url,""===this.getCapabilitiesUrl))throw new Error("invalid getCapabilitiesUrl for layer "+this.name);Object.freeze(this)}}function co(e){return new so(e)}let uo=[co({service:"wmts",url:"https://{s}.tile.osm.org/{z}/{x}/{y}.png",name:"OSM - Color",toolbar:{text:"OSM",color:"#ff0000",backgroundColor:"#ffffff"},providerName:"OSM",providerKeyNeeded:!1,attribution:""})],go=null,vo=null,ho=null,mo=0,po=0,fo=0,bo=0;function yo(e){e.target.style.color=e.target.layer.toolbar.backgroundColor,e.target.style["background-color"]=e.target.layer.toolbar.color}function wo(e){e.target.style.color=e.target.layer.toolbar.color,e.target.style["background-color"]=e.target.layer.toolbar.backgroundColor}function No(e){e.target.classList.add("TravelNotes-LayersToolbarUI-LinkButton-Enter"),e.target.classList.remove("TravelNotes-LayersToolbarUI-LinkButton-Leave")}function To(e){De.dispatch("layerchange",{layer:e.target.layer}),lo.attributions=e.target.layer.attribution,he.travel.layerName=e.target.layer.name}function xo(e){e.target.classList.add("TravelNotes-LayersToolbarUI-LinkButton-Leave"),e.target.classList.remove("TravelNotes-LayersToolbarUI-LinkButton-Enter")}function Lo(e){e.deltaY&&(mo-=e.deltaY*c[e.deltaMode],mo=mo>bo?bo:mo,mo=mofunction(e){if(e.providerKeyNeeded&&!Be.hasKey(e.providerName.toLowerCase()))return;let t=w.create("div",{type:"layer",className:"TravelNotes-LayersToolbarUI-Button",title:e.name,layer:e,textContent:e.toolbar.text,style:"color:"+e.toolbar.color+";background-color:"+e.toolbar.backgroundColor},ho);t.addEventListener("mouseenter",yo,!1),t.addEventListener("mouseleave",wo,!1),t.addEventListener("click",To,!1),po=t.clientHeight,fo+=po}(e)),y.layersToolbarUI.theDevil&&y.layersToolbarUI.theDevil.addButton&&function(e,t,o){let a=w.create("div",{type:"link",className:"TravelNotes-LayersToolbarUI-Button TravelNotes-LayersToolbarUI-LinkButton-Leave"},ho);w.create("a",{href:e,title:t,textContent:o,target:"_blank"},a),a.addEventListener("mouseenter",No,!1),a.addEventListener("mouseleave",xo,!1),fo+=a.clientHeight}("https://www.google.com/maps/@"+he.map.getCenter().lat+","+he.map.getCenter().lng+","+he.map.getZoom()+"z","Reminder! The devil will know everything about you","👿"),bo+=po,mo=bo,ho.style.marginTop=String(mo)+"px",ho.addEventListener("wheel",Lo,!1)}const Po=new class{constructor(){Object.freeze(this)}createUI(){vo=w.create("div",{id:"TravelNotes-LayersToolbarUI"},document.body),w.create("div",{id:"TravelNotes-LayersToolbarUI-Header",textContent:E.getText("LayersToolbarUI - Layers")},vo),vo.addEventListener("mouseenter",jo,!1),vo.addEventListener("mouseleave",Eo,!1),De.dispatch("layerchange",{layer:uo[0]}),lo.attributions=uo[0].attribution}getLayer(e){let t=uo.find(t=>t.name===e)||uo[0];return t.providerKeyNeeded&&(Be.hasKey(t.providerName.toLowerCase())||(t=uo[0])),t}setLayer(e){let t=uo.find(t=>t.name===e)||uo[0];t.providerKeyNeeded&&(Be.hasKey(t.providerName.toLowerCase())||(t=uo[0])),De.dispatch("layerchange",{layer:t}),lo.attributions=t.attribution,he.travel.layerName=t.name}addLayers(e){e.forEach(e=>{uo.push(co(e))})}};function Do(){let e=null,t=null,o=null,a=[],n=0,r=[],i=null,l=null,s=null,d=null,c=0;function u(){r.forEach(e=>document.body.removeChild(e)),r.length=0,s.removeEventListener("click",()=>window.print(),!1),d.removeEventListener("click",u,!1),document.body.removeChild(l);let e=document.body.children;for(let t=0;to.lat?e.bottomLeft.lat:e.upperRight.lat,lng:t.lng}:t.lat===o.lat?{lat:t.lat,lng:t.lng=e.bottomLeft.lat&&n.lng=e.bottomLeft.lng&&n.lng<=e.upperRight.lng&&n.lat=e.bottomLeft.lat&&n.lng>a.lng)return n;if(n={lat:e.bottomLeft.lat,lng:(e.bottomLeft.lat-i)/r},n.lng>=e.bottomLeft.lng&&n.lng<=e.upperRight.lng&&n.lat>a.lat)return n;throw new Error("intermediate point not found")}function v(o){n++;let a="TravelNotes-RouteViewDiv"+n,l=w.create("div",{className:"TravelNotes-routeViewDiv",id:a},document.body);r.push(l),e.pageBreak&&l.classList.add("TravelNotes-PrintPageBreak"),l.style.width=String(e.paperWidth)+"mm",l.style.height=String(e.paperHeight)+"mm";let s=e.printNotes?function(){let e=[];return t.notes.forEach(t=>{let o=window.L.divIcon({iconSize:[t.iconWidth,t.iconHeight],iconAnchor:[t.iconWidth/2,t.iconHeight/2],popupAnchor:[0,-t.iconHeight/2],html:t.iconContent,className:"TravelNotes-Map-AllNotes "}),a=window.L.marker(t.iconLatLng,{zIndexOffset:100,icon:o,draggable:!0});e.push(a)}),e}():[];s.push(function(){let e=Po.getLayer(he.travel.layerName),t=Be.getUrl(e),o=null;return o="wmts"===e.service.toLowerCase()?window.L.tileLayer(t):window.L.tileLayer.wms(t,e.wmsOptions),o.options.attribution=f.sanitizeToHtmlString(' © OpenStreetMap contributors '+e.attribution+'| © Travel & Notes ').htmlString,o}()),s.push(window.L.circleMarker([o.entryPoint.lat,o.entryPoint.lng],y.printRouteMap.entryPointMarker)),s.push(window.L.circleMarker([o.exitPoint.lat,o.exitPoint.lng],y.printRouteMap.exitPointMarker)),s.push(i),window.L.map(a,{attributionControl:!0,zoomControl:!1,center:[(o.bottomLeft.lat+o.upperRight.lat)/2,(o.bottomLeft.lng+o.upperRight.lng)/2],zoom:e.zoomFactor,minZoom:e.zoomFactor,maxZoom:e.zoomFactor,layers:s})}function h(){let e=document.body.children;for(let t=0;twindow.print(),!1),d=w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("PrintFactory - Cancel print"),textContent:"❌"},l),d.addEventListener("click",u,!1),window.addEventListener("afterprint",u,!0);let o=[],r=t.itinerary.itineraryPoints.iterator;for(;!r.done;)o.push(r.value.latLng);i=window.L.polyline(o,{color:t.color,weight:t.width}),n=0,a.forEach(v)}return new class{constructor(){Object.freeze(this)}print(n,r){t=He.getRoute(r),t&&(e=n,function(){let t=w.create("div",{},document.body);t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.width=String(e.paperWidth-2*e.borderWidth)+"mm",t.style.height=String(e.paperHeight-2*e.borderWidth)+"mm",c=Math.ceil(t.clientWidth/256)*Math.ceil(t.clientHeight/256);let a=me.screenCoordToLatLng(0,0),n=me.screenCoordToLatLng(t.clientWidth,t.clientHeight);document.body.removeChild(t);let r=he.map.getZoomScale(he.map.getZoom(),e.zoomFactor);o=[Math.abs(a[0]-n[0])*r,Math.abs(a[1]-n[1])*r]}(),function(){a=[];let e=t.itinerary.itineraryPoints.iterator,n=e.done,r={bottomLeft:{lat:e.value.lat,lng:e.value.lng},upperRight:{lat:e.value.lat,lng:e.value.lng}},i={lat:e.value.lat,lng:e.value.lng},l=e.value;n=e.done;let s=e.value;for(;!n;){let t={bottomLeft:{lat:Math.min(r.bottomLeft.lat,s.lat),lng:Math.min(r.bottomLeft.lng,s.lng)},upperRight:{lat:Math.max(r.upperRight.lat,s.lat),lng:Math.max(r.upperRight.lng,s.lng)}},d=[t.upperRight.lat-t.bottomLeft.lat,t.upperRight.lng-t.bottomLeft.lng];o[0]>d[0]&&o[1]>d[1]?(r=t,l=e.value,n=e.done,s=e.value,n&&(r.entryPoint=i,r.exitPoint=l,a.push(r))):(l=g(r,l,s),r.bottomLeft={lat:Math.min(r.bottomLeft.lat,l.lat),lng:Math.min(r.bottomLeft.lng,l.lng)},r.upperRight={lat:Math.max(r.upperRight.lat,l.lat),lng:Math.max(r.upperRight.lng,l.lng)},r.entryPoint=i,r.exitPoint=l,a.push(r),r={bottomLeft:{lat:l.lat,lng:l.lng},upperRight:{lat:l.lat,lng:l.lng}},i={lat:l.lat,lng:l.lng}),y.printRouteMap.maxTiles{t=t&&r.defaultValue!==e.lat&&r.defaultValue!==e.lng}),t}function Oo(e){Ro=!1,je.showError(e),e instanceof Error&&console.error(e)}function Ao(){Ro=!1,he.travel.editedRoute.itinerary.validateData();let e=he.travel.editedRoute.itinerary.maneuvers.iterator;for(;!e.done;)e.value.validateData();let o=he.travel.editedRoute.itinerary.itineraryPoints.iterator;for(;!o.done;)o.value.validateData();if(function(e){let o=e.itinerary.itineraryPoints.iterator,a=e.itinerary.maneuvers.iterator;for(o.done,a.done,a.value.distance=t.defaultValue,a.done,e.distance=t.defaultValue,e.duration=t.defaultValue;!o.done;)o.previous.distance=Ke.pointsDistance(o.previous.latLng,o.value.latLng),e.distance+=o.previous.distance,a.previous.distance+=o.previous.distance,a.value.itineraryPointObjId===o.value.objId&&(e.duration+=a.previous.duration,a.value.distance=t.defaultValue,a.next&&a.value.itineraryPointObjId===a.next.itineraryPointObjId&&(a.done,a.value.distance=t.defaultValue),a.done)}(he.travel.editedRoute),"circle"!==he.travel.editedRoute.itinerary.transitMode){let e=he.travel.editedRoute.wayPoints.iterator;for(;!e.done;)e.first?e.value.latLng=he.travel.editedRoute.itinerary.itineraryPoints.first.latLng:e.last?e.value.latLng=he.travel.editedRoute.itinerary.itineraryPoints.last.latLng:e.value.latLng=me.getClosestLatLngDistance(he.travel.editedRoute,e.value.latLng).latLng}let a=he.travel.editedRoute.notes.iterator;for(;!a.done;){let e=me.getClosestLatLngDistance(he.travel.editedRoute,a.value.latLng);a.value.latLng=e.latLng,a.value.distance=e.distance}Mo(),he.travel.editedRoute.notes.sort((e,t)=>e.distance-t.distance),Co&&_e().zoomToRoute(he.travel.editedRoute.objId),ro.createProfile(he.travel.editedRoute),De.dispatch("routeupdated",{removedRouteObjId:he.travel.editedRoute.objId,addedRouteObjId:he.travel.editedRoute.objId}),De.dispatch("roadbookupdate"),De.dispatch("showitinerary"),De.dispatch("setrouteslist")}const ko=new class{constructor(){Object.freeze(this)}addRoute(){let e=ne();he.travel.routes.add(e),i.editedChanged===he.travel.editedRoute.editionStatus?(Mo(),De.dispatch("setrouteslist"),De.dispatch("roadbookupdate")):this.editRoute(e.objId)}editRoute(e){if(i.editedChanged===he.travel.editedRoute.editionStatus)return void je.showError(E.getText("RouteEditor - Not possible to edit a route without a save or cancel"));let t=He.getRoute(e),o=t.itinerary.provider,a=he.providers.get(o.toLowerCase());if(o&&""!==o&&(!a||a.providerKeyNeeded&&!Be.hasKey(o)))return void je.showError(E.getText("RouteEditor - Not possible to edit a route created with this provider",{provider:o}));-1!==he.editedRouteObjId&&this.cancelEdition(),o&&""!==o&&De.dispatch("setprovider",{provider:o});let n=t.itinerary.transitMode;n&&""!==n&&De.dispatch("settransitmode",{transitMode:n}),he.travel.editedRoute=ne(),t.editionStatus=i.editedNoChange,he.travel.editedRoute.jsonObject=t.jsonObject,he.editedRouteObjId=t.objId,he.travel.editedRoute.hidden=!1,t.hidden=!1,ro.updateProfile(he.editedRouteObjId,he.travel.editedRoute),Mo(),De.dispatch("routeupdated",{removedRouteObjId:t.objId,addedRouteObjId:he.travel.editedRoute.objId}),De.dispatch("roadbookupdate"),De.dispatch("showitinerary"),De.dispatch("setrouteslist")}removeRoute(e){let t=e;if(t===he.editedRouteObjId||t===he.travel.editedRoute.objId){if(i.editedChanged===he.travel.editedRoute.editionStatus)return void je.showError(E.getText("TravelEditor - Cannot remove an edited route"));t=he.editedRouteObjId,this.cancelEdition()}De.dispatch("routeupdated",{removedRouteObjId:t,addedRouteObjId:-1}),he.travel.routes.remove(t),ro.deleteProfile(t),Mo(),De.dispatch("roadbookupdate"),De.dispatch("setrouteslist")}removeManeuver(e){(he.travel.editedRoute.itinerary.maneuvers.previous(e,e=>t.defaultValue{Mo(),So(t)&&De.dispatch("routepropertiesupdated",{routeObjId:t.objId}),De.dispatch("roadbookupdate"),De.dispatch("setrouteslist"),De.dispatch("updateitinerary")}).catch(e=>{e instanceof Error&&console.error(e)})}printRouteMap(e){(function(){let e=null,t=null,o=null,a=null,n=null,r=null,i=null,l=null;function s(){return Object.freeze({paperWidth:parseInt(o.value),paperHeight:parseInt(a.value),borderWidth:parseInt(n.value),zoomFactor:parseInt(l.value),pageBreak:r.checked,printNotes:i.checked})}return e=pe(),e.title=E.getText("PrintRouteMapDialog - Print"),e.okButtonListener=s,t=w.create("div",{id:"TravelNotes-PrintRouteMapDialog-MainDataDiv"},e.content),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Paper width")},e),o=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput"},e),o.value=y.printRouteMap.paperWidth,w.create("text",{value:E.getText("PrintRouteMapDialog - Paper width units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Paper height")},e),a=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",value:y.printRouteMap.paperHeight},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Paper height units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Border width")},e),n=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",id:"TravelNotes-PrintRouteMapDialog-BorderWidthNumberInput",value:y.printRouteMap.borderWidth},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Border width units")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-ZoomFactorDataDiv"},t);w.create("text",{value:E.getText("PrintRouteMapDialog - Zoom factor")},e),l=w.create("input",{type:"number",className:"TravelNotes-PrintRouteMapDialog-NumberInput",value:Math.min(y.printRouteMap.zoomFactor,15),min:he.map.getMinZoom(),max:Math.min(he.map.getMaxZoom(),15)},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-PageBreakDataDiv"},t);r=w.create("input",{type:"checkbox",id:"TravelNotes-PrintRouteMapDialog-PageBreakInput",checked:y.printRouteMap.pageBreak},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Page break")},e)}(),function(){let e=w.create("div",{className:"TravelNotes-PrintRouteMapDialog-DataDiv",id:"TravelNotes-PrintRouteMapDialog-PrintNotesDataDiv"},t);i=w.create("input",{type:"checkbox",id:"TravelNotes-PrintRouteMapDialog-PrintNotesInput",checked:y.printRouteMap.printNotes},e),w.create("text",{value:E.getText("PrintRouteMapDialog - Print notes")},e)}(),e})().show().then(t=>Do().print(t,e)).catch(e=>{e instanceof Error&&console.error(e)})}showRoute(e){He.getRoute(e).hidden=!1,De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e}),De.dispatch("setrouteslist")}hideRoute(e){He.getRoute(e).hidden=!0,De.dispatch("routeupdated",{removedRouteObjId:e,addedRouteObjId:-1}),De.dispatch("setrouteslist")}showRoutes(){let e=he.travel.routes.iterator;for(;!e.done;)e.value.hidden&&(e.value.hidden=!1,De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e.value.objId}));De.dispatch("setrouteslist")}hideRoutes(){let e=he.travel.routes.iterator;for(;!e.done;)e.value.hidden||e.value.objId===he.editedRouteObjId||(e.value.hidden=!0,De.dispatch("routeupdated",{removedRouteObjId:e.value.objId,addedRouteObjId:-1}));De.dispatch("setrouteslist")}};function Uo(e,t){if(!y.wayPoint.reverseGeocoding)return De.dispatch("setrouteslist"),De.dispatch("showitinerary"),void De.dispatch("roadbookupdate");vt().getPromiseAddress(e).then(e=>{let o=e.street;""!==e.city&&(o+=" "+e.city);let a="";y.wayPoint.geocodingIncludeName&&(a=e.name),function(e,t){let o=he.travel.editedRoute.wayPoints.getAt(t);o?(he.travel.editedRoute.editionStatus=i.editedChanged,o.name=e.name,o.address=e.address,De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")):console.error("waypoint not found")}(Object.seal({name:a,address:o}),t)}).catch(e=>{e instanceof Error&&console.error(e)})}const Bo=new class{constructor(){Object.freeze(this)}addWayPoint(e){he.travel.editedRoute.editionStatus=i.editedChanged;let t=M();t.latLng=e,he.travel.editedRoute.wayPoints.add(t),Uo(e,t.objId),De.dispatch("addwaypoint",{wayPoint:he.travel.editedRoute.wayPoints.last,letter:he.travel.editedRoute.wayPoints.length-2}),he.travel.editedRoute.wayPoints.swap(t.objId,!0),ko.startRouting()}addWayPointOnRoute(e,t){let o=me.getClosestLatLngDistance(he.travel.editedRoute,e).distance;he.travel.editedRoute.editionStatus=i.editedChanged;let a=M();a.latLng=t;let n="",r=he.travel.editedRoute.wayPoints.iterator;for(;!r.done;){if(o{t.okButton.classList.remove("TravelNotes-Hidden"),y.wayPoint.geocodingIncludeName&&(a.value=e.name);let o=e.street;""!==e.city&&(o+=" "+e.city),n.value=o}).catch(e=>{t.okButton.classList.remove("TravelNotes-Hidden"),e instanceof Error&&console.error(e)})}return t=pe(),t.title=E.getText("WayPointPropertiesDialog - Waypoint properties"),t.okButtonListener=r,o=w.create("div",{id:"TravelNotes-WayPointPropertiesDialog-DataDiv"},t.content),w.create("div",{className:"TravelNotes-BaseDialog-Button",title:E.getText("WayPointPropertiesDialog - Reset address"),textContent:"🔄"},w.create("div",null,o)).addEventListener("click",i,!1),w.create("div",{textContent:E.getText("WayPointPropertiesDialog - Name")},o),a=w.create("input",{type:"text",value:e.name,className:"TravelNotes-WayPointPropertiesDialog-Input"},w.create("div",null,o)),w.create("text",{value:E.getText("WayPointPropertiesDialog - Address")},w.create("div",null,o)),n=w.create("input",{type:"text",value:e.address,className:"TravelNotes-WayPointPropertiesDialog-Input"},w.create("div",null,o)),t})(he.travel.editedRoute.wayPoints.getAt(e)).show().then(()=>{De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")}).catch(e=>{e instanceof Error&&console.error(e)})}};function Ho(e,t){let o=e.target.objId,a=He.getRoute(o),n=_e();return lt(e,function(){let t=[{context:ko,name:E.getText("RouteContextMenu - Edit this route"),action:o===he.travel.editedRoute.objId||i.editedChanged===he.travel.editedRoute.editionStatus?null:ko.editRoute,param:o},{context:ko,name:E.getText("RouteContextMenu - Delete this route"),action:o===he.travel.editedRoute.objId&&i.editedChanged===he.travel.editedRoute.editionStatus?null:ko.removeRoute,param:o},a.hidden?{context:ko,name:E.getText("RouteContextMenu - Show this route"),action:ko.showRoute,param:o}:{context:ko,name:E.getText("RouteContextMenu - Hide this route"),action:he.travel.editedRoute.objId===o?null:ko.hideRoute,param:o},{context:ko,name:E.getText("RouteContextMenu - Properties"),action:a.hidden?null:ko.routeProperties,param:o},{context:n,name:E.getText("RouteContextMenu - Zoom to route"),action:a.hidden?null:n.zoomToRoute,param:o},{context:ro,name:E.getText("RouteContextMenu - View the elevation"),action:a.itinerary.hasProfile?ro.showProfile:null,param:o}];return y.printRouteMap.isEnabled&&t.push({context:ko,name:E.getText("RouteContextMenu - Print route map"),action:ko.printRouteMap,param:o}),t=t.concat([{context:ko,name:E.getText("RouteContextMenu - Save this route in a GPX file"),action:0",className:"TravelNotes-Map-Note-Bullet"}),opacity:y.note.grip.opacity,draggable:!he.travel.readOnly});o.objId=t.objId;let a=window.L.divIcon({iconSize:[t.iconWidth,t.iconHeight],iconAnchor:[t.iconWidth/2,t.iconHeight/2],popupAnchor:[0,-t.iconHeight/2],html:t.iconContent,className:"TravelNotes-Map-AllNotes "}),n=window.L.marker(t.iconLatLng,{zIndexOffset:100,icon:a,draggable:!he.travel.readOnly});n.objId=t.objId,n.bindPopup(e=>Wt.getNoteTextHTML("TravelNotes-Map-",He.getNoteAndRoute(e.objId))),0!==t.tooltipContent.length&&(n.bindTooltip(e=>He.getNoteAndRoute(e.objId).note.tooltipContent),n.getTooltip().options.offset[0]=t.iconWidth/2);let r=window.L.polyline([t.latLng,t.iconLatLng],y.note.polyline);r.objId=t.objId;let i=window.L.layerGroup([n,r,o]);return i.markerId=window.L.Util.stamp(n),i.polylineId=window.L.Util.stamp(r),i.bulletId=window.L.Util.stamp(o),Ko(t.objId,i),y.note.haveBackground&&document.querySelectorAll(".TravelNotes-MapNote,.TravelNotes-SvgIcon").forEach(e=>e.classList.add("TravelNotes-Map-Note-Background")),Object.freeze({marker:n,polyline:r,bullet:o})}function Zo(e){e.dashArray>=y.route.dashChoices.length&&(e.dashArray=0);let t=y.route.dashChoices[e.dashArray].iDashArray;if(t){let o="",a=0;for(a=0;a{let t=He.getRoute(e.objId);return Wt.getRouteHeaderHTML("TravelNotes-Map-",t)}),window.L.DomEvent.on(n,"click",e=>e.target.openPopup(e.latlng));let r=t.notes.iterator;for(;!r.done;)_o(r.value.objId);return t}addNote(e){return _o(e)}getDashArray(e){return Zo(e)}zoomTo(e,t){if(t){let e=[];t.forEach(t=>e=e.concat(t)),he.map.fitBounds(me.getLatLngBounds(e))}else he.map.setView(e,y.itineraryPoint.zoomFactor)}setLayer(e,t){let o=null;o="wmts"===e.service.toLowerCase()?window.L.tileLayer(t):window.L.tileLayer.wms(t,e.wmsOptions),Fo&&he.map.removeLayer(Fo),he.map.addLayer(o),Fo=o,he.travel.readOnly||(he.map.getZoom()<(e.minZoom||0)&&he.map.setZoom(e.minZoom||0),he.map.setMinZoom(e.minZoom||0),he.map.getZoom()>(e.maxZoom||18)&&he.map.setZoom(e.maxZoom||18),he.map.setMaxZoom(e.maxZoom||18),e.bounds?(he.map.getBounds().intersects(e.bounds)&&!he.map.getBounds().contains(e.bounds)||(he.map.setMaxBounds(null),he.map.fitBounds(e.bounds),he.map.setZoom(e.minZoom||0)),he.map.setMaxBounds(e.bounds)):he.map.setMaxBounds(null)),he.map.fire("baselayerchange",o)}onGeolocationStatusChanged(e){o.active!==e&&Vo&&(he.map.removeLayer(Vo),Vo=null)}onGeolocationPositionChanged(e){let t=y.geoLocation.zoomToPosition;Vo&&(he.map.removeLayer(Vo),t=!1),Vo=window.L.circleMarker(window.L.latLng(e.coords.latitude,e.coords.longitude),y.geoLocation.marker).bindTooltip(j.formatLatLng([e.coords.latitude,e.coords.longitude])).addTo(he.map),t&&he.map.setView(window.L.latLng(e.coords.latitude,e.coords.longitude),y.geoLocation.zoomFactor)}};let Go=null,Jo=null,Yo=1;function qo(){Go&&(window.L.DomEvent.off(Go),he.map.removeLayer(Go),Go=null)}function $o(){window.L.DomEvent.off(Go,"mouseout",qo)}function Qo(e){e.latlng.lat=Jo[0],e.latlng.lng=Jo[1],e.target.objId=he.travel.editedRoute.objId,Ho(e).show()}function ea(e){Bo.addWayPointOnRoute(Jo,[e.target.getLatLng().lat,e.target.getLatLng().lng]),Go&&(window.L.DomEvent.off(Go,"dragstart",$o),window.L.DomEvent.off(Go,"dragend",ea),window.L.DomEvent.off(Go,"contextmenu",Qo),he.map.removeLayer(Go),Go=null)}function ta(e){let t=He.getNoteAndRoute(e.target.objId),o=t.note,a=t.route,n=he.mapObjects.get(e.target.objId);if(null===a)o.latLng=[e.target.getLatLng().lat,e.target.getLatLng().lng],De.dispatch("updatetravelnotes");else{let t=me.getClosestLatLngDistance(a,[e.target.getLatLng().lat,e.target.getLatLng().lng]);o.latLng=t.latLng,o.distance=t.distance,a.notes.sort((e,t)=>e.distance-t.distance),n.getLayer(n.bulletId).setLatLng(t.latLng),De.dispatch("updateitinerary")}n.getLayer(n.polylineId).setLatLngs([o.latLng,o.iconLatLng]),De.dispatch("roadbookupdate")}function oa(e){let t=He.getNoteAndRoute(e.target.objId).note,o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([[e.latlng.lat,e.latlng.lng],t.iconLatLng])}function aa(e){e.originalEvent.target.style.opacity=y.note.grip.moveOpacity}function na(e){e.originalEvent.target.style.opacity=y.note.grip.opacity}function ra(e){zo(e).show()}function ia(e){let t=He.getNoteAndRoute(e.target.objId).note;t.iconLatLng=[e.target.getLatLng().lat,e.target.getLatLng().lng];let o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([t.latLng,t.iconLatLng])}function la(e){let t=He.getNoteAndRoute(e.target.objId).note,o=he.mapObjects.get(e.target.objId);o.getLayer(o.polylineId).setLatLngs([t.latLng,[e.latlng.lat,e.latlng.lng]])}function sa(e){let t=He.getRoute(e.target.objId);if(i.notEdited!==t.editionStatus)if(Jo=[e.latlng.lat,e.latlng.lng],Go)Go.setLatLng(e.latlng);else{let t='
?
';Go=window.L.marker(e.latlng,{icon:window.L.divIcon({iconSize:[20,20],iconAnchor:[10,20],html:t,className:"TravelNotes-Map-WayPointStyle"}),draggable:!0}),(-1===y.route.showDragTooltip||Yo<=y.route.showDragTooltip)&&(Yo++,Go.bindTooltip(E.getText("MapEditor - Drag and drop to add a waypoint")),Go.getTooltip().options.offset=[0,0]),Go.addTo(he.map),window.L.DomEvent.on(Go,"mouseout",qo),window.L.DomEvent.on(Go,"dragstart",$o),window.L.DomEvent.on(Go,"dragend",ea),window.L.DomEvent.on(Go,"contextmenu",Qo)}}function da(e){window.L.DomEvent.stopPropagation(e),Ho(e).show()}function ca(e){(function(e){let t=e.target.objId;return lt(e,function(){let e=he.travel.editedRoute.wayPoints.first.objId!==t&&he.travel.editedRoute.wayPoints.last.objId!==t;return[{context:Bo,name:E.getText("WayPointContextMenu - Delete this waypoint"),action:e?Bo.removeWayPoint:null,param:t},{context:Bo,name:E.getText("WayPointContextMenu - Modify properties"),action:Bo.wayPointProperties,param:t}]}())})(e).show()}function ua(e){he.travel.editedRoute.wayPoints.getAt(e.target.objId).latLng=[e.target.getLatLng().lat,e.target.getLatLng().lng],Bo.wayPointDragEnd(e.target.objId)}function ga(e,t){t.objId=e,t.addTo(he.map),he.mapObjects.set(e,t)}function va(e){let t=he.mapObjects.get(e);t&&(window.L.DomEvent.off(t),he.map.removeLayer(t),he.mapObjects.delete(e))}function ha(e,t){if(r.defaultValue===e.lat&&r.defaultValue===e.lng)return;let o='
'+t+"
",a=window.L.marker(e.latLng,{icon:window.L.divIcon({iconSize:[20,20],iconAnchor:[10,20],html:o,className:"TravelNotes-Map-WayPointStyle"}),draggable:!0});a.bindTooltip(e=>He.getWayPoint(e.objId).fullName),a.getTooltip().options.offset=[10,-10],window.L.DomEvent.on(a,"contextmenu",ca),a.objId=e.objId,ga(e.objId,a),window.L.DomEvent.on(a,"dragend",ua)}const ma=new class{constructor(){Object.freeze(this)}updateRoute(e,t){-1!==e&&function(e){let t=He.getRoute(e);va(t.objId);let o=t.notes.iterator;for(;!o.done;)va(o.value.objId);let a=t.wayPoints.iterator;for(;!a.done;)va(a.value.objId)}(e),-1!==t&&function(e){let t=Xo.addRoute(e),o=he.mapObjects.get(e);if(!he.travel.readOnly){window.L.DomEvent.on(o,"contextmenu",da),window.L.DomEvent.on(o,"mouseover",sa);let e=t.notes.iterator;for(;!e.done;){let t=he.mapObjects.get(e.value.objId),o=t.getLayer(t.markerId),a=t.getLayer(t.bulletId);window.L.DomEvent.on(a,"dragend",ta),window.L.DomEvent.on(a,"drag",oa),window.L.DomEvent.on(a,"mouseenter",aa),window.L.DomEvent.on(a,"mouseleave",na),window.L.DomEvent.on(o,"contextmenu",ra),window.L.DomEvent.on(o,"dragend",ia),window.L.DomEvent.on(o,"drag",la)}}if(!he.travel.readOnly&&i.notEdited!==t.editionStatus){let e=he.travel.editedRoute.wayPoints.iterator;for(;!e.done;)ha(e.value,e.first?"A":e.last?"B":e.index)}}(t)}updateRouteProperties(e){let t=he.mapObjects.get(e),o=He.getRoute(e);t.setStyle({color:o.color,weight:o.width,dashArray:Xo.getDashArray(o)})}updateNote(e,t){let o=!1;if(-1!==e){let t=he.mapObjects.get(e);t&&(o=t.getLayer(t.markerId).isPopupOpen()),va(e)}-1!==t&&function(e,t){let o=Xo.addNote(e);t&&o.marker.openPopup(),he.travel.readOnly||(window.L.DomEvent.on(o.bullet,"dragend",ta),window.L.DomEvent.on(o.bullet,"drag",oa),window.L.DomEvent.on(o.bullet,"mouseenter",aa),window.L.DomEvent.on(o.bullet,"mouseleave",na),window.L.DomEvent.on(o.marker,"contextmenu",ra),window.L.DomEvent.on(o.marker,"dragend",ia),window.L.DomEvent.on(o.marker,"drag",la))}(t,o)}removeObject(e){va(e)}removeAllObjects(){he.mapObjects.forEach(e=>{window.L.DomEvent.off(e),he.map.removeLayer(e)}),he.mapObjects.clear()}addWayPoint(e,t){ha(e,t)}addItineraryPointMarker(e,t){ga(e,window.L.circleMarker(t,y.itineraryPoint.marker))}addSearchPointMarker(e,t,o){let a=!1;if(o){let e=[];o.forEach(t=>{e=e.concat(t)});let t=me.getLatLngBounds(e),n=he.map.getBounds();a=(t.getEast()-t.getWest())/(n.getEast()-n.getWest())>.01&&(t.getNorth()-t.getSouth())/(n.getNorth()-n.getSouth())>.01}ga(e,a?window.L.polyline(o,y.osmSearch.searchPointPolyline):window.L.circleMarker(t,y.osmSearch.searchPointMarker))}addRectangle(e,t,o){ga(e,window.L.rectangle(t,o))}setLayer(e){let t=Be.getUrl(e);t&&Xo.setLayer(e,t)}};function pa(e){return Math.floor(Math.abs(e)+.5)*(0<=e?1:-1)}const fa=new class{constructor(){Object.freeze(this)}encode(e,t){if(!e.length)return"";let o=t.length,a=Array.from(t,e=>Math.pow(10,e));function n(e,t,o){let a=pa(e*o),n=pa(t*o),r=a-n;r<<=1,0>a-n&&(r=~r);let i="";for(;32<=r;)i+=String.fromCharCode(63+(32|31&r)),r>>=5;return i+=String.fromCharCode(r+63),i}let r="";for(let t=0;tMath.pow(10,e)),i=new Array(o).fill(0);function l(){let t=null,o=0,n=0;do{t=e.charCodeAt(a++)-63,n|=(31&t)<>1):n>>1}for(;a{a.push([e.lat,e.lng,e.distance,e.elev,e.objId])}),o.values=fa.encode(a,[r.fixed,r.fixed,2,2,0]),e.itinerary.itineraryPoints=o}function o(e){let o=[];if(e.itinerary.itineraryPoints.values)fa.decode(e.itinerary.itineraryPoints.values,[r.fixed,r.fixed,2,2,0]).forEach(a=>{let i={lat:r.defaultValue,lng:r.defaultValue,distance:t.defaultValue,elev:n.defaultValue,objId:-1};[i.lat,i.lng,i.distance,i.elev,i.objId]=a,i.objType=e.itinerary.itineraryPoints.objType,o.push(i)});else{e.itinerary.itineraryPoints.latLngs=fa.decode(e.itinerary.itineraryPoints.latLngs,[r.fixed,r.fixed]);let t=0;e.itinerary.itineraryPoints.latLngs.forEach(a=>{let r={};r.lat=a[0],r.lng=a[1],r.distance=e.itinerary.itineraryPoints.distances[t],e.itinerary.itineraryPoints.elevs?r.elev=e.itinerary.itineraryPoints.elevs[t]:r.elev=n.defaultValue,r.objId=e.itinerary.itineraryPoints.objIds[t],r.objType=e.itinerary.itineraryPoints.objType,o.push(r),t++})}e.itinerary.itineraryPoints=o}function a(e){e.routes.forEach(o),e.editedRoute&&o(e.editedRoute)}return new class{constructor(){Object.freeze(this)}decompress(e){a(e),he.travel.jsonObject=e,he.editedRouteObjId=-1,he.travel.routes.forEach(e=>{i.notEdited!==e.editionStatus&&(he.editedRouteObjId=e.objId)})}decompressMerge(e){a(e);let t=de();t.jsonObject=e;let o=t.routes.iterator;for(;!o.done;)he.travel.routes.add(o.value);let n=t.notes.iterator;for(;!n.done;)he.travel.notes.add(n.value)}compress(t){let o=t.jsonObject;return o.routes.forEach(e),e(o.editedRoute),o}}}let ya=null,wa=null,Na=null,Ta=e.saved,xa=null;function La(){ya&&(ya.textContent=Ta+" "+wa+" - Zoom : "+Na)}function Ia(t){e.modified===t&&e.notSaved===Ta||(Ta=t,e.modified!==t||xa||(xa=setTimeout(Ia,3e5,e.notSaved)),e.saved===t&&xa&&(clearTimeout(xa),xa=null),La())}function Ea(e){wa=j.formatLatLng([e.latlng.lat,e.latlng.lng]),La()}function ja(){Na=String(he.map.getZoom()),La()}const Pa=new class{constructor(){Object.freeze(this)}set saveStatus(e){Ia(e)}createUI(){Na=he.map.getZoom(),wa=j.formatLat(y.map.center.lat)+" - "+j.formatLng(y.map.center.lng),ya=w.create("span",null,w.create("div",{id:"TravelNotes-MouseUI"},document.body)),he.map.on("mousemove",Ea),he.map.on("zoomend",ja)}};const Da=new class{constructor(){Object.freeze(this)}routeDropped(e,t,o){he.travel.routes.moveTo(e,t,o),ko.chainRoutes(),De.dispatch("setrouteslist"),De.dispatch("roadbookupdate")}saveAsTravel(){if(""===he.travel.name)return void je.showError(E.getText("TravelEditor - Gives a name to the travel"));if(-1!==he.editedRouteObjId)return void je.showError(E.getText("TravelEditor - Not possible to partial save when a route is edited."));(function(){let e=null,t=null,o=null,a=null,n=null;function r(){return Object.freeze({removeTravelNotes:o.checked,removeRoutesNotes:a.checked,removeManeuvers:n.checked})}function i(e){let o=w.create("div",null,t),a=w.create("input",{type:"checkbox",checked:!1},o);return w.create("text",{value:e},o),a}return e=pe(),e.title=E.getText("SaveAsDialog - SaveAs"),e.okButtonListener=r,t=w.create("div",null,e.content),o=i(E.getText("SaveAsDialog - Remove Travel Notes")),a=i(E.getText("SaveAsDialog - Remove Routes Notes")),n=i(E.getText("SaveAsDialog - Remove Maneuvers")),e})().show().then(e=>function(e){let t=de();t.jsonObject=he.travel.jsonObject,t.name+="-partial";let o=t.routes.iterator;for(;!o.done;)o.value.hidden=!1;if(e.removeTravelNotes&&t.notes.removeAll(),e.removeRoutesNotes)for(o=t.routes.iterator;!o.done;)o.value.notes.removeAll();if(e.removeManeuvers)for(o=t.routes.iterator;!o.done;)o.value.itinerary.maneuvers.removeAll();let a=ba().compress(t);j.saveFile(a.name+".trv",JSON.stringify(a))}(e)).catch(e=>{e instanceof Error&&console.error(e)})}saveTravel(){if(""===he.travel.name)return void je.showError(E.getText("TravelEditor - Gives a name to the travel"));let t=he.travel.routes.iterator;for(;!t.done;)t.value.hidden=!1;let o=ba().compress(he.travel);j.saveFile(o.name+".trv",JSON.stringify(o)),Pa.saveStatus=e.saved}clear(){y.travelNotes.haveBeforeUnloadWarning&&!window.confirm(E.getText("TravelEditor - This page ask to close; data are perhaps not saved."))||(ro.deleteAllProfiles(),De.dispatch("removeallobjects"),he.travel.editedRoute=ne(),he.editedRouteObjId=-1,he.travel=de(),he.travel.routes.add(ne()),De.dispatch("setrouteslist"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate"),De.dispatch("travelnameupdated"),y.travelEditor.startupRouteEdition&&ko.editRoute(he.travel.routes.first.objId),Pa.saveStatus=e.saved)}};function Ca(){return new class{constructor(){Object.freeze(this)}openDistantFile(e){ba().decompress(e),he.travel.readOnly=!0,this.display()}display(){document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name);let e=he.travel.routes.iterator;for(;!e.done;)i.notEdited===e.value.editionStatus&&De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:e.value.objId});-1!==he.editedRouteObjId&&De.dispatch("routeupdated",{removedRouteObjId:-1,addedRouteObjId:he.travel.editedRoute.objId});let t=he.travel.notes.iterator;for(;!t.done;)De.dispatch("noteupdated",{removedNoteObjId:-1,addedNoteObjId:t.value.objId});_e().zoomToTravel()}}}function Ra(){function t(t,o){let a=new FileReader;a.onload=function(){let t={};try{t=JSON.parse(a.result)}catch(e){return void(e instanceof Error&&console.error(e))}try{o?ba().decompressMerge(t):(ro.deleteAllProfiles(),ba().decompress(t)),function(){if(De.dispatch("removeallobjects"),Ca().display(),Po.setLayer(he.travel.layerName),De.dispatch("setrouteslist"),-1!==he.editedRouteObjId){let e=he.travel.editedRoute.itinerary.provider;if(e&&""!==e&&!he.providers.get(e.toLowerCase()))je.showError(E.getText("FileLoader - Not possible to select as provider",{provider:e}));else{let t=he.travel.editedRoute.itinerary.transitMode;De.dispatch("setprovider",{provider:e}),t&&""!==t&&De.dispatch("settransitmode",{transitMode:t})}}ko.chainRoutes(),De.dispatch("travelnameupdated"),De.dispatch("showitinerary"),De.dispatch("roadbookupdate")}(),o||(Pa.saveStatus=e.saved)}catch(e){je.showError("An error occurs when reading the file : "+e.message)}},a.readAsText(t.target.files[0])}return new class{constructor(){Object.freeze(this)}openLocalFile(e){t(e,!1)}mergeLocalFile(e){t(e,!0)}}}let Ma=null,Sa=null,Oa=null,Aa=0,ka=null,Ua=null,Ba=null,Ha=null;function za(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}function Fa(e){he.travel.name=f.sanitizeToJsString(e.target.value),document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name),De.dispatch("roadbookupdate")}function Va(e){e.stopPropagation(),Da.clear(),document.title="Travel & Notes"+(""===he.travel.name?"":" - "+he.travel.name)}function Wa(e){e.stopPropagation(),Da.saveTravel()}function Ka(e){e.stopPropagation(),Da.saveAsTravel()}function _a(e){e.stopPropagation(),Ra().openLocalFile(e)}function Za(){y.travelNotes.haveBeforeUnloadWarning&&!window.confirm(E.getText("TravelEditor - This page ask to close; data are perhaps not saved."))||Ua.click()}function Xa(e){e.stopPropagation(),Ra().mergeLocalFile(e)}function Ga(){-1===he.editedRouteObjId?Ba.click():je.showError(E.getText("TravelUI - Not possible to merge a travel when a route is edited"))}function Ja(){ka=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},Oa),w.create("div",{className:"TravelNotes-UI-Button TravelNotes-TravelUI-SaveAsButton",title:E.getText("TravelUI - Save as travel"),textContent:"💾"},ka).addEventListener("click",Ka,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Cancel travel"),textContent:"❌"},ka).addEventListener("click",Va,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Save travel"),textContent:"💾"},ka).addEventListener("click",Wa,!1),Ua=w.create("input",{className:"TravelNotes-TravelUI-OpenFileInput",type:"file",accept:".trv"},ka),Ua.addEventListener("change",_a,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Open travel"),textContent:"📂"},ka).addEventListener("click",Za,!1),Ba=w.create("input",{className:"TravelNotes-TravelUI-OpenFileInput",type:"file",accept:".trv,.map"},ka),Ba.addEventListener("change",Xa,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Import travel"),textContent:"🌏"},ka).addEventListener("click",Ga,!1),w.create("text",{value:"📋"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:"TravelNotesRoadbook.html?lng="+y.travelNotes.language+"&page="+he.UUID,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelUI - Open travel roadbook")},ka)))}function Ya(e){e.stopPropagation(),Ma.classList.toggle("TravelNotes-Hidden");let t=Ma.classList.contains("TravelNotes-Hidden");e.target.textContent=t?"▶":"▼",e.target.title=t?E.getText("TravelUI - Show"):E.getText("TravelUI - Hide")}function qa(e){e.stopPropagation(),ko.addRoute()}function $a(){Ha=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},Oa),w.create("div",{textContent:"▼",className:"TravelNotes-TravelUI-RouteList-ExpandButton"},Ha).addEventListener("click",Ya,!1),w.create("span",{textContent:E.getText("TravelUI - Travel routes")},Ha),w.create("div",{className:"TravelNotes-UI-Button TravelNotes-UI-FlexRow-RightButton",title:E.getText("TravelUI - Add a route"),textContent:"+"},Ha).addEventListener("click",qa,!1)}function Qa(e){e.stopPropagation();try{e.dataTransfer.setData("Text",e.target.objId),e.dataTransfer.dropEffect="move",e.dataTransfer.routeObjId=e.target.objId}catch(e){e instanceof Error&&console.error(e)}Aa=e.target.objId}function en(e){e.preventDefault()}function tn(e){e.preventDefault();let t=e.target;for(;!t.objId;)t=t.parentElement;let o=t.getBoundingClientRect();Da.routeDropped(Aa,t.objId,e.clientY-o.top{e.paneId===nn?e.classList.add("TravelNotes-PanesManagerUI-ActivePaneButton"):e.classList.remove("TravelNotes-PanesManagerUI-ActivePaneButton")})}function cn(e){dn(e.target.paneId)}function un(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}const gn=new class{constructor(){Object.freeze(this)}createUI(e){if(ln)return;let t=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},e);sn=w.create("div",{id:"TravelNotes-PanesManagerUI-PaneControlsDiv"},e),ln=w.create("div",{id:"TravelNotes-PanesManagerUI-PaneDataDiv"},e),ln.addEventListener("wheel",un,!1),rn.forEach(e=>{w.create("div",{textContent:e.getButtonText(),className:"TravelNotes-PanesManagerUI-PaneButton",paneId:e.getId()},t).addEventListener("click",cn,!1),e.setPaneDivs(ln,sn)})}addPane(e){rn.set(e.getId(),e)}showPane(e){dn(e)}updatePane(e){e===nn&&dn(e)}},vn=["bike","pedestrian","car","train","line","circle"],hn={bike:'data:image/svg+xml;utf8, ',pedestrian:'data:image/svg+xml;utf8, ',car:'data:image/svg+xml;utf8, ',train:'data:image/svg+xml;utf8, ',line:'data:image/svg+xml;utf8, ',circle:'data:image/svg+xml;utf8, '};let mn=null,pn=!1,fn={bike:null,pedestrian:null,car:null,train:null,line:null,circle:null};function bn(e){he.routing.transitMode=e;let t=document.querySelector(".TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton");t&&t.classList.remove("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton"),document.querySelector("#TravelNotes-ProvidersToolbarUI-"+e+"ImgButton").classList.add("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton")}function yn(e){e.stopPropagation(),bn(e.target.transitMode),ko.startRouting()}function wn(e){he.routing.provider=e;let t=document.querySelector(".TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton");t&&t.classList.remove("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton"),document.querySelector("#TravelNotes-ProvidersToolbarUI-"+e+"ImgButton").classList.add("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton");let o=he.providers.get(e.toLowerCase());if(vn.forEach(e=>{o.transitModes[e]?fn[e].classList.remove("TravelNotes-ProvidersToolbarUI-InactiveImgButton"):fn[e].classList.add("TravelNotes-ProvidersToolbarUI-InactiveImgButton")}),!o.transitModes[he.routing.transitMode]){let e=null;vn.forEach(t=>{o.transitModes[t]&&(e=e||t)}),bn(e)}}function Nn(e){e.stopPropagation(),wn(e.target.provider),ko.startRouting()}function Tn(e){if(0===e.providerKey)return;let t=w.create("img",{src:e.icon,id:"TravelNotes-ProvidersToolbarUI-"+e.name+"ImgButton",className:"TravelNotes-ProvidersToolbarUI-ImgButton",title:e.title||e.name,provider:e.name},mn);if(t.addEventListener("click",Nn,!1),!pn){t.classList.add("TravelNotes-ProvidersToolbarUI-ActiveProviderImgButton"),he.routing.provider=t.provider,pn=!0;let o=null;vn.forEach(t=>{e.transitModes[t]&&(o=o||t)}),fn[o].classList.add("TravelNotes-ProvidersToolbarUI-ActiveTransitModeImgButton"),he.routing.transitMode=o,vn.forEach(t=>{e.transitModes[t]||fn[t].classList.add("TravelNotes-ProvidersToolbarUI-InactiveImgButton")})}}function xn(){he.providers&&(pn=!1,he.providers.forEach(Tn))}function Ln(){vn.forEach(e=>{fn[e]=w.create("img",{src:hn[e],id:"TravelNotes-ProvidersToolbarUI-"+e+"ImgButton",className:"TravelNotes-ProvidersToolbarUI-ImgButton",title:E.getText("ProvidersToolbarUI - "+e),transitMode:e},mn),fn[e].addEventListener("click",yn,!1)})}const In=new class{constructor(){Object.freeze(this)}createUI(e){mn=w.create("div",{className:"TravelNotes-UI-FlexRowDiv TravelNotes-ProvidersToolbarUI-ImgButtonsDiv"},e),Ln(),xn()}set provider(e){wn(e)}set transitMode(e){bn(e)}providersAdded(){for(;mn.firstChild;)mn.removeChild(mn.firstChild);Ln(),xn()}};let En="geolocation"in navigator?o.inactive:o.disabled,jn=null;function Pn(e){De.dispatch("geolocationpositionchanged",{position:e})}function Dn(){o.active===En&&(En=o.inactive),De.dispatch("geolocationstatuschanged",{status:En}),navigator.geolocation.clearWatch(jn),jn=null}function Cn(e){1===e.code&&(En=o.refusedByUser),Dn()}const Rn=new class{constructor(){Object.freeze(this)}get status(){return En}switch(){switch(En){case o.inactive:En=o.active,De.dispatch("geolocationstatuschanged",{status:En}),navigator.geolocation.getCurrentPosition(Pn,Cn,y.geoLocation.options),jn=navigator.geolocation.watchPosition(Pn,Cn,y.geoLocation.options);break;case o.active:Dn()}return En}};let Mn=null,Sn=null,On=null;function An(e){e.stopPropagation(),Be.setKeysFromDialog()}function kn(e){e.stopPropagation(),Rn.switch()}function Un(e){e.target.textContent="📌"===e.target.textContent?"❌":"📌",On.pin()}const Bn=new class{constructor(){Object.freeze(this)}createUI(e){On=e,Sn=w.create("div",{className:"TravelNotes-UI-FlexRowDiv"},e),w.create("text",{value:"🏠"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:window.location.origin,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Home"},Sn))),w.create("text",{value:"?"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:"https://github.com/wwwouaiebe/leaflet.TravelNotes/tree/gh-pages/TravelNotesGuides",target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Help"},Sn))),w.create("text",{value:"@"},w.create("a",{className:"TravelNotes-UI-LinkButton",href:y.travelNotesToolbarUI.contactMail.url||window.location.origin,target:"_blank"},w.create("div",{className:"TravelNotes-UI-Button",title:"Contact"},Sn))),y.APIKeysDialog.showButton&&w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("TravelNotesToolbarUI - API keys"),textContent:"🔑"},Sn).addEventListener("click",An,!1),o.disabled{e.classList.toggle("TravelNotes-Hidden")})}function h(e){t=e.target.checked,document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")})}return new class{constructor(){Object.freeze(this)}remove(){!function(){document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row, .TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.removeEventListener("contextmenu",c,!1),e.removeEventListener("mouseenter",u,!1),e.removeEventListener("mouseleave",g,!1)});let e=document.querySelector(".TravelNotes-ItineraryPaneUI-Route-ManeuversAndNotes");e&&o.removeChild(e)}(),i&&(d&&(d.removeEventListener("click",h,!1),i.removeChild(d),d=null),s&&(s.removeEventListener("click",v,!1),i.removeChild(s),s=null),n.removeChild(i),i=null),l&&(n.removeChild(l),l=null)}add(){-1!==he.editedRouteObjId&&(i=w.create("div",null,n),w.create("text",{value:E.getText("ItineraryPaneUI - Show notes")},i),s=w.create("input",{type:"checkbox",id:"TravelNotes-ItineraryPane-ShowNotesInput",checked:e},i),s.addEventListener("click",v,!1),w.create("text",{value:E.getText("ItineraryPaneUI - Show maneuvers")},i),d=w.create("input",{type:"checkbox",id:"TravelNotes-ItineraryPane-ShowManeuversInput",checked:t},i),d.addEventListener("click",h,!1),l=Wt.getRouteHeaderHTML("TravelNotes-ItineraryPaneUI-",he.travel.editedRoute),n.appendChild(l),o.appendChild(Wt.getEditedRouteManeuversAndNotesHTML("TravelNotes-ItineraryPaneUI-")),document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row, .TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.addEventListener("contextmenu",c,!1),e.addEventListener("mouseenter",u,!1),e.addEventListener("mouseleave",g,!1)}),e||document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Notes-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")}),t||document.querySelectorAll(".TravelNotes-ItineraryPaneUI-Route-Maneuvers-Row").forEach(e=>{e.classList.toggle("TravelNotes-Hidden")}))}getId(){return a.itineraryPane}getButtonText(){return E.getText("PanesManagerUI - Itinerary")}setPaneDivs(e,t){o=e,n=t}}}let zn=-1,Fn=-1,Vn=!1;let Wn=null,Kn=null,_n=null,Zn=[];class Xn{constructor(e,t){this.name=f.sanitizeToJsString(e),this.items=[],this.filterTagsArray=[],this.elementTypes=["node","way","relation"],this.isSelected=!1,this.isExpanded=!1,this.isRoot=!1,t&&(this.isExpanded=!0,this.isRoot=!0)}}function Gn(){-1===Fn?Fn=T():De.dispatch("removeobject",{objId:Fn});let e=he.map.getCenter();Kn=he.map.getBounds();let t=me.getSquareBoundingBox([e.lat,e.lng],5e3);Kn.getSouthWest().lat=Math.max(Kn.getSouthWest().lat,t.getSouthWest().lat),Kn.getSouthWest().lng=Math.max(Kn.getSouthWest().lng,t.getSouthWest().lng),Kn.getNorthEast().lat=Math.min(Kn.getNorthEast().lat,t.getNorthEast().lat),Kn.getNorthEast().lng=Math.min(Kn.getNorthEast().lng,t.getNorthEast().lng),De.dispatch("addrectangle",{objId:Fn,bounds:Kn,properties:y.osmSearch.nextSearchLimit})}function Jn(e){e.isSelected&&0{o.filterTagsArray.forEach(a=>{(function(e,t){let o=!0;return t.forEach(t=>{let[a,n]=Object.entries(t)[0];o=o&&e.tags[a]&&(!n||e.tags[a]===n)}),o})(e,a)&&(e.description=o.name,t.set(e.id,e))})})}function qn(e){let t=new Map,o=new Map,a=new Map,n=new Map;function i(e){e.geometry=[[]],e.lat=r.defaultValue,e.lon=r.defaultValue;let t=0;e.nodes.forEach(a=>{let n=o.get(a);e.geometry[0].push([n.lat,n.lon]),e.lat+=n.lat,e.lon+=n.lon,t++}),0!==t&&(e.lat/=t,e.lon/=t)}e.forEach(e=>{switch(e.type){case"node":o.set(e.id,e);break;case"way":a.set(e.id,e);break;case"relation":n.set(e.id,e)}e.tags&&Yn(e,t)}),t.forEach(e=>{switch(e.type){case"way":i(e);break;case"relation":!function(e){e.geometry=[[]],e.lat=r.defaultValue,e.lon=r.defaultValue;let t=0;e.members.forEach(o=>{if("way"===o.type){let n=a.get(o.ref);i(n),e.geometry.push(n.geometry[0]),e.lat+=n.lat,e.lon+=n.lon,t++}}),0!==t&&(e.lat/=t,e.lon/=t)}(e)}}),he.searchData=Array.from(t.values()).sort((e,t)=>e.description>t.description?1:e.description{e.filterTagsArray.forEach(o=>{let[a,n]=Object.entries(o[0])[0],r=t.get(a);r||(r={values:new Map,elements:new Map},t.set(a,r)),r.values.set(n,n),e.elementTypes.forEach(e=>{r.elements.set(e,e)})})});let o="("+Kn.getSouthWest().lat.toFixed(r.fixed)+","+Kn.getSouthWest().lng.toFixed(r.fixed)+","+Kn.getNorthEast().lat.toFixed(r.fixed)+","+Kn.getNorthEast().lng.toFixed(r.fixed)+")";return t.forEach((t,a)=>{let n='"'+a+'"';if(1===t.values.size){let e=t.values.values().next().value;e&&(n+='="'+e+'"')}else 1{n+=e+"|"}),n=n.substr(0,n.length-1)+'"');let r=1===t.elements.size?t.elements.values().next().value:"nwr",i=y.overpassApi.url+"?data=[out:json][timeout:"+y.overpassApi.timeOut+"];"+r+"["+n+"]"+o+";"+("node"===r?"":"(._;>;);")+"out;";e.push(fetch(i))}),e}()).then($n))}show(){he.map.on("zoom",Gn),he.map.on("move",Gn),Gn(),Wn&&(-1===zn?zn=T():De.dispatch("removeobject",{objId:zn}),De.dispatch("addrectangle",{objId:zn,bounds:[[Wn.getSouthWest().lat,Wn.getSouthWest().lng],[Wn.getNorthEast().lat,Wn.getNorthEast().lng]],properties:y.osmSearch.previousSearchLimit}))}hide(){let e=De;he.map.off("zoom",Gn),he.map.off("move",Gn),-1!==Fn&&(e.dispatch("removeobject",{objId:Fn}),Fn=-1),-1!==zn&&(e.dispatch("removeobject",{objId:zn}),zn=-1)}parseDictionary(e){_n=new Xn("All",!0);let t=[_n.items],o=null,a=null;e.split(/\r\n|\r|\n/).forEach(e=>{""!==e&&function(e){let n=e.split(";");for(;""===n[n.length-1];)n.pop();let r=0,i=null;n.forEach(e=>{if(""!==e)if(-1===e.indexOf("="))a=new Xn(e),t[r].push(a),t[r+1]=a.items,o=a.filterTagsArray;else{let t=e.split("=");if("element"===t[0])a.elementTypes=[t[1]];else{let e={};e[t[0]]="*"===t[1]?null:t[1],i=i||[],i.push(e)}}r++}),i&&o.push(i)}(e)})}};function er(){let e=null,t=null,o=null,n=null,i=null,l=-1,s=0;function d(t){t.stopPropagation(),t.preventDefault();let o=t.target;for(;!o.osmElement;)o=o.parentNode;t.latlng={lat:r.defaultValue,lng:r.defaultValue},t.fromUI=!0,t.originalEvent={clientX:t.clientX,clientY:t.clientY,latLng:[o.osmElement.lat,o.osmElement.lon],osmElement:o.osmElement,geometry:o.osmElement.geometry},function(e,t){let o=_e();return lt(e,function(){let t=e.originalEvent.latLng;return[{context:Bo,name:E.getText("MapContextMenu - Select this point as start point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.first.lat?Bo.setStartPoint:null,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as way point"),action:-1===he.editedRouteObjId?null:Bo.addWayPoint,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as end point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.last.lat?Bo.setEndPoint:null,param:t},{context:to,name:E.getText("OsmSearchContextMenu - Create a route note with this result"),action:to.newSearchNote,param:{osmElement:e.originalEvent.osmElement,isTravelNote:!1}},{context:to,name:E.getText("OsmSearchContextMenu - Create a travel note with this result"),action:to.newSearchNote,param:{osmElement:e.originalEvent.osmElement,isTravelNote:!0}},{context:to,name:to.osmSearchNoteDialog?E.getText("OsmSearchContextMenu - Hide note dialog"):E.getText("OsmSearchContextMenu - Show note dialog"),action:to.changeOsmSearchNoteDialog},{context:o,name:E.getText("OsmSearchContextMenu - Zoom to this result"),action:o.zoomToPoi,param:{latLng:e.originalEvent.latLng,geometry:e.originalEvent.geometry}}]}(),t)}(t,e).show()}function u(e){e.stopPropagation(),l=e.target.objId,De.dispatch("addsearchpointmarker",{objId:e.target.objId,latLng:[e.target.osmElement.lat,e.target.osmElement.lon],geometry:e.target.osmElement.geometry})}function g(e){e.stopPropagation(),De.dispatch("removeobject",{objId:e.target.objId})}function v(){document.querySelectorAll(".TravelNotes-OsmSearchPaneUI-SearchResult").forEach(t=>{t.removeEventListener("contextmenu",d,!1),t.removeEventListener("mouseenter",u,!1),t.removeEventListener("mouseleave",g,!1),e.removeChild(t)})}function h(e){s++;let t=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchItem TravelNotes-OsmSearchPaneUI-SearchItemMargin"+s,dictItem:e},i);if(!e.isRoot){w.create("input",{type:"checkbox",checked:e.isSelected},t).addEventListener("change",(function(e){!function e(t,o){t.isSelected=o,t.items.forEach(t=>{e(t,o)})}(e.target.parentNode.dictItem,e.target.checked),i.textContent="",h(Qn.dictionary)}),!1)}if(0===e.filterTagsArray.length){w.create("div",{className:"TravelNotes-UI-Button TravelNotes-OsmSearchPaneUI-TreeArrow",textContent:e.isExpanded?"▼":"▶"},t).addEventListener("click",(function(e){e.target.parentNode.dictItem.isExpanded=!e.target.parentNode.dictItem.isExpanded,i.textContent="",h(Qn.dictionary)}),!1)}w.create("text",{value:e.name},t),e.isExpanded&&e.items.forEach(h),s--}function m(){v(),Qn.dictionary.isExpanded=!1,i.textContent="",h(Qn.dictionary),n=w.create("div",{className:"TravelNotes-WaitAnimation"},t),w.create("div",{className:"TravelNotes-WaitAnimationBullet"},n),Qn.search()}function p(e){e.items.forEach(p),e.isSelected=!1}function b(){p(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function y(e){e.items.forEach(y),e.isExpanded=!0}function N(){y(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function x(e){e.items.forEach(x),e.isRoot||(e.isExpanded=!1)}function L(){x(Qn.dictionary),i.textContent="",h(Qn.dictionary)}function I(e){e.deltaY&&(e.target.scrollTop+=e.deltaY*c[e.deltaMode]),e.stopPropagation()}function j(e,t){t&&w.create("div",{textContent:t},e)}function P(t){let o=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-Row",osmElement:t,objId:T()},e),a="";a=t.tags.rcn_ref?"
"+t.tags.rcn_ref+"
":It.getIconDataFromName(t.description)||"";let n=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-IconCell"},o);f.sanitizeToHtmlElement(a,n);let r=w.create("div",{className:"TravelNotes-OsmSearchPaneUI-SearchResult-Cell"},o);j(r,t.description),j(r,t.tags.name),j(r,t.tags.rcn_ref),j(r,function(e){let t=(e.tags["addr:street"]?(e.tags["addr:housenumber"]?e.tags["addr:housenumber"]+" ":"")+e.tags["addr:street"]+" ":"")+(e.tags["addr:city"]?(e.tags["addr:postcode"]?e.tags["addr:postcode"]+" ":"")+e.tags["addr:city"]:"");return""===t?null:t}(t)),t.tags.phone&&j(r,"☎️ : "+t.tags.phone),t.tags.email&&w.create("a",{href:"mailto:"+t.tags.email,textContent:t.tags.email},w.create("div",{textContent:"📧 : "},r)),t.tags.website&&w.create("a",{href:t.tags.website,target:"_blank",textContent:t.tags.website},w.create("div",null,r)),o.title="";for(const[e,a]of Object.entries(t.tags))o.title+=e+"="+a+"\n";o.addEventListener("contextmenu",d,!1),o.addEventListener("mouseenter",u,!1),o.addEventListener("mouseleave",g,!1)}return new class{constructor(){Object.freeze(this)}remove(){Qn.hide(),v(),i&&(t.removeChild(i),i=null),o&&t.removeChild(o),n&&(t.removeChild(n),n=null),De.dispatch("removeobject",{objId:l})}add(){Qn.show(),o=w.create("div",null,t),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Search OpenStreetMap"),textContent:"🔎"},o).addEventListener("click",m,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Expand tree"),textContent:"▼"},o).addEventListener("click",N,!1),w.create("div",{className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Collapse tree"),textContent:"▶"},o).addEventListener("click",L,!1),w.create("div",{id:"TravelNotes-OsmSearchPaneUI-ClearAllButton",className:"TravelNotes-UI-Button",title:E.getText("OsmSearchPaneUI - Clear tree"),textContent:"❌"},o).addEventListener("click",b,!1),i=w.create("div",{id:"TravelNotes-OsmSearchPaneUI-SearchTree"},t),i.addEventListener("wheel",I,!1),Qn.dictionary.name="",h(Qn.dictionary),he.searchData.forEach(P)}getId(){return a.searchPane}getButtonText(){return E.getText("PanesManagerUI - Search")}setPaneDivs(o,a){e=o,t=a}}}let tr=null,or=!1,ar=null,nr=null;function rr(){ar&&(clearTimeout(ar),ar=null),tr.classList.remove("TravelNotes-UI-Minimized"),nr.classList.add("TravelNotes-Hidden");let e=tr.childNodes;for(let t=1;t{e.removeEventListener("contextmenu",s,!1),e.removeEventListener("dragstart",n,!1)}),t.removeChild(o)),o=null}add(){o=Wt.getTravelNotesHTML("TravelNotes-TravelNotesPaneUI-"),o.addEventListener("drop",l,!1),o.addEventListener("dragover",i,!1),t.appendChild(o),o.childNodes.forEach(e=>{e.draggable=!0,e.addEventListener("contextmenu",s,!1),e.addEventListener("dragstart",n,!1),e.classList.add("TravelNotes-UI-MoveCursor")})}getId(){return a.travelNotesPane}getButtonText(){return E.getText("PanesManagerUI - Travel notes")}setPaneDivs(e){t=e}}}()),gn.addPane(er()),gn.createUI(tr),In.createUI(tr),y.travelEditor.startMinimized){tr.addEventListener("mouseenter",rr,!1),tr.addEventListener("mouseleave",lr,!1),tr.classList.add("TravelNotes-UI-Minimized");let e=tr.childNodes;for(let t=1;tan.setTravelName(),!1),tr.addEventListener("setrouteslist",()=>an.setRoutesList(),!1),tr.addEventListener("showitinerary",()=>gn.showPane(a.itineraryPane),!1),tr.addEventListener("updateitinerary",()=>gn.updatePane(a.itineraryPane),!1),tr.addEventListener("showtravelnotes",()=>gn.showPane(a.travelNotesPane),!1),tr.addEventListener("updatetravelnotes",()=>gn.updatePane(a.travelNotesPane),!1),tr.addEventListener("showsearch",()=>gn.showPane(a.searchPane),!1),tr.addEventListener("updatesearch",()=>gn.updatePane(a.searchPane),!1),tr.addEventListener("providersadded",()=>In.providersAdded(),!1),tr.addEventListener("setprovider",e=>{e.data&&e.data.provider&&(In.provider=e.data.provider)},!1),tr.addEventListener("settransitmode",e=>{e.data&&e.data.provider&&(In.transitMode=e.data.transitMode)},!1),document.addEventListener("geolocationstatuschanged",e=>{Bn.geoLocationStatusChanged(e.data.status)},!1),tr.addEventListener("click",e=>{e.target.id&&"TravelNotes-UI-MainDiv"===e.target.id&&(e.stopPropagation(),e.preventDefault())},!1),tr.addEventListener("dblclick",e=>{e.stopPropagation(),e.preventDefault()},!1),tr.addEventListener("contextmenu",e=>{e.stopPropagation(),e.preventDefault()},!1),tr.addEventListener("wheel",e=>{e.stopPropagation(),e.preventDefault()},!1)}}};function cr(){let e=pe();e.title=E.getText("AboutDialog - About Travel & Notes");f.sanitizeToHtmlElement('

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.

Copyright - 2017 2021 - wwwouaiebe

Contact : https://www.ouaie.be/

GitHub : https://github.com/wwwouaiebe/leaflet.TravelNotes

Version : 2.3.0.

This program uses: leaflet, Project-OSRM/osrm-text-instructions and the Overpass API

',e.content),e.show().then().catch(e=>{e instanceof Error&&console.error(e)})}let ur=null;const gr=new class{constructor(){Object.freeze(this)}getOpenPromise(){return new Promise((function(e,t){if(ur)return void e();let o=window.indexedDB.open("TravelNotesDb",1);o.onerror=function(){ur=null,t(new Error("Not possible to open the db"))},o.onsuccess=function(t){ur=t.target.result,e()},o.onupgradeneeded=function(e){ur=e.target.result,ur.createObjectStore("Travels",{keyPath:"UUID"})}}))}getReadPromise(e){return new Promise((function(t,o){if(!ur)return void o(new Error("Database not opened"));let a=ur.transaction(["Travels"],"readonly");a.onerror=function(){o(new Error("Transaction error"))},a.objectStore("Travels").get(e).onsuccess=function(e){t(e.target.result?e.target.result.data:null)}}))}getWritePromise(e,t){return new Promise((function(o,a){if(!ur)return void a(new Error("Database not opened"));let n=null;try{n=ur.transaction(["Travels"],"readwrite")}catch(e){return void a(e)}n.onerror=function(){a(new Error("Transaction error"))},n.objectStore("Travels").put({UUID:e,data:t}).onsuccess=function(){o()}}))}closeDb(e){if(!ur)return;if(!e)return ur.close(),void(ur=null);let t=ur.transaction(["Travels"],"readwrite");t.onerror=function(){};let o=t.objectStore("Travels").delete(e);o.onerror=function(){ur.close(),ur=null},o.onsuccess=function(){ur.close(),ur=null}}};let vr=!1;function hr(){document.addEventListener("routeupdated",e=>{e.data&&ma.updateRoute(e.data.removedRouteObjId,e.data.addedRouteObjId)},!1),document.addEventListener("routepropertiesupdated",e=>{e.data&&ma.updateRouteProperties(e.data.routeObjId)},!1),document.addEventListener("noteupdated",e=>{e.data&&ma.updateNote(e.data.removedNoteObjId,e.data.addedNoteObjId)},!1),document.addEventListener("removeobject",e=>{e.data&&ma.removeObject(e.data.objId)},!1),document.addEventListener("removeallobjects",()=>ma.removeAllObjects(),!1),document.addEventListener("zoomto",e=>{e.data&&Xo.zoomTo(e.data.latLng,e.data.geometry)},!1),document.addEventListener("additinerarypointmarker",e=>{e.data&&ma.addItineraryPointMarker(e.data.objId,e.data.latLng)},!1),document.addEventListener("addsearchpointmarker",e=>{e.data&&ma.addSearchPointMarker(e.data.objId,e.data.latLng,e.data.geometry)},!1),document.addEventListener("addrectangle",e=>{e.data&&ma.addRectangle(e.data.objId,e.data.bounds,e.data.properties)},!1),document.addEventListener("addwaypoint",e=>{e.data&&ma.addWayPoint(e.data.wayPoint,e.data.letter)},!1),document.addEventListener("layerchange",e=>{e.data&&ma.setLayer(e.data.layer)}),document.addEventListener("geolocationpositionchanged",e=>{e.data&&Xo.onGeolocationPositionChanged(e.data.position)},!1),document.addEventListener("geolocationstatuschanged",e=>{e.data&&Xo.onGeolocationStatusChanged(e.data.status)},!1),document.addEventListener("roadbookupdate",()=>(Pa.saveStatus=e.modified,void(j.storageAvailable("localStorage")&&gr.getOpenPromise().then(()=>{gr.getWritePromise(he.UUID,Wt.getTravelHTML("TravelNotes-Roadbook-").outerHTML)}).then(()=>localStorage.setItem(he.UUID,Date.now())).catch(e=>{e instanceof Error&&console.error(e)}))),!1),document.addEventListener("profileclosed",e=>{e.data&&ro.onProfileClosed(e.data.objId)},!1)}function mr(e){he.travel.readOnly||function(e){let t=[e.latlng.lat,e.latlng.lng],o=_e();return lt(e,[{context:Bo,name:E.getText("MapContextMenu - Select this point as start point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.first.lat?Bo.setStartPoint:null,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as way point"),action:-1===he.editedRouteObjId?null:Bo.addWayPoint,param:t},{context:Bo,name:E.getText("MapContextMenu - Select this point as end point"),action:-1!==he.editedRouteObjId&&r.defaultValue===he.travel.editedRoute.wayPoints.last.lat?Bo.setEndPoint:null,param:t},{context:ko,name:E.getText("MapContextMenu - Add a route"),action:ko.addRoute},{context:ko,name:E.getText("MapContextMenu - Hide all routes"),action:ko.hideRoutes},{context:ko,name:E.getText("MapContextMenu - Show all routes"),action:ko.showRoutes},{context:to,name:E.getText("MapContextMenu - New travel note"),action:to.newTravelNote,param:t},{context:to,name:E.getText("MapContextMenu - Hide all notes"),action:to.hideNotes},{context:to,name:E.getText("MapContextMenu - Show all notes"),action:to.showNotes},{context:o,name:E.getText("MapContextMenu - Zoom to travel"),action:o.zoomToTravel},{context:null,name:E.getText("MapContextMenu - About Travel & Notes"),action:cr}])} /** @------------------------------------------------------------------------------------------------------------------------------ diff --git a/dist/TravelNotesProviders/GraphHopperRouteProvider.min.js b/dist/TravelNotesProviders/GraphHopperRouteProvider.min.js index 2b786f30..e199839b 100644 --- a/dist/TravelNotesProviders/GraphHopperRouteProvider.min.js +++ b/dist/TravelNotesProviders/GraphHopperRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/MapboxRouteProvider.min.js b/dist/TravelNotesProviders/MapboxRouteProvider.min.js index 1035d432..9e5c0c22 100644 --- a/dist/TravelNotesProviders/MapboxRouteProvider.min.js +++ b/dist/TravelNotesProviders/MapboxRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/MapzenValhallaRouteProvider.min.js b/dist/TravelNotesProviders/MapzenValhallaRouteProvider.min.js index 8ab6d5b0..11e34c0d 100644 --- a/dist/TravelNotesProviders/MapzenValhallaRouteProvider.min.js +++ b/dist/TravelNotesProviders/MapzenValhallaRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/OSRMRouteProvider.min.js b/dist/TravelNotesProviders/OSRMRouteProvider.min.js index c30b634a..b0e6f59b 100644 --- a/dist/TravelNotesProviders/OSRMRouteProvider.min.js +++ b/dist/TravelNotesProviders/OSRMRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/OpenRouteServiceRouteProvider.min.js b/dist/TravelNotesProviders/OpenRouteServiceRouteProvider.min.js index 09981107..f7e24cd8 100644 --- a/dist/TravelNotesProviders/OpenRouteServiceRouteProvider.min.js +++ b/dist/TravelNotesProviders/OpenRouteServiceRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/PolylineRouteProvider.min.js b/dist/TravelNotesProviders/PolylineRouteProvider.min.js index 676df2af..fddb95d0 100644 --- a/dist/TravelNotesProviders/PolylineRouteProvider.min.js +++ b/dist/TravelNotesProviders/PolylineRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesProviders/PublicTransportRouteProvider.min.js b/dist/TravelNotesProviders/PublicTransportRouteProvider.min.js index dc7ba33d..ac8eb3dc 100644 --- a/dist/TravelNotesProviders/PublicTransportRouteProvider.min.js +++ b/dist/TravelNotesProviders/PublicTransportRouteProvider.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:36+0200 + * Build 00132 - 2021-07-08T13:20:40+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/TravelNotesRoadbook.min.css b/dist/TravelNotesRoadbook.min.css index 6eab2fb0..5b8daadc 100644 --- a/dist/TravelNotesRoadbook.min.css +++ b/dist/TravelNotesRoadbook.min.css @@ -1 +1 @@ -.TravelNotes-Roadbook-Travel{margin-top:.5em;margin-left:1em;margin-right:1em;font-family:sans-serif;line-height:1.5em}.TravelNotes-Roadbook-Travel-Header{border-style:solid;border-width:.1em;padding:1em}.TravelNotes-Roadbook-Travel-Header-Name{font-size:156%;font-weight:700;margin-bottom:1em}.TravelNotes-Roadbook-Travel-Header-TravelDistance{margin-top:1em}.TravelNotes-Roadbook-Travel-Header-TravelAscent>span,.TravelNotes-Roadbook-Travel-Header-TravelDescent>span,.TravelNotes-Roadbook-Travel-Header-TravelDistance>span{text-decoration:underline}.TravelNotes-Roadbook-TravelFooter{border-top-style:solid;border-top-width:.1em;padding-top:2em;padding-bottom:2em}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#0ff;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Roadbook-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Roadbook-NoteHtml-Address-City,.TravelNotes-Roadbook-NoteHtml-Address>span:first-child,.TravelNotes-Roadbook-NoteHtml-Distance>span:first-child,.TravelNotes-Roadbook-NoteHtml-LatLng>span,.TravelNotes-Roadbook-NoteHtml-NextDistance>span:first-child,.TravelNotes-Roadbook-NoteHtml-Phone>span:first-child,.TravelNotes-Roadbook-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Roadbook-Route-Header{border-style:solid;border-width:.1em;padding:1em}.TravelNotes-Roadbook-Route-Header-Name{font-size:125%;font-weight:700;margin-bottom:1em}.TravelNotes-Roadbook-Route-Header-Ascent>span,.TravelNotes-Roadbook-Route-Header-Descent>span,.TravelNotes-Roadbook-Route-Header-Distance>span,.TravelNotes-Roadbook-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-Roadbook-RouteFooter{padding-bottom:2em}.TravelNotes-Route-SvgProfile{background-color:#fff;margin:1em}.TravelNotes-Route-SvgProfile-profilePolyline{fill:none;stroke:red;stroke-width:3}.TravelNotes-Route-SvgProfile-framePolyline,.TravelNotes-Route-SvgProfile-markerPolyline{fill:none;stroke:#000;stroke-width:1}.TravelNotes-Route-SvgProfile-elevText{fill:#000;font:bold 30px sans-serif}.TravelNotes-Route-SvgProfile-distLegend,.TravelNotes-Route-SvgProfile-elevLegend{fill:#000;font:bold 24px sans-serif}#TravelNotes-Roadbook-GoTop>a{color:#000;text-decoration:none}.TravelNotes-Roadbook-Route-ManeuversAndNotes,.TravelNotes-Roadbook-Travel-Notes{margin-top:1em;margin-bottom:2em}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{border-bottom-style:solid;border-bottom-width:.1em;padding-top:1em;padding-bottom:1em;display:flex;flex-direction:row}.TravelNotes-Roadbook-Route-ManeuversAndNotes-IconCell,.TravelNotes-Roadbook-Travel-Notes-IconCell{background-repeat:no-repeat;min-width:40px;min-height:40px;vertical-align:top;flex-shrink:0}.TravelNotes-Roadbook-Route-ManeuversAndNotes-Cell,.TravelNotes-Roadbook-Travel-Notes-Cell{padding-left:.5em;flex-shrink:2}#TravelNotes-Roadbook-Menu{position:fixed;top:0;left:0;z-index:200}@media screen and (max-width:320px){body{margin:0;padding:0}#TravelNotes-Roadbook-Menu{position:static}.TravelNotes-Roadbook-Travel{margin-right:0;margin-left:0}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{display:flex;flex-direction:column}.TravelNotes-Roadbook-NoteHtml-Url{overflow:hidden}.TravelNotes-Roadbook-Route-ManeuversAndNotes-Cell,.TravelNotes-Roadbook-Travel-Notes-Cell{padding-left:0;flex-shrink:2}}@media screen and (min-width:321px) and (max-width:70em){.TravelNotes-Roadbook-Travel{padding-top:3.5em}#TravelNotes-Roadbook-Menu{padding:.5em;border-style:solid;border-width:1px;margin-left:.5em}#TravelNotes-Roadbook-Menu>div{display:inline-block}}@media screen and (min-width:70em){.TravelNotes-Roadbook-Travel{width:50em;margin-left:calc(50% - 50em / 2);margin-right:calc(50% - 50em / 2)}}@media print{#TravelNotes-Roadbook-Menu{visibility:hidden;width:0;height:0;margin:0;padding:0;border-width:0;border-style:none}.TravelNotes-Roadbook-Route-Header{page-break-before:always}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{page-break-inside:avoid}}.TravelNotes-Hidden,.TravelNotes-Hidden>*,.TravelNotes-Hidden>*>*,.TravelNotes-Hidden>*>*>*{width:0;height:0;margin:0;padding:0;top:0;left:0;border-width:0;border-style:none;animation:none;visibility:hidden;transform:scale(0)} \ No newline at end of file +.TravelNotes-Roadbook-Travel{margin-top:.5em;margin-left:1em;margin-right:1em;font-family:sans-serif;line-height:1.5em}.TravelNotes-Roadbook-Travel-Header{border-style:solid;border-width:.1em;padding:1em}.TravelNotes-Roadbook-Travel-Header-Name{font-size:156%;font-weight:700;margin-bottom:1em}.TravelNotes-Roadbook-Travel-Header-TravelDistance{margin-top:1em}.TravelNotes-Roadbook-Travel-Header-TravelAscent>span,.TravelNotes-Roadbook-Travel-Header-TravelDescent>span,.TravelNotes-Roadbook-Travel-Header-TravelDistance>span{text-decoration:underline}.TravelNotes-Roadbook-TravelFooter{border-top-style:solid;border-top-width:.1em;padding-top:2em;padding-bottom:2em}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#000;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Roadbook-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Roadbook-NoteHtml-Address-City,.TravelNotes-Roadbook-NoteHtml-Address>span:first-child,.TravelNotes-Roadbook-NoteHtml-Distance>span:first-child,.TravelNotes-Roadbook-NoteHtml-LatLng>span,.TravelNotes-Roadbook-NoteHtml-NextDistance>span:first-child,.TravelNotes-Roadbook-NoteHtml-Phone>span:first-child,.TravelNotes-Roadbook-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Roadbook-Route-Header{border-style:solid;border-width:.1em;padding:1em}.TravelNotes-Roadbook-Route-Header-Name{font-size:125%;font-weight:700;margin-bottom:1em}.TravelNotes-Roadbook-Route-Header-Ascent>span,.TravelNotes-Roadbook-Route-Header-Descent>span,.TravelNotes-Roadbook-Route-Header-Distance>span,.TravelNotes-Roadbook-Route-Header-Duration>span{text-decoration:underline}.TravelNotes-Roadbook-RouteFooter{padding-bottom:2em}.TravelNotes-Route-SvgProfile{background-color:#fff;margin:1em}.TravelNotes-Route-SvgProfile-profilePolyline{fill:none;stroke:red;stroke-width:3}.TravelNotes-Route-SvgProfile-framePolyline,.TravelNotes-Route-SvgProfile-markerPolyline{fill:none;stroke:#000;stroke-width:1}.TravelNotes-Route-SvgProfile-elevText{fill:#000;font:bold 30px sans-serif}.TravelNotes-Route-SvgProfile-distLegend,.TravelNotes-Route-SvgProfile-elevLegend{fill:#000;font:bold 24px sans-serif}#TravelNotes-Roadbook-GoTop>a{color:#000;text-decoration:none}.TravelNotes-Roadbook-Route-ManeuversAndNotes,.TravelNotes-Roadbook-Travel-Notes{margin-top:1em;margin-bottom:2em}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{border-bottom-style:solid;border-bottom-width:.1em;padding-top:1em;padding-bottom:1em;display:flex;flex-direction:row}.TravelNotes-Roadbook-Route-ManeuversAndNotes-IconCell,.TravelNotes-Roadbook-Travel-Notes-IconCell{background-repeat:no-repeat;min-width:40px;min-height:40px;vertical-align:top;flex-shrink:0}.TravelNotes-Roadbook-Route-ManeuversAndNotes-Cell,.TravelNotes-Roadbook-Travel-Notes-Cell{padding-left:.5em;flex-shrink:2}#TravelNotes-Roadbook-Menu{position:fixed;top:0;left:0;z-index:200}@media screen and (max-width:320px){body{margin:0;padding:0}#TravelNotes-Roadbook-Menu{position:static}.TravelNotes-Roadbook-Travel{margin-right:0;margin-left:0}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{display:flex;flex-direction:column}.TravelNotes-Roadbook-NoteHtml-Url{overflow:hidden}.TravelNotes-Roadbook-Route-ManeuversAndNotes-Cell,.TravelNotes-Roadbook-Travel-Notes-Cell{padding-left:0;flex-shrink:2}}@media screen and (min-width:321px) and (max-width:70em){.TravelNotes-Roadbook-Travel{padding-top:3.5em}#TravelNotes-Roadbook-Menu{padding:.5em;border-style:solid;border-width:1px;margin-left:.5em}#TravelNotes-Roadbook-Menu>div{display:inline-block}}@media screen and (min-width:70em){.TravelNotes-Roadbook-Travel{width:50em;margin-left:calc(50% - 50em / 2);margin-right:calc(50% - 50em / 2)}}@media print{#TravelNotes-Roadbook-Menu{visibility:hidden;width:0;height:0;margin:0;padding:0;border-width:0;border-style:none}.TravelNotes-Roadbook-Route-Header{page-break-before:always}.TravelNotes-Roadbook-Route-Maneuvers-Row,.TravelNotes-Roadbook-Route-Notes-Row,.TravelNotes-Roadbook-Travel-Notes-Row{page-break-inside:avoid}}.TravelNotes-Hidden,.TravelNotes-Hidden>*,.TravelNotes-Hidden>*>*,.TravelNotes-Hidden>*>*>*{width:0;height:0;margin:0;padding:0;top:0;left:0;border-width:0;border-style:none;animation:none;visibility:hidden;transform:scale(0)} \ No newline at end of file diff --git a/dist/TravelNotesRoadbook.min.js b/dist/TravelNotesRoadbook.min.js index 7625ecba..5c23899d 100644 --- a/dist/TravelNotesRoadbook.min.js +++ b/dist/TravelNotesRoadbook.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:42+0200 + * Build 00132 - 2021-07-08T13:20:46+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0 diff --git a/dist/viewer/TravelNotesViewer.min.css b/dist/viewer/TravelNotesViewer.min.css index 0833389d..71c5a8eb 100644 --- a/dist/viewer/TravelNotesViewer.min.css +++ b/dist/viewer/TravelNotesViewer.min.css @@ -1 +1 @@ -body{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}#noscript #TravelNote-Noscript-Text{color:maroon;font:30px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif;width:30em;position:absolute;top:30vh;left:calc(50vw - 15em);text-align:center}#noscript #TravelNotes-Noscript-Bike{position:absolute;top:0;left:0;width:100vw}#noscript #TravelNotes-Noscript-BikeIcon{background-image:url('data:image/svg+xml;utf8, ');background-size:100px 100px;background-repeat:no-repeat;width:100px;height:100px;animation:10s ease-in 0s infinite AnimationBike}@keyframes AnimationBike{from{margin-left:calc(0% - 100px)}to{margin-left:100%}}.leaflet-popup-tip-container{transform:scale(0);visibility:hidden}.leaflet-popup-content-wrapper{border-radius:0}#TravelNotes-UI{position:absolute;top:0;right:0;z-index:1200}#TravelNotes-Map{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;overflow:hidden}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#0ff;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Map-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Map-NoteHtml-Address-City,.TravelNotes-Map-NoteHtml-Address>span:first-child,.TravelNotes-Map-NoteHtml-Distance>span:first-child,.TravelNotes-Map-NoteHtml-LatLng>span,.TravelNotes-Map-NoteHtml-NextDistance>span:first-child,.TravelNotes-Map-NoteHtml-Phone>span:first-child,.TravelNotes-Map-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Map-AllNotes{background:0 0;height:auto}.TravelNotes-Map-Note-Background{background-color:#fff}.TravelNotes-Map-Note-Bullet{background-color:#000}.TravelNotes-Map-Route-Header-Name{font-weight:700}.TravelNotes-Map-Route-Header-Ascent>span,.TravelNotes-Map-Route-Header-Descent>span,.TravelNotes-Map-Route-Header-Distance>span,.TravelNotes-Map-Route-Header-Duration>span{text-decoration:underline}#TravelNotes-AttributionsUI{position:absolute;left:0;bottom:0;z-index:1800;background-color:#fff;padding-left:1em;padding-right:1em;color:#0078a8;font-size:80%}#TravelNotes-AttributionsUI a{color:#0078a8}#TravelNotes-ErrorsUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:transparent;background-color:transparent;z-index:1300}#TravelNotes-ErrorsUI-CancelButton{background-color:#fff}#TravelNotes-ErrorsUI-HelpInputDiv,#TravelNotes-ErrorsUI-Message{margin:.5em}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Hidden{visibility:hidden;width:0;height:0}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Error{color:#fff;background-color:red}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Warning{color:#000;background-color:orange}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Info{color:#000;background-color:#fff}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Help{color:#000;background-color:#fff}#TravelNotes-ViewerLayersToolbarUI{position:absolute;top:0;left:0;z-index:1000;background-color:#fff}.TravelNotes-ViewerLayersToolbarUI-Button{padding:.5em;text-align:center;margin:0;font-weight:700;height:1.5em;vertical-align:middle;width:3em} \ No newline at end of file +body{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}#noscript #TravelNote-Noscript-Text{color:maroon;font:30px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif;width:30em;position:absolute;top:30vh;left:calc(50vw - 15em);text-align:center}#noscript #TravelNotes-Noscript-Bike{position:absolute;top:0;left:0;width:100vw}#noscript #TravelNotes-Noscript-BikeIcon{background-image:url('data:image/svg+xml;utf8, ');background-size:100px 100px;background-repeat:no-repeat;width:100px;height:100px;animation:10s ease-in 0s infinite AnimationBike}@keyframes AnimationBike{from{margin-left:calc(0% - 100px)}to{margin-left:100%}}.leaflet-popup-tip-container{transform:scale(0);visibility:hidden}.leaflet-popup-content-wrapper{border-radius:0}#TravelNotes-UI{position:absolute;top:0;right:0;z-index:1200}#TravelNotes-Map{position:absolute;width:100vw;height:100vh;max-width:100vw;max-height:100vh;top:0;left:0;overflow:hidden}.TravelNotes-MapNote{width:100%;height:100%;background-repeat:no-repeat;display:inline-block;vertical-align:top}.TravelNotes-SvgIcon{border-style:solid;border-color:#000;border-width:.1em}.TravelNotes-Note-WhiteRed{color:#fff;background-color:red}.TravelNotes-Note-WhiteGreen{color:#fff;background-color:green}.TravelNotes-Note-WhiteBlue{color:#fff;background-color:#00f}.TravelNotes-Note-WhiteBrown{color:#fff;background-color:brown}.TravelNotes-Note-WhiteBlack{color:#fff;background-color:#000}.TravelNotes-Note-BlackWhite{color:#000;background-color:#fff;border:solid .1em}.TravelNotes-Note-BlackOrange{color:#000;background-color:orange}svg.TravelNotes-Note-Knooppunt{background-color:#fff}.TravelNotes-Note-Knooppunt>text{fill:green;font:bold 120px sans-serif}.TravelNotes-Note-Knooppunt>polyline{fill:none;stroke:green;stroke-width:10}.TravelNotes-OSM-Itinerary{fill:none;stroke:red;stroke-width:8}.TravelNotes-OSM-Highway{fill:none;stroke-width:2}.TravelNotes-OSM-Highway-living_street,.TravelNotes-OSM-Highway-motorway,.TravelNotes-OSM-Highway-motorway_link,.TravelNotes-OSM-Highway-primary,.TravelNotes-OSM-Highway-primary_link,.TravelNotes-OSM-Highway-residential,.TravelNotes-OSM-Highway-secondary,.TravelNotes-OSM-Highway-secondary_link,.TravelNotes-OSM-Highway-service,.TravelNotes-OSM-Highway-tertiary,.TravelNotes-OSM-Highway-tertiary_link,.TravelNotes-OSM-Highway-trunk,.TravelNotes-OSM-Highway-trunk_link,.TravelNotes-OSM-Highway-unclassified{stroke:gray}.TravelNotes-OSM-Highway-pedestrian{stroke:#a9a9a9}.TravelNotes-OSM-Highway-cycleway{stroke:#00f;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-bridleway,.TravelNotes-OSM-Highway-track{stroke:brown;stroke-dasharray:6 2}.TravelNotes-OSM-Highway-footway,.TravelNotes-OSM-Highway-path{stroke:red;stroke-dasharray:2 2}.TravelNotes-OSM-RcnRef{font:bold 50px sans-serif;fill:#000;fill-opacity:75%;text-anchor:middle}.TravelNotes-MapNoteCategory-0001{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0002{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0003{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0004{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0005{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0006{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0007{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0008{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0009{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0010{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0011{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0012{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0013{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0014{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0015{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0016{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0017{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0018{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0019{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0020{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0021{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0022{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0023{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0024{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0025{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0026{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0027{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0028{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0029{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0030{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0031{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0032{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0033{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0034{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0035{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0036{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0037{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0038{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0039{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0040{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0041{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0042{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0043{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0044{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0045{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0046{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0047{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0048{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0049{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0050{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0051{background-image:url('data:image/svg+xml;utf8, ')}.TravelNotes-MapNoteCategory-0052{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0053{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0054{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0055{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0056{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0057{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0058{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0059{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0060{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0061{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0062{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0063{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0064{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0065{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0066{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0067{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0068{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0069{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0070{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0071{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0072{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-MapNoteCategory-0073{background-image:url('data:image/svg+xml;utf8,');margin:0;padding:0}.TravelNotes-MapNoteCategory-0073 svg{max-height:170px;max-width:170px}.TravelNotes-MapNoteCategory-0073>svg>text{font:bold 10px sans-serif;fill:#00bfbf;text-anchor:middle}.TravelNotes-ManeuverNote-kArriveDefault,.TravelNotes-UI-kArriveDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveLeft,.TravelNotes-UI-kArriveLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kArriveRight,.TravelNotes-UI-kArriveRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueLeft,.TravelNotes-UI-kContinueLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueRight,.TravelNotes-UI-kContinueRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpLeft,.TravelNotes-UI-kContinueSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSharpRight,.TravelNotes-UI-kContinueSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightLeft,.TravelNotes-UI-kContinueSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueSlightRight,.TravelNotes-UI-kContinueSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kContinueStraight,.TravelNotes-UI-kContinueStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartDefault,.TravelNotes-UI-kDepartDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartLeft,.TravelNotes-UI-kDepartLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kDepartRight,.TravelNotes-UI-kDepartRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadLeft,.TravelNotes-UI-kEndOfRoadLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kEndOfRoadRight,.TravelNotes-UI-kEndOfRoadRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryEnter,.TravelNotes-UI-kFerryEnter{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kFerryExit,.TravelNotes-UI-kFerryExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkLeft,.TravelNotes-UI-kForkLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kForkRight,.TravelNotes-UI-kForkRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeDefault,.TravelNotes-UI-kMergeDefault{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeLeft,.TravelNotes-UI-kMergeLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kMergeRight,.TravelNotes-UI-kMergeRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameLeft,.TravelNotes-UI-kNewNameLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameRight,.TravelNotes-UI-kNewNameRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpLeft,.TravelNotes-UI-kNewNameSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSharpRight,.TravelNotes-UI-kNewNameSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightLeft,.TravelNotes-UI-kNewNameSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameSlightRight,.TravelNotes-UI-kNewNameSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kNewNameStraight,.TravelNotes-UI-kNewNameStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampLeft,.TravelNotes-UI-kOffRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOffRampRight,.TravelNotes-UI-kOffRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampLeft,.TravelNotes-UI-kOnRampLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kOnRampRight,.TravelNotes-UI-kOnRampRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryLeft,.TravelNotes-UI-kRotaryLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRotaryRight,.TravelNotes-UI-kRotaryRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutExit,.TravelNotes-UI-kRoundaboutExit{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutLeft,.TravelNotes-UI-kRoundaboutLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutRight,.TravelNotes-UI-kRoundaboutRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnLeft,.TravelNotes-UI-kRoundaboutTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnRight,.TravelNotes-UI-kRoundaboutTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpLeft,.TravelNotes-UI-kRoundaboutTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSharpRight,.TravelNotes-UI-kRoundaboutTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightLeft,.TravelNotes-UI-kRoundaboutTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnSlightRight,.TravelNotes-UI-kRoundaboutTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kRoundaboutTurnStraight,.TravelNotes-UI-kRoundaboutTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayLeft,.TravelNotes-UI-kStayLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayRight,.TravelNotes-UI-kStayRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kStayStraight,.TravelNotes-UI-kStayStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnLeft,.TravelNotes-UI-kTurnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnRight,.TravelNotes-UI-kTurnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpLeft,.TravelNotes-UI-kTurnSharpLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSharpRight,.TravelNotes-UI-kTurnSharpRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightLeft,.TravelNotes-UI-kTurnSlightLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnSlightRight,.TravelNotes-UI-kTurnSlightRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnStraight,.TravelNotes-UI-kTurnStraight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTurnUturn,.TravelNotes-UI-kTurnUturn{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUndefined,.TravelNotes-UI-kUndefined{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnLeft,.TravelNotes-UI-kUturnLeft{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kUturnRight,.TravelNotes-UI-kUturnRight{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainStart,.TravelNotes-UI-kTrainStart{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainContinue,.TravelNotes-UI-kTrainContinue{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-ManeuverNote-kTrainEnd,.TravelNotes-UI-kTrainEnd{background-image:url('data:image/svg+xml;utf8,')}.TravelNotes-Map-NoteHtml-TooltipContent{font-weight:700}.TravelNotes-Map-NoteHtml-Address-City,.TravelNotes-Map-NoteHtml-Address>span:first-child,.TravelNotes-Map-NoteHtml-Distance>span:first-child,.TravelNotes-Map-NoteHtml-LatLng>span,.TravelNotes-Map-NoteHtml-NextDistance>span:first-child,.TravelNotes-Map-NoteHtml-Phone>span:first-child,.TravelNotes-Map-NoteHtml-Url>span:first-child{text-decoration:underline}.TravelNotes-Map-AllNotes{background:0 0;height:auto}.TravelNotes-Map-Note-Background{background-color:#fff}.TravelNotes-Map-Note-Bullet{background-color:#000}.TravelNotes-Map-Route-Header-Name{font-weight:700}.TravelNotes-Map-Route-Header-Ascent>span,.TravelNotes-Map-Route-Header-Descent>span,.TravelNotes-Map-Route-Header-Distance>span,.TravelNotes-Map-Route-Header-Duration>span{text-decoration:underline}#TravelNotes-AttributionsUI{position:absolute;left:0;bottom:0;z-index:1800;background-color:#fff;padding-left:1em;padding-right:1em;color:#0078a8;font-size:80%}#TravelNotes-AttributionsUI a{color:#0078a8}#TravelNotes-ErrorsUI{position:absolute;bottom:10em;left:calc(50% - 25em);width:50em;color:transparent;background-color:transparent;z-index:1300}#TravelNotes-ErrorsUI-CancelButton{background-color:#fff}#TravelNotes-ErrorsUI-HelpInputDiv,#TravelNotes-ErrorsUI-Message{margin:.5em}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Hidden{visibility:hidden;width:0;height:0}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Error{color:#fff;background-color:red}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Warning{color:#000;background-color:orange}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Info{color:#000;background-color:#fff}#TravelNotes-ErrorsUI.TravelNotes-ErrorsUI-Help{color:#000;background-color:#fff}#TravelNotes-ViewerLayersToolbarUI{position:absolute;top:0;left:0;z-index:1000;background-color:#fff}.TravelNotes-ViewerLayersToolbarUI-Button{padding:.5em;text-align:center;margin:0;font-weight:700;height:1.5em;vertical-align:middle;width:3em} \ No newline at end of file diff --git a/dist/viewer/TravelNotesViewer.min.js b/dist/viewer/TravelNotesViewer.min.js index 33ee7487..4febdb72 100644 --- a/dist/viewer/TravelNotesViewer.min.js +++ b/dist/viewer/TravelNotesViewer.min.js @@ -6,7 +6,7 @@ * JavaScript code in this page. * * leaflet.travelnotes - version 2.3.0 - * Build 00101 - 2021-05-24T09:29:41+0200 + * Build 00132 - 2021-07-08T13:20:45+0200 * Copyright 2017 2021 wwwouaiebe * Contact: https://www.ouaie.be/ * License: GPL-3.0